activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity activity