diff --git a/RTCP/Cobalt/CoInterface/src/Align.h b/RTCP/Cobalt/CoInterface/src/Align.h
index c7549eea896f7a46d65a6750880b1882d10bd7ba..119efb543e823b7cc600e6dfba9c93e5a9109f6a 100644
--- a/RTCP/Cobalt/CoInterface/src/Align.h
+++ b/RTCP/Cobalt/CoInterface/src/Align.h
@@ -25,75 +25,83 @@
 
 #include <cstddef>
 
-namespace LOFAR {
-namespace RTCP {
+namespace LOFAR
+{
+  namespace RTCP
+  {
 
 
-/*
- * Returns true iff n is a power of two.
- */
-template <typename T> inline static bool powerOfTwo(T n)
-{
-  return (n | (n - 1)) == 2 * n - 1;
-}
+    /*
+     * Returns true iff n is a power of two.
+     */
+    template <typename T>
+    inline static bool powerOfTwo(T n)
+    {
+      return (n | (n - 1)) == 2 * n - 1;
+    }
 
 
-/*
- * Returns the first power of two higher than n.
- */
-template <typename T> inline static T nextPowerOfTwo(T n)
-{
-  T p;
+    /*
+     * Returns the first power of two higher than n.
+     */
+    template <typename T>
+    inline static T nextPowerOfTwo(T n)
+    {
+      T p;
 
-  for (p = 1; p < n; p <<= 1)
-    ;
+      for (p = 1; p < n; p <<= 1)
+        ;
 
-  return p;
-}
+      return p;
+    }
 
 
-/*
- * Returns `value' rounded up to `alignment'.
- */
-template <typename T> inline static T align(T value, size_t alignment)
-{
+    /*
+     * Returns `value' rounded up to `alignment'.
+     */
+    template <typename T>
+    inline static T align(T value, size_t alignment)
+    {
 #if defined __GNUC__
-  if (__builtin_constant_p(alignment) && powerOfTwo(alignment))
-    return (value + alignment - 1) & ~(alignment - 1);
-  else
+      if (__builtin_constant_p(alignment) && powerOfTwo(alignment))
+        return (value + alignment - 1) & ~(alignment - 1);
+      else
 #endif
-    return (value + alignment - 1) / alignment * alignment;
-}
+      return (value + alignment - 1) / alignment * alignment;
+    }
 
 
-/*
- * Returns `value' rounded up to `alignment', in bytes.
- */
-template <typename T> inline static T *align(T *value, size_t alignment)
-{
-  return reinterpret_cast<T *>(align(reinterpret_cast<size_t>(value), alignment));
-}
+    /*
+     * Returns `value' rounded up to `alignment', in bytes.
+     */
+    template <typename T>
+    inline static T *align(T *value, size_t alignment)
+    {
+      return reinterpret_cast<T *>(align(reinterpret_cast<size_t>(value), alignment));
+    }
 
 
-/*
- * Returns true if `value' is aligned to `alignment'.
- */
-template <typename T> inline static bool aligned(T value, size_t alignment)
-{
-  return value % alignment == 0;
-}
+    /*
+     * Returns true if `value' is aligned to `alignment'.
+     */
+    template <typename T>
+    inline static bool aligned(T value, size_t alignment)
+    {
+      return value % alignment == 0;
+    }
 
 
-/*
- * Returns true if `value' is aligned to `alignment', in bytes.
- */
-template <typename T> inline static bool aligned(T *value, size_t alignment)
-{
-  return reinterpret_cast<size_t>(value) % alignment == 0;
-}
+    /*
+     * Returns true if `value' is aligned to `alignment', in bytes.
+     */
+    template <typename T>
+    inline static bool aligned(T *value, size_t alignment)
+    {
+      return reinterpret_cast<size_t>(value) % alignment == 0;
+    }
 
 
-} // namespace RTCP
+  } // namespace RTCP
 } // namespace LOFAR
 
 #endif
diff --git a/RTCP/Cobalt/CoInterface/src/AlignedStdAllocator.h b/RTCP/Cobalt/CoInterface/src/AlignedStdAllocator.h
index f05fb802baf0d98ca2cacde4b7a7619cd1825de4..33f85aee15f3130ec38064214ef30a2efdcd3f77 100644
--- a/RTCP/Cobalt/CoInterface/src/AlignedStdAllocator.h
+++ b/RTCP/Cobalt/CoInterface/src/AlignedStdAllocator.h
@@ -4,37 +4,41 @@
 #include <CoInterface/Allocator.h>
 #include <memory>
 
-namespace LOFAR {
-namespace RTCP {
-
-template <typename T, size_t ALIGNMENT> class AlignedStdAllocator : public std::allocator<T>
+namespace LOFAR
 {
-  // NOTE: An std::allocator cannot hold *any* state because they're
-  // constructed and destructed at will by the STL. The STL does not
-  // even guarantee that the same allocator object will allocate and
-  // deallocate a certain pointer.
-  public:
-    typedef typename std::allocator<T>::size_type size_type;
-    typedef typename std::allocator<T>::pointer pointer;
-    typedef typename std::allocator<T>::const_pointer const_pointer;
-
-    template <class U> struct rebind
-    {
-      typedef AlignedStdAllocator<U, ALIGNMENT> other;
-    };
+  namespace RTCP
+  {
 
-    pointer allocate(size_type size, const_pointer /*hint*/ = 0)
+    template <typename T, size_t ALIGNMENT>
+    class AlignedStdAllocator : public std::allocator<T>
     {
-      return static_cast<pointer>(heapAllocator.allocate(size * sizeof(T), ALIGNMENT));
-    }
-
-    void deallocate(pointer ptr, size_type /*size*/)
-    {
-      heapAllocator.deallocate(ptr);
-    }
-};
+      // NOTE: An std::allocator cannot hold *any* state because they're
+      // constructed and destructed at will by the STL. The STL does not
+      // even guarantee that the same allocator object will allocate and
+      // deallocate a certain pointer.
+    public:
+      typedef typename std::allocator<T>::size_type size_type;
+      typedef typename std::allocator<T>::pointer pointer;
+      typedef typename std::allocator<T>::const_pointer const_pointer;
+
+      template <class U>
+      struct rebind
+      {
+        typedef AlignedStdAllocator<U, ALIGNMENT> other;
+      };
+
+      pointer allocate(size_type size, const_pointer /*hint*/ = 0)
+      {
+        return static_cast<pointer>(heapAllocator.allocate(size * sizeof(T), ALIGNMENT));
+      }
+
+      void deallocate(pointer ptr, size_type /*size*/)
+      {
+        heapAllocator.deallocate(ptr);
+      }
+    };
 
-} // namespace RTCP
+  } // namespace RTCP
 } // namespace LOFAR
 
 #endif
diff --git a/RTCP/Cobalt/CoInterface/src/Allocator.cc b/RTCP/Cobalt/CoInterface/src/Allocator.cc
index 6a8e460cfc37e7aad02dca036ee129e53a97ca45..8929f7dc8175b729cb529f95e20edee10a426f0d 100644
--- a/RTCP/Cobalt/CoInterface/src/Allocator.cc
+++ b/RTCP/Cobalt/CoInterface/src/Allocator.cc
@@ -9,130 +9,132 @@
 #include <malloc.h>
 
 
-namespace LOFAR {
-namespace RTCP {
+namespace LOFAR
+{
+  namespace RTCP
+  {
 
 
-MallocedArena::MallocedArena(size_t size, size_t alignment)
-{
-  itsBegin = heapAllocator.allocate(size, alignment);
-  itsSize = size;
-}
+    MallocedArena::MallocedArena(size_t size, size_t alignment)
+    {
+      itsBegin = heapAllocator.allocate(size, alignment);
+      itsSize = size;
+    }
 
 
-MallocedArena::~MallocedArena()
-{
-  heapAllocator.deallocate(itsBegin);
-}
+    MallocedArena::~MallocedArena()
+    {
+      heapAllocator.deallocate(itsBegin);
+    }
 
 
-FixedArena::FixedArena(void *begin, size_t size)
-{
-  itsBegin = begin;
-  itsSize  = size;
-}
+    FixedArena::FixedArena(void *begin, size_t size)
+    {
+      itsBegin = begin;
+      itsSize = size;
+    }
 
 
-Allocator::~Allocator()
-{
-}
+    Allocator::~Allocator()
+    {
+    }
 
 
-HeapAllocator::~HeapAllocator()
-{
-}
+    HeapAllocator::~HeapAllocator()
+    {
+    }
 
 
-void *HeapAllocator::allocate(size_t size, size_t alignment)
-{
-  void *ptr;
+    void *HeapAllocator::allocate(size_t size, size_t alignment)
+    {
+      void *ptr;
 
-  if (alignment == 1) {
-    // no alignment requirements, so divert to malloc
-    ptr = malloc(size);
+      if (alignment == 1) {
+        // no alignment requirements, so divert to malloc
+        ptr = malloc(size);
 
-    if (!ptr)
-      THROW(BadAllocException,"HeapAllocator could not allocate " << size << " bytes");
-  } else {
-    ASSERT(alignment != 0);
+        if (!ptr)
+          THROW(BadAllocException,"HeapAllocator could not allocate " << size << " bytes");
+      } else {
+        ASSERT(alignment != 0);
 
 #if _POSIX_C_SOURCE >= 200112L || _XOPEN_SOURCE >= 600
-    // required by posix_memalign
-    ASSERT(alignment % sizeof(void*) == 0);
+        // required by posix_memalign
+        ASSERT(alignment % sizeof(void*) == 0);
 
-    if (posix_memalign(&ptr, alignment, size) != 0)
-      THROW(BadAllocException,"HeapAllocator could not allocate " << size << " bytes");
+        if (posix_memalign(&ptr, alignment, size) != 0)
+          THROW(BadAllocException,"HeapAllocator could not allocate " << size << " bytes");
 #else
-    // required by memalign
-    ASSERT(powerOfTwo(alignment));
+        // required by memalign
+        ASSERT(powerOfTwo(alignment));
 
-    if ((ptr = memalign(alignment, size)) == 0)
-      THROW(BadAllocException,"HeapAllocator could not allocate " << size << " bytes");
+        if ((ptr = memalign(alignment, size)) == 0)
+          THROW(BadAllocException,"HeapAllocator could not allocate " << size << " bytes");
 #endif
-  }
+      }
 
-  return ptr;
-}
+      return ptr;
+    }
 
 
-void HeapAllocator::deallocate(void *ptr)
-{
-  free(ptr);
-}
+    void HeapAllocator::deallocate(void *ptr)
+    {
+      free(ptr);
+    }
 
 
-HeapAllocator heapAllocator;
+    HeapAllocator heapAllocator;
 
 
-SparseSetAllocator::SparseSetAllocator(const Arena &arena)
-{
-  // mark full arena as free
-  freeList.include(arena.begin(), (void *) ((char *) arena.begin() + arena.size()));
-}
+    SparseSetAllocator::SparseSetAllocator(const Arena &arena)
+    {
+      // mark full arena as free
+      freeList.include(arena.begin(), (void *) ((char *) arena.begin() + arena.size()));
+    }
 
 
-void *SparseSetAllocator::allocate(size_t size, size_t alignment)
-{
-  ScopedLock sl(mutex);
+    void *SparseSetAllocator::allocate(size_t size, size_t alignment)
+    {
+      ScopedLock sl(mutex);
+
+      // look for a free range large enough
+      for (SparseSet<void *>::const_iterator it = freeList.getRanges().begin(); it != freeList.getRanges().end(); it++) {
+        void *begin = align(it->begin, alignment);
 
-  // look for a free range large enough
-  for (SparseSet<void *>::const_iterator it = freeList.getRanges().begin(); it != freeList.getRanges().end(); it ++) {
-    void *begin = align(it->begin, alignment);
+        if ((char *) it->end - (char *) begin >= (ptrdiff_t) size) {
+          // enough space -- reserve it
+          freeList.exclude(begin, (void *) ((char *) begin + size));
 
-    if ((char *) it->end - (char *) begin >= (ptrdiff_t) size) {
-      // enough space -- reserve it
-      freeList.exclude(begin, (void *) ((char *) begin + size));
+          // register pointer
+          sizes[begin] = size;
 
-      // register pointer
-      sizes[begin] = size;
+          return begin;
+        }
+      }
 
-      return begin;
+      THROW(CoInterfaceException,"SparseSetAllocator could not allocate " << size << " bytes");
     }
-  }
 
-  THROW(CoInterfaceException,"SparseSetAllocator could not allocate " << size << " bytes");
-}
 
+    void SparseSetAllocator::deallocate(void *ptr)
+    {
+      if (ptr != 0) {
+        ScopedLock sl(mutex);
 
-void SparseSetAllocator::deallocate(void *ptr)
-{
-  if (ptr != 0) {
-    ScopedLock sl(mutex);
+        // look up pointer
+        std::map<void *, size_t>::iterator index = sizes.find(ptr);
 
-    // look up pointer
-    std::map<void *, size_t>::iterator index = sizes.find(ptr);
+        if (index == sizes.end())
+          THROW(CoInterfaceException,"Pointer was not allocated");
 
-    if (index == sizes.end())
-      THROW(CoInterfaceException,"Pointer was not allocated");
+        // free allocated space
+        freeList.include(ptr, (void *) ((char *) ptr + index->second));
 
-    // free allocated space
-    freeList.include(ptr, (void *) ((char *) ptr + index->second));
-
-    // unregister pointer
-    sizes.erase(index);
-  }
-}
+        // unregister pointer
+        sizes.erase(index);
+      }
+    }
 
 
-} // namespace RTCP
+  } // namespace RTCP
 } // namespace LOFAR
diff --git a/RTCP/Cobalt/CoInterface/src/Allocator.h b/RTCP/Cobalt/CoInterface/src/Allocator.h
index 81772fd0dbe969f9e6a9375ba3b0e05efaea01b6..84e997fdb3c790f947ca20fa65bcd49298c7436a 100644
--- a/RTCP/Cobalt/CoInterface/src/Allocator.h
+++ b/RTCP/Cobalt/CoInterface/src/Allocator.h
@@ -6,120 +6,140 @@
 
 #include <map>
 
-namespace LOFAR {
-namespace RTCP {
-
-// There is a strict separation between a memory allocator and the physical
-// memory (arena) that it manages.
-
-/*
- * Arena owns a chunk of memory for SparseSetAllocator to play in.
- */
-class Arena
-{
-  public:
-    void	*begin() const { return itsBegin; }
-    size_t	size() const { return itsSize; }
-  
-  protected:
-    void	*itsBegin;
-    size_t	itsSize;
-};
-
-
-/*
- * MallocedArena allocates memory using malloc.
- */
-class MallocedArena: public Arena
+namespace LOFAR
 {
-  public:
-		MallocedArena(size_t size, size_t alignment);
-    ~MallocedArena();
-};
+  namespace RTCP
+  {
 
+    // There is a strict separation between a memory allocator and the physical
+    // memory (arena) that it manages.
 
-/*
- * FixedArena represents an externally allocated
- * piece of memory.
- */
-class FixedArena : public Arena
-{
-  public:
-    FixedArena(void *begin, size_t size);
-};
+    /*
+     * Arena owns a chunk of memory for SparseSetAllocator to play in.
+     */
+    class Arena
+    {
+    public:
+      void        *begin() const
+      {
+        return itsBegin;
+      }
+      size_t      size() const
+      {
+        return itsSize;
+      }
 
+    protected:
+      void        *itsBegin;
+      size_t itsSize;
+    };
 
-/*
- * An Allocator can both allocate and deallocate pointers.
- */
-class Allocator
-{
-  public:
-    virtual			~Allocator();
 
-    virtual void		*allocate(size_t size, size_t alignment = 1) = 0;
-    virtual void		deallocate(void *) = 0;
+    /*
+     * MallocedArena allocates memory using malloc.
+     */
+    class MallocedArena : public Arena
+    {
+    public:
+      MallocedArena(size_t size, size_t alignment);
+      ~MallocedArena();
+    };
+
 
     /*
-     * Allows TYPE *foo = allocator.allocateTyped() without type-casting.
+     * FixedArena represents an externally allocated
+     * piece of memory.
      */
-    class TypedAllocator {
+    class FixedArena : public Arena
+    {
     public:
-      TypedAllocator(Allocator &allocator, size_t alignment): allocator(allocator), alignment(alignment) {}
+      FixedArena(void *begin, size_t size);
+    };
+
 
-      // cast-operator overloading is the only way to let C++ automatically deduce the type that we want
-      // to return.
-      template<typename T> operator T* () {
-        return static_cast<T*>(allocator.allocate(sizeof(T), alignment));
+    /*
+     * An Allocator can both allocate and deallocate pointers.
+     */
+    class Allocator
+    {
+    public:
+      virtual ~Allocator();
+
+      virtual void                *allocate(size_t size, size_t alignment = 1) = 0;
+      virtual void                deallocate(void *) = 0;
+
+      /*
+       * Allows TYPE *foo = allocator.allocateTyped() without type-casting.
+       */
+      class TypedAllocator
+      {
+      public:
+        TypedAllocator(Allocator &allocator, size_t alignment) : allocator(allocator), alignment(alignment)
+        {
+        }
+
+        // cast-operator overloading is the only way to let C++ automatically deduce the type that we want
+        // to return.
+        template<typename T>
+        operator T* ()
+        {
+          return static_cast<T*>(allocator.allocate(sizeof(T), alignment));
+        }
+      private:
+        Allocator &allocator;
+        const size_t alignment;
+      };
+
+      TypedAllocator allocateTyped(size_t alignment = 1)
+      {
+        return TypedAllocator(*this, alignment);
       }
-    private:
-      Allocator &allocator;
-      const size_t alignment;
     };
 
-    TypedAllocator allocateTyped(size_t alignment = 1) { return TypedAllocator(*this, alignment); }
-};
-
 
-/*
- * Allocates memory on the heap.
- */
-class HeapAllocator : public Allocator
-{
-  public:
-    virtual			~HeapAllocator();
+    /*
+     * Allocates memory on the heap.
+     */
+    class HeapAllocator : public Allocator
+    {
+    public:
+      virtual ~HeapAllocator();
 
-    virtual void		*allocate(size_t size, size_t alignment = 1);
-    virtual void		deallocate(void *);
-};
+      virtual void                *allocate(size_t size, size_t alignment = 1);
+      virtual void                deallocate(void *);
+    };
 
-extern HeapAllocator heapAllocator;
+    extern HeapAllocator heapAllocator;
 
 
-/*
- * Allocates memory within an Arena, using a simple
- * memory manager based on a SparseSet.
- *
- * The allocator is deterministic.
- */
-class SparseSetAllocator : public Allocator
-{
-  public:
-				SparseSetAllocator(const Arena &);
+    /*
+     * Allocates memory within an Arena, using a simple
+     * memory manager based on a SparseSet.
+     *
+     * The allocator is deterministic.
+     */
+    class SparseSetAllocator : public Allocator
+    {
+    public:
+      SparseSetAllocator(const Arena &);
 
-    virtual void		*allocate(size_t size, size_t alignment = 1);
-    virtual void		deallocate(void *);
+      virtual void                *allocate(size_t size, size_t alignment = 1);
+      virtual void                deallocate(void *);
 
-    bool                        empty() { ScopedLock sl(mutex); return sizes.empty(); }
+      bool                        empty()
+      {
+        ScopedLock sl(mutex);
+        return sizes.empty();
+      }
 
-  private:
-    Mutex                       mutex;
+    private:
+      Mutex mutex;
 
-    SparseSet<void *>		freeList;
-    std::map<void *, size_t>	sizes;
-};
+      SparseSet<void *>           freeList;
+      std::map<void *, size_t>    sizes;
+    };
 
-} // namespace RTCP
+  } // namespace RTCP
 } // namespace LOFAR
 
 #endif
diff --git a/RTCP/Cobalt/CoInterface/src/BGPAsm.h b/RTCP/Cobalt/CoInterface/src/BGPAsm.h
index 8a1c9a2faae1cd9fc318ae5aa670d8680cc26094..1eed5d908d6ecde79246aef6eb926b65ce037720 100644
--- a/RTCP/Cobalt/CoInterface/src/BGPAsm.h
+++ b/RTCP/Cobalt/CoInterface/src/BGPAsm.h
@@ -5,88 +5,92 @@
 
 #include <cstring>
 
-namespace LOFAR {
-namespace RTCP {
-
-extern "C" {
-
-// all float * must be aligned to 8 bytes
-
-void _add_2_single_precision_vectors(
-  /* r3 */ float *dst,
-  /* r4 */ const float *src1,
-  /* r5 */ const float *src2,
-  /* r6 */ unsigned count /* non-zero; multiple of 16 */
-);  
-
-void _add_3_single_precision_vectors(
-  /* r3 */ float *dst,
-  /* r4 */ const float *src1,
-  /* r5 */ const float *src2,
-  /* r6 */ const float *src3,
-  /* r7 */ unsigned count /* non-zero; multiple of 16 */
-);  
-
-void _add_4_single_precision_vectors(
-  /* r3 */ float *dst,
-  /* r4 */ const float *src1,
-  /* r5 */ const float *src2,
-  /* r6 */ const float *src3,
-  /* r7 */ const float *src4,
-  /* r8 */ unsigned count /* non-zero; multiple of 16 */
-);  
-
-void _add_5_single_precision_vectors(
-  /* r3 */ float *dst,
-  /* r4 */ const float *src1,
-  /* r5 */ const float *src2,
-  /* r6 */ const float *src3,
-  /* r7 */ const float *src4,
-  /* r8 */ const float *src5,
-  /* r9 */ unsigned count /* non-zero; multiple of 16 */
-);  
-
-void _add_6_single_precision_vectors(
-  /* r3 */ float *dst,
-  /* r4 */ const float *src1,
-  /* r5 */ const float *src2,
-  /* r6 */ const float *src3,
-  /* r7 */ const float *src4,
-  /* r8 */ const float *src5,
-  /* r9 */ const float *src6,
-  /* r10 */ unsigned count /* non-zero; multiple of 16 */
-);  
-
-} // extern "C"
-
-// Similar functions that do not need or have an ASM version
-
-// defined just to aid the use of macros
-static inline void _add_1_single_precision_vectors(
-  float *dst,
-  const float *src1,
-  unsigned count /* non-zero; multiple of 16 */
-) {
-  // nothing to add, so just copy the values
-  memcpy( dst, src1, count * sizeof(float) );
-}
-
-static inline void _add_7_single_precision_vectors(
-  float *dst,
-  const float *src1,
-  const float *src2,
-  const float *src3,
-  const float *src4,
-  const float *src5,
-  const float *src6,
-  const float *src7,
-  unsigned count /* non-zero; multiple of 16 */
-) {
-  _add_4_single_precision_vectors( dst, src1, src2, src3, src4, count );
-  _add_4_single_precision_vectors( dst, dst,  src5, src6, src7, count );
-}
-
-} // namespace LOFAR::RTCP
+namespace LOFAR
+{
+  namespace RTCP
+  {
+
+    extern "C" {
+
+    // all float * must be aligned to 8 bytes
+
+    void _add_2_single_precision_vectors(
+      /* r3 */ float *dst,
+      /* r4 */ const float *src1,
+      /* r5 */ const float *src2,
+      /* r6 */ unsigned count /* non-zero; multiple of 16 */
+      );
+
+    void _add_3_single_precision_vectors(
+      /* r3 */ float *dst,
+      /* r4 */ const float *src1,
+      /* r5 */ const float *src2,
+      /* r6 */ const float *src3,
+      /* r7 */ unsigned count /* non-zero; multiple of 16 */
+      );
+
+    void _add_4_single_precision_vectors(
+      /* r3 */ float *dst,
+      /* r4 */ const float *src1,
+      /* r5 */ const float *src2,
+      /* r6 */ const float *src3,
+      /* r7 */ const float *src4,
+      /* r8 */ unsigned count /* non-zero; multiple of 16 */
+      );
+
+    void _add_5_single_precision_vectors(
+      /* r3 */ float *dst,
+      /* r4 */ const float *src1,
+      /* r5 */ const float *src2,
+      /* r6 */ const float *src3,
+      /* r7 */ const float *src4,
+      /* r8 */ const float *src5,
+      /* r9 */ unsigned count /* non-zero; multiple of 16 */
+      );
+
+    void _add_6_single_precision_vectors(
+      /* r3 */ float *dst,
+      /* r4 */ const float *src1,
+      /* r5 */ const float *src2,
+      /* r6 */ const float *src3,
+      /* r7 */ const float *src4,
+      /* r8 */ const float *src5,
+      /* r9 */ const float *src6,
+      /* r10 */ unsigned count /* non-zero; multiple of 16 */
+      );
+
+    } // extern "C"
+
+    // Similar functions that do not need or have an ASM version
+
+    // defined just to aid the use of macros
+    static inline void _add_1_single_precision_vectors(
+      float *dst,
+      const float *src1,
+      unsigned count /* non-zero; multiple of 16 */
+      )
+    {
+      // nothing to add, so just copy the values
+      memcpy( dst, src1, count * sizeof(float) );
+    }
+
+    static inline void _add_7_single_precision_vectors(
+      float *dst,
+      const float *src1,
+      const float *src2,
+      const float *src3,
+      const float *src4,
+      const float *src5,
+      const float *src6,
+      const float *src7,
+      unsigned count /* non-zero; multiple of 16 */
+      )
+    {
+      _add_4_single_precision_vectors( dst, src1, src2, src3, src4, count );
+      _add_4_single_precision_vectors( dst, dst,  src5, src6, src7, count );
+    }
+
+  } // namespace LOFAR::RTCP
 } // namespace LOFAR
 
 #endif
diff --git a/RTCP/Cobalt/CoInterface/src/BeamCoordinates.cc b/RTCP/Cobalt/CoInterface/src/BeamCoordinates.cc
index 11ad39e5472a68d20f469efac5ad8fb8a93bfa81..9cdfa9f0d584bf00a76c7c7ffb7acaee636ed507 100644
--- a/RTCP/Cobalt/CoInterface/src/BeamCoordinates.cc
+++ b/RTCP/Cobalt/CoInterface/src/BeamCoordinates.cc
@@ -8,95 +8,97 @@
   #define M_SQRT3     1.73205080756887719000
 #endif
 
-namespace LOFAR {
-namespace RTCP {
-
-void BeamCoord3D::read(Stream *s)
+namespace LOFAR
 {
-  s->read(&itsXYZ, sizeof itsXYZ);
+  namespace RTCP
+  {
+
+    void BeamCoord3D::read(Stream *s)
+    {
+      s->read(&itsXYZ, sizeof itsXYZ);
 
 #if !defined WORDS_BIGENDIAN
-  dataConvert(LittleEndian, static_cast<double*>(itsXYZ), sizeof itsXYZ);
+      dataConvert(LittleEndian, static_cast<double*>(itsXYZ), sizeof itsXYZ);
 #endif
-}
+    }
 
-void BeamCoord3D::write(Stream *s) const
-{
+    void BeamCoord3D::write(Stream *s) const
+    {
 #if !defined WORDS_BIGENDIAN
-  // create a copy to avoid modifying our own values
-  double coordinates[sizeof itsXYZ];
+      // create a copy to avoid modifying our own values
+      double coordinates[sizeof itsXYZ];
 
-  for (unsigned i = 0; i < sizeof itsXYZ; i ++)
-    coordinates[i] = itsXYZ[i];
+      for (unsigned i = 0; i < sizeof itsXYZ; i++)
+        coordinates[i] = itsXYZ[i];
 
-  dataConvert(LittleEndian, static_cast<double*>(coordinates), sizeof coordinates);
-  s->write(&coordinates, sizeof coordinates);
+      dataConvert(LittleEndian, static_cast<double*>(coordinates), sizeof coordinates);
+      s->write(&coordinates, sizeof coordinates);
 #else
-  s->write(&itsXYZ, sizeof itsXYZ);
+      s->write(&itsXYZ, sizeof itsXYZ);
 #endif
-}
+    }
 
-void BeamCoordinates::read(Stream *s)
-{
-  unsigned numCoordinates;
+    void BeamCoordinates::read(Stream *s)
+    {
+      unsigned numCoordinates;
 
-  s->read(&numCoordinates, sizeof numCoordinates);
+      s->read(&numCoordinates, sizeof numCoordinates);
 
 #if !defined WORDS_BIGENDIAN
-  dataConvert(LittleEndian, &numCoordinates, 1);
+      dataConvert(LittleEndian, &numCoordinates, 1);
 #endif
 
-  itsCoordinates.clear();
+      itsCoordinates.clear();
 
 
-  for (unsigned i = 0; i < numCoordinates; i ++) {
-    BeamCoord3D coord(0, 0, 0);
+      for (unsigned i = 0; i < numCoordinates; i++) {
+        BeamCoord3D coord(0, 0, 0);
 
-    coord.read(s);
+        coord.read(s);
 
-    *this += coord;
-  }
-}
+        *this += coord;
+      }
+    }
 
-void BeamCoordinates::write(Stream *s) const
-{
-  unsigned numCoordinates = itsCoordinates.size();
+    void BeamCoordinates::write(Stream *s) const
+    {
+      unsigned numCoordinates = itsCoordinates.size();
 
 #if !defined WORDS_BIGENDIAN
-  dataConvert(LittleEndian, &numCoordinates, 1);
+      dataConvert(LittleEndian, &numCoordinates, 1);
 #endif
 
-  s->write(&numCoordinates, sizeof numCoordinates);
+      s->write(&numCoordinates, sizeof numCoordinates);
 
-  for (unsigned i = 0; i < numCoordinates; i ++)
-    itsCoordinates[i].write(s);
-}
+      for (unsigned i = 0; i < numCoordinates; i++)
+        itsCoordinates[i].write(s);
+    }
 
-BeamCoordinates& BeamCoordinates::operator+= (const BeamCoordinates &rhs)
-{
-  itsCoordinates.reserve(itsCoordinates.size() + rhs.size());
+    BeamCoordinates& BeamCoordinates::operator+= (const BeamCoordinates &rhs)
+    {
+      itsCoordinates.reserve(itsCoordinates.size() + rhs.size());
 
-  for (unsigned i = 0; i < rhs.size(); i ++)
-     itsCoordinates.push_back(rhs.itsCoordinates[i]);
+      for (unsigned i = 0; i < rhs.size(); i++)
+        itsCoordinates.push_back(rhs.itsCoordinates[i]);
 
-  return *this;
-}
+      return *this;
+    }
 
-BeamCoordinates& BeamCoordinates::operator+= (const BeamCoord3D &rhs)
-{
-  itsCoordinates.push_back(rhs);
+    BeamCoordinates& BeamCoordinates::operator+= (const BeamCoord3D &rhs)
+    {
+      itsCoordinates.push_back(rhs);
 
-  return *this;
-}
+      return *this;
+    }
 
-BeamCoordinates::BeamCoordinates(const Matrix<double> &coordinates)
-{
-  itsCoordinates.reserve(coordinates.size());
+    BeamCoordinates::BeamCoordinates(const Matrix<double> &coordinates)
+    {
+      itsCoordinates.reserve(coordinates.size());
 
-  for (unsigned i = 0; i < coordinates.size(); i ++)
-    itsCoordinates.push_back(BeamCoord3D(coordinates[i][0], coordinates[i][1]));
-}
+      for (unsigned i = 0; i < coordinates.size(); i++)
+        itsCoordinates.push_back(BeamCoord3D(coordinates[i][0], coordinates[i][1]));
+    }
 
 
-}
+  }
 }
diff --git a/RTCP/Cobalt/CoInterface/src/BeamCoordinates.h b/RTCP/Cobalt/CoInterface/src/BeamCoordinates.h
index 0d4f29ff64a12630f0f6d865ee4994cc065e546e..b9391044599ce5544258a7a6583e42b6e630a854 100644
--- a/RTCP/Cobalt/CoInterface/src/BeamCoordinates.h
+++ b/RTCP/Cobalt/CoInterface/src/BeamCoordinates.h
@@ -8,182 +8,199 @@
 #include <cmath>
 #include <ostream>
 
-namespace LOFAR {
-namespace RTCP {
-
-// Beam coordinates are offsets for pencil beams (tied array beams) relative to the center
-// of the station/beamformer beam.
-
-class BeamCoord3D {
-  public:
-    BeamCoord3D(double ra, double dec) {
-      itsXYZ[0] = ra;
-      itsXYZ[1] = dec;
-      itsXYZ[2] = sqrt(1.0 - ra * ra - dec * dec);
-    /*
-      // (ra,dec) is a spherical direction, but the station positions
-      // and phase centers are cartesian (x,y,z with origin close to the geocenter).
-      // Spherical coordinates are converted to cartesian as follows:
-      //
-      // 	phi = .5pi - DEC, theta = RA (in parset: angle1=RA, angle2=DEC)
-      //        rho = 1 (distance), since we need to construct a unit vector
-      //
-      //        then: x = rho*sin(phi)*cos(theta), y = rho*sin(phi)*sin(theta), z = rho*cos(theta)
-      //
-      // NOTE: The use of the letters phi and theta differ or are swapped between sources.
-
-      // in this case, phi is relative to the original beam, so .5pi is already compensated for. The
-      // direction of DEC is still important, so we have to use phi = -dec to get the proper relative change
-      // in angle.
-      const double phi = -dec;
-      const double theta = ra;
-
-      itsXYZ[0] = sin(phi)*cos(theta);
-      itsXYZ[1] = sin(phi)*sin(theta);
-      itsXYZ[2] = cos(theta);
-    */  
-    }
+namespace LOFAR
+{
+  namespace RTCP
+  {
 
-    BeamCoord3D(double x, double y, double z) {
-      itsXYZ[0] = x;
-      itsXYZ[1] = y;
-      itsXYZ[2] = z;
-    }
+    // Beam coordinates are offsets for pencil beams (tied array beams) relative to the center
+    // of the station/beamformer beam.
 
-    BeamCoord3D(const double xyz[3]) {
-      itsXYZ[0] = xyz[0];
-      itsXYZ[1] = xyz[1];
-      itsXYZ[2] = xyz[2];
-    }
+    class BeamCoord3D
+    {
+    public:
+      BeamCoord3D(double ra, double dec)
+      {
+        itsXYZ[0] = ra;
+        itsXYZ[1] = dec;
+        itsXYZ[2] = sqrt(1.0 - ra * ra - dec * dec);
+        /*
+           // (ra,dec) is a spherical direction, but the station positions
+           // and phase centers are cartesian (x,y,z with origin close to the geocenter).
+           // Spherical coordinates are converted to cartesian as follows:
+           //
+           //   phi = .5pi - DEC, theta = RA (in parset: angle1=RA, angle2=DEC)
+           //        rho = 1 (distance), since we need to construct a unit vector
+           //
+           //        then: x = rho*sin(phi)*cos(theta), y = rho*sin(phi)*sin(theta), z = rho*cos(theta)
+           //
+           // NOTE: The use of the letters phi and theta differ or are swapped between sources.
+
+           // in this case, phi is relative to the original beam, so .5pi is already compensated for. The
+           // direction of DEC is still important, so we have to use phi = -dec to get the proper relative change
+           // in angle.
+           const double phi = -dec;
+           const double theta = ra;
+
+           itsXYZ[0] = sin(phi)*cos(theta);
+           itsXYZ[1] = sin(phi)*sin(theta);
+           itsXYZ[2] = cos(theta);
+         */
+      }
+
+      BeamCoord3D(double x, double y, double z)
+      {
+        itsXYZ[0] = x;
+        itsXYZ[1] = y;
+        itsXYZ[2] = z;
+      }
+
+      BeamCoord3D(const double xyz[3])
+      {
+        itsXYZ[0] = xyz[0];
+        itsXYZ[1] = xyz[1];
+        itsXYZ[2] = xyz[2];
+      }
+
+      BeamCoord3D(std::vector<double> xyz)
+      {
+        itsXYZ[0] = xyz[0];
+        itsXYZ[1] = xyz[1];
+        itsXYZ[2] = xyz[2];
+      }
+
+      inline BeamCoord3D& operator-= (const BeamCoord3D &rhs)
+      {
+        itsXYZ[0] -= rhs.itsXYZ[0];
+        itsXYZ[1] -= rhs.itsXYZ[1];
+        itsXYZ[2] -= rhs.itsXYZ[2];
+
+        return *this;
+      }
+
+      inline BeamCoord3D& operator+= (const BeamCoord3D &rhs)
+      {
+        itsXYZ[0] += rhs.itsXYZ[0];
+        itsXYZ[1] += rhs.itsXYZ[1];
+        itsXYZ[2] += rhs.itsXYZ[2];
+
+        return *this;
+      }
+
+      inline BeamCoord3D& operator*= (double a)
+      {
+        itsXYZ[0] *= a;
+        itsXYZ[1] *= a;
+        itsXYZ[2] *= a;
+
+        return *this;
+      }
+
+      inline double operator[] (unsigned i) const
+      {
+        return itsXYZ[i];
+      }
+
+      inline double &operator[] (unsigned i)
+      {
+        return itsXYZ[i];
+      }
+
+      friend double operator* (const BeamCoord3D &lhs, const BeamCoord3D &rhs);
+      friend std::ostream& operator<< (std::ostream &os, const BeamCoord3D &c);
+
+      void read(Stream *);
+      void write(Stream *) const;
+
+    private:
+      double itsXYZ[3];
+    };
+
+
+    // BeamCoordinates are coordinates of the pencil beams that need to
+    // be formed. Each coordinate is a normalised vector, relative to the
+    // center beam.
+    //
+    // The center beam has to be included as the first coordinate of (0,0,1).
+    class BeamCoordinates
+    {
+    public:
+      BeamCoordinates()
+      {
+      }
+      BeamCoordinates(const std::vector<BeamCoord3D> &coordinates) : itsCoordinates(coordinates)
+      {
+      }
+      BeamCoordinates(const Matrix<double> &coordinates);
+
+      inline std::vector<BeamCoord3D>& getCoordinates()
+      {
+        return itsCoordinates;
+      }
+
+      inline size_t size() const
+      {
+        return itsCoordinates.size();
+      }
+
+      inline const BeamCoord3D &operator[] (unsigned nr) const
+      {
+        return itsCoordinates[nr];
+      }
+
+      void read(Stream *s);
+      void write(Stream *s) const;
+
+      BeamCoordinates& operator += (const BeamCoordinates &rhs);
+      BeamCoordinates& operator += (const BeamCoord3D &rhs);
+
+      friend std::ostream& operator<< (std::ostream &os, const BeamCoordinates &c);
+
+    private:
+      std::vector<BeamCoord3D>  itsCoordinates;
+    };
+
+    inline double operator* (const BeamCoord3D &lhs, const BeamCoord3D &rhs)
+    {
+      double sum = 0;
 
-    BeamCoord3D(std::vector<double> xyz) {
-      itsXYZ[0] = xyz[0];
-      itsXYZ[1] = xyz[1];
-      itsXYZ[2] = xyz[2];
+      sum += lhs.itsXYZ[0] * rhs.itsXYZ[0];
+      sum += lhs.itsXYZ[1] * rhs.itsXYZ[1];
+      sum += lhs.itsXYZ[2] * rhs.itsXYZ[2];
+      return sum;
     }
 
-    inline BeamCoord3D& operator-= (const BeamCoord3D &rhs)
+    inline BeamCoord3D& operator- (const BeamCoord3D &lhs, const BeamCoord3D &rhs)
     {
-      itsXYZ[0] -= rhs.itsXYZ[0];
-      itsXYZ[1] -= rhs.itsXYZ[1];
-      itsXYZ[2] -= rhs.itsXYZ[2];
-
-      return *this;
+      return BeamCoord3D(lhs) -= rhs;
     }
 
-    inline BeamCoord3D& operator+= (const BeamCoord3D &rhs)
+    inline BeamCoord3D& operator+ (const BeamCoord3D &lhs, const BeamCoord3D &rhs)
     {
-      itsXYZ[0] += rhs.itsXYZ[0];
-      itsXYZ[1] += rhs.itsXYZ[1];
-      itsXYZ[2] += rhs.itsXYZ[2];
-
-      return *this;
+      return BeamCoord3D(lhs) += rhs;
     }
 
-    inline BeamCoord3D& operator*= (double a)
+    inline BeamCoord3D& operator* (double a, const BeamCoord3D &rhs)
     {
-      itsXYZ[0] *= a;
-      itsXYZ[1] *= a;
-      itsXYZ[2] *= a;
-
-      return *this;
+      return BeamCoord3D(rhs) *= a;
     }
 
-    inline double operator[] (unsigned i) const
+    inline BeamCoord3D& operator* (const BeamCoord3D &lhs, double a)
     {
-      return itsXYZ[i];
+      return BeamCoord3D(lhs) *= a;
     }
 
-    inline double &operator[] (unsigned i)
+    inline std::ostream& operator << (std::ostream& os, const BeamCoord3D &c)
     {
-      return itsXYZ[i];
+      return os << "(" << c.itsXYZ[0] << "," << c.itsXYZ[1] << "," << c.itsXYZ[2] << ")";
     }
 
-    friend double operator* (const BeamCoord3D &lhs, const BeamCoord3D &rhs);
-    friend std::ostream& operator<< (std::ostream &os, const BeamCoord3D &c);
-
-    void read(Stream *);
-    void write(Stream *) const;
-
-  private:
-    double itsXYZ[3];
-};
-
-
-// BeamCoordinates are coordinates of the pencil beams that need to
-// be formed. Each coordinate is a normalised vector, relative to the
-// center beam.
-//
-// The center beam has to be included as the first coordinate of (0,0,1).
-class BeamCoordinates
-{
-  public:
-    BeamCoordinates() {}
-    BeamCoordinates(const std::vector<BeamCoord3D> &coordinates): itsCoordinates(coordinates) {}
-    BeamCoordinates(const Matrix<double> &coordinates);
-
-    inline std::vector<BeamCoord3D>& getCoordinates() 
-    { return itsCoordinates; }
-
-    inline size_t size() const
-    { return itsCoordinates.size(); }
-
-    inline const BeamCoord3D &operator[] (unsigned nr) const
-    { return itsCoordinates[nr]; }
-
-    void read(Stream *s);
-    void write(Stream *s) const;
-
-    BeamCoordinates& operator += (const BeamCoordinates &rhs);
-    BeamCoordinates& operator += (const BeamCoord3D &rhs);
-
-    friend std::ostream& operator<< (std::ostream &os, const BeamCoordinates &c);
-
-private:
-    std::vector<BeamCoord3D>  itsCoordinates;
-};
-
-inline double operator* (const BeamCoord3D &lhs, const BeamCoord3D &rhs)
-{
-  double sum = 0;
-
-  sum += lhs.itsXYZ[0] * rhs.itsXYZ[0];
-  sum += lhs.itsXYZ[1] * rhs.itsXYZ[1];
-  sum += lhs.itsXYZ[2] * rhs.itsXYZ[2];
-  return sum;
-}
-
-inline BeamCoord3D& operator- (const BeamCoord3D &lhs, const BeamCoord3D &rhs)
-{
-  return BeamCoord3D(lhs) -= rhs;
-}
-
-inline BeamCoord3D& operator+ (const BeamCoord3D &lhs, const BeamCoord3D &rhs)
-{
-  return BeamCoord3D(lhs) += rhs;
-}
-
-inline BeamCoord3D& operator* (double a, const BeamCoord3D &rhs)
-{
-  return BeamCoord3D(rhs) *= a;
-}
-
-inline BeamCoord3D& operator* (const BeamCoord3D &lhs, double a)
-{
-  return BeamCoord3D(lhs) *= a;
-}
-
-inline std::ostream& operator << (std::ostream& os, const BeamCoord3D &c)
-{
-  return os << "(" << c.itsXYZ[0] << "," << c.itsXYZ[1] << "," << c.itsXYZ[2] << ")";
-}
-
-inline std::ostream& operator << (std::ostream &os, const BeamCoordinates &c)
-{
-  return os << c.itsCoordinates;
-}
+    inline std::ostream& operator << (std::ostream &os, const BeamCoordinates &c)
+    {
+      return os << c.itsCoordinates;
+    }
 
-}
+  }
 }
 
 #endif
diff --git a/RTCP/Cobalt/CoInterface/src/BeamFormedData.h b/RTCP/Cobalt/CoInterface/src/BeamFormedData.h
index b807e2922111a27127ed9e74cb6fe48d859090de..79c4e308204627fae08673b15148fc17b9338d22 100644
--- a/RTCP/Cobalt/CoInterface/src/BeamFormedData.h
+++ b/RTCP/Cobalt/CoInterface/src/BeamFormedData.h
@@ -9,104 +9,106 @@
 #include <CoInterface/SparseSet.h>
 #include <CoInterface/StreamableData.h>
 
-namespace LOFAR {
-namespace RTCP {
-
-/*
- * Data flow:
- *
- * BeamFormedData -> PreTransposeBeamFormedData -> TransposedBeamFormedData -> FinalBeamFormedData
- *
- * The separate steps are necessary since the data is required or produced in different orders
- * by different processes. The transpose wants to split beams and polarizations and puts subbands
- & in the highest dimension in exchange. The final data product however wants time to be the 
- * highest dimension.
- *
- */
-
-class BeamFormedData: public SampleData<fcomplex,4,2> 
+namespace LOFAR
 {
-  public:
-    typedef SampleData<fcomplex,4,2> SuperType;
+  namespace RTCP
+  {
 
-    BeamFormedData(unsigned nrBeams, unsigned nrChannels, unsigned nrSamples, Allocator &allocator = heapAllocator);
-};
+    /*
+     * Data flow:
+     *
+     * BeamFormedData -> PreTransposeBeamFormedData -> TransposedBeamFormedData -> FinalBeamFormedData
+     *
+     * The separate steps are necessary since the data is required or produced in different orders
+     * by different processes. The transpose wants to split beams and polarizations and puts subbands
+       & in the highest dimension in exchange. The final data product however wants time to be the
+     * highest dimension.
+     *
+     */
 
+    class BeamFormedData : public SampleData<fcomplex,4,2>
+    {
+    public:
+      typedef SampleData<fcomplex,4,2> SuperType;
 
-class PreTransposeBeamFormedData: public SampleData<float,3,1> 
-{
-  public:
-    typedef SampleData<float,3,1> SuperType;
+      BeamFormedData(unsigned nrBeams, unsigned nrChannels, unsigned nrSamples, Allocator &allocator = heapAllocator);
+    };
 
-    PreTransposeBeamFormedData(unsigned nrStokes, unsigned nrChannels, unsigned nrSamples, Allocator &allocator = heapAllocator);
-};
 
+    class PreTransposeBeamFormedData : public SampleData<float,3,1>
+    {
+    public:
+      typedef SampleData<float,3,1> SuperType;
 
-class TransposedBeamFormedData: public SampleData<float,3,2>
-{
-  public:
-	typedef SampleData<float,3,2> SuperType;
+      PreTransposeBeamFormedData(unsigned nrStokes, unsigned nrChannels, unsigned nrSamples, Allocator &allocator = heapAllocator);
+    };
 
-    TransposedBeamFormedData(unsigned nrSubbands, unsigned nrChannels, unsigned nrSamples, Allocator &allocator = heapAllocator);
 
-    virtual void setDimensions(unsigned nrSubbands, unsigned nrChannels, unsigned nrSamples);
-};
+    class TransposedBeamFormedData : public SampleData<float,3,2>
+    {
+    public:
+      typedef SampleData<float,3,2> SuperType;
 
+      TransposedBeamFormedData(unsigned nrSubbands, unsigned nrChannels, unsigned nrSamples, Allocator &allocator = heapAllocator);
 
-class FinalBeamFormedData: public SampleData<float,3,2>
-{
-  public:
-    typedef SampleData<float,3,2> SuperType;
+      virtual void setDimensions(unsigned nrSubbands, unsigned nrChannels, unsigned nrSamples);
+    };
 
-    FinalBeamFormedData(unsigned nrSamples, unsigned nrSubbands, unsigned nrChannels, Allocator & = heapAllocator);
 
-    virtual void setDimensions(unsigned nrSamples, unsigned nrSubbands, unsigned nrChannels);
-};
+    class FinalBeamFormedData : public SampleData<float,3,2>
+    {
+    public:
+      typedef SampleData<float,3,2> SuperType;
 
+      FinalBeamFormedData(unsigned nrSamples, unsigned nrSubbands, unsigned nrChannels, Allocator & = heapAllocator);
 
-inline BeamFormedData::BeamFormedData(unsigned nrBeams, unsigned nrChannels, unsigned nrSamples, Allocator &allocator)
-  // The "| 2" significantly improves transpose speeds for particular
-  // numbers of stations due to cache conflict effects.  The extra memory
-  // is not used.
-:
-  SuperType::SampleData(boost::extents[nrBeams][nrChannels][nrSamples | 2][NR_POLARIZATIONS], boost::extents[nrBeams][nrChannels], allocator)
-{
-}
+      virtual void setDimensions(unsigned nrSamples, unsigned nrSubbands, unsigned nrChannels);
+    };
 
 
-inline PreTransposeBeamFormedData::PreTransposeBeamFormedData(unsigned nrStokes, unsigned nrChannels, unsigned nrSamples, Allocator &allocator)
-:
-  SuperType::SampleData(boost::extents[nrStokes][nrChannels][nrSamples  | 2],  boost::extents[nrChannels], allocator)
-{
-}
+    inline BeamFormedData::BeamFormedData(unsigned nrBeams, unsigned nrChannels, unsigned nrSamples, Allocator &allocator)
+    // The "| 2" significantly improves transpose speeds for particular
+    // numbers of stations due to cache conflict effects.  The extra memory
+    // is not used.
+      :
+      SuperType::SampleData(boost::extents[nrBeams][nrChannels][nrSamples | 2][NR_POLARIZATIONS], boost::extents[nrBeams][nrChannels], allocator)
+    {
+    }
 
 
-inline TransposedBeamFormedData::TransposedBeamFormedData(unsigned nrSubbands, unsigned nrChannels, unsigned nrSamples, Allocator &allocator)
-:
-  SuperType(boost::extents[nrSubbands][nrChannels][nrSamples | 2], boost::extents[nrSubbands][nrChannels], allocator)
-{
-}
+    inline PreTransposeBeamFormedData::PreTransposeBeamFormedData(unsigned nrStokes, unsigned nrChannels, unsigned nrSamples, Allocator &allocator)
+      :
+      SuperType::SampleData(boost::extents[nrStokes][nrChannels][nrSamples | 2],  boost::extents[nrChannels], allocator)
+    {
+    }
 
 
-inline void TransposedBeamFormedData::setDimensions(unsigned nrSubbands, unsigned nrChannels, unsigned nrSamples)
-{
-  samples.resizeInplace(boost::extents[nrSubbands][nrChannels][nrSamples | 2]);
-}
+    inline TransposedBeamFormedData::TransposedBeamFormedData(unsigned nrSubbands, unsigned nrChannels, unsigned nrSamples, Allocator &allocator)
+      :
+      SuperType(boost::extents[nrSubbands][nrChannels][nrSamples | 2], boost::extents[nrSubbands][nrChannels], allocator)
+    {
+    }
 
 
-inline FinalBeamFormedData::FinalBeamFormedData(unsigned nrSamples, unsigned nrSubbands, unsigned nrChannels, Allocator &allocator)
-:
-  SuperType(boost::extents[nrSamples | 2][nrSubbands][nrChannels], boost::extents[nrSubbands][nrChannels], allocator)
-{
-}
+    inline void TransposedBeamFormedData::setDimensions(unsigned nrSubbands, unsigned nrChannels, unsigned nrSamples)
+    {
+      samples.resizeInplace(boost::extents[nrSubbands][nrChannels][nrSamples | 2]);
+    }
 
 
-inline void FinalBeamFormedData::setDimensions(unsigned nrSamples, unsigned nrSubbands, unsigned nrChannels)
-{
-  samples.resizeInplace(boost::extents[nrSamples | 2][nrSubbands][nrChannels]);
-}
+    inline FinalBeamFormedData::FinalBeamFormedData(unsigned nrSamples, unsigned nrSubbands, unsigned nrChannels, Allocator &allocator)
+      :
+      SuperType(boost::extents[nrSamples | 2][nrSubbands][nrChannels], boost::extents[nrSubbands][nrChannels], allocator)
+    {
+    }
+
+
+    inline void FinalBeamFormedData::setDimensions(unsigned nrSamples, unsigned nrSubbands, unsigned nrChannels)
+    {
+      samples.resizeInplace(boost::extents[nrSamples | 2][nrSubbands][nrChannels]);
+    }
 
-} // namespace RTCP
+  } // namespace RTCP
 } // namespace LOFAR
 
 #endif
diff --git a/RTCP/Cobalt/CoInterface/src/CN_Command.h b/RTCP/Cobalt/CoInterface/src/CN_Command.h
index c5bb034e9bcc7755376c2da357239bc95f91a9bc..ae58db89fa5f8a43f7bb9533bc4badaaf61a2914 100644
--- a/RTCP/Cobalt/CoInterface/src/CN_Command.h
+++ b/RTCP/Cobalt/CoInterface/src/CN_Command.h
@@ -27,83 +27,85 @@
 #include <string>
 
 
-namespace LOFAR {
-namespace RTCP {
-
-class CN_Command
+namespace LOFAR
 {
-  public:
-    enum Command {
-      PREPROCESS = 0x406e7404,
-      PROCESS,
-      POSTPROCESS,
-      STOP,
-    };
-    
-		 CN_Command();
-		 CN_Command(enum Command, unsigned param = 0);
-
-    enum Command &value();
-    unsigned &param();
-
-    void	 read(Stream *);
-    void	 write(Stream *) const;
-
-    std::string  name() const;
+  namespace RTCP
+  {
 
-  private:
-    struct MarshalledData
+    class CN_Command
     {
-      enum Command value;
-      unsigned param;
-    } itsMarshalledData;
-};
+    public:
+      enum Command {
+        PREPROCESS = 0x406e7404,
+        PROCESS,
+        POSTPROCESS,
+        STOP,
+      };
+
+      CN_Command();
+      CN_Command(enum Command, unsigned param = 0);
+
+      enum Command &value();
+      unsigned &param();
+
+      void         read(Stream *);
+      void         write(Stream *) const;
+
+      std::string  name() const;
+
+    private:
+      struct MarshalledData
+      {
+        enum Command value;
+        unsigned param;
+      } itsMarshalledData;
+    };
 
 
-inline CN_Command::CN_Command()
-{
-}
+    inline CN_Command::CN_Command()
+    {
+    }
 
-inline CN_Command::CN_Command(enum Command value, unsigned param)
-{
-  itsMarshalledData.value = value;
-  itsMarshalledData.param = param;
-}
+    inline CN_Command::CN_Command(enum Command value, unsigned param)
+    {
+      itsMarshalledData.value = value;
+      itsMarshalledData.param = param;
+    }
 
-inline enum CN_Command::Command &CN_Command::value()
-{
-  return itsMarshalledData.value;
-}
+    inline enum CN_Command::Command &CN_Command::value()
+    {
+      return itsMarshalledData.value;
+    }
 
-inline unsigned &CN_Command::param()
-{
-  return itsMarshalledData.param;
-}
+    inline unsigned &CN_Command::param()
+    {
+      return itsMarshalledData.param;
+    }
 
-inline void CN_Command::read(Stream *str)
-{
-  str->read(&itsMarshalledData, sizeof itsMarshalledData);
-}
+    inline void CN_Command::read(Stream *str)
+    {
+      str->read(&itsMarshalledData, sizeof itsMarshalledData);
+    }
 
-inline void CN_Command::write(Stream *str) const
-{
-  str->write(&itsMarshalledData, sizeof itsMarshalledData);
-}
+    inline void CN_Command::write(Stream *str) const
+    {
+      str->write(&itsMarshalledData, sizeof itsMarshalledData);
+    }
 
-inline std::string CN_Command::name() const
-{
-  switch(itsMarshalledData.value) {
-    case PREPROCESS:  return "PREPROCESS";
-    case PROCESS:     return "PROCESS";
-    case POSTPROCESS: return "POSTPROCESS";
-    case STOP:        return "STOP";
-  }
+    inline std::string CN_Command::name() const
+    {
+      switch(itsMarshalledData.value) {
+      case PREPROCESS:  return "PREPROCESS";
+      case PROCESS:     return "PROCESS";
+      case POSTPROCESS: return "POSTPROCESS";
+      case STOP:        return "STOP";
+      }
 
-  return "BAD COMMAND";
-}
+      return "BAD COMMAND";
+    }
 
 
-} // namespace RTCP
+  } // namespace RTCP
 } // namespace LOFAR
 
-#endif 
+#endif
diff --git a/RTCP/Cobalt/CoInterface/src/CN_Mapping.cc b/RTCP/Cobalt/CoInterface/src/CN_Mapping.cc
index 4bc13300ef47e1986663bc4512cf348e07323d3b..1fa3d3a7cce4f22e136551214f19bc97694cc41c 100644
--- a/RTCP/Cobalt/CoInterface/src/CN_Mapping.cc
+++ b/RTCP/Cobalt/CoInterface/src/CN_Mapping.cc
@@ -22,37 +22,39 @@
 
 #include <CoInterface/CN_Mapping.h>
 
-namespace LOFAR {
-namespace RTCP {
-
-unsigned CN_Mapping::mapCoreOnPset(unsigned core, unsigned pset)
+namespace LOFAR
 {
+  namespace RTCP
+  {
+
+    unsigned CN_Mapping::mapCoreOnPset(unsigned core, unsigned pset)
+    {
 #if defined HAVE_BGP
-  //return core ^ ((pset & 0x1) << 2) ^ ((pset & 0x02) >> 1) ^ ((pset & 0x04) >> 1) ^ ((pset & 0x08)) ^ ((pset & 0x10) >> 1) ^ ((pset & 0x20) >> 3);
+      //return core ^ ((pset & 0x1) << 2) ^ ((pset & 0x02) >> 1) ^ ((pset & 0x04) >> 1) ^ ((pset & 0x08)) ^ ((pset & 0x10) >> 1) ^ ((pset & 0x20) >> 3);
 
-  // TODO: there may be better mappings for partitions larger than one rack
-  static unsigned char mapX[] = { 0, 12 };
-  static unsigned char mapY[] = { 0,  2, 10,  8 };
-  static unsigned char mapZ[] = { 0,  1,  3,  2,  6,  7,  5,  4 };
+      // TODO: there may be better mappings for partitions larger than one rack
+      static unsigned char mapX[] = { 0, 12 };
+      static unsigned char mapY[] = { 0,  2, 10,  8 };
+      static unsigned char mapZ[] = { 0,  1,  3,  2,  6,  7,  5,  4 };
 
-  return core ^
-	 mapX[((pset & 0x08) >> 3)] ^
-	 mapY[((pset & 0x01) >> 0) | ((pset & 0x10) >> 3)] ^
-	 mapZ[((pset & 0x03) >> 1) | ((pset & 0x20) >> 3)];
+      return core ^
+             mapX[((pset & 0x08) >> 3)] ^
+             mapY[((pset & 0x01) >> 0) | ((pset & 0x10) >> 3)] ^
+             mapZ[((pset & 0x03) >> 1) | ((pset & 0x20) >> 3)];
 
 #else
-  (void)pset;
+      (void)pset;
 
-  return core;
+      return core;
 #endif
-}
+    }
 
-unsigned CN_Mapping::reverseMapCoreOnPset(unsigned core, unsigned pset)
-{
-  // just the same function
-  return mapCoreOnPset(core, pset);
-}
+    unsigned CN_Mapping::reverseMapCoreOnPset(unsigned core, unsigned pset)
+    {
+      // just the same function
+      return mapCoreOnPset(core, pset);
+    }
 
 
-} // namespace RTCP
+  } // namespace RTCP
 } // namespace LOFAR
diff --git a/RTCP/Cobalt/CoInterface/src/CN_Mapping.h b/RTCP/Cobalt/CoInterface/src/CN_Mapping.h
index 1e968169d66d8ef3d2c3f620bb5906058323f8d5..ec9a4dd7b9f08bfbc1b666d94a1e1f0a9a5f6795 100644
--- a/RTCP/Cobalt/CoInterface/src/CN_Mapping.h
+++ b/RTCP/Cobalt/CoInterface/src/CN_Mapping.h
@@ -25,24 +25,26 @@
 #define LOFAR_INTERFACE_CN_MAPPING_H
 
 
-namespace LOFAR {
-namespace RTCP {
-
-class CN_Mapping
+namespace LOFAR
 {
-  public:
-    // Reshuffle cores within different psets differently, to make the transpose
-    // over the 3D-torus much more efficient.  Without reshuffling, transposing
-    // cores often communicate in the same line or plane in the torus, causing
-    // severe bottlenecks over a few links.  With reshuffling, there are more
-    // redundant links, significantly improving the bandwidth.  TODO: improve
-    // the reshuffling function further, to minimize transpose times.
-
-    static unsigned mapCoreOnPset(unsigned core, unsigned pset);
-    static unsigned reverseMapCoreOnPset(unsigned core, unsigned pset);
-};
-
-} // namespace RTCP
+  namespace RTCP
+  {
+
+    class CN_Mapping
+    {
+    public:
+      // Reshuffle cores within different psets differently, to make the transpose
+      // over the 3D-torus much more efficient.  Without reshuffling, transposing
+      // cores often communicate in the same line or plane in the torus, causing
+      // severe bottlenecks over a few links.  With reshuffling, there are more
+      // redundant links, significantly improving the bandwidth.  TODO: improve
+      // the reshuffling function further, to minimize transpose times.
+
+      static unsigned mapCoreOnPset(unsigned core, unsigned pset);
+      static unsigned reverseMapCoreOnPset(unsigned core, unsigned pset);
+    };
+
+  } // namespace RTCP
 } // namespace LOFAR
 
 #endif
diff --git a/RTCP/Cobalt/CoInterface/src/Config.h b/RTCP/Cobalt/CoInterface/src/Config.h
index 18a7d2908cfcb9bd8a622cfab3387d050dcae3fa..b3dba6d74e1372142ea40a64f40124235203dc41 100644
--- a/RTCP/Cobalt/CoInterface/src/Config.h
+++ b/RTCP/Cobalt/CoInterface/src/Config.h
@@ -25,7 +25,7 @@
 
 /* This is included by C++ and assembly files.  Do not put anything but
    constants here! */
-#define NR_POLARIZATIONS	   2
-#define NR_TAPS			   16
+#define NR_POLARIZATIONS           2
+#define NR_TAPS                    16
 
 #endif
diff --git a/RTCP/Cobalt/CoInterface/src/CorrelatedData.h b/RTCP/Cobalt/CoInterface/src/CorrelatedData.h
index fe64de179c85c67bd1d00a4271d6d826638c414c..bbf5f362e2129be96ac17bf5ef422fed7727b3c3 100644
--- a/RTCP/Cobalt/CoInterface/src/CorrelatedData.h
+++ b/RTCP/Cobalt/CoInterface/src/CorrelatedData.h
@@ -12,204 +12,209 @@
 #include <Stream/Stream.h>
 
 
-namespace LOFAR {
-namespace RTCP {
-
-class CorrelatedData : public StreamableData, public IntegratableData
+namespace LOFAR
 {
-  public:
-    CorrelatedData(unsigned nrStations, unsigned nrChannels, unsigned maxNrValidSamples, Allocator & = heapAllocator, unsigned alignment = 512);
-    CorrelatedData(unsigned nrStations, unsigned nrChannels, unsigned maxNrValidSamples, std::complex<float> *visibilities, size_t nrVisibilities, Allocator & = heapAllocator, unsigned alignment = 512);
+  namespace RTCP
+  {
 
-    virtual IntegratableData &operator += (const IntegratableData &);
+    class CorrelatedData : public StreamableData, public IntegratableData
+    {
+    public:
+      CorrelatedData(unsigned nrStations, unsigned nrChannels, unsigned maxNrValidSamples, Allocator & = heapAllocator, unsigned alignment = 512);
+      CorrelatedData(unsigned nrStations, unsigned nrChannels, unsigned maxNrValidSamples, std::complex<float> *visibilities, size_t nrVisibilities, Allocator & = heapAllocator, unsigned alignment = 512);
 
-    unsigned			nrValidSamples(unsigned bl, unsigned ch) const;
-    void			setNrValidSamples(unsigned bl, unsigned ch, unsigned value);
+      virtual IntegratableData &operator += (const IntegratableData &);
 
-    const unsigned              itsAlignment;
-    const unsigned              itsNrBaselines;
+      unsigned                    nrValidSamples(unsigned bl, unsigned ch) const;
+      void                        setNrValidSamples(unsigned bl, unsigned ch, unsigned value);
 
-    MultiDimArray<fcomplex, 4>	visibilities; //[nrBaselines][nrChannels][NR_POLARIZATIONS][NR_POLARIZATIONS]
+      const unsigned itsAlignment;
+      const unsigned itsNrBaselines;
 
-    const unsigned			itsNrBytesPerNrValidSamples;
-    Matrix<uint32_t>		itsNrValidSamples4; //[nrBaselines][nrChannels]
-    Matrix<uint16_t>		itsNrValidSamples2; //[nrBaselines][nrChannels]
-    Matrix<uint8_t>		itsNrValidSamples1; //[nrBaselines][nrChannels]
+      MultiDimArray<fcomplex, 4>  visibilities; //[nrBaselines][nrChannels][NR_POLARIZATIONS][NR_POLARIZATIONS]
 
-  protected:
-    virtual void		readData(Stream *);
-    virtual void		writeData(Stream *);
+      const unsigned itsNrBytesPerNrValidSamples;
+      Matrix<uint32_t>            itsNrValidSamples4; //[nrBaselines][nrChannels]
+      Matrix<uint16_t>            itsNrValidSamples2; //[nrBaselines][nrChannels]
+      Matrix<uint8_t>             itsNrValidSamples1; //[nrBaselines][nrChannels]
 
-  private:
-    void init(unsigned nrChannels, Allocator &allocator);
-};
+    protected:
+      virtual void                readData(Stream *);
+      virtual void                writeData(Stream *);
 
+    private:
+      void init(unsigned nrChannels, Allocator &allocator);
+    };
 
-inline CorrelatedData::CorrelatedData(unsigned nrStations, unsigned nrChannels, unsigned maxNrValidSamples, Allocator &allocator, unsigned alignment)
-:
-  itsAlignment(alignment),
-  itsNrBaselines(nrStations * (nrStations + 1) / 2),
-  visibilities(boost::extents[itsNrBaselines][nrChannels][NR_POLARIZATIONS][NR_POLARIZATIONS], itsAlignment, allocator, true),
-  itsNrBytesPerNrValidSamples(maxNrValidSamples < 256 ? 1 : maxNrValidSamples < 65536 ? 2 : 4)
-{
-  init(nrChannels, allocator);
-}
 
+    inline CorrelatedData::CorrelatedData(unsigned nrStations, unsigned nrChannels, unsigned maxNrValidSamples, Allocator &allocator, unsigned alignment)
+      :
+      itsAlignment(alignment),
+      itsNrBaselines(nrStations * (nrStations + 1) / 2),
+      visibilities(boost::extents[itsNrBaselines][nrChannels][NR_POLARIZATIONS][NR_POLARIZATIONS], itsAlignment, allocator, true),
+      itsNrBytesPerNrValidSamples(maxNrValidSamples < 256 ? 1 : maxNrValidSamples < 65536 ? 2 : 4)
+    {
+      init(nrChannels, allocator);
+    }
 
-inline CorrelatedData::CorrelatedData(unsigned nrStations, unsigned nrChannels, unsigned maxNrValidSamples, std::complex<float> *visibilities, size_t nrVisibilities, Allocator &allocator, unsigned alignment)
-:
-  itsAlignment(alignment),
-  itsNrBaselines(nrStations * (nrStations + 1) / 2),
-  visibilities(boost::extents[itsNrBaselines][nrChannels][NR_POLARIZATIONS][NR_POLARIZATIONS], visibilities, false),
-  itsNrBytesPerNrValidSamples(maxNrValidSamples < 256 ? 1 : maxNrValidSamples < 65536 ? 2 : 4)
-{
-  ASSERT(this->visibilities.num_elements() == nrVisibilities);
 
-  init(nrChannels, allocator); 
-}
+    inline CorrelatedData::CorrelatedData(unsigned nrStations, unsigned nrChannels, unsigned maxNrValidSamples, std::complex<float> *visibilities, size_t nrVisibilities, Allocator &allocator, unsigned alignment)
+      :
+      itsAlignment(alignment),
+      itsNrBaselines(nrStations * (nrStations + 1) / 2),
+      visibilities(boost::extents[itsNrBaselines][nrChannels][NR_POLARIZATIONS][NR_POLARIZATIONS], visibilities, false),
+      itsNrBytesPerNrValidSamples(maxNrValidSamples < 256 ? 1 : maxNrValidSamples < 65536 ? 2 : 4)
+    {
+      ASSERT(this->visibilities.num_elements() == nrVisibilities);
 
-inline void CorrelatedData::init(unsigned nrChannels, Allocator &allocator)
-{
-  switch (itsNrBytesPerNrValidSamples) {
-    case 4 : itsNrValidSamples4.resize(boost::extents[itsNrBaselines][nrChannels], itsAlignment, allocator, true);
-            break;
-      
-    case 2 : itsNrValidSamples2.resize(boost::extents[itsNrBaselines][nrChannels], itsAlignment, allocator, true);
-            break;
+      init(nrChannels, allocator);
+    }
 
-    case 1 : itsNrValidSamples1.resize(boost::extents[itsNrBaselines][nrChannels], itsAlignment, allocator, true);
-            break;
-  }
-}
+    inline void CorrelatedData::init(unsigned nrChannels, Allocator &allocator)
+    {
+      switch (itsNrBytesPerNrValidSamples) {
+      case 4: itsNrValidSamples4.resize(boost::extents[itsNrBaselines][nrChannels], itsAlignment, allocator, true);
+        break;
 
+      case 2: itsNrValidSamples2.resize(boost::extents[itsNrBaselines][nrChannels], itsAlignment, allocator, true);
+        break;
 
-inline unsigned CorrelatedData::nrValidSamples(unsigned bl, unsigned ch) const
-{
-  switch (itsNrBytesPerNrValidSamples) {
-    case 4 : return itsNrValidSamples4[bl][ch];
-    case 2 : return itsNrValidSamples2[bl][ch];
-    case 1 : return itsNrValidSamples1[bl][ch];
-  }
+      case 1: itsNrValidSamples1.resize(boost::extents[itsNrBaselines][nrChannels], itsAlignment, allocator, true);
+        break;
+      }
+    }
 
-  return 0;
-}
 
+    inline unsigned CorrelatedData::nrValidSamples(unsigned bl, unsigned ch) const
+    {
+      switch (itsNrBytesPerNrValidSamples) {
+      case 4: return itsNrValidSamples4[bl][ch];
+      case 2: return itsNrValidSamples2[bl][ch];
+      case 1: return itsNrValidSamples1[bl][ch];
+      }
 
-inline void CorrelatedData::setNrValidSamples(unsigned bl, unsigned ch, unsigned value)
-{
-  switch (itsNrBytesPerNrValidSamples) {
-    case 4 : itsNrValidSamples4[bl][ch] = value;
-	     break;
+      return 0;
+    }
 
-    case 2 : itsNrValidSamples2[bl][ch] = value;
-	     break;
 
-    case 1 : itsNrValidSamples1[bl][ch] = value;
-	     break;
-  }
-}
+    inline void CorrelatedData::setNrValidSamples(unsigned bl, unsigned ch, unsigned value)
+    {
+      switch (itsNrBytesPerNrValidSamples) {
+      case 4: itsNrValidSamples4[bl][ch] = value;
+        break;
 
+      case 2: itsNrValidSamples2[bl][ch] = value;
+        break;
 
-inline void CorrelatedData::readData(Stream *str)
-{
-  str->read(visibilities.origin(), align(visibilities.num_elements() * sizeof(fcomplex), itsAlignment));
+      case 1: itsNrValidSamples1[bl][ch] = value;
+        break;
+      }
+    }
 
-  switch (itsNrBytesPerNrValidSamples) {
-    case 4 : str->read(itsNrValidSamples4.origin(), align(itsNrValidSamples4.num_elements() * sizeof(uint32_t), itsAlignment));
-            break;
 
-    case 2 : str->read(itsNrValidSamples2.origin(), align(itsNrValidSamples2.num_elements() * sizeof(uint16_t), itsAlignment));
-            break;
+    inline void CorrelatedData::readData(Stream *str)
+    {
+      str->read(visibilities.origin(), align(visibilities.num_elements() * sizeof(fcomplex), itsAlignment));
 
-    case 1 : str->read(itsNrValidSamples1.origin(), align(itsNrValidSamples1.num_elements() * sizeof(uint8_t), itsAlignment));
-            break;
-  }
-}
+      switch (itsNrBytesPerNrValidSamples) {
+      case 4: str->read(itsNrValidSamples4.origin(), align(itsNrValidSamples4.num_elements() * sizeof(uint32_t), itsAlignment));
+        break;
 
+      case 2: str->read(itsNrValidSamples2.origin(), align(itsNrValidSamples2.num_elements() * sizeof(uint16_t), itsAlignment));
+        break;
 
-inline void CorrelatedData::writeData(Stream *str) 
-{
-  str->write(visibilities.origin(), align(visibilities.num_elements() * sizeof *visibilities.origin(), itsAlignment));
+      case 1: str->read(itsNrValidSamples1.origin(), align(itsNrValidSamples1.num_elements() * sizeof(uint8_t), itsAlignment));
+        break;
+      }
+    }
 
-  switch (itsNrBytesPerNrValidSamples) {
-    case 4 : str->write(itsNrValidSamples4.origin(), align(itsNrValidSamples4.num_elements() * sizeof(uint32_t), itsAlignment));
-            break;
 
-    case 2 : str->write(itsNrValidSamples2.origin(), align(itsNrValidSamples2.num_elements() * sizeof(uint16_t), itsAlignment));
-            break;
+    inline void CorrelatedData::writeData(Stream *str)
+    {
+      str->write(visibilities.origin(), align(visibilities.num_elements() * sizeof *visibilities.origin(), itsAlignment));
 
-    case 1 : str->write(itsNrValidSamples1.origin(), align(itsNrValidSamples1.num_elements() * sizeof(uint8_t), itsAlignment));
-            break;
-  }
-}
+      switch (itsNrBytesPerNrValidSamples) {
+      case 4: str->write(itsNrValidSamples4.origin(), align(itsNrValidSamples4.num_elements() * sizeof(uint32_t), itsAlignment));
+        break;
 
+      case 2: str->write(itsNrValidSamples2.origin(), align(itsNrValidSamples2.num_elements() * sizeof(uint16_t), itsAlignment));
+        break;
 
-template <typename T> inline void addNrValidSamples(T * __restrict__ dst, const T * __restrict__ src, unsigned count)
-{
-  for (unsigned i = 0; i < count; i ++)
-    dst[i] += src[i];
-}
+      case 1: str->write(itsNrValidSamples1.origin(), align(itsNrValidSamples1.num_elements() * sizeof(uint8_t), itsAlignment));
+        break;
+      }
+    }
 
 
-template<> inline void addNrValidSamples<uint16_t>(uint16_t * __restrict__ dst, const uint16_t * __restrict__ src, unsigned count)
-{
-  addNrValidSamples<uint32_t>(reinterpret_cast<uint32_t*>(dst), reinterpret_cast<const uint32_t*>(src), count / 2);
+    template <typename T>
+    inline void addNrValidSamples(T * __restrict__ dst, const T * __restrict__ src, unsigned count)
+    {
+      for (unsigned i = 0; i < count; i++)
+        dst[i] += src[i];
+    }
 
-  if (count & 1)
-    dst[count - 1] += src[count - 1];
-}
 
+    template<>
+    inline void addNrValidSamples<uint16_t>(uint16_t * __restrict__ dst, const uint16_t * __restrict__ src, unsigned count)
+    {
+      addNrValidSamples<uint32_t>(reinterpret_cast<uint32_t*>(dst), reinterpret_cast<const uint32_t*>(src), count / 2);
 
-template<> inline void addNrValidSamples<uint8_t>(uint8_t * __restrict__ dst, const uint8_t * __restrict__ src, unsigned count)
-{
-  addNrValidSamples<uint16_t>(reinterpret_cast<uint16_t*>(dst), reinterpret_cast<const uint16_t*>(src), count / 2);
+      if (count & 1)
+        dst[count - 1] += src[count - 1];
+    }
 
-  if (count & 1)
-    dst[count - 1] += src[count - 1];
-}
 
+    template<>
+    inline void addNrValidSamples<uint8_t>(uint8_t * __restrict__ dst, const uint8_t * __restrict__ src, unsigned count)
+    {
+      addNrValidSamples<uint16_t>(reinterpret_cast<uint16_t*>(dst), reinterpret_cast<const uint16_t*>(src), count / 2);
 
-inline IntegratableData &CorrelatedData::operator += (const IntegratableData &other_)
-{
-  const CorrelatedData &other = static_cast<const CorrelatedData &>(other_);
+      if (count & 1)
+        dst[count - 1] += src[count - 1];
+    }
 
-  // add visibilities
-  {
-    fcomplex	   *dst	 = visibilities.origin();
-    const fcomplex *src	 = other.visibilities.origin();
-    unsigned	   count = visibilities.num_elements();
+
+    inline IntegratableData &CorrelatedData::operator += (const IntegratableData &other_)
+    {
+      const CorrelatedData &other = static_cast<const CorrelatedData &>(other_);
+
+      // add visibilities
+      {
+        fcomplex       *dst = visibilities.origin();
+        const fcomplex *src = other.visibilities.origin();
+        unsigned count = visibilities.num_elements();
 #ifdef HAVE_BGP
-    unsigned fastcopyfloats = (count * 2) & ~0xF;
-    unsigned remainder = count % 8;
+        unsigned fastcopyfloats = (count * 2) & ~0xF;
+        unsigned remainder = count % 8;
 
-    for (unsigned i = 0; i < remainder; i ++)
-      dst[i] += src[i];
+        for (unsigned i = 0; i < remainder; i++)
+          dst[i] += src[i];
 
-    if (fastcopyfloats > 0)
-      _add_2_single_precision_vectors( reinterpret_cast<float*>(dst + remainder), reinterpret_cast<float*>(dst + remainder), reinterpret_cast<const float*>(src + remainder), fastcopyfloats );
+        if (fastcopyfloats > 0)
+          _add_2_single_precision_vectors( reinterpret_cast<float*>(dst + remainder), reinterpret_cast<float*>(dst + remainder), reinterpret_cast<const float*>(src + remainder), fastcopyfloats );
 #else
-    for (unsigned i = 0; i < count; i ++)
-      dst[i] += src[i];
+        for (unsigned i = 0; i < count; i++)
+          dst[i] += src[i];
 #endif
-  }
+      }
 
-  // add nr. valid samples
-  switch (itsNrBytesPerNrValidSamples) {
-    case 4 : addNrValidSamples(itsNrValidSamples4.origin(), other.itsNrValidSamples4.origin(), itsNrValidSamples4.num_elements());
-	     break;
+      // add nr. valid samples
+      switch (itsNrBytesPerNrValidSamples) {
+      case 4: addNrValidSamples(itsNrValidSamples4.origin(), other.itsNrValidSamples4.origin(), itsNrValidSamples4.num_elements());
+        break;
 
-    case 2 : addNrValidSamples(itsNrValidSamples2.origin(), other.itsNrValidSamples2.origin(), itsNrValidSamples2.num_elements());
-	     break;
+      case 2: addNrValidSamples(itsNrValidSamples2.origin(), other.itsNrValidSamples2.origin(), itsNrValidSamples2.num_elements());
+        break;
 
-    case 1 : addNrValidSamples(itsNrValidSamples1.origin(), other.itsNrValidSamples1.origin(), itsNrValidSamples1.num_elements());
-	     break;
-  }
+      case 1: addNrValidSamples(itsNrValidSamples1.origin(), other.itsNrValidSamples1.origin(), itsNrValidSamples1.num_elements());
+        break;
+      }
 
-  return *this;
-}
+      return *this;
+    }
 
 
-} // namespace RTCP
+  } // namespace RTCP
 } // namespace LOFAR
 
 #endif
diff --git a/RTCP/Cobalt/CoInterface/src/DataFactory.cc b/RTCP/Cobalt/CoInterface/src/DataFactory.cc
index c84f715c2aa99d7cf961d5c5226d1112514b1d47..fef197edfb938110bc39c1716afa0df839e18583 100644
--- a/RTCP/Cobalt/CoInterface/src/DataFactory.cc
+++ b/RTCP/Cobalt/CoInterface/src/DataFactory.cc
@@ -30,32 +30,34 @@
 #include <CoInterface/TriggerData.h>
 
 
-namespace LOFAR {
-namespace RTCP {
+namespace LOFAR
+{
+  namespace RTCP
+  {
 
 
-StreamableData *newStreamableData(const Parset &parset, OutputType outputType, int streamNr, Allocator &allocator)
-{
-  switch (outputType) {
-    case CORRELATED_DATA   : return new CorrelatedData(parset.nrMergedStations(), parset.nrChannelsPerSubband(), parset.integrationSteps(), allocator);
+    StreamableData *newStreamableData(const Parset &parset, OutputType outputType, int streamNr, Allocator &allocator)
+    {
+      switch (outputType) {
+      case CORRELATED_DATA: return new CorrelatedData(parset.nrMergedStations(), parset.nrChannelsPerSubband(), parset.integrationSteps(), allocator);
 
-    case BEAM_FORMED_DATA  : {
-      const Transpose2 &beamFormLogic = parset.transposeLogic();
+      case BEAM_FORMED_DATA: {
+        const Transpose2 &beamFormLogic = parset.transposeLogic();
 
-      unsigned nrSubbands    = streamNr == -1 ? beamFormLogic.maxNrSubbands() : beamFormLogic.streamInfo[streamNr].subbands.size();
-      unsigned nrChannels    = streamNr == -1 ? beamFormLogic.maxNrChannels() : beamFormLogic.streamInfo[streamNr].nrChannels;
-      unsigned nrSamples     = streamNr == -1 ? beamFormLogic.maxNrSamples()  : beamFormLogic.streamInfo[streamNr].nrSamples;
+        unsigned nrSubbands = streamNr == -1 ? beamFormLogic.maxNrSubbands() : beamFormLogic.streamInfo[streamNr].subbands.size();
+        unsigned nrChannels = streamNr == -1 ? beamFormLogic.maxNrChannels() : beamFormLogic.streamInfo[streamNr].nrChannels;
+        unsigned nrSamples = streamNr == -1 ? beamFormLogic.maxNrSamples()  : beamFormLogic.streamInfo[streamNr].nrSamples;
 
-      return new FinalBeamFormedData(nrSamples, nrSubbands, nrChannels, allocator);
-    }
+        return new FinalBeamFormedData(nrSamples, nrSubbands, nrChannels, allocator);
+      }
 
-    case TRIGGER_DATA      : return new TriggerData;
+      case TRIGGER_DATA: return new TriggerData;
 
-    default		   : THROW(CoInterfaceException, "unsupported output type");
-  }
+      default: THROW(CoInterfaceException, "unsupported output type");
+      }
 
-}
+    }
 
 
-} // namespace RTCP
+  } // namespace RTCP
 } // namespace LOFAR
diff --git a/RTCP/Cobalt/CoInterface/src/DataFactory.h b/RTCP/Cobalt/CoInterface/src/DataFactory.h
index b20c61478eeb65d9d1e6fb70cca82d1fb133437a..721ebb969de9a3d24941106d24d0e676e697c050 100644
--- a/RTCP/Cobalt/CoInterface/src/DataFactory.h
+++ b/RTCP/Cobalt/CoInterface/src/DataFactory.h
@@ -29,12 +29,14 @@
 #include <CoInterface/StreamableData.h>
 
 
-namespace LOFAR {
-namespace RTCP {
+namespace LOFAR
+{
+  namespace RTCP
+  {
 
-StreamableData *newStreamableData(const Parset &, OutputType, int streamNr = -1, Allocator & = heapAllocator);
+    StreamableData *newStreamableData(const Parset &, OutputType, int streamNr = -1, Allocator & = heapAllocator);
 
-} // namespace RTCP
+  } // namespace RTCP
 } // namespace LOFAR
 
 #endif
diff --git a/RTCP/Cobalt/CoInterface/src/Exceptions.h b/RTCP/Cobalt/CoInterface/src/Exceptions.h
index 252899ca999803d133dfb6139b077e88f38ff9d9..c94f36a7cbab1372ee1d59727778f845f47d7900 100644
--- a/RTCP/Cobalt/CoInterface/src/Exceptions.h
+++ b/RTCP/Cobalt/CoInterface/src/Exceptions.h
@@ -27,39 +27,41 @@
 #include <Common/Exceptions.h>
 
 
-namespace LOFAR {
-namespace RTCP {
-  //
-  // This exception will be thrown when an rtcp fails.
-  //
-  EXCEPTION_CLASS(RTCPException, LOFAR::Exception);
+namespace LOFAR
+{
+  namespace RTCP
+  {
+    //
+    // This exception will be thrown when an rtcp fails.
+    //
+    EXCEPTION_CLASS(RTCPException, LOFAR::Exception);
 
-  //
-  // This exception will be thrown when an an CoInterface error occurs.
-  //
-  EXCEPTION_CLASS(CoInterfaceException, RTCPException);
+    //
+    // This exception will be thrown when an an CoInterface error occurs.
+    //
+    EXCEPTION_CLASS(CoInterfaceException, RTCPException);
 
-  //
-  // This exception will be thrown when an an IONProc error occurs.
-  //
-  EXCEPTION_CLASS(IONProcException, RTCPException);
+    //
+    // This exception will be thrown when an an IONProc error occurs.
+    //
+    EXCEPTION_CLASS(IONProcException, RTCPException);
 
-  //
-  // This exception will be thrown when an an CNProc error occurs.
-  //
-  EXCEPTION_CLASS(CNProcException, RTCPException);
+    //
+    // This exception will be thrown when an an CNProc error occurs.
+    //
+    EXCEPTION_CLASS(CNProcException, RTCPException);
 
-  //
-  // This exception will be thrown when an an GPUProc error occurs.
-  //
-  EXCEPTION_CLASS(GPUProcException, RTCPException);
+    //
+    // This exception will be thrown when an an GPUProc error occurs.
+    //
+    EXCEPTION_CLASS(GPUProcException, RTCPException);
 
-  //
-  // This exception will be thrown when an an Storage error occurs.
-  //
-  EXCEPTION_CLASS(StorageException, RTCPException);
+    //
+    // This exception will be thrown when an an Storage error occurs.
+    //
+    EXCEPTION_CLASS(StorageException, RTCPException);
 
-} // namespace RTCP
+  } // namespace RTCP
 } // namespace LOFAR
 
-#endif 
+#endif
diff --git a/RTCP/Cobalt/CoInterface/src/FakeData.h b/RTCP/Cobalt/CoInterface/src/FakeData.h
index de85f728af2f0f81dbeeef446e66542f5b20f05e..db2056b045de6462c18c3559c32363bb975edeb4 100644
--- a/RTCP/Cobalt/CoInterface/src/FakeData.h
+++ b/RTCP/Cobalt/CoInterface/src/FakeData.h
@@ -8,105 +8,120 @@
 #include <Common/LofarTypes.h>
 #include <cmath>
 
-namespace LOFAR {
-namespace RTCP {
-
-class FakeData {
-  public:
-    FakeData( const Parset &parset ): itsParset(parset) {}
-
-    void fill( FilteredData *data, unsigned subband ) const;
-    void check( const FilteredData *data ) const;
-    void check( const FinalBeamFormedData *data, unsigned pol ) const;
+namespace LOFAR
+{
+  namespace RTCP
+  {
+
+    class FakeData
+    {
+    public:
+      FakeData( const Parset &parset ) : itsParset(parset)
+      {
+      }
 
-    void check( const StreamableData *data, OutputType outputType, unsigned streamNr ) const;
+      void fill( FilteredData *data, unsigned subband ) const;
+      void check( const FilteredData *data ) const;
+      void check( const FinalBeamFormedData *data, unsigned pol ) const;
 
-  private:
-    const Parset &itsParset;
-    static const double TOLERANCE = 1e-6;
+      void check( const StreamableData *data, OutputType outputType, unsigned streamNr ) const;
 
-    template<typename T> bool equal( const T a, const T b ) const { return a == b; }
-};
+    private:
+      const Parset &itsParset;
+      static const double TOLERANCE = 1e-6;
 
-template<> bool FakeData::equal( const float a, const float b ) const {
-  return fabsf(a - b) < TOLERANCE;
-}
+      template<typename T>
+      bool equal( const T a, const T b ) const
+      {
+        return a == b;
+      }
+    };
 
-template<> bool FakeData::equal( const double a, const double b ) const {
-  return fabs(a - b) < TOLERANCE;
-}
+    template<>
+    bool FakeData::equal( const float a, const float b ) const
+    {
+      return fabsf(a - b) < TOLERANCE;
+    }
 
-template<> bool FakeData::equal( const fcomplex a, const fcomplex b ) const {
-  return equal(real(a), real(b)) && equal(imag(a), imag(b));
-}
+    template<>
+    bool FakeData::equal( const double a, const double b ) const
+    {
+      return fabs(a - b) < TOLERANCE;
+    }
 
-void FakeData::fill( FilteredData *data, unsigned subband ) const
-{
-  for (unsigned s = 0; s < itsParset.nrStations(); s++) {
-    for (unsigned c = 0; c < itsParset.nrChannelsPerSubband(); c++) {
-      for (unsigned t = 0; t < itsParset.CNintegrationSteps(); t++) {
-        const float base = 1000 * subband;
-        data->samples[c][s][t][0] = makefcomplex(base + 1 * t, base + 2 * t);
-        data->samples[c][s][t][1] = makefcomplex(base + 3 * t, base + 5 * t);
-      }
-      data->flags[c][s].reset();
+    template<>
+    bool FakeData::equal( const fcomplex a, const fcomplex b ) const
+    {
+      return equal(real(a), real(b)) && equal(imag(a), imag(b));
     }
-  }
-}
 
-void FakeData::check( const FilteredData *data ) const
-{
-  for (unsigned s = 0; s < itsParset.nrStations(); s++) {
-    for (unsigned c = 0; c < itsParset.nrChannelsPerSubband(); c++) {
-      for (unsigned t = 0; t < itsParset.CNintegrationSteps(); t++) {
-        ASSERT( equal( data->samples[c][s][t][0], makefcomplex(1 * t, 2 * t) ) );
-        ASSERT( equal( data->samples[c][s][t][1], makefcomplex(3 * t, 5 * t) ) );
+    void FakeData::fill( FilteredData *data, unsigned subband ) const
+    {
+      for (unsigned s = 0; s < itsParset.nrStations(); s++) {
+        for (unsigned c = 0; c < itsParset.nrChannelsPerSubband(); c++) {
+          for (unsigned t = 0; t < itsParset.CNintegrationSteps(); t++) {
+            const float base = 1000 * subband;
+            data->samples[c][s][t][0] = makefcomplex(base + 1 * t, base + 2 * t);
+            data->samples[c][s][t][1] = makefcomplex(base + 3 * t, base + 5 * t);
+          }
+          data->flags[c][s].reset();
+        }
       }
-      ASSERT( data->flags[c][s].count() == 0 );
     }
-  }
-}
 
-void FakeData::check( const FinalBeamFormedData* /* data */, unsigned /* pol */) const
-{
-  // TODO: support other configurations than just 1 station equal to reference phase center
-/*
-  for (unsigned t = 0; t < itsParset.CNintegrationSteps(); t++) {
-    for (unsigned s = 0; s < itsParset.nrSubbands(); s++) {
-      for (unsigned c = 0; c < itsParset.nrChannelsPerSubband(); c++) {
-        switch (pol) {
-          case 0: // Xr
-            ASSERT( equal( data->samples[t][s][c], 1.0f * t ) );
-            break;
-          case 1: // Xi
-            ASSERT( equal( data->samples[t][s][c], 2.0f * t ) );
-            break;
-          case 2: // Yr
-            ASSERT( equal( data->samples[t][s][c], 3.0f * t ) );
-            break;
-          case 3: // Yi
-            ASSERT( equal( data->samples[t][s][c], 5.0f * t ) );
-            break;
+    void FakeData::check( const FilteredData *data ) const
+    {
+      for (unsigned s = 0; s < itsParset.nrStations(); s++) {
+        for (unsigned c = 0; c < itsParset.nrChannelsPerSubband(); c++) {
+          for (unsigned t = 0; t < itsParset.CNintegrationSteps(); t++) {
+            ASSERT( equal( data->samples[c][s][t][0], makefcomplex(1 * t, 2 * t) ) );
+            ASSERT( equal( data->samples[c][s][t][1], makefcomplex(3 * t, 5 * t) ) );
+          }
+          ASSERT( data->flags[c][s].count() == 0 );
         }
       }
-    }  
-  }
-*/
-}
+    }
 
-void FakeData::check( const StreamableData *data, OutputType outputType, unsigned streamNr ) const
-{
-  switch (outputType) {
-    case BEAM_FORMED_DATA:
-      check( static_cast<const FinalBeamFormedData *>(data), streamNr % NR_POLARIZATIONS );
-      break;
+    void FakeData::check( const FinalBeamFormedData* /* data */, unsigned /* pol */) const
+    {
+      // TODO: support other configurations than just 1 station equal to reference phase center
+      /*
+         for (unsigned t = 0; t < itsParset.CNintegrationSteps(); t++) {
+          for (unsigned s = 0; s < itsParset.nrSubbands(); s++) {
+            for (unsigned c = 0; c < itsParset.nrChannelsPerSubband(); c++) {
+              switch (pol) {
+                case 0: // Xr
+                  ASSERT( equal( data->samples[t][s][c], 1.0f * t ) );
+                  break;
+                case 1: // Xi
+                  ASSERT( equal( data->samples[t][s][c], 2.0f * t ) );
+                  break;
+                case 2: // Yr
+                  ASSERT( equal( data->samples[t][s][c], 3.0f * t ) );
+                  break;
+                case 3: // Yi
+                  ASSERT( equal( data->samples[t][s][c], 5.0f * t ) );
+                  break;
+              }
+            }
+          }
+         }
+       */
+    }
+
+    void FakeData::check( const StreamableData *data, OutputType outputType, unsigned streamNr ) const
+    {
+      switch (outputType) {
+      case BEAM_FORMED_DATA:
+        check( static_cast<const FinalBeamFormedData *>(data), streamNr % NR_POLARIZATIONS );
+        break;
 
-    default:
-      return;
-  }
-}
+      default:
+        return;
+      }
+    }
 
-} // namespace RTCP
+  } // namespace RTCP
 } // namespace LOFAR
 
 #endif
diff --git a/RTCP/Cobalt/CoInterface/src/FilteredData.h b/RTCP/Cobalt/CoInterface/src/FilteredData.h
index 6a7ce5275bed2754a9660efd7a8ccc464ca83769..b2b3f471252f0c8b66e137c646a23d99543b3067 100644
--- a/RTCP/Cobalt/CoInterface/src/FilteredData.h
+++ b/RTCP/Cobalt/CoInterface/src/FilteredData.h
@@ -9,40 +9,42 @@
 #include <CoInterface/SparseSet.h>
 #include <CoInterface/StreamableData.h>
 
-namespace LOFAR {
-namespace RTCP {
-
-class FilteredData : public SampleData<fcomplex, 4, 2>
+namespace LOFAR
 {
-  public:
-    typedef SampleData<fcomplex, 4, 2> SuperType;
+  namespace RTCP
+  {
 
-    FilteredData(unsigned nrStations, unsigned nrChannels, unsigned nrSamplesPerIntegration, Allocator & = heapAllocator);
+    class FilteredData : public SampleData<fcomplex, 4, 2>
+    {
+    public:
+      typedef SampleData<fcomplex, 4, 2> SuperType;
 
-    void resetFlags(void);
-};
+      FilteredData(unsigned nrStations, unsigned nrChannels, unsigned nrSamplesPerIntegration, Allocator & = heapAllocator);
 
+      void resetFlags(void);
+    };
 
-inline FilteredData::FilteredData(unsigned nrStations, unsigned nrChannels, unsigned nrSamplesPerIntegration, Allocator &allocator)
-:
-  // The "| 2" significantly improves transpose speeds for particular
-  // numbers of stations due to cache conflict effects.  The extra memory
-  // is not used.
-  SuperType::SampleData(boost::extents[nrChannels][nrStations][nrSamplesPerIntegration | 2][NR_POLARIZATIONS], boost::extents[nrChannels][nrStations], allocator)
-{
-}
 
+    inline FilteredData::FilteredData(unsigned nrStations, unsigned nrChannels, unsigned nrSamplesPerIntegration, Allocator &allocator)
+      :
+      // The "| 2" significantly improves transpose speeds for particular
+      // numbers of stations due to cache conflict effects.  The extra memory
+      // is not used.
+      SuperType::SampleData(boost::extents[nrChannels][nrStations][nrSamplesPerIntegration | 2][NR_POLARIZATIONS], boost::extents[nrChannels][nrStations], allocator)
+    {
+    }
 
-inline void FilteredData::resetFlags(void)
-{
-  for(unsigned c=0; c < flags.shape()[0]; c++) {
-    for(unsigned s=0; s < flags.shape()[1]; s++) {
-      flags[c][s].reset();
+
+    inline void FilteredData::resetFlags(void)
+    {
+      for(unsigned c = 0; c < flags.shape()[0]; c++) {
+        for(unsigned s = 0; s < flags.shape()[1]; s++) {
+          flags[c][s].reset();
+        }
+      }
     }
-  }
-}
 
-} // namespace RTCP
+  } // namespace RTCP
 } // namespace LOFAR
 
 #endif
diff --git a/RTCP/Cobalt/CoInterface/src/FinalMetaData.cc b/RTCP/Cobalt/CoInterface/src/FinalMetaData.cc
index 8a9e0e0b0ecb59f22c803ece93d8d9ad68fb2bd6..f01778f28b70e55162e4497b1e9b4f8c8c22b8ba 100644
--- a/RTCP/Cobalt/CoInterface/src/FinalMetaData.cc
+++ b/RTCP/Cobalt/CoInterface/src/FinalMetaData.cc
@@ -26,152 +26,166 @@
 #include <Common/LofarTypes.h>
 #include <Common/DataConvert.h>
 
-namespace LOFAR {
-namespace RTCP {
-
-// TODO: Export these functions to be globally available
-
-template<typename T> class StreamWriter {
-  public:
-    static void write( Stream &s, const T &data );
-    static void read( Stream &s, T &data );
-};
-
-template<typename T> class StreamWriter< std::vector<T> > {
-  public:
-    static void write( Stream &s, const std::vector<T> &data );
-    static void read( Stream &s, std::vector<T> &data );
-};
-
-template<> void StreamWriter<size_t>::write( Stream &s, const size_t &data )
+namespace LOFAR
 {
-  uint64 raw = data;
+  namespace RTCP
+  {
+
+    // TODO: Export these functions to be globally available
+
+    template<typename T>
+    class StreamWriter
+    {
+    public:
+      static void write( Stream &s, const T &data );
+      static void read( Stream &s, T &data );
+    };
+
+    template<typename T>
+    class StreamWriter< std::vector<T> >
+    {
+    public:
+      static void write( Stream &s, const std::vector<T> &data );
+      static void read( Stream &s, std::vector<T> &data );
+    };
+
+    template<>
+    void StreamWriter<size_t>::write( Stream &s, const size_t &data )
+    {
+      uint64 raw = data;
 
 #if !defined WORDS_BIGENDIAN
-  dataConvert(LittleEndian, &raw, 1);
+      dataConvert(LittleEndian, &raw, 1);
 #endif
 
-  s.write(&raw, sizeof raw);
-}
+      s.write(&raw, sizeof raw);
+    }
 
-template<> void StreamWriter<size_t>::read( Stream &s, size_t &data )
-{
-  uint64 raw_nr;
+    template<>
+    void StreamWriter<size_t>::read( Stream &s, size_t &data )
+    {
+      uint64 raw_nr;
 
-  s.read(&raw_nr, sizeof raw_nr);
+      s.read(&raw_nr, sizeof raw_nr);
 
 #if !defined WORDS_BIGENDIAN
-  dataConvert(LittleEndian, &raw_nr, 1);
+      dataConvert(LittleEndian, &raw_nr, 1);
 #endif
 
-  data = raw_nr;
-}
+      data = raw_nr;
+    }
 
-template<> void StreamWriter<std::string>::write( Stream &s, const std::string &data )
-{
-  size_t len = data.size();
+    template<>
+    void StreamWriter<std::string>::write( Stream &s, const std::string &data )
+    {
+      size_t len = data.size();
 
-  StreamWriter<size_t>::write(s, len);
+      StreamWriter<size_t>::write(s, len);
 
-  if (len > 0)
-    s.write(data.data(), len);
-}
+      if (len > 0)
+        s.write(data.data(), len);
+    }
 
-template<> void StreamWriter<std::string>::read( Stream &s, std::string &data )
-{
-  size_t len;
+    template<>
+    void StreamWriter<std::string>::read( Stream &s, std::string &data )
+    {
+      size_t len;
 
-  StreamWriter<size_t>::read(s, len);
+      StreamWriter<size_t>::read(s, len);
 
-  std::vector<char> buffer(len);
-  s.read(&buffer[0], len);
+      std::vector<char> buffer(len);
+      s.read(&buffer[0], len);
 
-  data.assign(&buffer[0], len);
-}
+      data.assign(&buffer[0], len);
+    }
 
-template<typename T> void StreamWriter< std::vector<T> >::write( Stream &s, const std::vector<T> &data )
-{
-  size_t len = data.size();
+    template<typename T>
+    void StreamWriter< std::vector<T> >::write( Stream &s, const std::vector<T> &data )
+    {
+      size_t len = data.size();
 
-  StreamWriter<size_t>::write(s, len);
+      StreamWriter<size_t>::write(s, len);
 
-  for (size_t i = 0; i < len; ++i)
-    StreamWriter<T>::write(s, data[i]);
-}
+      for (size_t i = 0; i < len; ++i)
+        StreamWriter<T>::write(s, data[i]);
+    }
 
-template<typename T> void StreamWriter< std::vector<T> >::read( Stream &s, std::vector<T> &data )
-{
-  size_t len;
+    template<typename T>
+    void StreamWriter< std::vector<T> >::read( Stream &s, std::vector<T> &data )
+    {
+      size_t len;
 
-  StreamWriter<size_t>::read(s, len);
+      StreamWriter<size_t>::read(s, len);
 
-  data.resize(len);
+      data.resize(len);
 
-  for (size_t i = 0; i < len; ++i)
-    StreamWriter<T>::read(s, data[i]);
-}
+      for (size_t i = 0; i < len; ++i)
+        StreamWriter<T>::read(s, data[i]);
+    }
 
-template<> void StreamWriter<struct FinalMetaData::BrokenRCU>::write( Stream &s, const struct FinalMetaData::BrokenRCU &data )
-{
-  StreamWriter<std::string>::write(s, data.station);
-  StreamWriter<std::string>::write(s, data.type);
-  StreamWriter<size_t>     ::write(s, data.seqnr);
-  StreamWriter<std::string>::write(s, data.time);
-}
+    template<>
+    void StreamWriter<struct FinalMetaData::BrokenRCU>::write( Stream &s, const struct FinalMetaData::BrokenRCU &data )
+    {
+      StreamWriter<std::string>::write(s, data.station);
+      StreamWriter<std::string>::write(s, data.type);
+      StreamWriter<size_t>     ::write(s, data.seqnr);
+      StreamWriter<std::string>::write(s, data.time);
+    }
 
-template<> void StreamWriter<struct FinalMetaData::BrokenRCU>::read( Stream &s, struct FinalMetaData::BrokenRCU &data )
-{
-  StreamWriter<std::string>::read(s, data.station);
-  StreamWriter<std::string>::read(s, data.type);
-  StreamWriter<size_t>     ::read(s, data.seqnr);
-  StreamWriter<std::string>::read(s, data.time);
-}
+    template<>
+    void StreamWriter<struct FinalMetaData::BrokenRCU>::read( Stream &s, struct FinalMetaData::BrokenRCU &data )
+    {
+      StreamWriter<std::string>::read(s, data.station);
+      StreamWriter<std::string>::read(s, data.type);
+      StreamWriter<size_t>     ::read(s, data.seqnr);
+      StreamWriter<std::string>::read(s, data.time);
+    }
 
-void FinalMetaData::write(Stream &s)
-{
-  StreamWriter< std::vector<struct BrokenRCU> >::write(s, brokenRCUsAtBegin);
-  StreamWriter< std::vector<struct BrokenRCU> >::write(s, brokenRCUsDuring);
-}
+    void FinalMetaData::write(Stream &s)
+    {
+      StreamWriter< std::vector<struct BrokenRCU> >::write(s, brokenRCUsAtBegin);
+      StreamWriter< std::vector<struct BrokenRCU> >::write(s, brokenRCUsDuring);
+    }
 
-void FinalMetaData::read(Stream &s)
-{
-  StreamWriter< std::vector<struct BrokenRCU> >::read(s, brokenRCUsAtBegin);
-  StreamWriter< std::vector<struct BrokenRCU> >::read(s, brokenRCUsDuring);
-}
+    void FinalMetaData::read(Stream &s)
+    {
+      StreamWriter< std::vector<struct BrokenRCU> >::read(s, brokenRCUsAtBegin);
+      StreamWriter< std::vector<struct BrokenRCU> >::read(s, brokenRCUsDuring);
+    }
 
-std::ostream& operator<<(std::ostream& os, const struct FinalMetaData::BrokenRCU &rcu)
-{
-  os << "(" << rcu.station << " " << rcu.type << " " << rcu.seqnr << " " << rcu.time << ")";
+    std::ostream& operator<<(std::ostream& os, const struct FinalMetaData::BrokenRCU &rcu)
+    {
+      os << "(" << rcu.station << " " << rcu.type << " " << rcu.seqnr << " " << rcu.time << ")";
 
-  return os;
-}
+      return os;
+    }
 
-std::ostream& operator<<(std::ostream& os, const FinalMetaData &finalMetaData)
-{
-  os << "Broken RCUs at begin of obs: ";
+    std::ostream& operator<<(std::ostream& os, const FinalMetaData &finalMetaData)
+    {
+      os << "Broken RCUs at begin of obs: ";
 
-  for (size_t i = 0; i < finalMetaData.brokenRCUsAtBegin.size(); i++) {
-    const struct FinalMetaData::BrokenRCU &rcu = finalMetaData.brokenRCUsAtBegin[i];
+      for (size_t i = 0; i < finalMetaData.brokenRCUsAtBegin.size(); i++) {
+        const struct FinalMetaData::BrokenRCU &rcu = finalMetaData.brokenRCUsAtBegin[i];
 
-    if (i > 0)
-      os << ", ";
+        if (i > 0)
+          os << ", ";
 
-    os << rcu;
-  }
+        os << rcu;
+      }
 
-  os << " Broken RCUs during obs: ";
+      os << " Broken RCUs during obs: ";
 
-  for (size_t i = 0; i < finalMetaData.brokenRCUsDuring.size(); i++) {
-    const struct FinalMetaData::BrokenRCU &rcu = finalMetaData.brokenRCUsDuring[i];
+      for (size_t i = 0; i < finalMetaData.brokenRCUsDuring.size(); i++) {
+        const struct FinalMetaData::BrokenRCU &rcu = finalMetaData.brokenRCUsDuring[i];
 
-    if (i > 0)
-      os << ", ";
+        if (i > 0)
+          os << ", ";
 
-    os << rcu;
-  }
+        os << rcu;
+      }
 
-  return os;
-}
+      return os;
+    }
 
-}
+  }
 }
diff --git a/RTCP/Cobalt/CoInterface/src/FinalMetaData.h b/RTCP/Cobalt/CoInterface/src/FinalMetaData.h
index d548653eb9c304b279bf999b3dbdb56171deecf2..605f26daaf360a035b975d49e40592ba067704cd 100644
--- a/RTCP/Cobalt/CoInterface/src/FinalMetaData.h
+++ b/RTCP/Cobalt/CoInterface/src/FinalMetaData.h
@@ -7,38 +7,45 @@
 #include <cstddef>
 #include <ostream>
 
-namespace LOFAR {
-namespace RTCP {
-
-class FinalMetaData
+namespace LOFAR
 {
-  public:
-    struct BrokenRCU {
-      std::string station; // CS001, etc
-      std::string type;    // RCU, LBA, HBA
-      size_t seqnr;        // RCU/antenna number
-      std::string time;    // date time of break
-
-      BrokenRCU() {}
-      BrokenRCU(const std::string &station, const std::string &type, size_t seqnr, const std::string &time):
-        station(station), type(type), seqnr(seqnr), time(time) {}
-
-      bool operator==(const BrokenRCU &other) const {
-        return station == other.station && type == other.type && seqnr == other.seqnr && time == other.time;
-      }
+  namespace RTCP
+  {
+
+    class FinalMetaData
+    {
+    public:
+      struct BrokenRCU {
+        std::string station; // CS001, etc
+        std::string type;  // RCU, LBA, HBA
+        size_t seqnr;      // RCU/antenna number
+        std::string time;  // date time of break
+
+        BrokenRCU()
+        {
+        }
+        BrokenRCU(const std::string &station, const std::string &type, size_t seqnr, const std::string &time) :
+          station(station), type(type), seqnr(seqnr), time(time)
+        {
+        }
+
+        bool operator==(const BrokenRCU &other) const
+        {
+          return station == other.station && type == other.type && seqnr == other.seqnr && time == other.time;
+        }
+      };
+
+      std::vector<BrokenRCU>  brokenRCUsAtBegin, brokenRCUsDuring;
+
+      void write(Stream &s);
+      void read(Stream &s);
     };
 
-    std::vector<BrokenRCU>  brokenRCUsAtBegin, brokenRCUsDuring;
-
-    void write(Stream &s);
-    void read(Stream &s);
-};
-
-std::ostream& operator<<(std::ostream& os, const struct FinalMetaData::BrokenRCU &rcu);
+    std::ostream& operator<<(std::ostream& os, const struct FinalMetaData::BrokenRCU &rcu);
 
-std::ostream& operator<<(std::ostream& os, const FinalMetaData &finalMetaData);
+    std::ostream& operator<<(std::ostream& os, const FinalMetaData &finalMetaData);
 
-} // namespace RTCP
+  } // namespace RTCP
 } // namespace LOFAR
 
 #endif
diff --git a/RTCP/Cobalt/CoInterface/src/InputData.h b/RTCP/Cobalt/CoInterface/src/InputData.h
index bfce14880a1a0fb5bd214d9c6e005543e0534e3b..2edf37406b0b8164bed735ed45e03dc977232d60 100644
--- a/RTCP/Cobalt/CoInterface/src/InputData.h
+++ b/RTCP/Cobalt/CoInterface/src/InputData.h
@@ -15,48 +15,54 @@
 #include <vector>
 
 
-namespace LOFAR {
-namespace RTCP {
-
-template <typename SAMPLE_TYPE> class InputData: public SampleData<SAMPLE_TYPE,3,1>
+namespace LOFAR
 {
-  public:
-    typedef SampleData<SAMPLE_TYPE,3,1> SuperType;
+  namespace RTCP
+  {
 
-    InputData(unsigned nrSubbands, unsigned nrSamplesToCNProc, Allocator &allocator = heapAllocator);
+    template <typename SAMPLE_TYPE>
+    class InputData : public SampleData<SAMPLE_TYPE,3,1>
+    {
+    public:
+      typedef SampleData<SAMPLE_TYPE,3,1> SuperType;
 
-    // used for asynchronous transpose
-    void readOne(Stream *str, unsigned subbandPosition);
+      InputData(unsigned nrSubbands, unsigned nrSamplesToCNProc, Allocator &allocator = heapAllocator);
 
-  protected:
-    virtual void checkEndianness();
-};
+      // used for asynchronous transpose
+      void readOne(Stream *str, unsigned subbandPosition);
 
+    protected:
+      virtual void checkEndianness();
+    };
 
-template <typename SAMPLE_TYPE> inline InputData<SAMPLE_TYPE>::InputData(unsigned nrSubbands, unsigned nrSamplesToCNProc, Allocator &allocator)
-:
-  SuperType(boost::extents[nrSubbands][nrSamplesToCNProc][NR_POLARIZATIONS], boost::extents[0], allocator)
-{
-}
 
-// used for asynchronous transpose
-template <typename SAMPLE_TYPE> inline void InputData<SAMPLE_TYPE>::readOne(Stream *str, unsigned subbandPosition)
-{
-  str->read(SuperType::samples[subbandPosition].origin(), SuperType::samples[subbandPosition].num_elements() * sizeof(SAMPLE_TYPE));
+    template <typename SAMPLE_TYPE>
+    inline InputData<SAMPLE_TYPE>::InputData(unsigned nrSubbands, unsigned nrSamplesToCNProc, Allocator &allocator)
+      :
+      SuperType(boost::extents[nrSubbands][nrSamplesToCNProc][NR_POLARIZATIONS], boost::extents[0], allocator)
+    {
+    }
+
+    // used for asynchronous transpose
+    template <typename SAMPLE_TYPE>
+    inline void InputData<SAMPLE_TYPE>::readOne(Stream *str, unsigned subbandPosition)
+    {
+      str->read(SuperType::samples[subbandPosition].origin(), SuperType::samples[subbandPosition].num_elements() * sizeof(SAMPLE_TYPE));
 
 #if defined C_IMPLEMENTATION && defined WORDS_BIGENDIAN
-  dataConvert(LittleEndian, SuperType::samples[subbandPosition].origin(), SuperType::samples[subbandPosition].num_elements());
+      dataConvert(LittleEndian, SuperType::samples[subbandPosition].origin(), SuperType::samples[subbandPosition].num_elements());
 #endif
-}
+    }
 
-template <typename SAMPLE_TYPE> inline void InputData<SAMPLE_TYPE>::checkEndianness()
-{
+    template <typename SAMPLE_TYPE>
+    inline void InputData<SAMPLE_TYPE>::checkEndianness()
+    {
 #if defined C_IMPLEMENTATION && defined WORDS_BIGENDIAN
-  dataConvert(LittleEndian, SuperType::samples.origin(), SuperType::samples.num_elements());
+      dataConvert(LittleEndian, SuperType::samples.origin(), SuperType::samples.num_elements());
 #endif
-}
+    }
 
-} // namespace RTCP
+  } // namespace RTCP
 } // namespace LOFAR
 
 #endif
diff --git a/RTCP/Cobalt/CoInterface/src/InverseFilteredData.h b/RTCP/Cobalt/CoInterface/src/InverseFilteredData.h
index 2ef2ad1cf1a0b9595821199153be162d27db315c..95eaae5e8e76e73cc40e470e8a6b42c4fd48368e 100644
--- a/RTCP/Cobalt/CoInterface/src/InverseFilteredData.h
+++ b/RTCP/Cobalt/CoInterface/src/InverseFilteredData.h
@@ -9,36 +9,38 @@
 #include <CoInterface/SparseSet.h>
 #include <CoInterface/StreamableData.h>
 
-namespace LOFAR {
-namespace RTCP {
+namespace LOFAR
+{
+  namespace RTCP
+  {
 
-// This assumes the nrChannels == 1
-// We store the data for only 1 beam, 1 polarization.
-// nrSamplesPerIntegration is the original nrSamplesPerIntegration, and now becomes the "major time" index.
-// The stationFilterSize is the minor time index.
+    // This assumes the nrChannels == 1
+    // We store the data for only 1 beam, 1 polarization.
+    // nrSamplesPerIntegration is the original nrSamplesPerIntegration, and now becomes the "major time" index.
+    // The stationFilterSize is the minor time index.
 
-class InverseFilteredData: public SampleData<float,1,1>
-{
-  public:
-    typedef SampleData<float,1,1> SuperType;
-
-    InverseFilteredData(unsigned nrSamplesPerIntegration, unsigned stationFilterSize);
-
-  protected:
-    const unsigned              itsNrSamplesPerIntegration;
-    const unsigned              itsStationFilterSize;
-    
-};
-
-inline InverseFilteredData::InverseFilteredData(unsigned nrSamplesPerIntegration, unsigned stationFilterSize)
-:
-  SuperType::SampleData(boost::extents[nrSamplesPerIntegration*stationFilterSize], boost::extents[1]),
-  itsNrSamplesPerIntegration(nrSamplesPerIntegration),
-  itsStationFilterSize(stationFilterSize)
-{
-}
+    class InverseFilteredData : public SampleData<float,1,1>
+    {
+    public:
+      typedef SampleData<float,1,1> SuperType;
+
+      InverseFilteredData(unsigned nrSamplesPerIntegration, unsigned stationFilterSize);
+
+    protected:
+      const unsigned itsNrSamplesPerIntegration;
+      const unsigned itsStationFilterSize;
+
+    };
+
+    inline InverseFilteredData::InverseFilteredData(unsigned nrSamplesPerIntegration, unsigned stationFilterSize)
+      :
+      SuperType::SampleData(boost::extents[nrSamplesPerIntegration * stationFilterSize], boost::extents[1]),
+      itsNrSamplesPerIntegration(nrSamplesPerIntegration),
+      itsStationFilterSize(stationFilterSize)
+    {
+    }
 
-} // namespace RTCP
+  } // namespace RTCP
 } // namespace LOFAR
 
 #endif
diff --git a/RTCP/Cobalt/CoInterface/src/MultiDimArray.h b/RTCP/Cobalt/CoInterface/src/MultiDimArray.h
index 09e1306d44eeb759ec00a38134185ed5da2a4a18..1a90c3e47b5189a6fbc44fd924147e5554be80b3 100644
--- a/RTCP/Cobalt/CoInterface/src/MultiDimArray.h
+++ b/RTCP/Cobalt/CoInterface/src/MultiDimArray.h
@@ -18,446 +18,455 @@
 #endif
 
 
-namespace LOFAR {
-namespace RTCP {
-
-
-/*
- * MultiDimArray wraps a boost::multi_array_ref to provide enhanced allocation,
- * alignment, resize, and reshape functionality.
- */
-template <typename T, unsigned DIM> class MultiDimArray : public boost::multi_array_ref<T, DIM>
+namespace LOFAR
 {
-  public:
-    typedef boost::multi_array_ref<T, DIM> SuperType;
-    typedef boost::detail::multi_array::extent_gen<DIM> ExtentList;
+  namespace RTCP
+  {
 
-    /*
-     * Default constructor. Creates an array of size 0 in all dimensions.
-     */
-    MultiDimArray(Allocator &allocator = heapAllocator)
-    :
-      SuperType(0, boost::detail::multi_array::extent_gen<DIM>()),
-      allocator(&allocator),
-      allocated_num_elements(0),
-      alignment(0),
-      padToAlignment(false),
-      construct(true)
-    {
-    }
 
     /*
-     * In-place constructor. Casts a MultiDimArray onto pre-allocated memory.
-     *
-     * extents:   dimensions of array
-     * ptr:       pointer to memory
-     * construct: true:  construct (and later destruct) the elements
-     *            false: elements are already constructed (view)
+     * MultiDimArray wraps a boost::multi_array_ref to provide enhanced allocation,
+     * alignment, resize, and reshape functionality.
      */
-    MultiDimArray(const ExtentList &extents, T *ptr, bool construct = true)
-    :
-      // Use 'placement new' to force initialisation through constructors if T is a class
-
-      // TODO: Not sure how to handle an exception raised by the constructor of T. The placement
-      // delete[] will be called, but that's an empty stub.
-      SuperType(construct ? new(ptr)T[nrElements(extents)] : ptr, extents),
-      allocator(0),
-      allocated_num_elements(nrElements(extents)),
-      alignment(alignment),
-      padToAlignment(padToAlignment),
-      construct(construct)
+    template <typename T, unsigned DIM>
+    class MultiDimArray : public boost::multi_array_ref<T, DIM>
     {
-      // NOTE: Elements are not destructed even if construct == true!
-    }
+    public:
+      typedef boost::multi_array_ref<T, DIM> SuperType;
+      typedef boost::detail::multi_array::extent_gen<DIM> ExtentList;
+
+      /*
+       * Default constructor. Creates an array of size 0 in all dimensions.
+       */
+      MultiDimArray(Allocator &allocator = heapAllocator)
+        :
+        SuperType(0, boost::detail::multi_array::extent_gen<DIM>()),
+        allocator(&allocator),
+        allocated_num_elements(0),
+        alignment(0),
+        padToAlignment(false),
+        construct(true)
+      {
+      }
 
+      /*
+       * In-place constructor. Casts a MultiDimArray onto pre-allocated memory.
+       *
+       * extents:   dimensions of array
+       * ptr:       pointer to memory
+       * construct: true:  construct (and later destruct) the elements
+       *            false: elements are already constructed (view)
+       */
+      MultiDimArray(const ExtentList &extents, T *ptr, bool construct = true)
+        :
+        // Use 'placement new' to force initialisation through constructors if T is a class
+
+        // TODO: Not sure how to handle an exception raised by the constructor of T. The placement
+        // delete[] will be called, but that's an empty stub.
+        SuperType(construct ? new(ptr)T[nrElements(extents)] : ptr, extents),
+        allocator(0),
+        allocated_num_elements(nrElements(extents)),
+        alignment(alignment),
+        padToAlignment(padToAlignment),
+        construct(construct)
+      {
+        // NOTE: Elements are not destructed even if construct == true!
+      }
 
-    /*
-     * Create an array, including memory allocation.
-     *
-     * extents:        dimensions of array
-     * alignment:      alignment of first element
-     * allocator:      allocator to use for allocation
-     * padToAlignment: if true, the size of the allocated memory is also padded
-     *                 to `alignment'.
-     * construct:      true:  construct (and later destruct) the elements
-     *                 false: elements are already constructed (view)
-     */
-    MultiDimArray(const ExtentList &extents, size_t alignment = defaultAlignment(), Allocator &allocator = heapAllocator, bool padToAlignment = false, bool construct = true)
-    :
-      // Use 'placement new' to force initialisation through constructors if T is a class
-
-      // TODO: Not sure how to handle an exception raised by the constructor of T. The placement
-      // delete[] will be called, but that's an empty stub.
-      SuperType(allocate(nrElements(extents), alignment, allocator, padToAlignment, construct), extents),
-      allocator(&allocator),
-      allocated_num_elements(nrElements(extents)),
-      alignment(alignment),
-      padToAlignment(padToAlignment),
-      construct(construct)
-    {
-    }
 
-    /*
-     * Copy constructor. Uses other.allocator to allocate a copy.
-     */
-    MultiDimArray(const MultiDimArray<T,DIM> &other)
-    :
-      SuperType(other.num_elements_ && other.allocator ? allocate(other.num_elements_, other.alignment, *other.allocator, other.padToAlignment, other.construct) : 0, other.extent_list_),
-//new(other.allocator->allocate(padToAlignment ? align(other.num_elements_ * sizeof(T), other.alignment) : other.num_elements_ * sizeof(T), other.alignment))T[other.num_elements_] : 0, other.extent_list_),
-      allocator(other.allocator),
-      allocated_num_elements(other.num_elements_),
-      alignment(other.alignment),
-      padToAlignment(other.padToAlignment),
-      construct(true)
-    {
-      ASSERTSTR(other.allocator, "Cannot copy MultiDimArray that does not have an allocator.");
+      /*
+       * Create an array, including memory allocation.
+       *
+       * extents:        dimensions of array
+       * alignment:      alignment of first element
+       * allocator:      allocator to use for allocation
+       * padToAlignment: if true, the size of the allocated memory is also padded
+       *                 to `alignment'.
+       * construct:      true:  construct (and later destruct) the elements
+       *                 false: elements are already constructed (view)
+       */
+      MultiDimArray(const ExtentList &extents, size_t alignment = defaultAlignment(), Allocator &allocator = heapAllocator, bool padToAlignment = false, bool construct = true)
+        :
+        // Use 'placement new' to force initialisation through constructors if T is a class
+
+        // TODO: Not sure how to handle an exception raised by the constructor of T. The placement
+        // delete[] will be called, but that's an empty stub.
+        SuperType(allocate(nrElements(extents), alignment, allocator, padToAlignment, construct), extents),
+        allocator(&allocator),
+        allocated_num_elements(nrElements(extents)),
+        alignment(alignment),
+        padToAlignment(padToAlignment),
+        construct(construct)
+      {
+      }
 
-      *this = other;
-    }
+      /*
+       * Copy constructor. Uses other.allocator to allocate a copy.
+       */
+      MultiDimArray(const MultiDimArray<T,DIM> &other)
+        :
+        SuperType(other.num_elements_ && other.allocator ? allocate(other.num_elements_, other.alignment, *other.allocator, other.padToAlignment, other.construct) : 0, other.extent_list_),
+        //new(other.allocator->allocate(padToAlignment ? align(other.num_elements_ * sizeof(T), other.alignment) : other.num_elements_ * sizeof(T), other.alignment))T[other.num_elements_] : 0, other.extent_list_),
+        allocator(other.allocator),
+        allocated_num_elements(other.num_elements_),
+        alignment(other.alignment),
+        padToAlignment(other.padToAlignment),
+        construct(true)
+      {
+        ASSERTSTR(other.allocator, "Cannot copy MultiDimArray that does not have an allocator.");
+
+        *this = other;
+      }
 
-    ~MultiDimArray()
-    {
-      destructElements();
+      ~MultiDimArray()
+      {
+        destructElements();
 
-      if (allocator) {
-        allocator->deallocate(this->base_);
-      }  
-    }
+        if (allocator) {
+          allocator->deallocate(this->base_);
+        }
+      }
 
-    /*
-     * Assignment operator. Works on any two arrays of the same dimensionality,
-     * type, and total number of elements.
-     */
-    MultiDimArray<T,DIM> &operator= (const MultiDimArray<T,DIM> &other)
-    {
-      if (other.num_elements_ != this->num_elements_)
-        THROW(CoInterfaceException, "Tried to assign an array with " << other.num_elements_ << " elements to an array with " << this->num_elements_ << "elements.");
+      /*
+       * Assignment operator. Works on any two arrays of the same dimensionality,
+       * type, and total number of elements.
+       */
+      MultiDimArray<T,DIM> &operator= (const MultiDimArray<T,DIM> &other)
+      {
+        if (other.num_elements_ != this->num_elements_)
+          THROW(CoInterfaceException, "Tried to assign an array with " << other.num_elements_ << " elements to an array with " << this->num_elements_ << "elements.");
 
-      T *me  = this->origin();
-      const T *him = other.origin();
+        T *me = this->origin();
+        const T *him = other.origin();
 
-      for (size_t i = 0; i < this->num_elements_; i ++)
-        *(me++) = *(him++); 
+        for (size_t i = 0; i < this->num_elements_; i++)
+          *(me++) = *(him++);
 
-      return *this;
-    }
+        return *this;
+      }
 
-    /*
-     * Resize the array by allocating new memory.
-     *
-     * extents:        new dimensions of array
-     * alignment:      alignment of first element
-     * allocator:      allocator to use for allocation
-     * padToAlignment: if true, the size of the allocated memory is also padded
-     *                 to `alignment'.
-     * construct:      true:  construct (and later destruct) the elements
-     *                 false: elements are already constructed (view)
-     */
-    void resize(const ExtentList &extents, size_t alignment, Allocator &allocator, bool padToAlignment = false, bool construct = true)
-    {
-      MultiDimArray newArray(extents, alignment, allocator, padToAlignment, construct);
-      std::swap(this->base_, newArray.base_);
-      std::swap(this->storage_, newArray.storage_);
-      std::swap(this->extent_list_, newArray.extent_list_);
-      std::swap(this->stride_list_, newArray.stride_list_);
-      std::swap(this->index_base_list_, newArray.index_base_list_);
-      std::swap(this->origin_offset_, newArray.origin_offset_);
-      std::swap(this->directional_offset_, newArray.directional_offset_);
-      std::swap(this->num_elements_, newArray.num_elements_);
-      std::swap(this->allocator, newArray.allocator);
-      std::swap(this->allocated_num_elements, newArray.allocated_num_elements);
-      std::swap(this->alignment, newArray.alignment);
-      std::swap(this->padToAlignment, newArray.padToAlignment);
-      std::swap(this->construct, newArray.construct);
-    }
+      /*
+       * Resize the array by allocating new memory.
+       *
+       * extents:        new dimensions of array
+       * alignment:      alignment of first element
+       * allocator:      allocator to use for allocation
+       * padToAlignment: if true, the size of the allocated memory is also padded
+       *                 to `alignment'.
+       * construct:      true:  construct (and later destruct) the elements
+       *                 false: elements are already constructed (view)
+       */
+      void resize(const ExtentList &extents, size_t alignment, Allocator &allocator, bool padToAlignment = false, bool construct = true)
+      {
+        MultiDimArray newArray(extents, alignment, allocator, padToAlignment, construct);
+        std::swap(this->base_, newArray.base_);
+        std::swap(this->storage_, newArray.storage_);
+        std::swap(this->extent_list_, newArray.extent_list_);
+        std::swap(this->stride_list_, newArray.stride_list_);
+        std::swap(this->index_base_list_, newArray.index_base_list_);
+        std::swap(this->origin_offset_, newArray.origin_offset_);
+        std::swap(this->directional_offset_, newArray.directional_offset_);
+        std::swap(this->num_elements_, newArray.num_elements_);
+        std::swap(this->allocator, newArray.allocator);
+        std::swap(this->allocated_num_elements, newArray.allocated_num_elements);
+        std::swap(this->alignment, newArray.alignment);
+        std::swap(this->padToAlignment, newArray.padToAlignment);
+        std::swap(this->construct, newArray.construct);
+      }
 
-    /*
-     * Resize the array by allocating new memory. Requires the allocator to be
-     * set.
-     *
-     * extents:        new dimensions of array
-     * alignment:      alignment of first element
-     */
-    void resize(const ExtentList &extents, size_t alignment = defaultAlignment())
-    {
-      ASSERTSTR(allocator, "Cannot resize MultiDimArray that does not have an allocator.");
+      /*
+       * Resize the array by allocating new memory. Requires the allocator to be
+       * set.
+       *
+       * extents:        new dimensions of array
+       * alignment:      alignment of first element
+       */
+      void resize(const ExtentList &extents, size_t alignment = defaultAlignment())
+      {
+        ASSERTSTR(allocator, "Cannot resize MultiDimArray that does not have an allocator.");
+
+        resize(extents, alignment, *allocator);
+      }
 
-      resize(extents, alignment, *allocator);
-    }
+      /*
+       * Resize the array in-place (reshape). Cannot resize the array beyond the
+       * memory that was originally allocated.
+       *
+       * extents:        new dimensions of array
+       */
+      void resizeInplace(const ExtentList &extents)
+      {
+        unsigned new_num_elements = nrElements(extents);
+
+        if (new_num_elements > allocated_num_elements)
+          THROW(CoInterfaceException, "MultiDimArray::resizeInplace: requested to resize to " << new_num_elements << " elements, but only " << allocated_num_elements << " are allocated");
+
+        // only destruct and construct all elements if the number of elements actually changes
+        if (new_num_elements != this->num_elements_ && construct) {
+          destructElements();
+          (void)new(this->base_)T[new_num_elements];
+        }
+
+        // regenerate the metadata, and use it.
+        // Our metadata will be freed due to the swap, but our data won't, because
+        // newArray.allocator == 0. Nor will our data be destructed, because
+        // newArray.construct == false.
+        MultiDimArray newArray(*this, extents);
+        //std::swap(this->base_, newArray.base_);
+        std::swap(this->storage_, newArray.storage_);
+        std::swap(this->extent_list_, newArray.extent_list_);
+        std::swap(this->stride_list_, newArray.stride_list_);
+        std::swap(this->index_base_list_, newArray.index_base_list_);
+        std::swap(this->origin_offset_, newArray.origin_offset_);
+        std::swap(this->directional_offset_, newArray.directional_offset_);
+        std::swap(this->num_elements_, newArray.num_elements_);
+        //std::swap(this->allocator, newArray.allocator);
+        //std::swap(this->allocated_num_elements, newArray.allocated_num_elements);
+        //std::swap(this->alignment, newArray.alignment);
+      }
 
-    /*
-     * Resize the array in-place (reshape). Cannot resize the array beyond the
-     * memory that was originally allocated.
-     *
-     * extents:        new dimensions of array
-     */
-    void resizeInplace(const ExtentList &extents)
-    {
-      unsigned new_num_elements = nrElements(extents);
+      /*
+       * Resize the array in-place (reshape) by changing only a single dimension.
+       * Cannot resize the array beyond the memory that was originally allocated.
+       *
+       * dimNr:      dimension number to change.
+       * newSize:    new size of dimension.
+       */
+      void resizeOneDimensionInplace(unsigned dimNr, size_t newSize)
+      {
+        ASSERTSTR(dimNr < DIM, "Cannot resize dimension " << dimNr << " because there are only " << DIM << " dimensions.");
 
-      if (new_num_elements > allocated_num_elements)
-        THROW(CoInterfaceException, "MultiDimArray::resizeInplace: requested to resize to " << new_num_elements << " elements, but only " << allocated_num_elements << " are allocated");
+        ExtentList newDims;
 
-      // only destruct and construct all elements if the number of elements actually changes
-      if (new_num_elements != this->num_elements_ && construct) {
-        destructElements();
-        (void)new(this->base_)T[new_num_elements];
-      }
+        for (size_t i = 0; i < DIM; i++)
+          newDims.ranges_[i] = this->extent_list_[i];
 
-      // regenerate the metadata, and use it.
-      // Our metadata will be freed due to the swap, but our data won't, because
-      // newArray.allocator == 0. Nor will our data be destructed, because
-      // newArray.construct == false.
-      MultiDimArray newArray(*this, extents);
-      //std::swap(this->base_, newArray.base_);
-      std::swap(this->storage_, newArray.storage_);
-      std::swap(this->extent_list_, newArray.extent_list_);
-      std::swap(this->stride_list_, newArray.stride_list_);
-      std::swap(this->index_base_list_, newArray.index_base_list_);
-      std::swap(this->origin_offset_, newArray.origin_offset_);
-      std::swap(this->directional_offset_, newArray.directional_offset_);
-      std::swap(this->num_elements_, newArray.num_elements_);
-      //std::swap(this->allocator, newArray.allocator);
-      //std::swap(this->allocated_num_elements, newArray.allocated_num_elements);
-      //std::swap(this->alignment, newArray.alignment);
-    }
+        newDims.ranges_[dimNr] = newSize;
 
-    /*
-     * Resize the array in-place (reshape) by changing only a single dimension.
-     * Cannot resize the array beyond the memory that was originally allocated.
-     *
-     * dimNr:      dimension number to change.
-     * newSize:    new size of dimension.
-     */
-    void resizeOneDimensionInplace(unsigned dimNr, size_t newSize)
-    {
-      ASSERTSTR(dimNr < DIM, "Cannot resize dimension " << dimNr << " because there are only " << DIM << " dimensions.");
+        resizeInplace(newDims);
+      }
 
-      ExtentList newDims;
 
-      for (size_t i = 0; i < DIM; i++)
-        newDims.ranges_[i] = this->extent_list_[i];
+      static size_t defaultAlignment()
+      {
+        return sizeof(T) < 16 ? 8 : sizeof(T) < 32 ? 16 : 32;
+      }
 
-      newDims.ranges_[dimNr] = newSize;  
 
-      resizeInplace(newDims);
-    }
+      static size_t nrElements(const ExtentList &extents)
+      {
+        size_t size = 1;
 
+        for (unsigned i = 0; i < extents.ranges_.size(); i++)
+          size *= extents.ranges_[i].size();
 
-    static size_t defaultAlignment()
-    {
-      return sizeof(T) < 16 ? 8 : sizeof(T) < 32 ? 16 : 32;
-    }
+        return size;
+      }
 
+    private:
+      // All members need to be mutable to be able to swap them in resize()
 
-    static size_t nrElements(const ExtentList &extents)
-    {
-      size_t size = 1;
+      // Allocator with which the array was allocated, or NULL if the memory
+      // was externally allocated.
+      Allocator *allocator;
 
-      for (unsigned i = 0; i < extents.ranges_.size(); i ++)
-	size *= extents.ranges_[i].size();
+      // Number of elements that were originally allocated.
+      size_t allocated_num_elements;
 
-      return size;
-    }
+      // Alignment for the first element.
+      unsigned alignment;
 
-  private:
-    // All members need to be mutable to be able to swap them in resize()
+      // If padToAlignment is true, the memory allocated is also padded towards
+      // the specified alignment.
+      bool padToAlignment;
 
-    // Allocator with which the array was allocated, or NULL if the memory
-    // was externally allocated.
-    Allocator *allocator;
+      // If construct is true, the elements have been constructed by us.
+      // If construct is false, the elements have been constructed externally.
+      bool construct;
 
-    // Number of elements that were originally allocated.
-    size_t    allocated_num_elements;
+      T *allocate(size_t nrElements, size_t alignment, Allocator &allocator, bool padToAlignment, bool construct) const
+      {
+        size_t dataSize = padToAlignment
+                          ? align(nrElements * sizeof(T), alignment)
+                          : nrElements * sizeof(T);
 
-    // Alignment for the first element.
-    unsigned  alignment;
+        T *ptr = static_cast<T*>(allocator.allocate(dataSize, alignment));
 
-    // If padToAlignment is true, the memory allocated is also padded towards
-    // the specified alignment.
-    bool      padToAlignment;
+        return construct ? new(ptr)T[nrElements] : ptr;
+      }
 
-    // If construct is true, the elements have been constructed by us.
-    // If construct is false, the elements have been constructed externally.
-    bool      construct;
+      // a MultiDimArray made to replace another, using a different shape. Assumes
+      // the original MultiDimArray allocated enough memory to hold the new
+      // dimensions.
+      MultiDimArray(const MultiDimArray<T,DIM> &other, const ExtentList &extents)
+        :
+        // Use 'placement new' to force initialisation through constructors if T is a class
+
+        // TODO: Not sure how to handle an exception raised by the constructor of T. The placement
+        // delete[] will be called, but that's an empty stub.
+        SuperType(other.base_, extents),
+        allocator(0), // we did not allocate this
+        allocated_num_elements(0),
+        alignment(other.alignment),
+        padToAlignment(other.padToAlignment),
+        construct(false) // construction was done by an external source
+      {
+      }
 
-    T *allocate(size_t nrElements, size_t alignment, Allocator &allocator, bool padToAlignment, bool construct) const {
-      size_t dataSize = padToAlignment
-                        ? align(nrElements * sizeof(T), alignment)
-                        : nrElements * sizeof(T);
 
-      T *ptr = static_cast<T*>(allocator.allocate(dataSize, alignment));
+      void destructElements()
+      {
+        if (!construct)
+          return;
 
-      return construct ? new(ptr)T[nrElements] : ptr;
-    }
+        // explicitly call the destructors in the 'placement new' array since C++
+        // cannot do this for us. The delete[] operator cannot know the size of the
+        // array, and the placement delete[] operator exists (since new()[] will look
+        // for it) but does nothing.
+        T *elem = this->origin();
 
-    // a MultiDimArray made to replace another, using a different shape. Assumes
-    // the original MultiDimArray allocated enough memory to hold the new
-    // dimensions.
-    MultiDimArray(const MultiDimArray<T,DIM> &other, const ExtentList &extents)
-    :
-      // Use 'placement new' to force initialisation through constructors if T is a class
-
-      // TODO: Not sure how to handle an exception raised by the constructor of T. The placement
-      // delete[] will be called, but that's an empty stub.
-      SuperType(other.base_, extents),
-      allocator(0), // we did not allocate this
-      allocated_num_elements(0),
-      alignment(other.alignment),
-      padToAlignment(other.padToAlignment),
-      construct(false) // construction was done by an external source
-    {
-    }
+        for (size_t i = 0; i < this->num_elements_; i++)
+          (elem++)->~T();
+      }
+    };
 
 
-    void destructElements()
+    template <typename T>
+    class Vector : public MultiDimArray<T, 1>
     {
-      if (!construct)
-        return;
+    public:
+      typedef MultiDimArray<T, 1>            SuperType;
+      typedef typename SuperType::ExtentList ExtentList;
+
+      Vector(Allocator &allocator = heapAllocator)
+        :
+        SuperType(allocator)
+      {
+      }
 
-      // explicitly call the destructors in the 'placement new' array since C++
-      // cannot do this for us. The delete[] operator cannot know the size of the
-      // array, and the placement delete[] operator exists (since new()[] will look
-      // for it) but does nothing.
-      T *elem = this->origin();
+      Vector(size_t x, size_t alignment = SuperType::defaultAlignment(), Allocator &allocator = heapAllocator)
+        :
+        SuperType(boost::extents[x], alignment, allocator)
+      {
+      }
 
-      for (size_t i = 0; i < this->num_elements_; i ++)
-        (elem++)->~T();
-    }
-};
+      Vector(const ExtentList &extents, size_t alignment = SuperType::defaultAlignment(), Allocator &allocator = heapAllocator)
+        :
+        SuperType(extents, alignment, allocator)
+      {
+      }
 
+      using SuperType::resize;
 
-template <typename T> class Vector : public MultiDimArray<T, 1>
-{
-  public:
-    typedef MultiDimArray<T, 1>		   SuperType;
-    typedef typename SuperType::ExtentList ExtentList;
+      void resize(size_t x, size_t alignment = SuperType::defaultAlignment(), Allocator &allocator = heapAllocator, bool padToAlignment = false)
+      {
+        SuperType::resize(boost::extents[x], alignment, allocator, padToAlignment);
+      }
+    };
 
-    Vector(Allocator &allocator = heapAllocator)
-    :
-      SuperType(allocator)
-    {
-    }
 
-    Vector(size_t x, size_t alignment = SuperType::defaultAlignment(), Allocator &allocator = heapAllocator)
-    :
-      SuperType(boost::extents[x], alignment, allocator)
+    template <typename T>
+    class Matrix : public MultiDimArray<T, 2>
     {
-    }
+    public:
+      typedef MultiDimArray<T, 2>            SuperType;
+      typedef typename SuperType::ExtentList ExtentList;
+
+      Matrix(Allocator &allocator = heapAllocator)
+        :
+        SuperType(allocator)
+      {
+      }
 
-    Vector(const ExtentList &extents, size_t alignment = SuperType::defaultAlignment(), Allocator &allocator = heapAllocator)
-    :
-      SuperType(extents, alignment, allocator)
-    {
-    }
+      Matrix(size_t x, size_t y, size_t alignment = SuperType::defaultAlignment(), Allocator &allocator = heapAllocator, bool padToAlignment = false)
+        :
+        SuperType(boost::extents[x][y], alignment, allocator, padToAlignment)
+      {
+      }
 
-    using SuperType::resize;
+      Matrix(const ExtentList &extents, size_t alignment = SuperType::defaultAlignment(), Allocator &allocator = heapAllocator, bool padToAlignment = false)
+        :
+        SuperType(extents, alignment, allocator, padToAlignment)
+      {
+      }
 
-    void resize(size_t x, size_t alignment = SuperType::defaultAlignment(), Allocator &allocator = heapAllocator, bool padToAlignment = false)
-    {
-      SuperType::resize(boost::extents[x], alignment, allocator, padToAlignment);
-    }
-};
+      using SuperType::resize;
 
+      void resize(size_t x, size_t y, size_t alignment = SuperType::defaultAlignment(), Allocator &allocator = heapAllocator, bool padToAlignment = false)
+      {
+        SuperType::resize(boost::extents[x][y], alignment, allocator, padToAlignment);
+      }
+    };
 
-template <typename T> class Matrix : public MultiDimArray<T, 2>
-{
-  public:
-    typedef MultiDimArray<T, 2>		   SuperType;
-    typedef typename SuperType::ExtentList ExtentList;
 
-    Matrix(Allocator &allocator = heapAllocator)
-    :
-      SuperType(allocator)
+    template <typename T>
+    class Cube : public MultiDimArray<T, 3>
     {
-    }
+    public:
+      typedef MultiDimArray<T, 3>            SuperType;
+      typedef typename SuperType::ExtentList ExtentList;
+
+      Cube(Allocator &allocator = heapAllocator)
+        :
+        SuperType(allocator)
+      {
+      }
 
-    Matrix(size_t x, size_t y, size_t alignment = SuperType::defaultAlignment(), Allocator &allocator = heapAllocator, bool padToAlignment = false)
-    :
-      SuperType(boost::extents[x][y], alignment, allocator, padToAlignment)
-    {
-    }
+      Cube(size_t x, size_t y, size_t z, size_t alignment = SuperType::defaultAlignment(), Allocator &allocator = heapAllocator)
+        :
+        SuperType(boost::extents[x][y][z], alignment, allocator)
+      {
+      }
 
-    Matrix(const ExtentList &extents, size_t alignment = SuperType::defaultAlignment(), Allocator &allocator = heapAllocator, bool padToAlignment = false)
-    :
-      SuperType(extents, alignment, allocator, padToAlignment)
-    {
-    }
+      Cube(const ExtentList &extents, size_t alignment = SuperType::defaultAlignment(), Allocator &allocator = heapAllocator)
+        :
+        SuperType(extents, alignment, allocator)
+      {
+      }
+
+      using SuperType::resize;
 
-    using SuperType::resize;
+      void resize(size_t x, size_t y, size_t z, size_t alignment = SuperType::defaultAlignment(), Allocator &allocator = heapAllocator, bool padToAlignment = false)
+      {
+        SuperType::resize(boost::extents[x][y][z], alignment, allocator, padToAlignment);
+      }
+    };
 
-    void resize(size_t x, size_t y, size_t alignment = SuperType::defaultAlignment(), Allocator &allocator = heapAllocator, bool padToAlignment = false)
+    // output function for full MultiDimArrays
+    template <typename T, unsigned DIM>
+    inline std::ostream &operator<< (std::ostream& str, const MultiDimArray<T,DIM> &array)
     {
-      SuperType::resize(boost::extents[x][y], alignment, allocator, padToAlignment);
-    }
-};
+      str << "[ ";
 
+      for (size_t i = 0; i < array.size(); i++) {
+        if (i > 0)
+          str << ", ";
 
-template <typename T> class Cube : public MultiDimArray<T, 3>
-{
-  public:
-    typedef MultiDimArray<T, 3>		   SuperType;
-    typedef typename SuperType::ExtentList ExtentList;
+        str << array[i];
+      }
 
-    Cube(Allocator &allocator = heapAllocator)
-    :
-      SuperType(allocator)
-    {
+      str << " ]";
+      return str;
     }
 
-    Cube(size_t x, size_t y, size_t z, size_t alignment = SuperType::defaultAlignment(), Allocator &allocator = heapAllocator)
-    :
-      SuperType(boost::extents[x][y][z], alignment, allocator)
+    // output function for subdimensions of MultiDimArrays
+    template <typename T, unsigned DIM, typename TPtr>
+    inline std::ostream &operator<< (std::ostream& str, const typename boost::detail::multi_array::const_sub_array<T,DIM,TPtr> &array)
     {
-    }
+      str << "[ ";
 
-    Cube(const ExtentList &extents, size_t alignment = SuperType::defaultAlignment(), Allocator &allocator = heapAllocator)
-    :
-      SuperType(extents, alignment, allocator)
-    {
-    }
+      for (size_t i = 0; i < array.size(); i++) {
+        if (i > 0)
+          str << ", ";
 
-    using SuperType::resize;
+        str << array[i];
+      }
 
-    void resize(size_t x, size_t y, size_t z, size_t alignment = SuperType::defaultAlignment(), Allocator &allocator = heapAllocator, bool padToAlignment = false)
-    {
-      SuperType::resize(boost::extents[x][y][z], alignment, allocator, padToAlignment);
+      str << " ]";
+      return str;
     }
-};
-
-// output function for full MultiDimArrays
-template <typename T, unsigned DIM> inline std::ostream &operator<< (std::ostream& str, const MultiDimArray<T,DIM> &array)
-{
-  str << "[ ";
-
-  for (size_t i = 0; i < array.size(); i ++) {
-    if (i > 0)
-      str << ", ";
-
-    str << array[i];
-  }
-
-  str << " ]";
-  return str;
-}
-
-// output function for subdimensions of MultiDimArrays
-template <typename T, unsigned DIM, typename TPtr> inline std::ostream &operator<< (std::ostream& str, const typename boost::detail::multi_array::const_sub_array<T,DIM,TPtr> &array)
-{
-  str << "[ ";
-
-  for (size_t i = 0; i < array.size(); i ++) {
-    if (i > 0)
-      str << ", ";
-
-    str << array[i];
-  }
-
-  str << " ]";
-  return str;
-}
 
-} // namespace RTCP
+  } // namespace RTCP
 } // namespace LOFAR
 
 #endif
diff --git a/RTCP/Cobalt/CoInterface/src/OutputTypes.h b/RTCP/Cobalt/CoInterface/src/OutputTypes.h
index 3f0f8f1ad92ddb23391ed1199974b6df2e12ab69..cb8644c411afa8f18f6308ed790514393b1cad6b 100644
--- a/RTCP/Cobalt/CoInterface/src/OutputTypes.h
+++ b/RTCP/Cobalt/CoInterface/src/OutputTypes.h
@@ -1,33 +1,35 @@
 #ifndef LOFAR_RTCP_INTERFACE_OUTPUT_TYPES_H
 #define LOFAR_RTCP_INTERFACE_OUTPUT_TYPES_H
 
-namespace LOFAR {
-namespace RTCP {
-
-enum OutputType
+namespace LOFAR
 {
-  CORRELATED_DATA = 1,
-  BEAM_FORMED_DATA,
-  TRIGGER_DATA,
+  namespace RTCP
+  {
 
-  // define LAST and FIRST in the enum to make them valid values within the
-  // allocated range for the enum (=minimal number of bits to store all values)
-  LAST_OUTPUT_TYPE,
-  FIRST_OUTPUT_TYPE = 1
-};
+    enum OutputType
+    {
+      CORRELATED_DATA = 1,
+      BEAM_FORMED_DATA,
+      TRIGGER_DATA,
 
-inline OutputType operator ++ (OutputType &outputType) // prefix ++
-{
-  return (outputType = static_cast<OutputType>(outputType + 1));
-}
+      // define LAST and FIRST in the enum to make them valid values within the
+      // allocated range for the enum (=minimal number of bits to store all values)
+      LAST_OUTPUT_TYPE,
+      FIRST_OUTPUT_TYPE = 1
+    };
 
+    inline OutputType operator ++ (OutputType &outputType) // prefix ++
+    {
+      return (outputType = static_cast<OutputType>(outputType + 1));
+    }
 
-inline OutputType operator ++ (OutputType &outputType, int) // postfix ++
-{
-  return static_cast<OutputType>((outputType = static_cast<OutputType>(outputType + 1)) - 1);
-}
 
-} // namespace RTCP
+    inline OutputType operator ++ (OutputType &outputType, int) // postfix ++
+    {
+      return static_cast<OutputType>((outputType = static_cast<OutputType>(outputType + 1)) - 1);
+    }
+
+  } // namespace RTCP
 } // namespace LOFAR
 
 #endif
diff --git a/RTCP/Cobalt/CoInterface/src/Parset.cc b/RTCP/Cobalt/CoInterface/src/Parset.cc
index 52577214115c05334eccfdd849f115d0beea2f38..c8809d9f8a4123125a7171490ccf8a1f3be38f79 100644
--- a/RTCP/Cobalt/CoInterface/src/Parset.cc
+++ b/RTCP/Cobalt/CoInterface/src/Parset.cc
@@ -44,1563 +44,1567 @@
 #include <set>
 
 
-namespace LOFAR {
-namespace RTCP {
+namespace LOFAR
+{
+  namespace RTCP
+  {
 
 
-static StokesType stokesType( const std::string &name ) {
-  if (name == "I")
-    return STOKES_I;
+    static StokesType stokesType( const std::string &name )
+    {
+      if (name == "I")
+        return STOKES_I;
 
-  if (name == "IQUV")
-    return STOKES_IQUV;
+      if (name == "IQUV")
+        return STOKES_IQUV;
 
-  if (name == "XXYY")
-    return STOKES_XXYY;
+      if (name == "XXYY")
+        return STOKES_XXYY;
 
-  return INVALID_STOKES;
-};
+      return INVALID_STOKES;
+    };
 
 
-Parset::Parset()
-{
-}
+    Parset::Parset()
+    {
+    }
 
 
-Parset::Parset(const string &name)
-:
-  ParameterSet(name.c_str()),
-  itsName(name)
-{
-  // we check the parset once we can communicate any errors
-  //check();
-}
+    Parset::Parset(const string &name)
+      :
+      ParameterSet(name.c_str()),
+      itsName(name)
+    {
+      // we check the parset once we can communicate any errors
+      //check();
+    }
 
 
-Parset::Parset(Stream *stream)
-{
-  uint64 size;
-  stream->read(&size, sizeof size);
+    Parset::Parset(Stream *stream)
+    {
+      uint64 size;
+      stream->read(&size, sizeof size);
 
 #if !defined WORDS_BIGENDIAN
-  dataConvert(LittleEndian, &size, 1);
+      dataConvert(LittleEndian, &size, 1);
 #endif
 
-  std::vector<char> tmp(size + 1);
-  stream->read(&tmp[0], size);
-  tmp[size] = '\0';
+      std::vector<char> tmp(size + 1);
+      stream->read(&tmp[0], size);
+      tmp[size] = '\0';
 
-  std::string buffer(&tmp[0], size);
-  adoptBuffer(buffer);
-}
+      std::string buffer(&tmp[0], size);
+      adoptBuffer(buffer);
+    }
 
 
-void Parset::write(Stream *stream) const
-{
-  // stream == NULL fills the cache,
-  // causing subsequent write()s to use it
-  bool readCache = !itsWriteCache.empty();
-  bool writeCache = !stream;
-  
-  std::string newbuffer;
-  std::string &buffer = readCache || writeCache ? itsWriteCache : newbuffer;
-
-  if (buffer.empty())
-    writeBuffer(buffer);
-
-  if (!stream) {
-    // we only filled the cache
-    return;
-  }
-  
-  uint64 size = buffer.size();
+    void Parset::write(Stream *stream) const
+    {
+      // stream == NULL fills the cache,
+      // causing subsequent write()s to use it
+      bool readCache = !itsWriteCache.empty();
+      bool writeCache = !stream;
+
+      std::string newbuffer;
+      std::string &buffer = readCache || writeCache ? itsWriteCache : newbuffer;
+
+      if (buffer.empty())
+        writeBuffer(buffer);
+
+      if (!stream) {
+        // we only filled the cache
+        return;
+      }
+
+      uint64 size = buffer.size();
 
 #if !defined WORDS_BIGENDIAN
-  uint64 size_be = size;
-  dataConvert(BigEndian, &size_be, 1);
-  stream->write(&size_be, sizeof size_be);
-#else  
-  stream->write(&size, sizeof size);
+      uint64 size_be = size;
+      dataConvert(BigEndian, &size_be, 1);
+      stream->write(&size_be, sizeof size_be);
+#else
+      stream->write(&size, sizeof size);
 #endif
 
-  stream->write(buffer.data(), size);
-}
+      stream->write(buffer.data(), size);
+    }
 
 
-void Parset::checkVectorLength(const std::string &key, unsigned expectedSize) const
-{
-  unsigned actualSize = getStringVector(key, true).size();
+    void Parset::checkVectorLength(const std::string &key, unsigned expectedSize) const
+    {
+      unsigned actualSize = getStringVector(key, true).size();
 
-  if (actualSize != expectedSize)
-    THROW(CoInterfaceException, "Key \"" << string(key) << "\" contains wrong number of entries (expected: " << expectedSize << ", actual: " << actualSize << ')');
-}
+      if (actualSize != expectedSize)
+        THROW(CoInterfaceException, "Key \"" << string(key) << "\" contains wrong number of entries (expected: " << expectedSize << ", actual: " << actualSize << ')');
+    }
 
 
 #if 0
-void Parset::checkPsetAndCoreConfiguration() const
-{
-  std::vector<unsigned> phaseOnePsets = phaseOnePsets();
-  std::vector<unsigned> phaseTwoPsets = phaseTwoPsets();
-  std::vector<unsigned> phaseThreePsets = phaseThreePsets();
-  std::vector<unsigned> phaseOneTwoCores = phaseOneTwoCores();
-  std::vector<unsigned> phaseThreeCores = phaseThreeCores();
-
-  if (phaseOnePsets.size() == 0 || 
-}
+    void Parset::checkPsetAndCoreConfiguration() const
+    {
+      std::vector<unsigned> phaseOnePsets = phaseOnePsets();
+      std::vector<unsigned> phaseTwoPsets = phaseTwoPsets();
+      std::vector<unsigned> phaseThreePsets = phaseThreePsets();
+      std::vector<unsigned> phaseOneTwoCores = phaseOneTwoCores();
+      std::vector<unsigned> phaseThreeCores = phaseThreeCores();
+
+      if (phaseOnePsets.size() == 0 ||
+          }
 #endif
 
 
-void Parset::checkInputConsistency() const
-{
-  using std::set;
+    void Parset::checkInputConsistency() const
+    {
+      using std::set;
 
-  map<string, set<unsigned> > allRSPboards;
-  vector<unsigned> inputs = phaseOnePsets();
-  
-  for (vector<unsigned>::const_iterator pset = inputs.begin(); pset != inputs.end(); pset ++) {
-    vector<StationRSPpair> stationRSPpairs = getStationNamesAndRSPboardNumbers(*pset);
+      map<string, set<unsigned> > allRSPboards;
+      vector<unsigned> inputs = phaseOnePsets();
 
-    for (vector<StationRSPpair>::const_iterator pair = stationRSPpairs.begin(); pair != stationRSPpairs.end(); pair ++) {
-      const string &station = pair->station;
-      unsigned     rsp      = pair->rsp;
+      for (vector<unsigned>::const_iterator pset = inputs.begin(); pset != inputs.end(); pset++) {
+        vector<StationRSPpair> stationRSPpairs = getStationNamesAndRSPboardNumbers(*pset);
 
-      map<string, set<unsigned> >::const_iterator stationRSPs = allRSPboards.find(station);
+        for (vector<StationRSPpair>::const_iterator pair = stationRSPpairs.begin(); pair != stationRSPpairs.end(); pair++) {
+          const string &station = pair->station;
+          unsigned rsp = pair->rsp;
 
-      if (stationRSPs != allRSPboards.end() && stationRSPs->second.find(rsp) != stationRSPs->second.end())
-	THROW(CoInterfaceException, station << "/RSP" << rsp << " multiple times defined in \"PIC.Core.IONProc.*.inputs\"");
+          map<string, set<unsigned> >::const_iterator stationRSPs = allRSPboards.find(station);
 
-      allRSPboards[station].insert(rsp);
-    }
-  }
+          if (stationRSPs != allRSPboards.end() && stationRSPs->second.find(rsp) != stationRSPs->second.end())
+            THROW(CoInterfaceException, station << "/RSP" << rsp << " multiple times defined in \"PIC.Core.IONProc.*.inputs\"");
+
+          allRSPboards[station].insert(rsp);
+        }
+      }
 
-  for (map<string, set<unsigned> >::const_iterator stationRSPs = allRSPboards.begin(); stationRSPs != allRSPboards.end(); stationRSPs ++) {
-    const string	  &station = stationRSPs->first;
-    const set<unsigned> &rsps    = stationRSPs->second;
+      for (map<string, set<unsigned> >::const_iterator stationRSPs = allRSPboards.begin(); stationRSPs != allRSPboards.end(); stationRSPs++) {
+        const string          &station = stationRSPs->first;
+        const set<unsigned> &rsps = stationRSPs->second;
 
-    vector<unsigned> rspsOfStation  = subbandToRSPboardMapping(station);
-    vector<unsigned> slotsOfStation = subbandToRSPslotMapping(station);
+        vector<unsigned> rspsOfStation = subbandToRSPboardMapping(station);
+        vector<unsigned> slotsOfStation = subbandToRSPslotMapping(station);
 
-    if (rspsOfStation.size() != nrSubbands())
-      THROW(CoInterfaceException, string("the size of \"Observation.Dataslots.") + station + ".RSPBoardList\" does not equal the number of subbands");
+        if (rspsOfStation.size() != nrSubbands())
+          THROW(CoInterfaceException, string("the size of \"Observation.Dataslots.") + station + ".RSPBoardList\" does not equal the number of subbands");
 
-    if (slotsOfStation.size() != nrSubbands())
-      THROW(CoInterfaceException, string("the size of \"Observation.Dataslots.") + station + ".DataslotList\" does not equal the number of subbands");
+        if (slotsOfStation.size() != nrSubbands())
+          THROW(CoInterfaceException, string("the size of \"Observation.Dataslots.") + station + ".DataslotList\" does not equal the number of subbands");
 
-    for (int subband = nrSubbands(); -- subband >= 0;) {
-      if (rsps.find(rspsOfStation[subband]) == rsps.end())
-	THROW(CoInterfaceException, "\"Observation.Dataslots." << station << ".RSPBoardList\" mentions RSP board " << rspsOfStation[subband] << ", which does not exist");
+        for (int subband = nrSubbands(); --subband >= 0; ) {
+          if (rsps.find(rspsOfStation[subband]) == rsps.end())
+            THROW(CoInterfaceException, "\"Observation.Dataslots." << station << ".RSPBoardList\" mentions RSP board " << rspsOfStation[subband] << ", which does not exist");
 
-      if (slotsOfStation[subband] >= nrSlotsInFrame())
-	THROW(CoInterfaceException, "\"Observation.Dataslots." << station << ".DataslotList\" mentions RSP slot " << slotsOfStation[subband] << ", which is more than the number of slots in a frame");
+          if (slotsOfStation[subband] >= nrSlotsInFrame())
+            THROW(CoInterfaceException, "\"Observation.Dataslots." << station << ".DataslotList\" mentions RSP slot " << slotsOfStation[subband] << ", which is more than the number of slots in a frame");
+        }
+      }
     }
-  }
-}
 
-void Parset::check() const
-{
-  //checkPsetAndCoreConfiguration();
-  checkInputConsistency();
-  checkVectorLength("Observation.beamList", nrSubbands());
-  
-  for (OutputType outputType = FIRST_OUTPUT_TYPE; outputType < LAST_OUTPUT_TYPE; outputType ++)
-    if (outputThisType(outputType)) {
-      std::string prefix   = keyPrefix(outputType);
-      unsigned    expected = nrStreams(outputType);
+    void Parset::check() const
+    {
+      //checkPsetAndCoreConfiguration();
+      checkInputConsistency();
+      checkVectorLength("Observation.beamList", nrSubbands());
+
+      for (OutputType outputType = FIRST_OUTPUT_TYPE; outputType < LAST_OUTPUT_TYPE; outputType++)
+        if (outputThisType(outputType)) {
+          std::string prefix = keyPrefix(outputType);
+          unsigned expected = nrStreams(outputType);
 
-      checkVectorLength(prefix + ".locations", expected);
-      checkVectorLength(prefix + ".filenames", expected);
+          checkVectorLength(prefix + ".locations", expected);
+          checkVectorLength(prefix + ".filenames", expected);
+        }
+
+      if (CNintegrationSteps() % dedispersionFFTsize() != 0)
+        THROW(CoInterfaceException, "OLAP.CNProc.integrationSteps (" << CNintegrationSteps() << ") must be divisible by OLAP.CNProc.dedispersionFFTsize (" << dedispersionFFTsize() << ')');
+
+      if (outputThisType(BEAM_FORMED_DATA) || outputThisType(TRIGGER_DATA)) {
+        // second transpose is performed
+
+        if (nrSubbands() > phaseTwoPsets().size() * phaseOneTwoCores().size() )
+          THROW(CoInterfaceException, "For the second transpose to function, there need to be at least nrSubbands cores in phase 2 (requested: " << nrSubbands() << " subbands on " << (phaseTwoPsets().size() * phaseOneTwoCores().size()) << " cores)");
+      }
+
+      // check whether the beam forming parameters are valid
+      const Transpose2 &logic = transposeLogic();
+
+      for (unsigned i = 0; i < logic.nrStreams(); i++) {
+        const StreamInfo &info = logic.streamInfo[i];
+
+        if ( info.timeIntFactor == 0 )
+          THROW(CoInterfaceException, "Temporal integration factor needs to be > 0 (it is set to 0 for " << (info.coherent ? "coherent" : "incoherent") << " beams).");
+
+        if ( info.coherent
+             && info.stokesType == STOKES_XXYY
+             && info.timeIntFactor != 1 )
+          THROW(CoInterfaceException, "Cannot perform temporal integration if calculating Coherent Stokes XXYY. Integration factor needs to be 1, but is set to " << info.timeIntFactor);
+      }
     }
 
-  if (CNintegrationSteps() % dedispersionFFTsize() != 0)
-    THROW(CoInterfaceException, "OLAP.CNProc.integrationSteps (" << CNintegrationSteps() << ") must be divisible by OLAP.CNProc.dedispersionFFTsize (" << dedispersionFFTsize() << ')');
 
-  if (outputThisType(BEAM_FORMED_DATA) || outputThisType(TRIGGER_DATA)) {
-    // second transpose is performed
+    vector<Parset::StationRSPpair> Parset::getStationNamesAndRSPboardNumbers(unsigned psetNumber) const
+    {
+      vector<string> inputs = getStringVector(str(boost::format("PIC.Core.IONProc.%s[%u].inputs") % partitionName() % psetNumber), true);
+      vector<StationRSPpair> stationsAndRSPs(inputs.size());
 
-    if (nrSubbands() > phaseTwoPsets().size() * phaseOneTwoCores().size() )
-      THROW(CoInterfaceException, "For the second transpose to function, there need to be at least nrSubbands cores in phase 2 (requested: " << nrSubbands() << " subbands on " << (phaseTwoPsets().size() * phaseOneTwoCores().size()) << " cores)");
-  }
+      for (unsigned i = 0; i < inputs.size(); i++) {
+        vector<string> split = StringUtil::split(inputs[i], '/');
 
-  // check whether the beam forming parameters are valid
-  const Transpose2 &logic = transposeLogic();
+        if (split.size() != 2 || split[1].substr(0, 3) != "RSP")
+          THROW(CoInterfaceException, string("expected stationname/RSPn pair in \"") << inputs[i] << '"');
 
-  for (unsigned i = 0; i < logic.nrStreams(); i++) {
-    const StreamInfo &info = logic.streamInfo[i];
+        stationsAndRSPs[i].station = split[0];
+        stationsAndRSPs[i].rsp = boost::lexical_cast<unsigned>(split[1].substr(3));
+      }
 
-    if ( info.timeIntFactor == 0 )
-      THROW(CoInterfaceException, "Temporal integration factor needs to be > 0 (it is set to 0 for " << (info.coherent ? "coherent" : "incoherent") << " beams).");
+      return stationsAndRSPs;
+    }
 
-    if ( info.coherent
-      && info.stokesType == STOKES_XXYY
-      && info.timeIntFactor != 1 )
-      THROW(CoInterfaceException, "Cannot perform temporal integration if calculating Coherent Stokes XXYY. Integration factor needs to be 1, but is set to " << info.timeIntFactor);
-  }
-}
 
+    bool Parset::correctClocks() const
+    {
+      if (!isDefined("OLAP.correctClocks")) {
+        LOG_WARN("\"OLAP.correctClocks\" should really be defined in the parset --- assuming FALSE");
+        return false;
+      } else {
+        return getBool("OLAP.correctClocks");
+      }
+    }
 
-vector<Parset::StationRSPpair> Parset::getStationNamesAndRSPboardNumbers(unsigned psetNumber) const
-{
-  vector<string> inputs = getStringVector(str(boost::format("PIC.Core.IONProc.%s[%u].inputs") % partitionName() % psetNumber), true);
-  vector<StationRSPpair> stationsAndRSPs(inputs.size());
 
-  for (unsigned i = 0; i < inputs.size(); i ++) {
-    vector<string> split = StringUtil::split(inputs[i], '/');
+    string Parset::getInputStreamName(const string &stationName, unsigned rspBoardNumber) const
+    {
+      return getStringVector(string("PIC.Core.Station.") + stationName + ".RSP.ports", true)[rspBoardNumber];
+    }
 
-    if (split.size() != 2 || split[1].substr(0, 3) != "RSP")
-      THROW(CoInterfaceException, string("expected stationname/RSPn pair in \"") << inputs[i] << '"');
 
-    stationsAndRSPs[i].station = split[0];
-    stationsAndRSPs[i].rsp     = boost::lexical_cast<unsigned>(split[1].substr(3));
-  }
+    std::string Parset::keyPrefix(OutputType outputType)
+    {
+      switch (outputType) {
+      case CORRELATED_DATA:   return "Observation.DataProducts.Output_Correlated";
+      case BEAM_FORMED_DATA:  return "Observation.DataProducts.Output_Beamformed";
+      case TRIGGER_DATA:      return "Observation.DataProducts.Output_Trigger";
+      default:                THROW(CoInterfaceException, "Unknown output type");
+      }
+    }
 
-  return stationsAndRSPs;
-}
 
+    std::string Parset::getHostName(OutputType outputType, unsigned streamNr) const
+    {
+      return StringUtil::split(getStringVector(keyPrefix(outputType) + ".locations", true)[streamNr], ':')[0];
+    }
 
-bool Parset::correctClocks() const
-{
-  if (!isDefined("OLAP.correctClocks")) {
-    LOG_WARN("\"OLAP.correctClocks\" should really be defined in the parset --- assuming FALSE");
-    return false;
-  } else {
-    return getBool("OLAP.correctClocks");
-  }
-}
 
+    std::string Parset::getFileName(OutputType outputType, unsigned streamNr) const
+    {
+      const std::string keyname = keyPrefix(outputType) + ".filenames";
+      if (!isDefined(keyname))
+        THROW(CoInterfaceException, "Could not find filename key: " << keyname);
 
-string Parset::getInputStreamName(const string &stationName, unsigned rspBoardNumber) const
-{
-  return getStringVector(string("PIC.Core.Station.") + stationName + ".RSP.ports", true)[rspBoardNumber];
-}
+      const std::vector<std::string> filenames = getStringVector(keyname, true);
 
+      if (streamNr >= filenames.size())
+        THROW(CoInterfaceException, "Filename index out of bounds for key " << keyname << ": " << streamNr << " >= " << filenames.size());
 
-std::string Parset::keyPrefix(OutputType outputType)
-{
-  switch (outputType) {
-    case CORRELATED_DATA:   return "Observation.DataProducts.Output_Correlated";
-    case BEAM_FORMED_DATA:  return "Observation.DataProducts.Output_Beamformed";
-    case TRIGGER_DATA:	    return "Observation.DataProducts.Output_Trigger";
-    default:		    THROW(CoInterfaceException, "Unknown output type");
-  }
-}
+      return filenames[streamNr];
+    }
 
 
-std::string Parset::getHostName(OutputType outputType, unsigned streamNr) const
-{
-  return StringUtil::split(getStringVector(keyPrefix(outputType) + ".locations", true)[streamNr], ':')[0];
-}
+    std::string Parset::getDirectoryName(OutputType outputType, unsigned streamNr) const
+    {
+      return StringUtil::split(getStringVector(keyPrefix(outputType) + ".locations", true)[streamNr], ':')[1];
+    }
 
 
-std::string Parset::getFileName(OutputType outputType, unsigned streamNr) const
-{
-  const std::string keyname = keyPrefix(outputType) + ".filenames";
-  if (!isDefined(keyname))
-    THROW(CoInterfaceException, "Could not find filename key: " << keyname);
+    unsigned Parset::nrStreams(OutputType outputType, bool force) const
+    {
+      if (!outputThisType(outputType) && !force)
+        return 0;
 
-  const std::vector<std::string> filenames = getStringVector(keyname, true);
+      switch (outputType) {
+      case CORRELATED_DATA:   return nrSubbands();
+      case BEAM_FORMED_DATA:        // FALL THROUGH
+      case TRIGGER_DATA:      return transposeLogic().nrStreams();
+      default:                 THROW(CoInterfaceException, "Unknown output type");
+      }
+    }
 
-  if (streamNr >= filenames.size())
-    THROW(CoInterfaceException, "Filename index out of bounds for key " << keyname << ": " << streamNr << " >= " << filenames.size());
 
-  return filenames[streamNr];
-}
+    unsigned Parset::maxNrStreamsPerPset(OutputType outputType, bool force) const
+    {
+      unsigned nrOutputStreams = nrStreams(outputType, force);
+      unsigned nrPsets;
 
+      switch (outputType) {
+      case CORRELATED_DATA:   nrPsets = phaseTwoPsets().size();
+        break;
 
-std::string Parset::getDirectoryName(OutputType outputType, unsigned streamNr) const
-{
-  return StringUtil::split(getStringVector(keyPrefix(outputType) + ".locations", true)[streamNr], ':')[1];
-}
+      case BEAM_FORMED_DATA:        // FALL THROUGH
+      case TRIGGER_DATA:      nrPsets = phaseThreePsets().size();
+        break;
 
+      default:                 THROW(CoInterfaceException, "Unknown output type");
+      }
 
-unsigned Parset::nrStreams(OutputType outputType, bool force) const
-{
-  if (!outputThisType(outputType) && !force)
-    return 0;
+      return nrPsets == 0 ? 0 : (nrOutputStreams + nrPsets - 1) / nrPsets;
+    }
 
-  switch (outputType) {
-    case CORRELATED_DATA :   return nrSubbands();
-    case BEAM_FORMED_DATA :         // FALL THROUGH
-    case TRIGGER_DATA :      return transposeLogic().nrStreams();
-    default:		     THROW(CoInterfaceException, "Unknown output type");
-  }
-}
+    size_t Parset::nrBytesPerComplexSample() const
+    {
+      return 2 * nrBitsPerSample() / 8;
+    }
 
+    unsigned Parset::nyquistZone() const
+    {
+      std::string bandFilter = getString("Observation.bandFilter");
 
-unsigned Parset::maxNrStreamsPerPset(OutputType outputType, bool force) const
-{
-  unsigned nrOutputStreams = nrStreams(outputType, force);
-  unsigned nrPsets;
+      if (bandFilter == "LBA_10_70" ||
+          bandFilter == "LBA_30_70" ||
+          bandFilter == "LBA_10_90" ||
+          bandFilter == "LBA_30_90" )
+        return 1;
 
-  switch (outputType) {
-    case CORRELATED_DATA :   nrPsets = phaseTwoPsets().size();
-			     break;
+      if (bandFilter == "HBA_110_190")
+        return 2;
 
-    case BEAM_FORMED_DATA :         // FALL THROUGH
-    case TRIGGER_DATA :	     nrPsets = phaseThreePsets().size();
-			     break;
+      if (bandFilter == "HBA_170_230" ||
+          bandFilter == "HBA_210_250")
+        return 3;
 
-    default:		     THROW(CoInterfaceException, "Unknown output type");
-  }
+      THROW(CoInterfaceException, std::string("unknown band filter \"" + bandFilter + '"'));
+    }
 
-  return nrPsets == 0 ? 0 : (nrOutputStreams + nrPsets - 1) / nrPsets;
-}
 
-size_t Parset::nrBytesPerComplexSample() const
-{
-  return 2 * nrBitsPerSample() / 8;
-}
+    unsigned Parset::nrBeams() const
+    {
+      std::vector<unsigned> sapMapping = subbandToSAPmapping();
 
-unsigned Parset::nyquistZone() const
-{
-  std::string bandFilter = getString("Observation.bandFilter");
+      if (sapMapping.empty())
+        return 0;
 
-  if (bandFilter == "LBA_10_70" ||
-      bandFilter == "LBA_30_70" ||
-      bandFilter == "LBA_10_90" ||
-      bandFilter == "LBA_30_90" )
-    return 1;
+      return *std::max_element(sapMapping.begin(), sapMapping.end()) + 1;
+    }
 
-  if (bandFilter == "HBA_110_190")
-    return 2;
 
-  if (bandFilter == "HBA_170_230" ||
-      bandFilter == "HBA_210_250")
-    return 3;
+    std::vector<double> Parset::subbandToFrequencyMapping() const
+    {
+      unsigned subbandOffset = 512 * (nyquistZone() - 1);
 
-  THROW(CoInterfaceException, std::string("unknown band filter \"" + bandFilter + '"'));
-}
+      std::vector<unsigned> subbandIds = getUint32Vector("Observation.subbandList", true);
+      std::vector<double>   subbandFreqs(subbandIds.size());
 
+      for (unsigned subband = 0; subband < subbandIds.size(); subband++)
+        subbandFreqs[subband] = subbandBandwidth() * (subbandIds[subband] + subbandOffset);
 
-unsigned Parset::nrBeams() const
-{
-  std::vector<unsigned> sapMapping = subbandToSAPmapping();
+      return subbandFreqs;
+    }
 
-  if (sapMapping.empty())
-    return 0;
 
-  return *std::max_element(sapMapping.begin(), sapMapping.end()) + 1;
-}
+    std::vector<double> Parset::centroidPos(const std::string &stations) const
+    {
+      std::vector<double> Centroid, posList, pos;
+      Centroid.resize(3);
 
+      vector<string> stationList = StringUtil::split(stations, '+');
+      for (unsigned i = 0; i < stationList.size(); i++)
+      {
+        pos = getDoubleVector("PIC.Core." + stationList[i] + ".position");
+        posList.insert(posList.end(), pos.begin(), pos.end());
+      }
 
-std::vector<double> Parset::subbandToFrequencyMapping() const
-{
-  unsigned		subbandOffset = 512 * (nyquistZone() - 1);
-  
-  std::vector<unsigned> subbandIds = getUint32Vector("Observation.subbandList", true);
-  std::vector<double>   subbandFreqs(subbandIds.size());
+      for (unsigned i = 0; i < posList.size() / 3; i++)
+      {
+        Centroid[0] += posList[3 * i]; // x in m
+        Centroid[1] += posList[3 * i + 1]; // y in m
+        Centroid[2] += posList[3 * i + 2]; // z in m
+      }
 
-  for (unsigned subband = 0; subband < subbandIds.size(); subband ++)
-    subbandFreqs[subband] = subbandBandwidth() * (subbandIds[subband] + subbandOffset);
+      Centroid[0] /= posList.size() / 3;
+      Centroid[1] /= posList.size() / 3;
+      Centroid[2] /= posList.size() / 3;
 
-  return subbandFreqs;
-}
+      return Centroid;
+    }
 
 
-std::vector<double> Parset::centroidPos(const std::string &stations) const
-{
-  std::vector<double> Centroid, posList, pos;
-  Centroid.resize(3);
-  
-  vector<string> stationList = StringUtil::split(stations, '+');
-  for (unsigned i = 0; i < stationList.size(); i++)
-  {   
-    pos = getDoubleVector("PIC.Core." + stationList[i] + ".position");
-    posList.insert(posList.end(), pos.begin(), pos.end()); 
-  }
-  
-  for (unsigned i = 0; i < posList.size() / 3; i ++)
-  {
-    Centroid[0] += posList[3*i];   // x in m
-    Centroid[1] += posList[3*i+1]; // y in m
-    Centroid[2] += posList[3*i+2]; // z in m
-  }  
-  
-  Centroid[0] /= posList.size() / 3;
-  Centroid[1] /= posList.size() / 3;
-  Centroid[2] /= posList.size() / 3;
-   
-  return Centroid;
-}
-
-
-vector<double> Parset::positions() const
-{
-  vector<string> stNames;
-  vector<double> pos, list;
-  unsigned nStations;
-  
-  if (nrTabStations() > 0) {
-    stNames = getStringVector("OLAP.tiedArrayStationNames", true);
-    nStations = nrTabStations();
-  } else {
-    stNames = getStringVector("OLAP.storageStationNames", true);
-    nStations = nrStations();
-  }
-  
-  for (uint i = 0; i < nStations; i++) {
-    if (stNames[i].find("+") != string::npos)
-      pos = centroidPos(stNames[i]);
-    else
-      pos = getDoubleVector("PIC.Core." + stNames[i] + ".position");
-    
-    list.insert(list.end(), pos.begin(), pos.end());
-  }
-
-  return list;
-}
-
-
-std::vector<double> Parset::getRefPhaseCentre() const
-{
-  return getDoubleVector("Observation.referencePhaseCenter");
-}
+    vector<double> Parset::positions() const
+    {
+      vector<string> stNames;
+      vector<double> pos, list;
+      unsigned nStations;
 
+      if (nrTabStations() > 0) {
+        stNames = getStringVector("OLAP.tiedArrayStationNames", true);
+        nStations = nrTabStations();
+      } else {
+        stNames = getStringVector("OLAP.storageStationNames", true);
+        nStations = nrStations();
+      }
 
-std::vector<double> Parset::getPhaseCentreOf(const string &name) const
-{
-  return getDoubleVector(str(boost::format("PIC.Core.%s.phaseCenter") % name));
-}
-/*
-std::vector<double> Parset::getPhaseCorrection(const string &name, char pol) const
-{
-  return getDoubleVector(str(boost::format("PIC.Core.%s.%s.phaseCorrection.%c") % name % antennaSet() % pol));
-}
-*/
+      for (uint i = 0; i < nStations; i++) {
+        if (stNames[i].find("+") != string::npos)
+          pos = centroidPos(stNames[i]);
+        else
+          pos = getDoubleVector("PIC.Core." + stNames[i] + ".position");
 
-string Parset::beamTarget(unsigned beam) const
-{
-  string key = str(boost::format("Observation.Beam[%u].target") % beam);
+        list.insert(list.end(), pos.begin(), pos.end());
+      }
 
-  return getString(key, "");
-}
+      return list;
+    }
 
-double Parset::beamDuration(unsigned beam) const
-{
-  string key = str(boost::format("Observation.Beam[%u].duration") % beam);
-  double val = getDouble(key, 0.0);
 
-  // a sane default
-  if (val == 0.0)
-    val = stopTime() - startTime();
+    std::vector<double> Parset::getRefPhaseCentre() const
+    {
+      return getDoubleVector("Observation.referencePhaseCenter");
+    }
 
-  return val;
-}
 
+    std::vector<double> Parset::getPhaseCentreOf(const string &name) const
+    {
+      return getDoubleVector(str(boost::format("PIC.Core.%s.phaseCenter") % name));
+    }
+    /*
+       std::vector<double> Parset::getPhaseCorrection(const string &name, char pol) const
+       {
+       return getDoubleVector(str(boost::format("PIC.Core.%s.%s.phaseCorrection.%c") % name % antennaSet() % pol));
+       }
+     */
+
+    string Parset::beamTarget(unsigned beam) const
+    {
+      string key = str(boost::format("Observation.Beam[%u].target") % beam);
+
+      return getString(key, "");
+    }
 
-std::vector<double> Parset::getTAB(unsigned beam, unsigned pencil) const
-{
-  std::vector<double> TAB(2);
- 
-  TAB[0] = getDouble(str(boost::format("Observation.Beam[%u].TiedArrayBeam[%u].angle1") % beam % pencil));
-  TAB[1] = getDouble(str(boost::format("Observation.Beam[%u].TiedArrayBeam[%u].angle2") % beam % pencil));
+    double Parset::beamDuration(unsigned beam) const
+    {
+      string key = str(boost::format("Observation.Beam[%u].duration") % beam);
+      double val = getDouble(key, 0.0);
 
-  return TAB;
-}
+      // a sane default
+      if (val == 0.0)
+        val = stopTime() - startTime();
 
+      return val;
+    }
 
-bool Parset::isCoherent(unsigned beam, unsigned pencil) const
-{
-  string key = str(boost::format("Observation.Beam[%u].TiedArrayBeam[%u].coherent") % beam % pencil);
 
-  return getBool(key, true);
-}
+    std::vector<double> Parset::getTAB(unsigned beam, unsigned pencil) const
+    {
+      std::vector<double> TAB(2);
 
+      TAB[0] = getDouble(str(boost::format("Observation.Beam[%u].TiedArrayBeam[%u].angle1") % beam % pencil));
+      TAB[1] = getDouble(str(boost::format("Observation.Beam[%u].TiedArrayBeam[%u].angle2") % beam % pencil));
 
-double Parset::dispersionMeasure(unsigned beam, unsigned pencil) const
-{
-  if (!getBool("OLAP.coherentDedisperseChannels",true))
-    return 0.0;
+      return TAB;
+    }
 
-  string key = str(boost::format("Observation.Beam[%u].TiedArrayBeam[%u].dispersionMeasure") % beam % pencil);
 
-  return getDouble(key, 0.0);
-}
+    bool Parset::isCoherent(unsigned beam, unsigned pencil) const
+    {
+      string key = str(boost::format("Observation.Beam[%u].TiedArrayBeam[%u].coherent") % beam % pencil);
 
+      return getBool(key, true);
+    }
 
-std::vector<string> Parset::TABStationList(unsigned beam, unsigned pencil, bool raw) const
-{
-  string key = str(boost::format("Observation.Beam[%u].TiedArrayBeam[%u].stationList") % beam % pencil);
-  std::vector<string> stations;
-  
-  if (isDefined(key))
-    stations = getStringVector(key,true);
 
-  if (raw)
-    return stations;
+    double Parset::dispersionMeasure(unsigned beam, unsigned pencil) const
+    {
+      if (!getBool("OLAP.coherentDedisperseChannels",true))
+        return 0.0;
 
-  // default to all stations
-  if (stations.empty())
-    stations = mergedStationNames();
+      string key = str(boost::format("Observation.Beam[%u].TiedArrayBeam[%u].dispersionMeasure") % beam % pencil);
 
-  return stations;
-}
+      return getDouble(key, 0.0);
+    }
 
 
-std::vector<double> Parset::getBeamDirection(unsigned beam) const
-{
-  std::vector<double> beamDirs(2);
- 
-  beamDirs[0] = getDouble(str(boost::format("Observation.Beam[%u].angle1") % beam));
-  beamDirs[1] = getDouble(str(boost::format("Observation.Beam[%u].angle2") % beam));
+    std::vector<string> Parset::TABStationList(unsigned beam, unsigned pencil, bool raw) const
+    {
+      string key = str(boost::format("Observation.Beam[%u].TiedArrayBeam[%u].stationList") % beam % pencil);
+      std::vector<string> stations;
 
-  return beamDirs;
-}
+      if (isDefined(key))
+        stations = getStringVector(key,true);
 
+      if (raw)
+        return stations;
 
-std::string Parset::getBeamDirectionType(unsigned beam) const
-{
-  char buf[50];
-  string beamDirType;
- 
-  snprintf(buf, sizeof buf, "Observation.Beam[%d].directionType", beam);
-  beamDirType = getString(buf);
+      // default to all stations
+      if (stations.empty())
+        stations = mergedStationNames();
 
-  return beamDirType;
-}
+      return stations;
+    }
 
 
-bool Parset::haveAnaBeam() const
-{
-  return antennaSet().substr(0,3) == "HBA";
-}
+    std::vector<double> Parset::getBeamDirection(unsigned beam) const
+    {
+      std::vector<double> beamDirs(2);
 
+      beamDirs[0] = getDouble(str(boost::format("Observation.Beam[%u].angle1") % beam));
+      beamDirs[1] = getDouble(str(boost::format("Observation.Beam[%u].angle2") % beam));
 
-std::vector<double> Parset::getAnaBeamDirection() const
-{
-  std::vector<double> anaBeamDirections(2);
-  
-  anaBeamDirections[0] = getDouble("Observation.AnaBeam[0].angle1");
-  anaBeamDirections[1] = getDouble("Observation.AnaBeam[0].angle2");
-  
-  return anaBeamDirections;
-}
+      return beamDirs;
+    }
 
 
-std::string Parset::getAnaBeamDirectionType() const
-{
-  return getString("Observation.AnaBeam[0].directionType");
-}
+    std::string Parset::getBeamDirectionType(unsigned beam) const
+    {
+      char buf[50];
+      string beamDirType;
 
+      snprintf(buf, sizeof buf, "Observation.Beam[%d].directionType", beam);
+      beamDirType = getString(buf);
 
-std::vector<unsigned> Parset::usedCoresInPset() const
-{
-  return phaseOneTwoCores() | phaseThreeCores();
-}
+      return beamDirType;
+    }
 
 
-std::vector<unsigned> Parset::usedPsets() const
-{
-  return phaseOnePsets() | phaseTwoPsets() | phaseThreePsets();
-}
+    bool Parset::haveAnaBeam() const
+    {
+      return antennaSet().substr(0,3) == "HBA";
+    }
 
 
-bool Parset::phaseThreeDisjunct() const
-{
-  return (phaseOneTwoCores() & phaseThreeCores()).empty() && ((phaseOnePsets() | phaseTwoPsets()) & phaseThreePsets()).empty();
-}
+    std::vector<double> Parset::getAnaBeamDirection() const
+    {
+      std::vector<double> anaBeamDirections(2);
 
+      anaBeamDirections[0] = getDouble("Observation.AnaBeam[0].angle1");
+      anaBeamDirections[1] = getDouble("Observation.AnaBeam[0].angle2");
 
-bool Parset::disjointCores(const Parset &otherParset, std::stringstream &error) const
-{
-  // return false if jobs (partially) use same cores within psets
+      return anaBeamDirections;
+    }
 
-  std::vector<unsigned> overlappingPsets = usedPsets() & otherParset.usedPsets();
-  std::vector<unsigned> overlappingCores = usedCoresInPset() & otherParset.usedCoresInPset();
 
-  if (overlappingPsets.empty() || overlappingCores.empty())
-    return true;
+    std::string Parset::getAnaBeamDirectionType() const
+    {
+      return getString("Observation.AnaBeam[0].directionType");
+    }
 
-  error << "cores " << overlappingCores << " within psets " << overlappingPsets << " overlap;";
-  return false;
-}
 
+    std::vector<unsigned> Parset::usedCoresInPset() const
+    {
+      return phaseOneTwoCores() | phaseThreeCores();
+    }
 
-bool Parset::compatibleInputSection(const Parset &otherParset, std::stringstream &error) const
-{
-  bool overlappingStations = !(phaseOnePsets() & otherParset.phaseOnePsets()).empty();
-  bool good = true;
 
-  if (overlappingStations) {
-    if (nrBitsPerSample() != otherParset.nrBitsPerSample()) {
-      error << " uses " << nrBitsPerSample() << " instead of " << otherParset.nrBitsPerSample() << " bits;";
-      good = false;
+    std::vector<unsigned> Parset::usedPsets() const
+    {
+      return phaseOnePsets() | phaseTwoPsets() | phaseThreePsets();
     }
 
-    if (clockSpeed() != otherParset.clockSpeed()) {
-      error << " uses " << clockSpeed() / 1e6 << " instead of " << otherParset.clockSpeed() / 1e6 << " MHz clock;";
-      good = false;
+
+    bool Parset::phaseThreeDisjunct() const
+    {
+      return (phaseOneTwoCores() & phaseThreeCores()).empty() && ((phaseOnePsets() | phaseTwoPsets()) & phaseThreePsets()).empty();
     }
 
-    if (nrSlotsInFrame() != otherParset.nrSlotsInFrame()) {
-      error << " uses " << nrSlotsInFrame() << " instead of " << otherParset.nrSlotsInFrame() << " slots per frame;";
-      good = false;
+
+    bool Parset::disjointCores(const Parset &otherParset, std::stringstream &error) const
+    {
+      // return false if jobs (partially) use same cores within psets
+
+      std::vector<unsigned> overlappingPsets = usedPsets() & otherParset.usedPsets();
+      std::vector<unsigned> overlappingCores = usedCoresInPset() & otherParset.usedCoresInPset();
+
+      if (overlappingPsets.empty() || overlappingCores.empty())
+        return true;
+
+      error << "cores " << overlappingCores << " within psets " << overlappingPsets << " overlap;";
+      return false;
     }
-  }
 
-  return good;
-}
 
+    bool Parset::compatibleInputSection(const Parset &otherParset, std::stringstream &error) const
+    {
+      bool overlappingStations = !(phaseOnePsets() & otherParset.phaseOnePsets()).empty();
+      bool good = true;
 
-bool Parset::conflictingResources(const Parset &otherParset, std::stringstream &error) const
-{
-  return !disjointCores(otherParset, error) | !compatibleInputSection(otherParset, error); // no McCarthy evaluation
-}
+      if (overlappingStations) {
+        if (nrBitsPerSample() != otherParset.nrBitsPerSample()) {
+          error << " uses " << nrBitsPerSample() << " instead of " << otherParset.nrBitsPerSample() << " bits;";
+          good = false;
+        }
 
+        if (clockSpeed() != otherParset.clockSpeed()) {
+          error << " uses " << clockSpeed() / 1e6 << " instead of " << otherParset.clockSpeed() / 1e6 << " MHz clock;";
+          good = false;
+        }
 
-vector<unsigned> Parset::subbandToRSPboardMapping(const string &stationName) const
-{
-  std::string key = std::string("Observation.Dataslots.") + stationName + ".RSPBoardList";
+        if (nrSlotsInFrame() != otherParset.nrSlotsInFrame()) {
+          error << " uses " << nrSlotsInFrame() << " instead of " << otherParset.nrSlotsInFrame() << " slots per frame;";
+          good = false;
+        }
+      }
 
-  if (!isDefined(key)) {
-    //LOG_WARN_STR('"' << key << "\" not defined, trying \"Observation.rspBoardList\"");
-    key = "Observation.rspBoardList";
-  }
+      return good;
+    }
 
-  if (!isDefined(key)) {
-    LOG_WARN_STR('"' << key << "\" not defined, falling back to default");
 
-    /* Map the subbands linearly onto the RSP boards */
-    size_t n = nrSubbands();
-    size_t beamletsPerRSP = maxBeamletsPerRSP(nrBitsPerSample());
+    bool Parset::conflictingResources(const Parset &otherParset, std::stringstream &error) const
+    {
+      return !disjointCores(otherParset, error) | !compatibleInputSection(otherParset, error); // no McCarthy evaluation
+    }
 
-    vector<unsigned> rspBoards(n);
 
-    for (size_t i = 0; i < n; i++)
-      rspBoards[i] = i / beamletsPerRSP;
+    vector<unsigned> Parset::subbandToRSPboardMapping(const string &stationName) const
+    {
+      std::string key = std::string("Observation.Dataslots.") + stationName + ".RSPBoardList";
 
-    return rspBoards;
-  }
+      if (!isDefined(key)) {
+        //LOG_WARN_STR('"' << key << "\" not defined, trying \"Observation.rspBoardList\"");
+        key = "Observation.rspBoardList";
+      }
 
-  return getUint32Vector(key, true);
-}
+      if (!isDefined(key)) {
+        LOG_WARN_STR('"' << key << "\" not defined, falling back to default");
 
+        /* Map the subbands linearly onto the RSP boards */
+        size_t n = nrSubbands();
+        size_t beamletsPerRSP = maxBeamletsPerRSP(nrBitsPerSample());
 
-vector<unsigned> Parset::subbandToRSPslotMapping(const string &stationName) const
-{
-  std::string key = std::string("Observation.Dataslots.") + stationName + ".DataslotList";
+        vector<unsigned> rspBoards(n);
 
-  if (!isDefined(key)) {
-    //LOG_WARN_STR('"' << key << "\" not defined, trying \"Observation.rspSlotList\"");
-    key = "Observation.rspSlotList";
-  }
+        for (size_t i = 0; i < n; i++)
+          rspBoards[i] = i / beamletsPerRSP;
 
-  if (!isDefined(key)) {
-    LOG_WARN_STR('"' << key << "\" not defined, falling back to default");
+        return rspBoards;
+      }
 
-    /* Map the subbands linearly onto the RSP boards */
-    size_t n = nrSubbands();
-    size_t beamletsPerRSP = maxBeamletsPerRSP(nrBitsPerSample());
+      return getUint32Vector(key, true);
+    }
 
-    vector<unsigned> rspSlots(n);
 
-    for (size_t i = 0; i < n; i++)
-      rspSlots[i] = i % beamletsPerRSP;
+    vector<unsigned> Parset::subbandToRSPslotMapping(const string &stationName) const
+    {
+      std::string key = std::string("Observation.Dataslots.") + stationName + ".DataslotList";
 
-    return rspSlots;
-  }
+      if (!isDefined(key)) {
+        //LOG_WARN_STR('"' << key << "\" not defined, trying \"Observation.rspSlotList\"");
+        key = "Observation.rspSlotList";
+      }
 
-  return getUint32Vector(key, true);
-}
+      if (!isDefined(key)) {
+        LOG_WARN_STR('"' << key << "\" not defined, falling back to default");
 
+        /* Map the subbands linearly onto the RSP boards */
+        size_t n = nrSubbands();
+        size_t beamletsPerRSP = maxBeamletsPerRSP(nrBitsPerSample());
 
-int Parset::findIndex(unsigned pset, const vector<unsigned> &psets)
-{
-  unsigned index = std::find(psets.begin(), psets.end(), pset) - psets.begin();
+        vector<unsigned> rspSlots(n);
 
-  return index != psets.size() ? static_cast<int>(index) : -1;
-}
+        for (size_t i = 0; i < n; i++)
+          rspSlots[i] = i % beamletsPerRSP;
 
-double Parset::getTime(const char *name) const
-{
-  return to_time_t(boost::posix_time::time_from_string(getString(name)));
-}
+        return rspSlots;
+      }
 
-unsigned Parset::nrTABs(unsigned beam) const
-{
-  using boost::format;
-  return getUint32(str(format("Observation.Beam[%u].nrTiedArrayBeams") % beam));
-}
+      return getUint32Vector(key, true);
+    }
 
-std::string Parset::name() const
-{
-  return itsName;
-}
 
-const Transpose2 &Parset::transposeLogic() const
-{
-  if (!itsTransposeLogic)
-    itsTransposeLogic = new Transpose2(*this);
+    int Parset::findIndex(unsigned pset, const vector<unsigned> &psets)
+    {
+      unsigned index = std::find(psets.begin(), psets.end(), pset) - psets.begin();
 
-  return *itsTransposeLogic;  
-}
+      return index != psets.size() ? static_cast<int>(index) : -1;
+    }
 
-const CN_Transpose2 &Parset::CN_transposeLogic( unsigned pset, unsigned core ) const
-{
-  if (!itsCN_TransposeLogic)
-    itsCN_TransposeLogic = new CN_Transpose2(*this, pset, core);
+    double Parset::getTime(const char *name) const
+    {
+      return to_time_t(boost::posix_time::time_from_string(getString(name)));
+    }
 
-  return *itsCN_TransposeLogic;  
-}
+    unsigned Parset::nrTABs(unsigned beam) const
+    {
+      using boost::format;
+      return getUint32(str(format("Observation.Beam[%u].nrTiedArrayBeams") % beam));
+    }
 
+    std::string Parset::name() const
+    {
+      return itsName;
+    }
 
-unsigned Parset::observationID() const
-{
-  return getUint32("Observation.ObsID");
-}
+    const Transpose2 &Parset::transposeLogic() const
+    {
+      if (!itsTransposeLogic)
+        itsTransposeLogic = new Transpose2(*this);
 
-double Parset::startTime() const
-{
-  return getTime("Observation.startTime");
-}
+      return *itsTransposeLogic;
+    }
 
-double Parset::stopTime() const
-{
-  return getTime("Observation.stopTime");
-}
+    const CN_Transpose2 &Parset::CN_transposeLogic( unsigned pset, unsigned core ) const
+    {
+      if (!itsCN_TransposeLogic)
+        itsCN_TransposeLogic = new CN_Transpose2(*this, pset, core);
 
-unsigned Parset::nrCorrelatedBlocks() const
-{
-  return static_cast<unsigned>(floor( (stopTime() - startTime()) / IONintegrationTime()));
-}
+      return *itsCN_TransposeLogic;
+    }
 
-unsigned Parset::nrBeamFormedBlocks() const
-{
-  return static_cast<unsigned>(floor( (stopTime() - startTime()) / CNintegrationTime()));
-}
 
-string Parset::stationName(int index) const
-{
-  return allStationNames()[index];
-}
+    unsigned Parset::observationID() const
+    {
+      return getUint32("Observation.ObsID");
+    }
 
-int Parset::stationIndex(const std::string &name) const
-{
-  std::vector<std::string> names = allStationNames();
-  for (unsigned i = 0; i < names.size(); i++)
-    if (names[i] == name)
-      return i;
+    double Parset::startTime() const
+    {
+      return getTime("Observation.startTime");
+    }
 
-  return -1;    
-}
+    double Parset::stopTime() const
+    {
+      return getTime("Observation.stopTime");
+    }
 
-std::vector<std::string> Parset::allStationNames() const
-{
-  return getStringVector("OLAP.storageStationNames",true);
-}
+    unsigned Parset::nrCorrelatedBlocks() const
+    {
+      return static_cast<unsigned>(floor( (stopTime() - startTime()) / IONintegrationTime()));
+    }
 
-bool Parset::hasStorage() const
-{
-  return getString("OLAP.OLAP_Conn.IONProc_Storage_Transport") != "NULL";
-}
+    unsigned Parset::nrBeamFormedBlocks() const
+    {
+      return static_cast<unsigned>(floor( (stopTime() - startTime()) / CNintegrationTime()));
+    }
 
-string Parset::getTransportType(const string& prefix) const
-{
-  return getString(prefix + "_Transport");
-}
+    string Parset::stationName(int index) const
+    {
+      return allStationNames()[index];
+    }
 
-unsigned Parset::nrStations() const
-{
-  return allStationNames().size();
-} 
+    int Parset::stationIndex(const std::string &name) const
+    {
+      std::vector<std::string> names = allStationNames();
+      for (unsigned i = 0; i < names.size(); i++)
+        if (names[i] == name)
+          return i;
 
-unsigned Parset::nrTabStations() const
-{
-  return getStringVector("OLAP.tiedArrayStationNames",true).size();
-}
+      return -1;
+    }
 
-std::vector<std::string> Parset::mergedStationNames() const
-{
-  std::vector<string> tabStations = getStringVector("OLAP.tiedArrayStationNames",true);
+    std::vector<std::string> Parset::allStationNames() const
+    {
+      return getStringVector("OLAP.storageStationNames",true);
+    }
 
-  if (tabStations.empty())
-    return getStringVector("OLAP.storageStationNames",true);
-  else
-    return tabStations;
-}
+    bool Parset::hasStorage() const
+    {
+      return getString("OLAP.OLAP_Conn.IONProc_Storage_Transport") != "NULL";
+    }
 
-unsigned Parset::nrMergedStations() const
-{
-  const std::vector<unsigned> list = tabList();
+    string Parset::getTransportType(const string& prefix) const
+    {
+      return getString(prefix + "_Transport");
+    }
 
-  if (list.empty())
-    return nrStations();
+    unsigned Parset::nrStations() const
+    {
+      return allStationNames().size();
+    }
 
-  return *std::max_element( list.begin(), list.end() ) + 1;
-}   
+    unsigned Parset::nrTabStations() const
+    {
+      return getStringVector("OLAP.tiedArrayStationNames",true).size();
+    }
 
-unsigned Parset::nrBaselines() const
-{
-  unsigned stations;
-  
-  if (nrTabStations() > 0)
-    stations = nrTabStations();
-  else
-    stations = nrStations();
+    std::vector<std::string> Parset::mergedStationNames() const
+    {
+      std::vector<string> tabStations = getStringVector("OLAP.tiedArrayStationNames",true);
 
-  return stations * (stations + 1) / 2;
-} 
+      if (tabStations.empty())
+        return getStringVector("OLAP.storageStationNames",true);
+      else
+        return tabStations;
+    }
 
-unsigned Parset::nrCrossPolarisations() const
-{
-  return (getUint32("Observation.nrPolarisations") * getUint32("Observation.nrPolarisations"));
-}
+    unsigned Parset::nrMergedStations() const
+    {
+      const std::vector<unsigned> list = tabList();
 
-unsigned Parset::clockSpeed() const
-{
-  return getUint32("Observation.sampleClock") * 1000000;
-} 
+      if (list.empty())
+        return nrStations();
 
-double Parset::subbandBandwidth() const
-{
-  return 1.0 * clockSpeed() / 1024;
-} 
+      return *std::max_element( list.begin(), list.end() ) + 1;
+    }
 
-double Parset::sampleDuration() const
-{
-  return 1.0 / subbandBandwidth();
-} 
+    unsigned Parset::nrBaselines() const
+    {
+      unsigned stations;
 
-unsigned Parset::dedispersionFFTsize() const
-{
-  return isDefined("OLAP.CNProc.dedispersionFFTsize") ? getUint32("OLAP.CNProc.dedispersionFFTsize") : CNintegrationSteps();
-}
+      if (nrTabStations() > 0)
+        stations = nrTabStations();
+      else
+        stations = nrStations();
 
-unsigned Parset::nrBitsPerSample() const
-{
-  const std::string key = "Observation.nrBitsPerSample";
+      return stations * (stations + 1) / 2;
+    }
+
+    unsigned Parset::nrCrossPolarisations() const
+    {
+      return (getUint32("Observation.nrPolarisations") * getUint32("Observation.nrPolarisations"));
+    }
+
+    unsigned Parset::clockSpeed() const
+    {
+      return getUint32("Observation.sampleClock") * 1000000;
+    }
+
+    double Parset::subbandBandwidth() const
+    {
+      return 1.0 * clockSpeed() / 1024;
+    }
 
-  if (isDefined(key)) {
-    return getUint32(key);
-  } else {
+    double Parset::sampleDuration() const
+    {
+      return 1.0 / subbandBandwidth();
+    }
+
+    unsigned Parset::dedispersionFFTsize() const
+    {
+      return isDefined("OLAP.CNProc.dedispersionFFTsize") ? getUint32("OLAP.CNProc.dedispersionFFTsize") : CNintegrationSteps();
+    }
+
+    unsigned Parset::nrBitsPerSample() const
+    {
+      const std::string key = "Observation.nrBitsPerSample";
+
+      if (isDefined(key)) {
+        return getUint32(key);
+      } else {
 #ifndef HAVE_BGP_CN
-    LOG_WARN_STR( "Missing key " << key << ", using the depricated key OLAP.nrBitsPerSample");
+        LOG_WARN_STR( "Missing key " << key << ", using the depricated key OLAP.nrBitsPerSample");
 #endif
-    return getUint32("OLAP.nrBitsPerSample", 16);
-  }  
-}
+        return getUint32("OLAP.nrBitsPerSample", 16);
+      }
+    }
 
-unsigned Parset::CNintegrationSteps() const
-{
-  return getUint32("OLAP.CNProc.integrationSteps");
-}
+    unsigned Parset::CNintegrationSteps() const
+    {
+      return getUint32("OLAP.CNProc.integrationSteps");
+    }
 
-unsigned Parset::IONintegrationSteps() const
-{
-  return getUint32("OLAP.IONProc.integrationSteps");
-}
+    unsigned Parset::IONintegrationSteps() const
+    {
+      return getUint32("OLAP.IONProc.integrationSteps");
+    }
 
-unsigned Parset::integrationSteps() const
-{
-  return CNintegrationSteps() * IONintegrationSteps();
-}
+    unsigned Parset::integrationSteps() const
+    {
+      return CNintegrationSteps() * IONintegrationSteps();
+    }
 
-unsigned Parset::coherentStokesTimeIntegrationFactor() const
-{
-  return getUint32("OLAP.CNProc_CoherentStokes.timeIntegrationFactor");
-}
+    unsigned Parset::coherentStokesTimeIntegrationFactor() const
+    {
+      return getUint32("OLAP.CNProc_CoherentStokes.timeIntegrationFactor");
+    }
 
-unsigned Parset::incoherentStokesTimeIntegrationFactor() const
-{
-  return getUint32("OLAP.CNProc_IncoherentStokes.timeIntegrationFactor");
-}
+    unsigned Parset::incoherentStokesTimeIntegrationFactor() const
+    {
+      return getUint32("OLAP.CNProc_IncoherentStokes.timeIntegrationFactor");
+    }
 
-unsigned Parset::coherentStokesChannelsPerSubband() const
-{
- unsigned numch = getUint32("OLAP.CNProc_CoherentStokes.channelsPerSubband");
+    unsigned Parset::coherentStokesChannelsPerSubband() const
+    {
+      unsigned numch = getUint32("OLAP.CNProc_CoherentStokes.channelsPerSubband");
 
- if (numch == 0)
-   return nrChannelsPerSubband();
- else
-   return numch;
-}
+      if (numch == 0)
+        return nrChannelsPerSubband();
+      else
+        return numch;
+    }
 
-unsigned Parset::incoherentStokesChannelsPerSubband() const
-{
- unsigned numch = getUint32("OLAP.CNProc_IncoherentStokes.channelsPerSubband");
+    unsigned Parset::incoherentStokesChannelsPerSubband() const
+    {
+      unsigned numch = getUint32("OLAP.CNProc_IncoherentStokes.channelsPerSubband");
 
- if (numch == 0)
-   return nrChannelsPerSubband();
- else
-   return numch;
-}
+      if (numch == 0)
+        return nrChannelsPerSubband();
+      else
+        return numch;
+    }
 
-std::string Parset::coherentStokes() const
-{
-  return getString("OLAP.CNProc_CoherentStokes.which");
-}
+    std::string Parset::coherentStokes() const
+    {
+      return getString("OLAP.CNProc_CoherentStokes.which");
+    }
 
-std::string Parset::incoherentStokes() const
-{
-  return getString("OLAP.CNProc_IncoherentStokes.which");
-}
+    std::string Parset::incoherentStokes() const
+    {
+      return getString("OLAP.CNProc_IncoherentStokes.which");
+    }
 
-bool Parset::outputFilteredData() const
-{
-  return getBool("Observation.DataProducts.Output_FilteredData.enabled", false);
-}
+    bool Parset::outputFilteredData() const
+    {
+      return getBool("Observation.DataProducts.Output_FilteredData.enabled", false);
+    }
 
-bool Parset::outputCorrelatedData() const
-{
-  return getBool("Observation.DataProducts.Output_Correlated.enabled", false);
-}
+    bool Parset::outputCorrelatedData() const
+    {
+      return getBool("Observation.DataProducts.Output_Correlated.enabled", false);
+    }
 
-bool Parset::outputBeamFormedData() const
-{
-  return getBool("Observation.DataProducts.Output_Beamformed.enabled", false);
-}
+    bool Parset::outputBeamFormedData() const
+    {
+      return getBool("Observation.DataProducts.Output_Beamformed.enabled", false);
+    }
 
-bool Parset::outputTrigger() const
-{
-  return getBool("Observation.DataProducts.Output_Trigger.enabled", false);
-}
+    bool Parset::outputTrigger() const
+    {
+      return getBool("Observation.DataProducts.Output_Trigger.enabled", false);
+    }
 
-bool Parset::outputThisType(OutputType outputType) const
-{
-  return getBool(keyPrefix(outputType) + ".enabled", false);
-}
+    bool Parset::outputThisType(OutputType outputType) const
+    {
+      return getBool(keyPrefix(outputType) + ".enabled", false);
+    }
 
-bool Parset::onlineFlagging() const
-{
-  return getBool("OLAP.CNProc.onlineFlagging", false);
-}
+    bool Parset::onlineFlagging() const
+    {
+      return getBool("OLAP.CNProc.onlineFlagging", false);
+    }
 
-bool Parset::onlinePreCorrelationFlagging() const
-{
-  return getBool("OLAP.CNProc.onlinePreCorrelationFlagging", false);
-}
+    bool Parset::onlinePreCorrelationFlagging() const
+    {
+      return getBool("OLAP.CNProc.onlinePreCorrelationFlagging", false);
+    }
 
-bool Parset::onlinePreCorrelationNoChannelsFlagging() const
-{
-  return getBool("OLAP.CNProc.onlinePreCorrelationNoChannelsFlagging", false);
-}
+    bool Parset::onlinePreCorrelationNoChannelsFlagging() const
+    {
+      return getBool("OLAP.CNProc.onlinePreCorrelationNoChannelsFlagging", false);
+    }
 
-bool Parset::onlinePostCorrelationFlagging() const
-{
-  return getBool("OLAP.CNProc.onlinePostCorrelationFlagging", false);
-}
+    bool Parset::onlinePostCorrelationFlagging() const
+    {
+      return getBool("OLAP.CNProc.onlinePostCorrelationFlagging", false);
+    }
 
- unsigned Parset::onlinePreCorrelationFlaggingIntegration() const
-{
-  return getUint32("OLAP.CNProc.onlinePostCorrelationFlaggingIntegration", 0);
-}
+    unsigned Parset::onlinePreCorrelationFlaggingIntegration() const
+    {
+      return getUint32("OLAP.CNProc.onlinePostCorrelationFlaggingIntegration", 0);
+    }
 
 
-string Parset::onlinePreCorrelationFlaggingType(std::string defaultVal) const
-{
-  return getString("OLAP.CNProc.onlinePreCorrelationFlaggingType", defaultVal);
-}
+    string Parset::onlinePreCorrelationFlaggingType(std::string defaultVal) const
+    {
+      return getString("OLAP.CNProc.onlinePreCorrelationFlaggingType", defaultVal);
+    }
 
-string Parset::onlinePreCorrelationFlaggingStatisticsType(std::string defaultVal) const
-{
-  return getString("OLAP.CNProc.onlinePreCorrelationFlaggingStatisticsType", defaultVal);
-}
+    string Parset::onlinePreCorrelationFlaggingStatisticsType(std::string defaultVal) const
+    {
+      return getString("OLAP.CNProc.onlinePreCorrelationFlaggingStatisticsType", defaultVal);
+    }
 
-string Parset::onlinePostCorrelationFlaggingType(std::string defaultVal) const
-{
-  return getString("OLAP.CNProc.onlinePostCorrelationFlaggingType", defaultVal);
-}
+    string Parset::onlinePostCorrelationFlaggingType(std::string defaultVal) const
+    {
+      return getString("OLAP.CNProc.onlinePostCorrelationFlaggingType", defaultVal);
+    }
 
-string Parset::onlinePostCorrelationFlaggingStatisticsType(std::string defaultVal) const
-{
-  return getString("OLAP.CNProc.onlinePostCorrelationFlaggingStatisticsType", defaultVal);
-}
+    string Parset::onlinePostCorrelationFlaggingStatisticsType(std::string defaultVal) const
+    {
+      return getString("OLAP.CNProc.onlinePostCorrelationFlaggingStatisticsType", defaultVal);
+    }
 
-bool Parset::onlinePostCorrelationFlaggingDetectBrokenStations() const
-{
-  return getBool("OLAP.CNProc.onlinePostCorrelationFlaggingDetectBrokenStations", false);
-}
+    bool Parset::onlinePostCorrelationFlaggingDetectBrokenStations() const
+    {
+      return getBool("OLAP.CNProc.onlinePostCorrelationFlaggingDetectBrokenStations", false);
+    }
 
-bool Parset::fakeInputData() const
-{
-  return getBool("OLAP.CNProc.fakeInputData", false);
-}
+    bool Parset::fakeInputData() const
+    {
+      return getBool("OLAP.CNProc.fakeInputData", false);
+    }
 
-bool Parset::checkFakeInputData() const
-{
-  return getBool("OLAP.CNProc.checkFakeInputData", false);
-}
+    bool Parset::checkFakeInputData() const
+    {
+      return getBool("OLAP.CNProc.checkFakeInputData", false);
+    }
 
-double Parset::CNintegrationTime() const
-{
-  return nrSamplesPerSubband() / subbandBandwidth();
-}
+    double Parset::CNintegrationTime() const
+    {
+      return nrSamplesPerSubband() / subbandBandwidth();
+    }
 
-double Parset::IONintegrationTime() const
-{
-  return CNintegrationTime() * IONintegrationSteps();
-}
+    double Parset::IONintegrationTime() const
+    {
+      return CNintegrationTime() * IONintegrationSteps();
+    }
 
-unsigned Parset::nrSamplesPerSubband() const
-{
-  return CNintegrationSteps() * nrChannelsPerSubband();
-}
+    unsigned Parset::nrSamplesPerSubband() const
+    {
+      return CNintegrationSteps() * nrChannelsPerSubband();
+    }
 
-unsigned Parset::nrSamplesPerChannel() const
-{
-  return CNintegrationSteps();
-}
+    unsigned Parset::nrSamplesPerChannel() const
+    {
+      return CNintegrationSteps();
+    }
 
-unsigned Parset::nrHistorySamples() const
-{
-  return nrChannelsPerSubband() > 1 ? (nrPPFTaps() - 1) * nrChannelsPerSubband() : 0;
-}
+    unsigned Parset::nrHistorySamples() const
+    {
+      return nrChannelsPerSubband() > 1 ? (nrPPFTaps() - 1) * nrChannelsPerSubband() : 0;
+    }
 
-unsigned Parset::nrSamplesToCNProc() const
-{
-  return nrSamplesPerSubband() + nrHistorySamples() + 32 / (NR_POLARIZATIONS * 2 * nrBitsPerSample() / 8);
-}
+    unsigned Parset::nrSamplesToCNProc() const
+    {
+      return nrSamplesPerSubband() + nrHistorySamples() + 32 / (NR_POLARIZATIONS * 2 * nrBitsPerSample() / 8);
+    }
 
-unsigned Parset::inputBufferSize() const
-{
-  return (unsigned) (getDouble("OLAP.nrSecondsOfBuffer", 1.0) * subbandBandwidth());
-}
+    unsigned Parset::inputBufferSize() const
+    {
+      return (unsigned) (getDouble("OLAP.nrSecondsOfBuffer", 1.0) * subbandBandwidth());
+    }
 
-unsigned Parset::maxNetworkDelay() const
-{
-  return (unsigned) (getDouble("OLAP.maxNetworkDelay", 0.25) * subbandBandwidth());
-}
+    unsigned Parset::maxNetworkDelay() const
+    {
+      return (unsigned) (getDouble("OLAP.maxNetworkDelay", 0.25) * subbandBandwidth());
+    }
 
-unsigned Parset::nrSubbandsPerPset() const
-{
-  unsigned psets    = phaseTwoPsets().size();
-  unsigned subbands = nrSubbands();
+    unsigned Parset::nrSubbandsPerPset() const
+    {
+      unsigned psets = phaseTwoPsets().size();
+      unsigned subbands = nrSubbands();
 
-  return (psets == 0 ? 0 : subbands + psets - 1) / psets;
-}
+      return (psets == 0 ? 0 : subbands + psets - 1) / psets;
+    }
 
-unsigned Parset::coherentStokesNrSubbandsPerFile() const
-{
-  return std::min( getUint32("OLAP.CNProc_CoherentStokes.subbandsPerFile"), nrSubbands() );
-}
+    unsigned Parset::coherentStokesNrSubbandsPerFile() const
+    {
+      return std::min( getUint32("OLAP.CNProc_CoherentStokes.subbandsPerFile"), nrSubbands() );
+    }
 
-unsigned Parset::incoherentStokesNrSubbandsPerFile() const
-{
-  return std::min( getUint32("OLAP.CNProc_IncoherentStokes.subbandsPerFile"), nrSubbands() );
-}
+    unsigned Parset::incoherentStokesNrSubbandsPerFile() const
+    {
+      return std::min( getUint32("OLAP.CNProc_IncoherentStokes.subbandsPerFile"), nrSubbands() );
+    }
 
-unsigned Parset::nrPhase3StreamsPerPset() const
-{
-  return maxNrStreamsPerPset(BEAM_FORMED_DATA) + maxNrStreamsPerPset(TRIGGER_DATA);
-}
+    unsigned Parset::nrPhase3StreamsPerPset() const
+    {
+      return maxNrStreamsPerPset(BEAM_FORMED_DATA) + maxNrStreamsPerPset(TRIGGER_DATA);
+    }
 
-unsigned Parset::nrPPFTaps() const
-{
-  return getUint32("OLAP.CNProc.nrPPFTaps");
-}
+    unsigned Parset::nrPPFTaps() const
+    {
+      return getUint32("OLAP.CNProc.nrPPFTaps");
+    }
 
-unsigned Parset::nrChannelsPerSubband() const
-{
-  return getUint32("Observation.channelsPerSubband");
-}
+    unsigned Parset::nrChannelsPerSubband() const
+    {
+      return getUint32("Observation.channelsPerSubband");
+    }
 
-std::vector<unsigned> Parset::phaseOneTwoCores() const
-{
-  return getUint32Vector("OLAP.CNProc.phaseOneTwoCores", true);
-}
+    std::vector<unsigned> Parset::phaseOneTwoCores() const
+    {
+      return getUint32Vector("OLAP.CNProc.phaseOneTwoCores", true);
+    }
 
-std::vector<unsigned> Parset::phaseThreeCores() const
-{
-  return getUint32Vector("OLAP.CNProc.phaseThreeCores",true);
-}  
- 
-unsigned Parset::nrCoresPerPset() const
-{
-  return usedCoresInPset().size();
-}  
+    std::vector<unsigned> Parset::phaseThreeCores() const
+    {
+      return getUint32Vector("OLAP.CNProc.phaseThreeCores",true);
+    }
 
-vector<unsigned> Parset::subbandList() const
-{
-  return getUint32Vector("Observation.subbandList",true);
-} 
+    unsigned Parset::nrCoresPerPset() const
+    {
+      return usedCoresInPset().size();
+    }
 
-unsigned Parset::nrSubbands() const
-{
-  return getUint32Vector("Observation.subbandList",true).size();
-}
+    vector<unsigned> Parset::subbandList() const
+    {
+      return getUint32Vector("Observation.subbandList",true);
+    }
 
-unsigned Parset::nrSubbandsPerSAP(unsigned sap) const
-{
-  std::vector<unsigned> mapping = subbandToSAPmapping();
+    unsigned Parset::nrSubbands() const
+    {
+      return getUint32Vector("Observation.subbandList",true).size();
+    }
 
-  return std::count(mapping.begin(), mapping.end(), sap);
-} 
+    unsigned Parset::nrSubbandsPerSAP(unsigned sap) const
+    {
+      std::vector<unsigned> mapping = subbandToSAPmapping();
 
-std::vector<unsigned> Parset::subbandToSAPmapping() const
-{
-  return getUint32Vector("Observation.beamList",true);
-}
+      return std::count(mapping.begin(), mapping.end(), sap);
+    }
 
-double Parset::channelWidth() const
-{
-  return subbandBandwidth() / nrChannelsPerSubband();
-}
+    std::vector<unsigned> Parset::subbandToSAPmapping() const
+    {
+      return getUint32Vector("Observation.beamList",true);
+    }
 
-bool Parset::delayCompensation() const
-{
-  return getBool("OLAP.delayCompensation", true);
-}
+    double Parset::channelWidth() const
+    {
+      return subbandBandwidth() / nrChannelsPerSubband();
+    }
 
-unsigned Parset::nrCalcDelays() const
-{
-  return getUint32("OLAP.DelayComp.nrCalcDelays", 16);
-}
+    bool Parset::delayCompensation() const
+    {
+      return getBool("OLAP.delayCompensation", true);
+    }
 
-string Parset::positionType() const
-{
-  return getString("OLAP.DelayComp.positionType", "ITRF");
-}
+    unsigned Parset::nrCalcDelays() const
+    {
+      return getUint32("OLAP.DelayComp.nrCalcDelays", 16);
+    }
 
-double Parset::clockCorrectionTime(const std::string &station) const
-{
-  return getDouble(std::string("PIC.Core.") + station + ".clockCorrectionTime",0.0);
-}
+    string Parset::positionType() const
+    {
+      return getString("OLAP.DelayComp.positionType", "ITRF");
+    }
 
-bool Parset::correctBandPass() const
-{
-  return getBool("OLAP.correctBandPass");
-}
+    double Parset::clockCorrectionTime(const std::string &station) const
+    {
+      return getDouble(std::string("PIC.Core.") + station + ".clockCorrectionTime",0.0);
+    }
 
-unsigned Parset::nrPsetsPerStorage() const
-{
-  return getUint32("OLAP.psetsPerStorage");
-}
+    bool Parset::correctBandPass() const
+    {
+      return getBool("OLAP.correctBandPass");
+    }
 
-unsigned Parset::getLofarStManVersion() const
-{
-  return getUint32("OLAP.LofarStManVersion", 2); 
-}
+    unsigned Parset::nrPsetsPerStorage() const
+    {
+      return getUint32("OLAP.psetsPerStorage");
+    }
 
-vector<unsigned> Parset::phaseOnePsets() const
-{
-  return getUint32Vector("OLAP.CNProc.phaseOnePsets",true);
-}
+    unsigned Parset::getLofarStManVersion() const
+    {
+      return getUint32("OLAP.LofarStManVersion", 2);
+    }
 
-vector<unsigned> Parset::phaseTwoPsets() const
-{
-  return getUint32Vector("OLAP.CNProc.phaseTwoPsets",true);
-}
+    vector<unsigned> Parset::phaseOnePsets() const
+    {
+      return getUint32Vector("OLAP.CNProc.phaseOnePsets",true);
+    }
 
-vector<unsigned> Parset::phaseThreePsets() const
-{
-  return getUint32Vector("OLAP.CNProc.phaseThreePsets",true);
-}
+    vector<unsigned> Parset::phaseTwoPsets() const
+    {
+      return getUint32Vector("OLAP.CNProc.phaseTwoPsets",true);
+    }
 
-unsigned Parset::totalNrPsets() const
-{
-  const std::string key = "OLAP.IONProc.psetList";
+    vector<unsigned> Parset::phaseThreePsets() const
+    {
+      return getUint32Vector("OLAP.CNProc.phaseThreePsets",true);
+    }
 
-  if (isDefined(key)) {
-    return getStringVector(key,true).size();
-  } else {
-    LOG_WARN_STR( "Missing key " << key << ", using the used psets as a fallback");
-    return usedPsets().size();
-  }  
-}
+    unsigned Parset::totalNrPsets() const
+    {
+      const std::string key = "OLAP.IONProc.psetList";
 
-vector<unsigned> Parset::tabList() const
-{
-  return getUint32Vector("OLAP.CNProc.tabList",true);
-}
+      if (isDefined(key)) {
+        return getStringVector(key,true).size();
+      } else {
+        LOG_WARN_STR( "Missing key " << key << ", using the used psets as a fallback");
+        return usedPsets().size();
+      }
+    }
 
-int Parset::phaseOnePsetIndex(unsigned pset) const
-{
-  return findIndex(pset, phaseOnePsets());
-}
+    vector<unsigned> Parset::tabList() const
+    {
+      return getUint32Vector("OLAP.CNProc.tabList",true);
+    }
 
-int Parset::phaseTwoPsetIndex(unsigned pset) const
-{
-  return findIndex(pset, phaseTwoPsets());
-}
+    int Parset::phaseOnePsetIndex(unsigned pset) const
+    {
+      return findIndex(pset, phaseOnePsets());
+    }
 
-int Parset::phaseThreePsetIndex(unsigned pset) const
-{
-  return findIndex(pset, phaseThreePsets());
-}
+    int Parset::phaseTwoPsetIndex(unsigned pset) const
+    {
+      return findIndex(pset, phaseTwoPsets());
+    }
 
-int Parset::phaseOneCoreIndex(unsigned core) const
-{
-  return findIndex(core, phaseOneTwoCores());
-}
+    int Parset::phaseThreePsetIndex(unsigned pset) const
+    {
+      return findIndex(pset, phaseThreePsets());
+    }
 
-int Parset::phaseTwoCoreIndex(unsigned core) const
-{
-  return findIndex(core, phaseOneTwoCores());
-}
+    int Parset::phaseOneCoreIndex(unsigned core) const
+    {
+      return findIndex(core, phaseOneTwoCores());
+    }
 
-int Parset::phaseThreeCoreIndex(unsigned core) const
-{
-  return findIndex(core, phaseThreeCores());
-}
+    int Parset::phaseTwoCoreIndex(unsigned core) const
+    {
+      return findIndex(core, phaseOneTwoCores());
+    }
 
-double Parset::channel0Frequency(size_t subband) const
-{
-  double sbFreq = subbandToFrequencyMapping()[subband];
+    int Parset::phaseThreeCoreIndex(unsigned core) const
+    {
+      return findIndex(core, phaseThreeCores());
+    }
 
-  if (nrChannelsPerSubband() == 1)
-    return sbFreq;
+    double Parset::channel0Frequency(size_t subband) const
+    {
+      double sbFreq = subbandToFrequencyMapping()[subband];
 
-  // if the 2nd PPF is used, the subband is shifted half a channel
-  // downwards, so subtracting half a subband results in the
-  // center of channel 0 (instead of the bottom).
-  return sbFreq - 0.5 * subbandBandwidth();
-}
+      if (nrChannelsPerSubband() == 1)
+        return sbFreq;
 
-unsigned Parset::nrSlotsInFrame() const
-{
-  unsigned nrSlots = 0;
+      // if the 2nd PPF is used, the subband is shifted half a channel
+      // downwards, so subtracting half a subband results in the
+      // center of channel 0 (instead of the bottom).
+      return sbFreq - 0.5 * subbandBandwidth();
+    }
 
-  nrSlots = getUint32("Observation.nrSlotsInFrame", 0);
+    unsigned Parset::nrSlotsInFrame() const
+    {
+      unsigned nrSlots = 0;
 
-  if (nrSlots == 0) {
-    // return default
-    return maxBeamletsPerRSP(nrBitsPerSample());
-  }
+      nrSlots = getUint32("Observation.nrSlotsInFrame", 0);
 
-  return nrSlots;
-}
+      if (nrSlots == 0) {
+        // return default
+        return maxBeamletsPerRSP(nrBitsPerSample());
+      }
 
-string Parset::partitionName() const
-{
-  return getString("OLAP.CNProc.partition");
-}
+      return nrSlots;
+    }
 
-bool Parset::realTime() const
-{
-  return getBool("OLAP.realTime");
-}
+    string Parset::partitionName() const
+    {
+      return getString("OLAP.CNProc.partition");
+    }
 
-std::vector<unsigned> Parset::nrTABs() const
-{
-  std::vector<unsigned> counts(nrBeams());
+    bool Parset::realTime() const
+    {
+      return getBool("OLAP.realTime");
+    }
 
-  for (unsigned beam = 0; beam < nrBeams(); beam++)
-    counts[beam] = nrTABs(beam);
+    std::vector<unsigned> Parset::nrTABs() const
+    {
+      std::vector<unsigned> counts(nrBeams());
 
-  return counts;
-}
+      for (unsigned beam = 0; beam < nrBeams(); beam++)
+        counts[beam] = nrTABs(beam);
 
-unsigned Parset::totalNrTABs() const
-{
-  std::vector<unsigned> beams = nrTABs();
+      return counts;
+    }
 
-  return std::accumulate(beams.begin(), beams.end(), 0);
-}
+    unsigned Parset::totalNrTABs() const
+    {
+      std::vector<unsigned> beams = nrTABs();
 
-unsigned Parset::maxNrTABs() const
-{
-  std::vector<unsigned> beams = nrTABs();
+      return std::accumulate(beams.begin(), beams.end(), 0);
+    }
 
-  return *std::max_element(beams.begin(), beams.end());
-}
+    unsigned Parset::maxNrTABs() const
+    {
+      std::vector<unsigned> beams = nrTABs();
 
-BeamCoordinates Parset::TABs(unsigned beam) const
-{
-  BeamCoordinates coordinates;
+      return *std::max_element(beams.begin(), beams.end());
+    }
 
-  for (unsigned pencil = 0; pencil < nrTABs(beam); pencil ++) {
-    const std::vector<double> coords = getTAB(beam, pencil);
+    BeamCoordinates Parset::TABs(unsigned beam) const
+    {
+      BeamCoordinates coordinates;
 
-    // assume ra,dec
-    coordinates += BeamCoord3D(coords[0],coords[1]);
-  }
+      for (unsigned pencil = 0; pencil < nrTABs(beam); pencil++) {
+        const std::vector<double> coords = getTAB(beam, pencil);
 
-  return coordinates;
-}
+        // assume ra,dec
+        coordinates += BeamCoord3D(coords[0],coords[1]);
+      }
 
-string Parset::bandFilter() const
-{
-  return getString("Observation.bandFilter");
-}
+      return coordinates;
+    }
 
-string Parset::antennaSet() const
-{
-  return getString("Observation.antennaSet");
-}
+    string Parset::bandFilter() const
+    {
+      return getString("Observation.bandFilter");
+    }
 
-string Parset::PVSS_TempObsName() const
-{
-  return getString("_DPname","");
-}
+    string Parset::antennaSet() const
+    {
+      return getString("Observation.antennaSet");
+    }
 
-string Parset::AntennaSetsConf() const
-{
-  return getString("OLAP.Storage.AntennaSetsConf","");
-}
+    string Parset::PVSS_TempObsName() const
+    {
+      return getString("_DPname","");
+    }
 
-string Parset::AntennaFieldsDir() const
-{
-  return getString("OLAP.Storage.AntennaFieldsDir","");
-}
+    string Parset::AntennaSetsConf() const
+    {
+      return getString("OLAP.Storage.AntennaSetsConf","");
+    }
 
-string Parset::HBADeltasDir() const
-{
-  return getString("OLAP.Storage.HBADeltasDir","");
-}
+    string Parset::AntennaFieldsDir() const
+    {
+      return getString("OLAP.Storage.AntennaFieldsDir","");
+    }
 
-void StreamInfo::log() const
-{
-  LOG_DEBUG_STR( "Stream " << stream << " is sap " << sap << " beam " << beam << " stokes " << stokes << " part " << part << " consisting of subbands " << subbands );
-}
+    string Parset::HBADeltasDir() const
+    {
+      return getString("OLAP.Storage.HBADeltasDir","");
+    }
 
-static unsigned divideRoundUp( unsigned a, unsigned b )
-{
-  return b == 0 ? 0 : (a + b - 1) / b;
-}
-
-Transpose2::Transpose2( const Parset &parset )
-:
-  phaseThreeDisjunct( parset.phaseThreeDisjunct() ),
-
-  nrChannels( parset.nrChannelsPerSubband() ),
-  nrCoherentChannels( parset.coherentStokesChannelsPerSubband() ),
-  nrIncoherentChannels( parset.incoherentStokesChannelsPerSubband() ),
-  nrSamples( parset.CNintegrationSteps() ),
-  coherentTimeIntFactor( parset.coherentStokesTimeIntegrationFactor() ),
-  incoherentTimeIntFactor( parset.incoherentStokesTimeIntegrationFactor() ),
-
-  nrBeams( parset.totalNrTABs() ),
-  coherentNrSubbandsPerFile( parset.coherentStokesNrSubbandsPerFile() ),
-  incoherentNrSubbandsPerFile( parset.incoherentStokesNrSubbandsPerFile() ),
-
-  nrPhaseTwoPsets( parset.phaseTwoPsets().size() ),
-  nrPhaseTwoCores( parset.phaseOneTwoCores().size() ),
-  nrPhaseThreePsets( parset.phaseThreePsets().size() ),
-  nrPhaseThreeCores( parset.phaseThreeCores().size() ),
-
-  nrSubbandsPerPset( parset.nrSubbandsPerPset() ),
-  streamInfo( generateStreamInfo(parset) ),
-  nrStreamsPerPset( divideRoundUp( nrStreams(), parset.phaseThreePsets().size() ) )
-{
-}
+    void StreamInfo::log() const
+    {
+      LOG_DEBUG_STR( "Stream " << stream << " is sap " << sap << " beam " << beam << " stokes " << stokes << " part " << part << " consisting of subbands " << subbands );
+    }
 
-unsigned Transpose2::nrStreams() const
-{
-  return streamInfo.size();
-}
+    static unsigned divideRoundUp( unsigned a, unsigned b )
+    {
+      return b == 0 ? 0 : (a + b - 1) / b;
+    }
 
-// compose and decompose a stream number
-unsigned Transpose2::stream( unsigned sap, unsigned beam, unsigned stokes, unsigned part, unsigned startAt ) const
-{
-  for (unsigned i = startAt; i < streamInfo.size(); i++) {
-    const struct StreamInfo &info = streamInfo[i];
+    Transpose2::Transpose2( const Parset &parset )
+      :
+      phaseThreeDisjunct( parset.phaseThreeDisjunct() ),
+
+      nrChannels( parset.nrChannelsPerSubband() ),
+      nrCoherentChannels( parset.coherentStokesChannelsPerSubband() ),
+      nrIncoherentChannels( parset.incoherentStokesChannelsPerSubband() ),
+      nrSamples( parset.CNintegrationSteps() ),
+      coherentTimeIntFactor( parset.coherentStokesTimeIntegrationFactor() ),
+      incoherentTimeIntFactor( parset.incoherentStokesTimeIntegrationFactor() ),
+
+      nrBeams( parset.totalNrTABs() ),
+      coherentNrSubbandsPerFile( parset.coherentStokesNrSubbandsPerFile() ),
+      incoherentNrSubbandsPerFile( parset.incoherentStokesNrSubbandsPerFile() ),
+
+      nrPhaseTwoPsets( parset.phaseTwoPsets().size() ),
+      nrPhaseTwoCores( parset.phaseOneTwoCores().size() ),
+      nrPhaseThreePsets( parset.phaseThreePsets().size() ),
+      nrPhaseThreeCores( parset.phaseThreeCores().size() ),
+
+      nrSubbandsPerPset( parset.nrSubbandsPerPset() ),
+      streamInfo( generateStreamInfo(parset) ),
+      nrStreamsPerPset( divideRoundUp( nrStreams(), parset.phaseThreePsets().size() ) )
+    {
+    }
 
-    if (sap == info.sap && beam == info.beam && stokes == info.stokes && part == info.part)
-      return i;
-  }
+    unsigned Transpose2::nrStreams() const
+    {
+      return streamInfo.size();
+    }
 
-  // shouldn't reach this point
-  ASSERTSTR(false, "Requested non-existing sap " << sap << " beam " << beam << " stokes " << stokes << " part " << part);
+    // compose and decompose a stream number
+    unsigned Transpose2::stream( unsigned sap, unsigned beam, unsigned stokes, unsigned part, unsigned startAt ) const
+    {
+      for (unsigned i = startAt; i < streamInfo.size(); i++) {
+        const struct StreamInfo &info = streamInfo[i];
 
-  return 0;
-}
+        if (sap == info.sap && beam == info.beam && stokes == info.stokes && part == info.part)
+          return i;
+      }
 
-void Transpose2::decompose( unsigned stream, unsigned &sap, unsigned &beam, unsigned &stokes, unsigned &part ) const
-{
-  const struct StreamInfo &info = streamInfo[stream];
+      // shouldn't reach this point
+      ASSERTSTR(false, "Requested non-existing sap " << sap << " beam " << beam << " stokes " << stokes << " part " << part);
 
-  sap    = info.sap;
-  beam   = info.beam;
-  stokes = info.stokes;
-  part   = info.part;
-}
+      return 0;
+    }
 
-std::vector<unsigned> Transpose2::subbands( unsigned stream ) const
-{
-  ASSERT(stream < streamInfo.size());
+    void Transpose2::decompose( unsigned stream, unsigned &sap, unsigned &beam, unsigned &stokes, unsigned &part ) const
+    {
+      const struct StreamInfo &info = streamInfo[stream];
 
-  return streamInfo[stream].subbands;
-}
+      sap = info.sap;
+      beam = info.beam;
+      stokes = info.stokes;
+      part = info.part;
+    }
 
-unsigned Transpose2::nrSubbands( unsigned stream ) const
-{
-  return stream >= streamInfo.size() ? 0 : subbands(stream).size();
-}
+    std::vector<unsigned> Transpose2::subbands( unsigned stream ) const
+    {
+      ASSERT(stream < streamInfo.size());
 
-static bool streamInfoSubbandsComp( const struct StreamInfo &a, const struct StreamInfo &b )
-{
-  return a.subbands.size() < b.subbands.size();
-}
+      return streamInfo[stream].subbands;
+    }
 
-unsigned Transpose2::maxNrSubbands() const
-{
-  return streamInfo.size() == 0 ? 0 : std::max_element( streamInfo.begin(), streamInfo.end(), &streamInfoSubbandsComp )->subbands.size();
-}
+    unsigned Transpose2::nrSubbands( unsigned stream ) const
+    {
+      return stream >= streamInfo.size() ? 0 : subbands(stream).size();
+    }
 
-static bool streamInfoChannelsComp( const struct StreamInfo &a, const struct StreamInfo &b )
-{
-  return a.nrChannels < b.nrChannels;
-}
+    static bool streamInfoSubbandsComp( const struct StreamInfo &a, const struct StreamInfo &b )
+    {
+      return a.subbands.size() < b.subbands.size();
+    }
 
-unsigned Transpose2::maxNrChannels() const {
-  return streamInfo.size() == 0 ? 0 : std::max_element( streamInfo.begin(), streamInfo.end(), &streamInfoChannelsComp )->nrChannels;
-}
+    unsigned Transpose2::maxNrSubbands() const
+    {
+      return streamInfo.size() == 0 ? 0 : std::max_element( streamInfo.begin(), streamInfo.end(), &streamInfoSubbandsComp )->subbands.size();
+    }
 
-static bool streamInfoSamplesComp( const struct StreamInfo &a, const struct StreamInfo &b )
-{
-  return a.nrSamples < b.nrSamples;
-}
+    static bool streamInfoChannelsComp( const struct StreamInfo &a, const struct StreamInfo &b )
+    {
+      return a.nrChannels < b.nrChannels;
+    }
 
-unsigned Transpose2::maxNrSamples() const
-{
-  return streamInfo.size() == 0 ? 0 : std::max_element( streamInfo.begin(), streamInfo.end(), &streamInfoSamplesComp )->nrSamples;
-}
+    unsigned Transpose2::maxNrChannels() const
+    {
+      return streamInfo.size() == 0 ? 0 : std::max_element( streamInfo.begin(), streamInfo.end(), &streamInfoChannelsComp )->nrChannels;
+    }
 
-size_t Transpose2::subbandSize( unsigned stream ) const
-{
-  const StreamInfo &info = streamInfo[stream];
+    static bool streamInfoSamplesComp( const struct StreamInfo &a, const struct StreamInfo &b )
+    {
+      return a.nrSamples < b.nrSamples;
+    }
 
-  return (size_t)info.nrChannels * (info.nrSamples|2) * sizeof(float);
-}
+    unsigned Transpose2::maxNrSamples() const
+    {
+      return streamInfo.size() == 0 ? 0 : std::max_element( streamInfo.begin(), streamInfo.end(), &streamInfoSamplesComp )->nrSamples;
+    }
 
-unsigned Transpose2::sourceCore( unsigned subband, unsigned block ) const
-{
-  return (block * nrSubbandsPerPset + subband % nrSubbandsPerPset) % nrPhaseTwoCores;
-}
+    size_t Transpose2::subbandSize( unsigned stream ) const
+    {
+      const StreamInfo &info = streamInfo[stream];
 
-unsigned Transpose2::sourcePset( unsigned subband, unsigned block ) const
-{
-  (void)block;
-  return subband / nrSubbandsPerPset;
-}
+      return (size_t)info.nrChannels * (info.nrSamples | 2) * sizeof(float);
+    }
 
-unsigned Transpose2::destCore( unsigned stream, unsigned block ) const
-{
-  return (block * phaseThreeGroupSize() + stream % nrStreamsPerPset) % nrPhaseThreeCores;
-}
+    unsigned Transpose2::sourceCore( unsigned subband, unsigned block ) const
+    {
+      return (block * nrSubbandsPerPset + subband % nrSubbandsPerPset) % nrPhaseTwoCores;
+    }
 
-unsigned Transpose2::destPset( unsigned stream, unsigned block ) const
-{
-  (void)block;
-  return stream / nrStreamsPerPset;
-}
+    unsigned Transpose2::sourcePset( unsigned subband, unsigned block ) const
+    {
+      (void)block;
+      return subband / nrSubbandsPerPset;
+    }
 
-unsigned Transpose2::phaseThreeGroupSize() const
-{
-  return phaseThreeDisjunct ? nrStreamsPerPset : nrSubbandsPerPset;
-}
+    unsigned Transpose2::destCore( unsigned stream, unsigned block ) const
+    {
+      return (block * phaseThreeGroupSize() + stream % nrStreamsPerPset) % nrPhaseThreeCores;
+    }
 
+    unsigned Transpose2::destPset( unsigned stream, unsigned block ) const
+    {
+      (void)block;
+      return stream / nrStreamsPerPset;
+    }
 
-std::vector<struct StreamInfo> Transpose2::generateStreamInfo( const Parset &parset ) const
-{
-  // get all info from parset, since we will be called while constructing our members
+    unsigned Transpose2::phaseThreeGroupSize() const
+    {
+      return phaseThreeDisjunct ? nrStreamsPerPset : nrSubbandsPerPset;
+    }
 
-  // ParameterSets are SLOW, so cache any info we need repeatedly
 
-  std::vector<struct StreamInfo> infoset;
-  const std::vector<unsigned> sapMapping = parset.subbandToSAPmapping();
-  const unsigned nrSAPs             = parset.nrBeams();
-  const unsigned nrSubbands         = parset.nrSubbands();
-  const unsigned nrCoherentSubbandsPerFile    = parset.coherentStokesNrSubbandsPerFile();
-  const unsigned nrIncoherentSubbandsPerFile  = parset.incoherentStokesNrSubbandsPerFile();
+    std::vector<struct StreamInfo> Transpose2::generateStreamInfo( const Parset &parset ) const
+    {
+      // get all info from parset, since we will be called while constructing our members
 
-  const unsigned nrCoherentStokes          = parset.coherentStokes().size();
-  const StokesType coherentType            = stokesType( parset.coherentStokes() );
-  const unsigned nrCoherentChannels        = parset.coherentStokesChannelsPerSubband();
-  const unsigned nrCoherentTimeIntFactor   = parset.coherentStokesTimeIntegrationFactor();
+      // ParameterSets are SLOW, so cache any info we need repeatedly
 
-  const unsigned nrIncoherentStokes        = parset.incoherentStokes().size();
-  const StokesType incoherentType          = stokesType( parset.incoherentStokes() );
-  const unsigned nrIncoherentChannels      = parset.incoherentStokesChannelsPerSubband();
-  const unsigned nrIncoherentTimeIntFactor = parset.incoherentStokesTimeIntegrationFactor();
+      std::vector<struct StreamInfo> infoset;
+      const std::vector<unsigned> sapMapping = parset.subbandToSAPmapping();
+      const unsigned nrSAPs = parset.nrBeams();
+      const unsigned nrSubbands = parset.nrSubbands();
+      const unsigned nrCoherentSubbandsPerFile = parset.coherentStokesNrSubbandsPerFile();
+      const unsigned nrIncoherentSubbandsPerFile = parset.incoherentStokesNrSubbandsPerFile();
 
-  const unsigned nrSamples                 = parset.CNintegrationSteps();
+      const unsigned nrCoherentStokes = parset.coherentStokes().size();
+      const StokesType coherentType = stokesType( parset.coherentStokes() );
+      const unsigned nrCoherentChannels = parset.coherentStokesChannelsPerSubband();
+      const unsigned nrCoherentTimeIntFactor = parset.coherentStokesTimeIntegrationFactor();
 
-  struct StreamInfo info;
-  info.stream = 0;
+      const unsigned nrIncoherentStokes = parset.incoherentStokes().size();
+      const StokesType incoherentType = stokesType( parset.incoherentStokes() );
+      const unsigned nrIncoherentChannels = parset.incoherentStokesChannelsPerSubband();
+      const unsigned nrIncoherentTimeIntFactor = parset.incoherentStokesTimeIntegrationFactor();
 
-  for (unsigned sap = 0; sap < nrSAPs; sap++) {
-    const unsigned nrBeams = parset.nrTABs(sap);
+      const unsigned nrSamples = parset.CNintegrationSteps();
 
-    info.sap = sap;
+      struct StreamInfo info;
+      info.stream = 0;
 
-    std::vector<unsigned> sapSubbands;
+      for (unsigned sap = 0; sap < nrSAPs; sap++) {
+        const unsigned nrBeams = parset.nrTABs(sap);
 
-    for (unsigned sb = 0; sb < nrSubbands; sb++)
-      if (sapMapping[sb] == sap)
-        sapSubbands.push_back(sb);
+        info.sap = sap;
 
-    for (unsigned beam = 0; beam < nrBeams; beam++) {
-      info.beam = beam;
+        std::vector<unsigned> sapSubbands;
 
-      const bool coherent = parset.isCoherent(sap, beam);
-      const unsigned nrStokes = coherent ? nrCoherentStokes : nrIncoherentStokes;
+        for (unsigned sb = 0; sb < nrSubbands; sb++)
+          if (sapMapping[sb] == sap)
+            sapSubbands.push_back(sb);
 
-      info.coherent       = coherent;
-      info.nrChannels     = coherent ? nrCoherentChannels : nrIncoherentChannels;
-      info.timeIntFactor  = coherent ? nrCoherentTimeIntFactor : nrIncoherentTimeIntFactor;
-      info.nrStokes       = nrStokes;
-      info.stokesType     = coherent ? coherentType : incoherentType;
-      info.nrSamples      = nrSamples / info.timeIntFactor;
+        for (unsigned beam = 0; beam < nrBeams; beam++) {
+          info.beam = beam;
 
-      const unsigned nrSubbandsPerFile = coherent ? nrCoherentSubbandsPerFile : nrIncoherentSubbandsPerFile;
+          const bool coherent = parset.isCoherent(sap, beam);
+          const unsigned nrStokes = coherent ? nrCoherentStokes : nrIncoherentStokes;
 
-      for (unsigned stokes = 0; stokes < nrStokes; stokes++) {
-        info.stokes = stokes;
-        info.part   = 0;
+          info.coherent = coherent;
+          info.nrChannels = coherent ? nrCoherentChannels : nrIncoherentChannels;
+          info.timeIntFactor = coherent ? nrCoherentTimeIntFactor : nrIncoherentTimeIntFactor;
+          info.nrStokes = nrStokes;
+          info.stokesType = coherent ? coherentType : incoherentType;
+          info.nrSamples = nrSamples / info.timeIntFactor;
 
-        // split into parts of at most nrSubbandsPerFile
-        for (unsigned sb = 0; sb < sapSubbands.size(); sb += nrSubbandsPerFile ) {
-          for (unsigned i = 0; sb + i < sapSubbands.size() && i < nrSubbandsPerFile; i++)
-            info.subbands.push_back(sapSubbands[sb + i]);
+          const unsigned nrSubbandsPerFile = coherent ? nrCoherentSubbandsPerFile : nrIncoherentSubbandsPerFile;
 
-          infoset.push_back(info);
+          for (unsigned stokes = 0; stokes < nrStokes; stokes++) {
+            info.stokes = stokes;
+            info.part = 0;
 
-          info.subbands.clear();
-          info.part++;
-          info.stream++;
-        }
-      }  
-    }
-  }
+            // split into parts of at most nrSubbandsPerFile
+            for (unsigned sb = 0; sb < sapSubbands.size(); sb += nrSubbandsPerFile ) {
+              for (unsigned i = 0; sb + i < sapSubbands.size() && i < nrSubbandsPerFile; i++)
+                info.subbands.push_back(sapSubbands[sb + i]);
 
-  return infoset;
-}
+              infoset.push_back(info);
 
-CN_Transpose2::CN_Transpose2( const Parset &parset, unsigned myPset, unsigned myCore )
-:
-  Transpose2( parset ),
-  myPset( myPset ),
-  myCore( myCore ),
+              info.subbands.clear();
+              info.part++;
+              info.stream++;
+            }
+          }
+        }
+      }
 
-  phaseTwoPsetIndex( parset.phaseTwoPsetIndex(myPset) ),
-  phaseTwoCoreIndex( parset.phaseTwoCoreIndex(myCore) ),
-  phaseThreePsetIndex( parset.phaseThreePsetIndex(myPset) ),
-  phaseThreeCoreIndex( parset.phaseThreeCoreIndex(myCore) )
-{
-}
+      return infoset;
+    }
 
-int CN_Transpose2::myStream( unsigned block ) const
-{ 
-  unsigned first = phaseThreePsetIndex * nrStreamsPerPset;
-  unsigned blockShift = (phaseThreeGroupSize() * block) % nrPhaseThreeCores;
-  unsigned relative = (nrPhaseThreeCores + phaseThreeCoreIndex - blockShift) % nrPhaseThreeCores;
+    CN_Transpose2::CN_Transpose2( const Parset &parset, unsigned myPset, unsigned myCore )
+      :
+      Transpose2( parset ),
+      myPset( myPset ),
+      myCore( myCore ),
+
+      phaseTwoPsetIndex( parset.phaseTwoPsetIndex(myPset) ),
+      phaseTwoCoreIndex( parset.phaseTwoCoreIndex(myCore) ),
+      phaseThreePsetIndex( parset.phaseThreePsetIndex(myPset) ),
+      phaseThreeCoreIndex( parset.phaseThreeCoreIndex(myCore) )
+    {
+    }
 
-  // such a stream does not exist
-  if (first + relative >= nrStreams())
-    return -1;
+    int CN_Transpose2::myStream( unsigned block ) const
+    {
+      unsigned first = phaseThreePsetIndex * nrStreamsPerPset;
+      unsigned blockShift = (phaseThreeGroupSize() * block) % nrPhaseThreeCores;
+      unsigned relative = (nrPhaseThreeCores + phaseThreeCoreIndex - blockShift) % nrPhaseThreeCores;
 
-  // we could handle this stream, but it's handled by a subsequent pset
-  if (relative >= nrStreamsPerPset)
-    return -1;
+      // such a stream does not exist
+      if (first + relative >= nrStreams())
+        return -1;
 
-  return first + relative;
-}
+      // we could handle this stream, but it's handled by a subsequent pset
+      if (relative >= nrStreamsPerPset)
+        return -1;
 
-unsigned CN_Transpose2::myPart( unsigned subband, bool coherent ) const
-{
-  for (unsigned i = 0; i < streamInfo.size(); i++) {
-    const struct StreamInfo &info = streamInfo[i];
+      return first + relative;
+    }
 
-    if ( info.coherent == coherent
-      && info.subbands[0] <= subband
-      && info.subbands[info.subbands.size()-1] >= subband )
-      return info.part;
-  }
+    unsigned CN_Transpose2::myPart( unsigned subband, bool coherent ) const
+    {
+      for (unsigned i = 0; i < streamInfo.size(); i++) {
+        const struct StreamInfo &info = streamInfo[i];
 
-  // we reach this point if there are no beams of this coherency
-  return 0;
-}
+        if ( info.coherent == coherent
+             && info.subbands[0] <= subband
+             && info.subbands[info.subbands.size() - 1] >= subband )
+          return info.part;
+      }
+
+      // we reach this point if there are no beams of this coherency
+      return 0;
+    }
 
 
-} // namespace RTCP
+  } // namespace RTCP
 } // namespace LOFAR
diff --git a/RTCP/Cobalt/CoInterface/src/Parset.h b/RTCP/Cobalt/CoInterface/src/Parset.h
index 0aad44ffd982655028abac15229b5fd73d526a25..b1a3d4b145706db1564a32e8e93507d176f72d02 100644
--- a/RTCP/Cobalt/CoInterface/src/Parset.h
+++ b/RTCP/Cobalt/CoInterface/src/Parset.h
@@ -33,7 +33,7 @@
 #include <Common/LofarBitModeInfo.h>
 #include <Common/StreamUtil.h>
 #include <Common/StringUtil.h>
-#include <Common/LofarLogger.h> 
+#include <Common/LofarLogger.h>
 #include <CoInterface/BeamCoordinates.h>
 #include <CoInterface/Config.h>
 #include <CoInterface/OutputTypes.h>
@@ -47,327 +47,337 @@
 #include <vector>
 #include <string>
 
-namespace LOFAR {
-namespace RTCP {
-
-class Transpose2;
-class CN_Transpose2;
-
-enum StokesType { STOKES_I = 0, STOKES_IQUV, STOKES_XXYY, INVALID_STOKES = -1 };
-    
-
-// The Parset class is a public struct that can be used as base-class
-// for holding Parset related information.
-// It can be instantiated with a parset containing Parset information.
-class Parset: public ParameterSet
+namespace LOFAR
 {
-  public:
-    Parset();
-    Parset(const std::string &name);
-    Parset(Stream *);
-
-     
-    std::string			name() const;
-    void			check() const;
-
-    void			write(Stream *) const;
-
-    unsigned			observationID() const;
-    double			startTime() const;
-    double			stopTime() const;
-
-    unsigned    nrCorrelatedBlocks() const;
-    unsigned    nrBeamFormedBlocks() const;
-
-    unsigned			nrStations() const;
-    unsigned			nrTabStations() const;
-    unsigned			nrMergedStations() const;
-    std::vector<std::string>	mergedStationNames() const;
-    unsigned			nrBaselines() const;
-    unsigned			nrCrossPolarisations() const;
-    unsigned			clockSpeed() const; // Hz
-    double			subbandBandwidth() const;
-    double			sampleDuration() const;
-    unsigned			nrBitsPerSample() const;
-    size_t			nrBytesPerComplexSample() const;
-    std::vector<double>		positions() const;
-    std::string			positionType() const;
-    std::vector<double>		getRefPhaseCentre() const;
-    std::vector<double>		getPhaseCentreOf(const std::string &name) const;
-    unsigned			dedispersionFFTsize() const;
-    unsigned			CNintegrationSteps() const;
-    unsigned			IONintegrationSteps() const;
-    unsigned			integrationSteps() const;
-    unsigned			coherentStokesTimeIntegrationFactor() const;
-    unsigned			coherentStokesNrSubbandsPerFile() const; 
-    unsigned			incoherentStokesTimeIntegrationFactor() const;
-    unsigned			coherentStokesChannelsPerSubband() const;
-    unsigned			incoherentStokesChannelsPerSubband() const;
-    unsigned			incoherentStokesNrSubbandsPerFile() const; 
-    double			CNintegrationTime() const;
-    double			IONintegrationTime() const;
-    unsigned			nrSamplesPerChannel() const;
-    unsigned			nrSamplesPerSubband() const;
-    unsigned			nrSubbandsPerPset() const; 
-    unsigned			nrPhase3StreamsPerPset() const; 
-    unsigned			nrHistorySamples() const;
-    unsigned			nrSamplesToCNProc() const;
-    unsigned			inputBufferSize() const; // in samples
-    unsigned			maxNetworkDelay() const;
-    unsigned			nrPPFTaps() const;
-    unsigned			nrChannelsPerSubband() const;
-    unsigned			nrCoresPerPset() const;
-    std::vector<unsigned>	usedCoresInPset() const;
-    std::vector<unsigned>	phaseOneTwoCores() const;
-    std::vector<unsigned>	phaseThreeCores() const;
-    double			channelWidth() const;
-    bool			delayCompensation() const;
-    unsigned			nrCalcDelays() const;
-    bool			correctClocks() const;
-    double			clockCorrectionTime(const std::string &station) const;
-    bool			correctBandPass() const;
-    bool			hasStorage() const;
-    std::string			stationName(int index) const;
-    int			        stationIndex(const std::string &name) const;
-    std::vector<std::string>	allStationNames() const;
-    unsigned			nrPsetsPerStorage() const;
-    unsigned			getLofarStManVersion() const;
-    std::vector<unsigned>	phaseOnePsets() const;
-    std::vector<unsigned>	phaseTwoPsets() const;
-    std::vector<unsigned>	phaseThreePsets() const;
-    std::vector<unsigned>	usedPsets() const; // union of phasePsets
-    unsigned	                totalNrPsets() const; // nr psets in the partition
-    bool			phaseThreeDisjunct() const; // if phase 3 does not overlap with phase 1 or 2 in psets or cores
-    std::vector<unsigned>	tabList() const;
-    bool			conflictingResources(const Parset &otherParset, std::stringstream &error) const;
-
-    int				phaseOnePsetIndex(unsigned pset) const;
-    int				phaseTwoPsetIndex(unsigned pset) const;
-    int				phaseThreePsetIndex(unsigned pset) const;
-    int				phaseOneCoreIndex(unsigned core) const;
-    int				phaseTwoCoreIndex(unsigned core) const;
-    int				phaseThreeCoreIndex(unsigned core) const;
-
-    std::string			getTransportType(const std::string &prefix) const;
-
-    bool			outputFilteredData() const;
-    bool			outputCorrelatedData() const;
-    bool			outputBeamFormedData() const;
-    bool			outputTrigger() const;
-    bool			outputThisType(OutputType) const;
-
-    bool                        onlineFlagging() const;
-    bool                        onlinePreCorrelationFlagging() const;
-    bool                        onlinePreCorrelationNoChannelsFlagging() const;
-    bool                        onlinePostCorrelationFlagging() const;
-    bool                        onlinePostCorrelationFlaggingDetectBrokenStations() const;
-    unsigned                    onlinePreCorrelationFlaggingIntegration() const;
-    std::string                 onlinePreCorrelationFlaggingType(std::string defaultVal) const;
-    std::string                 onlinePreCorrelationFlaggingStatisticsType(std::string defaultVal) const;
-    std::string                 onlinePostCorrelationFlaggingType(std::string defaultVal) const;
-    std::string                 onlinePostCorrelationFlaggingStatisticsType(std::string defaultVal) const;
-
-    unsigned			nrStreams(OutputType, bool force=false) const;
-    unsigned			maxNrStreamsPerPset(OutputType, bool force=false) const;
-    static std::string		keyPrefix(OutputType);
-    std::string			getHostName(OutputType, unsigned streamNr) const;
-    std::string			getFileName(OutputType, unsigned streamNr) const;
-    std::string			getDirectoryName(OutputType, unsigned streamNr) const;
-
-    bool			fakeInputData() const;
-    bool			checkFakeInputData() const;
-
-    std::string			coherentStokes() const;
-    std::string			incoherentStokes() const;
-    std::string			bandFilter() const;
-    std::string			antennaSet() const;
-
-    size_t          nrCoherentStokes() const { return coherentStokes().size(); }
-    size_t          nrIncoherentStokes() const { return incoherentStokes().size(); }
-
-    unsigned			nrBeams() const;
-    std::string                 beamTarget(unsigned beam) const;
-    double                      beamDuration(unsigned beam) const;
-
-    unsigned			nrTABs(unsigned beam) const;
-    std::vector<unsigned>	nrTABs() const;
-    unsigned			totalNrTABs() const;
-    unsigned			maxNrTABs() const;
-    bool                        isCoherent(unsigned beam, unsigned pencil) const;
-    BeamCoordinates		TABs(unsigned beam) const;
-    double			dispersionMeasure(unsigned beam=0,unsigned pencil=0) const;
-    std::vector<std::string>	TABStationList(unsigned beam=0,unsigned pencil=0, bool raw=false) const;
-
-    std::vector<unsigned>	subbandList() const;
-    unsigned			nrSubbands() const;
-    unsigned			nrSubbandsPerSAP(unsigned sap) const;
-    unsigned			nyquistZone() const;
-
-    std::vector<unsigned>	subbandToSAPmapping() const;
-    std::vector<double>		subbandToFrequencyMapping() const;
-    std::vector<unsigned>	subbandToRSPboardMapping(const std::string &stationName) const;
-    std::vector<unsigned>	subbandToRSPslotMapping(const std::string &stationName) const;
-
-    double channel0Frequency( size_t subband ) const;
-
-    unsigned			nrSlotsInFrame() const;
-    std::string			partitionName() const;
-    bool			realTime() const;
-    
-    std::vector<double>		getBeamDirection(unsigned beam) const;
-    std::string			getBeamDirectionType(unsigned beam) const;
-
-    bool                        haveAnaBeam() const;
-    std::vector<double>         getAnaBeamDirection() const;
-    std::string                 getAnaBeamDirectionType() const;
-          
-    struct StationRSPpair {
-      std::string station;
-      unsigned    rsp;
-    };
-    
-    std::vector<StationRSPpair>	getStationNamesAndRSPboardNumbers(unsigned psetNumber) const;
-
-    std::string			getInputStreamName(const string &stationName, unsigned rspBoardNumber) const;
-
-    std::vector<double>		itsStPositions;
-
-    std::string                 PVSS_TempObsName() const;
+  namespace RTCP
+  {
+
+    class Transpose2;
+    class CN_Transpose2;
+
+    enum StokesType { STOKES_I = 0, STOKES_IQUV, STOKES_XXYY, INVALID_STOKES = -1 };
+
+
+    // The Parset class is a public struct that can be used as base-class
+    // for holding Parset related information.
+    // It can be instantiated with a parset containing Parset information.
+    class Parset : public ParameterSet
+    {
+    public:
+      Parset();
+      Parset(const std::string &name);
+      Parset(Stream *);
+
+
+      std::string                 name() const;
+      void                        check() const;
+
+      void                        write(Stream *) const;
+
+      unsigned                    observationID() const;
+      double                      startTime() const;
+      double                      stopTime() const;
+
+      unsigned    nrCorrelatedBlocks() const;
+      unsigned    nrBeamFormedBlocks() const;
+
+      unsigned                    nrStations() const;
+      unsigned                    nrTabStations() const;
+      unsigned                    nrMergedStations() const;
+      std::vector<std::string>    mergedStationNames() const;
+      unsigned                    nrBaselines() const;
+      unsigned                    nrCrossPolarisations() const;
+      unsigned                    clockSpeed() const; // Hz
+      double                      subbandBandwidth() const;
+      double                      sampleDuration() const;
+      unsigned                    nrBitsPerSample() const;
+      size_t                      nrBytesPerComplexSample() const;
+      std::vector<double>         positions() const;
+      std::string                 positionType() const;
+      std::vector<double>         getRefPhaseCentre() const;
+      std::vector<double>         getPhaseCentreOf(const std::string &name) const;
+      unsigned                    dedispersionFFTsize() const;
+      unsigned                    CNintegrationSteps() const;
+      unsigned                    IONintegrationSteps() const;
+      unsigned                    integrationSteps() const;
+      unsigned                    coherentStokesTimeIntegrationFactor() const;
+      unsigned                    coherentStokesNrSubbandsPerFile() const;
+      unsigned                    incoherentStokesTimeIntegrationFactor() const;
+      unsigned                    coherentStokesChannelsPerSubband() const;
+      unsigned                    incoherentStokesChannelsPerSubband() const;
+      unsigned                    incoherentStokesNrSubbandsPerFile() const;
+      double                      CNintegrationTime() const;
+      double                      IONintegrationTime() const;
+      unsigned                    nrSamplesPerChannel() const;
+      unsigned                    nrSamplesPerSubband() const;
+      unsigned                    nrSubbandsPerPset() const;
+      unsigned                    nrPhase3StreamsPerPset() const;
+      unsigned                    nrHistorySamples() const;
+      unsigned                    nrSamplesToCNProc() const;
+      unsigned                    inputBufferSize() const; // in samples
+      unsigned                    maxNetworkDelay() const;
+      unsigned                    nrPPFTaps() const;
+      unsigned                    nrChannelsPerSubband() const;
+      unsigned                    nrCoresPerPset() const;
+      std::vector<unsigned>       usedCoresInPset() const;
+      std::vector<unsigned>       phaseOneTwoCores() const;
+      std::vector<unsigned>       phaseThreeCores() const;
+      double                      channelWidth() const;
+      bool                        delayCompensation() const;
+      unsigned                    nrCalcDelays() const;
+      bool                        correctClocks() const;
+      double                      clockCorrectionTime(const std::string &station) const;
+      bool                        correctBandPass() const;
+      bool                        hasStorage() const;
+      std::string                 stationName(int index) const;
+      int                         stationIndex(const std::string &name) const;
+      std::vector<std::string>    allStationNames() const;
+      unsigned                    nrPsetsPerStorage() const;
+      unsigned                    getLofarStManVersion() const;
+      std::vector<unsigned>       phaseOnePsets() const;
+      std::vector<unsigned>       phaseTwoPsets() const;
+      std::vector<unsigned>       phaseThreePsets() const;
+      std::vector<unsigned>       usedPsets() const; // union of phasePsets
+      unsigned                    totalNrPsets() const; // nr psets in the partition
+      bool                        phaseThreeDisjunct() const; // if phase 3 does not overlap with phase 1 or 2 in psets or cores
+      std::vector<unsigned>       tabList() const;
+      bool                        conflictingResources(const Parset &otherParset, std::stringstream &error) const;
+
+      int                         phaseOnePsetIndex(unsigned pset) const;
+      int                         phaseTwoPsetIndex(unsigned pset) const;
+      int                         phaseThreePsetIndex(unsigned pset) const;
+      int                         phaseOneCoreIndex(unsigned core) const;
+      int                         phaseTwoCoreIndex(unsigned core) const;
+      int                         phaseThreeCoreIndex(unsigned core) const;
+
+      std::string                 getTransportType(const std::string &prefix) const;
+
+      bool                        outputFilteredData() const;
+      bool                        outputCorrelatedData() const;
+      bool                        outputBeamFormedData() const;
+      bool                        outputTrigger() const;
+      bool outputThisType(OutputType) const;
+
+      bool                        onlineFlagging() const;
+      bool                        onlinePreCorrelationFlagging() const;
+      bool                        onlinePreCorrelationNoChannelsFlagging() const;
+      bool                        onlinePostCorrelationFlagging() const;
+      bool                        onlinePostCorrelationFlaggingDetectBrokenStations() const;
+      unsigned                    onlinePreCorrelationFlaggingIntegration() const;
+      std::string                 onlinePreCorrelationFlaggingType(std::string defaultVal) const;
+      std::string                 onlinePreCorrelationFlaggingStatisticsType(std::string defaultVal) const;
+      std::string                 onlinePostCorrelationFlaggingType(std::string defaultVal) const;
+      std::string                 onlinePostCorrelationFlaggingStatisticsType(std::string defaultVal) const;
+
+      unsigned nrStreams(OutputType, bool force = false) const;
+      unsigned maxNrStreamsPerPset(OutputType, bool force = false) const;
+      static std::string keyPrefix(OutputType);
+      std::string getHostName(OutputType, unsigned streamNr) const;
+      std::string getFileName(OutputType, unsigned streamNr) const;
+      std::string getDirectoryName(OutputType, unsigned streamNr) const;
+
+      bool                        fakeInputData() const;
+      bool                        checkFakeInputData() const;
+
+      std::string                 coherentStokes() const;
+      std::string                 incoherentStokes() const;
+      std::string                 bandFilter() const;
+      std::string                 antennaSet() const;
+
+      size_t          nrCoherentStokes() const
+      {
+        return coherentStokes().size();
+      }
+      size_t          nrIncoherentStokes() const
+      {
+        return incoherentStokes().size();
+      }
+
+      unsigned                    nrBeams() const;
+      std::string                 beamTarget(unsigned beam) const;
+      double                      beamDuration(unsigned beam) const;
+
+      unsigned                    nrTABs(unsigned beam) const;
+      std::vector<unsigned>       nrTABs() const;
+      unsigned                    totalNrTABs() const;
+      unsigned                    maxNrTABs() const;
+      bool                        isCoherent(unsigned beam, unsigned pencil) const;
+      BeamCoordinates             TABs(unsigned beam) const;
+      double                      dispersionMeasure(unsigned beam = 0,unsigned pencil = 0) const;
+      std::vector<std::string>    TABStationList(unsigned beam = 0,unsigned pencil = 0, bool raw = false) const;
+
+      std::vector<unsigned>       subbandList() const;
+      unsigned                    nrSubbands() const;
+      unsigned                    nrSubbandsPerSAP(unsigned sap) const;
+      unsigned                    nyquistZone() const;
+
+      std::vector<unsigned>       subbandToSAPmapping() const;
+      std::vector<double>         subbandToFrequencyMapping() const;
+      std::vector<unsigned>       subbandToRSPboardMapping(const std::string &stationName) const;
+      std::vector<unsigned>       subbandToRSPslotMapping(const std::string &stationName) const;
+
+      double channel0Frequency( size_t subband ) const;
+
+      unsigned                    nrSlotsInFrame() const;
+      std::string                 partitionName() const;
+      bool                        realTime() const;
+
+      std::vector<double>         getBeamDirection(unsigned beam) const;
+      std::string                 getBeamDirectionType(unsigned beam) const;
+
+      bool                        haveAnaBeam() const;
+      std::vector<double>         getAnaBeamDirection() const;
+      std::string                 getAnaBeamDirectionType() const;
+
+      struct StationRSPpair {
+        std::string station;
+        unsigned rsp;
+      };
+
+      std::vector<StationRSPpair> getStationNamesAndRSPboardNumbers(unsigned psetNumber) const;
+
+      std::string                 getInputStreamName(const string &stationName, unsigned rspBoardNumber) const;
+
+      std::vector<double>         itsStPositions;
+
+      std::string                 PVSS_TempObsName() const;
+
+      std::string                 AntennaSetsConf() const;
+      std::string                 AntennaFieldsDir() const;
+      std::string                 HBADeltasDir() const;
+
+      const Transpose2            &transposeLogic() const;
+      const CN_Transpose2         &CN_transposeLogic( unsigned pset, unsigned core ) const;
 
-    std::string                 AntennaSetsConf() const;
-    std::string                 AntennaFieldsDir() const;
-    std::string                 HBADeltasDir() const;
+    private:
+      const std::string itsName;
 
-    const Transpose2            &transposeLogic() const;
-    const CN_Transpose2         &CN_transposeLogic( unsigned pset, unsigned core ) const;
+      mutable std::string itsWriteCache;
+
+      mutable SmartPtr<const Transpose2>     itsTransposeLogic;
+      mutable SmartPtr<const CN_Transpose2>  itsCN_TransposeLogic;
 
-private:
-    const std::string		itsName;
+      void                        checkVectorLength(const std::string &key, unsigned expectedSize) const;
+      void                        checkInputConsistency() const;
 
-    mutable std::string		itsWriteCache;
+      std::vector<double>         getTAB(unsigned beam, unsigned pencil) const;
 
-    mutable SmartPtr<const Transpose2>     itsTransposeLogic;
-    mutable SmartPtr<const CN_Transpose2>  itsCN_TransposeLogic;
+      void                        addPosition(string stName);
+      double                      getTime(const char *name) const;
+      static int                  findIndex(unsigned pset, const vector<unsigned> &psets);
 
-    void			checkVectorLength(const std::string &key, unsigned expectedSize) const;
-    void			checkInputConsistency() const;
+      std::vector<double>         centroidPos(const string &stations) const;
 
-    std::vector<double>         getTAB(unsigned beam, unsigned pencil) const;
-
-    void			addPosition(string stName);
-    double			getTime(const char *name) const;
-    static int			findIndex(unsigned pset, const vector<unsigned> &psets);
-    
-    std::vector<double>		centroidPos(const string &stations) const;
-
-    bool			compatibleInputSection(const Parset &otherParset, std::stringstream &error) const;
-    bool			disjointCores(const Parset &, std::stringstream &error) const;
-};
+      bool                        compatibleInputSection(const Parset &otherParset, std::stringstream &error) const;
+      bool                        disjointCores(const Parset &, std::stringstream &error) const;
+    };
 
-//
-// All of the logic for the second transpose.
-//
+    //
+    // All of the logic for the second transpose.
+    //
 
-struct StreamInfo {
-  unsigned stream;
+    struct StreamInfo {
+      unsigned stream;
 
-  unsigned sap;
-  unsigned beam;
+      unsigned sap;
+      unsigned beam;
 
-  bool coherent;
-  unsigned nrChannels;     // channels per subband
-  unsigned timeIntFactor;  // time integration factor
-  unsigned nrStokes;       // total # stokes for this beam
-  StokesType stokesType;
-  unsigned nrSamples;      // # samples/channel, after temporal integration
+      bool coherent;
+      unsigned nrChannels; // channels per subband
+      unsigned timeIntFactor; // time integration factor
+      unsigned nrStokes;   // total # stokes for this beam
+      StokesType stokesType;
+      unsigned nrSamples;  // # samples/channel, after temporal integration
 
-  unsigned stokes;
-  unsigned part;
+      unsigned stokes;
+      unsigned part;
 
-  std::vector<unsigned> subbands;
+      std::vector<unsigned> subbands;
 
-  void log() const;
-};
+      void log() const;
+    };
 
-class Transpose2 {
-public:
-  Transpose2( const Parset &parset );
+    class Transpose2
+    {
+    public:
+      Transpose2( const Parset &parset );
 
-  unsigned nrStreams() const;
+      unsigned nrStreams() const;
 
-  // compose and decompose a stream number
-  unsigned stream( unsigned sap, unsigned beam, unsigned stokes, unsigned part, unsigned startAt = 0) const;
-  void decompose( unsigned stream, unsigned &sap, unsigned &beam, unsigned &stokes, unsigned &part ) const;
+      // compose and decompose a stream number
+      unsigned stream( unsigned sap, unsigned beam, unsigned stokes, unsigned part, unsigned startAt = 0) const;
+      void decompose( unsigned stream, unsigned &sap, unsigned &beam, unsigned &stokes, unsigned &part ) const;
 
-  std::vector<unsigned> subbands( unsigned stream ) const;
-  unsigned nrSubbands( unsigned stream ) const;
-  unsigned maxNrSubbands() const;
-  unsigned maxNrChannels() const;
-  unsigned maxNrSamples() const;
+      std::vector<unsigned> subbands( unsigned stream ) const;
+      unsigned nrSubbands( unsigned stream ) const;
+      unsigned maxNrSubbands() const;
+      unsigned maxNrChannels() const;
+      unsigned maxNrSamples() const;
 
-  size_t subbandSize( unsigned stream ) const;
+      size_t subbandSize( unsigned stream ) const;
 
-  // the pset/core which processes a certain block of a certain subband
-  // note: AsyncTransposeBeams applied the mapping of phaseThreePsets
-  unsigned sourceCore( unsigned subband, unsigned block ) const;
-  unsigned sourcePset( unsigned subband, unsigned block ) const;
+      // the pset/core which processes a certain block of a certain subband
+      // note: AsyncTransposeBeams applied the mapping of phaseThreePsets
+      unsigned sourceCore( unsigned subband, unsigned block ) const;
+      unsigned sourcePset( unsigned subband, unsigned block ) const;
 
-  // the pset/core which processes a certain block of a certain stream
-  // note: AsyncTransposeBeams applied the mapping of phaseTwoPsets
-  unsigned destCore( unsigned stream, unsigned block ) const;
-  unsigned destPset( unsigned stream, unsigned block ) const;
+      // the pset/core which processes a certain block of a certain stream
+      // note: AsyncTransposeBeams applied the mapping of phaseTwoPsets
+      unsigned destCore( unsigned stream, unsigned block ) const;
+      unsigned destPset( unsigned stream, unsigned block ) const;
 
-  // if phase2 == phase3, each block in phase3 is processed by more cores (more cores idle to align phases 2 and 3)
-  unsigned phaseThreeGroupSize() const;
+      // if phase2 == phase3, each block in phase3 is processed by more cores (more cores idle to align phases 2 and 3)
+      unsigned phaseThreeGroupSize() const;
 
-  const bool phaseThreeDisjunct;
+      const bool phaseThreeDisjunct;
 
-  const unsigned nrChannels;
-  const unsigned nrCoherentChannels;
-  const unsigned nrIncoherentChannels;
-  const unsigned nrSamples;
-  const unsigned coherentTimeIntFactor;
-  const unsigned incoherentTimeIntFactor;
+      const unsigned nrChannels;
+      const unsigned nrCoherentChannels;
+      const unsigned nrIncoherentChannels;
+      const unsigned nrSamples;
+      const unsigned coherentTimeIntFactor;
+      const unsigned incoherentTimeIntFactor;
 
-  const unsigned nrBeams;
-  const unsigned coherentNrSubbandsPerFile;
-  const unsigned incoherentNrSubbandsPerFile;
+      const unsigned nrBeams;
+      const unsigned coherentNrSubbandsPerFile;
+      const unsigned incoherentNrSubbandsPerFile;
 
-  const unsigned nrPhaseTwoPsets;
-  const unsigned nrPhaseTwoCores;
-  const unsigned nrPhaseThreePsets;
-  const unsigned nrPhaseThreeCores;
+      const unsigned nrPhaseTwoPsets;
+      const unsigned nrPhaseTwoCores;
+      const unsigned nrPhaseThreePsets;
+      const unsigned nrPhaseThreeCores;
 
-  const unsigned nrSubbandsPerPset;
+      const unsigned nrSubbandsPerPset;
 
-  const std::vector<struct StreamInfo> streamInfo;
+      const std::vector<struct StreamInfo> streamInfo;
 
-  const unsigned nrStreamsPerPset;
+      const unsigned nrStreamsPerPset;
 
-private:
-  std::vector<struct StreamInfo> generateStreamInfo( const Parset &parset ) const;
-};
+    private:
+      std::vector<struct StreamInfo> generateStreamInfo( const Parset &parset ) const;
+    };
 
-class CN_Transpose2: public Transpose2 {
-public:
-  CN_Transpose2( const Parset &parset, unsigned myPset, unsigned myCore );
+    class CN_Transpose2 : public Transpose2
+    {
+    public:
+      CN_Transpose2( const Parset &parset, unsigned myPset, unsigned myCore );
 
-  // the stream to process on (myPset, myCore)
-  int myStream( unsigned block ) const;
+      // the stream to process on (myPset, myCore)
+      int myStream( unsigned block ) const;
 
-  // the part number of a subband with an absolute index
-  unsigned myPart( unsigned subband, bool coherent ) const;
+      // the part number of a subband with an absolute index
+      unsigned myPart( unsigned subband, bool coherent ) const;
 
-  const unsigned myPset;
-  const unsigned myCore;
+      const unsigned myPset;
+      const unsigned myCore;
 
-  const int phaseTwoPsetIndex;
-  const int phaseTwoCoreIndex;
-  const int phaseThreePsetIndex;
-  const int phaseThreeCoreIndex;
-};
+      const int phaseTwoPsetIndex;
+      const int phaseTwoCoreIndex;
+      const int phaseThreePsetIndex;
+      const int phaseThreeCoreIndex;
+    };
 
-} // namespace RTCP
+  } // namespace RTCP
 } // namespace LOFAR
 
 #endif
diff --git a/RTCP/Cobalt/CoInterface/src/PrintVector.h b/RTCP/Cobalt/CoInterface/src/PrintVector.h
index 6fdc3f6cf1f497991eed2099f2859ad09dfc7484..34a6958355ce79443c7331b67caf1a8727fc96cc 100644
--- a/RTCP/Cobalt/CoInterface/src/PrintVector.h
+++ b/RTCP/Cobalt/CoInterface/src/PrintVector.h
@@ -26,31 +26,35 @@
 #include <iostream>
 #include <vector>
 
-namespace LOFAR {
-namespace RTCP {
-
-template<typename T> inline std::ostream &operator << (std::ostream &str, const std::vector<T> &v)
+namespace LOFAR
 {
-  str << '[';
+  namespace RTCP
+  {
 
-  for (typename std::vector<T>::const_iterator it = v.begin(); it != v.end(); it ++) {
-    if (it != v.begin())
-      str << ',';
+    template<typename T>
+    inline std::ostream &operator << (std::ostream &str, const std::vector<T> &v)
+    {
+      str << '[';
 
-    str << *it;
-  }
-  
-  return str << ']';
-}
+      for (typename std::vector<T>::const_iterator it = v.begin(); it != v.end(); it++) {
+        if (it != v.begin())
+          str << ',';
 
+        str << *it;
+      }
 
-template<typename T, typename U> inline std::ostream &operator << (std::ostream &str, const std::pair<T,U> &p)
-{
-  return str << '(' << p.first << ',' << p.second << ')';
-}
+      return str << ']';
+    }
+
+
+    template<typename T, typename U>
+    inline std::ostream &operator << (std::ostream &str, const std::pair<T,U> &p)
+    {
+      return str << '(' << p.first << ',' << p.second << ')';
+    }
 
 
-} // namespace RTCP
+  } // namespace RTCP
 } // namespace LOFAR
 
 #endif
diff --git a/RTCP/Cobalt/CoInterface/src/RSPTimeStamp.cc b/RTCP/Cobalt/CoInterface/src/RSPTimeStamp.cc
index 38a50813a120e88dad2d4abf786e727edeeb8f98..3d3d558cae73b7cc27613567f6b48aaaa2a2b725 100644
--- a/RTCP/Cobalt/CoInterface/src/RSPTimeStamp.cc
+++ b/RTCP/Cobalt/CoInterface/src/RSPTimeStamp.cc
@@ -23,13 +23,15 @@
 #include <CoInterface/RSPTimeStamp.h>
 #include <Common/lofar_iostream.h>
 
-namespace LOFAR {
-namespace RTCP {
-
-ostream &operator << (ostream &os, const TimeStamp &ts)
+namespace LOFAR
 {
-  return os << "[" << ts.getSeqId() << "s, " << ts.getBlockId() << "]";
-}
+  namespace RTCP
+  {
+
+    ostream &operator << (ostream &os, const TimeStamp &ts)
+    {
+      return os << "[" << ts.getSeqId() << "s, " << ts.getBlockId() << "]";
+    }
 
-} // namespace RTCP
+  } // namespace RTCP
 } // namespace LOFAR
diff --git a/RTCP/Cobalt/CoInterface/src/RSPTimeStamp.h b/RTCP/Cobalt/CoInterface/src/RSPTimeStamp.h
index d2cc0c22c5aab4348f95c383f8dcdb82a82731bd..aadf44d00343e2a07c3e586e7af897608a684d16 100644
--- a/RTCP/Cobalt/CoInterface/src/RSPTimeStamp.h
+++ b/RTCP/Cobalt/CoInterface/src/RSPTimeStamp.h
@@ -29,210 +29,224 @@
 
 #define EVEN_SECOND_HAS_MORE_SAMPLES
 
-namespace LOFAR {
-  namespace RTCP {
+namespace LOFAR
+{
+  namespace RTCP
+  {
 
-    class TimeStamp {
+    class TimeStamp
+    {
     public:
       TimeStamp(); // empty constructor to be able to create vectors of TimeStamps
       TimeStamp(int64 time); // for conversion from ints, used to convert values like 0x7FFFFFFF and 0x0 for special cases.
       TimeStamp(int64 time, unsigned clockSpeed);
       TimeStamp(unsigned seqId, unsigned blockId, unsigned clockSpeed);
 
-      TimeStamp	    &setStamp(unsigned seqId, unsigned blockId);
-      unsigned	    getSeqId() const;
-      unsigned	    getBlockId() const;
-      unsigned	    getClock() const { return itsClockSpeed; }
-
-      template <typename T> TimeStamp &operator += (T increment);
-      template <typename T> TimeStamp &operator -= (T decrement);
-			    TimeStamp  operator ++ (int); // postfix
-			    TimeStamp &operator ++ ();	  // prefix
-			    TimeStamp  operator -- (int);
-			    TimeStamp &operator -- ();
-
-      template <typename T> TimeStamp  operator +  (T) const;
-      template <typename T> TimeStamp  operator -  (T) const;
-			    int64      operator -  (const TimeStamp &) const;
-
-			    bool       operator >  (const TimeStamp &) const;
-			    bool       operator <  (const TimeStamp &) const;
-			    bool       operator >= (const TimeStamp &) const;
-			    bool       operator <= (const TimeStamp &) const;
-			    bool       operator == (const TimeStamp &) const;
-			    bool       operator != (const TimeStamp &) const;
-                            bool       operator !  () const;
-
-				       operator int64 () const;
-				       operator struct timespec () const;
+      TimeStamp     &setStamp(unsigned seqId, unsigned blockId);
+      unsigned      getSeqId() const;
+      unsigned      getBlockId() const;
+      unsigned      getClock() const
+      {
+        return itsClockSpeed;
+      }
+
+      template <typename T>
+      TimeStamp &operator += (T increment);
+      template <typename T>
+      TimeStamp &operator -= (T decrement);
+      TimeStamp operator ++ (int);                        // postfix
+      TimeStamp &operator ++ ();                          // prefix
+      TimeStamp operator -- (int);
+      TimeStamp &operator -- ();
+
+      template <typename T>
+      TimeStamp operator +  (T) const;
+      template <typename T>
+      TimeStamp operator -  (T) const;
+      int64 operator -  (const TimeStamp &) const;
+
+      bool operator >  (const TimeStamp &) const;
+      bool operator <  (const TimeStamp &) const;
+      bool operator >= (const TimeStamp &) const;
+      bool operator <= (const TimeStamp &) const;
+      bool operator == (const TimeStamp &) const;
+      bool operator != (const TimeStamp &) const;
+      bool operator !  () const;
+
+      operator int64 () const;
+      operator struct timespec () const;
 
       friend ostream &operator << (ostream &os, const TimeStamp &ss);
 
     protected:
-      int64	      itsTime;
-      unsigned        itsClockSpeed;
+      int64 itsTime;
+      unsigned itsClockSpeed;
     };
 
-    inline TimeStamp::TimeStamp():
+    inline TimeStamp::TimeStamp() :
       itsTime(0),
       itsClockSpeed(0)
-      {
-      }
+    {
+    }
 
-    inline TimeStamp::TimeStamp(int64 time):
+    inline TimeStamp::TimeStamp(int64 time) :
       itsTime(time),
       itsClockSpeed(0)
-      {
-      }
+    {
+    }
 
-    inline TimeStamp::TimeStamp(int64 time, unsigned clockSpeed):
+    inline TimeStamp::TimeStamp(int64 time, unsigned clockSpeed) :
       itsTime(time),
       itsClockSpeed(clockSpeed)
-      {
-      }
+    {
+    }
 
     inline TimeStamp::TimeStamp(unsigned seqId, unsigned blockId, unsigned clockSpeed)
-      {
-        itsClockSpeed = clockSpeed;
+    {
+      itsClockSpeed = clockSpeed;
 
 #ifdef EVEN_SECOND_HAS_MORE_SAMPLES
-	itsTime = ((int64) seqId * itsClockSpeed + 512) / 1024 + blockId;
+      itsTime = ((int64) seqId * itsClockSpeed + 512) / 1024 + blockId;
 #else
-	itsTime = ((int64) seqId * itsClockSpeed) / 1024 + blockId;
+      itsTime = ((int64) seqId * itsClockSpeed) / 1024 + blockId;
 #endif
-      }
+    }
 
     inline TimeStamp &TimeStamp::setStamp(unsigned seqId, unsigned blockId)
-      {
+    {
 #ifdef EVEN_SECOND_HAS_MORE_SAMPLES
-	itsTime = ((int64) seqId * itsClockSpeed + 512) / 1024 + blockId;
+      itsTime = ((int64) seqId * itsClockSpeed + 512) / 1024 + blockId;
 #else
-	itsTime = ((int64) seqId * itsClockSpeed) / 1024 + blockId;
+      itsTime = ((int64) seqId * itsClockSpeed) / 1024 + blockId;
 #endif
-	return *this;
-      }
+      return *this;
+    }
 
     inline unsigned TimeStamp::getSeqId() const
-      {
+    {
 #ifdef EVEN_SECOND_HAS_MORE_SAMPLES
-	return (unsigned) (1024 * itsTime / itsClockSpeed);
+      return (unsigned) (1024 * itsTime / itsClockSpeed);
 #else
-	return (unsigned) ((1024 * itsTime + 512) / itsClockSpeed);
+      return (unsigned) ((1024 * itsTime + 512) / itsClockSpeed);
 #endif
-      }
+    }
 
     inline unsigned TimeStamp::getBlockId() const
-      {
+    {
 #ifdef EVEN_SECOND_HAS_MORE_SAMPLES
-	return (unsigned) (1024 * itsTime % itsClockSpeed / 1024);
+      return (unsigned) (1024 * itsTime % itsClockSpeed / 1024);
 #else
-	return (unsigned) ((1024 * itsTime + 512) % itsClockSpeed / 1024);
+      return (unsigned) ((1024 * itsTime + 512) % itsClockSpeed / 1024);
 #endif
-      }
-
-    template <typename T> inline TimeStamp &TimeStamp::operator += (T increment)
-      { 
-	itsTime += increment;
-	return *this;
-      }
-
-    template <typename T> inline TimeStamp &TimeStamp::operator -= (T decrement)
-      { 
-	itsTime -= decrement;
-	return *this;
-      }
+    }
+
+    template <typename T>
+    inline TimeStamp &TimeStamp::operator += (T increment)
+    {
+      itsTime += increment;
+      return *this;
+    }
+
+    template <typename T>
+    inline TimeStamp &TimeStamp::operator -= (T decrement)
+    {
+      itsTime -= decrement;
+      return *this;
+    }
 
     inline TimeStamp &TimeStamp::operator ++ ()
-      { 
-	++ itsTime;
-	return *this;
-      }
+    {
+      ++itsTime;
+      return *this;
+    }
 
     inline TimeStamp TimeStamp::operator ++ (int)
-      { 
-        TimeStamp tmp = *this;
-	++ itsTime;
-	return tmp;
-      }
+    {
+      TimeStamp tmp = *this;
+      ++itsTime;
+      return tmp;
+    }
 
     inline TimeStamp &TimeStamp::operator -- ()
-      { 
-	-- itsTime;
-	return *this;
-      }
+    {
+      --itsTime;
+      return *this;
+    }
 
     inline TimeStamp TimeStamp::operator -- (int)
-      { 
-	TimeStamp tmp = *this;
-	-- itsTime;
-	return tmp;
-      }
-
-    template <typename T> inline TimeStamp TimeStamp::operator + (T increment) const
-      { 
-	return TimeStamp(itsTime + increment, itsClockSpeed);
-      }
-
-    template <typename T> inline TimeStamp TimeStamp::operator - (T decrement) const
-      { 
-	return TimeStamp(itsTime - decrement, itsClockSpeed);
-      }
+    {
+      TimeStamp tmp = *this;
+      --itsTime;
+      return tmp;
+    }
+
+    template <typename T>
+    inline TimeStamp TimeStamp::operator + (T increment) const
+    {
+      return TimeStamp(itsTime + increment, itsClockSpeed);
+    }
+
+    template <typename T>
+    inline TimeStamp TimeStamp::operator - (T decrement) const
+    {
+      return TimeStamp(itsTime - decrement, itsClockSpeed);
+    }
 
     inline int64 TimeStamp::operator - (const TimeStamp &other) const
-      { 
-	return itsTime - other.itsTime;
-      }
+    {
+      return itsTime - other.itsTime;
+    }
 
     inline bool TimeStamp::operator ! () const
-      {
-	return itsTime == 0;
-      }
+    {
+      return itsTime == 0;
+    }
 
     inline TimeStamp::operator int64 () const
-      {
-	return itsTime;
-      }
+    {
+      return itsTime;
+    }
 
     inline TimeStamp::operator struct timespec () const
-      {
-	int64		ns = (int64) (itsTime * 1024 * 1e9 / itsClockSpeed);
-	struct timespec ts;
+    {
+      int64 ns = (int64) (itsTime * 1024 * 1e9 / itsClockSpeed);
+      struct timespec ts;
 
-	ts.tv_sec  = ns / 1000000000ULL;
-	ts.tv_nsec = ns % 1000000000ULL;
+      ts.tv_sec = ns / 1000000000ULL;
+      ts.tv_nsec = ns % 1000000000ULL;
 
-	return ts;
-      }
+      return ts;
+    }
 
     inline bool TimeStamp::operator > (const TimeStamp &other) const
-      { 
-	return itsTime > other.itsTime;
-      }
+    {
+      return itsTime > other.itsTime;
+    }
 
     inline bool TimeStamp::operator >= (const TimeStamp &other) const
-      {
-	return itsTime >= other.itsTime;
-      }
+    {
+      return itsTime >= other.itsTime;
+    }
 
     inline bool TimeStamp::operator < (const TimeStamp &other) const
-      { 
-	return itsTime < other.itsTime;
-      }
+    {
+      return itsTime < other.itsTime;
+    }
 
     inline bool TimeStamp::operator <= (const TimeStamp &other) const
-      {
-	return itsTime <= other.itsTime;
-      }
+    {
+      return itsTime <= other.itsTime;
+    }
 
     inline bool TimeStamp::operator == (const TimeStamp &other) const
-      { 
-	return itsTime == other.itsTime;
-      }
+    {
+      return itsTime == other.itsTime;
+    }
 
     inline bool TimeStamp::operator != (const TimeStamp &other) const
-      { 
-	return itsTime != other.itsTime;
-      }
+    {
+      return itsTime != other.itsTime;
+    }
 
   } // namespace RTCP
 
diff --git a/RTCP/Cobalt/CoInterface/src/SetOperations.h b/RTCP/Cobalt/CoInterface/src/SetOperations.h
index c298950829e89efc0bce501d5f19102bdeef0285..5f58fbd5ea00cee8954b06ccad8997635811d3db 100644
--- a/RTCP/Cobalt/CoInterface/src/SetOperations.h
+++ b/RTCP/Cobalt/CoInterface/src/SetOperations.h
@@ -25,30 +25,34 @@
 
 #include <algorithm>
 
-namespace LOFAR {
-namespace RTCP {
-
-template <typename T> T operator & (T a, T b)
-{
-  sort(a.begin(), a.end());
-  sort(b.begin(), b.end());
-
-  T c(a.size() + b.size());
-  c.resize(set_intersection(a.begin(), a.end(), b.begin(), b.end(), c.begin()) - c.begin());
-  return c;
-}
-
-template <typename T> T operator | (T a, T b)
+namespace LOFAR
 {
-  sort(a.begin(), a.end());
-  sort(b.begin(), b.end());
-
-  T c(a.size() + b.size());
-  c.resize(set_union(a.begin(), a.end(), b.begin(), b.end(), c.begin()) - c.begin());
-  return c;
-}
-
-} // namespace RTCP
+  namespace RTCP
+  {
+
+    template <typename T>
+    T operator & (T a, T b)
+    {
+      sort(a.begin(), a.end());
+      sort(b.begin(), b.end());
+
+      T c(a.size() + b.size());
+      c.resize(set_intersection(a.begin(), a.end(), b.begin(), b.end(), c.begin()) - c.begin());
+      return c;
+    }
+
+    template <typename T>
+    T operator | (T a, T b)
+    {
+      sort(a.begin(), a.end());
+      sort(b.begin(), b.end());
+
+      T c(a.size() + b.size());
+      c.resize(set_union(a.begin(), a.end(), b.begin(), b.end(), c.begin()) - c.begin());
+      return c;
+    }
+
+  } // namespace RTCP
 } // namespace LOFAR
 
 #endif
diff --git a/RTCP/Cobalt/CoInterface/src/SmartPtr.h b/RTCP/Cobalt/CoInterface/src/SmartPtr.h
index 1f6fc5190b7ddc222457889bc081087b38745cb9..515a6ca17252f6da5972507600dc1756ef8c4979 100644
--- a/RTCP/Cobalt/CoInterface/src/SmartPtr.h
+++ b/RTCP/Cobalt/CoInterface/src/SmartPtr.h
@@ -27,134 +27,169 @@
 
 #include <stdlib.h>
 
-namespace LOFAR {
-namespace RTCP {
-
-template <typename T> class SmartPtrDelete;
-
-// T is the type of pointer (such as SmartPtr<int> to emulate int*)
-// D is the deletion strategy (to choose between delete/delete[]/free)
-template <typename T, class D = SmartPtrDelete<T> > class SmartPtr
+namespace LOFAR
 {
-  public:
-    SmartPtr(T * = NULL);
-    SmartPtr(const SmartPtr<T,D> &orig); // WARNING: move semantics; orig no longer contains pointer
-
-    ~SmartPtr();
-
-    operator T * () const;
-    T & operator * () const;
-    T * operator -> () const;
-
-    bool operator ! () const;
-
-    SmartPtr<T,D> & operator = (T *);
-    SmartPtr<T,D> & operator = (const SmartPtr<T,D> &);
-
-    T *get();
-    T *release();
-
-  private:
-    T *ptr;
-};
-
-// Deletion strategies
-template <typename T> class SmartPtrDelete {
-public:
-  static void free( T *ptr ) { delete ptr; }
-};
-
-template <typename T> class SmartPtrDeleteArray {
-public:
-  static void free( T *ptr ) { delete[] ptr; }
-};
-
-template <typename T> class SmartPtrFree {
-public:
-  static void free( T *ptr ) { ::free(ptr); }
-};
-
-template <typename T, void (*F)(T*) > class SmartPtrFreeFunc {
-public:
-  static void free( T *ptr ) { F(ptr); }
-};
-
-template <typename T, class D> inline SmartPtr<T,D>::SmartPtr(T *orig)
-:
-  ptr(orig)
-{
-}
-
-template <typename T, class D> inline SmartPtr<T,D>::SmartPtr(const SmartPtr<T,D> &orig)
-:
-  ptr(orig.ptr)
-{
-  const_cast<T *&>(orig.ptr) = 0;
-}
-
-
-template <typename T, class D> inline SmartPtr<T,D>::~SmartPtr()
-{
-  D::free(ptr);
-}
-
-
-template <typename T, class D> inline SmartPtr<T,D>::operator T * () const
-{
-  return ptr;
-}
-
-
-template <typename T, class D> inline T &SmartPtr<T,D>::operator * () const
-{
-  return *ptr;
-}
-
-
-template <typename T, class D> inline T *SmartPtr<T,D>::operator -> () const
-{
-  return ptr;
-}
-
-
-template <typename T, class D> inline bool SmartPtr<T,D>::operator ! () const
-{
-  return ptr == 0;
-}
-
-
-template <typename T, class D> inline SmartPtr<T,D> &SmartPtr<T,D>::operator = (T *orig)
-{
-  D::free(ptr);
-  ptr = orig;
-  return *this;
-}
-
-
-template <typename T, class D> inline SmartPtr<T,D> &SmartPtr<T,D>::operator = (const SmartPtr<T,D> &orig)
-{
-  D::free(ptr);
-  ptr = orig;
-  const_cast<T *&>(orig.ptr) = 0;
-  return *this;
-}
-
-
-template <typename T, class D> inline T *SmartPtr<T,D>::get()
-{
-  return ptr;
-}
-
-
-template <typename T, class D> inline T *SmartPtr<T,D>::release()
-{
-  T *tmp = ptr;
-  ptr = 0;
-  return tmp;
-}
-
-
-} // namespace RTCP
+  namespace RTCP
+  {
+
+    template <typename T>
+    class SmartPtrDelete;
+
+    // T is the type of pointer (such as SmartPtr<int> to emulate int*)
+    // D is the deletion strategy (to choose between delete/delete[]/free)
+    template <typename T, class D = SmartPtrDelete<T> >
+    class SmartPtr
+    {
+    public:
+      SmartPtr(T * = NULL);
+      SmartPtr(const SmartPtr<T,D> &orig); // WARNING: move semantics; orig no longer contains pointer
+
+      ~SmartPtr();
+
+      operator T * () const;
+      T & operator * () const;
+      T * operator -> () const;
+
+      bool operator ! () const;
+
+      SmartPtr<T,D> & operator = (T *);
+      SmartPtr<T,D> & operator = (const SmartPtr<T,D> &);
+
+      T *get();
+      T *release();
+
+    private:
+      T *ptr;
+    };
+
+    // Deletion strategies
+    template <typename T>
+    class SmartPtrDelete
+    {
+    public:
+      static void free( T *ptr )
+      {
+        delete ptr;
+      }
+    };
+
+    template <typename T>
+    class SmartPtrDeleteArray
+    {
+    public:
+      static void free( T *ptr )
+      {
+        delete[] ptr;
+      }
+    };
+
+    template <typename T>
+    class SmartPtrFree
+    {
+    public:
+      static void free( T *ptr )
+      {
+        ::free(ptr);
+      }
+    };
+
+    template <typename T, void (*F) (T*) >
+    class SmartPtrFreeFunc
+    {
+    public:
+      static void free( T *ptr )
+      {
+        F(ptr);
+      }
+    };
+
+    template <typename T, class D>
+    inline SmartPtr<T,D>::SmartPtr(T *orig)
+      :
+      ptr(orig)
+    {
+    }
+
+    template <typename T, class D>
+    inline SmartPtr<T,D>::SmartPtr(const SmartPtr<T,D> &orig)
+      :
+      ptr(orig.ptr)
+    {
+      const_cast<T *&>(orig.ptr) = 0;
+    }
+
+
+    template <typename T, class D>
+    inline SmartPtr<T,D>::~SmartPtr()
+    {
+      D::free(ptr);
+    }
+
+
+    template <typename T, class D>
+    inline SmartPtr<T,D>::operator T * () const
+    {
+      return ptr;
+    }
+
+
+    template <typename T, class D>
+    inline T &SmartPtr<T,D>::operator * () const
+    {
+      return *ptr;
+    }
+
+
+    template <typename T, class D>
+    inline T *SmartPtr<T,D>::operator -> () const
+    {
+      return ptr;
+    }
+
+
+    template <typename T, class D>
+    inline bool SmartPtr<T,D>::operator ! () const
+    {
+      return ptr == 0;
+    }
+
+
+    template <typename T, class D>
+    inline SmartPtr<T,D> &SmartPtr<T,D>::operator = (T *orig)
+    {
+      D::free(ptr);
+      ptr = orig;
+      return *this;
+    }
+
+
+    template <typename T, class D>
+    inline SmartPtr<T,D> &SmartPtr<T,D>::operator = (const SmartPtr<T,D> &orig)
+    {
+      D::free(ptr);
+      ptr = orig;
+      const_cast<T *&>(orig.ptr) = 0;
+      return *this;
+    }
+
+
+    template <typename T, class D>
+    inline T *SmartPtr<T,D>::get()
+    {
+      return ptr;
+    }
+
+
+    template <typename T, class D>
+    inline T *SmartPtr<T,D>::release()
+    {
+      T *tmp = ptr;
+      ptr = 0;
+      return tmp;
+    }
+
+
+  } // namespace RTCP
 } // namespace LOFAR
 
 #endif
diff --git a/RTCP/Cobalt/CoInterface/src/SparseSet.h b/RTCP/Cobalt/CoInterface/src/SparseSet.h
index 1ff26e9c9fdcc1f01e2adde36adf42d96d2aa4c6..5c2a300f38c516c971c592070c1140e34805ff1e 100644
--- a/RTCP/Cobalt/CoInterface/src/SparseSet.h
+++ b/RTCP/Cobalt/CoInterface/src/SparseSet.h
@@ -35,22 +35,29 @@
 #include <vector>
 
 
-namespace LOFAR {
+namespace LOFAR
+{
 
-/*
- * A SparseSet<T> represents a sorted vector of [from, to) pairs of type
- * T representing a boolean presence.
- */
-template <typename T> class SparseSet {
+  /*
+   * A SparseSet<T> represents a sorted vector of [from, to) pairs of type
+   * T representing a boolean presence.
+   */
+  template <typename T>
+  class SparseSet
+  {
   public:
     struct range {
-      range() {}
-      range(T begin, T end) : begin(begin), end(end) {}
+      range()
+      {
+      }
+      range(T begin, T end) : begin(begin), end(end)
+      {
+      }
       T begin, end;
     };
 
-    typedef typename std::vector<range>	    Ranges;
-    typedef typename Ranges::iterator	    iterator;
+    typedef typename std::vector<range>     Ranges;
+    typedef typename Ranges::iterator iterator;
     typedef typename Ranges::const_iterator const_iterator;
 
     // Add `index' to the set.
@@ -69,10 +76,10 @@ template <typename T> class SparseSet {
     SparseSet<T> &reset();
 
     // Returns the number of elements in the set.
-    T		 count() const;
+    T            count() const;
 
     // Returns true if `index' is in the set.
-    bool	 test(T index) const;
+    bool         test(T index) const;
 
     // Return the union of two sets.
     SparseSet<T> operator | (const SparseSet<T> &) const;
@@ -113,267 +120,286 @@ template <typename T> class SparseSet {
     struct less {
       bool operator() (const range &x, const range &y)
       {
-	return x.end < y.begin;
+        return x.end < y.begin;
       }
     };
 
     struct less_equal {
       bool operator() (const range &x, const range &y)
       {
-	return x.end <= y.begin;
+        return x.end <= y.begin;
       }
     };
-};
-
-template <typename T> std::ostream &operator << (std::ostream &str, const SparseSet<T> &set);
+  };
 
-
-template <typename T> inline SparseSet<T> &SparseSet<T>::include(T index)
-{
-  return include(index, index + 1);
-}
+  template <typename T>
+  std::ostream &operator << (std::ostream &str, const SparseSet<T> &set);
 
 
-template <typename T> inline SparseSet<T> &SparseSet<T>::exclude(T index)
-{
-  return exclude(index, index + 1);
-}
-
+  template <typename T>
+  inline SparseSet<T> &SparseSet<T>::include(T index)
+  {
+    return include(index, index + 1);
+  }
 
-template <typename T> inline SparseSet<T> &SparseSet<T>::reset()
-{
-  ranges.resize(0);
-  return *this;
-}
 
+  template <typename T>
+  inline SparseSet<T> &SparseSet<T>::exclude(T index)
+  {
+    return exclude(index, index + 1);
+  }
 
-template <typename T> inline SparseSet<T> &SparseSet<T>::operator |= (const SparseSet<T> &other)
-{
-  ranges = (*this | other).ranges;
-  return *this;
-}
 
+  template <typename T>
+  inline SparseSet<T> &SparseSet<T>::reset()
+  {
+    ranges.resize(0);
+    return *this;
+  }
 
-template <typename T> inline SparseSet<T> SparseSet<T>::invert(T first, T last) const
-{
-  SparseSet<T> inverted;
 
-  for (const_iterator it = ranges.begin(); it != ranges.end(); it ++) {
-    inverted.include(first, it->begin);
-    first = it->end;
+  template <typename T>
+  inline SparseSet<T> &SparseSet<T>::operator |= (const SparseSet<T> &other)
+  {
+    ranges = (*this | other).ranges;
+    return *this;
   }
 
-  inverted.include(first, last);
 
-  return inverted;
-}
+  template <typename T>
+  inline SparseSet<T> SparseSet<T>::invert(T first, T last) const
+  {
+    SparseSet<T> inverted;
 
+    for (const_iterator it = ranges.begin(); it != ranges.end(); it++) {
+      inverted.include(first, it->begin);
+      first = it->end;
+    }
 
-template <typename T> inline SparseSet<T> SparseSet<T>::subset(T first, T last) const
-{
-  return SparseSet<T>(*this).exclude(last, ~0U).exclude(0, first);
-}
+    inverted.include(first, last);
 
+    return inverted;
+  }
 
-//template <typename T> inline const std::vector<typename SparseSet<T>::range> &SparseSet<T>::getRanges() const
-template <typename T> inline const typename SparseSet<T>::Ranges &SparseSet<T>::getRanges() const
-{
-  return ranges;
-}
 
+  template <typename T>
+  inline SparseSet<T> SparseSet<T>::subset(T first, T last) const
+  {
+    return SparseSet<T>(*this).exclude(last, ~0U).exclude(0, first);
+  }
 
-template <typename T> SparseSet<T> &SparseSet<T>::include(T first, T last)
-{
-  if (first < last) {
-    // find two iterators that mark the first resp. last involved ranges
-    range r(first, last);
-    std::pair<iterator, iterator> iters = equal_range(ranges.begin(), ranges.end(), r, less());
-
-    if (iters.first == iters.second) {
-      // insert new tuple
-      ranges.insert(iters.first, r);
-    } else {
-      // combine with existing tuple(s)
-      iters.first->begin = std::min(first, iters.first->begin);
-      iters.first->end   = std::max(last , iters.second[-1].end);
-
-      ranges.erase(iters.first + 1, iters.second);
-    } 
+
+  //template <typename T> inline const std::vector<typename SparseSet<T>::range> &SparseSet<T>::getRanges() const
+  template <typename T>
+  inline const typename SparseSet<T>::Ranges & SparseSet<T>::getRanges() const
+  {
+    return ranges;
   }
 
-  return *this;
-}
 
+  template <typename T>
+  SparseSet<T> &SparseSet<T>::include(T first, T last)
+  {
+    if (first < last) {
+      // find two iterators that mark the first resp. last involved ranges
+      range r(first, last);
+      std::pair<iterator, iterator> iters = equal_range(ranges.begin(), ranges.end(), r, less());
 
-template <typename T> SparseSet<T> &SparseSet<T>::exclude(T first, T last)
-{
-  if (first < last) {
-    // find two iterators that mark the first resp. last involved ranges
-    // unlike in include(), a range that is adjacent to first or last is not
-    // considered to be involved, hence the use of less_equal()
-    std::pair<iterator, iterator> iters = equal_range(ranges.begin(), ranges.end(), range(first, last), less_equal());
-
-    if (iters.first != iters.second) { // check if there are tuples involved
-      if (iters.second - iters.first == 1 && first > iters.first->begin && last < iters.first->end) {
-	// split tuple
-	range r(last, iters.first->end);
-	iters.first->end = first;
-	ranges.insert(iters.second, r);
+      if (iters.first == iters.second) {
+        // insert new tuple
+        ranges.insert(iters.first, r);
       } else {
-	// possibly erase tuples
-	if (first > iters.first->begin)
-	  (iters.first ++)->end = first; // adjust first tuple; do not erase
-
-	if (last < iters.second[-1].end)
-	  (-- iters.second)->begin = last; // adjust last tuple; do not erase
+        // combine with existing tuple(s)
+        iters.first->begin = std::min(first, iters.first->begin);
+        iters.first->end = std::max(last, iters.second[-1].end);
 
-	ranges.erase(iters.first, iters.second);
+        ranges.erase(iters.first + 1, iters.second);
       }
     }
-  }
 
-  return *this;
-}
+    return *this;
+  }
 
 
-template <typename T> T SparseSet<T>::count() const
-{
-  T count = 0;
+  template <typename T>
+  SparseSet<T> &SparseSet<T>::exclude(T first, T last)
+  {
+    if (first < last) {
+      // find two iterators that mark the first resp. last involved ranges
+      // unlike in include(), a range that is adjacent to first or last is not
+      // considered to be involved, hence the use of less_equal()
+      std::pair<iterator, iterator> iters = equal_range(ranges.begin(), ranges.end(), range(first, last), less_equal());
+
+      if (iters.first != iters.second) { // check if there are tuples involved
+        if (iters.second - iters.first == 1 && first > iters.first->begin && last < iters.first->end) {
+          // split tuple
+          range r(last, iters.first->end);
+          iters.first->end = first;
+          ranges.insert(iters.second, r);
+        } else {
+          // possibly erase tuples
+          if (first > iters.first->begin)
+            (iters.first++)->end = first;  // adjust first tuple; do not erase
+
+          if (last < iters.second[-1].end)
+            (--iters.second)->begin = last;  // adjust last tuple; do not erase
+
+          ranges.erase(iters.first, iters.second);
+        }
+      }
+    }
 
-  for (const_iterator it = ranges.begin(); it != ranges.end(); it ++)
-    count += it->end - it->begin;
+    return *this;
+  }
 
-  return count;
-}
 
+  template <typename T>
+  T SparseSet<T>::count() const
+  {
+    T count = 0;
 
-template <typename T> bool SparseSet<T>::test(T index) const
-{
-  const_iterator it = lower_bound(ranges.begin(), ranges.end(), range(index, index + 1), less_equal());
-  return it != ranges.end() && index >= it->begin;
-}
+    for (const_iterator it = ranges.begin(); it != ranges.end(); it++)
+      count += it->end - it->begin;
 
+    return count;
+  }
 
-template <typename T> SparseSet<T> SparseSet<T>::operator | (const SparseSet<T> &other) const
-{
-  // iterate with two iterators over both sets, comparing the ranges to decide
-  // what to do: include a range from the first set, include a range from the
-  // second set, or merge (multiple) ranges from both sets.
-
-  SparseSet<T> union_set;
-  const_iterator it1 = ranges.begin(), it2 = other.ranges.begin();
-
-  while (it1 != ranges.end() && it2 != other.ranges.end()) {
-    if (it1->end < it2->begin) {
-      union_set.ranges.push_back(*it1 ++); // no overlap; *it1 is the smallest
-    } else if (it2->end < it1->begin) {
-      union_set.ranges.push_back(*it2 ++); // no overlap; *it2 is the smallest
-    } else { // there is overlap, or it1 and it2 are contiguous
-      T new_begin = std::min(it1->begin, it2->begin);
-
-      // check if subsequent ranges from set1 and set2 must be joined as well
-      while (1) {
-	if (it1 + 1 != ranges.end() && it1[1].begin <= it2->end) {
-	  ++ it1;
-	} else if (it2 + 1 != other.ranges.end() && it2[1].begin <= it1->end) {
-	  ++ it2;
-	} else {
-	  break;
-	}
-      }
 
-      union_set.ranges.push_back(range(new_begin, std::max(it1->end, it2->end)));
-      ++ it1, ++ it2;
-    }
+  template <typename T>
+  bool SparseSet<T>::test(T index) const
+  {
+    const_iterator it = lower_bound(ranges.begin(), ranges.end(), range(index, index + 1), less_equal());
+    return it != ranges.end() && index >= it->begin;
   }
 
-  // possibly append the remainder of the set that we have not finished yet
-  union_set.ranges.insert(union_set.ranges.end(), it1, ranges.end());
-  union_set.ranges.insert(union_set.ranges.end(), it2, other.ranges.end());
-  return union_set;
-}
 
+  template <typename T>
+  SparseSet<T> SparseSet<T>::operator | (const SparseSet<T> &other) const
+  {
+    // iterate with two iterators over both sets, comparing the ranges to decide
+    // what to do: include a range from the first set, include a range from the
+    // second set, or merge (multiple) ranges from both sets.
+
+    SparseSet<T> union_set;
+    const_iterator it1 = ranges.begin(), it2 = other.ranges.begin();
+
+    while (it1 != ranges.end() && it2 != other.ranges.end()) {
+      if (it1->end < it2->begin) {
+        union_set.ranges.push_back(*it1++); // no overlap; *it1 is the smallest
+      } else if (it2->end < it1->begin) {
+        union_set.ranges.push_back(*it2++); // no overlap; *it2 is the smallest
+      } else { // there is overlap, or it1 and it2 are contiguous
+        T new_begin = std::min(it1->begin, it2->begin);
+
+        // check if subsequent ranges from set1 and set2 must be joined as well
+        while (1) {
+          if (it1 + 1 != ranges.end() && it1[1].begin <= it2->end) {
+            ++it1;
+          } else if (it2 + 1 != other.ranges.end() && it2[1].begin <= it1->end) {
+            ++it2;
+          } else {
+            break;
+          }
+        }
+
+        union_set.ranges.push_back(range(new_begin, std::max(it1->end, it2->end)));
+        ++it1, ++it2;
+      }
+    }
 
-template <typename T> SparseSet<T> &SparseSet<T>::operator += (size_t count)
-{
-  for (iterator it = ranges.begin(); it != ranges.end(); it ++)
-    it->begin += count, it->end += count;
+    // possibly append the remainder of the set that we have not finished yet
+    union_set.ranges.insert(union_set.ranges.end(), it1, ranges.end());
+    union_set.ranges.insert(union_set.ranges.end(), it2, other.ranges.end());
+    return union_set;
+  }
 
-  return *this;
-}
 
+  template <typename T>
+  SparseSet<T> &SparseSet<T>::operator += (size_t count)
+  {
+    for (iterator it = ranges.begin(); it != ranges.end(); it++)
+      it->begin += count, it->end += count;
 
-template <typename T> SparseSet<T> &SparseSet<T>::operator -= (size_t count)
-{
-  assert(ranges.size() == 0 || ranges[0].begin >= count);
+    return *this;
+  }
 
-  for (iterator it = ranges.begin(); it != ranges.end(); it ++)
-    it->begin -= count, it->end -= count;
 
-  return *this;
-}
+  template <typename T>
+  SparseSet<T> &SparseSet<T>::operator -= (size_t count)
+  {
+    assert(ranges.size() == 0 || ranges[0].begin >= count);
 
-template <typename T> SparseSet<T> &SparseSet<T>::operator /= (size_t shrinkFactor)
-{
-  iterator prev = ranges.end();
+    for (iterator it = ranges.begin(); it != ranges.end(); it++)
+      it->begin -= count, it->end -= count;
 
-  if (shrinkFactor == 1) {
-    /* nothing changes */
     return *this;
   }
 
-  for (iterator it = ranges.begin(); it != ranges.end(); it ++) {
-    it->begin = static_cast<T>(floor(static_cast<double>(it->begin) / shrinkFactor));
-    it->end = static_cast<T>(ceil(static_cast<double>(it->end) / shrinkFactor));
+  template <typename T>
+  SparseSet<T> &SparseSet<T>::operator /= (size_t shrinkFactor)
+  {
+    iterator prev = ranges.end();
+
+    if (shrinkFactor == 1) {
+      /* nothing changes */
+      return *this;
+    }
+
+    for (iterator it = ranges.begin(); it != ranges.end(); it++) {
+      it->begin = static_cast<T>(floor(static_cast<double>(it->begin) / shrinkFactor));
+      it->end = static_cast<T>(ceil(static_cast<double>(it->end) / shrinkFactor));
 
-    /* The gap between two ranges might have disappeared. The ranges can
-       even overlap due to the differences in rounding. */
-    if (prev != ranges.end() && prev->end >= it->begin) {
-      /* combine tuples */
-      it->begin = prev->begin;
+      /* The gap between two ranges might have disappeared. The ranges can
+         even overlap due to the differences in rounding. */
+      if (prev != ranges.end() && prev->end >= it->begin) {
+        /* combine tuples */
+        it->begin = prev->begin;
+
+        /* it would be invalidated by the erase, so reobtain it */
+        it = ranges.erase(prev);
+      }
 
-      /* it would be invalidated by the erase, so reobtain it */
-      it = ranges.erase(prev);
+      prev = it;
     }
 
-    prev = it;
+    return *this;
   }
 
-  return *this;
-}
 
+  template <typename T>
+  ssize_t SparseSet<T>::marshall(void *ptr, size_t maxSize) const
+  {
+    size_t size = sizeof(uint32_t) + ranges.size() * sizeof(range);
 
-template <typename T> ssize_t SparseSet<T>::marshall(void *ptr, size_t maxSize) const
-{
-  size_t size = sizeof(uint32_t) + ranges.size() * sizeof(range);
+    if (size > maxSize)
+      return -1;
 
-  if (size > maxSize)
-    return -1;
+    *(uint32_t *) ptr = ranges.size();
+    memcpy((uint32_t *) ptr + 1, &ranges[0], ranges.size() * sizeof(range));
 
-  * (uint32_t *) ptr = ranges.size();
-  memcpy((uint32_t *) ptr + 1, &ranges[0], ranges.size() * sizeof(range));
+    return size;
+  }
 
-  return size;
-}
 
+  template <typename T>
+  void SparseSet<T>::unmarshall(const void *ptr)
+  {
+    ranges.resize(*(uint32_t *) ptr);
+    memcpy(&ranges[0], (uint32_t *) ptr + 1, ranges.size() * sizeof(range));
+  }
 
-template <typename T> void SparseSet<T>::unmarshall(const void *ptr)
-{
-  ranges.resize(* (uint32_t *) ptr);
-  memcpy(&ranges[0], (uint32_t *) ptr + 1, ranges.size() * sizeof(range));
-}
 
+  template <typename T>
+  std::ostream &operator << (std::ostream &str, const SparseSet<T> &set)
+  {
+    for (typename SparseSet<T>::const_iterator it = set.getRanges().begin(); it != set.getRanges().end(); it++)
+      if (it->end == it->begin + 1)
+        str << '[' << it->begin << "] ";
+      else
+        str << '[' << it->begin << ".." << it->end << "> ";
 
-template <typename T> std::ostream &operator << (std::ostream &str, const SparseSet<T> &set)
-{
-  for (typename SparseSet<T>::const_iterator it = set.getRanges().begin(); it != set.getRanges().end(); it ++)
-    if (it->end == it->begin + 1)
-      str << '[' << it->begin << "] ";
-    else
-      str << '[' << it->begin << ".." << it->end << "> ";
-
-  return str;
-}
+    return str;
+  }
 
 } // namespace LOFAR
 
diff --git a/RTCP/Cobalt/CoInterface/src/Stream.cc b/RTCP/Cobalt/CoInterface/src/Stream.cc
index e958e46812848fe7e44cbb6c33369e053325c254..2f27fbccc009bf1b14f81faafef3f56e604caae4 100644
--- a/RTCP/Cobalt/CoInterface/src/Stream.cc
+++ b/RTCP/Cobalt/CoInterface/src/Stream.cc
@@ -44,108 +44,110 @@
 using boost::format;
 using namespace std;
 
-namespace LOFAR {
-namespace RTCP {
-
-Stream *createStream(const string &descriptor, bool asServer, time_t deadline)
+namespace LOFAR
 {
-  vector<string> split = StringUtil::split(descriptor, ':');
-
-  if (deadline > 0 && deadline <= time(0))
-    THROW(SocketStream::TimeOutException, "Deadline already passed at start");
-
-  if (descriptor == "null:")
-    return new NullStream;
-  else if (split.size() == 3 && split[0] == "udp")
-    return new SocketStream(split[1].c_str(), boost::lexical_cast<unsigned short>(split[2]), SocketStream::UDP, asServer ? SocketStream::Server : SocketStream::Client, deadline);
-  else if (split.size() == 3 && split[0] == "tcp")
-    return new SocketStream(split[1].c_str(), boost::lexical_cast<unsigned short>(split[2]), SocketStream::TCP, asServer ? SocketStream::Server : SocketStream::Client, deadline);
-  else if (split.size() == 3 && split[0] == "udpkey")
-    return new SocketStream(split[1].c_str(), 0, SocketStream::UDP, asServer ? SocketStream::Server : SocketStream::Client, deadline, split[2].c_str());
-#ifdef USE_THREADS    
-  else if (split.size() == 4 && split[0] == "tcpbroker") 
-    return asServer ? static_cast<Stream*>(new PortBroker::ServerStream(split[3])) : static_cast<Stream*>(new PortBroker::ClientStream(split[1], boost::lexical_cast<unsigned short>(split[2]), split[3]));
-#endif    
-  else if (split.size() == 3 && split[0] == "tcpkey")
+  namespace RTCP
+  {
+
+    Stream *createStream(const string &descriptor, bool asServer, time_t deadline)
+    {
+      vector<string> split = StringUtil::split(descriptor, ':');
+
+      if (deadline > 0 && deadline <= time(0))
+        THROW(SocketStream::TimeOutException, "Deadline already passed at start");
+
+      if (descriptor == "null:")
+        return new NullStream;
+      else if (split.size() == 3 && split[0] == "udp")
+        return new SocketStream(split[1].c_str(), boost::lexical_cast<unsigned short>(split[2]), SocketStream::UDP, asServer ? SocketStream::Server : SocketStream::Client, deadline);
+      else if (split.size() == 3 && split[0] == "tcp")
+        return new SocketStream(split[1].c_str(), boost::lexical_cast<unsigned short>(split[2]), SocketStream::TCP, asServer ? SocketStream::Server : SocketStream::Client, deadline);
+      else if (split.size() == 3 && split[0] == "udpkey")
+        return new SocketStream(split[1].c_str(), 0, SocketStream::UDP, asServer ? SocketStream::Server : SocketStream::Client, deadline, split[2].c_str());
+#ifdef USE_THREADS
+      else if (split.size() == 4 && split[0] == "tcpbroker")
+        return asServer ? static_cast<Stream*>(new PortBroker::ServerStream(split[3])) : static_cast<Stream*>(new PortBroker::ClientStream(split[1], boost::lexical_cast<unsigned short>(split[2]), split[3]));
+#endif
+      else if (split.size() == 3 && split[0] == "tcpkey")
 #if defined CLUSTER_SCHEDULING
-    return new SocketStream(split[1].c_str(), 0, SocketStream::TCP, asServer ? SocketStream::Server : SocketStream::Client, 30000, split[2].c_str());
+        return new SocketStream(split[1].c_str(), 0, SocketStream::TCP, asServer ? SocketStream::Server : SocketStream::Client, 30000, split[2].c_str());
 #else
-    return new SocketStream(split[1].c_str(), 0, SocketStream::TCP, asServer ? SocketStream::Server : SocketStream::Client, deadline, split[2].c_str());
+        return new SocketStream(split[1].c_str(), 0, SocketStream::TCP, asServer ? SocketStream::Server : SocketStream::Client, deadline, split[2].c_str());
 #endif
-  else if (split.size() == 2 && split[0] == "file")
-    return asServer ? new FileStream(split[1].c_str()) : new FileStream(split[1].c_str(), 0666);
-  else if (split.size() == 2 && split[0] == "pipe")
-    return new NamedPipeStream(split[1].c_str(), asServer);
-  else if (split.size() == 2)
-    return new SocketStream(split[0].c_str(), boost::lexical_cast<unsigned short>(split[1]), SocketStream::UDP, asServer ? SocketStream::Server : SocketStream::Client, deadline);
-  else if (split.size() == 1)
-    return asServer ? new FileStream(split[0].c_str()) : new FileStream(split[0].c_str(), 0666);
-  else
-    THROW(CoInterfaceException, string("unrecognized connector format: \"" + descriptor + '"'));
-}
-
-
-string getStreamDescriptorBetweenIONandCN(const char *streamType, unsigned ionode, unsigned pset, unsigned core, unsigned numpsets, unsigned numcores, unsigned channel)
-{
-  string descriptor;
-
-  if (strcmp(streamType, "NULL") == 0) {
-    descriptor = "null:";
-  } else if (strcmp(streamType, "TCP") == 0) {
-    // DEPRICATED -- use TCPKEY instead
-    usleep(10000 * core); // do not connect all at the same time
-
-    unsigned port = 5000 + (channel * numpsets + pset) * numcores + core;
-    descriptor = str(format("tcp:127.0.0.1:%u") % port);
-  } else if (strcmp(streamType, "TCPKEY") == 0) {
-    usleep(10000 * core); // do not connect all at the same time
-
-    // FIXME: do not use fixed IP address
-    descriptor = str(format("tcpkey:10.149.5.23:ion-cn-%u-%u-%u-%u") % ionode % pset % core % channel);
-  } else if (strcmp(streamType, "PIPE") == 0) {
-    descriptor = str(format("pipe:/tmp/ion-cn-%u-%u-%u-%u") % ionode % pset % core % channel);
-  } else {
-    THROW(CoInterfaceException, "unknown Stream type between ION and CN");
-  }
-
-  LOG_DEBUG_STR("Creating stream " << descriptor << " from ionode " << ionode << " to pset " << pset << " core " << core << " channel " << channel);
-
-  return descriptor;
-}
-
-uint16 storageBrokerPort(int observationID)
-{
-  return 7000 + observationID % 1000;
-}
-
-
-string getStorageControlDescription(int observationID, int rank)
-{
-  return str(format("[obs %d rank %d] control") % observationID % rank);
-}
-
-
-string getStreamDescriptorBetweenIONandStorage(const Parset &parset, OutputType outputType, unsigned streamNr)
-{
-  string connectionType = parset.getString("OLAP.OLAP_Conn.IONProc_Storage_Transport");
-
-  if (connectionType == "NULL") {
-    return "null:";
-  } else if (connectionType == "TCP") {
+      else if (split.size() == 2 && split[0] == "file")
+        return asServer ? new FileStream(split[1].c_str()) : new FileStream(split[1].c_str(), 0666);
+      else if (split.size() == 2 && split[0] == "pipe")
+        return new NamedPipeStream(split[1].c_str(), asServer);
+      else if (split.size() == 2)
+        return new SocketStream(split[0].c_str(), boost::lexical_cast<unsigned short>(split[1]), SocketStream::UDP, asServer ? SocketStream::Server : SocketStream::Client, deadline);
+      else if (split.size() == 1)
+        return asServer ? new FileStream(split[0].c_str()) : new FileStream(split[0].c_str(), 0666);
+      else
+        THROW(CoInterfaceException, string("unrecognized connector format: \"" + descriptor + '"'));
+    }
+
+
+    string getStreamDescriptorBetweenIONandCN(const char *streamType, unsigned ionode, unsigned pset, unsigned core, unsigned numpsets, unsigned numcores, unsigned channel)
+    {
+      string descriptor;
+
+      if (strcmp(streamType, "NULL") == 0) {
+        descriptor = "null:";
+      } else if (strcmp(streamType, "TCP") == 0) {
+        // DEPRICATED -- use TCPKEY instead
+        usleep(10000 * core); // do not connect all at the same time
+
+        unsigned port = 5000 + (channel * numpsets + pset) * numcores + core;
+        descriptor = str(format("tcp:127.0.0.1:%u") % port);
+      } else if (strcmp(streamType, "TCPKEY") == 0) {
+        usleep(10000 * core); // do not connect all at the same time
+
+        // FIXME: do not use fixed IP address
+        descriptor = str(format("tcpkey:10.149.5.23:ion-cn-%u-%u-%u-%u") % ionode % pset % core % channel);
+      } else if (strcmp(streamType, "PIPE") == 0) {
+        descriptor = str(format("pipe:/tmp/ion-cn-%u-%u-%u-%u") % ionode % pset % core % channel);
+      } else {
+        THROW(CoInterfaceException, "unknown Stream type between ION and CN");
+      }
+
+      LOG_DEBUG_STR("Creating stream " << descriptor << " from ionode " << ionode << " to pset " << pset << " core " << core << " channel " << channel);
+
+      return descriptor;
+    }
+
+    uint16 storageBrokerPort(int observationID)
+    {
+      return 7000 + observationID % 1000;
+    }
+
+
+    string getStorageControlDescription(int observationID, int rank)
+    {
+      return str(format("[obs %d rank %d] control") % observationID % rank);
+    }
+
+
+    string getStreamDescriptorBetweenIONandStorage(const Parset &parset, OutputType outputType, unsigned streamNr)
+    {
+      string connectionType = parset.getString("OLAP.OLAP_Conn.IONProc_Storage_Transport");
+
+      if (connectionType == "NULL") {
+        return "null:";
+      } else if (connectionType == "TCP") {
 #if defined USE_THREADS
-    string host = parset.getHostName(outputType, streamNr);
-    uint16 port = storageBrokerPort(parset.observationID());
-    return str(format("tcpbroker:%s:%u:ion-storage-obs-%u-type-%u-stream-%u") % host % port % parset.observationID() % outputType % streamNr);
-#else    
-    string host = parset.getHostName(outputType, streamNr);
-    return str(format("tcpkey:%s:ion-storage-obs-%u-type-%u-stream-%u") % host % parset.observationID() % outputType % streamNr);
-#endif    
-  } else if (connectionType == "FILE") {
-    return str(format("file:out-obs-%u-type-%u-stream-%u") % parset.observationID() % outputType % streamNr);
-  } else {
-    THROW(CoInterfaceException, "unsupported ION->Storage stream type: " << connectionType);
-  }
-}
-
-} // namespace RTCP
+        string host = parset.getHostName(outputType, streamNr);
+        uint16 port = storageBrokerPort(parset.observationID());
+        return str(format("tcpbroker:%s:%u:ion-storage-obs-%u-type-%u-stream-%u") % host % port % parset.observationID() % outputType % streamNr);
+#else
+        string host = parset.getHostName(outputType, streamNr);
+        return str(format("tcpkey:%s:ion-storage-obs-%u-type-%u-stream-%u") % host % parset.observationID() % outputType % streamNr);
+#endif
+      } else if (connectionType == "FILE") {
+        return str(format("file:out-obs-%u-type-%u-stream-%u") % parset.observationID() % outputType % streamNr);
+      } else {
+        THROW(CoInterfaceException, "unsupported ION->Storage stream type: " << connectionType);
+      }
+    }
+
+  } // namespace RTCP
 } // namespace LOFAR
diff --git a/RTCP/Cobalt/CoInterface/src/Stream.h b/RTCP/Cobalt/CoInterface/src/Stream.h
index 290b77c265dd0934d8a8ba12bd6fd30f6bd03969..186fe4dce7b1fe9ee1955c4b9ae86703275cddae 100644
--- a/RTCP/Cobalt/CoInterface/src/Stream.h
+++ b/RTCP/Cobalt/CoInterface/src/Stream.h
@@ -29,21 +29,23 @@
 
 #include <string>
 
-namespace LOFAR {
-namespace RTCP {
+namespace LOFAR
+{
+  namespace RTCP
+  {
 
-// Create a stream from a descriptor
-Stream *createStream(const std::string &descriptor, bool asReader, time_t deadline = 0);
+    // Create a stream from a descriptor
+    Stream *createStream(const std::string &descriptor, bool asReader, time_t deadline = 0);
 
-// Return a string descriptor, for all supported streamTypes except FCNP
-std::string getStreamDescriptorBetweenIONandCN(const char *streamType, unsigned ionode, unsigned pset, unsigned core, unsigned numpsets, unsigned numcores, unsigned channel);
+    // Return a string descriptor, for all supported streamTypes except FCNP
+    std::string getStreamDescriptorBetweenIONandCN(const char *streamType, unsigned ionode, unsigned pset, unsigned core, unsigned numpsets, unsigned numcores, unsigned channel);
 
-uint16 storageBrokerPort(int observationID);
-std::string getStorageControlDescription(int observationID, int rank);
+    uint16 storageBrokerPort(int observationID);
+    std::string getStorageControlDescription(int observationID, int rank);
 
-std::string getStreamDescriptorBetweenIONandStorage(const Parset &parset, OutputType outputType, unsigned streamNr);
+    std::string getStreamDescriptorBetweenIONandStorage(const Parset &parset, OutputType outputType, unsigned streamNr);
 
-} // namespace RTCP
+  } // namespace RTCP
 } // namespace LOFAR
 
 #endif
diff --git a/RTCP/Cobalt/CoInterface/src/StreamableData.h b/RTCP/Cobalt/CoInterface/src/StreamableData.h
index e9b238f3117a58f1ac70b84909ae1d4467c88c80..e42ee9c3855083bac4940a08212a6f8023cba4f7 100644
--- a/RTCP/Cobalt/CoInterface/src/StreamableData.h
+++ b/RTCP/Cobalt/CoInterface/src/StreamableData.h
@@ -13,169 +13,187 @@
 
 #include <cstring>
 
-namespace LOFAR {
-namespace RTCP {
-
-// Data which needs to be transported between CN, ION and Storage.
-// Apart from read() and write() functionality, the data is augmented
-// with a sequence number in order to detect missing data. Furthermore,
-// an integration operator += can be defined to reduce the data.
-
-// Endianness:
-// * Endianness is defined by the correlator. 
-// * Both Data and sequence number will have endianness of the
-//   correlator
-//
-// WARNING: We consider all data streams to have the endianness of the
-// correlator. No conversion is done here.
-
-class IntegratableData
+namespace LOFAR
 {
-  public:
-    virtual ~IntegratableData() {}
+  namespace RTCP
+  {
+
+    // Data which needs to be transported between CN, ION and Storage.
+    // Apart from read() and write() functionality, the data is augmented
+    // with a sequence number in order to detect missing data. Furthermore,
+    // an integration operator += can be defined to reduce the data.
+
+    // Endianness:
+    // * Endianness is defined by the correlator.
+    // * Both Data and sequence number will have endianness of the
+    //   correlator
+    //
+    // WARNING: We consider all data streams to have the endianness of the
+    // correlator. No conversion is done here.
+
+    class IntegratableData
+    {
+    public:
+      virtual ~IntegratableData()
+      {
+      }
 
-    virtual IntegratableData &operator += (const IntegratableData &) = 0;
-};
+      virtual IntegratableData &operator += (const IntegratableData &) = 0;
+    };
 
-    
-class StreamableData
-{
-  public:
-    static const uint32_t magic  = 0xda7a;
+
+    class StreamableData
+    {
+    public:
+      static const uint32_t magic = 0xda7a;
 #ifdef HAVE_BGP
-    static const size_t alignment = 32;
+      static const size_t alignment = 32;
 #else
-    static const size_t alignment = 512;
+      static const size_t alignment = 512;
 #endif
 
-    // the CPU which fills the datastructure sets the peerMagicNumber,
-    // because other CPUs will overwrite it with a read(s,true) call from
-    // either disk or network.
-    StreamableData(): peerMagicNumber(magic), rawSequenceNumber(0) {}
-    virtual ~StreamableData() {}
+      // the CPU which fills the datastructure sets the peerMagicNumber,
+      // because other CPUs will overwrite it with a read(s,true) call from
+      // either disk or network.
+      StreamableData() : peerMagicNumber(magic), rawSequenceNumber(0)
+      {
+      }
+      virtual ~StreamableData()
+      {
+      }
 
-    void read(Stream *, bool withSequenceNumber, unsigned align = 0);
-    void write(Stream *, bool withSequenceNumber, unsigned align = 0);
+      void read(Stream *, bool withSequenceNumber, unsigned align = 0);
+      void write(Stream *, bool withSequenceNumber, unsigned align = 0);
 
-    bool shouldByteSwap() const
-    { return peerMagicNumber != magic; }
+      bool shouldByteSwap() const
+      {
+        return peerMagicNumber != magic;
+      }
 
-    uint32_t sequenceNumber(bool raw=false) const {
-      if (shouldByteSwap() && !raw) {
-        uint32_t seqno = rawSequenceNumber;
+      uint32_t sequenceNumber(bool raw = false) const
+      {
+        if (shouldByteSwap() && !raw) {
+          uint32_t seqno = rawSequenceNumber;
 
-        byteSwap32(&seqno);
+          byteSwap32(&seqno);
 
-        return seqno;
-      } else {
-        return rawSequenceNumber;
+          return seqno;
+        } else {
+          return rawSequenceNumber;
+        }
       }
-    }
 
-    void setSequenceNumber(uint32_t seqno) {
-      if (shouldByteSwap())
-        byteSwap32(&seqno);
+      void setSequenceNumber(uint32_t seqno)
+      {
+        if (shouldByteSwap())
+          byteSwap32(&seqno);
 
-      rawSequenceNumber = seqno;
-    }
+        rawSequenceNumber = seqno;
+      }
 
-    virtual void setDimensions(unsigned, unsigned, unsigned) { }
+      virtual void setDimensions(unsigned, unsigned, unsigned)
+      {
+      }
 
-    uint32_t peerMagicNumber;    /// magic number received from peer
+      uint32_t peerMagicNumber;  /// magic number received from peer
 
-  protected:
-    // a subclass should override these to marshall its data
-    virtual void readData(Stream *) = 0;
-    virtual void writeData(Stream *) = 0;
+    protected:
+      // a subclass should override these to marshall its data
+      virtual void readData(Stream *) = 0;
+      virtual void writeData(Stream *) = 0;
 
-  private:  
-    uint32_t rawSequenceNumber;  /// possibly needs byte swapping
-};
+    private:
+      uint32_t rawSequenceNumber; /// possibly needs byte swapping
+    };
 
 
-// A typical data set contains a MultiDimArray of tuples and a set of flags.
-template <typename T = fcomplex, unsigned DIM = 4, unsigned FLAGS_DIM = 2> class SampleData : public StreamableData
-{
-  public:
-    typedef typename MultiDimArray<T,DIM>::ExtentList ExtentList;
-    typedef typename MultiDimArray<SparseSet<unsigned>,FLAGS_DIM>::ExtentList FlagsExtentList;
+    // A typical data set contains a MultiDimArray of tuples and a set of flags.
+    template <typename T = fcomplex, unsigned DIM = 4, unsigned FLAGS_DIM = 2>
+    class SampleData : public StreamableData
+    {
+    public:
+      typedef typename MultiDimArray<T,DIM>::ExtentList ExtentList;
+      typedef typename MultiDimArray<SparseSet<unsigned>,FLAGS_DIM>::ExtentList FlagsExtentList;
 
-    SampleData(const ExtentList &extents, const FlagsExtentList &flagsExtents, Allocator & = heapAllocator);
+      SampleData(const ExtentList &extents, const FlagsExtentList &flagsExtents, Allocator & = heapAllocator);
 
-    MultiDimArray<T,DIM>	      samples;
-    MultiDimArray<SparseSet<unsigned>,FLAGS_DIM>   flags;
+      MultiDimArray<T,DIM>              samples;
+      MultiDimArray<SparseSet<unsigned>,FLAGS_DIM>   flags;
 
-  protected:
-    virtual void readData(Stream *);
-    virtual void writeData(Stream *);
+    protected:
+      virtual void readData(Stream *);
+      virtual void writeData(Stream *);
 
-  private:
-    //bool	 itsHaveWarnedLittleEndian;
-};
+    private:
+      //bool	 itsHaveWarnedLittleEndian;
+    };
 
 
-inline void StreamableData::read(Stream *str, bool withSequenceNumber, unsigned alignment)
-{
-  if (withSequenceNumber) {
-    std::vector<char> header(alignment > 2*sizeof(uint32_t) ? alignment : 2*sizeof(uint32_t));
-    uint32_t          &magicValue = * reinterpret_cast<uint32_t *>(&header[0]);
-    uint32_t	      &seqNo      = * reinterpret_cast<uint32_t *>(&header[sizeof(uint32_t)]);
+    inline void StreamableData::read(Stream *str, bool withSequenceNumber, unsigned alignment)
+    {
+      if (withSequenceNumber) {
+        std::vector<char> header(alignment > 2 * sizeof(uint32_t) ? alignment : 2 * sizeof(uint32_t));
+        uint32_t          &magicValue = *reinterpret_cast<uint32_t *>(&header[0]);
+        uint32_t          &seqNo = *reinterpret_cast<uint32_t *>(&header[sizeof(uint32_t)]);
 
-    str->read(&header[0], header.size());
+        str->read(&header[0], header.size());
 
-    peerMagicNumber = magicValue;
-    rawSequenceNumber = seqNo;
-  }
+        peerMagicNumber = magicValue;
+        rawSequenceNumber = seqNo;
+      }
 
-  readData(str);
-}
+      readData(str);
+    }
 
 
-inline void StreamableData::write(Stream *str, bool withSequenceNumber, unsigned alignment)
-{
-  
-  if (withSequenceNumber) {
-/*     std::vector<char> header(alignment > sizeof(uint32_t) ? alignment : sizeof(uint32_t)); */
-    std::vector<char> header(alignment > 2*sizeof(uint32_t) ? alignment : 2*sizeof(uint32_t));
-    uint32_t          &magicValue = * reinterpret_cast<uint32_t *>(&header[0]);
-    uint32_t	      &seqNo      = * reinterpret_cast<uint32_t *>(&header[sizeof(uint32_t)]);
+    inline void StreamableData::write(Stream *str, bool withSequenceNumber, unsigned alignment)
+    {
+
+      if (withSequenceNumber) {
+        /*     std::vector<char> header(alignment > sizeof(uint32_t) ? alignment : sizeof(uint32_t)); */
+        std::vector<char> header(alignment > 2 * sizeof(uint32_t) ? alignment : 2 * sizeof(uint32_t));
+        uint32_t          &magicValue = *reinterpret_cast<uint32_t *>(&header[0]);
+        uint32_t          &seqNo = *reinterpret_cast<uint32_t *>(&header[sizeof(uint32_t)]);
 
 #if defined USE_VALGRIND
-    memset(&header[0], 0, header.size());
+        memset(&header[0], 0, header.size());
 #endif
 
-    magicValue = peerMagicNumber;
-    seqNo = rawSequenceNumber;
+        magicValue = peerMagicNumber;
+        seqNo = rawSequenceNumber;
+
+        str->write(&header[0], header.size());
+      }
 
-    str->write(&header[0], header.size());
-  }
-  
-  writeData(str);
-}
+      writeData(str);
+    }
 
 
-template <typename T, unsigned DIM, unsigned FLAGS_DIM> inline SampleData<T,DIM,FLAGS_DIM>::SampleData(const ExtentList &extents, const FlagsExtentList &flagsExtents, Allocator &allocator)
-:
-  samples(extents, alignment, allocator),
-  flags(flagsExtents) // e.g., for FilteredData [nrChannels][nrStations], sparse dimension [nrSamplesPerIntegration]
+    template <typename T, unsigned DIM, unsigned FLAGS_DIM>
+    inline SampleData<T,DIM,FLAGS_DIM>::SampleData(const ExtentList &extents, const FlagsExtentList &flagsExtents, Allocator &allocator)
+      :
+      samples(extents, alignment, allocator),
+      flags(flagsExtents) // e.g., for FilteredData [nrChannels][nrStations], sparse dimension [nrSamplesPerIntegration]
 
-  //itsHaveWarnedLittleEndian(false)
-{ 
-}
+      //itsHaveWarnedLittleEndian(false)
+    {
+    }
 
 
-template <typename T, unsigned DIM, unsigned FLAGS_DIM> inline void SampleData<T,DIM,FLAGS_DIM>::readData(Stream *str)
-{
-  str->read(samples.origin(), samples.num_elements() * sizeof(T));
-}
+    template <typename T, unsigned DIM, unsigned FLAGS_DIM>
+    inline void SampleData<T,DIM,FLAGS_DIM>::readData(Stream *str)
+    {
+      str->read(samples.origin(), samples.num_elements() * sizeof(T));
+    }
 
 
-template <typename T, unsigned DIM, unsigned FLAGS_DIM> inline void SampleData<T,DIM,FLAGS_DIM>::writeData(Stream *str)
-{
-  str->write(samples.origin(), samples.num_elements() * sizeof(T));
-}
+    template <typename T, unsigned DIM, unsigned FLAGS_DIM>
+    inline void SampleData<T,DIM,FLAGS_DIM>::writeData(Stream *str)
+    {
+      str->write(samples.origin(), samples.num_elements() * sizeof(T));
+    }
 
-} // namespace RTCP
+  } // namespace RTCP
 } // namespace LOFAR
 
 #endif
diff --git a/RTCP/Cobalt/CoInterface/src/SubbandMetaData.h b/RTCP/Cobalt/CoInterface/src/SubbandMetaData.h
index 36a17b4b92573cbc50f43cde669e9fc2c20fac51..7970e05016d1cf644be81229df9e2736b71c698b 100644
--- a/RTCP/Cobalt/CoInterface/src/SubbandMetaData.h
+++ b/RTCP/Cobalt/CoInterface/src/SubbandMetaData.h
@@ -34,144 +34,146 @@
 #include <cstring>
 
 
-namespace LOFAR {
-namespace RTCP {
-
-// Note: struct must remain copyable to avoid ugly constructions when passing it around
-struct SubbandMetaData
-{
-  public:
-    SubbandMetaData(unsigned nrSubbands, unsigned nrBeams, Allocator &allocator = heapAllocator);
-    ~SubbandMetaData();
-
-    struct beamInfo {
-      float  delayAtBegin, delayAfterEnd;
-      double beamDirectionAtBegin[3], beamDirectionAfterEnd[3];
-    };
-
-    struct marshalledData {
-      unsigned char	flagsBuffer[132];
-      unsigned		alignmentShift;
-
-      // nrBeams elements will really be allocated, so this array needs to
-      // be the last element. Also, ISO C++ forbids zero-sized arrays, so we use size 1.
-      struct beamInfo   beams[1];
-    };
-
-    SparseSet<unsigned>	getFlags(unsigned subband) const;
-    void		setFlags(unsigned subband, const SparseSet<unsigned> &);
-
-    unsigned            alignmentShift(unsigned subband) const;
-    unsigned            &alignmentShift(unsigned subband);
-
-    struct beamInfo     *beams(unsigned subband) const;
-    struct beamInfo     *beams(unsigned subband);
-
-    struct marshalledData &subbandInfo(unsigned subband) const;
-    struct marshalledData &subbandInfo(unsigned subband);
- 
-    void read(Stream *str);
-    void write(Stream *str) const;
-
-    // size of the information for one subband
-    const unsigned      itsSubbandInfoSize;
-
- private:
-    // size of the information for all subbands
-    const unsigned      itsMarshalledDataSize;
-
-    // the pointer to all our data, which consists of struct marshalledData[itsNrSubbands],
-    // except for the fact that the elements are spaces apart more than sizeof(struct marshalledData)
-    // to make room for extra beams which are not defined in the marshalledData structure.
-    //
-    // Access elements through subbandInfo(subband).
-    char		*const itsMarshalledData;
-
-    Allocator           &itsAllocator;
-};
-
-
-inline SubbandMetaData::SubbandMetaData(unsigned nrSubbands, unsigned nrBeams, Allocator &allocator)
-: 
-  // Size of the data we need to allocate. Note that marshalledData already contains
-  // the size of one beamInfo.
-  itsSubbandInfoSize(sizeof(struct marshalledData) + (nrBeams - 1) * sizeof(struct beamInfo)),
-  itsMarshalledDataSize(align(nrSubbands * itsSubbandInfoSize, 16)),
-  itsMarshalledData(static_cast<char*>(allocator.allocate(itsMarshalledDataSize, 16))),
-  itsAllocator(allocator)
+namespace LOFAR
 {
-#if defined USE_VALGRIND
-  memset(itsMarshalledData, 0, itsMarshalledDataSize);
-#endif
-}
+  namespace RTCP
+  {
 
-inline SubbandMetaData::~SubbandMetaData()
-{
-  itsAllocator.deallocate(itsMarshalledData);
-}
+    // Note: struct must remain copyable to avoid ugly constructions when passing it around
+    struct SubbandMetaData
+    {
+    public:
+      SubbandMetaData(unsigned nrSubbands, unsigned nrBeams, Allocator &allocator = heapAllocator);
+      ~SubbandMetaData();
 
-inline SparseSet<unsigned> SubbandMetaData::getFlags(unsigned subband) const
-{
-  SparseSet<unsigned> flags;
+      struct beamInfo {
+        float delayAtBegin, delayAfterEnd;
+        double beamDirectionAtBegin[3], beamDirectionAfterEnd[3];
+      };
 
-  flags.unmarshall(subbandInfo(subband).flagsBuffer);
-  return flags;
-}
+      struct marshalledData {
+        unsigned char flagsBuffer[132];
+        unsigned alignmentShift;
 
-inline void SubbandMetaData::setFlags(unsigned subband, const SparseSet<unsigned> &flags)
-{
-  ssize_t size = flags.marshall(&subbandInfo(subband).flagsBuffer, sizeof subbandInfo(subband).flagsBuffer);
-  
-  assert(size >= 0);
-}
+        // nrBeams elements will really be allocated, so this array needs to
+        // be the last element. Also, ISO C++ forbids zero-sized arrays, so we use size 1.
+        struct beamInfo beams[1];
+      };
 
-inline unsigned SubbandMetaData::alignmentShift(unsigned subband) const
-{
-  return subbandInfo(subband).alignmentShift;
-}
+      SparseSet<unsigned> getFlags(unsigned subband) const;
+      void                setFlags(unsigned subband, const SparseSet<unsigned> &);
 
-inline unsigned &SubbandMetaData::alignmentShift(unsigned subband)
-{
-  return subbandInfo(subband).alignmentShift;
-}
+      unsigned            alignmentShift(unsigned subband) const;
+      unsigned            &alignmentShift(unsigned subband);
 
-inline struct SubbandMetaData::beamInfo *SubbandMetaData::beams(unsigned subband) const
-{
-  return &subbandInfo(subband).beams[0];
-}
+      struct beamInfo     *beams(unsigned subband) const;
+      struct beamInfo     *beams(unsigned subband);
 
-inline struct SubbandMetaData::beamInfo *SubbandMetaData::beams(unsigned subband)
-{
-  return &subbandInfo(subband).beams[0];
-}
+      struct marshalledData &subbandInfo(unsigned subband) const;
+      struct marshalledData &subbandInfo(unsigned subband);
 
-inline struct SubbandMetaData::marshalledData &SubbandMetaData::subbandInfo(unsigned subband) const
-{
-  // calculate the array stride ourself, since C++ does not know the proper size of the marshalledData elements
-  return *reinterpret_cast<struct marshalledData*>(itsMarshalledData + (subband * itsSubbandInfoSize));
-}
+      void read(Stream *str);
+      void write(Stream *str) const;
 
-inline struct SubbandMetaData::marshalledData &SubbandMetaData::subbandInfo(unsigned subband)
-{
-  // calculate the array stride ourself, since C++ does not know the proper size of the marshalledData elements
-  return *reinterpret_cast<struct marshalledData*>(itsMarshalledData + (subband * itsSubbandInfoSize));
-}
+      // size of the information for one subband
+      const unsigned itsSubbandInfoSize;
 
-inline void SubbandMetaData::read(Stream *str)
-{
-  // TODO: endianness
+    private:
+      // size of the information for all subbands
+      const unsigned itsMarshalledDataSize;
 
-  str->read(itsMarshalledData, itsMarshalledDataSize);
-}
+      // the pointer to all our data, which consists of struct marshalledData[itsNrSubbands],
+      // except for the fact that the elements are spaces apart more than sizeof(struct marshalledData)
+      // to make room for extra beams which are not defined in the marshalledData structure.
+      //
+      // Access elements through subbandInfo(subband).
+      char                *const itsMarshalledData;
 
-inline void SubbandMetaData::write(Stream *str) const
-{
-  // TODO: endianness
+      Allocator           &itsAllocator;
+    };
 
-  str->write(itsMarshalledData, itsMarshalledDataSize);
-}
 
-} // namespace RTCP
+    inline SubbandMetaData::SubbandMetaData(unsigned nrSubbands, unsigned nrBeams, Allocator &allocator)
+      :
+      // Size of the data we need to allocate. Note that marshalledData already contains
+      // the size of one beamInfo.
+      itsSubbandInfoSize(sizeof(struct marshalledData) + (nrBeams - 1) * sizeof(struct beamInfo)),
+      itsMarshalledDataSize(align(nrSubbands * itsSubbandInfoSize, 16)),
+      itsMarshalledData(static_cast<char*>(allocator.allocate(itsMarshalledDataSize, 16))),
+      itsAllocator(allocator)
+    {
+#if defined USE_VALGRIND
+      memset(itsMarshalledData, 0, itsMarshalledDataSize);
+#endif
+    }
+
+    inline SubbandMetaData::~SubbandMetaData()
+    {
+      itsAllocator.deallocate(itsMarshalledData);
+    }
+
+    inline SparseSet<unsigned> SubbandMetaData::getFlags(unsigned subband) const
+    {
+      SparseSet<unsigned> flags;
+
+      flags.unmarshall(subbandInfo(subband).flagsBuffer);
+      return flags;
+    }
+
+    inline void SubbandMetaData::setFlags(unsigned subband, const SparseSet<unsigned> &flags)
+    {
+      ssize_t size = flags.marshall(&subbandInfo(subband).flagsBuffer, sizeof subbandInfo(subband).flagsBuffer);
+
+      assert(size >= 0);
+    }
+
+    inline unsigned SubbandMetaData::alignmentShift(unsigned subband) const
+    {
+      return subbandInfo(subband).alignmentShift;
+    }
+
+    inline unsigned &SubbandMetaData::alignmentShift(unsigned subband)
+    {
+      return subbandInfo(subband).alignmentShift;
+    }
+
+    inline struct SubbandMetaData::beamInfo *SubbandMetaData::beams(unsigned subband) const
+    {
+      return &subbandInfo(subband).beams[0];
+    }
+
+    inline struct SubbandMetaData::beamInfo *SubbandMetaData::beams(unsigned subband)
+    {
+      return &subbandInfo(subband).beams[0];
+    }
+
+    inline struct SubbandMetaData::marshalledData &SubbandMetaData::subbandInfo(unsigned subband) const
+    {
+      // calculate the array stride ourself, since C++ does not know the proper size of the marshalledData elements
+      return *reinterpret_cast<struct marshalledData*>(itsMarshalledData + (subband * itsSubbandInfoSize));
+    }
+
+    inline struct SubbandMetaData::marshalledData &SubbandMetaData::subbandInfo(unsigned subband)
+    {
+      // calculate the array stride ourself, since C++ does not know the proper size of the marshalledData elements
+      return *reinterpret_cast<struct marshalledData*>(itsMarshalledData + (subband * itsSubbandInfoSize));
+    }
+
+    inline void SubbandMetaData::read(Stream *str)
+    {
+      // TODO: endianness
+
+      str->read(itsMarshalledData, itsMarshalledDataSize);
+    }
+
+    inline void SubbandMetaData::write(Stream *str) const
+    {
+      // TODO: endianness
+
+      str->write(itsMarshalledData, itsMarshalledDataSize);
+    }
+
+  } // namespace RTCP
 } // namespace LOFAR
 
-#endif 
+#endif
diff --git a/RTCP/Cobalt/CoInterface/src/TransposedBeamFormedData.h b/RTCP/Cobalt/CoInterface/src/TransposedBeamFormedData.h
index 91e260a60b8f4683d89376498e6afe14c4ea9fee..22f77cb747412eddb8214e864be3530178fa241a 100644
--- a/RTCP/Cobalt/CoInterface/src/TransposedBeamFormedData.h
+++ b/RTCP/Cobalt/CoInterface/src/TransposedBeamFormedData.h
@@ -7,27 +7,29 @@
 #include <vector>
 
 
-namespace LOFAR {
-namespace RTCP {
+namespace LOFAR
+{
+  namespace RTCP
+  {
 
-// Polarizations are separated, otherwise the buffers do not fit in memory.
+    // Polarizations are separated, otherwise the buffers do not fit in memory.
 
-class TransposedBeamFormedData: public SampleData<fcomplex,3,1>
-{
-  public:
-    typedef SampleData<fcomplex,3,1> SuperType;
+    class TransposedBeamFormedData : public SampleData<fcomplex,3,1>
+    {
+    public:
+      typedef SampleData<fcomplex,3,1> SuperType;
 
-    TransposedBeamFormedData(unsigned nrSubbands, unsigned nrChannels, unsigned nrSamplesPerIntegration);
-};
+      TransposedBeamFormedData(unsigned nrSubbands, unsigned nrChannels, unsigned nrSamplesPerIntegration);
+    };
 
 
-inline TransposedBeamFormedData::TransposedBeamFormedData(unsigned nrSubbands, unsigned nrChannels, unsigned nrSamplesPerIntegration)
-:
-  SuperType(boost::extents[nrSubbands][nrChannels][nrSamplesPerIntegration | 2], boost::extents[1])
-{
-}
+    inline TransposedBeamFormedData::TransposedBeamFormedData(unsigned nrSubbands, unsigned nrChannels, unsigned nrSamplesPerIntegration)
+      :
+      SuperType(boost::extents[nrSubbands][nrChannels][nrSamplesPerIntegration | 2], boost::extents[1])
+    {
+    }
 
-} // namespace RTCP
+  } // namespace RTCP
 } // namespace LOFAR
 
 #endif
diff --git a/RTCP/Cobalt/CoInterface/src/TransposedData.h b/RTCP/Cobalt/CoInterface/src/TransposedData.h
index d61dbb59b5bd9bcd8e9bd20602681802768472c6..23666c1eabc5838dfa5d5104eece5b916312246f 100644
--- a/RTCP/Cobalt/CoInterface/src/TransposedData.h
+++ b/RTCP/Cobalt/CoInterface/src/TransposedData.h
@@ -6,25 +6,29 @@
 #include <CoInterface/StreamableData.h>
 
 
-namespace LOFAR {
-namespace RTCP {
-
-template <typename SAMPLE_TYPE> class TransposedData: public SampleData<SAMPLE_TYPE,3,1>
+namespace LOFAR
 {
-  public:
-    typedef SampleData<SAMPLE_TYPE,3,1> SuperType;
+  namespace RTCP
+  {
 
-    TransposedData(const unsigned nrStations, const unsigned nrSamplesToCNProc, Allocator &allocator = heapAllocator);
-};
+    template <typename SAMPLE_TYPE>
+    class TransposedData : public SampleData<SAMPLE_TYPE,3,1>
+    {
+    public:
+      typedef SampleData<SAMPLE_TYPE,3,1> SuperType;
 
+      TransposedData(const unsigned nrStations, const unsigned nrSamplesToCNProc, Allocator &allocator = heapAllocator);
+    };
 
-template <typename SAMPLE_TYPE> inline TransposedData<SAMPLE_TYPE>::TransposedData(const unsigned nrStations, const unsigned nrSamplesToCNProc, Allocator &allocator)
-:
-  SuperType(boost::extents[nrStations][nrSamplesToCNProc][NR_POLARIZATIONS], boost::extents[0], allocator)
-{
-}
 
-} // namespace RTCP
+    template <typename SAMPLE_TYPE>
+    inline TransposedData<SAMPLE_TYPE>::TransposedData(const unsigned nrStations, const unsigned nrSamplesToCNProc, Allocator &allocator)
+      :
+      SuperType(boost::extents[nrStations][nrSamplesToCNProc][NR_POLARIZATIONS], boost::extents[0], allocator)
+    {
+    }
+
+  } // namespace RTCP
 } // namespace LOFAR
 
 #endif
diff --git a/RTCP/Cobalt/CoInterface/src/TriggerData.h b/RTCP/Cobalt/CoInterface/src/TriggerData.h
index 5f5b3b87c3a6e0f7a678a4dde2db3ae4844aeb98..dc2cdc0fb4ac8caffb7a8bb5224b23f8ec0185e8 100644
--- a/RTCP/Cobalt/CoInterface/src/TriggerData.h
+++ b/RTCP/Cobalt/CoInterface/src/TriggerData.h
@@ -5,24 +5,34 @@
 #include <CoInterface/StreamableData.h>
 
 
-namespace LOFAR {
-namespace RTCP {
+namespace LOFAR
+{
+  namespace RTCP
+  {
 
 
-class TriggerData: public StreamableData
-{
-  public:
-    TriggerData() : trigger(false) {}
+    class TriggerData : public StreamableData
+    {
+    public:
+      TriggerData() : trigger(false)
+      {
+      }
 
-    bool trigger;
+      bool trigger;
 
-  protected:  
-    virtual void readData(Stream *str) { str->read(&trigger, sizeof trigger); }
-    virtual void writeData(Stream *str) { str->write(&trigger, sizeof trigger); }
-};
+    protected:
+      virtual void readData(Stream *str)
+      {
+        str->read(&trigger, sizeof trigger);
+      }
+      virtual void writeData(Stream *str)
+      {
+        str->write(&trigger, sizeof trigger);
+      }
+    };
 
 
-} // namespace RTCP
+  } // namespace RTCP
 } // namespace LOFAR
 
 #endif
diff --git a/RTCP/Cobalt/CoInterface/test/tCorrelatedData.cc b/RTCP/Cobalt/CoInterface/test/tCorrelatedData.cc
index d056a5e4eba576298e473ff5765aecc731e71a15..fc039a88e55d7bc8ddd8a120ed74c5fac29262f1 100644
--- a/RTCP/Cobalt/CoInterface/test/tCorrelatedData.cc
+++ b/RTCP/Cobalt/CoInterface/test/tCorrelatedData.cc
@@ -17,7 +17,7 @@ int main(void)
   NSTimer timer("addition", true, false);
 
   unsigned nr_maxsamples[] = { 255, 65535, 1000000 }; // encode using 1, 2, 4 bytes, respectively
-  unsigned nr_channels[]  = { 1, 16, 64, 256 };
+  unsigned nr_channels[] = { 1, 16, 64, 256 };
   unsigned nr_stations[] = { 1, 2, 3, 4, 5, 24 };
 
   for( unsigned s = 0; s < sizeof nr_maxsamples / sizeof nr_maxsamples[0]; ++s )
@@ -40,14 +40,14 @@ int main(void)
         for( unsigned i = 0; i < nbl; i++ ) {
           for( unsigned j = 0; j < nch; j++ ) {
             n++;
-            
-            data1.setNrValidSamples(i, j, (n*1) % (ns/2));
-            data2.setNrValidSamples(i, j, (n*2) % (ns/2));
-            data3.setNrValidSamples(i, j, ((n*1) % (ns/2)) + ((n*2) % (ns/2)));
+
+            data1.setNrValidSamples(i, j, (n * 1) % (ns / 2));
+            data2.setNrValidSamples(i, j, (n * 2) % (ns / 2));
+            data3.setNrValidSamples(i, j, ((n * 1) % (ns / 2)) + ((n * 2) % (ns / 2)));
 
             for( unsigned k = 0; k < 2; k++ ) {
               for( unsigned l = 0; l < 2; l++ ) {
-                data1.visibilities[i][j][k][l] =    1 * ((i + j) * 10 + k * 2 + l);
+                data1.visibilities[i][j][k][l] = 1 * ((i + j) * 10 + k * 2 + l);
                 data2.visibilities[i][j][k][l] = 1000 * ((i + j) * 10 + k * 2 + l);
                 data3.visibilities[i][j][k][l] = 1001 * ((i + j) * 10 + k * 2 + l);
               }
diff --git a/RTCP/Cobalt/CoInterface/test/tMultiDimArray.cc b/RTCP/Cobalt/CoInterface/test/tMultiDimArray.cc
index f5b9595c791b49c933e37ea5f50650fa94524145..4d427318674cc98c1fb54e9702042aa7f1239539 100644
--- a/RTCP/Cobalt/CoInterface/test/tMultiDimArray.cc
+++ b/RTCP/Cobalt/CoInterface/test/tMultiDimArray.cc
@@ -8,10 +8,19 @@ using namespace boost;
 
 // A class that keeps track of the number of live objects.
 struct Object {
-  Object()  { val = nrObjects++; }
-  ~Object() { nrObjects--; }
+  Object()
+  {
+    val = nrObjects++;
+  }
+  ~Object()
+  {
+    nrObjects--;
+  }
 
-  bool operator==(const Object &other) const { return val == other.val; }
+  bool operator==(const Object &other) const
+  {
+    return val == other.val;
+  }
 
   static size_t nrObjects;
 
@@ -20,7 +29,8 @@ struct Object {
 
 size_t Object::nrObjects = 0;
 
-template<unsigned DIM> struct Tester {
+template<unsigned DIM>
+struct Tester {
   typedef MultiDimArray<Object,DIM> ArrayType;
   typedef typename ArrayType::ExtentList ExtentList;
 
@@ -31,7 +41,8 @@ template<unsigned DIM> struct Tester {
   void assert_live_elements(size_t n);
 };
 
-template<unsigned DIM> void Tester<DIM>::test(const Tester<DIM>::ExtentList &extents)
+template<unsigned DIM>
+void Tester<DIM>::test(const Tester<DIM>::ExtentList &extents)
 {
   size_t nrElements = ArrayType::nrElements(extents);
 
@@ -174,13 +185,15 @@ template<unsigned DIM> void Tester<DIM>::test(const Tester<DIM>::ExtentList &ext
   assert_live_elements(0);
 }
 
-template<unsigned DIM> void Tester<DIM>::half(Tester<DIM>::ExtentList &extents)
+template<unsigned DIM>
+void Tester<DIM>::half(Tester<DIM>::ExtentList &extents)
 {
   for (size_t i = 0; i < DIM; i++)
     extents.ranges_[i] = extents.ranges_[i].size() / 2;
 }
 
-template<unsigned DIM> void Tester<DIM>::assert_live_elements(size_t n)
+template<unsigned DIM>
+void Tester<DIM>::assert_live_elements(size_t n)
 {
   ASSERTSTR( Object::nrObjects == n, "Expected " << n << " live objects, but encountered " << Object::nrObjects );
 }
@@ -189,8 +202,16 @@ int main()
 {
   INIT_LOGGER("tMultiDimArray");
 
-  { Tester<1> tester; tester.test(extents[10]); }
-  { Tester<2> tester; tester.test(extents[10][10]); }
-  { Tester<3> tester; tester.test(extents[10][10][10]); }
-  { Tester<4> tester; tester.test(extents[10][10][10][10]); }
+  { Tester<1> tester;
+    tester.test(extents[10]);
+  }
+  { Tester<2> tester;
+    tester.test(extents[10][10]);
+  }
+  { Tester<3> tester;
+    tester.test(extents[10][10][10]);
+  }
+  { Tester<4> tester;
+    tester.test(extents[10][10][10][10]);
+  }
 }
diff --git a/RTCP/Cobalt/CoInterface/test/tRSPTimeStamp.cc b/RTCP/Cobalt/CoInterface/test/tRSPTimeStamp.cc
index 417ebf318e51b604536eb703b1841579d41b9deb..7ffd7bbc36c92c6bc06d3a9317f76c2d1f227302 100644
--- a/RTCP/Cobalt/CoInterface/test/tRSPTimeStamp.cc
+++ b/RTCP/Cobalt/CoInterface/test/tRSPTimeStamp.cc
@@ -30,7 +30,7 @@
 // start the test at INT32_MAX * SAMPLERATE
 #define TESTSTART static_cast<int64>(0x7fffffff * SAMPLERATE)
 // we don't want the test to take too long
-#define TESTEND   static_cast<int64>(0x7fffff00 * SAMPLERATE) 
+#define TESTEND   static_cast<int64>(0x7fffff00 * SAMPLERATE)
 
 using namespace LOFAR;
 using LOFAR::RTCP::TimeStamp;
diff --git a/RTCP/Cobalt/CoInterface/test/tSparseSet.cc b/RTCP/Cobalt/CoInterface/test/tSparseSet.cc
index d74fa2b27a20d1960a13e5e4db986fb2c469f9ad..fae82e572c9f546224e70c9773a2376ef96e4e11 100644
--- a/RTCP/Cobalt/CoInterface/test/tSparseSet.cc
+++ b/RTCP/Cobalt/CoInterface/test/tSparseSet.cc
@@ -7,7 +7,7 @@
 #include <iostream>
 
 
-#define BITSET_SIZE	4096
+#define BITSET_SIZE     4096
 
 
 using namespace LOFAR;
@@ -18,7 +18,7 @@ bool equal(const SparseSet<unsigned> &sset, const bitset<BITSET_SIZE> &bset)
   if (sset.count() != bset.count())
     return false;
 
-  for (unsigned i = 0; i < BITSET_SIZE; i ++)
+  for (unsigned i = 0; i < BITSET_SIZE; i++)
     if (sset.test(i) != bset.test(i))
       return false;
 
@@ -31,39 +31,39 @@ int main(void)
   //sset.include(7, 11).include(12, 15).include(17).include(20, 23);
   //std::cout << sset << '\n';
 
-  for (unsigned i = 0; i < 100; i ++) {
-    SparseSet<unsigned>	sset, sset_union;
+  for (unsigned i = 0; i < 100; i++) {
+    SparseSet<unsigned> sset, sset_union;
     bitset<BITSET_SIZE> bset, bset_union;
 
-    for (unsigned j = 0; j < 100; j ++) {
+    for (unsigned j = 0; j < 100; j++) {
       unsigned first = (unsigned) (drand48() * (BITSET_SIZE - 100));
-      unsigned last  = (unsigned) (drand48() * 100) + first + 1;
+      unsigned last = (unsigned) (drand48() * 100) + first + 1;
 
       if (drand48() > .4) {
-	sset.include(first, last);
+        sset.include(first, last);
 
-	for (unsigned k = first; k < last; k ++)
-	  bset.set(k);
+        for (unsigned k = first; k < last; k++)
+          bset.set(k);
       } else {
-	sset.exclude(first, last);
+        sset.exclude(first, last);
 
-	for (unsigned k = first; k < last; k ++)
-	  bset.reset(k);
+        for (unsigned k = first; k < last; k++)
+          bset.reset(k);
       }
 
       assert(equal(sset, bset));
 
       if (drand48() < .1) {
-	sset_union |= sset;
-	bset_union |= bset;
-	assert(equal(sset_union, bset_union));
-	sset.reset();
-	bset.reset();
+        sset_union |= sset;
+        bset_union |= bset;
+        assert(equal(sset_union, bset_union));
+        sset.reset();
+        bset.reset();
       }
     }
   }
 
-  for (int i = 0; i < 23; i ++) {
+  for (int i = 0; i < 23; i++) {
     {
       SparseSet<unsigned> sset;
       bitset<BITSET_SIZE> bset(0x00727780 >> i);
@@ -72,7 +72,8 @@ int main(void)
     }
     {
       SparseSet<unsigned> sset;
-      bitset<BITSET_SIZE> bset(0x00727780ULL); bset <<= i;
+      bitset<BITSET_SIZE> bset(0x00727780ULL);
+      bset <<= i;
       sset.include(7, 11).include(12, 15).include(17).include(20, 23) += i;
       assert(equal(sset, bset));
     }
diff --git a/RTCP/Cobalt/GPUProc/src/Align.h b/RTCP/Cobalt/GPUProc/src/Align.h
index 531bc0c8f80b9fab27f19460058c699d0da8a28c..abac27012a8fd678b672390201987dcd808c447c 100644
--- a/RTCP/Cobalt/GPUProc/src/Align.h
+++ b/RTCP/Cobalt/GPUProc/src/Align.h
@@ -1,20 +1,22 @@
 #if !defined ALIGN_H
 #define ALIGN_H
 
-template <typename T> inline static bool powerOfTwo(T n)
+template <typename T>
+inline static bool powerOfTwo(T n)
 {
   return (n | (n - 1)) == 2 * n - 1;
 }
 
 
-template <typename T> inline static T align(T value, size_t alignment)
+template <typename T>
+inline static T align(T value, size_t alignment)
 {
 #if defined __GNUC__
   if (__builtin_constant_p(alignment) && powerOfTwo(alignment))
     return (value + alignment - 1) & ~(alignment - 1);
   else
 #endif
-    return (value + alignment - 1) / alignment * alignment;
+  return (value + alignment - 1) / alignment * alignment;
 }
 
 #endif
diff --git a/RTCP/Cobalt/GPUProc/src/BandPass.cc b/RTCP/Cobalt/GPUProc/src/BandPass.cc
index 7bc74df48c65f75368fd401b8799ab6886d85721..32a9511329219a742e34917b38af81d94928cc28 100644
--- a/RTCP/Cobalt/GPUProc/src/BandPass.cc
+++ b/RTCP/Cobalt/GPUProc/src/BandPass.cc
@@ -16,70 +16,71 @@
 #include <complex>
 #include <vector>
 
-namespace BandPass {
+namespace BandPass
+{
 
 
-static const float stationFilterConstants[] =
-{
-     36,    36,    35,    35,    34,    33,    32,    31,
-     29,    28,    26,    25,    23,    21,    20,    18,
-     17,    15,    14,    12,    11,    10,     9,     9,
-      8,     8,     7,     7,     7,     7,     7,     7,
-      7,     7,     8,     8,     8,     9,     9,     9,
-     10,    10,    10,    10,    11,    11,    11,    11,
-     11,    11,    11,    11,    11,    11,    11,    11,
-     11,    11,    11,    11,    11,    11,    11,    11,
-     11,    11,    12,    12,    12,    12,    12,    12,
-     13,    13,    13,    13,    13,    13,    13,    13,
-     14,    14,    14,    14,    14,    14,    14,    14,
-     14,    14,    14,    14,    14,    14,    15,    15,
-     15,    15,    15,    15,    15,    15,    16,    16,
-     16,    16,    16,    16,    16,    17,    17,    17,
-     17,    17,    17,    17,    17,    17,    17,    18,
-     18,    18,    18,    18,    18,    18,    18,    18,
-     19,    19,    19,    19,    19,    19,    19,    20,
-     20,    20,    20,    20,    20,    20,    21,    21,
-     21,    21,    21,    21,    21,    21,    22,    22,
-     22,    22,    22,    22,    22,    22,    23,    23,
-     23,    23,    23,    23,    23,    24,    24,    24,
-     24,    24,    24,    25,    25,    25,    25,    25,
-     25,    26,    26,    26,    26,    26,    26,    26,
-     27,    27,    27,    27,    27,    27,    27,    28,
-     28,    28,    28,    28,    28,    29,    29,    29,
-     29,    29,    29,    30,    30,    30,    30,    30,
-     31,    31,    31,    31,    31,    31,    32,    32,
-     32,    32,    32,    32,    33,    33,    33,    33,
-     33,    33,    34,    34,    34,    34,    34,    35,
-     35,    35,    35,    35,    36,    36,    36,    36,
-     36,    37,    37,    37,    37,    37,    37,    38,
-     38,    38,    38,    38,    39,    39,    39,    39,
-     39,    40,    40,    40,    40,    40,    41,    41,
-     41,    41,    42,    42,    42,    42,    42,    43,
-     43,    43,    43,    43,    44,    44,    44,    44,
-     44,    45,    45,    45,    45,    46,    46,    46,
-     46,    46,    47,    47,    47,    47,    48,    48,
-     48,    48,    49,    49,    49,    49,    50,    50,
-     50,    50,    50,    51,    51,    51,    51,    52,
-     52,    52,    52,    53,    53,    53,    53,    54,
-     54,    54,    54,    55,    55,    55,    55,    56,
-     56,    56,    56,    57,    57,    57,    57,    58,
-     58,    58,    58,    59,    59,    59,    59,    60,
-     60,    60,    60,    61,    61,    61,    62,    62,
-     62,    62,    63,    63,    63,    63,    64,    64,
-     64,    65,    65,    65,    65,    66,    66,    66,
-     67,    67,    67,    67,    68,    68,    68,    69,
-     69,    69,    69,    70,    70,    70,    71,    71,
-     71,    71,    72,    72,    72,    73,    73,    73,
-     74,    74,    74,    74,    75,    75,    75,    76,
-     76,    76,    77,    77,    77,    77,    78,    78,
-     78,    79,    79,    79,    80,    80,    80,    81,
-     81,    81,    82,    82,    82,    83,    83,    83,
-     84,    84,    84,    85,    85,    85,    85,    86,
-     86,    86,    87,    87,    87,    88,    88,    88,
-     89,    89,    89,    90,    90,    90,    91,    91,
-     92,    92,    92,    93,    93,    93,    94,    94,
-     94,    95,    95,    95,    96,    96,    96,    97,
-     97,    97,    98,    98,    99,    99,    99,   100,
+  static const float stationFilterConstants[] =
+  {
+    36,    36,    35,    35,    34,    33,    32,    31,
+    29,    28,    26,    25,    23,    21,    20,    18,
+    17,    15,    14,    12,    11,    10,     9,     9,
+    8,     8,     7,     7,     7,     7,     7,     7,
+    7,     7,     8,     8,     8,     9,     9,     9,
+    10,    10,    10,    10,    11,    11,    11,    11,
+    11,    11,    11,    11,    11,    11,    11,    11,
+    11,    11,    11,    11,    11,    11,    11,    11,
+    11,    11,    12,    12,    12,    12,    12,    12,
+    13,    13,    13,    13,    13,    13,    13,    13,
+    14,    14,    14,    14,    14,    14,    14,    14,
+    14,    14,    14,    14,    14,    14,    15,    15,
+    15,    15,    15,    15,    15,    15,    16,    16,
+    16,    16,    16,    16,    16,    17,    17,    17,
+    17,    17,    17,    17,    17,    17,    17,    18,
+    18,    18,    18,    18,    18,    18,    18,    18,
+    19,    19,    19,    19,    19,    19,    19,    20,
+    20,    20,    20,    20,    20,    20,    21,    21,
+    21,    21,    21,    21,    21,    21,    22,    22,
+    22,    22,    22,    22,    22,    22,    23,    23,
+    23,    23,    23,    23,    23,    24,    24,    24,
+    24,    24,    24,    25,    25,    25,    25,    25,
+    25,    26,    26,    26,    26,    26,    26,    26,
+    27,    27,    27,    27,    27,    27,    27,    28,
+    28,    28,    28,    28,    28,    29,    29,    29,
+    29,    29,    29,    30,    30,    30,    30,    30,
+    31,    31,    31,    31,    31,    31,    32,    32,
+    32,    32,    32,    32,    33,    33,    33,    33,
+    33,    33,    34,    34,    34,    34,    34,    35,
+    35,    35,    35,    35,    36,    36,    36,    36,
+    36,    37,    37,    37,    37,    37,    37,    38,
+    38,    38,    38,    38,    39,    39,    39,    39,
+    39,    40,    40,    40,    40,    40,    41,    41,
+    41,    41,    42,    42,    42,    42,    42,    43,
+    43,    43,    43,    43,    44,    44,    44,    44,
+    44,    45,    45,    45,    45,    46,    46,    46,
+    46,    46,    47,    47,    47,    47,    48,    48,
+    48,    48,    49,    49,    49,    49,    50,    50,
+    50,    50,    50,    51,    51,    51,    51,    52,
+    52,    52,    52,    53,    53,    53,    53,    54,
+    54,    54,    54,    55,    55,    55,    55,    56,
+    56,    56,    56,    57,    57,    57,    57,    58,
+    58,    58,    58,    59,    59,    59,    59,    60,
+    60,    60,    60,    61,    61,    61,    62,    62,
+    62,    62,    63,    63,    63,    63,    64,    64,
+    64,    65,    65,    65,    65,    66,    66,    66,
+    67,    67,    67,    67,    68,    68,    68,    69,
+    69,    69,    69,    70,    70,    70,    71,    71,
+    71,    71,    72,    72,    72,    73,    73,    73,
+    74,    74,    74,    74,    75,    75,    75,    76,
+    76,    76,    77,    77,    77,    77,    78,    78,
+    78,    79,    79,    79,    80,    80,    80,    81,
+    81,    81,    82,    82,    82,    83,    83,    83,
+    84,    84,    84,    85,    85,    85,    85,    86,
+    86,    86,    87,    87,    87,    88,    88,    88,
+    89,    89,    89,    90,    90,    90,    91,    91,
+    92,    92,    92,    93,    93,    93,    94,    94,
+    94,    95,    95,    95,    96,    96,    96,    97,
+    97,    97,    98,    98,    99,    99,    99,   100,
     100,   100,   101,   101,   101,   102,   102,   103,
     103,   103,   104,   104,   104,   105,   105,   105,
     106,   106,   107,   107,   107,   108,   108,   108,
@@ -243,15 +244,15 @@ static const float stationFilterConstants[] =
     130,   129,   127,   126,   125,   123,   122,   121,
     119,   118,   116,   115,   114,   112,   111,   109,
     108,   107,   105,   104,   102,   101,   100,    98,
-     97,    95,    94,    93,    91,    90,    88,    87,
-     85,    84,    82,    81,    80,    78,    77,    75,
-     74,    72,    71,    69,    68,    66,    65,    64,
-     62,    61,    59,    58,    56,    55,    53,    52,
-     50,    49,    47,    46,    44,    43,    41,    40,
-     38,    37,    35,    34,    32,    30,    29,    27,
-     26,    24,    23,    21,    20,    18,    17,    15,
-     14,    12,    10,     9,     7,     6,     4,     3,
-      1,     0,    -2,    -4,    -5,    -7,    -8,   -10,
+    97,    95,    94,    93,    91,    90,    88,    87,
+    85,    84,    82,    81,    80,    78,    77,    75,
+    74,    72,    71,    69,    68,    66,    65,    64,
+    62,    61,    59,    58,    56,    55,    53,    52,
+    50,    49,    47,    46,    44,    43,    41,    40,
+    38,    37,    35,    34,    32,    30,    29,    27,
+    26,    24,    23,    21,    20,    18,    17,    15,
+    14,    12,    10,     9,     7,     6,     4,     3,
+    1,     0,    -2,    -4,    -5,    -7,    -8,   -10,
     -11,   -13,   -15,   -16,   -18,   -19,   -21,   -23,
     -24,   -26,   -27,   -29,   -31,   -32,   -34,   -35,
     -37,   -39,   -40,   -42,   -43,   -45,   -47,   -48,
@@ -259,150 +260,150 @@ static const float stationFilterConstants[] =
     -63,   -65,   -66,   -68,   -70,   -71,   -73,   -75,
     -76,   -78,   -80,   -81,   -83,   -84,   -86,   -88,
     -89,   -91,   -93,   -94,   -96,   -98,   -99,  -101,
-   -103,  -105,  -106,  -108,  -110,  -111,  -113,  -115,
-   -116,  -118,  -120,  -121,  -123,  -125,  -126,  -128,
-   -130,  -132,  -133,  -135,  -137,  -138,  -140,  -142,
-   -143,  -145,  -147,  -149,  -150,  -152,  -154,  -155,
-   -157,  -159,  -161,  -162,  -164,  -166,  -167,  -169,
-   -171,  -173,  -174,  -176,  -178,  -180,  -181,  -183,
-   -185,  -186,  -188,  -190,  -192,  -193,  -195,  -197,
-   -199,  -200,  -202,  -204,  -206,  -207,  -209,  -211,
-   -213,  -214,  -216,  -218,  -219,  -221,  -223,  -225,
-   -226,  -228,  -230,  -232,  -233,  -235,  -237,  -239,
-   -240,  -242,  -244,  -246,  -247,  -249,  -251,  -253,
-   -255,  -256,  -258,  -260,  -262,  -263,  -265,  -267,
-   -269,  -270,  -272,  -274,  -276,  -277,  -279,  -281,
-   -283,  -284,  -286,  -288,  -290,  -291,  -293,  -295,
-   -297,  -299,  -300,  -302,  -304,  -306,  -307,  -309,
-   -311,  -313,  -314,  -316,  -318,  -320,  -321,  -323,
-   -325,  -327,  -328,  -330,  -332,  -334,  -336,  -337,
-   -339,  -341,  -343,  -344,  -346,  -348,  -350,  -351,
-   -353,  -355,  -357,  -358,  -360,  -362,  -364,  -365,
-   -367,  -369,  -371,  -372,  -374,  -376,  -378,  -379,
-   -381,  -383,  -385,  -386,  -388,  -390,  -392,  -393,
-   -395,  -397,  -399,  -400,  -402,  -404,  -406,  -407,
-   -409,  -411,  -413,  -414,  -416,  -418,  -419,  -421,
-   -423,  -425,  -426,  -428,  -430,  -432,  -433,  -435,
-   -437,  -438,  -440,  -442,  -444,  -445,  -447,  -449,
-   -450,  -452,  -454,  -456,  -457,  -459,  -461,  -462,
-   -464,  -466,  -468,  -469,  -471,  -473,  -474,  -476,
-   -478,  -479,  -481,  -483,  -485,  -486,  -488,  -490,
-   -491,  -493,  -495,  -496,  -498,  -500,  -501,  -503,
-   -505,  -506,  -508,  -510,  -511,  -513,  -515,  -516,
-   -518,  -520,  -521,  -523,  -525,  -526,  -528,  -530,
-   -531,  -533,  -534,  -536,  -538,  -539,  -541,  -543,
-   -544,  -546,  -547,  -549,  -551,  -552,  -554,  -556,
-   -557,  -559,  -560,  -562,  -564,  -565,  -567,  -568,
-   -570,  -572,  -573,  -575,  -576,  -578,  -579,  -581,
-   -583,  -584,  -586,  -587,  -589,  -590,  -592,  -594,
-   -595,  -597,  -598,  -600,  -601,  -603,  -604,  -606,
-   -607,  -609,  -610,  -612,  -614,  -615,  -617,  -618,
-   -620,  -621,  -623,  -624,  -626,  -627,  -629,  -630,
-   -632,  -633,  -635,  -636,  -638,  -639,  -640,  -642,
-   -643,  -645,  -646,  -648,  -649,  -651,  -652,  -654,
-   -655,  -656,  -658,  -659,  -661,  -662,  -664,  -665,
-   -666,  -668,  -669,  -671,  -672,  -673,  -675,  -676,
-   -678,  -679,  -680,  -682,  -683,  -685,  -686,  -687,
-   -689,  -690,  -691,  -693,  -694,  -695,  -697,  -698,
-   -699,  -701,  -702,  -703,  -705,  -706,  -707,  -709,
-   -710,  -711,  -713,  -714,  -715,  -716,  -718,  -719,
-   -720,  -722,  -723,  -724,  -725,  -727,  -728,  -729,
-   -730,  -732,  -733,  -734,  -735,  -736,  -738,  -739,
-   -740,  -741,  -743,  -744,  -745,  -746,  -747,  -748,
-   -750,  -751,  -752,  -753,  -754,  -755,  -757,  -758,
-   -759,  -760,  -761,  -762,  -763,  -765,  -766,  -767,
-   -768,  -769,  -770,  -771,  -772,  -773,  -774,  -776,
-   -777,  -778,  -779,  -780,  -781,  -782,  -783,  -784,
-   -785,  -786,  -787,  -788,  -789,  -790,  -791,  -792,
-   -793,  -794,  -795,  -796,  -797,  -798,  -799,  -800,
-   -801,  -802,  -803,  -804,  -805,  -806,  -807,  -808,
-   -808,  -809,  -810,  -811,  -812,  -813,  -814,  -815,
-   -816,  -816,  -817,  -818,  -819,  -820,  -821,  -822,
-   -822,  -823,  -824,  -825,  -826,  -827,  -827,  -828,
-   -829,  -830,  -831,  -831,  -832,  -833,  -834,  -834,
-   -835,  -836,  -837,  -837,  -838,  -839,  -840,  -840,
-   -841,  -842,  -842,  -843,  -844,  -844,  -845,  -846,
-   -846,  -847,  -848,  -848,  -849,  -850,  -850,  -851,
-   -852,  -852,  -853,  -853,  -854,  -855,  -855,  -856,
-   -856,  -857,  -857,  -858,  -859,  -859,  -860,  -860,
-   -861,  -861,  -862,  -862,  -863,  -863,  -864,  -864,
-   -865,  -865,  -866,  -866,  -867,  -867,  -867,  -868,
-   -868,  -869,  -869,  -870,  -870,  -870,  -871,  -871,
-   -871,  -872,  -872,  -873,  -873,  -873,  -874,  -874,
-   -874,  -875,  -875,  -875,  -876,  -876,  -876,  -876,
-   -877,  -877,  -877,  -878,  -878,  -878,  -878,  -879,
-   -879,  -879,  -879,  -879,  -880,  -880,  -880,  -880,
-   -880,  -881,  -881,  -881,  -881,  -881,  -881,  -881,
-   -882,  -882,  -882,  -882,  -882,  -882,  -882,  -882,
-   -882,  -882,  -882,  -882,  -883,  -883,  -883,  -883,
-   -883,  -883,  -883,  -883,  -883,  -883,  -883,  -883,
-   -883,  -883,  -882,  -882,  -882,  -882,  -882,  -882,
-   -882,  -882,  -882,  -882,  -882,  -882,  -881,  -881,
-   -881,  -881,  -881,  -881,  -880,  -880,  -880,  -880,
-   -880,  -879,  -879,  -879,  -879,  -879,  -878,  -878,
-   -878,  -878,  -877,  -877,  -877,  -876,  -876,  -876,
-   -876,  -875,  -875,  -875,  -874,  -874,  -874,  -873,
-   -873,  -872,  -872,  -872,  -871,  -871,  -870,  -870,
-   -870,  -869,  -869,  -868,  -868,  -867,  -867,  -866,
-   -866,  -865,  -865,  -864,  -864,  -863,  -863,  -862,
-   -862,  -861,  -861,  -860,  -860,  -859,  -858,  -858,
-   -857,  -857,  -856,  -855,  -855,  -854,  -854,  -853,
-   -852,  -852,  -851,  -850,  -850,  -849,  -848,  -847,
-   -847,  -846,  -845,  -845,  -844,  -843,  -842,  -842,
-   -841,  -840,  -839,  -838,  -838,  -837,  -836,  -835,
-   -834,  -833,  -833,  -832,  -831,  -830,  -829,  -828,
-   -827,  -827,  -826,  -825,  -824,  -823,  -822,  -821,
-   -820,  -819,  -818,  -817,  -816,  -815,  -814,  -813,
-   -812,  -811,  -810,  -809,  -808,  -807,  -806,  -805,
-   -804,  -803,  -802,  -801,  -800,  -798,  -797,  -796,
-   -795,  -794,  -793,  -792,  -791,  -789,  -788,  -787,
-   -786,  -785,  -783,  -782,  -781,  -780,  -779,  -777,
-   -776,  -775,  -774,  -772,  -771,  -770,  -769,  -767,
-   -766,  -765,  -763,  -762,  -761,  -759,  -758,  -757,
-   -755,  -754,  -753,  -751,  -750,  -748,  -747,  -746,
-   -744,  -743,  -741,  -740,  -738,  -737,  -735,  -734,
-   -733,  -731,  -730,  -728,  -727,  -725,  -724,  -722,
-   -720,  -719,  -717,  -716,  -714,  -713,  -711,  -710,
-   -708,  -706,  -705,  -703,  -702,  -700,  -698,  -697,
-   -695,  -693,  -692,  -690,  -688,  -687,  -685,  -683,
-   -682,  -680,  -678,  -676,  -675,  -673,  -671,  -669,
-   -668,  -666,  -664,  -662,  -661,  -659,  -657,  -655,
-   -653,  -651,  -650,  -648,  -646,  -644,  -642,  -640,
-   -639,  -637,  -635,  -633,  -631,  -629,  -627,  -625,
-   -623,  -621,  -619,  -617,  -615,  -614,  -612,  -610,
-   -608,  -606,  -604,  -602,  -600,  -598,  -596,  -594,
-   -592,  -589,  -587,  -585,  -583,  -581,  -579,  -577,
-   -575,  -573,  -571,  -569,  -567,  -564,  -562,  -560,
-   -558,  -556,  -554,  -552,  -549,  -547,  -545,  -543,
-   -541,  -538,  -536,  -534,  -532,  -530,  -527,  -525,
-   -523,  -521,  -518,  -516,  -514,  -512,  -509,  -507,
-   -505,  -502,  -500,  -498,  -495,  -493,  -491,  -488,
-   -486,  -484,  -481,  -479,  -477,  -474,  -472,  -469,
-   -467,  -465,  -462,  -460,  -457,  -455,  -453,  -450,
-   -448,  -445,  -443,  -440,  -438,  -435,  -433,  -430,
-   -428,  -425,  -423,  -420,  -418,  -415,  -413,  -410,
-   -408,  -405,  -403,  -400,  -398,  -395,  -392,  -390,
-   -387,  -385,  -382,  -380,  -377,  -374,  -372,  -369,
-   -366,  -364,  -361,  -359,  -356,  -353,  -351,  -348,
-   -345,  -343,  -340,  -337,  -334,  -332,  -329,  -326,
-   -324,  -321,  -318,  -315,  -313,  -310,  -307,  -305,
-   -302,  -299,  -296,  -293,  -291,  -288,  -285,  -282,
-   -280,  -277,  -274,  -271,  -268,  -266,  -263,  -260,
-   -257,  -254,  -251,  -248,  -246,  -243,  -240,  -237,
-   -234,  -231,  -228,  -226,  -223,  -220,  -217,  -214,
-   -211,  -208,  -205,  -202,  -199,  -196,  -194,  -191,
-   -188,  -185,  -182,  -179,  -176,  -173,  -170,  -167,
-   -164,  -161,  -158,  -155,  -152,  -149,  -146,  -143,
-   -140,  -137,  -134,  -131,  -128,  -125,  -122,  -119,
-   -116,  -113,  -110,  -107,  -104,  -100,   -97,   -94,
+    -103,  -105,  -106,  -108,  -110,  -111,  -113,  -115,
+    -116,  -118,  -120,  -121,  -123,  -125,  -126,  -128,
+    -130,  -132,  -133,  -135,  -137,  -138,  -140,  -142,
+    -143,  -145,  -147,  -149,  -150,  -152,  -154,  -155,
+    -157,  -159,  -161,  -162,  -164,  -166,  -167,  -169,
+    -171,  -173,  -174,  -176,  -178,  -180,  -181,  -183,
+    -185,  -186,  -188,  -190,  -192,  -193,  -195,  -197,
+    -199,  -200,  -202,  -204,  -206,  -207,  -209,  -211,
+    -213,  -214,  -216,  -218,  -219,  -221,  -223,  -225,
+    -226,  -228,  -230,  -232,  -233,  -235,  -237,  -239,
+    -240,  -242,  -244,  -246,  -247,  -249,  -251,  -253,
+    -255,  -256,  -258,  -260,  -262,  -263,  -265,  -267,
+    -269,  -270,  -272,  -274,  -276,  -277,  -279,  -281,
+    -283,  -284,  -286,  -288,  -290,  -291,  -293,  -295,
+    -297,  -299,  -300,  -302,  -304,  -306,  -307,  -309,
+    -311,  -313,  -314,  -316,  -318,  -320,  -321,  -323,
+    -325,  -327,  -328,  -330,  -332,  -334,  -336,  -337,
+    -339,  -341,  -343,  -344,  -346,  -348,  -350,  -351,
+    -353,  -355,  -357,  -358,  -360,  -362,  -364,  -365,
+    -367,  -369,  -371,  -372,  -374,  -376,  -378,  -379,
+    -381,  -383,  -385,  -386,  -388,  -390,  -392,  -393,
+    -395,  -397,  -399,  -400,  -402,  -404,  -406,  -407,
+    -409,  -411,  -413,  -414,  -416,  -418,  -419,  -421,
+    -423,  -425,  -426,  -428,  -430,  -432,  -433,  -435,
+    -437,  -438,  -440,  -442,  -444,  -445,  -447,  -449,
+    -450,  -452,  -454,  -456,  -457,  -459,  -461,  -462,
+    -464,  -466,  -468,  -469,  -471,  -473,  -474,  -476,
+    -478,  -479,  -481,  -483,  -485,  -486,  -488,  -490,
+    -491,  -493,  -495,  -496,  -498,  -500,  -501,  -503,
+    -505,  -506,  -508,  -510,  -511,  -513,  -515,  -516,
+    -518,  -520,  -521,  -523,  -525,  -526,  -528,  -530,
+    -531,  -533,  -534,  -536,  -538,  -539,  -541,  -543,
+    -544,  -546,  -547,  -549,  -551,  -552,  -554,  -556,
+    -557,  -559,  -560,  -562,  -564,  -565,  -567,  -568,
+    -570,  -572,  -573,  -575,  -576,  -578,  -579,  -581,
+    -583,  -584,  -586,  -587,  -589,  -590,  -592,  -594,
+    -595,  -597,  -598,  -600,  -601,  -603,  -604,  -606,
+    -607,  -609,  -610,  -612,  -614,  -615,  -617,  -618,
+    -620,  -621,  -623,  -624,  -626,  -627,  -629,  -630,
+    -632,  -633,  -635,  -636,  -638,  -639,  -640,  -642,
+    -643,  -645,  -646,  -648,  -649,  -651,  -652,  -654,
+    -655,  -656,  -658,  -659,  -661,  -662,  -664,  -665,
+    -666,  -668,  -669,  -671,  -672,  -673,  -675,  -676,
+    -678,  -679,  -680,  -682,  -683,  -685,  -686,  -687,
+    -689,  -690,  -691,  -693,  -694,  -695,  -697,  -698,
+    -699,  -701,  -702,  -703,  -705,  -706,  -707,  -709,
+    -710,  -711,  -713,  -714,  -715,  -716,  -718,  -719,
+    -720,  -722,  -723,  -724,  -725,  -727,  -728,  -729,
+    -730,  -732,  -733,  -734,  -735,  -736,  -738,  -739,
+    -740,  -741,  -743,  -744,  -745,  -746,  -747,  -748,
+    -750,  -751,  -752,  -753,  -754,  -755,  -757,  -758,
+    -759,  -760,  -761,  -762,  -763,  -765,  -766,  -767,
+    -768,  -769,  -770,  -771,  -772,  -773,  -774,  -776,
+    -777,  -778,  -779,  -780,  -781,  -782,  -783,  -784,
+    -785,  -786,  -787,  -788,  -789,  -790,  -791,  -792,
+    -793,  -794,  -795,  -796,  -797,  -798,  -799,  -800,
+    -801,  -802,  -803,  -804,  -805,  -806,  -807,  -808,
+    -808,  -809,  -810,  -811,  -812,  -813,  -814,  -815,
+    -816,  -816,  -817,  -818,  -819,  -820,  -821,  -822,
+    -822,  -823,  -824,  -825,  -826,  -827,  -827,  -828,
+    -829,  -830,  -831,  -831,  -832,  -833,  -834,  -834,
+    -835,  -836,  -837,  -837,  -838,  -839,  -840,  -840,
+    -841,  -842,  -842,  -843,  -844,  -844,  -845,  -846,
+    -846,  -847,  -848,  -848,  -849,  -850,  -850,  -851,
+    -852,  -852,  -853,  -853,  -854,  -855,  -855,  -856,
+    -856,  -857,  -857,  -858,  -859,  -859,  -860,  -860,
+    -861,  -861,  -862,  -862,  -863,  -863,  -864,  -864,
+    -865,  -865,  -866,  -866,  -867,  -867,  -867,  -868,
+    -868,  -869,  -869,  -870,  -870,  -870,  -871,  -871,
+    -871,  -872,  -872,  -873,  -873,  -873,  -874,  -874,
+    -874,  -875,  -875,  -875,  -876,  -876,  -876,  -876,
+    -877,  -877,  -877,  -878,  -878,  -878,  -878,  -879,
+    -879,  -879,  -879,  -879,  -880,  -880,  -880,  -880,
+    -880,  -881,  -881,  -881,  -881,  -881,  -881,  -881,
+    -882,  -882,  -882,  -882,  -882,  -882,  -882,  -882,
+    -882,  -882,  -882,  -882,  -883,  -883,  -883,  -883,
+    -883,  -883,  -883,  -883,  -883,  -883,  -883,  -883,
+    -883,  -883,  -882,  -882,  -882,  -882,  -882,  -882,
+    -882,  -882,  -882,  -882,  -882,  -882,  -881,  -881,
+    -881,  -881,  -881,  -881,  -880,  -880,  -880,  -880,
+    -880,  -879,  -879,  -879,  -879,  -879,  -878,  -878,
+    -878,  -878,  -877,  -877,  -877,  -876,  -876,  -876,
+    -876,  -875,  -875,  -875,  -874,  -874,  -874,  -873,
+    -873,  -872,  -872,  -872,  -871,  -871,  -870,  -870,
+    -870,  -869,  -869,  -868,  -868,  -867,  -867,  -866,
+    -866,  -865,  -865,  -864,  -864,  -863,  -863,  -862,
+    -862,  -861,  -861,  -860,  -860,  -859,  -858,  -858,
+    -857,  -857,  -856,  -855,  -855,  -854,  -854,  -853,
+    -852,  -852,  -851,  -850,  -850,  -849,  -848,  -847,
+    -847,  -846,  -845,  -845,  -844,  -843,  -842,  -842,
+    -841,  -840,  -839,  -838,  -838,  -837,  -836,  -835,
+    -834,  -833,  -833,  -832,  -831,  -830,  -829,  -828,
+    -827,  -827,  -826,  -825,  -824,  -823,  -822,  -821,
+    -820,  -819,  -818,  -817,  -816,  -815,  -814,  -813,
+    -812,  -811,  -810,  -809,  -808,  -807,  -806,  -805,
+    -804,  -803,  -802,  -801,  -800,  -798,  -797,  -796,
+    -795,  -794,  -793,  -792,  -791,  -789,  -788,  -787,
+    -786,  -785,  -783,  -782,  -781,  -780,  -779,  -777,
+    -776,  -775,  -774,  -772,  -771,  -770,  -769,  -767,
+    -766,  -765,  -763,  -762,  -761,  -759,  -758,  -757,
+    -755,  -754,  -753,  -751,  -750,  -748,  -747,  -746,
+    -744,  -743,  -741,  -740,  -738,  -737,  -735,  -734,
+    -733,  -731,  -730,  -728,  -727,  -725,  -724,  -722,
+    -720,  -719,  -717,  -716,  -714,  -713,  -711,  -710,
+    -708,  -706,  -705,  -703,  -702,  -700,  -698,  -697,
+    -695,  -693,  -692,  -690,  -688,  -687,  -685,  -683,
+    -682,  -680,  -678,  -676,  -675,  -673,  -671,  -669,
+    -668,  -666,  -664,  -662,  -661,  -659,  -657,  -655,
+    -653,  -651,  -650,  -648,  -646,  -644,  -642,  -640,
+    -639,  -637,  -635,  -633,  -631,  -629,  -627,  -625,
+    -623,  -621,  -619,  -617,  -615,  -614,  -612,  -610,
+    -608,  -606,  -604,  -602,  -600,  -598,  -596,  -594,
+    -592,  -589,  -587,  -585,  -583,  -581,  -579,  -577,
+    -575,  -573,  -571,  -569,  -567,  -564,  -562,  -560,
+    -558,  -556,  -554,  -552,  -549,  -547,  -545,  -543,
+    -541,  -538,  -536,  -534,  -532,  -530,  -527,  -525,
+    -523,  -521,  -518,  -516,  -514,  -512,  -509,  -507,
+    -505,  -502,  -500,  -498,  -495,  -493,  -491,  -488,
+    -486,  -484,  -481,  -479,  -477,  -474,  -472,  -469,
+    -467,  -465,  -462,  -460,  -457,  -455,  -453,  -450,
+    -448,  -445,  -443,  -440,  -438,  -435,  -433,  -430,
+    -428,  -425,  -423,  -420,  -418,  -415,  -413,  -410,
+    -408,  -405,  -403,  -400,  -398,  -395,  -392,  -390,
+    -387,  -385,  -382,  -380,  -377,  -374,  -372,  -369,
+    -366,  -364,  -361,  -359,  -356,  -353,  -351,  -348,
+    -345,  -343,  -340,  -337,  -334,  -332,  -329,  -326,
+    -324,  -321,  -318,  -315,  -313,  -310,  -307,  -305,
+    -302,  -299,  -296,  -293,  -291,  -288,  -285,  -282,
+    -280,  -277,  -274,  -271,  -268,  -266,  -263,  -260,
+    -257,  -254,  -251,  -248,  -246,  -243,  -240,  -237,
+    -234,  -231,  -228,  -226,  -223,  -220,  -217,  -214,
+    -211,  -208,  -205,  -202,  -199,  -196,  -194,  -191,
+    -188,  -185,  -182,  -179,  -176,  -173,  -170,  -167,
+    -164,  -161,  -158,  -155,  -152,  -149,  -146,  -143,
+    -140,  -137,  -134,  -131,  -128,  -125,  -122,  -119,
+    -116,  -113,  -110,  -107,  -104,  -100,   -97,   -94,
     -91,   -88,   -85,   -82,   -79,   -76,   -73,   -70,
     -67,   -63,   -60,   -57,   -54,   -51,   -48,   -45,
     -42,   -39,   -35,   -32,   -29,   -26,   -23,   -20,
     -16,   -13,   -10,    -7,    -4,    -1,     2,     6,
-      9,    12,    15,    18,    22,    25,    28,    31,
-     34,    38,    41,    44,    47,    50,    54,    57,
-     60,    63,    67,    70,    73,    76,    79,    83,
-     86,    89,    92,    96,    99,   102,   105,   109,
+    9,    12,    15,    18,    22,    25,    28,    31,
+    34,    38,    41,    44,    47,    50,    54,    57,
+    60,    63,    67,    70,    73,    76,    79,    83,
+    86,    89,    92,    96,    99,   102,   105,   109,
     112,   115,   118,   122,   125,   128,   132,   135,
     138,   141,   145,   148,   151,   154,   158,   161,
     164,   168,   171,   174,   178,   181,   184,   187,
@@ -438,74 +439,74 @@ static const float stationFilterConstants[] =
     939,   942,   944,   947,   950,   953,   956,   959,
     961,   964,   967,   970,   973,   976,   978,   981,
     984,   987,   990,   992,   995,   998,  1001,  1003,
-   1006,  1009,  1012,  1014,  1017,  1020,  1022,  1025,
-   1028,  1030,  1033,  1036,  1038,  1041,  1044,  1046,
-   1049,  1052,  1054,  1057,  1060,  1062,  1065,  1067,
-   1070,  1073,  1075,  1078,  1080,  1083,  1085,  1088,
-   1090,  1093,  1095,  1098,  1100,  1103,  1105,  1108,
-   1110,  1113,  1115,  1118,  1120,  1123,  1125,  1128,
-   1130,  1132,  1135,  1137,  1140,  1142,  1144,  1147,
-   1149,  1151,  1154,  1156,  1158,  1161,  1163,  1165,
-   1168,  1170,  1172,  1174,  1177,  1179,  1181,  1183,
-   1186,  1188,  1190,  1192,  1195,  1197,  1199,  1201,
-   1203,  1205,  1208,  1210,  1212,  1214,  1216,  1218,
-   1220,  1222,  1224,  1227,  1229,  1231,  1233,  1235,
-   1237,  1239,  1241,  1243,  1245,  1247,  1249,  1251,
-   1253,  1255,  1257,  1258,  1260,  1262,  1264,  1266,
-   1268,  1270,  1272,  1274,  1275,  1277,  1279,  1281,
-   1283,  1284,  1286,  1288,  1290,  1292,  1293,  1295,
-   1297,  1299,  1300,  1302,  1304,  1305,  1307,  1309,
-   1310,  1312,  1314,  1315,  1317,  1318,  1320,  1322,
-   1323,  1325,  1326,  1328,  1329,  1331,  1332,  1334,
-   1335,  1337,  1338,  1340,  1341,  1343,  1344,  1346,
-   1347,  1348,  1350,  1351,  1353,  1354,  1355,  1357,
-   1358,  1359,  1361,  1362,  1363,  1364,  1366,  1367,
-   1368,  1369,  1371,  1372,  1373,  1374,  1375,  1377,
-   1378,  1379,  1380,  1381,  1382,  1383,  1384,  1386,
-   1387,  1388,  1389,  1390,  1391,  1392,  1393,  1394,
-   1395,  1396,  1397,  1398,  1399,  1400,  1400,  1401,
-   1402,  1403,  1404,  1405,  1406,  1406,  1407,  1408,
-   1409,  1410,  1410,  1411,  1412,  1413,  1413,  1414,
-   1415,  1416,  1416,  1417,  1418,  1418,  1419,  1420,
-   1420,  1421,  1421,  1422,  1422,  1423,  1424,  1424,
-   1425,  1425,  1426,  1426,  1427,  1427,  1427,  1428,
-   1428,  1429,  1429,  1429,  1430,  1430,  1431,  1431,
-   1431,  1432,  1432,  1432,  1432,  1433,  1433,  1433,
-   1433,  1434,  1434,  1434,  1434,  1434,  1434,  1435,
-   1435,  1435,  1435,  1435,  1435,  1435,  1435,  1435,
-   1435,  1435,  1435,  1435,  1435,  1435,  1435,  1435,
-   1435,  1435,  1435,  1435,  1435,  1434,  1434,  1434,
-   1434,  1434,  1434,  1433,  1433,  1433,  1433,  1432,
-   1432,  1432,  1432,  1431,  1431,  1431,  1430,  1430,
-   1429,  1429,  1429,  1428,  1428,  1427,  1427,  1426,
-   1426,  1425,  1425,  1424,  1424,  1423,  1423,  1422,
-   1422,  1421,  1420,  1420,  1419,  1419,  1418,  1417,
-   1416,  1416,  1415,  1414,  1414,  1413,  1412,  1411,
-   1410,  1410,  1409,  1408,  1407,  1406,  1405,  1405,
-   1404,  1403,  1402,  1401,  1400,  1399,  1398,  1397,
-   1396,  1395,  1394,  1393,  1392,  1391,  1390,  1389,
-   1387,  1386,  1385,  1384,  1383,  1382,  1380,  1379,
-   1378,  1377,  1376,  1374,  1373,  1372,  1370,  1369,
-   1368,  1367,  1365,  1364,  1362,  1361,  1360,  1358,
-   1357,  1355,  1354,  1352,  1351,  1349,  1348,  1346,
-   1345,  1343,  1342,  1340,  1339,  1337,  1335,  1334,
-   1332,  1330,  1329,  1327,  1325,  1324,  1322,  1320,
-   1319,  1317,  1315,  1313,  1311,  1310,  1308,  1306,
-   1304,  1302,  1300,  1298,  1297,  1295,  1293,  1291,
-   1289,  1287,  1285,  1283,  1281,  1279,  1277,  1275,
-   1273,  1271,  1268,  1266,  1264,  1262,  1260,  1258,
-   1256,  1253,  1251,  1249,  1247,  1245,  1242,  1240,
-   1238,  1236,  1233,  1231,  1229,  1226,  1224,  1222,
-   1219,  1217,  1214,  1212,  1210,  1207,  1205,  1202,
-   1200,  1197,  1195,  1192,  1190,  1187,  1185,  1182,
-   1179,  1177,  1174,  1172,  1169,  1166,  1164,  1161,
-   1158,  1156,  1153,  1150,  1148,  1145,  1142,  1139,
-   1136,  1134,  1131,  1128,  1125,  1122,  1119,  1117,
-   1114,  1111,  1108,  1105,  1102,  1099,  1096,  1093,
-   1090,  1087,  1084,  1081,  1078,  1075,  1072,  1069,
-   1066,  1063,  1060,  1057,  1053,  1050,  1047,  1044,
-   1041,  1038,  1034,  1031,  1028,  1025,  1021,  1018,
-   1015,  1012,  1008,  1005,  1002,   998,   995,   992,
+    1006,  1009,  1012,  1014,  1017,  1020,  1022,  1025,
+    1028,  1030,  1033,  1036,  1038,  1041,  1044,  1046,
+    1049,  1052,  1054,  1057,  1060,  1062,  1065,  1067,
+    1070,  1073,  1075,  1078,  1080,  1083,  1085,  1088,
+    1090,  1093,  1095,  1098,  1100,  1103,  1105,  1108,
+    1110,  1113,  1115,  1118,  1120,  1123,  1125,  1128,
+    1130,  1132,  1135,  1137,  1140,  1142,  1144,  1147,
+    1149,  1151,  1154,  1156,  1158,  1161,  1163,  1165,
+    1168,  1170,  1172,  1174,  1177,  1179,  1181,  1183,
+    1186,  1188,  1190,  1192,  1195,  1197,  1199,  1201,
+    1203,  1205,  1208,  1210,  1212,  1214,  1216,  1218,
+    1220,  1222,  1224,  1227,  1229,  1231,  1233,  1235,
+    1237,  1239,  1241,  1243,  1245,  1247,  1249,  1251,
+    1253,  1255,  1257,  1258,  1260,  1262,  1264,  1266,
+    1268,  1270,  1272,  1274,  1275,  1277,  1279,  1281,
+    1283,  1284,  1286,  1288,  1290,  1292,  1293,  1295,
+    1297,  1299,  1300,  1302,  1304,  1305,  1307,  1309,
+    1310,  1312,  1314,  1315,  1317,  1318,  1320,  1322,
+    1323,  1325,  1326,  1328,  1329,  1331,  1332,  1334,
+    1335,  1337,  1338,  1340,  1341,  1343,  1344,  1346,
+    1347,  1348,  1350,  1351,  1353,  1354,  1355,  1357,
+    1358,  1359,  1361,  1362,  1363,  1364,  1366,  1367,
+    1368,  1369,  1371,  1372,  1373,  1374,  1375,  1377,
+    1378,  1379,  1380,  1381,  1382,  1383,  1384,  1386,
+    1387,  1388,  1389,  1390,  1391,  1392,  1393,  1394,
+    1395,  1396,  1397,  1398,  1399,  1400,  1400,  1401,
+    1402,  1403,  1404,  1405,  1406,  1406,  1407,  1408,
+    1409,  1410,  1410,  1411,  1412,  1413,  1413,  1414,
+    1415,  1416,  1416,  1417,  1418,  1418,  1419,  1420,
+    1420,  1421,  1421,  1422,  1422,  1423,  1424,  1424,
+    1425,  1425,  1426,  1426,  1427,  1427,  1427,  1428,
+    1428,  1429,  1429,  1429,  1430,  1430,  1431,  1431,
+    1431,  1432,  1432,  1432,  1432,  1433,  1433,  1433,
+    1433,  1434,  1434,  1434,  1434,  1434,  1434,  1435,
+    1435,  1435,  1435,  1435,  1435,  1435,  1435,  1435,
+    1435,  1435,  1435,  1435,  1435,  1435,  1435,  1435,
+    1435,  1435,  1435,  1435,  1435,  1434,  1434,  1434,
+    1434,  1434,  1434,  1433,  1433,  1433,  1433,  1432,
+    1432,  1432,  1432,  1431,  1431,  1431,  1430,  1430,
+    1429,  1429,  1429,  1428,  1428,  1427,  1427,  1426,
+    1426,  1425,  1425,  1424,  1424,  1423,  1423,  1422,
+    1422,  1421,  1420,  1420,  1419,  1419,  1418,  1417,
+    1416,  1416,  1415,  1414,  1414,  1413,  1412,  1411,
+    1410,  1410,  1409,  1408,  1407,  1406,  1405,  1405,
+    1404,  1403,  1402,  1401,  1400,  1399,  1398,  1397,
+    1396,  1395,  1394,  1393,  1392,  1391,  1390,  1389,
+    1387,  1386,  1385,  1384,  1383,  1382,  1380,  1379,
+    1378,  1377,  1376,  1374,  1373,  1372,  1370,  1369,
+    1368,  1367,  1365,  1364,  1362,  1361,  1360,  1358,
+    1357,  1355,  1354,  1352,  1351,  1349,  1348,  1346,
+    1345,  1343,  1342,  1340,  1339,  1337,  1335,  1334,
+    1332,  1330,  1329,  1327,  1325,  1324,  1322,  1320,
+    1319,  1317,  1315,  1313,  1311,  1310,  1308,  1306,
+    1304,  1302,  1300,  1298,  1297,  1295,  1293,  1291,
+    1289,  1287,  1285,  1283,  1281,  1279,  1277,  1275,
+    1273,  1271,  1268,  1266,  1264,  1262,  1260,  1258,
+    1256,  1253,  1251,  1249,  1247,  1245,  1242,  1240,
+    1238,  1236,  1233,  1231,  1229,  1226,  1224,  1222,
+    1219,  1217,  1214,  1212,  1210,  1207,  1205,  1202,
+    1200,  1197,  1195,  1192,  1190,  1187,  1185,  1182,
+    1179,  1177,  1174,  1172,  1169,  1166,  1164,  1161,
+    1158,  1156,  1153,  1150,  1148,  1145,  1142,  1139,
+    1136,  1134,  1131,  1128,  1125,  1122,  1119,  1117,
+    1114,  1111,  1108,  1105,  1102,  1099,  1096,  1093,
+    1090,  1087,  1084,  1081,  1078,  1075,  1072,  1069,
+    1066,  1063,  1060,  1057,  1053,  1050,  1047,  1044,
+    1041,  1038,  1034,  1031,  1028,  1025,  1021,  1018,
+    1015,  1012,  1008,  1005,  1002,   998,   995,   992,
     988,   985,   981,   978,   975,   971,   968,   964,
     961,   957,   954,   950,   947,   943,   940,   936,
     933,   929,   926,   922,   918,   915,   911,   908,
@@ -532,140 +533,140 @@ static const float stationFilterConstants[] =
     193,   187,   182,   177,   172,   167,   162,   157,
     152,   146,   141,   136,   131,   126,   121,   115,
     110,   105,   100,    95,    89,    84,    79,    74,
-     68,    63,    58,    53,    47,    42,    37,    32,
-     26,    21,    16,    10,     5,     0,    -5,   -11,
+    68,    63,    58,    53,    47,    42,    37,    32,
+    26,    21,    16,    10,     5,     0,    -5,   -11,
     -16,   -21,   -27,   -32,   -37,   -43,   -48,   -53,
     -59,   -64,   -70,   -75,   -80,   -86,   -91,   -96,
-   -102,  -107,  -113,  -118,  -123,  -129,  -134,  -140,
-   -145,  -150,  -156,  -161,  -167,  -172,  -178,  -183,
-   -188,  -194,  -199,  -205,  -210,  -216,  -221,  -227,
-   -232,  -238,  -243,  -248,  -254,  -259,  -265,  -270,
-   -276,  -281,  -287,  -292,  -298,  -303,  -309,  -314,
-   -320,  -325,  -331,  -336,  -342,  -347,  -353,  -358,
-   -364,  -369,  -375,  -381,  -386,  -392,  -397,  -403,
-   -408,  -414,  -419,  -425,  -430,  -436,  -441,  -447,
-   -452,  -458,  -464,  -469,  -475,  -480,  -486,  -491,
-   -497,  -502,  -508,  -513,  -519,  -524,  -530,  -536,
-   -541,  -547,  -552,  -558,  -563,  -569,  -574,  -580,
-   -585,  -591,  -597,  -602,  -608,  -613,  -619,  -624,
-   -630,  -635,  -641,  -646,  -652,  -658,  -663,  -669,
-   -674,  -680,  -685,  -691,  -696,  -702,  -707,  -713,
-   -718,  -724,  -729,  -735,  -740,  -746,  -751,  -757,
-   -762,  -768,  -773,  -779,  -784,  -790,  -795,  -801,
-   -806,  -812,  -817,  -823,  -828,  -834,  -839,  -845,
-   -850,  -856,  -861,  -867,  -872,  -877,  -883,  -888,
-   -894,  -899,  -905,  -910,  -916,  -921,  -926,  -932,
-   -937,  -943,  -948,  -953,  -959,  -964,  -970,  -975,
-   -980,  -986,  -991,  -997, -1002, -1007, -1013, -1018,
-  -1023, -1029, -1034, -1039, -1045, -1050, -1055, -1061,
-  -1066, -1071, -1077, -1082, -1087, -1092, -1098, -1103,
-  -1108, -1114, -1119, -1124, -1129, -1135, -1140, -1145,
-  -1150, -1155, -1161, -1166, -1171, -1176, -1181, -1187,
-  -1192, -1197, -1202, -1207, -1212, -1218, -1223, -1228,
-  -1233, -1238, -1243, -1248, -1253, -1258, -1264, -1269,
-  -1274, -1279, -1284, -1289, -1294, -1299, -1304, -1309,
-  -1314, -1319, -1324, -1329, -1334, -1339, -1344, -1349,
-  -1354, -1359, -1364, -1369, -1374, -1378, -1383, -1388,
-  -1393, -1398, -1403, -1408, -1413, -1417, -1422, -1427,
-  -1432, -1437, -1441, -1446, -1451, -1456, -1461, -1465,
-  -1470, -1475, -1480, -1484, -1489, -1494, -1498, -1503,
-  -1508, -1512, -1517, -1522, -1526, -1531, -1535, -1540,
-  -1545, -1549, -1554, -1558, -1563, -1567, -1572, -1577,
-  -1581, -1586, -1590, -1594, -1599, -1603, -1608, -1612,
-  -1617, -1621, -1625, -1630, -1634, -1639, -1643, -1647,
-  -1652, -1656, -1660, -1665, -1669, -1673, -1677, -1682,
-  -1686, -1690, -1694, -1699, -1703, -1707, -1711, -1715,
-  -1719, -1724, -1728, -1732, -1736, -1740, -1744, -1748,
-  -1752, -1756, -1760, -1764, -1768, -1772, -1776, -1780,
-  -1784, -1788, -1792, -1796, -1800, -1804, -1807, -1811,
-  -1815, -1819, -1823, -1827, -1830, -1834, -1838, -1842,
-  -1845, -1849, -1853, -1857, -1860, -1864, -1868, -1871,
-  -1875, -1878, -1882, -1886, -1889, -1893, -1896, -1900,
-  -1903, -1907, -1910, -1914, -1917, -1921, -1924, -1927,
-  -1931, -1934, -1938, -1941, -1944, -1948, -1951, -1954,
-  -1957, -1961, -1964, -1967, -1970, -1974, -1977, -1980,
-  -1983, -1986, -1989, -1992, -1996, -1999, -2002, -2005,
-  -2008, -2011, -2014, -2017, -2020, -2023, -2026, -2029,
-  -2031, -2034, -2037, -2040, -2043, -2046, -2049, -2051,
-  -2054, -2057, -2060, -2062, -2065, -2068, -2070, -2073,
-  -2076, -2078, -2081, -2083, -2086, -2089, -2091, -2094,
-  -2096, -2099, -2101, -2104, -2106, -2108, -2111, -2113,
-  -2116, -2118, -2120, -2122, -2125, -2127, -2129, -2132,
-  -2134, -2136, -2138, -2140, -2142, -2145, -2147, -2149,
-  -2151, -2153, -2155, -2157, -2159, -2161, -2163, -2165,
-  -2167, -2169, -2171, -2173, -2174, -2176, -2178, -2180,
-  -2182, -2184, -2185, -2187, -2189, -2190, -2192, -2194,
-  -2195, -2197, -2199, -2200, -2202, -2203, -2205, -2206,
-  -2208, -2209, -2211, -2212, -2214, -2215, -2216, -2218,
-  -2219, -2220, -2222, -2223, -2224, -2225, -2227, -2228,
-  -2229, -2230, -2231, -2232, -2233, -2235, -2236, -2237,
-  -2238, -2239, -2240, -2241, -2242, -2242, -2243, -2244,
-  -2245, -2246, -2247, -2248, -2248, -2249, -2250, -2251,
-  -2251, -2252, -2253, -2253, -2254, -2254, -2255, -2256,
-  -2256, -2257, -2257, -2258, -2258, -2259, -2259, -2259,
-  -2260, -2260, -2260, -2261, -2261, -2261, -2261, -2262,
-  -2262, -2262, -2262, -2262, -2263, -2263, -2263, -2263,
-  -2263, -2263, -2263, -2263, -2263, -2263, -2263, -2263,
-  -2262, -2262, -2262, -2262, -2262, -2261, -2261, -2261,
-  -2261, -2260, -2260, -2260, -2259, -2259, -2258, -2258,
-  -2257, -2257, -2256, -2256, -2255, -2255, -2254, -2254,
-  -2253, -2252, -2252, -2251, -2250, -2249, -2249, -2248,
-  -2247, -2246, -2245, -2244, -2244, -2243, -2242, -2241,
-  -2240, -2239, -2238, -2237, -2236, -2234, -2233, -2232,
-  -2231, -2230, -2229, -2227, -2226, -2225, -2224, -2222,
-  -2221, -2220, -2218, -2217, -2215, -2214, -2212, -2211,
-  -2209, -2208, -2206, -2205, -2203, -2202, -2200, -2198,
-  -2197, -2195, -2193, -2191, -2190, -2188, -2186, -2184,
-  -2182, -2180, -2179, -2177, -2175, -2173, -2171, -2169,
-  -2167, -2165, -2162, -2160, -2158, -2156, -2154, -2152,
-  -2150, -2147, -2145, -2143, -2140, -2138, -2136, -2133,
-  -2131, -2129, -2126, -2124, -2121, -2119, -2116, -2114,
-  -2111, -2108, -2106, -2103, -2101, -2098, -2095, -2092,
-  -2090, -2087, -2084, -2081, -2079, -2076, -2073, -2070,
-  -2067, -2064, -2061, -2058, -2055, -2052, -2049, -2046,
-  -2043, -2040, -2037, -2033, -2030, -2027, -2024, -2021,
-  -2017, -2014, -2011, -2007, -2004, -2001, -1997, -1994,
-  -1990, -1987, -1983, -1980, -1976, -1973, -1969, -1966,
-  -1962, -1958, -1955, -1951, -1947, -1944, -1940, -1936,
-  -1932, -1928, -1925, -1921, -1917, -1913, -1909, -1905,
-  -1901, -1897, -1893, -1889, -1885, -1881, -1877, -1873,
-  -1869, -1864, -1860, -1856, -1852, -1848, -1843, -1839,
-  -1835, -1830, -1826, -1822, -1817, -1813, -1809, -1804,
-  -1800, -1795, -1791, -1786, -1782, -1777, -1772, -1768,
-  -1763, -1758, -1754, -1749, -1744, -1740, -1735, -1730,
-  -1725, -1720, -1716, -1711, -1706, -1701, -1696, -1691,
-  -1686, -1681, -1676, -1671, -1666, -1661, -1656, -1651,
-  -1646, -1640, -1635, -1630, -1625, -1620, -1614, -1609,
-  -1604, -1599, -1593, -1588, -1582, -1577, -1572, -1566,
-  -1561, -1555, -1550, -1544, -1539, -1533, -1528, -1522,
-  -1516, -1511, -1505, -1500, -1494, -1488, -1482, -1477,
-  -1471, -1465, -1459, -1454, -1448, -1442, -1436, -1430,
-  -1424, -1418, -1412, -1406, -1400, -1394, -1388, -1382,
-  -1376, -1370, -1364, -1358, -1352, -1346, -1339, -1333,
-  -1327, -1321, -1315, -1308, -1302, -1296, -1289, -1283,
-  -1277, -1270, -1264, -1258, -1251, -1245, -1238, -1232,
-  -1225, -1219, -1212, -1206, -1199, -1193, -1186, -1179,
-  -1173, -1166, -1159, -1153, -1146, -1139, -1133, -1126,
-  -1119, -1112, -1105, -1099, -1092, -1085, -1078, -1071,
-  -1064, -1057, -1050, -1044, -1037, -1030, -1023, -1016,
-  -1009, -1001,  -994,  -987,  -980,  -973,  -966,  -959,
-   -952,  -945,  -937,  -930,  -923,  -916,  -908,  -901,
-   -894,  -887,  -879,  -872,  -865,  -857,  -850,  -842,
-   -835,  -828,  -820,  -813,  -805,  -798,  -790,  -783,
-   -775,  -768,  -760,  -753,  -745,  -738,  -730,  -722,
-   -715,  -707,  -699,  -692,  -684,  -676,  -669,  -661,
-   -653,  -645,  -638,  -630,  -622,  -614,  -606,  -599,
-   -591,  -583,  -575,  -567,  -559,  -551,  -543,  -536,
-   -528,  -520,  -512,  -504,  -496,  -488,  -480,  -472,
-   -464,  -456,  -447,  -439,  -431,  -423,  -415,  -407,
-   -399,  -391,  -382,  -374,  -366,  -358,  -350,  -342,
-   -333,  -325,  -317,  -309,  -300,  -292,  -284,  -275,
-   -267,  -259,  -250,  -242,  -234,  -225,  -217,  -209,
-   -200,  -192,  -183,  -175,  -167,  -158,  -150,  -141,
-   -133,  -124,  -116,  -107,   -99,   -90,   -82,   -73,
+    -102,  -107,  -113,  -118,  -123,  -129,  -134,  -140,
+    -145,  -150,  -156,  -161,  -167,  -172,  -178,  -183,
+    -188,  -194,  -199,  -205,  -210,  -216,  -221,  -227,
+    -232,  -238,  -243,  -248,  -254,  -259,  -265,  -270,
+    -276,  -281,  -287,  -292,  -298,  -303,  -309,  -314,
+    -320,  -325,  -331,  -336,  -342,  -347,  -353,  -358,
+    -364,  -369,  -375,  -381,  -386,  -392,  -397,  -403,
+    -408,  -414,  -419,  -425,  -430,  -436,  -441,  -447,
+    -452,  -458,  -464,  -469,  -475,  -480,  -486,  -491,
+    -497,  -502,  -508,  -513,  -519,  -524,  -530,  -536,
+    -541,  -547,  -552,  -558,  -563,  -569,  -574,  -580,
+    -585,  -591,  -597,  -602,  -608,  -613,  -619,  -624,
+    -630,  -635,  -641,  -646,  -652,  -658,  -663,  -669,
+    -674,  -680,  -685,  -691,  -696,  -702,  -707,  -713,
+    -718,  -724,  -729,  -735,  -740,  -746,  -751,  -757,
+    -762,  -768,  -773,  -779,  -784,  -790,  -795,  -801,
+    -806,  -812,  -817,  -823,  -828,  -834,  -839,  -845,
+    -850,  -856,  -861,  -867,  -872,  -877,  -883,  -888,
+    -894,  -899,  -905,  -910,  -916,  -921,  -926,  -932,
+    -937,  -943,  -948,  -953,  -959,  -964,  -970,  -975,
+    -980,  -986,  -991,  -997, -1002, -1007, -1013, -1018,
+    -1023, -1029, -1034, -1039, -1045, -1050, -1055, -1061,
+    -1066, -1071, -1077, -1082, -1087, -1092, -1098, -1103,
+    -1108, -1114, -1119, -1124, -1129, -1135, -1140, -1145,
+    -1150, -1155, -1161, -1166, -1171, -1176, -1181, -1187,
+    -1192, -1197, -1202, -1207, -1212, -1218, -1223, -1228,
+    -1233, -1238, -1243, -1248, -1253, -1258, -1264, -1269,
+    -1274, -1279, -1284, -1289, -1294, -1299, -1304, -1309,
+    -1314, -1319, -1324, -1329, -1334, -1339, -1344, -1349,
+    -1354, -1359, -1364, -1369, -1374, -1378, -1383, -1388,
+    -1393, -1398, -1403, -1408, -1413, -1417, -1422, -1427,
+    -1432, -1437, -1441, -1446, -1451, -1456, -1461, -1465,
+    -1470, -1475, -1480, -1484, -1489, -1494, -1498, -1503,
+    -1508, -1512, -1517, -1522, -1526, -1531, -1535, -1540,
+    -1545, -1549, -1554, -1558, -1563, -1567, -1572, -1577,
+    -1581, -1586, -1590, -1594, -1599, -1603, -1608, -1612,
+    -1617, -1621, -1625, -1630, -1634, -1639, -1643, -1647,
+    -1652, -1656, -1660, -1665, -1669, -1673, -1677, -1682,
+    -1686, -1690, -1694, -1699, -1703, -1707, -1711, -1715,
+    -1719, -1724, -1728, -1732, -1736, -1740, -1744, -1748,
+    -1752, -1756, -1760, -1764, -1768, -1772, -1776, -1780,
+    -1784, -1788, -1792, -1796, -1800, -1804, -1807, -1811,
+    -1815, -1819, -1823, -1827, -1830, -1834, -1838, -1842,
+    -1845, -1849, -1853, -1857, -1860, -1864, -1868, -1871,
+    -1875, -1878, -1882, -1886, -1889, -1893, -1896, -1900,
+    -1903, -1907, -1910, -1914, -1917, -1921, -1924, -1927,
+    -1931, -1934, -1938, -1941, -1944, -1948, -1951, -1954,
+    -1957, -1961, -1964, -1967, -1970, -1974, -1977, -1980,
+    -1983, -1986, -1989, -1992, -1996, -1999, -2002, -2005,
+    -2008, -2011, -2014, -2017, -2020, -2023, -2026, -2029,
+    -2031, -2034, -2037, -2040, -2043, -2046, -2049, -2051,
+    -2054, -2057, -2060, -2062, -2065, -2068, -2070, -2073,
+    -2076, -2078, -2081, -2083, -2086, -2089, -2091, -2094,
+    -2096, -2099, -2101, -2104, -2106, -2108, -2111, -2113,
+    -2116, -2118, -2120, -2122, -2125, -2127, -2129, -2132,
+    -2134, -2136, -2138, -2140, -2142, -2145, -2147, -2149,
+    -2151, -2153, -2155, -2157, -2159, -2161, -2163, -2165,
+    -2167, -2169, -2171, -2173, -2174, -2176, -2178, -2180,
+    -2182, -2184, -2185, -2187, -2189, -2190, -2192, -2194,
+    -2195, -2197, -2199, -2200, -2202, -2203, -2205, -2206,
+    -2208, -2209, -2211, -2212, -2214, -2215, -2216, -2218,
+    -2219, -2220, -2222, -2223, -2224, -2225, -2227, -2228,
+    -2229, -2230, -2231, -2232, -2233, -2235, -2236, -2237,
+    -2238, -2239, -2240, -2241, -2242, -2242, -2243, -2244,
+    -2245, -2246, -2247, -2248, -2248, -2249, -2250, -2251,
+    -2251, -2252, -2253, -2253, -2254, -2254, -2255, -2256,
+    -2256, -2257, -2257, -2258, -2258, -2259, -2259, -2259,
+    -2260, -2260, -2260, -2261, -2261, -2261, -2261, -2262,
+    -2262, -2262, -2262, -2262, -2263, -2263, -2263, -2263,
+    -2263, -2263, -2263, -2263, -2263, -2263, -2263, -2263,
+    -2262, -2262, -2262, -2262, -2262, -2261, -2261, -2261,
+    -2261, -2260, -2260, -2260, -2259, -2259, -2258, -2258,
+    -2257, -2257, -2256, -2256, -2255, -2255, -2254, -2254,
+    -2253, -2252, -2252, -2251, -2250, -2249, -2249, -2248,
+    -2247, -2246, -2245, -2244, -2244, -2243, -2242, -2241,
+    -2240, -2239, -2238, -2237, -2236, -2234, -2233, -2232,
+    -2231, -2230, -2229, -2227, -2226, -2225, -2224, -2222,
+    -2221, -2220, -2218, -2217, -2215, -2214, -2212, -2211,
+    -2209, -2208, -2206, -2205, -2203, -2202, -2200, -2198,
+    -2197, -2195, -2193, -2191, -2190, -2188, -2186, -2184,
+    -2182, -2180, -2179, -2177, -2175, -2173, -2171, -2169,
+    -2167, -2165, -2162, -2160, -2158, -2156, -2154, -2152,
+    -2150, -2147, -2145, -2143, -2140, -2138, -2136, -2133,
+    -2131, -2129, -2126, -2124, -2121, -2119, -2116, -2114,
+    -2111, -2108, -2106, -2103, -2101, -2098, -2095, -2092,
+    -2090, -2087, -2084, -2081, -2079, -2076, -2073, -2070,
+    -2067, -2064, -2061, -2058, -2055, -2052, -2049, -2046,
+    -2043, -2040, -2037, -2033, -2030, -2027, -2024, -2021,
+    -2017, -2014, -2011, -2007, -2004, -2001, -1997, -1994,
+    -1990, -1987, -1983, -1980, -1976, -1973, -1969, -1966,
+    -1962, -1958, -1955, -1951, -1947, -1944, -1940, -1936,
+    -1932, -1928, -1925, -1921, -1917, -1913, -1909, -1905,
+    -1901, -1897, -1893, -1889, -1885, -1881, -1877, -1873,
+    -1869, -1864, -1860, -1856, -1852, -1848, -1843, -1839,
+    -1835, -1830, -1826, -1822, -1817, -1813, -1809, -1804,
+    -1800, -1795, -1791, -1786, -1782, -1777, -1772, -1768,
+    -1763, -1758, -1754, -1749, -1744, -1740, -1735, -1730,
+    -1725, -1720, -1716, -1711, -1706, -1701, -1696, -1691,
+    -1686, -1681, -1676, -1671, -1666, -1661, -1656, -1651,
+    -1646, -1640, -1635, -1630, -1625, -1620, -1614, -1609,
+    -1604, -1599, -1593, -1588, -1582, -1577, -1572, -1566,
+    -1561, -1555, -1550, -1544, -1539, -1533, -1528, -1522,
+    -1516, -1511, -1505, -1500, -1494, -1488, -1482, -1477,
+    -1471, -1465, -1459, -1454, -1448, -1442, -1436, -1430,
+    -1424, -1418, -1412, -1406, -1400, -1394, -1388, -1382,
+    -1376, -1370, -1364, -1358, -1352, -1346, -1339, -1333,
+    -1327, -1321, -1315, -1308, -1302, -1296, -1289, -1283,
+    -1277, -1270, -1264, -1258, -1251, -1245, -1238, -1232,
+    -1225, -1219, -1212, -1206, -1199, -1193, -1186, -1179,
+    -1173, -1166, -1159, -1153, -1146, -1139, -1133, -1126,
+    -1119, -1112, -1105, -1099, -1092, -1085, -1078, -1071,
+    -1064, -1057, -1050, -1044, -1037, -1030, -1023, -1016,
+    -1009, -1001,  -994,  -987,  -980,  -973,  -966,  -959,
+    -952,  -945,  -937,  -930,  -923,  -916,  -908,  -901,
+    -894,  -887,  -879,  -872,  -865,  -857,  -850,  -842,
+    -835,  -828,  -820,  -813,  -805,  -798,  -790,  -783,
+    -775,  -768,  -760,  -753,  -745,  -738,  -730,  -722,
+    -715,  -707,  -699,  -692,  -684,  -676,  -669,  -661,
+    -653,  -645,  -638,  -630,  -622,  -614,  -606,  -599,
+    -591,  -583,  -575,  -567,  -559,  -551,  -543,  -536,
+    -528,  -520,  -512,  -504,  -496,  -488,  -480,  -472,
+    -464,  -456,  -447,  -439,  -431,  -423,  -415,  -407,
+    -399,  -391,  -382,  -374,  -366,  -358,  -350,  -342,
+    -333,  -325,  -317,  -309,  -300,  -292,  -284,  -275,
+    -267,  -259,  -250,  -242,  -234,  -225,  -217,  -209,
+    -200,  -192,  -183,  -175,  -167,  -158,  -150,  -141,
+    -133,  -124,  -116,  -107,   -99,   -90,   -82,   -73,
     -65,   -56,   -48,   -39,   -30,   -22,   -13,    -5,
-      4,    12,    21,    30,    38,    47,    56,    64,
-     73,    82,    90,    99,   108,   116,   125,   134,
+    4,    12,    21,    30,    38,    47,    56,    64,
+    73,    82,    90,    99,   108,   116,   125,   134,
     143,   151,   160,   169,   178,   186,   195,   204,
     213,   221,   230,   239,   248,   257,   265,   274,
     283,   292,   301,   310,   318,   327,   336,   345,
@@ -678,111 +679,111 @@ static const float stationFilterConstants[] =
     784,   793,   802,   811,   820,   829,   838,   847,
     856,   865,   874,   883,   892,   901,   910,   920,
     929,   938,   947,   956,   965,   974,   983,   992,
-   1001,  1010,  1019,  1028,  1037,  1046,  1055,  1064,
-   1073,  1082,  1091,  1100,  1109,  1118,  1127,  1136,
-   1145,  1154,  1163,  1172,  1181,  1190,  1199,  1208,
-   1217,  1226,  1235,  1244,  1253,  1262,  1271,  1280,
-   1289,  1298,  1307,  1316,  1324,  1333,  1342,  1351,
-   1360,  1369,  1378,  1387,  1396,  1405,  1414,  1423,
-   1431,  1440,  1449,  1458,  1467,  1476,  1485,  1493,
-   1502,  1511,  1520,  1529,  1538,  1546,  1555,  1564,
-   1573,  1582,  1590,  1599,  1608,  1617,  1625,  1634,
-   1643,  1652,  1660,  1669,  1678,  1687,  1695,  1704,
-   1713,  1721,  1730,  1739,  1747,  1756,  1765,  1773,
-   1782,  1790,  1799,  1808,  1816,  1825,  1833,  1842,
-   1850,  1859,  1867,  1876,  1884,  1893,  1901,  1910,
-   1918,  1927,  1935,  1944,  1952,  1961,  1969,  1977,
-   1986,  1994,  2002,  2011,  2019,  2027,  2036,  2044,
-   2052,  2061,  2069,  2077,  2085,  2094,  2102,  2110,
-   2118,  2127,  2135,  2143,  2151,  2159,  2167,  2175,
-   2183,  2192,  2200,  2208,  2216,  2224,  2232,  2240,
-   2248,  2256,  2264,  2272,  2280,  2288,  2296,  2303,
-   2311,  2319,  2327,  2335,  2343,  2351,  2358,  2366,
-   2374,  2382,  2389,  2397,  2405,  2412,  2420,  2428,
-   2435,  2443,  2451,  2458,  2466,  2473,  2481,  2489,
-   2496,  2504,  2511,  2518,  2526,  2533,  2541,  2548,
-   2556,  2563,  2570,  2578,  2585,  2592,  2599,  2607,
-   2614,  2621,  2628,  2636,  2643,  2650,  2657,  2664,
-   2671,  2678,  2685,  2692,  2700,  2707,  2714,  2720,
-   2727,  2734,  2741,  2748,  2755,  2762,  2769,  2776,
-   2782,  2789,  2796,  2803,  2809,  2816,  2823,  2829,
-   2836,  2843,  2849,  2856,  2862,  2869,  2875,  2882,
-   2888,  2895,  2901,  2908,  2914,  2920,  2927,  2933,
-   2939,  2945,  2952,  2958,  2964,  2970,  2977,  2983,
-   2989,  2995,  3001,  3007,  3013,  3019,  3025,  3031,
-   3037,  3043,  3049,  3055,  3060,  3066,  3072,  3078,
-   3084,  3089,  3095,  3101,  3106,  3112,  3118,  3123,
-   3129,  3134,  3140,  3145,  3151,  3156,  3162,  3167,
-   3172,  3178,  3183,  3188,  3193,  3199,  3204,  3209,
-   3214,  3219,  3224,  3230,  3235,  3240,  3245,  3250,
-   3255,  3260,  3264,  3269,  3274,  3279,  3284,  3289,
-   3293,  3298,  3303,  3307,  3312,  3317,  3321,  3326,
-   3330,  3335,  3339,  3344,  3348,  3352,  3357,  3361,
-   3365,  3370,  3374,  3378,  3382,  3387,  3391,  3395,
-   3399,  3403,  3407,  3411,  3415,  3419,  3423,  3427,
-   3430,  3434,  3438,  3442,  3446,  3449,  3453,  3457,
-   3460,  3464,  3467,  3471,  3474,  3478,  3481,  3485,
-   3488,  3491,  3495,  3498,  3501,  3505,  3508,  3511,
-   3514,  3517,  3520,  3523,  3526,  3529,  3532,  3535,
-   3538,  3541,  3544,  3547,  3549,  3552,  3555,  3557,
-   3560,  3563,  3565,  3568,  3570,  3573,  3575,  3578,
-   3580,  3583,  3585,  3587,  3589,  3592,  3594,  3596,
-   3598,  3600,  3602,  3604,  3606,  3608,  3610,  3612,
-   3614,  3616,  3618,  3620,  3621,  3623,  3625,  3626,
-   3628,  3630,  3631,  3633,  3634,  3635,  3637,  3638,
-   3640,  3641,  3642,  3643,  3645,  3646,  3647,  3648,
-   3649,  3650,  3651,  3652,  3653,  3654,  3655,  3656,
-   3657,  3657,  3658,  3659,  3659,  3660,  3661,  3661,
-   3662,  3662,  3663,  3663,  3664,  3664,  3664,  3665,
-   3665,  3665,  3665,  3665,  3665,  3666,  3666,  3666,
-   3666,  3666,  3665,  3665,  3665,  3665,  3665,  3664,
-   3664,  3664,  3663,  3663,  3663,  3662,  3662,  3661,
-   3660,  3660,  3659,  3658,  3658,  3657,  3656,  3655,
-   3654,  3653,  3652,  3651,  3650,  3649,  3648,  3647,
-   3646,  3645,  3644,  3642,  3641,  3640,  3638,  3637,
-   3635,  3634,  3632,  3631,  3629,  3627,  3626,  3624,
-   3622,  3621,  3619,  3617,  3615,  3613,  3611,  3609,
-   3607,  3605,  3603,  3601,  3598,  3596,  3594,  3592,
-   3589,  3587,  3585,  3582,  3580,  3577,  3575,  3572,
-   3569,  3567,  3564,  3561,  3558,  3556,  3553,  3550,
-   3547,  3544,  3541,  3538,  3535,  3532,  3528,  3525,
-   3522,  3519,  3515,  3512,  3509,  3505,  3502,  3498,
-   3495,  3491,  3488,  3484,  3480,  3477,  3473,  3469,
-   3465,  3461,  3458,  3454,  3450,  3446,  3442,  3437,
-   3433,  3429,  3425,  3421,  3416,  3412,  3408,  3403,
-   3399,  3395,  3390,  3385,  3381,  3376,  3372,  3367,
-   3362,  3357,  3353,  3348,  3343,  3338,  3333,  3328,
-   3323,  3318,  3313,  3308,  3303,  3297,  3292,  3287,
-   3282,  3276,  3271,  3265,  3260,  3254,  3249,  3243,
-   3238,  3232,  3226,  3221,  3215,  3209,  3203,  3197,
-   3191,  3185,  3179,  3173,  3167,  3161,  3155,  3149,
-   3143,  3136,  3130,  3124,  3117,  3111,  3105,  3098,
-   3092,  3085,  3079,  3072,  3065,  3059,  3052,  3045,
-   3038,  3031,  3025,  3018,  3011,  3004,  2997,  2990,
-   2983,  2975,  2968,  2961,  2954,  2947,  2939,  2932,
-   2925,  2917,  2910,  2902,  2895,  2887,  2879,  2872,
-   2864,  2856,  2849,  2841,  2833,  2825,  2817,  2809,
-   2801,  2793,  2785,  2777,  2769,  2761,  2753,  2745,
-   2737,  2728,  2720,  2712,  2703,  2695,  2686,  2678,
-   2669,  2661,  2652,  2644,  2635,  2626,  2617,  2609,
-   2600,  2591,  2582,  2573,  2564,  2555,  2546,  2537,
-   2528,  2519,  2510,  2501,  2491,  2482,  2473,  2464,
-   2454,  2445,  2435,  2426,  2417,  2407,  2397,  2388,
-   2378,  2369,  2359,  2349,  2339,  2330,  2320,  2310,
-   2300,  2290,  2280,  2270,  2260,  2250,  2240,  2230,
-   2220,  2209,  2199,  2189,  2179,  2168,  2158,  2148,
-   2137,  2127,  2116,  2106,  2095,  2085,  2074,  2063,
-   2053,  2042,  2031,  2021,  2010,  1999,  1988,  1977,
-   1966,  1955,  1944,  1933,  1922,  1911,  1900,  1889,
-   1878,  1867,  1855,  1844,  1833,  1821,  1810,  1799,
-   1787,  1776,  1764,  1753,  1741,  1730,  1718,  1707,
-   1695,  1683,  1671,  1660,  1648,  1636,  1624,  1612,
-   1601,  1589,  1577,  1565,  1553,  1541,  1529,  1517,
-   1504,  1492,  1480,  1468,  1456,  1443,  1431,  1419,
-   1407,  1394,  1382,  1369,  1357,  1344,  1332,  1319,
-   1307,  1294,  1282,  1269,  1256,  1244,  1231,  1218,
-   1205,  1193,  1180,  1167,  1154,  1141,  1128,  1115,
-   1102,  1089,  1076,  1063,  1050,  1037,  1024,  1011,
+    1001,  1010,  1019,  1028,  1037,  1046,  1055,  1064,
+    1073,  1082,  1091,  1100,  1109,  1118,  1127,  1136,
+    1145,  1154,  1163,  1172,  1181,  1190,  1199,  1208,
+    1217,  1226,  1235,  1244,  1253,  1262,  1271,  1280,
+    1289,  1298,  1307,  1316,  1324,  1333,  1342,  1351,
+    1360,  1369,  1378,  1387,  1396,  1405,  1414,  1423,
+    1431,  1440,  1449,  1458,  1467,  1476,  1485,  1493,
+    1502,  1511,  1520,  1529,  1538,  1546,  1555,  1564,
+    1573,  1582,  1590,  1599,  1608,  1617,  1625,  1634,
+    1643,  1652,  1660,  1669,  1678,  1687,  1695,  1704,
+    1713,  1721,  1730,  1739,  1747,  1756,  1765,  1773,
+    1782,  1790,  1799,  1808,  1816,  1825,  1833,  1842,
+    1850,  1859,  1867,  1876,  1884,  1893,  1901,  1910,
+    1918,  1927,  1935,  1944,  1952,  1961,  1969,  1977,
+    1986,  1994,  2002,  2011,  2019,  2027,  2036,  2044,
+    2052,  2061,  2069,  2077,  2085,  2094,  2102,  2110,
+    2118,  2127,  2135,  2143,  2151,  2159,  2167,  2175,
+    2183,  2192,  2200,  2208,  2216,  2224,  2232,  2240,
+    2248,  2256,  2264,  2272,  2280,  2288,  2296,  2303,
+    2311,  2319,  2327,  2335,  2343,  2351,  2358,  2366,
+    2374,  2382,  2389,  2397,  2405,  2412,  2420,  2428,
+    2435,  2443,  2451,  2458,  2466,  2473,  2481,  2489,
+    2496,  2504,  2511,  2518,  2526,  2533,  2541,  2548,
+    2556,  2563,  2570,  2578,  2585,  2592,  2599,  2607,
+    2614,  2621,  2628,  2636,  2643,  2650,  2657,  2664,
+    2671,  2678,  2685,  2692,  2700,  2707,  2714,  2720,
+    2727,  2734,  2741,  2748,  2755,  2762,  2769,  2776,
+    2782,  2789,  2796,  2803,  2809,  2816,  2823,  2829,
+    2836,  2843,  2849,  2856,  2862,  2869,  2875,  2882,
+    2888,  2895,  2901,  2908,  2914,  2920,  2927,  2933,
+    2939,  2945,  2952,  2958,  2964,  2970,  2977,  2983,
+    2989,  2995,  3001,  3007,  3013,  3019,  3025,  3031,
+    3037,  3043,  3049,  3055,  3060,  3066,  3072,  3078,
+    3084,  3089,  3095,  3101,  3106,  3112,  3118,  3123,
+    3129,  3134,  3140,  3145,  3151,  3156,  3162,  3167,
+    3172,  3178,  3183,  3188,  3193,  3199,  3204,  3209,
+    3214,  3219,  3224,  3230,  3235,  3240,  3245,  3250,
+    3255,  3260,  3264,  3269,  3274,  3279,  3284,  3289,
+    3293,  3298,  3303,  3307,  3312,  3317,  3321,  3326,
+    3330,  3335,  3339,  3344,  3348,  3352,  3357,  3361,
+    3365,  3370,  3374,  3378,  3382,  3387,  3391,  3395,
+    3399,  3403,  3407,  3411,  3415,  3419,  3423,  3427,
+    3430,  3434,  3438,  3442,  3446,  3449,  3453,  3457,
+    3460,  3464,  3467,  3471,  3474,  3478,  3481,  3485,
+    3488,  3491,  3495,  3498,  3501,  3505,  3508,  3511,
+    3514,  3517,  3520,  3523,  3526,  3529,  3532,  3535,
+    3538,  3541,  3544,  3547,  3549,  3552,  3555,  3557,
+    3560,  3563,  3565,  3568,  3570,  3573,  3575,  3578,
+    3580,  3583,  3585,  3587,  3589,  3592,  3594,  3596,
+    3598,  3600,  3602,  3604,  3606,  3608,  3610,  3612,
+    3614,  3616,  3618,  3620,  3621,  3623,  3625,  3626,
+    3628,  3630,  3631,  3633,  3634,  3635,  3637,  3638,
+    3640,  3641,  3642,  3643,  3645,  3646,  3647,  3648,
+    3649,  3650,  3651,  3652,  3653,  3654,  3655,  3656,
+    3657,  3657,  3658,  3659,  3659,  3660,  3661,  3661,
+    3662,  3662,  3663,  3663,  3664,  3664,  3664,  3665,
+    3665,  3665,  3665,  3665,  3665,  3666,  3666,  3666,
+    3666,  3666,  3665,  3665,  3665,  3665,  3665,  3664,
+    3664,  3664,  3663,  3663,  3663,  3662,  3662,  3661,
+    3660,  3660,  3659,  3658,  3658,  3657,  3656,  3655,
+    3654,  3653,  3652,  3651,  3650,  3649,  3648,  3647,
+    3646,  3645,  3644,  3642,  3641,  3640,  3638,  3637,
+    3635,  3634,  3632,  3631,  3629,  3627,  3626,  3624,
+    3622,  3621,  3619,  3617,  3615,  3613,  3611,  3609,
+    3607,  3605,  3603,  3601,  3598,  3596,  3594,  3592,
+    3589,  3587,  3585,  3582,  3580,  3577,  3575,  3572,
+    3569,  3567,  3564,  3561,  3558,  3556,  3553,  3550,
+    3547,  3544,  3541,  3538,  3535,  3532,  3528,  3525,
+    3522,  3519,  3515,  3512,  3509,  3505,  3502,  3498,
+    3495,  3491,  3488,  3484,  3480,  3477,  3473,  3469,
+    3465,  3461,  3458,  3454,  3450,  3446,  3442,  3437,
+    3433,  3429,  3425,  3421,  3416,  3412,  3408,  3403,
+    3399,  3395,  3390,  3385,  3381,  3376,  3372,  3367,
+    3362,  3357,  3353,  3348,  3343,  3338,  3333,  3328,
+    3323,  3318,  3313,  3308,  3303,  3297,  3292,  3287,
+    3282,  3276,  3271,  3265,  3260,  3254,  3249,  3243,
+    3238,  3232,  3226,  3221,  3215,  3209,  3203,  3197,
+    3191,  3185,  3179,  3173,  3167,  3161,  3155,  3149,
+    3143,  3136,  3130,  3124,  3117,  3111,  3105,  3098,
+    3092,  3085,  3079,  3072,  3065,  3059,  3052,  3045,
+    3038,  3031,  3025,  3018,  3011,  3004,  2997,  2990,
+    2983,  2975,  2968,  2961,  2954,  2947,  2939,  2932,
+    2925,  2917,  2910,  2902,  2895,  2887,  2879,  2872,
+    2864,  2856,  2849,  2841,  2833,  2825,  2817,  2809,
+    2801,  2793,  2785,  2777,  2769,  2761,  2753,  2745,
+    2737,  2728,  2720,  2712,  2703,  2695,  2686,  2678,
+    2669,  2661,  2652,  2644,  2635,  2626,  2617,  2609,
+    2600,  2591,  2582,  2573,  2564,  2555,  2546,  2537,
+    2528,  2519,  2510,  2501,  2491,  2482,  2473,  2464,
+    2454,  2445,  2435,  2426,  2417,  2407,  2397,  2388,
+    2378,  2369,  2359,  2349,  2339,  2330,  2320,  2310,
+    2300,  2290,  2280,  2270,  2260,  2250,  2240,  2230,
+    2220,  2209,  2199,  2189,  2179,  2168,  2158,  2148,
+    2137,  2127,  2116,  2106,  2095,  2085,  2074,  2063,
+    2053,  2042,  2031,  2021,  2010,  1999,  1988,  1977,
+    1966,  1955,  1944,  1933,  1922,  1911,  1900,  1889,
+    1878,  1867,  1855,  1844,  1833,  1821,  1810,  1799,
+    1787,  1776,  1764,  1753,  1741,  1730,  1718,  1707,
+    1695,  1683,  1671,  1660,  1648,  1636,  1624,  1612,
+    1601,  1589,  1577,  1565,  1553,  1541,  1529,  1517,
+    1504,  1492,  1480,  1468,  1456,  1443,  1431,  1419,
+    1407,  1394,  1382,  1369,  1357,  1344,  1332,  1319,
+    1307,  1294,  1282,  1269,  1256,  1244,  1231,  1218,
+    1205,  1193,  1180,  1167,  1154,  1141,  1128,  1115,
+    1102,  1089,  1076,  1063,  1050,  1037,  1024,  1011,
     998,   984,   971,   958,   945,   931,   918,   905,
     891,   878,   864,   851,   838,   824,   811,   797,
     783,   770,   756,   743,   729,   715,   702,   688,
@@ -793,512 +794,512 @@ static const float stationFilterConstants[] =
     223,   209,   194,   180,   165,   151,   136,   122,
     107,    92,    78,    63,    49,    34,    19,     5,
     -10,   -25,   -40,   -54,   -69,   -84,   -99,  -114,
-   -128,  -143,  -158,  -173,  -188,  -203,  -218,  -233,
-   -248,  -263,  -278,  -293,  -308,  -323,  -338,  -353,
-   -368,  -383,  -398,  -413,  -428,  -443,  -459,  -474,
-   -489,  -504,  -519,  -535,  -550,  -565,  -580,  -596,
-   -611,  -626,  -642,  -657,  -672,  -688,  -703,  -718,
-   -734,  -749,  -765,  -780,  -795,  -811,  -826,  -842,
-   -857,  -873,  -888,  -904,  -919,  -935,  -950,  -966,
-   -981,  -997, -1013, -1028, -1044, -1059, -1075, -1091,
-  -1106, -1122, -1137, -1153, -1169, -1184, -1200, -1216,
-  -1231, -1247, -1263, -1278, -1294, -1310, -1326, -1341,
-  -1357, -1373, -1389, -1404, -1420, -1436, -1452, -1467,
-  -1483, -1499, -1515, -1531, -1546, -1562, -1578, -1594,
-  -1610, -1625, -1641, -1657, -1673, -1689, -1705, -1720,
-  -1736, -1752, -1768, -1784, -1800, -1815, -1831, -1847,
-  -1863, -1879, -1895, -1911, -1926, -1942, -1958, -1974,
-  -1990, -2006, -2022, -2037, -2053, -2069, -2085, -2101,
-  -2117, -2133, -2148, -2164, -2180, -2196, -2212, -2228,
-  -2244, -2259, -2275, -2291, -2307, -2323, -2339, -2354,
-  -2370, -2386, -2402, -2418, -2433, -2449, -2465, -2481,
-  -2497, -2512, -2528, -2544, -2560, -2576, -2591, -2607,
-  -2623, -2639, -2654, -2670, -2686, -2701, -2717, -2733,
-  -2749, -2764, -2780, -2796, -2811, -2827, -2843, -2858,
-  -2874, -2890, -2905, -2921, -2936, -2952, -2968, -2983,
-  -2999, -3014, -3030, -3045, -3061, -3076, -3092, -3107,
-  -3123, -3138, -3154, -3169, -3185, -3200, -3216, -3231,
-  -3246, -3262, -3277, -3293, -3308, -3323, -3339, -3354,
-  -3369, -3385, -3400, -3415, -3430, -3446, -3461, -3476,
-  -3491, -3506, -3521, -3537, -3552, -3567, -3582, -3597,
-  -3612, -3627, -3642, -3657, -3672, -3687, -3702, -3717,
-  -3732, -3747, -3762, -3777, -3792, -3807, -3821, -3836,
-  -3851, -3866, -3881, -3895, -3910, -3925, -3939, -3954,
-  -3969, -3983, -3998, -4012, -4027, -4042, -4056, -4071,
-  -4085, -4100, -4114, -4128, -4143, -4157, -4172, -4186,
-  -4200, -4215, -4229, -4243, -4257, -4271, -4286, -4300,
-  -4314, -4328, -4342, -4356, -4370, -4384, -4398, -4412,
-  -4426, -4440, -4454, -4468, -4482, -4495, -4509, -4523,
-  -4537, -4550, -4564, -4578, -4591, -4605, -4619, -4632,
-  -4646, -4659, -4673, -4686, -4699, -4713, -4726, -4740,
-  -4753, -4766, -4779, -4793, -4806, -4819, -4832, -4845,
-  -4858, -4871, -4884, -4897, -4910, -4923, -4936, -4949,
-  -4962, -4974, -4987, -5000, -5013, -5025, -5038, -5051,
-  -5063, -5076, -5088, -5101, -5113, -5125, -5138, -5150,
-  -5162, -5175, -5187, -5199, -5211, -5224, -5236, -5248,
-  -5260, -5272, -5284, -5296, -5308, -5319, -5331, -5343,
-  -5355, -5366, -5378, -5390, -5401, -5413, -5424, -5436,
-  -5447, -5459, -5470, -5482, -5493, -5504, -5515, -5527,
-  -5538, -5549, -5560, -5571, -5582, -5593, -5604, -5615,
-  -5626, -5636, -5647, -5658, -5668, -5679, -5690, -5700,
-  -5711, -5721, -5732, -5742, -5752, -5763, -5773, -5783,
-  -5793, -5804, -5814, -5824, -5834, -5844, -5854, -5863,
-  -5873, -5883, -5893, -5903, -5912, -5922, -5931, -5941,
-  -5950, -5960, -5969, -5979, -5988, -5997, -6006, -6016,
-  -6025, -6034, -6043, -6052, -6061, -6070, -6078, -6087,
-  -6096, -6105, -6113, -6122, -6131, -6139, -6148, -6156,
-  -6164, -6173, -6181, -6189, -6197, -6205, -6214, -6222,
-  -6230, -6238, -6245, -6253, -6261, -6269, -6276, -6284,
-  -6292, -6299, -6307, -6314, -6321, -6329, -6336, -6343,
-  -6350, -6358, -6365, -6372, -6379, -6386, -6392, -6399,
-  -6406, -6413, -6419, -6426, -6433, -6439, -6445, -6452,
-  -6458, -6464, -6471, -6477, -6483, -6489, -6495, -6501,
-  -6507, -6513, -6519, -6524, -6530, -6536, -6541, -6547,
-  -6552, -6558, -6563, -6568, -6573, -6579, -6584, -6589,
-  -6594, -6599, -6604, -6608, -6613, -6618, -6623, -6627,
-  -6632, -6636, -6641, -6645, -6649, -6654, -6658, -6662,
-  -6666, -6670, -6674, -6678, -6682, -6685, -6689, -6693,
-  -6696, -6700, -6703, -6707, -6710, -6714, -6717, -6720,
-  -6723, -6726, -6729, -6732, -6735, -6738, -6741, -6743,
-  -6746, -6748, -6751, -6753, -6756, -6758, -6760, -6763,
-  -6765, -6767, -6769, -6771, -6773, -6774, -6776, -6778,
-  -6779, -6781, -6783, -6784, -6785, -6787, -6788, -6789,
-  -6790, -6791, -6792, -6793, -6794, -6795, -6795, -6796,
-  -6797, -6797, -6798, -6798, -6798, -6799, -6799, -6799,
-  -6799, -6799, -6799, -6799, -6799, -6798, -6798, -6798,
-  -6797, -6797, -6796, -6795, -6795, -6794, -6793, -6792,
-  -6791, -6790, -6789, -6788, -6786, -6785, -6784, -6782,
-  -6781, -6779, -6777, -6776, -6774, -6772, -6770, -6768,
-  -6766, -6764, -6761, -6759, -6757, -6754, -6752, -6749,
-  -6747, -6744, -6741, -6738, -6735, -6732, -6729, -6726,
-  -6723, -6719, -6716, -6713, -6709, -6706, -6702, -6698,
-  -6694, -6691, -6687, -6683, -6679, -6674, -6670, -6666,
-  -6662, -6657, -6653, -6648, -6643, -6639, -6634, -6629,
-  -6624, -6619, -6614, -6609, -6604, -6598, -6593, -6588,
-  -6582, -6576, -6571, -6565, -6559, -6553, -6547, -6541,
-  -6535, -6529, -6523, -6517, -6510, -6504, -6497, -6491,
-  -6484, -6477, -6470, -6463, -6456, -6449, -6442, -6435,
-  -6428, -6420, -6413, -6405, -6398, -6390, -6382, -6374,
-  -6367, -6359, -6351, -6343, -6334, -6326, -6318, -6309,
-  -6301, -6292, -6284, -6275, -6266, -6257, -6248, -6239,
-  -6230, -6221, -6212, -6202, -6193, -6184, -6174, -6164,
-  -6155, -6145, -6135, -6125, -6115, -6105, -6095, -6085,
-  -6074, -6064, -6054, -6043, -6032, -6022, -6011, -6000,
-  -5989, -5978, -5967, -5956, -5945, -5933, -5922, -5911,
-  -5899, -5887, -5876, -5864, -5852, -5840, -5828, -5816,
-  -5804, -5792, -5779, -5767, -5755, -5742, -5729, -5717,
-  -5704, -5691, -5678, -5665, -5652, -5639, -5626, -5612,
-  -5599, -5585, -5572, -5558, -5545, -5531, -5517, -5503,
-  -5489, -5475, -5461, -5447, -5432, -5418, -5403, -5389,
-  -5374, -5359, -5345, -5330, -5315, -5300, -5285, -5269,
-  -5254, -5239, -5223, -5208, -5192, -5177, -5161, -5145,
-  -5129, -5113, -5097, -5081, -5065, -5049, -5032, -5016,
-  -4999, -4983, -4966, -4950, -4933, -4916, -4899, -4882,
-  -4865, -4847, -4830, -4813, -4795, -4778, -4760, -4743,
-  -4725, -4707, -4689, -4671, -4653, -4635, -4617, -4598,
-  -4580, -4562, -4543, -4524, -4506, -4487, -4468, -4449,
-  -4430, -4411, -4392, -4373, -4354, -4334, -4315, -4295,
-  -4276, -4256, -4236, -4216, -4196, -4176, -4156, -4136,
-  -4116, -4096, -4075, -4055, -4034, -4014, -3993, -3972,
-  -3951, -3930, -3909, -3888, -3867, -3846, -3825, -3803,
-  -3782, -3760, -3739, -3717, -3695, -3673, -3651, -3629,
-  -3607, -3585, -3563, -3541, -3518, -3496, -3473, -3451,
-  -3428, -3405, -3383, -3360, -3337, -3314, -3290, -3267,
-  -3244, -3221, -3197, -3174, -3150, -3126, -3103, -3079,
-  -3055, -3031, -3007, -2983, -2959, -2934, -2910, -2886,
-  -2861, -2837, -2812, -2787, -2763, -2738, -2713, -2688,
-  -2663, -2638, -2612, -2587, -2562, -2536, -2511, -2485,
-  -2459, -2434, -2408, -2382, -2356, -2330, -2304, -2278,
-  -2251, -2225, -2199, -2172, -2146, -2119, -2092, -2066,
-  -2039, -2012, -1985, -1958, -1931, -1904, -1876, -1849,
-  -1822, -1794, -1767, -1739, -1711, -1683, -1656, -1628,
-  -1600, -1572, -1544, -1515, -1487, -1459, -1430, -1402,
-  -1373, -1345, -1316, -1287, -1258, -1230, -1201, -1172,
-  -1142, -1113, -1084, -1055, -1025,  -996,  -966,  -937,
-   -907,  -877,  -848,  -818,  -788,  -758,  -728,  -698,
-   -667,  -637,  -607,  -576,  -546,  -515,  -485,  -454,
-   -423,  -392,  -362,  -331,  -300,  -268,  -237,  -206,
-   -175,  -143,  -112,   -81,   -49,   -17,    14,    46,
-     78,   110,   142,   174,   206,   238,   270,   302,
+    -128,  -143,  -158,  -173,  -188,  -203,  -218,  -233,
+    -248,  -263,  -278,  -293,  -308,  -323,  -338,  -353,
+    -368,  -383,  -398,  -413,  -428,  -443,  -459,  -474,
+    -489,  -504,  -519,  -535,  -550,  -565,  -580,  -596,
+    -611,  -626,  -642,  -657,  -672,  -688,  -703,  -718,
+    -734,  -749,  -765,  -780,  -795,  -811,  -826,  -842,
+    -857,  -873,  -888,  -904,  -919,  -935,  -950,  -966,
+    -981,  -997, -1013, -1028, -1044, -1059, -1075, -1091,
+    -1106, -1122, -1137, -1153, -1169, -1184, -1200, -1216,
+    -1231, -1247, -1263, -1278, -1294, -1310, -1326, -1341,
+    -1357, -1373, -1389, -1404, -1420, -1436, -1452, -1467,
+    -1483, -1499, -1515, -1531, -1546, -1562, -1578, -1594,
+    -1610, -1625, -1641, -1657, -1673, -1689, -1705, -1720,
+    -1736, -1752, -1768, -1784, -1800, -1815, -1831, -1847,
+    -1863, -1879, -1895, -1911, -1926, -1942, -1958, -1974,
+    -1990, -2006, -2022, -2037, -2053, -2069, -2085, -2101,
+    -2117, -2133, -2148, -2164, -2180, -2196, -2212, -2228,
+    -2244, -2259, -2275, -2291, -2307, -2323, -2339, -2354,
+    -2370, -2386, -2402, -2418, -2433, -2449, -2465, -2481,
+    -2497, -2512, -2528, -2544, -2560, -2576, -2591, -2607,
+    -2623, -2639, -2654, -2670, -2686, -2701, -2717, -2733,
+    -2749, -2764, -2780, -2796, -2811, -2827, -2843, -2858,
+    -2874, -2890, -2905, -2921, -2936, -2952, -2968, -2983,
+    -2999, -3014, -3030, -3045, -3061, -3076, -3092, -3107,
+    -3123, -3138, -3154, -3169, -3185, -3200, -3216, -3231,
+    -3246, -3262, -3277, -3293, -3308, -3323, -3339, -3354,
+    -3369, -3385, -3400, -3415, -3430, -3446, -3461, -3476,
+    -3491, -3506, -3521, -3537, -3552, -3567, -3582, -3597,
+    -3612, -3627, -3642, -3657, -3672, -3687, -3702, -3717,
+    -3732, -3747, -3762, -3777, -3792, -3807, -3821, -3836,
+    -3851, -3866, -3881, -3895, -3910, -3925, -3939, -3954,
+    -3969, -3983, -3998, -4012, -4027, -4042, -4056, -4071,
+    -4085, -4100, -4114, -4128, -4143, -4157, -4172, -4186,
+    -4200, -4215, -4229, -4243, -4257, -4271, -4286, -4300,
+    -4314, -4328, -4342, -4356, -4370, -4384, -4398, -4412,
+    -4426, -4440, -4454, -4468, -4482, -4495, -4509, -4523,
+    -4537, -4550, -4564, -4578, -4591, -4605, -4619, -4632,
+    -4646, -4659, -4673, -4686, -4699, -4713, -4726, -4740,
+    -4753, -4766, -4779, -4793, -4806, -4819, -4832, -4845,
+    -4858, -4871, -4884, -4897, -4910, -4923, -4936, -4949,
+    -4962, -4974, -4987, -5000, -5013, -5025, -5038, -5051,
+    -5063, -5076, -5088, -5101, -5113, -5125, -5138, -5150,
+    -5162, -5175, -5187, -5199, -5211, -5224, -5236, -5248,
+    -5260, -5272, -5284, -5296, -5308, -5319, -5331, -5343,
+    -5355, -5366, -5378, -5390, -5401, -5413, -5424, -5436,
+    -5447, -5459, -5470, -5482, -5493, -5504, -5515, -5527,
+    -5538, -5549, -5560, -5571, -5582, -5593, -5604, -5615,
+    -5626, -5636, -5647, -5658, -5668, -5679, -5690, -5700,
+    -5711, -5721, -5732, -5742, -5752, -5763, -5773, -5783,
+    -5793, -5804, -5814, -5824, -5834, -5844, -5854, -5863,
+    -5873, -5883, -5893, -5903, -5912, -5922, -5931, -5941,
+    -5950, -5960, -5969, -5979, -5988, -5997, -6006, -6016,
+    -6025, -6034, -6043, -6052, -6061, -6070, -6078, -6087,
+    -6096, -6105, -6113, -6122, -6131, -6139, -6148, -6156,
+    -6164, -6173, -6181, -6189, -6197, -6205, -6214, -6222,
+    -6230, -6238, -6245, -6253, -6261, -6269, -6276, -6284,
+    -6292, -6299, -6307, -6314, -6321, -6329, -6336, -6343,
+    -6350, -6358, -6365, -6372, -6379, -6386, -6392, -6399,
+    -6406, -6413, -6419, -6426, -6433, -6439, -6445, -6452,
+    -6458, -6464, -6471, -6477, -6483, -6489, -6495, -6501,
+    -6507, -6513, -6519, -6524, -6530, -6536, -6541, -6547,
+    -6552, -6558, -6563, -6568, -6573, -6579, -6584, -6589,
+    -6594, -6599, -6604, -6608, -6613, -6618, -6623, -6627,
+    -6632, -6636, -6641, -6645, -6649, -6654, -6658, -6662,
+    -6666, -6670, -6674, -6678, -6682, -6685, -6689, -6693,
+    -6696, -6700, -6703, -6707, -6710, -6714, -6717, -6720,
+    -6723, -6726, -6729, -6732, -6735, -6738, -6741, -6743,
+    -6746, -6748, -6751, -6753, -6756, -6758, -6760, -6763,
+    -6765, -6767, -6769, -6771, -6773, -6774, -6776, -6778,
+    -6779, -6781, -6783, -6784, -6785, -6787, -6788, -6789,
+    -6790, -6791, -6792, -6793, -6794, -6795, -6795, -6796,
+    -6797, -6797, -6798, -6798, -6798, -6799, -6799, -6799,
+    -6799, -6799, -6799, -6799, -6799, -6798, -6798, -6798,
+    -6797, -6797, -6796, -6795, -6795, -6794, -6793, -6792,
+    -6791, -6790, -6789, -6788, -6786, -6785, -6784, -6782,
+    -6781, -6779, -6777, -6776, -6774, -6772, -6770, -6768,
+    -6766, -6764, -6761, -6759, -6757, -6754, -6752, -6749,
+    -6747, -6744, -6741, -6738, -6735, -6732, -6729, -6726,
+    -6723, -6719, -6716, -6713, -6709, -6706, -6702, -6698,
+    -6694, -6691, -6687, -6683, -6679, -6674, -6670, -6666,
+    -6662, -6657, -6653, -6648, -6643, -6639, -6634, -6629,
+    -6624, -6619, -6614, -6609, -6604, -6598, -6593, -6588,
+    -6582, -6576, -6571, -6565, -6559, -6553, -6547, -6541,
+    -6535, -6529, -6523, -6517, -6510, -6504, -6497, -6491,
+    -6484, -6477, -6470, -6463, -6456, -6449, -6442, -6435,
+    -6428, -6420, -6413, -6405, -6398, -6390, -6382, -6374,
+    -6367, -6359, -6351, -6343, -6334, -6326, -6318, -6309,
+    -6301, -6292, -6284, -6275, -6266, -6257, -6248, -6239,
+    -6230, -6221, -6212, -6202, -6193, -6184, -6174, -6164,
+    -6155, -6145, -6135, -6125, -6115, -6105, -6095, -6085,
+    -6074, -6064, -6054, -6043, -6032, -6022, -6011, -6000,
+    -5989, -5978, -5967, -5956, -5945, -5933, -5922, -5911,
+    -5899, -5887, -5876, -5864, -5852, -5840, -5828, -5816,
+    -5804, -5792, -5779, -5767, -5755, -5742, -5729, -5717,
+    -5704, -5691, -5678, -5665, -5652, -5639, -5626, -5612,
+    -5599, -5585, -5572, -5558, -5545, -5531, -5517, -5503,
+    -5489, -5475, -5461, -5447, -5432, -5418, -5403, -5389,
+    -5374, -5359, -5345, -5330, -5315, -5300, -5285, -5269,
+    -5254, -5239, -5223, -5208, -5192, -5177, -5161, -5145,
+    -5129, -5113, -5097, -5081, -5065, -5049, -5032, -5016,
+    -4999, -4983, -4966, -4950, -4933, -4916, -4899, -4882,
+    -4865, -4847, -4830, -4813, -4795, -4778, -4760, -4743,
+    -4725, -4707, -4689, -4671, -4653, -4635, -4617, -4598,
+    -4580, -4562, -4543, -4524, -4506, -4487, -4468, -4449,
+    -4430, -4411, -4392, -4373, -4354, -4334, -4315, -4295,
+    -4276, -4256, -4236, -4216, -4196, -4176, -4156, -4136,
+    -4116, -4096, -4075, -4055, -4034, -4014, -3993, -3972,
+    -3951, -3930, -3909, -3888, -3867, -3846, -3825, -3803,
+    -3782, -3760, -3739, -3717, -3695, -3673, -3651, -3629,
+    -3607, -3585, -3563, -3541, -3518, -3496, -3473, -3451,
+    -3428, -3405, -3383, -3360, -3337, -3314, -3290, -3267,
+    -3244, -3221, -3197, -3174, -3150, -3126, -3103, -3079,
+    -3055, -3031, -3007, -2983, -2959, -2934, -2910, -2886,
+    -2861, -2837, -2812, -2787, -2763, -2738, -2713, -2688,
+    -2663, -2638, -2612, -2587, -2562, -2536, -2511, -2485,
+    -2459, -2434, -2408, -2382, -2356, -2330, -2304, -2278,
+    -2251, -2225, -2199, -2172, -2146, -2119, -2092, -2066,
+    -2039, -2012, -1985, -1958, -1931, -1904, -1876, -1849,
+    -1822, -1794, -1767, -1739, -1711, -1683, -1656, -1628,
+    -1600, -1572, -1544, -1515, -1487, -1459, -1430, -1402,
+    -1373, -1345, -1316, -1287, -1258, -1230, -1201, -1172,
+    -1142, -1113, -1084, -1055, -1025,  -996,  -966,  -937,
+    -907,  -877,  -848,  -818,  -788,  -758,  -728,  -698,
+    -667,  -637,  -607,  -576,  -546,  -515,  -485,  -454,
+    -423,  -392,  -362,  -331,  -300,  -268,  -237,  -206,
+    -175,  -143,  -112,   -81,   -49,   -17,    14,    46,
+    78,   110,   142,   174,   206,   238,   270,   302,
     335,   367,   399,   432,   465,   497,   530,   563,
     596,   628,   661,   694,   728,   761,   794,   827,
     861,   894,   927,   961,   995,  1028,  1062,  1096,
-   1130,  1163,  1197,  1231,  1266,  1300,  1334,  1368,
-   1402,  1437,  1471,  1506,  1540,  1575,  1610,  1644,
-   1679,  1714,  1749,  1784,  1819,  1854,  1889,  1925,
-   1960,  1995,  2031,  2066,  2101,  2137,  2173,  2208,
-   2244,  2280,  2316,  2352,  2388,  2424,  2460,  2496,
-   2532,  2568,  2604,  2641,  2677,  2714,  2750,  2787,
-   2823,  2860,  2897,  2934,  2970,  3007,  3044,  3081,
-   3118,  3155,  3193,  3230,  3267,  3304,  3342,  3379,
-   3417,  3454,  3492,  3529,  3567,  3605,  3643,  3681,
-   3718,  3756,  3794,  3832,  3870,  3909,  3947,  3985,
-   4023,  4062,  4100,  4138,  4177,  4216,  4254,  4293,
-   4331,  4370,  4409,  4448,  4487,  4526,  4564,  4603,
-   4643,  4682,  4721,  4760,  4799,  4839,  4878,  4917,
-   4957,  4996,  5036,  5075,  5115,  5154,  5194,  5234,
-   5274,  5313,  5353,  5393,  5433,  5473,  5513,  5553,
-   5593,  5634,  5674,  5714,  5754,  5795,  5835,  5875,
-   5916,  5956,  5997,  6037,  6078,  6119,  6159,  6200,
-   6241,  6282,  6323,  6364,  6404,  6445,  6486,  6527,
-   6569,  6610,  6651,  6692,  6733,  6774,  6816,  6857,
-   6899,  6940,  6981,  7023,  7064,  7106,  7148,  7189,
-   7231,  7272,  7314,  7356,  7398,  7440,  7481,  7523,
-   7565,  7607,  7649,  7691,  7733,  7775,  7818,  7860,
-   7902,  7944,  7986,  8029,  8071,  8113,  8156,  8198,
-   8240,  8283,  8325,  8368,  8410,  8453,  8496,  8538,
-   8581,  8624,  8666,  8709,  8752,  8795,  8837,  8880,
-   8923,  8966,  9009,  9052,  9095,  9138,  9181,  9224,
-   9267,  9310,  9353,  9396,  9440,  9483,  9526,  9569,
-   9613,  9656,  9699,  9743,  9786,  9829,  9873,  9916,
-   9960, 10003, 10046, 10090, 10133, 10177, 10221, 10264,
-  10308, 10351, 10395, 10439, 10482, 10526, 10570, 10614,
-  10657, 10701, 10745, 10789, 10832, 10876, 10920, 10964,
-  11008, 11052, 11096, 11140, 11184, 11228, 11272, 11316,
-  11360, 11404, 11448, 11492, 11536, 11580, 11624, 11668,
-  11712, 11756, 11800, 11844, 11889, 11933, 11977, 12021,
-  12065, 12110, 12154, 12198, 12242, 12286, 12331, 12375,
-  12419, 12464, 12508, 12552, 12596, 12641, 12685, 12729,
-  12774, 12818, 12862, 12907, 12951, 12995, 13040, 13084,
-  13129, 13173, 13217, 13262, 13306, 13351, 13395, 13439,
-  13484, 13528, 13573, 13617, 13661, 13706, 13750, 13795,
-  13839, 13883, 13928, 13972, 14017, 14061, 14106, 14150,
-  14194, 14239, 14283, 14328, 14372, 14417, 14461, 14505,
-  14550, 14594, 14639, 14683, 14727, 14772, 14816, 14861,
-  14905, 14949, 14994, 15038, 15082, 15127, 15171, 15215,
-  15260, 15304, 15348, 15393, 15437, 15481, 15526, 15570,
-  15614, 15658, 15703, 15747, 15791, 15835, 15880, 15924,
-  15968, 16012, 16056, 16100, 16145, 16189, 16233, 16277,
-  16321, 16365, 16409, 16453, 16497, 16541, 16585, 16629,
-  16673, 16717, 16761, 16805, 16849, 16893, 16937, 16981,
-  17025, 17069, 17113, 17156, 17200, 17244, 17288, 17332,
-  17375, 17419, 17463, 17506, 17550, 17594, 17637, 17681,
-  17725, 17768, 17812, 17855, 17899, 17942, 17986, 18029,
-  18072, 18116, 18159, 18203, 18246, 18289, 18332, 18376,
-  18419, 18462, 18505, 18549, 18592, 18635, 18678, 18721,
-  18764, 18807, 18850, 18893, 18936, 18979, 19022, 19064,
-  19107, 19150, 19193, 19236, 19278, 19321, 19364, 19406,
-  19449, 19491, 19534, 19576, 19619, 19661, 19704, 19746,
-  19788, 19831, 19873, 19915, 19957, 20000, 20042, 20084,
-  20126, 20168, 20210, 20252, 20294, 20336, 20378, 20420,
-  20461, 20503, 20545, 20587, 20628, 20670, 20712, 20753,
-  20795, 20836, 20878, 20919, 20960, 21002, 21043, 21084,
-  21125, 21167, 21208, 21249, 21290, 21331, 21372, 21413,
-  21454, 21495, 21535, 21576, 21617, 21658, 21698, 21739,
-  21779, 21820, 21860, 21901, 21941, 21982, 22022, 22062,
-  22102, 22142, 22183, 22223, 22263, 22303, 22343, 22383,
-  22422, 22462, 22502, 22542, 22581, 22621, 22660, 22700,
-  22739, 22779, 22818, 22858, 22897, 22936, 22975, 23014,
-  23053, 23092, 23131, 23170, 23209, 23248, 23287, 23326,
-  23364, 23403, 23441, 23480, 23518, 23557, 23595, 23633,
-  23672, 23710, 23748, 23786, 23824, 23862, 23900, 23938,
-  23976, 24013, 24051, 24089, 24126, 24164, 24201, 24239,
-  24276, 24313, 24351, 24388, 24425, 24462, 24499, 24536,
-  24573, 24610, 24647, 24683, 24720, 24756, 24793, 24830,
-  24866, 24902, 24939, 24975, 25011, 25047, 25083, 25119,
-  25155, 25191, 25227, 25262, 25298, 25334, 25369, 25405,
-  25440, 25476, 25511, 25546, 25581, 25616, 25651, 25686,
-  25721, 25756, 25791, 25826, 25860, 25895, 25929, 25964,
-  25998, 26033, 26067, 26101, 26135, 26169, 26203, 26237,
-  26271, 26305, 26338, 26372, 26405, 26439, 26472, 26506,
-  26539, 26572, 26605, 26638, 26671, 26704, 26737, 26770,
-  26803, 26835, 26868, 26900, 26933, 26965, 26997, 27030,
-  27062, 27094, 27126, 27158, 27189, 27221, 27253, 27285,
-  27316, 27348, 27379, 27410, 27441, 27473, 27504, 27535,
-  27566, 27597, 27627, 27658, 27689, 27719, 27750, 27780,
-  27810, 27841, 27871, 27901, 27931, 27961, 27991, 28020,
-  28050, 28080, 28109, 28139, 28168, 28197, 28227, 28256,
-  28285, 28314, 28343, 28371, 28400, 28429, 28457, 28486,
-  28514, 28543, 28571, 28599, 28627, 28655, 28683, 28711,
-  28738, 28766, 28794, 28821, 28849, 28876, 28903, 28930,
-  28957, 28984, 29011, 29038, 29065, 29092, 29118, 29145,
-  29171, 29197, 29223, 29250, 29276, 29302, 29327, 29353,
-  29379, 29405, 29430, 29456, 29481, 29506, 29531, 29556,
-  29581, 29606, 29631, 29656, 29681, 29705, 29730, 29754,
-  29778, 29802, 29827, 29851, 29874, 29898, 29922, 29946,
-  29969, 29993, 30016, 30039, 30063, 30086, 30109, 30132,
-  30155, 30177, 30200, 30223, 30245, 30267, 30290, 30312,
-  30334, 30356, 30378, 30400, 30422, 30443, 30465, 30486,
-  30508, 30529, 30550, 30571, 30592, 30613, 30634, 30654,
-  30675, 30696, 30716, 30736, 30756, 30777, 30797, 30817,
-  30836, 30856, 30876, 30895, 30915, 30934, 30953, 30973,
-  30992, 31011, 31030, 31048, 31067, 31086, 31104, 31123,
-  31141, 31159, 31177, 31195, 31213, 31231, 31249, 31266,
-  31284, 31301, 31318, 31336, 31353, 31370, 31387, 31404,
-  31420, 31437, 31453, 31470, 31486, 31502, 31519, 31535,
-  31551, 31566, 31582, 31598, 31613, 31629, 31644, 31659,
-  31674, 31689, 31704, 31719, 31734, 31749, 31763, 31777,
-  31792, 31806, 31820, 31834, 31848, 31862, 31876, 31889,
-  31903, 31916, 31929, 31943, 31956, 31969, 31982, 31994,
-  32007, 32020, 32032, 32045, 32057, 32069, 32081, 32093,
-  32105, 32117, 32128, 32140, 32151, 32163, 32174, 32185,
-  32196, 32207, 32218, 32229, 32239, 32250, 32260, 32270,
-  32281, 32291, 32301, 32311, 32320, 32330, 32340, 32349,
-  32358, 32368, 32377, 32386, 32395, 32404, 32412, 32421,
-  32430, 32438, 32446, 32455, 32463, 32471, 32479, 32486,
-  32494, 32502, 32509, 32516, 32524, 32531, 32538, 32545,
-  32552, 32558, 32565, 32572, 32578, 32584, 32590, 32597,
-  32603, 32608, 32614, 32620, 32625, 32631, 32636, 32642,
-  32647, 32652, 32657, 32661, 32666, 32671, 32675, 32680,
-  32684, 32688, 32692, 32696, 32700, 32704, 32707, 32711,
-  32714, 32718, 32721, 32724, 32727, 32730, 32733, 32735,
-  32738, 32740, 32743, 32745, 32747, 32749, 32751, 32753,
-  32755, 32756, 32758, 32759, 32760, 32762, 32763, 32764,
-  32764, 32765, 32766, 32766, 32767, 32767, 32767, 32767,
-  32767, 32767, 32767, 32767, 32766, 32766, 32765, 32764,
-  32764, 32763, 32762, 32760, 32759, 32758, 32756, 32755,
-  32753, 32751, 32749, 32747, 32745, 32743, 32740, 32738,
-  32735, 32733, 32730, 32727, 32724, 32721, 32718, 32714,
-  32711, 32707, 32704, 32700, 32696, 32692, 32688, 32684,
-  32680, 32675, 32671, 32666, 32661, 32657, 32652, 32647,
-  32642, 32636, 32631, 32625, 32620, 32614, 32608, 32603,
-  32597, 32590, 32584, 32578, 32572, 32565, 32558, 32552,
-  32545, 32538, 32531, 32524, 32516, 32509, 32502, 32494,
-  32486, 32479, 32471, 32463, 32455, 32446, 32438, 32430,
-  32421, 32412, 32404, 32395, 32386, 32377, 32368, 32358,
-  32349, 32340, 32330, 32320, 32311, 32301, 32291, 32281,
-  32270, 32260, 32250, 32239, 32229, 32218, 32207, 32196,
-  32185, 32174, 32163, 32151, 32140, 32128, 32117, 32105,
-  32093, 32081, 32069, 32057, 32045, 32032, 32020, 32007,
-  31994, 31982, 31969, 31956, 31943, 31929, 31916, 31903,
-  31889, 31876, 31862, 31848, 31834, 31820, 31806, 31792,
-  31777, 31763, 31749, 31734, 31719, 31704, 31689, 31674,
-  31659, 31644, 31629, 31613, 31598, 31582, 31566, 31551,
-  31535, 31519, 31502, 31486, 31470, 31453, 31437, 31420,
-  31404, 31387, 31370, 31353, 31336, 31318, 31301, 31284,
-  31266, 31249, 31231, 31213, 31195, 31177, 31159, 31141,
-  31123, 31104, 31086, 31067, 31048, 31030, 31011, 30992,
-  30973, 30953, 30934, 30915, 30895, 30876, 30856, 30836,
-  30817, 30797, 30777, 30756, 30736, 30716, 30696, 30675,
-  30654, 30634, 30613, 30592, 30571, 30550, 30529, 30508,
-  30486, 30465, 30443, 30422, 30400, 30378, 30356, 30334,
-  30312, 30290, 30267, 30245, 30223, 30200, 30177, 30155,
-  30132, 30109, 30086, 30063, 30039, 30016, 29993, 29969,
-  29946, 29922, 29898, 29874, 29851, 29827, 29802, 29778,
-  29754, 29730, 29705, 29681, 29656, 29631, 29606, 29581,
-  29556, 29531, 29506, 29481, 29456, 29430, 29405, 29379,
-  29353, 29327, 29302, 29276, 29250, 29223, 29197, 29171,
-  29145, 29118, 29092, 29065, 29038, 29011, 28984, 28957,
-  28930, 28903, 28876, 28849, 28821, 28794, 28766, 28738,
-  28711, 28683, 28655, 28627, 28599, 28571, 28543, 28514,
-  28486, 28457, 28429, 28400, 28371, 28343, 28314, 28285,
-  28256, 28227, 28197, 28168, 28139, 28109, 28080, 28050,
-  28020, 27991, 27961, 27931, 27901, 27871, 27841, 27810,
-  27780, 27750, 27719, 27689, 27658, 27627, 27597, 27566,
-  27535, 27504, 27473, 27441, 27410, 27379, 27348, 27316,
-  27285, 27253, 27221, 27189, 27158, 27126, 27094, 27062,
-  27030, 26997, 26965, 26933, 26900, 26868, 26835, 26803,
-  26770, 26737, 26704, 26671, 26638, 26605, 26572, 26539,
-  26506, 26472, 26439, 26405, 26372, 26338, 26305, 26271,
-  26237, 26203, 26169, 26135, 26101, 26067, 26033, 25998,
-  25964, 25929, 25895, 25860, 25826, 25791, 25756, 25721,
-  25686, 25651, 25616, 25581, 25546, 25511, 25476, 25440,
-  25405, 25369, 25334, 25298, 25262, 25227, 25191, 25155,
-  25119, 25083, 25047, 25011, 24975, 24939, 24902, 24866,
-  24830, 24793, 24756, 24720, 24683, 24647, 24610, 24573,
-  24536, 24499, 24462, 24425, 24388, 24351, 24313, 24276,
-  24239, 24201, 24164, 24126, 24089, 24051, 24013, 23976,
-  23938, 23900, 23862, 23824, 23786, 23748, 23710, 23672,
-  23633, 23595, 23557, 23518, 23480, 23441, 23403, 23364,
-  23326, 23287, 23248, 23209, 23170, 23131, 23092, 23053,
-  23014, 22975, 22936, 22897, 22858, 22818, 22779, 22739,
-  22700, 22660, 22621, 22581, 22542, 22502, 22462, 22422,
-  22383, 22343, 22303, 22263, 22223, 22183, 22142, 22102,
-  22062, 22022, 21982, 21941, 21901, 21860, 21820, 21779,
-  21739, 21698, 21658, 21617, 21576, 21535, 21495, 21454,
-  21413, 21372, 21331, 21290, 21249, 21208, 21167, 21125,
-  21084, 21043, 21002, 20960, 20919, 20878, 20836, 20795,
-  20753, 20712, 20670, 20628, 20587, 20545, 20503, 20461,
-  20420, 20378, 20336, 20294, 20252, 20210, 20168, 20126,
-  20084, 20042, 20000, 19957, 19915, 19873, 19831, 19788,
-  19746, 19704, 19661, 19619, 19576, 19534, 19491, 19449,
-  19406, 19364, 19321, 19278, 19236, 19193, 19150, 19107,
-  19064, 19022, 18979, 18936, 18893, 18850, 18807, 18764,
-  18721, 18678, 18635, 18592, 18549, 18505, 18462, 18419,
-  18376, 18332, 18289, 18246, 18203, 18159, 18116, 18072,
-  18029, 17986, 17942, 17899, 17855, 17812, 17768, 17725,
-  17681, 17637, 17594, 17550, 17506, 17463, 17419, 17375,
-  17332, 17288, 17244, 17200, 17156, 17113, 17069, 17025,
-  16981, 16937, 16893, 16849, 16805, 16761, 16717, 16673,
-  16629, 16585, 16541, 16497, 16453, 16409, 16365, 16321,
-  16277, 16233, 16189, 16145, 16100, 16056, 16012, 15968,
-  15924, 15880, 15835, 15791, 15747, 15703, 15658, 15614,
-  15570, 15526, 15481, 15437, 15393, 15348, 15304, 15260,
-  15215, 15171, 15127, 15082, 15038, 14994, 14949, 14905,
-  14861, 14816, 14772, 14727, 14683, 14639, 14594, 14550,
-  14505, 14461, 14417, 14372, 14328, 14283, 14239, 14194,
-  14150, 14106, 14061, 14017, 13972, 13928, 13883, 13839,
-  13795, 13750, 13706, 13661, 13617, 13573, 13528, 13484,
-  13439, 13395, 13351, 13306, 13262, 13217, 13173, 13129,
-  13084, 13040, 12995, 12951, 12907, 12862, 12818, 12774,
-  12729, 12685, 12641, 12596, 12552, 12508, 12464, 12419,
-  12375, 12331, 12286, 12242, 12198, 12154, 12110, 12065,
-  12021, 11977, 11933, 11889, 11844, 11800, 11756, 11712,
-  11668, 11624, 11580, 11536, 11492, 11448, 11404, 11360,
-  11316, 11272, 11228, 11184, 11140, 11096, 11052, 11008,
-  10964, 10920, 10876, 10832, 10789, 10745, 10701, 10657,
-  10614, 10570, 10526, 10482, 10439, 10395, 10351, 10308,
-  10264, 10221, 10177, 10133, 10090, 10046, 10003,  9960,
-   9916,  9873,  9829,  9786,  9743,  9699,  9656,  9613,
-   9569,  9526,  9483,  9440,  9396,  9353,  9310,  9267,
-   9224,  9181,  9138,  9095,  9052,  9009,  8966,  8923,
-   8880,  8837,  8795,  8752,  8709,  8666,  8624,  8581,
-   8538,  8496,  8453,  8410,  8368,  8325,  8283,  8240,
-   8198,  8156,  8113,  8071,  8029,  7986,  7944,  7902,
-   7860,  7818,  7775,  7733,  7691,  7649,  7607,  7565,
-   7523,  7481,  7440,  7398,  7356,  7314,  7272,  7231,
-   7189,  7148,  7106,  7064,  7023,  6981,  6940,  6899,
-   6857,  6816,  6774,  6733,  6692,  6651,  6610,  6569,
-   6527,  6486,  6445,  6404,  6364,  6323,  6282,  6241,
-   6200,  6159,  6119,  6078,  6037,  5997,  5956,  5916,
-   5875,  5835,  5795,  5754,  5714,  5674,  5634,  5593,
-   5553,  5513,  5473,  5433,  5393,  5353,  5313,  5274,
-   5234,  5194,  5154,  5115,  5075,  5036,  4996,  4957,
-   4917,  4878,  4839,  4799,  4760,  4721,  4682,  4643,
-   4603,  4564,  4526,  4487,  4448,  4409,  4370,  4331,
-   4293,  4254,  4216,  4177,  4138,  4100,  4062,  4023,
-   3985,  3947,  3909,  3870,  3832,  3794,  3756,  3718,
-   3681,  3643,  3605,  3567,  3529,  3492,  3454,  3417,
-   3379,  3342,  3304,  3267,  3230,  3193,  3155,  3118,
-   3081,  3044,  3007,  2970,  2934,  2897,  2860,  2823,
-   2787,  2750,  2714,  2677,  2641,  2604,  2568,  2532,
-   2496,  2460,  2424,  2388,  2352,  2316,  2280,  2244,
-   2208,  2173,  2137,  2101,  2066,  2031,  1995,  1960,
-   1925,  1889,  1854,  1819,  1784,  1749,  1714,  1679,
-   1644,  1610,  1575,  1540,  1506,  1471,  1437,  1402,
-   1368,  1334,  1300,  1266,  1231,  1197,  1163,  1130,
-   1096,  1062,  1028,   995,   961,   927,   894,   861,
+    1130,  1163,  1197,  1231,  1266,  1300,  1334,  1368,
+    1402,  1437,  1471,  1506,  1540,  1575,  1610,  1644,
+    1679,  1714,  1749,  1784,  1819,  1854,  1889,  1925,
+    1960,  1995,  2031,  2066,  2101,  2137,  2173,  2208,
+    2244,  2280,  2316,  2352,  2388,  2424,  2460,  2496,
+    2532,  2568,  2604,  2641,  2677,  2714,  2750,  2787,
+    2823,  2860,  2897,  2934,  2970,  3007,  3044,  3081,
+    3118,  3155,  3193,  3230,  3267,  3304,  3342,  3379,
+    3417,  3454,  3492,  3529,  3567,  3605,  3643,  3681,
+    3718,  3756,  3794,  3832,  3870,  3909,  3947,  3985,
+    4023,  4062,  4100,  4138,  4177,  4216,  4254,  4293,
+    4331,  4370,  4409,  4448,  4487,  4526,  4564,  4603,
+    4643,  4682,  4721,  4760,  4799,  4839,  4878,  4917,
+    4957,  4996,  5036,  5075,  5115,  5154,  5194,  5234,
+    5274,  5313,  5353,  5393,  5433,  5473,  5513,  5553,
+    5593,  5634,  5674,  5714,  5754,  5795,  5835,  5875,
+    5916,  5956,  5997,  6037,  6078,  6119,  6159,  6200,
+    6241,  6282,  6323,  6364,  6404,  6445,  6486,  6527,
+    6569,  6610,  6651,  6692,  6733,  6774,  6816,  6857,
+    6899,  6940,  6981,  7023,  7064,  7106,  7148,  7189,
+    7231,  7272,  7314,  7356,  7398,  7440,  7481,  7523,
+    7565,  7607,  7649,  7691,  7733,  7775,  7818,  7860,
+    7902,  7944,  7986,  8029,  8071,  8113,  8156,  8198,
+    8240,  8283,  8325,  8368,  8410,  8453,  8496,  8538,
+    8581,  8624,  8666,  8709,  8752,  8795,  8837,  8880,
+    8923,  8966,  9009,  9052,  9095,  9138,  9181,  9224,
+    9267,  9310,  9353,  9396,  9440,  9483,  9526,  9569,
+    9613,  9656,  9699,  9743,  9786,  9829,  9873,  9916,
+    9960, 10003, 10046, 10090, 10133, 10177, 10221, 10264,
+    10308, 10351, 10395, 10439, 10482, 10526, 10570, 10614,
+    10657, 10701, 10745, 10789, 10832, 10876, 10920, 10964,
+    11008, 11052, 11096, 11140, 11184, 11228, 11272, 11316,
+    11360, 11404, 11448, 11492, 11536, 11580, 11624, 11668,
+    11712, 11756, 11800, 11844, 11889, 11933, 11977, 12021,
+    12065, 12110, 12154, 12198, 12242, 12286, 12331, 12375,
+    12419, 12464, 12508, 12552, 12596, 12641, 12685, 12729,
+    12774, 12818, 12862, 12907, 12951, 12995, 13040, 13084,
+    13129, 13173, 13217, 13262, 13306, 13351, 13395, 13439,
+    13484, 13528, 13573, 13617, 13661, 13706, 13750, 13795,
+    13839, 13883, 13928, 13972, 14017, 14061, 14106, 14150,
+    14194, 14239, 14283, 14328, 14372, 14417, 14461, 14505,
+    14550, 14594, 14639, 14683, 14727, 14772, 14816, 14861,
+    14905, 14949, 14994, 15038, 15082, 15127, 15171, 15215,
+    15260, 15304, 15348, 15393, 15437, 15481, 15526, 15570,
+    15614, 15658, 15703, 15747, 15791, 15835, 15880, 15924,
+    15968, 16012, 16056, 16100, 16145, 16189, 16233, 16277,
+    16321, 16365, 16409, 16453, 16497, 16541, 16585, 16629,
+    16673, 16717, 16761, 16805, 16849, 16893, 16937, 16981,
+    17025, 17069, 17113, 17156, 17200, 17244, 17288, 17332,
+    17375, 17419, 17463, 17506, 17550, 17594, 17637, 17681,
+    17725, 17768, 17812, 17855, 17899, 17942, 17986, 18029,
+    18072, 18116, 18159, 18203, 18246, 18289, 18332, 18376,
+    18419, 18462, 18505, 18549, 18592, 18635, 18678, 18721,
+    18764, 18807, 18850, 18893, 18936, 18979, 19022, 19064,
+    19107, 19150, 19193, 19236, 19278, 19321, 19364, 19406,
+    19449, 19491, 19534, 19576, 19619, 19661, 19704, 19746,
+    19788, 19831, 19873, 19915, 19957, 20000, 20042, 20084,
+    20126, 20168, 20210, 20252, 20294, 20336, 20378, 20420,
+    20461, 20503, 20545, 20587, 20628, 20670, 20712, 20753,
+    20795, 20836, 20878, 20919, 20960, 21002, 21043, 21084,
+    21125, 21167, 21208, 21249, 21290, 21331, 21372, 21413,
+    21454, 21495, 21535, 21576, 21617, 21658, 21698, 21739,
+    21779, 21820, 21860, 21901, 21941, 21982, 22022, 22062,
+    22102, 22142, 22183, 22223, 22263, 22303, 22343, 22383,
+    22422, 22462, 22502, 22542, 22581, 22621, 22660, 22700,
+    22739, 22779, 22818, 22858, 22897, 22936, 22975, 23014,
+    23053, 23092, 23131, 23170, 23209, 23248, 23287, 23326,
+    23364, 23403, 23441, 23480, 23518, 23557, 23595, 23633,
+    23672, 23710, 23748, 23786, 23824, 23862, 23900, 23938,
+    23976, 24013, 24051, 24089, 24126, 24164, 24201, 24239,
+    24276, 24313, 24351, 24388, 24425, 24462, 24499, 24536,
+    24573, 24610, 24647, 24683, 24720, 24756, 24793, 24830,
+    24866, 24902, 24939, 24975, 25011, 25047, 25083, 25119,
+    25155, 25191, 25227, 25262, 25298, 25334, 25369, 25405,
+    25440, 25476, 25511, 25546, 25581, 25616, 25651, 25686,
+    25721, 25756, 25791, 25826, 25860, 25895, 25929, 25964,
+    25998, 26033, 26067, 26101, 26135, 26169, 26203, 26237,
+    26271, 26305, 26338, 26372, 26405, 26439, 26472, 26506,
+    26539, 26572, 26605, 26638, 26671, 26704, 26737, 26770,
+    26803, 26835, 26868, 26900, 26933, 26965, 26997, 27030,
+    27062, 27094, 27126, 27158, 27189, 27221, 27253, 27285,
+    27316, 27348, 27379, 27410, 27441, 27473, 27504, 27535,
+    27566, 27597, 27627, 27658, 27689, 27719, 27750, 27780,
+    27810, 27841, 27871, 27901, 27931, 27961, 27991, 28020,
+    28050, 28080, 28109, 28139, 28168, 28197, 28227, 28256,
+    28285, 28314, 28343, 28371, 28400, 28429, 28457, 28486,
+    28514, 28543, 28571, 28599, 28627, 28655, 28683, 28711,
+    28738, 28766, 28794, 28821, 28849, 28876, 28903, 28930,
+    28957, 28984, 29011, 29038, 29065, 29092, 29118, 29145,
+    29171, 29197, 29223, 29250, 29276, 29302, 29327, 29353,
+    29379, 29405, 29430, 29456, 29481, 29506, 29531, 29556,
+    29581, 29606, 29631, 29656, 29681, 29705, 29730, 29754,
+    29778, 29802, 29827, 29851, 29874, 29898, 29922, 29946,
+    29969, 29993, 30016, 30039, 30063, 30086, 30109, 30132,
+    30155, 30177, 30200, 30223, 30245, 30267, 30290, 30312,
+    30334, 30356, 30378, 30400, 30422, 30443, 30465, 30486,
+    30508, 30529, 30550, 30571, 30592, 30613, 30634, 30654,
+    30675, 30696, 30716, 30736, 30756, 30777, 30797, 30817,
+    30836, 30856, 30876, 30895, 30915, 30934, 30953, 30973,
+    30992, 31011, 31030, 31048, 31067, 31086, 31104, 31123,
+    31141, 31159, 31177, 31195, 31213, 31231, 31249, 31266,
+    31284, 31301, 31318, 31336, 31353, 31370, 31387, 31404,
+    31420, 31437, 31453, 31470, 31486, 31502, 31519, 31535,
+    31551, 31566, 31582, 31598, 31613, 31629, 31644, 31659,
+    31674, 31689, 31704, 31719, 31734, 31749, 31763, 31777,
+    31792, 31806, 31820, 31834, 31848, 31862, 31876, 31889,
+    31903, 31916, 31929, 31943, 31956, 31969, 31982, 31994,
+    32007, 32020, 32032, 32045, 32057, 32069, 32081, 32093,
+    32105, 32117, 32128, 32140, 32151, 32163, 32174, 32185,
+    32196, 32207, 32218, 32229, 32239, 32250, 32260, 32270,
+    32281, 32291, 32301, 32311, 32320, 32330, 32340, 32349,
+    32358, 32368, 32377, 32386, 32395, 32404, 32412, 32421,
+    32430, 32438, 32446, 32455, 32463, 32471, 32479, 32486,
+    32494, 32502, 32509, 32516, 32524, 32531, 32538, 32545,
+    32552, 32558, 32565, 32572, 32578, 32584, 32590, 32597,
+    32603, 32608, 32614, 32620, 32625, 32631, 32636, 32642,
+    32647, 32652, 32657, 32661, 32666, 32671, 32675, 32680,
+    32684, 32688, 32692, 32696, 32700, 32704, 32707, 32711,
+    32714, 32718, 32721, 32724, 32727, 32730, 32733, 32735,
+    32738, 32740, 32743, 32745, 32747, 32749, 32751, 32753,
+    32755, 32756, 32758, 32759, 32760, 32762, 32763, 32764,
+    32764, 32765, 32766, 32766, 32767, 32767, 32767, 32767,
+    32767, 32767, 32767, 32767, 32766, 32766, 32765, 32764,
+    32764, 32763, 32762, 32760, 32759, 32758, 32756, 32755,
+    32753, 32751, 32749, 32747, 32745, 32743, 32740, 32738,
+    32735, 32733, 32730, 32727, 32724, 32721, 32718, 32714,
+    32711, 32707, 32704, 32700, 32696, 32692, 32688, 32684,
+    32680, 32675, 32671, 32666, 32661, 32657, 32652, 32647,
+    32642, 32636, 32631, 32625, 32620, 32614, 32608, 32603,
+    32597, 32590, 32584, 32578, 32572, 32565, 32558, 32552,
+    32545, 32538, 32531, 32524, 32516, 32509, 32502, 32494,
+    32486, 32479, 32471, 32463, 32455, 32446, 32438, 32430,
+    32421, 32412, 32404, 32395, 32386, 32377, 32368, 32358,
+    32349, 32340, 32330, 32320, 32311, 32301, 32291, 32281,
+    32270, 32260, 32250, 32239, 32229, 32218, 32207, 32196,
+    32185, 32174, 32163, 32151, 32140, 32128, 32117, 32105,
+    32093, 32081, 32069, 32057, 32045, 32032, 32020, 32007,
+    31994, 31982, 31969, 31956, 31943, 31929, 31916, 31903,
+    31889, 31876, 31862, 31848, 31834, 31820, 31806, 31792,
+    31777, 31763, 31749, 31734, 31719, 31704, 31689, 31674,
+    31659, 31644, 31629, 31613, 31598, 31582, 31566, 31551,
+    31535, 31519, 31502, 31486, 31470, 31453, 31437, 31420,
+    31404, 31387, 31370, 31353, 31336, 31318, 31301, 31284,
+    31266, 31249, 31231, 31213, 31195, 31177, 31159, 31141,
+    31123, 31104, 31086, 31067, 31048, 31030, 31011, 30992,
+    30973, 30953, 30934, 30915, 30895, 30876, 30856, 30836,
+    30817, 30797, 30777, 30756, 30736, 30716, 30696, 30675,
+    30654, 30634, 30613, 30592, 30571, 30550, 30529, 30508,
+    30486, 30465, 30443, 30422, 30400, 30378, 30356, 30334,
+    30312, 30290, 30267, 30245, 30223, 30200, 30177, 30155,
+    30132, 30109, 30086, 30063, 30039, 30016, 29993, 29969,
+    29946, 29922, 29898, 29874, 29851, 29827, 29802, 29778,
+    29754, 29730, 29705, 29681, 29656, 29631, 29606, 29581,
+    29556, 29531, 29506, 29481, 29456, 29430, 29405, 29379,
+    29353, 29327, 29302, 29276, 29250, 29223, 29197, 29171,
+    29145, 29118, 29092, 29065, 29038, 29011, 28984, 28957,
+    28930, 28903, 28876, 28849, 28821, 28794, 28766, 28738,
+    28711, 28683, 28655, 28627, 28599, 28571, 28543, 28514,
+    28486, 28457, 28429, 28400, 28371, 28343, 28314, 28285,
+    28256, 28227, 28197, 28168, 28139, 28109, 28080, 28050,
+    28020, 27991, 27961, 27931, 27901, 27871, 27841, 27810,
+    27780, 27750, 27719, 27689, 27658, 27627, 27597, 27566,
+    27535, 27504, 27473, 27441, 27410, 27379, 27348, 27316,
+    27285, 27253, 27221, 27189, 27158, 27126, 27094, 27062,
+    27030, 26997, 26965, 26933, 26900, 26868, 26835, 26803,
+    26770, 26737, 26704, 26671, 26638, 26605, 26572, 26539,
+    26506, 26472, 26439, 26405, 26372, 26338, 26305, 26271,
+    26237, 26203, 26169, 26135, 26101, 26067, 26033, 25998,
+    25964, 25929, 25895, 25860, 25826, 25791, 25756, 25721,
+    25686, 25651, 25616, 25581, 25546, 25511, 25476, 25440,
+    25405, 25369, 25334, 25298, 25262, 25227, 25191, 25155,
+    25119, 25083, 25047, 25011, 24975, 24939, 24902, 24866,
+    24830, 24793, 24756, 24720, 24683, 24647, 24610, 24573,
+    24536, 24499, 24462, 24425, 24388, 24351, 24313, 24276,
+    24239, 24201, 24164, 24126, 24089, 24051, 24013, 23976,
+    23938, 23900, 23862, 23824, 23786, 23748, 23710, 23672,
+    23633, 23595, 23557, 23518, 23480, 23441, 23403, 23364,
+    23326, 23287, 23248, 23209, 23170, 23131, 23092, 23053,
+    23014, 22975, 22936, 22897, 22858, 22818, 22779, 22739,
+    22700, 22660, 22621, 22581, 22542, 22502, 22462, 22422,
+    22383, 22343, 22303, 22263, 22223, 22183, 22142, 22102,
+    22062, 22022, 21982, 21941, 21901, 21860, 21820, 21779,
+    21739, 21698, 21658, 21617, 21576, 21535, 21495, 21454,
+    21413, 21372, 21331, 21290, 21249, 21208, 21167, 21125,
+    21084, 21043, 21002, 20960, 20919, 20878, 20836, 20795,
+    20753, 20712, 20670, 20628, 20587, 20545, 20503, 20461,
+    20420, 20378, 20336, 20294, 20252, 20210, 20168, 20126,
+    20084, 20042, 20000, 19957, 19915, 19873, 19831, 19788,
+    19746, 19704, 19661, 19619, 19576, 19534, 19491, 19449,
+    19406, 19364, 19321, 19278, 19236, 19193, 19150, 19107,
+    19064, 19022, 18979, 18936, 18893, 18850, 18807, 18764,
+    18721, 18678, 18635, 18592, 18549, 18505, 18462, 18419,
+    18376, 18332, 18289, 18246, 18203, 18159, 18116, 18072,
+    18029, 17986, 17942, 17899, 17855, 17812, 17768, 17725,
+    17681, 17637, 17594, 17550, 17506, 17463, 17419, 17375,
+    17332, 17288, 17244, 17200, 17156, 17113, 17069, 17025,
+    16981, 16937, 16893, 16849, 16805, 16761, 16717, 16673,
+    16629, 16585, 16541, 16497, 16453, 16409, 16365, 16321,
+    16277, 16233, 16189, 16145, 16100, 16056, 16012, 15968,
+    15924, 15880, 15835, 15791, 15747, 15703, 15658, 15614,
+    15570, 15526, 15481, 15437, 15393, 15348, 15304, 15260,
+    15215, 15171, 15127, 15082, 15038, 14994, 14949, 14905,
+    14861, 14816, 14772, 14727, 14683, 14639, 14594, 14550,
+    14505, 14461, 14417, 14372, 14328, 14283, 14239, 14194,
+    14150, 14106, 14061, 14017, 13972, 13928, 13883, 13839,
+    13795, 13750, 13706, 13661, 13617, 13573, 13528, 13484,
+    13439, 13395, 13351, 13306, 13262, 13217, 13173, 13129,
+    13084, 13040, 12995, 12951, 12907, 12862, 12818, 12774,
+    12729, 12685, 12641, 12596, 12552, 12508, 12464, 12419,
+    12375, 12331, 12286, 12242, 12198, 12154, 12110, 12065,
+    12021, 11977, 11933, 11889, 11844, 11800, 11756, 11712,
+    11668, 11624, 11580, 11536, 11492, 11448, 11404, 11360,
+    11316, 11272, 11228, 11184, 11140, 11096, 11052, 11008,
+    10964, 10920, 10876, 10832, 10789, 10745, 10701, 10657,
+    10614, 10570, 10526, 10482, 10439, 10395, 10351, 10308,
+    10264, 10221, 10177, 10133, 10090, 10046, 10003,  9960,
+    9916,  9873,  9829,  9786,  9743,  9699,  9656,  9613,
+    9569,  9526,  9483,  9440,  9396,  9353,  9310,  9267,
+    9224,  9181,  9138,  9095,  9052,  9009,  8966,  8923,
+    8880,  8837,  8795,  8752,  8709,  8666,  8624,  8581,
+    8538,  8496,  8453,  8410,  8368,  8325,  8283,  8240,
+    8198,  8156,  8113,  8071,  8029,  7986,  7944,  7902,
+    7860,  7818,  7775,  7733,  7691,  7649,  7607,  7565,
+    7523,  7481,  7440,  7398,  7356,  7314,  7272,  7231,
+    7189,  7148,  7106,  7064,  7023,  6981,  6940,  6899,
+    6857,  6816,  6774,  6733,  6692,  6651,  6610,  6569,
+    6527,  6486,  6445,  6404,  6364,  6323,  6282,  6241,
+    6200,  6159,  6119,  6078,  6037,  5997,  5956,  5916,
+    5875,  5835,  5795,  5754,  5714,  5674,  5634,  5593,
+    5553,  5513,  5473,  5433,  5393,  5353,  5313,  5274,
+    5234,  5194,  5154,  5115,  5075,  5036,  4996,  4957,
+    4917,  4878,  4839,  4799,  4760,  4721,  4682,  4643,
+    4603,  4564,  4526,  4487,  4448,  4409,  4370,  4331,
+    4293,  4254,  4216,  4177,  4138,  4100,  4062,  4023,
+    3985,  3947,  3909,  3870,  3832,  3794,  3756,  3718,
+    3681,  3643,  3605,  3567,  3529,  3492,  3454,  3417,
+    3379,  3342,  3304,  3267,  3230,  3193,  3155,  3118,
+    3081,  3044,  3007,  2970,  2934,  2897,  2860,  2823,
+    2787,  2750,  2714,  2677,  2641,  2604,  2568,  2532,
+    2496,  2460,  2424,  2388,  2352,  2316,  2280,  2244,
+    2208,  2173,  2137,  2101,  2066,  2031,  1995,  1960,
+    1925,  1889,  1854,  1819,  1784,  1749,  1714,  1679,
+    1644,  1610,  1575,  1540,  1506,  1471,  1437,  1402,
+    1368,  1334,  1300,  1266,  1231,  1197,  1163,  1130,
+    1096,  1062,  1028,   995,   961,   927,   894,   861,
     827,   794,   761,   728,   694,   661,   628,   596,
     563,   530,   497,   465,   432,   399,   367,   335,
     302,   270,   238,   206,   174,   142,   110,    78,
-     46,    14,   -17,   -49,   -81,  -112,  -143,  -175,
-   -206,  -237,  -268,  -300,  -331,  -362,  -392,  -423,
-   -454,  -485,  -515,  -546,  -576,  -607,  -637,  -667,
-   -698,  -728,  -758,  -788,  -818,  -848,  -877,  -907,
-   -937,  -966,  -996, -1025, -1055, -1084, -1113, -1142,
-  -1172, -1201, -1230, -1258, -1287, -1316, -1345, -1373,
-  -1402, -1430, -1459, -1487, -1515, -1544, -1572, -1600,
-  -1628, -1656, -1683, -1711, -1739, -1767, -1794, -1822,
-  -1849, -1876, -1904, -1931, -1958, -1985, -2012, -2039,
-  -2066, -2092, -2119, -2146, -2172, -2199, -2225, -2251,
-  -2278, -2304, -2330, -2356, -2382, -2408, -2434, -2459,
-  -2485, -2511, -2536, -2562, -2587, -2612, -2638, -2663,
-  -2688, -2713, -2738, -2763, -2787, -2812, -2837, -2861,
-  -2886, -2910, -2934, -2959, -2983, -3007, -3031, -3055,
-  -3079, -3103, -3126, -3150, -3174, -3197, -3221, -3244,
-  -3267, -3290, -3314, -3337, -3360, -3383, -3405, -3428,
-  -3451, -3473, -3496, -3518, -3541, -3563, -3585, -3607,
-  -3629, -3651, -3673, -3695, -3717, -3739, -3760, -3782,
-  -3803, -3825, -3846, -3867, -3888, -3909, -3930, -3951,
-  -3972, -3993, -4014, -4034, -4055, -4075, -4096, -4116,
-  -4136, -4156, -4176, -4196, -4216, -4236, -4256, -4276,
-  -4295, -4315, -4334, -4354, -4373, -4392, -4411, -4430,
-  -4449, -4468, -4487, -4506, -4524, -4543, -4562, -4580,
-  -4598, -4617, -4635, -4653, -4671, -4689, -4707, -4725,
-  -4743, -4760, -4778, -4795, -4813, -4830, -4847, -4865,
-  -4882, -4899, -4916, -4933, -4950, -4966, -4983, -4999,
-  -5016, -5032, -5049, -5065, -5081, -5097, -5113, -5129,
-  -5145, -5161, -5177, -5192, -5208, -5223, -5239, -5254,
-  -5269, -5285, -5300, -5315, -5330, -5345, -5359, -5374,
-  -5389, -5403, -5418, -5432, -5447, -5461, -5475, -5489,
-  -5503, -5517, -5531, -5545, -5558, -5572, -5585, -5599,
-  -5612, -5626, -5639, -5652, -5665, -5678, -5691, -5704,
-  -5717, -5729, -5742, -5755, -5767, -5779, -5792, -5804,
-  -5816, -5828, -5840, -5852, -5864, -5876, -5887, -5899,
-  -5911, -5922, -5933, -5945, -5956, -5967, -5978, -5989,
-  -6000, -6011, -6022, -6032, -6043, -6054, -6064, -6074,
-  -6085, -6095, -6105, -6115, -6125, -6135, -6145, -6155,
-  -6164, -6174, -6184, -6193, -6202, -6212, -6221, -6230,
-  -6239, -6248, -6257, -6266, -6275, -6284, -6292, -6301,
-  -6309, -6318, -6326, -6334, -6343, -6351, -6359, -6367,
-  -6374, -6382, -6390, -6398, -6405, -6413, -6420, -6428,
-  -6435, -6442, -6449, -6456, -6463, -6470, -6477, -6484,
-  -6491, -6497, -6504, -6510, -6517, -6523, -6529, -6535,
-  -6541, -6547, -6553, -6559, -6565, -6571, -6576, -6582,
-  -6588, -6593, -6598, -6604, -6609, -6614, -6619, -6624,
-  -6629, -6634, -6639, -6643, -6648, -6653, -6657, -6662,
-  -6666, -6670, -6674, -6679, -6683, -6687, -6691, -6694,
-  -6698, -6702, -6706, -6709, -6713, -6716, -6719, -6723,
-  -6726, -6729, -6732, -6735, -6738, -6741, -6744, -6747,
-  -6749, -6752, -6754, -6757, -6759, -6761, -6764, -6766,
-  -6768, -6770, -6772, -6774, -6776, -6777, -6779, -6781,
-  -6782, -6784, -6785, -6786, -6788, -6789, -6790, -6791,
-  -6792, -6793, -6794, -6795, -6795, -6796, -6797, -6797,
-  -6798, -6798, -6798, -6799, -6799, -6799, -6799, -6799,
-  -6799, -6799, -6799, -6798, -6798, -6798, -6797, -6797,
-  -6796, -6795, -6795, -6794, -6793, -6792, -6791, -6790,
-  -6789, -6788, -6787, -6785, -6784, -6783, -6781, -6779,
-  -6778, -6776, -6774, -6773, -6771, -6769, -6767, -6765,
-  -6763, -6760, -6758, -6756, -6753, -6751, -6748, -6746,
-  -6743, -6741, -6738, -6735, -6732, -6729, -6726, -6723,
-  -6720, -6717, -6714, -6710, -6707, -6703, -6700, -6696,
-  -6693, -6689, -6685, -6682, -6678, -6674, -6670, -6666,
-  -6662, -6658, -6654, -6649, -6645, -6641, -6636, -6632,
-  -6627, -6623, -6618, -6613, -6608, -6604, -6599, -6594,
-  -6589, -6584, -6579, -6573, -6568, -6563, -6558, -6552,
-  -6547, -6541, -6536, -6530, -6524, -6519, -6513, -6507,
-  -6501, -6495, -6489, -6483, -6477, -6471, -6464, -6458,
-  -6452, -6445, -6439, -6433, -6426, -6419, -6413, -6406,
-  -6399, -6392, -6386, -6379, -6372, -6365, -6358, -6350,
-  -6343, -6336, -6329, -6321, -6314, -6307, -6299, -6292,
-  -6284, -6276, -6269, -6261, -6253, -6245, -6238, -6230,
-  -6222, -6214, -6205, -6197, -6189, -6181, -6173, -6164,
-  -6156, -6148, -6139, -6131, -6122, -6113, -6105, -6096,
-  -6087, -6078, -6070, -6061, -6052, -6043, -6034, -6025,
-  -6016, -6006, -5997, -5988, -5979, -5969, -5960, -5950,
-  -5941, -5931, -5922, -5912, -5903, -5893, -5883, -5873,
-  -5863, -5854, -5844, -5834, -5824, -5814, -5804, -5793,
-  -5783, -5773, -5763, -5752, -5742, -5732, -5721, -5711,
-  -5700, -5690, -5679, -5668, -5658, -5647, -5636, -5626,
-  -5615, -5604, -5593, -5582, -5571, -5560, -5549, -5538,
-  -5527, -5515, -5504, -5493, -5482, -5470, -5459, -5447,
-  -5436, -5424, -5413, -5401, -5390, -5378, -5366, -5355,
-  -5343, -5331, -5319, -5308, -5296, -5284, -5272, -5260,
-  -5248, -5236, -5224, -5211, -5199, -5187, -5175, -5162,
-  -5150, -5138, -5125, -5113, -5101, -5088, -5076, -5063,
-  -5051, -5038, -5025, -5013, -5000, -4987, -4974, -4962,
-  -4949, -4936, -4923, -4910, -4897, -4884, -4871, -4858,
-  -4845, -4832, -4819, -4806, -4793, -4779, -4766, -4753,
-  -4740, -4726, -4713, -4699, -4686, -4673, -4659, -4646,
-  -4632, -4619, -4605, -4591, -4578, -4564, -4550, -4537,
-  -4523, -4509, -4495, -4482, -4468, -4454, -4440, -4426,
-  -4412, -4398, -4384, -4370, -4356, -4342, -4328, -4314,
-  -4300, -4286, -4271, -4257, -4243, -4229, -4215, -4200,
-  -4186, -4172, -4157, -4143, -4128, -4114, -4100, -4085,
-  -4071, -4056, -4042, -4027, -4012, -3998, -3983, -3969,
-  -3954, -3939, -3925, -3910, -3895, -3881, -3866, -3851,
-  -3836, -3821, -3807, -3792, -3777, -3762, -3747, -3732,
-  -3717, -3702, -3687, -3672, -3657, -3642, -3627, -3612,
-  -3597, -3582, -3567, -3552, -3537, -3521, -3506, -3491,
-  -3476, -3461, -3446, -3430, -3415, -3400, -3385, -3369,
-  -3354, -3339, -3323, -3308, -3293, -3277, -3262, -3246,
-  -3231, -3216, -3200, -3185, -3169, -3154, -3138, -3123,
-  -3107, -3092, -3076, -3061, -3045, -3030, -3014, -2999,
-  -2983, -2968, -2952, -2936, -2921, -2905, -2890, -2874,
-  -2858, -2843, -2827, -2811, -2796, -2780, -2764, -2749,
-  -2733, -2717, -2701, -2686, -2670, -2654, -2639, -2623,
-  -2607, -2591, -2576, -2560, -2544, -2528, -2512, -2497,
-  -2481, -2465, -2449, -2433, -2418, -2402, -2386, -2370,
-  -2354, -2339, -2323, -2307, -2291, -2275, -2259, -2244,
-  -2228, -2212, -2196, -2180, -2164, -2148, -2133, -2117,
-  -2101, -2085, -2069, -2053, -2037, -2022, -2006, -1990,
-  -1974, -1958, -1942, -1926, -1911, -1895, -1879, -1863,
-  -1847, -1831, -1815, -1800, -1784, -1768, -1752, -1736,
-  -1720, -1705, -1689, -1673, -1657, -1641, -1625, -1610,
-  -1594, -1578, -1562, -1546, -1531, -1515, -1499, -1483,
-  -1467, -1452, -1436, -1420, -1404, -1389, -1373, -1357,
-  -1341, -1326, -1310, -1294, -1278, -1263, -1247, -1231,
-  -1216, -1200, -1184, -1169, -1153, -1137, -1122, -1106,
-  -1091, -1075, -1059, -1044, -1028, -1013,  -997,  -981,
-   -966,  -950,  -935,  -919,  -904,  -888,  -873,  -857,
-   -842,  -826,  -811,  -795,  -780,  -765,  -749,  -734,
-   -718,  -703,  -688,  -672,  -657,  -642,  -626,  -611,
-   -596,  -580,  -565,  -550,  -535,  -519,  -504,  -489,
-   -474,  -459,  -443,  -428,  -413,  -398,  -383,  -368,
-   -353,  -338,  -323,  -308,  -293,  -278,  -263,  -248,
-   -233,  -218,  -203,  -188,  -173,  -158,  -143,  -128,
-   -114,   -99,   -84,   -69,   -54,   -40,   -25,   -10,
-      5,    19,    34,    49,    63,    78,    92,   107,
+    46,    14,   -17,   -49,   -81,  -112,  -143,  -175,
+    -206,  -237,  -268,  -300,  -331,  -362,  -392,  -423,
+    -454,  -485,  -515,  -546,  -576,  -607,  -637,  -667,
+    -698,  -728,  -758,  -788,  -818,  -848,  -877,  -907,
+    -937,  -966,  -996, -1025, -1055, -1084, -1113, -1142,
+    -1172, -1201, -1230, -1258, -1287, -1316, -1345, -1373,
+    -1402, -1430, -1459, -1487, -1515, -1544, -1572, -1600,
+    -1628, -1656, -1683, -1711, -1739, -1767, -1794, -1822,
+    -1849, -1876, -1904, -1931, -1958, -1985, -2012, -2039,
+    -2066, -2092, -2119, -2146, -2172, -2199, -2225, -2251,
+    -2278, -2304, -2330, -2356, -2382, -2408, -2434, -2459,
+    -2485, -2511, -2536, -2562, -2587, -2612, -2638, -2663,
+    -2688, -2713, -2738, -2763, -2787, -2812, -2837, -2861,
+    -2886, -2910, -2934, -2959, -2983, -3007, -3031, -3055,
+    -3079, -3103, -3126, -3150, -3174, -3197, -3221, -3244,
+    -3267, -3290, -3314, -3337, -3360, -3383, -3405, -3428,
+    -3451, -3473, -3496, -3518, -3541, -3563, -3585, -3607,
+    -3629, -3651, -3673, -3695, -3717, -3739, -3760, -3782,
+    -3803, -3825, -3846, -3867, -3888, -3909, -3930, -3951,
+    -3972, -3993, -4014, -4034, -4055, -4075, -4096, -4116,
+    -4136, -4156, -4176, -4196, -4216, -4236, -4256, -4276,
+    -4295, -4315, -4334, -4354, -4373, -4392, -4411, -4430,
+    -4449, -4468, -4487, -4506, -4524, -4543, -4562, -4580,
+    -4598, -4617, -4635, -4653, -4671, -4689, -4707, -4725,
+    -4743, -4760, -4778, -4795, -4813, -4830, -4847, -4865,
+    -4882, -4899, -4916, -4933, -4950, -4966, -4983, -4999,
+    -5016, -5032, -5049, -5065, -5081, -5097, -5113, -5129,
+    -5145, -5161, -5177, -5192, -5208, -5223, -5239, -5254,
+    -5269, -5285, -5300, -5315, -5330, -5345, -5359, -5374,
+    -5389, -5403, -5418, -5432, -5447, -5461, -5475, -5489,
+    -5503, -5517, -5531, -5545, -5558, -5572, -5585, -5599,
+    -5612, -5626, -5639, -5652, -5665, -5678, -5691, -5704,
+    -5717, -5729, -5742, -5755, -5767, -5779, -5792, -5804,
+    -5816, -5828, -5840, -5852, -5864, -5876, -5887, -5899,
+    -5911, -5922, -5933, -5945, -5956, -5967, -5978, -5989,
+    -6000, -6011, -6022, -6032, -6043, -6054, -6064, -6074,
+    -6085, -6095, -6105, -6115, -6125, -6135, -6145, -6155,
+    -6164, -6174, -6184, -6193, -6202, -6212, -6221, -6230,
+    -6239, -6248, -6257, -6266, -6275, -6284, -6292, -6301,
+    -6309, -6318, -6326, -6334, -6343, -6351, -6359, -6367,
+    -6374, -6382, -6390, -6398, -6405, -6413, -6420, -6428,
+    -6435, -6442, -6449, -6456, -6463, -6470, -6477, -6484,
+    -6491, -6497, -6504, -6510, -6517, -6523, -6529, -6535,
+    -6541, -6547, -6553, -6559, -6565, -6571, -6576, -6582,
+    -6588, -6593, -6598, -6604, -6609, -6614, -6619, -6624,
+    -6629, -6634, -6639, -6643, -6648, -6653, -6657, -6662,
+    -6666, -6670, -6674, -6679, -6683, -6687, -6691, -6694,
+    -6698, -6702, -6706, -6709, -6713, -6716, -6719, -6723,
+    -6726, -6729, -6732, -6735, -6738, -6741, -6744, -6747,
+    -6749, -6752, -6754, -6757, -6759, -6761, -6764, -6766,
+    -6768, -6770, -6772, -6774, -6776, -6777, -6779, -6781,
+    -6782, -6784, -6785, -6786, -6788, -6789, -6790, -6791,
+    -6792, -6793, -6794, -6795, -6795, -6796, -6797, -6797,
+    -6798, -6798, -6798, -6799, -6799, -6799, -6799, -6799,
+    -6799, -6799, -6799, -6798, -6798, -6798, -6797, -6797,
+    -6796, -6795, -6795, -6794, -6793, -6792, -6791, -6790,
+    -6789, -6788, -6787, -6785, -6784, -6783, -6781, -6779,
+    -6778, -6776, -6774, -6773, -6771, -6769, -6767, -6765,
+    -6763, -6760, -6758, -6756, -6753, -6751, -6748, -6746,
+    -6743, -6741, -6738, -6735, -6732, -6729, -6726, -6723,
+    -6720, -6717, -6714, -6710, -6707, -6703, -6700, -6696,
+    -6693, -6689, -6685, -6682, -6678, -6674, -6670, -6666,
+    -6662, -6658, -6654, -6649, -6645, -6641, -6636, -6632,
+    -6627, -6623, -6618, -6613, -6608, -6604, -6599, -6594,
+    -6589, -6584, -6579, -6573, -6568, -6563, -6558, -6552,
+    -6547, -6541, -6536, -6530, -6524, -6519, -6513, -6507,
+    -6501, -6495, -6489, -6483, -6477, -6471, -6464, -6458,
+    -6452, -6445, -6439, -6433, -6426, -6419, -6413, -6406,
+    -6399, -6392, -6386, -6379, -6372, -6365, -6358, -6350,
+    -6343, -6336, -6329, -6321, -6314, -6307, -6299, -6292,
+    -6284, -6276, -6269, -6261, -6253, -6245, -6238, -6230,
+    -6222, -6214, -6205, -6197, -6189, -6181, -6173, -6164,
+    -6156, -6148, -6139, -6131, -6122, -6113, -6105, -6096,
+    -6087, -6078, -6070, -6061, -6052, -6043, -6034, -6025,
+    -6016, -6006, -5997, -5988, -5979, -5969, -5960, -5950,
+    -5941, -5931, -5922, -5912, -5903, -5893, -5883, -5873,
+    -5863, -5854, -5844, -5834, -5824, -5814, -5804, -5793,
+    -5783, -5773, -5763, -5752, -5742, -5732, -5721, -5711,
+    -5700, -5690, -5679, -5668, -5658, -5647, -5636, -5626,
+    -5615, -5604, -5593, -5582, -5571, -5560, -5549, -5538,
+    -5527, -5515, -5504, -5493, -5482, -5470, -5459, -5447,
+    -5436, -5424, -5413, -5401, -5390, -5378, -5366, -5355,
+    -5343, -5331, -5319, -5308, -5296, -5284, -5272, -5260,
+    -5248, -5236, -5224, -5211, -5199, -5187, -5175, -5162,
+    -5150, -5138, -5125, -5113, -5101, -5088, -5076, -5063,
+    -5051, -5038, -5025, -5013, -5000, -4987, -4974, -4962,
+    -4949, -4936, -4923, -4910, -4897, -4884, -4871, -4858,
+    -4845, -4832, -4819, -4806, -4793, -4779, -4766, -4753,
+    -4740, -4726, -4713, -4699, -4686, -4673, -4659, -4646,
+    -4632, -4619, -4605, -4591, -4578, -4564, -4550, -4537,
+    -4523, -4509, -4495, -4482, -4468, -4454, -4440, -4426,
+    -4412, -4398, -4384, -4370, -4356, -4342, -4328, -4314,
+    -4300, -4286, -4271, -4257, -4243, -4229, -4215, -4200,
+    -4186, -4172, -4157, -4143, -4128, -4114, -4100, -4085,
+    -4071, -4056, -4042, -4027, -4012, -3998, -3983, -3969,
+    -3954, -3939, -3925, -3910, -3895, -3881, -3866, -3851,
+    -3836, -3821, -3807, -3792, -3777, -3762, -3747, -3732,
+    -3717, -3702, -3687, -3672, -3657, -3642, -3627, -3612,
+    -3597, -3582, -3567, -3552, -3537, -3521, -3506, -3491,
+    -3476, -3461, -3446, -3430, -3415, -3400, -3385, -3369,
+    -3354, -3339, -3323, -3308, -3293, -3277, -3262, -3246,
+    -3231, -3216, -3200, -3185, -3169, -3154, -3138, -3123,
+    -3107, -3092, -3076, -3061, -3045, -3030, -3014, -2999,
+    -2983, -2968, -2952, -2936, -2921, -2905, -2890, -2874,
+    -2858, -2843, -2827, -2811, -2796, -2780, -2764, -2749,
+    -2733, -2717, -2701, -2686, -2670, -2654, -2639, -2623,
+    -2607, -2591, -2576, -2560, -2544, -2528, -2512, -2497,
+    -2481, -2465, -2449, -2433, -2418, -2402, -2386, -2370,
+    -2354, -2339, -2323, -2307, -2291, -2275, -2259, -2244,
+    -2228, -2212, -2196, -2180, -2164, -2148, -2133, -2117,
+    -2101, -2085, -2069, -2053, -2037, -2022, -2006, -1990,
+    -1974, -1958, -1942, -1926, -1911, -1895, -1879, -1863,
+    -1847, -1831, -1815, -1800, -1784, -1768, -1752, -1736,
+    -1720, -1705, -1689, -1673, -1657, -1641, -1625, -1610,
+    -1594, -1578, -1562, -1546, -1531, -1515, -1499, -1483,
+    -1467, -1452, -1436, -1420, -1404, -1389, -1373, -1357,
+    -1341, -1326, -1310, -1294, -1278, -1263, -1247, -1231,
+    -1216, -1200, -1184, -1169, -1153, -1137, -1122, -1106,
+    -1091, -1075, -1059, -1044, -1028, -1013,  -997,  -981,
+    -966,  -950,  -935,  -919,  -904,  -888,  -873,  -857,
+    -842,  -826,  -811,  -795,  -780,  -765,  -749,  -734,
+    -718,  -703,  -688,  -672,  -657,  -642,  -626,  -611,
+    -596,  -580,  -565,  -550,  -535,  -519,  -504,  -489,
+    -474,  -459,  -443,  -428,  -413,  -398,  -383,  -368,
+    -353,  -338,  -323,  -308,  -293,  -278,  -263,  -248,
+    -233,  -218,  -203,  -188,  -173,  -158,  -143,  -128,
+    -114,   -99,   -84,   -69,   -54,   -40,   -25,   -10,
+    5,    19,    34,    49,    63,    78,    92,   107,
     122,   136,   151,   165,   180,   194,   209,   223,
     237,   252,   266,   280,   295,   309,   323,   338,
     352,   366,   380,   395,   409,   423,   437,   451,
@@ -1307,111 +1308,111 @@ static const float stationFilterConstants[] =
     688,   702,   715,   729,   743,   756,   770,   783,
     797,   811,   824,   838,   851,   864,   878,   891,
     905,   918,   931,   945,   958,   971,   984,   998,
-   1011,  1024,  1037,  1050,  1063,  1076,  1089,  1102,
-   1115,  1128,  1141,  1154,  1167,  1180,  1193,  1205,
-   1218,  1231,  1244,  1256,  1269,  1282,  1294,  1307,
-   1319,  1332,  1344,  1357,  1369,  1382,  1394,  1407,
-   1419,  1431,  1443,  1456,  1468,  1480,  1492,  1504,
-   1517,  1529,  1541,  1553,  1565,  1577,  1589,  1601,
-   1612,  1624,  1636,  1648,  1660,  1671,  1683,  1695,
-   1707,  1718,  1730,  1741,  1753,  1764,  1776,  1787,
-   1799,  1810,  1821,  1833,  1844,  1855,  1867,  1878,
-   1889,  1900,  1911,  1922,  1933,  1944,  1955,  1966,
-   1977,  1988,  1999,  2010,  2021,  2031,  2042,  2053,
-   2063,  2074,  2085,  2095,  2106,  2116,  2127,  2137,
-   2148,  2158,  2168,  2179,  2189,  2199,  2209,  2220,
-   2230,  2240,  2250,  2260,  2270,  2280,  2290,  2300,
-   2310,  2320,  2330,  2339,  2349,  2359,  2369,  2378,
-   2388,  2397,  2407,  2417,  2426,  2435,  2445,  2454,
-   2464,  2473,  2482,  2491,  2501,  2510,  2519,  2528,
-   2537,  2546,  2555,  2564,  2573,  2582,  2591,  2600,
-   2609,  2617,  2626,  2635,  2644,  2652,  2661,  2669,
-   2678,  2686,  2695,  2703,  2712,  2720,  2728,  2737,
-   2745,  2753,  2761,  2769,  2777,  2785,  2793,  2801,
-   2809,  2817,  2825,  2833,  2841,  2849,  2856,  2864,
-   2872,  2879,  2887,  2895,  2902,  2910,  2917,  2925,
-   2932,  2939,  2947,  2954,  2961,  2968,  2975,  2983,
-   2990,  2997,  3004,  3011,  3018,  3025,  3031,  3038,
-   3045,  3052,  3059,  3065,  3072,  3079,  3085,  3092,
-   3098,  3105,  3111,  3117,  3124,  3130,  3136,  3143,
-   3149,  3155,  3161,  3167,  3173,  3179,  3185,  3191,
-   3197,  3203,  3209,  3215,  3221,  3226,  3232,  3238,
-   3243,  3249,  3254,  3260,  3265,  3271,  3276,  3282,
-   3287,  3292,  3297,  3303,  3308,  3313,  3318,  3323,
-   3328,  3333,  3338,  3343,  3348,  3353,  3357,  3362,
-   3367,  3372,  3376,  3381,  3385,  3390,  3395,  3399,
-   3403,  3408,  3412,  3416,  3421,  3425,  3429,  3433,
-   3437,  3442,  3446,  3450,  3454,  3458,  3461,  3465,
-   3469,  3473,  3477,  3480,  3484,  3488,  3491,  3495,
-   3498,  3502,  3505,  3509,  3512,  3515,  3519,  3522,
-   3525,  3528,  3532,  3535,  3538,  3541,  3544,  3547,
-   3550,  3553,  3556,  3558,  3561,  3564,  3567,  3569,
-   3572,  3575,  3577,  3580,  3582,  3585,  3587,  3589,
-   3592,  3594,  3596,  3598,  3601,  3603,  3605,  3607,
-   3609,  3611,  3613,  3615,  3617,  3619,  3621,  3622,
-   3624,  3626,  3627,  3629,  3631,  3632,  3634,  3635,
-   3637,  3638,  3640,  3641,  3642,  3644,  3645,  3646,
-   3647,  3648,  3649,  3650,  3651,  3652,  3653,  3654,
-   3655,  3656,  3657,  3658,  3658,  3659,  3660,  3660,
-   3661,  3662,  3662,  3663,  3663,  3663,  3664,  3664,
-   3664,  3665,  3665,  3665,  3665,  3665,  3666,  3666,
-   3666,  3666,  3666,  3665,  3665,  3665,  3665,  3665,
-   3665,  3664,  3664,  3664,  3663,  3663,  3662,  3662,
-   3661,  3661,  3660,  3659,  3659,  3658,  3657,  3657,
-   3656,  3655,  3654,  3653,  3652,  3651,  3650,  3649,
-   3648,  3647,  3646,  3645,  3643,  3642,  3641,  3640,
-   3638,  3637,  3635,  3634,  3633,  3631,  3630,  3628,
-   3626,  3625,  3623,  3621,  3620,  3618,  3616,  3614,
-   3612,  3610,  3608,  3606,  3604,  3602,  3600,  3598,
-   3596,  3594,  3592,  3589,  3587,  3585,  3583,  3580,
-   3578,  3575,  3573,  3570,  3568,  3565,  3563,  3560,
-   3557,  3555,  3552,  3549,  3547,  3544,  3541,  3538,
-   3535,  3532,  3529,  3526,  3523,  3520,  3517,  3514,
-   3511,  3508,  3505,  3501,  3498,  3495,  3491,  3488,
-   3485,  3481,  3478,  3474,  3471,  3467,  3464,  3460,
-   3457,  3453,  3449,  3446,  3442,  3438,  3434,  3430,
-   3427,  3423,  3419,  3415,  3411,  3407,  3403,  3399,
-   3395,  3391,  3387,  3382,  3378,  3374,  3370,  3365,
-   3361,  3357,  3352,  3348,  3344,  3339,  3335,  3330,
-   3326,  3321,  3317,  3312,  3307,  3303,  3298,  3293,
-   3289,  3284,  3279,  3274,  3269,  3264,  3260,  3255,
-   3250,  3245,  3240,  3235,  3230,  3224,  3219,  3214,
-   3209,  3204,  3199,  3193,  3188,  3183,  3178,  3172,
-   3167,  3162,  3156,  3151,  3145,  3140,  3134,  3129,
-   3123,  3118,  3112,  3106,  3101,  3095,  3089,  3084,
-   3078,  3072,  3066,  3060,  3055,  3049,  3043,  3037,
-   3031,  3025,  3019,  3013,  3007,  3001,  2995,  2989,
-   2983,  2977,  2970,  2964,  2958,  2952,  2945,  2939,
-   2933,  2927,  2920,  2914,  2908,  2901,  2895,  2888,
-   2882,  2875,  2869,  2862,  2856,  2849,  2843,  2836,
-   2829,  2823,  2816,  2809,  2803,  2796,  2789,  2782,
-   2776,  2769,  2762,  2755,  2748,  2741,  2734,  2727,
-   2720,  2714,  2707,  2700,  2692,  2685,  2678,  2671,
-   2664,  2657,  2650,  2643,  2636,  2628,  2621,  2614,
-   2607,  2599,  2592,  2585,  2578,  2570,  2563,  2556,
-   2548,  2541,  2533,  2526,  2518,  2511,  2504,  2496,
-   2489,  2481,  2473,  2466,  2458,  2451,  2443,  2435,
-   2428,  2420,  2412,  2405,  2397,  2389,  2382,  2374,
-   2366,  2358,  2351,  2343,  2335,  2327,  2319,  2311,
-   2303,  2296,  2288,  2280,  2272,  2264,  2256,  2248,
-   2240,  2232,  2224,  2216,  2208,  2200,  2192,  2183,
-   2175,  2167,  2159,  2151,  2143,  2135,  2127,  2118,
-   2110,  2102,  2094,  2085,  2077,  2069,  2061,  2052,
-   2044,  2036,  2027,  2019,  2011,  2002,  1994,  1986,
-   1977,  1969,  1961,  1952,  1944,  1935,  1927,  1918,
-   1910,  1901,  1893,  1884,  1876,  1867,  1859,  1850,
-   1842,  1833,  1825,  1816,  1808,  1799,  1790,  1782,
-   1773,  1765,  1756,  1747,  1739,  1730,  1721,  1713,
-   1704,  1695,  1687,  1678,  1669,  1660,  1652,  1643,
-   1634,  1625,  1617,  1608,  1599,  1590,  1582,  1573,
-   1564,  1555,  1546,  1538,  1529,  1520,  1511,  1502,
-   1493,  1485,  1476,  1467,  1458,  1449,  1440,  1431,
-   1423,  1414,  1405,  1396,  1387,  1378,  1369,  1360,
-   1351,  1342,  1333,  1324,  1316,  1307,  1298,  1289,
-   1280,  1271,  1262,  1253,  1244,  1235,  1226,  1217,
-   1208,  1199,  1190,  1181,  1172,  1163,  1154,  1145,
-   1136,  1127,  1118,  1109,  1100,  1091,  1082,  1073,
-   1064,  1055,  1046,  1037,  1028,  1019,  1010,  1001,
+    1011,  1024,  1037,  1050,  1063,  1076,  1089,  1102,
+    1115,  1128,  1141,  1154,  1167,  1180,  1193,  1205,
+    1218,  1231,  1244,  1256,  1269,  1282,  1294,  1307,
+    1319,  1332,  1344,  1357,  1369,  1382,  1394,  1407,
+    1419,  1431,  1443,  1456,  1468,  1480,  1492,  1504,
+    1517,  1529,  1541,  1553,  1565,  1577,  1589,  1601,
+    1612,  1624,  1636,  1648,  1660,  1671,  1683,  1695,
+    1707,  1718,  1730,  1741,  1753,  1764,  1776,  1787,
+    1799,  1810,  1821,  1833,  1844,  1855,  1867,  1878,
+    1889,  1900,  1911,  1922,  1933,  1944,  1955,  1966,
+    1977,  1988,  1999,  2010,  2021,  2031,  2042,  2053,
+    2063,  2074,  2085,  2095,  2106,  2116,  2127,  2137,
+    2148,  2158,  2168,  2179,  2189,  2199,  2209,  2220,
+    2230,  2240,  2250,  2260,  2270,  2280,  2290,  2300,
+    2310,  2320,  2330,  2339,  2349,  2359,  2369,  2378,
+    2388,  2397,  2407,  2417,  2426,  2435,  2445,  2454,
+    2464,  2473,  2482,  2491,  2501,  2510,  2519,  2528,
+    2537,  2546,  2555,  2564,  2573,  2582,  2591,  2600,
+    2609,  2617,  2626,  2635,  2644,  2652,  2661,  2669,
+    2678,  2686,  2695,  2703,  2712,  2720,  2728,  2737,
+    2745,  2753,  2761,  2769,  2777,  2785,  2793,  2801,
+    2809,  2817,  2825,  2833,  2841,  2849,  2856,  2864,
+    2872,  2879,  2887,  2895,  2902,  2910,  2917,  2925,
+    2932,  2939,  2947,  2954,  2961,  2968,  2975,  2983,
+    2990,  2997,  3004,  3011,  3018,  3025,  3031,  3038,
+    3045,  3052,  3059,  3065,  3072,  3079,  3085,  3092,
+    3098,  3105,  3111,  3117,  3124,  3130,  3136,  3143,
+    3149,  3155,  3161,  3167,  3173,  3179,  3185,  3191,
+    3197,  3203,  3209,  3215,  3221,  3226,  3232,  3238,
+    3243,  3249,  3254,  3260,  3265,  3271,  3276,  3282,
+    3287,  3292,  3297,  3303,  3308,  3313,  3318,  3323,
+    3328,  3333,  3338,  3343,  3348,  3353,  3357,  3362,
+    3367,  3372,  3376,  3381,  3385,  3390,  3395,  3399,
+    3403,  3408,  3412,  3416,  3421,  3425,  3429,  3433,
+    3437,  3442,  3446,  3450,  3454,  3458,  3461,  3465,
+    3469,  3473,  3477,  3480,  3484,  3488,  3491,  3495,
+    3498,  3502,  3505,  3509,  3512,  3515,  3519,  3522,
+    3525,  3528,  3532,  3535,  3538,  3541,  3544,  3547,
+    3550,  3553,  3556,  3558,  3561,  3564,  3567,  3569,
+    3572,  3575,  3577,  3580,  3582,  3585,  3587,  3589,
+    3592,  3594,  3596,  3598,  3601,  3603,  3605,  3607,
+    3609,  3611,  3613,  3615,  3617,  3619,  3621,  3622,
+    3624,  3626,  3627,  3629,  3631,  3632,  3634,  3635,
+    3637,  3638,  3640,  3641,  3642,  3644,  3645,  3646,
+    3647,  3648,  3649,  3650,  3651,  3652,  3653,  3654,
+    3655,  3656,  3657,  3658,  3658,  3659,  3660,  3660,
+    3661,  3662,  3662,  3663,  3663,  3663,  3664,  3664,
+    3664,  3665,  3665,  3665,  3665,  3665,  3666,  3666,
+    3666,  3666,  3666,  3665,  3665,  3665,  3665,  3665,
+    3665,  3664,  3664,  3664,  3663,  3663,  3662,  3662,
+    3661,  3661,  3660,  3659,  3659,  3658,  3657,  3657,
+    3656,  3655,  3654,  3653,  3652,  3651,  3650,  3649,
+    3648,  3647,  3646,  3645,  3643,  3642,  3641,  3640,
+    3638,  3637,  3635,  3634,  3633,  3631,  3630,  3628,
+    3626,  3625,  3623,  3621,  3620,  3618,  3616,  3614,
+    3612,  3610,  3608,  3606,  3604,  3602,  3600,  3598,
+    3596,  3594,  3592,  3589,  3587,  3585,  3583,  3580,
+    3578,  3575,  3573,  3570,  3568,  3565,  3563,  3560,
+    3557,  3555,  3552,  3549,  3547,  3544,  3541,  3538,
+    3535,  3532,  3529,  3526,  3523,  3520,  3517,  3514,
+    3511,  3508,  3505,  3501,  3498,  3495,  3491,  3488,
+    3485,  3481,  3478,  3474,  3471,  3467,  3464,  3460,
+    3457,  3453,  3449,  3446,  3442,  3438,  3434,  3430,
+    3427,  3423,  3419,  3415,  3411,  3407,  3403,  3399,
+    3395,  3391,  3387,  3382,  3378,  3374,  3370,  3365,
+    3361,  3357,  3352,  3348,  3344,  3339,  3335,  3330,
+    3326,  3321,  3317,  3312,  3307,  3303,  3298,  3293,
+    3289,  3284,  3279,  3274,  3269,  3264,  3260,  3255,
+    3250,  3245,  3240,  3235,  3230,  3224,  3219,  3214,
+    3209,  3204,  3199,  3193,  3188,  3183,  3178,  3172,
+    3167,  3162,  3156,  3151,  3145,  3140,  3134,  3129,
+    3123,  3118,  3112,  3106,  3101,  3095,  3089,  3084,
+    3078,  3072,  3066,  3060,  3055,  3049,  3043,  3037,
+    3031,  3025,  3019,  3013,  3007,  3001,  2995,  2989,
+    2983,  2977,  2970,  2964,  2958,  2952,  2945,  2939,
+    2933,  2927,  2920,  2914,  2908,  2901,  2895,  2888,
+    2882,  2875,  2869,  2862,  2856,  2849,  2843,  2836,
+    2829,  2823,  2816,  2809,  2803,  2796,  2789,  2782,
+    2776,  2769,  2762,  2755,  2748,  2741,  2734,  2727,
+    2720,  2714,  2707,  2700,  2692,  2685,  2678,  2671,
+    2664,  2657,  2650,  2643,  2636,  2628,  2621,  2614,
+    2607,  2599,  2592,  2585,  2578,  2570,  2563,  2556,
+    2548,  2541,  2533,  2526,  2518,  2511,  2504,  2496,
+    2489,  2481,  2473,  2466,  2458,  2451,  2443,  2435,
+    2428,  2420,  2412,  2405,  2397,  2389,  2382,  2374,
+    2366,  2358,  2351,  2343,  2335,  2327,  2319,  2311,
+    2303,  2296,  2288,  2280,  2272,  2264,  2256,  2248,
+    2240,  2232,  2224,  2216,  2208,  2200,  2192,  2183,
+    2175,  2167,  2159,  2151,  2143,  2135,  2127,  2118,
+    2110,  2102,  2094,  2085,  2077,  2069,  2061,  2052,
+    2044,  2036,  2027,  2019,  2011,  2002,  1994,  1986,
+    1977,  1969,  1961,  1952,  1944,  1935,  1927,  1918,
+    1910,  1901,  1893,  1884,  1876,  1867,  1859,  1850,
+    1842,  1833,  1825,  1816,  1808,  1799,  1790,  1782,
+    1773,  1765,  1756,  1747,  1739,  1730,  1721,  1713,
+    1704,  1695,  1687,  1678,  1669,  1660,  1652,  1643,
+    1634,  1625,  1617,  1608,  1599,  1590,  1582,  1573,
+    1564,  1555,  1546,  1538,  1529,  1520,  1511,  1502,
+    1493,  1485,  1476,  1467,  1458,  1449,  1440,  1431,
+    1423,  1414,  1405,  1396,  1387,  1378,  1369,  1360,
+    1351,  1342,  1333,  1324,  1316,  1307,  1298,  1289,
+    1280,  1271,  1262,  1253,  1244,  1235,  1226,  1217,
+    1208,  1199,  1190,  1181,  1172,  1163,  1154,  1145,
+    1136,  1127,  1118,  1109,  1100,  1091,  1082,  1073,
+    1064,  1055,  1046,  1037,  1028,  1019,  1010,  1001,
     992,   983,   974,   965,   956,   947,   938,   929,
     920,   910,   901,   892,   883,   874,   865,   856,
     847,   838,   829,   820,   811,   802,   793,   784,
@@ -1425,140 +1426,140 @@ static const float stationFilterConstants[] =
     274,   265,   257,   248,   239,   230,   221,   213,
     204,   195,   186,   178,   169,   160,   151,   143,
     134,   125,   116,   108,    99,    90,    82,    73,
-     64,    56,    47,    38,    30,    21,    12,     4,
-     -5,   -13,   -22,   -30,   -39,   -48,   -56,   -65,
+    64,    56,    47,    38,    30,    21,    12,     4,
+    -5,   -13,   -22,   -30,   -39,   -48,   -56,   -65,
     -73,   -82,   -90,   -99,  -107,  -116,  -124,  -133,
-   -141,  -150,  -158,  -167,  -175,  -183,  -192,  -200,
-   -209,  -217,  -225,  -234,  -242,  -250,  -259,  -267,
-   -275,  -284,  -292,  -300,  -309,  -317,  -325,  -333,
-   -342,  -350,  -358,  -366,  -374,  -382,  -391,  -399,
-   -407,  -415,  -423,  -431,  -439,  -447,  -456,  -464,
-   -472,  -480,  -488,  -496,  -504,  -512,  -520,  -528,
-   -536,  -543,  -551,  -559,  -567,  -575,  -583,  -591,
-   -599,  -606,  -614,  -622,  -630,  -638,  -645,  -653,
-   -661,  -669,  -676,  -684,  -692,  -699,  -707,  -715,
-   -722,  -730,  -738,  -745,  -753,  -760,  -768,  -775,
-   -783,  -790,  -798,  -805,  -813,  -820,  -828,  -835,
-   -842,  -850,  -857,  -865,  -872,  -879,  -887,  -894,
-   -901,  -908,  -916,  -923,  -930,  -937,  -945,  -952,
-   -959,  -966,  -973,  -980,  -987,  -994, -1001, -1009,
-  -1016, -1023, -1030, -1037, -1044, -1050, -1057, -1064,
-  -1071, -1078, -1085, -1092, -1099, -1105, -1112, -1119,
-  -1126, -1133, -1139, -1146, -1153, -1159, -1166, -1173,
-  -1179, -1186, -1193, -1199, -1206, -1212, -1219, -1225,
-  -1232, -1238, -1245, -1251, -1258, -1264, -1270, -1277,
-  -1283, -1289, -1296, -1302, -1308, -1315, -1321, -1327,
-  -1333, -1339, -1346, -1352, -1358, -1364, -1370, -1376,
-  -1382, -1388, -1394, -1400, -1406, -1412, -1418, -1424,
-  -1430, -1436, -1442, -1448, -1454, -1459, -1465, -1471,
-  -1477, -1482, -1488, -1494, -1500, -1505, -1511, -1516,
-  -1522, -1528, -1533, -1539, -1544, -1550, -1555, -1561,
-  -1566, -1572, -1577, -1582, -1588, -1593, -1599, -1604,
-  -1609, -1614, -1620, -1625, -1630, -1635, -1640, -1646,
-  -1651, -1656, -1661, -1666, -1671, -1676, -1681, -1686,
-  -1691, -1696, -1701, -1706, -1711, -1716, -1720, -1725,
-  -1730, -1735, -1740, -1744, -1749, -1754, -1758, -1763,
-  -1768, -1772, -1777, -1782, -1786, -1791, -1795, -1800,
-  -1804, -1809, -1813, -1817, -1822, -1826, -1830, -1835,
-  -1839, -1843, -1848, -1852, -1856, -1860, -1864, -1869,
-  -1873, -1877, -1881, -1885, -1889, -1893, -1897, -1901,
-  -1905, -1909, -1913, -1917, -1921, -1925, -1928, -1932,
-  -1936, -1940, -1944, -1947, -1951, -1955, -1958, -1962,
-  -1966, -1969, -1973, -1976, -1980, -1983, -1987, -1990,
-  -1994, -1997, -2001, -2004, -2007, -2011, -2014, -2017,
-  -2021, -2024, -2027, -2030, -2033, -2037, -2040, -2043,
-  -2046, -2049, -2052, -2055, -2058, -2061, -2064, -2067,
-  -2070, -2073, -2076, -2079, -2081, -2084, -2087, -2090,
-  -2092, -2095, -2098, -2101, -2103, -2106, -2108, -2111,
-  -2114, -2116, -2119, -2121, -2124, -2126, -2129, -2131,
-  -2133, -2136, -2138, -2140, -2143, -2145, -2147, -2150,
-  -2152, -2154, -2156, -2158, -2160, -2162, -2165, -2167,
-  -2169, -2171, -2173, -2175, -2177, -2179, -2180, -2182,
-  -2184, -2186, -2188, -2190, -2191, -2193, -2195, -2197,
-  -2198, -2200, -2202, -2203, -2205, -2206, -2208, -2209,
-  -2211, -2212, -2214, -2215, -2217, -2218, -2220, -2221,
-  -2222, -2224, -2225, -2226, -2227, -2229, -2230, -2231,
-  -2232, -2233, -2234, -2236, -2237, -2238, -2239, -2240,
-  -2241, -2242, -2243, -2244, -2244, -2245, -2246, -2247,
-  -2248, -2249, -2249, -2250, -2251, -2252, -2252, -2253,
-  -2254, -2254, -2255, -2255, -2256, -2256, -2257, -2257,
-  -2258, -2258, -2259, -2259, -2260, -2260, -2260, -2261,
-  -2261, -2261, -2261, -2262, -2262, -2262, -2262, -2262,
-  -2263, -2263, -2263, -2263, -2263, -2263, -2263, -2263,
-  -2263, -2263, -2263, -2263, -2262, -2262, -2262, -2262,
-  -2262, -2261, -2261, -2261, -2261, -2260, -2260, -2260,
-  -2259, -2259, -2259, -2258, -2258, -2257, -2257, -2256,
-  -2256, -2255, -2254, -2254, -2253, -2253, -2252, -2251,
-  -2251, -2250, -2249, -2248, -2248, -2247, -2246, -2245,
-  -2244, -2243, -2242, -2242, -2241, -2240, -2239, -2238,
-  -2237, -2236, -2235, -2233, -2232, -2231, -2230, -2229,
-  -2228, -2227, -2225, -2224, -2223, -2222, -2220, -2219,
-  -2218, -2216, -2215, -2214, -2212, -2211, -2209, -2208,
-  -2206, -2205, -2203, -2202, -2200, -2199, -2197, -2195,
-  -2194, -2192, -2190, -2189, -2187, -2185, -2184, -2182,
-  -2180, -2178, -2176, -2174, -2173, -2171, -2169, -2167,
-  -2165, -2163, -2161, -2159, -2157, -2155, -2153, -2151,
-  -2149, -2147, -2145, -2142, -2140, -2138, -2136, -2134,
-  -2132, -2129, -2127, -2125, -2122, -2120, -2118, -2116,
-  -2113, -2111, -2108, -2106, -2104, -2101, -2099, -2096,
-  -2094, -2091, -2089, -2086, -2083, -2081, -2078, -2076,
-  -2073, -2070, -2068, -2065, -2062, -2060, -2057, -2054,
-  -2051, -2049, -2046, -2043, -2040, -2037, -2034, -2031,
-  -2029, -2026, -2023, -2020, -2017, -2014, -2011, -2008,
-  -2005, -2002, -1999, -1996, -1992, -1989, -1986, -1983,
-  -1980, -1977, -1974, -1970, -1967, -1964, -1961, -1957,
-  -1954, -1951, -1948, -1944, -1941, -1938, -1934, -1931,
-  -1927, -1924, -1921, -1917, -1914, -1910, -1907, -1903,
-  -1900, -1896, -1893, -1889, -1886, -1882, -1878, -1875,
-  -1871, -1868, -1864, -1860, -1857, -1853, -1849, -1845,
-  -1842, -1838, -1834, -1830, -1827, -1823, -1819, -1815,
-  -1811, -1807, -1804, -1800, -1796, -1792, -1788, -1784,
-  -1780, -1776, -1772, -1768, -1764, -1760, -1756, -1752,
-  -1748, -1744, -1740, -1736, -1732, -1728, -1724, -1719,
-  -1715, -1711, -1707, -1703, -1699, -1694, -1690, -1686,
-  -1682, -1677, -1673, -1669, -1665, -1660, -1656, -1652,
-  -1647, -1643, -1639, -1634, -1630, -1625, -1621, -1617,
-  -1612, -1608, -1603, -1599, -1594, -1590, -1586, -1581,
-  -1577, -1572, -1567, -1563, -1558, -1554, -1549, -1545,
-  -1540, -1535, -1531, -1526, -1522, -1517, -1512, -1508,
-  -1503, -1498, -1494, -1489, -1484, -1480, -1475, -1470,
-  -1465, -1461, -1456, -1451, -1446, -1441, -1437, -1432,
-  -1427, -1422, -1417, -1413, -1408, -1403, -1398, -1393,
-  -1388, -1383, -1378, -1374, -1369, -1364, -1359, -1354,
-  -1349, -1344, -1339, -1334, -1329, -1324, -1319, -1314,
-  -1309, -1304, -1299, -1294, -1289, -1284, -1279, -1274,
-  -1269, -1264, -1258, -1253, -1248, -1243, -1238, -1233,
-  -1228, -1223, -1218, -1212, -1207, -1202, -1197, -1192,
-  -1187, -1181, -1176, -1171, -1166, -1161, -1155, -1150,
-  -1145, -1140, -1135, -1129, -1124, -1119, -1114, -1108,
-  -1103, -1098, -1092, -1087, -1082, -1077, -1071, -1066,
-  -1061, -1055, -1050, -1045, -1039, -1034, -1029, -1023,
-  -1018, -1013, -1007, -1002,  -997,  -991,  -986,  -980,
-   -975,  -970,  -964,  -959,  -953,  -948,  -943,  -937,
-   -932,  -926,  -921,  -916,  -910,  -905,  -899,  -894,
-   -888,  -883,  -877,  -872,  -867,  -861,  -856,  -850,
-   -845,  -839,  -834,  -828,  -823,  -817,  -812,  -806,
-   -801,  -795,  -790,  -784,  -779,  -773,  -768,  -762,
-   -757,  -751,  -746,  -740,  -735,  -729,  -724,  -718,
-   -713,  -707,  -702,  -696,  -691,  -685,  -680,  -674,
-   -669,  -663,  -658,  -652,  -646,  -641,  -635,  -630,
-   -624,  -619,  -613,  -608,  -602,  -597,  -591,  -585,
-   -580,  -574,  -569,  -563,  -558,  -552,  -547,  -541,
-   -536,  -530,  -524,  -519,  -513,  -508,  -502,  -497,
-   -491,  -486,  -480,  -475,  -469,  -464,  -458,  -452,
-   -447,  -441,  -436,  -430,  -425,  -419,  -414,  -408,
-   -403,  -397,  -392,  -386,  -381,  -375,  -369,  -364,
-   -358,  -353,  -347,  -342,  -336,  -331,  -325,  -320,
-   -314,  -309,  -303,  -298,  -292,  -287,  -281,  -276,
-   -270,  -265,  -259,  -254,  -248,  -243,  -238,  -232,
-   -227,  -221,  -216,  -210,  -205,  -199,  -194,  -188,
-   -183,  -178,  -172,  -167,  -161,  -156,  -150,  -145,
-   -140,  -134,  -129,  -123,  -118,  -113,  -107,  -102,
+    -141,  -150,  -158,  -167,  -175,  -183,  -192,  -200,
+    -209,  -217,  -225,  -234,  -242,  -250,  -259,  -267,
+    -275,  -284,  -292,  -300,  -309,  -317,  -325,  -333,
+    -342,  -350,  -358,  -366,  -374,  -382,  -391,  -399,
+    -407,  -415,  -423,  -431,  -439,  -447,  -456,  -464,
+    -472,  -480,  -488,  -496,  -504,  -512,  -520,  -528,
+    -536,  -543,  -551,  -559,  -567,  -575,  -583,  -591,
+    -599,  -606,  -614,  -622,  -630,  -638,  -645,  -653,
+    -661,  -669,  -676,  -684,  -692,  -699,  -707,  -715,
+    -722,  -730,  -738,  -745,  -753,  -760,  -768,  -775,
+    -783,  -790,  -798,  -805,  -813,  -820,  -828,  -835,
+    -842,  -850,  -857,  -865,  -872,  -879,  -887,  -894,
+    -901,  -908,  -916,  -923,  -930,  -937,  -945,  -952,
+    -959,  -966,  -973,  -980,  -987,  -994, -1001, -1009,
+    -1016, -1023, -1030, -1037, -1044, -1050, -1057, -1064,
+    -1071, -1078, -1085, -1092, -1099, -1105, -1112, -1119,
+    -1126, -1133, -1139, -1146, -1153, -1159, -1166, -1173,
+    -1179, -1186, -1193, -1199, -1206, -1212, -1219, -1225,
+    -1232, -1238, -1245, -1251, -1258, -1264, -1270, -1277,
+    -1283, -1289, -1296, -1302, -1308, -1315, -1321, -1327,
+    -1333, -1339, -1346, -1352, -1358, -1364, -1370, -1376,
+    -1382, -1388, -1394, -1400, -1406, -1412, -1418, -1424,
+    -1430, -1436, -1442, -1448, -1454, -1459, -1465, -1471,
+    -1477, -1482, -1488, -1494, -1500, -1505, -1511, -1516,
+    -1522, -1528, -1533, -1539, -1544, -1550, -1555, -1561,
+    -1566, -1572, -1577, -1582, -1588, -1593, -1599, -1604,
+    -1609, -1614, -1620, -1625, -1630, -1635, -1640, -1646,
+    -1651, -1656, -1661, -1666, -1671, -1676, -1681, -1686,
+    -1691, -1696, -1701, -1706, -1711, -1716, -1720, -1725,
+    -1730, -1735, -1740, -1744, -1749, -1754, -1758, -1763,
+    -1768, -1772, -1777, -1782, -1786, -1791, -1795, -1800,
+    -1804, -1809, -1813, -1817, -1822, -1826, -1830, -1835,
+    -1839, -1843, -1848, -1852, -1856, -1860, -1864, -1869,
+    -1873, -1877, -1881, -1885, -1889, -1893, -1897, -1901,
+    -1905, -1909, -1913, -1917, -1921, -1925, -1928, -1932,
+    -1936, -1940, -1944, -1947, -1951, -1955, -1958, -1962,
+    -1966, -1969, -1973, -1976, -1980, -1983, -1987, -1990,
+    -1994, -1997, -2001, -2004, -2007, -2011, -2014, -2017,
+    -2021, -2024, -2027, -2030, -2033, -2037, -2040, -2043,
+    -2046, -2049, -2052, -2055, -2058, -2061, -2064, -2067,
+    -2070, -2073, -2076, -2079, -2081, -2084, -2087, -2090,
+    -2092, -2095, -2098, -2101, -2103, -2106, -2108, -2111,
+    -2114, -2116, -2119, -2121, -2124, -2126, -2129, -2131,
+    -2133, -2136, -2138, -2140, -2143, -2145, -2147, -2150,
+    -2152, -2154, -2156, -2158, -2160, -2162, -2165, -2167,
+    -2169, -2171, -2173, -2175, -2177, -2179, -2180, -2182,
+    -2184, -2186, -2188, -2190, -2191, -2193, -2195, -2197,
+    -2198, -2200, -2202, -2203, -2205, -2206, -2208, -2209,
+    -2211, -2212, -2214, -2215, -2217, -2218, -2220, -2221,
+    -2222, -2224, -2225, -2226, -2227, -2229, -2230, -2231,
+    -2232, -2233, -2234, -2236, -2237, -2238, -2239, -2240,
+    -2241, -2242, -2243, -2244, -2244, -2245, -2246, -2247,
+    -2248, -2249, -2249, -2250, -2251, -2252, -2252, -2253,
+    -2254, -2254, -2255, -2255, -2256, -2256, -2257, -2257,
+    -2258, -2258, -2259, -2259, -2260, -2260, -2260, -2261,
+    -2261, -2261, -2261, -2262, -2262, -2262, -2262, -2262,
+    -2263, -2263, -2263, -2263, -2263, -2263, -2263, -2263,
+    -2263, -2263, -2263, -2263, -2262, -2262, -2262, -2262,
+    -2262, -2261, -2261, -2261, -2261, -2260, -2260, -2260,
+    -2259, -2259, -2259, -2258, -2258, -2257, -2257, -2256,
+    -2256, -2255, -2254, -2254, -2253, -2253, -2252, -2251,
+    -2251, -2250, -2249, -2248, -2248, -2247, -2246, -2245,
+    -2244, -2243, -2242, -2242, -2241, -2240, -2239, -2238,
+    -2237, -2236, -2235, -2233, -2232, -2231, -2230, -2229,
+    -2228, -2227, -2225, -2224, -2223, -2222, -2220, -2219,
+    -2218, -2216, -2215, -2214, -2212, -2211, -2209, -2208,
+    -2206, -2205, -2203, -2202, -2200, -2199, -2197, -2195,
+    -2194, -2192, -2190, -2189, -2187, -2185, -2184, -2182,
+    -2180, -2178, -2176, -2174, -2173, -2171, -2169, -2167,
+    -2165, -2163, -2161, -2159, -2157, -2155, -2153, -2151,
+    -2149, -2147, -2145, -2142, -2140, -2138, -2136, -2134,
+    -2132, -2129, -2127, -2125, -2122, -2120, -2118, -2116,
+    -2113, -2111, -2108, -2106, -2104, -2101, -2099, -2096,
+    -2094, -2091, -2089, -2086, -2083, -2081, -2078, -2076,
+    -2073, -2070, -2068, -2065, -2062, -2060, -2057, -2054,
+    -2051, -2049, -2046, -2043, -2040, -2037, -2034, -2031,
+    -2029, -2026, -2023, -2020, -2017, -2014, -2011, -2008,
+    -2005, -2002, -1999, -1996, -1992, -1989, -1986, -1983,
+    -1980, -1977, -1974, -1970, -1967, -1964, -1961, -1957,
+    -1954, -1951, -1948, -1944, -1941, -1938, -1934, -1931,
+    -1927, -1924, -1921, -1917, -1914, -1910, -1907, -1903,
+    -1900, -1896, -1893, -1889, -1886, -1882, -1878, -1875,
+    -1871, -1868, -1864, -1860, -1857, -1853, -1849, -1845,
+    -1842, -1838, -1834, -1830, -1827, -1823, -1819, -1815,
+    -1811, -1807, -1804, -1800, -1796, -1792, -1788, -1784,
+    -1780, -1776, -1772, -1768, -1764, -1760, -1756, -1752,
+    -1748, -1744, -1740, -1736, -1732, -1728, -1724, -1719,
+    -1715, -1711, -1707, -1703, -1699, -1694, -1690, -1686,
+    -1682, -1677, -1673, -1669, -1665, -1660, -1656, -1652,
+    -1647, -1643, -1639, -1634, -1630, -1625, -1621, -1617,
+    -1612, -1608, -1603, -1599, -1594, -1590, -1586, -1581,
+    -1577, -1572, -1567, -1563, -1558, -1554, -1549, -1545,
+    -1540, -1535, -1531, -1526, -1522, -1517, -1512, -1508,
+    -1503, -1498, -1494, -1489, -1484, -1480, -1475, -1470,
+    -1465, -1461, -1456, -1451, -1446, -1441, -1437, -1432,
+    -1427, -1422, -1417, -1413, -1408, -1403, -1398, -1393,
+    -1388, -1383, -1378, -1374, -1369, -1364, -1359, -1354,
+    -1349, -1344, -1339, -1334, -1329, -1324, -1319, -1314,
+    -1309, -1304, -1299, -1294, -1289, -1284, -1279, -1274,
+    -1269, -1264, -1258, -1253, -1248, -1243, -1238, -1233,
+    -1228, -1223, -1218, -1212, -1207, -1202, -1197, -1192,
+    -1187, -1181, -1176, -1171, -1166, -1161, -1155, -1150,
+    -1145, -1140, -1135, -1129, -1124, -1119, -1114, -1108,
+    -1103, -1098, -1092, -1087, -1082, -1077, -1071, -1066,
+    -1061, -1055, -1050, -1045, -1039, -1034, -1029, -1023,
+    -1018, -1013, -1007, -1002,  -997,  -991,  -986,  -980,
+    -975,  -970,  -964,  -959,  -953,  -948,  -943,  -937,
+    -932,  -926,  -921,  -916,  -910,  -905,  -899,  -894,
+    -888,  -883,  -877,  -872,  -867,  -861,  -856,  -850,
+    -845,  -839,  -834,  -828,  -823,  -817,  -812,  -806,
+    -801,  -795,  -790,  -784,  -779,  -773,  -768,  -762,
+    -757,  -751,  -746,  -740,  -735,  -729,  -724,  -718,
+    -713,  -707,  -702,  -696,  -691,  -685,  -680,  -674,
+    -669,  -663,  -658,  -652,  -646,  -641,  -635,  -630,
+    -624,  -619,  -613,  -608,  -602,  -597,  -591,  -585,
+    -580,  -574,  -569,  -563,  -558,  -552,  -547,  -541,
+    -536,  -530,  -524,  -519,  -513,  -508,  -502,  -497,
+    -491,  -486,  -480,  -475,  -469,  -464,  -458,  -452,
+    -447,  -441,  -436,  -430,  -425,  -419,  -414,  -408,
+    -403,  -397,  -392,  -386,  -381,  -375,  -369,  -364,
+    -358,  -353,  -347,  -342,  -336,  -331,  -325,  -320,
+    -314,  -309,  -303,  -298,  -292,  -287,  -281,  -276,
+    -270,  -265,  -259,  -254,  -248,  -243,  -238,  -232,
+    -227,  -221,  -216,  -210,  -205,  -199,  -194,  -188,
+    -183,  -178,  -172,  -167,  -161,  -156,  -150,  -145,
+    -140,  -134,  -129,  -123,  -118,  -113,  -107,  -102,
     -96,   -91,   -86,   -80,   -75,   -70,   -64,   -59,
     -53,   -48,   -43,   -37,   -32,   -27,   -21,   -16,
     -11,    -5,     0,     5,    10,    16,    21,    26,
-     32,    37,    42,    47,    53,    58,    63,    68,
-     74,    79,    84,    89,    95,   100,   105,   110,
+    32,    37,    42,    47,    53,    58,    63,    68,
+    74,    79,    84,    89,    95,   100,   105,   110,
     115,   121,   126,   131,   136,   141,   146,   152,
     157,   162,   167,   172,   177,   182,   187,   193,
     198,   203,   208,   213,   218,   223,   228,   233,
@@ -1585,74 +1586,74 @@ static const float stationFilterConstants[] =
     936,   940,   943,   947,   950,   954,   957,   961,
     964,   968,   971,   975,   978,   981,   985,   988,
     992,   995,   998,  1002,  1005,  1008,  1012,  1015,
-   1018,  1021,  1025,  1028,  1031,  1034,  1038,  1041,
-   1044,  1047,  1050,  1053,  1057,  1060,  1063,  1066,
-   1069,  1072,  1075,  1078,  1081,  1084,  1087,  1090,
-   1093,  1096,  1099,  1102,  1105,  1108,  1111,  1114,
-   1117,  1119,  1122,  1125,  1128,  1131,  1134,  1136,
-   1139,  1142,  1145,  1148,  1150,  1153,  1156,  1158,
-   1161,  1164,  1166,  1169,  1172,  1174,  1177,  1179,
-   1182,  1185,  1187,  1190,  1192,  1195,  1197,  1200,
-   1202,  1205,  1207,  1210,  1212,  1214,  1217,  1219,
-   1222,  1224,  1226,  1229,  1231,  1233,  1236,  1238,
-   1240,  1242,  1245,  1247,  1249,  1251,  1253,  1256,
-   1258,  1260,  1262,  1264,  1266,  1268,  1271,  1273,
-   1275,  1277,  1279,  1281,  1283,  1285,  1287,  1289,
-   1291,  1293,  1295,  1297,  1298,  1300,  1302,  1304,
-   1306,  1308,  1310,  1311,  1313,  1315,  1317,  1319,
-   1320,  1322,  1324,  1325,  1327,  1329,  1330,  1332,
-   1334,  1335,  1337,  1339,  1340,  1342,  1343,  1345,
-   1346,  1348,  1349,  1351,  1352,  1354,  1355,  1357,
-   1358,  1360,  1361,  1362,  1364,  1365,  1367,  1368,
-   1369,  1370,  1372,  1373,  1374,  1376,  1377,  1378,
-   1379,  1380,  1382,  1383,  1384,  1385,  1386,  1387,
-   1389,  1390,  1391,  1392,  1393,  1394,  1395,  1396,
-   1397,  1398,  1399,  1400,  1401,  1402,  1403,  1404,
-   1405,  1405,  1406,  1407,  1408,  1409,  1410,  1410,
-   1411,  1412,  1413,  1414,  1414,  1415,  1416,  1416,
-   1417,  1418,  1419,  1419,  1420,  1420,  1421,  1422,
-   1422,  1423,  1423,  1424,  1424,  1425,  1425,  1426,
-   1426,  1427,  1427,  1428,  1428,  1429,  1429,  1429,
-   1430,  1430,  1431,  1431,  1431,  1432,  1432,  1432,
-   1432,  1433,  1433,  1433,  1433,  1434,  1434,  1434,
-   1434,  1434,  1434,  1435,  1435,  1435,  1435,  1435,
-   1435,  1435,  1435,  1435,  1435,  1435,  1435,  1435,
-   1435,  1435,  1435,  1435,  1435,  1435,  1435,  1435,
-   1435,  1434,  1434,  1434,  1434,  1434,  1434,  1433,
-   1433,  1433,  1433,  1432,  1432,  1432,  1432,  1431,
-   1431,  1431,  1430,  1430,  1429,  1429,  1429,  1428,
-   1428,  1427,  1427,  1427,  1426,  1426,  1425,  1425,
-   1424,  1424,  1423,  1422,  1422,  1421,  1421,  1420,
-   1420,  1419,  1418,  1418,  1417,  1416,  1416,  1415,
-   1414,  1413,  1413,  1412,  1411,  1410,  1410,  1409,
-   1408,  1407,  1406,  1406,  1405,  1404,  1403,  1402,
-   1401,  1400,  1400,  1399,  1398,  1397,  1396,  1395,
-   1394,  1393,  1392,  1391,  1390,  1389,  1388,  1387,
-   1386,  1384,  1383,  1382,  1381,  1380,  1379,  1378,
-   1377,  1375,  1374,  1373,  1372,  1371,  1369,  1368,
-   1367,  1366,  1364,  1363,  1362,  1361,  1359,  1358,
-   1357,  1355,  1354,  1353,  1351,  1350,  1348,  1347,
-   1346,  1344,  1343,  1341,  1340,  1338,  1337,  1335,
-   1334,  1332,  1331,  1329,  1328,  1326,  1325,  1323,
-   1322,  1320,  1318,  1317,  1315,  1314,  1312,  1310,
-   1309,  1307,  1305,  1304,  1302,  1300,  1299,  1297,
-   1295,  1293,  1292,  1290,  1288,  1286,  1284,  1283,
-   1281,  1279,  1277,  1275,  1274,  1272,  1270,  1268,
-   1266,  1264,  1262,  1260,  1258,  1257,  1255,  1253,
-   1251,  1249,  1247,  1245,  1243,  1241,  1239,  1237,
-   1235,  1233,  1231,  1229,  1227,  1224,  1222,  1220,
-   1218,  1216,  1214,  1212,  1210,  1208,  1205,  1203,
-   1201,  1199,  1197,  1195,  1192,  1190,  1188,  1186,
-   1183,  1181,  1179,  1177,  1174,  1172,  1170,  1168,
-   1165,  1163,  1161,  1158,  1156,  1154,  1151,  1149,
-   1147,  1144,  1142,  1140,  1137,  1135,  1132,  1130,
-   1128,  1125,  1123,  1120,  1118,  1115,  1113,  1110,
-   1108,  1105,  1103,  1100,  1098,  1095,  1093,  1090,
-   1088,  1085,  1083,  1080,  1078,  1075,  1073,  1070,
-   1067,  1065,  1062,  1060,  1057,  1054,  1052,  1049,
-   1046,  1044,  1041,  1038,  1036,  1033,  1030,  1028,
-   1025,  1022,  1020,  1017,  1014,  1012,  1009,  1006,
-   1003,  1001,   998,   995,   992,   990,   987,   984,
+    1018,  1021,  1025,  1028,  1031,  1034,  1038,  1041,
+    1044,  1047,  1050,  1053,  1057,  1060,  1063,  1066,
+    1069,  1072,  1075,  1078,  1081,  1084,  1087,  1090,
+    1093,  1096,  1099,  1102,  1105,  1108,  1111,  1114,
+    1117,  1119,  1122,  1125,  1128,  1131,  1134,  1136,
+    1139,  1142,  1145,  1148,  1150,  1153,  1156,  1158,
+    1161,  1164,  1166,  1169,  1172,  1174,  1177,  1179,
+    1182,  1185,  1187,  1190,  1192,  1195,  1197,  1200,
+    1202,  1205,  1207,  1210,  1212,  1214,  1217,  1219,
+    1222,  1224,  1226,  1229,  1231,  1233,  1236,  1238,
+    1240,  1242,  1245,  1247,  1249,  1251,  1253,  1256,
+    1258,  1260,  1262,  1264,  1266,  1268,  1271,  1273,
+    1275,  1277,  1279,  1281,  1283,  1285,  1287,  1289,
+    1291,  1293,  1295,  1297,  1298,  1300,  1302,  1304,
+    1306,  1308,  1310,  1311,  1313,  1315,  1317,  1319,
+    1320,  1322,  1324,  1325,  1327,  1329,  1330,  1332,
+    1334,  1335,  1337,  1339,  1340,  1342,  1343,  1345,
+    1346,  1348,  1349,  1351,  1352,  1354,  1355,  1357,
+    1358,  1360,  1361,  1362,  1364,  1365,  1367,  1368,
+    1369,  1370,  1372,  1373,  1374,  1376,  1377,  1378,
+    1379,  1380,  1382,  1383,  1384,  1385,  1386,  1387,
+    1389,  1390,  1391,  1392,  1393,  1394,  1395,  1396,
+    1397,  1398,  1399,  1400,  1401,  1402,  1403,  1404,
+    1405,  1405,  1406,  1407,  1408,  1409,  1410,  1410,
+    1411,  1412,  1413,  1414,  1414,  1415,  1416,  1416,
+    1417,  1418,  1419,  1419,  1420,  1420,  1421,  1422,
+    1422,  1423,  1423,  1424,  1424,  1425,  1425,  1426,
+    1426,  1427,  1427,  1428,  1428,  1429,  1429,  1429,
+    1430,  1430,  1431,  1431,  1431,  1432,  1432,  1432,
+    1432,  1433,  1433,  1433,  1433,  1434,  1434,  1434,
+    1434,  1434,  1434,  1435,  1435,  1435,  1435,  1435,
+    1435,  1435,  1435,  1435,  1435,  1435,  1435,  1435,
+    1435,  1435,  1435,  1435,  1435,  1435,  1435,  1435,
+    1435,  1434,  1434,  1434,  1434,  1434,  1434,  1433,
+    1433,  1433,  1433,  1432,  1432,  1432,  1432,  1431,
+    1431,  1431,  1430,  1430,  1429,  1429,  1429,  1428,
+    1428,  1427,  1427,  1427,  1426,  1426,  1425,  1425,
+    1424,  1424,  1423,  1422,  1422,  1421,  1421,  1420,
+    1420,  1419,  1418,  1418,  1417,  1416,  1416,  1415,
+    1414,  1413,  1413,  1412,  1411,  1410,  1410,  1409,
+    1408,  1407,  1406,  1406,  1405,  1404,  1403,  1402,
+    1401,  1400,  1400,  1399,  1398,  1397,  1396,  1395,
+    1394,  1393,  1392,  1391,  1390,  1389,  1388,  1387,
+    1386,  1384,  1383,  1382,  1381,  1380,  1379,  1378,
+    1377,  1375,  1374,  1373,  1372,  1371,  1369,  1368,
+    1367,  1366,  1364,  1363,  1362,  1361,  1359,  1358,
+    1357,  1355,  1354,  1353,  1351,  1350,  1348,  1347,
+    1346,  1344,  1343,  1341,  1340,  1338,  1337,  1335,
+    1334,  1332,  1331,  1329,  1328,  1326,  1325,  1323,
+    1322,  1320,  1318,  1317,  1315,  1314,  1312,  1310,
+    1309,  1307,  1305,  1304,  1302,  1300,  1299,  1297,
+    1295,  1293,  1292,  1290,  1288,  1286,  1284,  1283,
+    1281,  1279,  1277,  1275,  1274,  1272,  1270,  1268,
+    1266,  1264,  1262,  1260,  1258,  1257,  1255,  1253,
+    1251,  1249,  1247,  1245,  1243,  1241,  1239,  1237,
+    1235,  1233,  1231,  1229,  1227,  1224,  1222,  1220,
+    1218,  1216,  1214,  1212,  1210,  1208,  1205,  1203,
+    1201,  1199,  1197,  1195,  1192,  1190,  1188,  1186,
+    1183,  1181,  1179,  1177,  1174,  1172,  1170,  1168,
+    1165,  1163,  1161,  1158,  1156,  1154,  1151,  1149,
+    1147,  1144,  1142,  1140,  1137,  1135,  1132,  1130,
+    1128,  1125,  1123,  1120,  1118,  1115,  1113,  1110,
+    1108,  1105,  1103,  1100,  1098,  1095,  1093,  1090,
+    1088,  1085,  1083,  1080,  1078,  1075,  1073,  1070,
+    1067,  1065,  1062,  1060,  1057,  1054,  1052,  1049,
+    1046,  1044,  1041,  1038,  1036,  1033,  1030,  1028,
+    1025,  1022,  1020,  1017,  1014,  1012,  1009,  1006,
+    1003,  1001,   998,   995,   992,   990,   987,   984,
     981,   978,   976,   973,   970,   967,   964,   961,
     959,   956,   953,   950,   947,   944,   942,   939,
     936,   933,   930,   927,   924,   921,   918,   915,
@@ -1688,150 +1689,150 @@ static const float stationFilterConstants[] =
     161,   158,   154,   151,   148,   145,   141,   138,
     135,   132,   128,   125,   122,   118,   115,   112,
     109,   105,   102,    99,    96,    92,    89,    86,
-     83,    79,    76,    73,    70,    67,    63,    60,
-     57,    54,    50,    47,    44,    41,    38,    34,
-     31,    28,    25,    22,    18,    15,    12,     9,
-      6,     2,    -1,    -4,    -7,   -10,   -13,   -16,
+    83,    79,    76,    73,    70,    67,    63,    60,
+    57,    54,    50,    47,    44,    41,    38,    34,
+    31,    28,    25,    22,    18,    15,    12,     9,
+    6,     2,    -1,    -4,    -7,   -10,   -13,   -16,
     -20,   -23,   -26,   -29,   -32,   -35,   -39,   -42,
     -45,   -48,   -51,   -54,   -57,   -60,   -63,   -67,
     -70,   -73,   -76,   -79,   -82,   -85,   -88,   -91,
     -94,   -97,  -100,  -104,  -107,  -110,  -113,  -116,
-   -119,  -122,  -125,  -128,  -131,  -134,  -137,  -140,
-   -143,  -146,  -149,  -152,  -155,  -158,  -161,  -164,
-   -167,  -170,  -173,  -176,  -179,  -182,  -185,  -188,
-   -191,  -194,  -196,  -199,  -202,  -205,  -208,  -211,
-   -214,  -217,  -220,  -223,  -226,  -228,  -231,  -234,
-   -237,  -240,  -243,  -246,  -248,  -251,  -254,  -257,
-   -260,  -263,  -266,  -268,  -271,  -274,  -277,  -280,
-   -282,  -285,  -288,  -291,  -293,  -296,  -299,  -302,
-   -305,  -307,  -310,  -313,  -315,  -318,  -321,  -324,
-   -326,  -329,  -332,  -334,  -337,  -340,  -343,  -345,
-   -348,  -351,  -353,  -356,  -359,  -361,  -364,  -366,
-   -369,  -372,  -374,  -377,  -380,  -382,  -385,  -387,
-   -390,  -392,  -395,  -398,  -400,  -403,  -405,  -408,
-   -410,  -413,  -415,  -418,  -420,  -423,  -425,  -428,
-   -430,  -433,  -435,  -438,  -440,  -443,  -445,  -448,
-   -450,  -453,  -455,  -457,  -460,  -462,  -465,  -467,
-   -469,  -472,  -474,  -477,  -479,  -481,  -484,  -486,
-   -488,  -491,  -493,  -495,  -498,  -500,  -502,  -505,
-   -507,  -509,  -512,  -514,  -516,  -518,  -521,  -523,
-   -525,  -527,  -530,  -532,  -534,  -536,  -538,  -541,
-   -543,  -545,  -547,  -549,  -552,  -554,  -556,  -558,
-   -560,  -562,  -564,  -567,  -569,  -571,  -573,  -575,
-   -577,  -579,  -581,  -583,  -585,  -587,  -589,  -592,
-   -594,  -596,  -598,  -600,  -602,  -604,  -606,  -608,
-   -610,  -612,  -614,  -615,  -617,  -619,  -621,  -623,
-   -625,  -627,  -629,  -631,  -633,  -635,  -637,  -639,
-   -640,  -642,  -644,  -646,  -648,  -650,  -651,  -653,
-   -655,  -657,  -659,  -661,  -662,  -664,  -666,  -668,
-   -669,  -671,  -673,  -675,  -676,  -678,  -680,  -682,
-   -683,  -685,  -687,  -688,  -690,  -692,  -693,  -695,
-   -697,  -698,  -700,  -702,  -703,  -705,  -706,  -708,
-   -710,  -711,  -713,  -714,  -716,  -717,  -719,  -720,
-   -722,  -724,  -725,  -727,  -728,  -730,  -731,  -733,
-   -734,  -735,  -737,  -738,  -740,  -741,  -743,  -744,
-   -746,  -747,  -748,  -750,  -751,  -753,  -754,  -755,
-   -757,  -758,  -759,  -761,  -762,  -763,  -765,  -766,
-   -767,  -769,  -770,  -771,  -772,  -774,  -775,  -776,
-   -777,  -779,  -780,  -781,  -782,  -783,  -785,  -786,
-   -787,  -788,  -789,  -791,  -792,  -793,  -794,  -795,
-   -796,  -797,  -798,  -800,  -801,  -802,  -803,  -804,
-   -805,  -806,  -807,  -808,  -809,  -810,  -811,  -812,
-   -813,  -814,  -815,  -816,  -817,  -818,  -819,  -820,
-   -821,  -822,  -823,  -824,  -825,  -826,  -827,  -827,
-   -828,  -829,  -830,  -831,  -832,  -833,  -833,  -834,
-   -835,  -836,  -837,  -838,  -838,  -839,  -840,  -841,
-   -842,  -842,  -843,  -844,  -845,  -845,  -846,  -847,
-   -847,  -848,  -849,  -850,  -850,  -851,  -852,  -852,
-   -853,  -854,  -854,  -855,  -855,  -856,  -857,  -857,
-   -858,  -858,  -859,  -860,  -860,  -861,  -861,  -862,
-   -862,  -863,  -863,  -864,  -864,  -865,  -865,  -866,
-   -866,  -867,  -867,  -868,  -868,  -869,  -869,  -870,
-   -870,  -870,  -871,  -871,  -872,  -872,  -872,  -873,
-   -873,  -874,  -874,  -874,  -875,  -875,  -875,  -876,
-   -876,  -876,  -876,  -877,  -877,  -877,  -878,  -878,
-   -878,  -878,  -879,  -879,  -879,  -879,  -879,  -880,
-   -880,  -880,  -880,  -880,  -881,  -881,  -881,  -881,
-   -881,  -881,  -882,  -882,  -882,  -882,  -882,  -882,
-   -882,  -882,  -882,  -882,  -882,  -882,  -883,  -883,
-   -883,  -883,  -883,  -883,  -883,  -883,  -883,  -883,
-   -883,  -883,  -883,  -883,  -882,  -882,  -882,  -882,
-   -882,  -882,  -882,  -882,  -882,  -882,  -882,  -882,
-   -881,  -881,  -881,  -881,  -881,  -881,  -881,  -880,
-   -880,  -880,  -880,  -880,  -879,  -879,  -879,  -879,
-   -879,  -878,  -878,  -878,  -878,  -877,  -877,  -877,
-   -876,  -876,  -876,  -876,  -875,  -875,  -875,  -874,
-   -874,  -874,  -873,  -873,  -873,  -872,  -872,  -871,
-   -871,  -871,  -870,  -870,  -870,  -869,  -869,  -868,
-   -868,  -867,  -867,  -867,  -866,  -866,  -865,  -865,
-   -864,  -864,  -863,  -863,  -862,  -862,  -861,  -861,
-   -860,  -860,  -859,  -859,  -858,  -857,  -857,  -856,
-   -856,  -855,  -855,  -854,  -853,  -853,  -852,  -852,
-   -851,  -850,  -850,  -849,  -848,  -848,  -847,  -846,
-   -846,  -845,  -844,  -844,  -843,  -842,  -842,  -841,
-   -840,  -840,  -839,  -838,  -837,  -837,  -836,  -835,
-   -834,  -834,  -833,  -832,  -831,  -831,  -830,  -829,
-   -828,  -827,  -827,  -826,  -825,  -824,  -823,  -822,
-   -822,  -821,  -820,  -819,  -818,  -817,  -816,  -816,
-   -815,  -814,  -813,  -812,  -811,  -810,  -809,  -808,
-   -808,  -807,  -806,  -805,  -804,  -803,  -802,  -801,
-   -800,  -799,  -798,  -797,  -796,  -795,  -794,  -793,
-   -792,  -791,  -790,  -789,  -788,  -787,  -786,  -785,
-   -784,  -783,  -782,  -781,  -780,  -779,  -778,  -777,
-   -776,  -774,  -773,  -772,  -771,  -770,  -769,  -768,
-   -767,  -766,  -765,  -763,  -762,  -761,  -760,  -759,
-   -758,  -757,  -755,  -754,  -753,  -752,  -751,  -750,
-   -748,  -747,  -746,  -745,  -744,  -743,  -741,  -740,
-   -739,  -738,  -736,  -735,  -734,  -733,  -732,  -730,
-   -729,  -728,  -727,  -725,  -724,  -723,  -722,  -720,
-   -719,  -718,  -716,  -715,  -714,  -713,  -711,  -710,
-   -709,  -707,  -706,  -705,  -703,  -702,  -701,  -699,
-   -698,  -697,  -695,  -694,  -693,  -691,  -690,  -689,
-   -687,  -686,  -685,  -683,  -682,  -680,  -679,  -678,
-   -676,  -675,  -673,  -672,  -671,  -669,  -668,  -666,
-   -665,  -664,  -662,  -661,  -659,  -658,  -656,  -655,
-   -654,  -652,  -651,  -649,  -648,  -646,  -645,  -643,
-   -642,  -640,  -639,  -638,  -636,  -635,  -633,  -632,
-   -630,  -629,  -627,  -626,  -624,  -623,  -621,  -620,
-   -618,  -617,  -615,  -614,  -612,  -610,  -609,  -607,
-   -606,  -604,  -603,  -601,  -600,  -598,  -597,  -595,
-   -594,  -592,  -590,  -589,  -587,  -586,  -584,  -583,
-   -581,  -579,  -578,  -576,  -575,  -573,  -572,  -570,
-   -568,  -567,  -565,  -564,  -562,  -560,  -559,  -557,
-   -556,  -554,  -552,  -551,  -549,  -547,  -546,  -544,
-   -543,  -541,  -539,  -538,  -536,  -534,  -533,  -531,
-   -530,  -528,  -526,  -525,  -523,  -521,  -520,  -518,
-   -516,  -515,  -513,  -511,  -510,  -508,  -506,  -505,
-   -503,  -501,  -500,  -498,  -496,  -495,  -493,  -491,
-   -490,  -488,  -486,  -485,  -483,  -481,  -479,  -478,
-   -476,  -474,  -473,  -471,  -469,  -468,  -466,  -464,
-   -462,  -461,  -459,  -457,  -456,  -454,  -452,  -450,
-   -449,  -447,  -445,  -444,  -442,  -440,  -438,  -437,
-   -435,  -433,  -432,  -430,  -428,  -426,  -425,  -423,
-   -421,  -419,  -418,  -416,  -414,  -413,  -411,  -409,
-   -407,  -406,  -404,  -402,  -400,  -399,  -397,  -395,
-   -393,  -392,  -390,  -388,  -386,  -385,  -383,  -381,
-   -379,  -378,  -376,  -374,  -372,  -371,  -369,  -367,
-   -365,  -364,  -362,  -360,  -358,  -357,  -355,  -353,
-   -351,  -350,  -348,  -346,  -344,  -343,  -341,  -339,
-   -337,  -336,  -334,  -332,  -330,  -328,  -327,  -325,
-   -323,  -321,  -320,  -318,  -316,  -314,  -313,  -311,
-   -309,  -307,  -306,  -304,  -302,  -300,  -299,  -297,
-   -295,  -293,  -291,  -290,  -288,  -286,  -284,  -283,
-   -281,  -279,  -277,  -276,  -274,  -272,  -270,  -269,
-   -267,  -265,  -263,  -262,  -260,  -258,  -256,  -255,
-   -253,  -251,  -249,  -247,  -246,  -244,  -242,  -240,
-   -239,  -237,  -235,  -233,  -232,  -230,  -228,  -226,
-   -225,  -223,  -221,  -219,  -218,  -216,  -214,  -213,
-   -211,  -209,  -207,  -206,  -204,  -202,  -200,  -199,
-   -197,  -195,  -193,  -192,  -190,  -188,  -186,  -185,
-   -183,  -181,  -180,  -178,  -176,  -174,  -173,  -171,
-   -169,  -167,  -166,  -164,  -162,  -161,  -159,  -157,
-   -155,  -154,  -152,  -150,  -149,  -147,  -145,  -143,
-   -142,  -140,  -138,  -137,  -135,  -133,  -132,  -130,
-   -128,  -126,  -125,  -123,  -121,  -120,  -118,  -116,
-   -115,  -113,  -111,  -110,  -108,  -106,  -105,  -103,
-   -101,   -99,   -98,   -96,   -94,   -93,   -91,   -89,
+    -119,  -122,  -125,  -128,  -131,  -134,  -137,  -140,
+    -143,  -146,  -149,  -152,  -155,  -158,  -161,  -164,
+    -167,  -170,  -173,  -176,  -179,  -182,  -185,  -188,
+    -191,  -194,  -196,  -199,  -202,  -205,  -208,  -211,
+    -214,  -217,  -220,  -223,  -226,  -228,  -231,  -234,
+    -237,  -240,  -243,  -246,  -248,  -251,  -254,  -257,
+    -260,  -263,  -266,  -268,  -271,  -274,  -277,  -280,
+    -282,  -285,  -288,  -291,  -293,  -296,  -299,  -302,
+    -305,  -307,  -310,  -313,  -315,  -318,  -321,  -324,
+    -326,  -329,  -332,  -334,  -337,  -340,  -343,  -345,
+    -348,  -351,  -353,  -356,  -359,  -361,  -364,  -366,
+    -369,  -372,  -374,  -377,  -380,  -382,  -385,  -387,
+    -390,  -392,  -395,  -398,  -400,  -403,  -405,  -408,
+    -410,  -413,  -415,  -418,  -420,  -423,  -425,  -428,
+    -430,  -433,  -435,  -438,  -440,  -443,  -445,  -448,
+    -450,  -453,  -455,  -457,  -460,  -462,  -465,  -467,
+    -469,  -472,  -474,  -477,  -479,  -481,  -484,  -486,
+    -488,  -491,  -493,  -495,  -498,  -500,  -502,  -505,
+    -507,  -509,  -512,  -514,  -516,  -518,  -521,  -523,
+    -525,  -527,  -530,  -532,  -534,  -536,  -538,  -541,
+    -543,  -545,  -547,  -549,  -552,  -554,  -556,  -558,
+    -560,  -562,  -564,  -567,  -569,  -571,  -573,  -575,
+    -577,  -579,  -581,  -583,  -585,  -587,  -589,  -592,
+    -594,  -596,  -598,  -600,  -602,  -604,  -606,  -608,
+    -610,  -612,  -614,  -615,  -617,  -619,  -621,  -623,
+    -625,  -627,  -629,  -631,  -633,  -635,  -637,  -639,
+    -640,  -642,  -644,  -646,  -648,  -650,  -651,  -653,
+    -655,  -657,  -659,  -661,  -662,  -664,  -666,  -668,
+    -669,  -671,  -673,  -675,  -676,  -678,  -680,  -682,
+    -683,  -685,  -687,  -688,  -690,  -692,  -693,  -695,
+    -697,  -698,  -700,  -702,  -703,  -705,  -706,  -708,
+    -710,  -711,  -713,  -714,  -716,  -717,  -719,  -720,
+    -722,  -724,  -725,  -727,  -728,  -730,  -731,  -733,
+    -734,  -735,  -737,  -738,  -740,  -741,  -743,  -744,
+    -746,  -747,  -748,  -750,  -751,  -753,  -754,  -755,
+    -757,  -758,  -759,  -761,  -762,  -763,  -765,  -766,
+    -767,  -769,  -770,  -771,  -772,  -774,  -775,  -776,
+    -777,  -779,  -780,  -781,  -782,  -783,  -785,  -786,
+    -787,  -788,  -789,  -791,  -792,  -793,  -794,  -795,
+    -796,  -797,  -798,  -800,  -801,  -802,  -803,  -804,
+    -805,  -806,  -807,  -808,  -809,  -810,  -811,  -812,
+    -813,  -814,  -815,  -816,  -817,  -818,  -819,  -820,
+    -821,  -822,  -823,  -824,  -825,  -826,  -827,  -827,
+    -828,  -829,  -830,  -831,  -832,  -833,  -833,  -834,
+    -835,  -836,  -837,  -838,  -838,  -839,  -840,  -841,
+    -842,  -842,  -843,  -844,  -845,  -845,  -846,  -847,
+    -847,  -848,  -849,  -850,  -850,  -851,  -852,  -852,
+    -853,  -854,  -854,  -855,  -855,  -856,  -857,  -857,
+    -858,  -858,  -859,  -860,  -860,  -861,  -861,  -862,
+    -862,  -863,  -863,  -864,  -864,  -865,  -865,  -866,
+    -866,  -867,  -867,  -868,  -868,  -869,  -869,  -870,
+    -870,  -870,  -871,  -871,  -872,  -872,  -872,  -873,
+    -873,  -874,  -874,  -874,  -875,  -875,  -875,  -876,
+    -876,  -876,  -876,  -877,  -877,  -877,  -878,  -878,
+    -878,  -878,  -879,  -879,  -879,  -879,  -879,  -880,
+    -880,  -880,  -880,  -880,  -881,  -881,  -881,  -881,
+    -881,  -881,  -882,  -882,  -882,  -882,  -882,  -882,
+    -882,  -882,  -882,  -882,  -882,  -882,  -883,  -883,
+    -883,  -883,  -883,  -883,  -883,  -883,  -883,  -883,
+    -883,  -883,  -883,  -883,  -882,  -882,  -882,  -882,
+    -882,  -882,  -882,  -882,  -882,  -882,  -882,  -882,
+    -881,  -881,  -881,  -881,  -881,  -881,  -881,  -880,
+    -880,  -880,  -880,  -880,  -879,  -879,  -879,  -879,
+    -879,  -878,  -878,  -878,  -878,  -877,  -877,  -877,
+    -876,  -876,  -876,  -876,  -875,  -875,  -875,  -874,
+    -874,  -874,  -873,  -873,  -873,  -872,  -872,  -871,
+    -871,  -871,  -870,  -870,  -870,  -869,  -869,  -868,
+    -868,  -867,  -867,  -867,  -866,  -866,  -865,  -865,
+    -864,  -864,  -863,  -863,  -862,  -862,  -861,  -861,
+    -860,  -860,  -859,  -859,  -858,  -857,  -857,  -856,
+    -856,  -855,  -855,  -854,  -853,  -853,  -852,  -852,
+    -851,  -850,  -850,  -849,  -848,  -848,  -847,  -846,
+    -846,  -845,  -844,  -844,  -843,  -842,  -842,  -841,
+    -840,  -840,  -839,  -838,  -837,  -837,  -836,  -835,
+    -834,  -834,  -833,  -832,  -831,  -831,  -830,  -829,
+    -828,  -827,  -827,  -826,  -825,  -824,  -823,  -822,
+    -822,  -821,  -820,  -819,  -818,  -817,  -816,  -816,
+    -815,  -814,  -813,  -812,  -811,  -810,  -809,  -808,
+    -808,  -807,  -806,  -805,  -804,  -803,  -802,  -801,
+    -800,  -799,  -798,  -797,  -796,  -795,  -794,  -793,
+    -792,  -791,  -790,  -789,  -788,  -787,  -786,  -785,
+    -784,  -783,  -782,  -781,  -780,  -779,  -778,  -777,
+    -776,  -774,  -773,  -772,  -771,  -770,  -769,  -768,
+    -767,  -766,  -765,  -763,  -762,  -761,  -760,  -759,
+    -758,  -757,  -755,  -754,  -753,  -752,  -751,  -750,
+    -748,  -747,  -746,  -745,  -744,  -743,  -741,  -740,
+    -739,  -738,  -736,  -735,  -734,  -733,  -732,  -730,
+    -729,  -728,  -727,  -725,  -724,  -723,  -722,  -720,
+    -719,  -718,  -716,  -715,  -714,  -713,  -711,  -710,
+    -709,  -707,  -706,  -705,  -703,  -702,  -701,  -699,
+    -698,  -697,  -695,  -694,  -693,  -691,  -690,  -689,
+    -687,  -686,  -685,  -683,  -682,  -680,  -679,  -678,
+    -676,  -675,  -673,  -672,  -671,  -669,  -668,  -666,
+    -665,  -664,  -662,  -661,  -659,  -658,  -656,  -655,
+    -654,  -652,  -651,  -649,  -648,  -646,  -645,  -643,
+    -642,  -640,  -639,  -638,  -636,  -635,  -633,  -632,
+    -630,  -629,  -627,  -626,  -624,  -623,  -621,  -620,
+    -618,  -617,  -615,  -614,  -612,  -610,  -609,  -607,
+    -606,  -604,  -603,  -601,  -600,  -598,  -597,  -595,
+    -594,  -592,  -590,  -589,  -587,  -586,  -584,  -583,
+    -581,  -579,  -578,  -576,  -575,  -573,  -572,  -570,
+    -568,  -567,  -565,  -564,  -562,  -560,  -559,  -557,
+    -556,  -554,  -552,  -551,  -549,  -547,  -546,  -544,
+    -543,  -541,  -539,  -538,  -536,  -534,  -533,  -531,
+    -530,  -528,  -526,  -525,  -523,  -521,  -520,  -518,
+    -516,  -515,  -513,  -511,  -510,  -508,  -506,  -505,
+    -503,  -501,  -500,  -498,  -496,  -495,  -493,  -491,
+    -490,  -488,  -486,  -485,  -483,  -481,  -479,  -478,
+    -476,  -474,  -473,  -471,  -469,  -468,  -466,  -464,
+    -462,  -461,  -459,  -457,  -456,  -454,  -452,  -450,
+    -449,  -447,  -445,  -444,  -442,  -440,  -438,  -437,
+    -435,  -433,  -432,  -430,  -428,  -426,  -425,  -423,
+    -421,  -419,  -418,  -416,  -414,  -413,  -411,  -409,
+    -407,  -406,  -404,  -402,  -400,  -399,  -397,  -395,
+    -393,  -392,  -390,  -388,  -386,  -385,  -383,  -381,
+    -379,  -378,  -376,  -374,  -372,  -371,  -369,  -367,
+    -365,  -364,  -362,  -360,  -358,  -357,  -355,  -353,
+    -351,  -350,  -348,  -346,  -344,  -343,  -341,  -339,
+    -337,  -336,  -334,  -332,  -330,  -328,  -327,  -325,
+    -323,  -321,  -320,  -318,  -316,  -314,  -313,  -311,
+    -309,  -307,  -306,  -304,  -302,  -300,  -299,  -297,
+    -295,  -293,  -291,  -290,  -288,  -286,  -284,  -283,
+    -281,  -279,  -277,  -276,  -274,  -272,  -270,  -269,
+    -267,  -265,  -263,  -262,  -260,  -258,  -256,  -255,
+    -253,  -251,  -249,  -247,  -246,  -244,  -242,  -240,
+    -239,  -237,  -235,  -233,  -232,  -230,  -228,  -226,
+    -225,  -223,  -221,  -219,  -218,  -216,  -214,  -213,
+    -211,  -209,  -207,  -206,  -204,  -202,  -200,  -199,
+    -197,  -195,  -193,  -192,  -190,  -188,  -186,  -185,
+    -183,  -181,  -180,  -178,  -176,  -174,  -173,  -171,
+    -169,  -167,  -166,  -164,  -162,  -161,  -159,  -157,
+    -155,  -154,  -152,  -150,  -149,  -147,  -145,  -143,
+    -142,  -140,  -138,  -137,  -135,  -133,  -132,  -130,
+    -128,  -126,  -125,  -123,  -121,  -120,  -118,  -116,
+    -115,  -113,  -111,  -110,  -108,  -106,  -105,  -103,
+    -101,   -99,   -98,   -96,   -94,   -93,   -91,   -89,
     -88,   -86,   -84,   -83,   -81,   -80,   -78,   -76,
     -75,   -73,   -71,   -70,   -68,   -66,   -65,   -63,
     -61,   -60,   -58,   -57,   -55,   -53,   -52,   -50,
@@ -1839,15 +1840,15 @@ static const float stationFilterConstants[] =
     -35,   -34,   -32,   -31,   -29,   -27,   -26,   -24,
     -23,   -21,   -19,   -18,   -16,   -15,   -13,   -11,
     -10,    -8,    -7,    -5,    -4,    -2,     0,     1,
-      3,     4,     6,     7,     9,    10,    12,    14,
-     15,    17,    18,    20,    21,    23,    24,    26,
-     27,    29,    30,    32,    34,    35,    37,    38,
-     40,    41,    43,    44,    46,    47,    49,    50,
-     52,    53,    55,    56,    58,    59,    61,    62,
-     64,    65,    66,    68,    69,    71,    72,    74,
-     75,    77,    78,    80,    81,    82,    84,    85,
-     87,    88,    90,    91,    93,    94,    95,    97,
-     98,   100,   101,   102,   104,   105,   107,   108,
+    3,     4,     6,     7,     9,    10,    12,    14,
+    15,    17,    18,    20,    21,    23,    24,    26,
+    27,    29,    30,    32,    34,    35,    37,    38,
+    40,    41,    43,    44,    46,    47,    49,    50,
+    52,    53,    55,    56,    58,    59,    61,    62,
+    64,    65,    66,    68,    69,    71,    72,    74,
+    75,    77,    78,    80,    81,    82,    84,    85,
+    87,    88,    90,    91,    93,    94,    95,    97,
+    98,   100,   101,   102,   104,   105,   107,   108,
     109,   111,   112,   114,   115,   116,   118,   119,
     121,   122,   123,   125,   126,   127,   129,   130,
     132,   133,   134,   136,   137,   138,   140,   141,
@@ -2011,90 +2012,90 @@ static const float stationFilterConstants[] =
     105,   105,   105,   104,   104,   104,   103,   103,
     103,   102,   102,   101,   101,   101,   100,   100,
     100,    99,    99,    99,    98,    98,    97,    97,
-     97,    96,    96,    96,    95,    95,    95,    94,
-     94,    94,    93,    93,    93,    92,    92,    92,
-     91,    91,    90,    90,    90,    89,    89,    89,
-     88,    88,    88,    87,    87,    87,    86,    86,
-     86,    85,    85,    85,    85,    84,    84,    84,
-     83,    83,    83,    82,    82,    82,    81,    81,
-     81,    80,    80,    80,    79,    79,    79,    78,
-     78,    78,    77,    77,    77,    77,    76,    76,
-     76,    75,    75,    75,    74,    74,    74,    74,
-     73,    73,    73,    72,    72,    72,    71,    71,
-     71,    71,    70,    70,    70,    69,    69,    69,
-     69,    68,    68,    68,    67,    67,    67,    67,
-     66,    66,    66,    65,    65,    65,    65,    64,
-     64,    64,    63,    63,    63,    63,    62,    62,
-     62,    62,    61,    61,    61,    60,    60,    60,
-     60,    59,    59,    59,    59,    58,    58,    58,
-     58,    57,    57,    57,    57,    56,    56,    56,
-     56,    55,    55,    55,    55,    54,    54,    54,
-     54,    53,    53,    53,    53,    52,    52,    52,
-     52,    51,    51,    51,    51,    50,    50,    50,
-     50,    50,    49,    49,    49,    49,    48,    48,
-     48,    48,    47,    47,    47,    47,    46,    46,
-     46,    46,    46,    45,    45,    45,    45,    44,
-     44,    44,    44,    44,    43,    43,    43,    43,
-     43,    42,    42,    42,    42,    42,    41,    41,
-     41,    41,    40,    40,    40,    40,    40,    39,
-     39,    39,    39,    39,    38,    38,    38,    38,
-     38,    37,    37,    37,    37,    37,    37,    36,
-     36,    36,    36,    36,    35,    35,    35,    35,
-     35,    34,    34,    34,    34,    34,    33,    33,
-     33,    33,    33,    33,    32,    32,    32,    32,
-     32,    32,    31,    31,    31,    31,    31,    31,
-     30,    30,    30,    30,    30,    29,    29,    29,
-     29,    29,    29,    28,    28,    28,    28,    28,
-     28,    27,    27,    27,    27,    27,    27,    27,
-     26,    26,    26,    26,    26,    26,    26,    25,
-     25,    25,    25,    25,    25,    24,    24,    24,
-     24,    24,    24,    23,    23,    23,    23,    23,
-     23,    23,    22,    22,    22,    22,    22,    22,
-     22,    22,    21,    21,    21,    21,    21,    21,
-     21,    21,    20,    20,    20,    20,    20,    20,
-     20,    19,    19,    19,    19,    19,    19,    19,
-     18,    18,    18,    18,    18,    18,    18,    18,
-     18,    17,    17,    17,    17,    17,    17,    17,
-     17,    17,    17,    16,    16,    16,    16,    16,
-     16,    16,    15,    15,    15,    15,    15,    15,
-     15,    15,    14,    14,    14,    14,    14,    14,
-     14,    14,    14,    14,    14,    14,    14,    14,
-     13,    13,    13,    13,    13,    13,    13,    13,
-     12,    12,    12,    12,    12,    12,    11,    11,
-     11,    11,    11,    11,    11,    11,    11,    11,
-     11,    11,    11,    11,    11,    11,    11,    11,
-     11,    11,    11,    11,    10,    10,    10,    10,
-      9,     9,     9,     8,     8,     8,     7,     7,
-      7,     7,     7,     7,     7,     7,     8,     8,
-      9,     9,    10,    11,    12,    14,    15,    17,
-     18,    20,    21,    23,    25,    26,    28,    29,
-     31,    32,    33,    34,    35,    35,    36,    36,
-};
+    97,    96,    96,    96,    95,    95,    95,    94,
+    94,    94,    93,    93,    93,    92,    92,    92,
+    91,    91,    90,    90,    90,    89,    89,    89,
+    88,    88,    88,    87,    87,    87,    86,    86,
+    86,    85,    85,    85,    85,    84,    84,    84,
+    83,    83,    83,    82,    82,    82,    81,    81,
+    81,    80,    80,    80,    79,    79,    79,    78,
+    78,    78,    77,    77,    77,    77,    76,    76,
+    76,    75,    75,    75,    74,    74,    74,    74,
+    73,    73,    73,    72,    72,    72,    71,    71,
+    71,    71,    70,    70,    70,    69,    69,    69,
+    69,    68,    68,    68,    67,    67,    67,    67,
+    66,    66,    66,    65,    65,    65,    65,    64,
+    64,    64,    63,    63,    63,    63,    62,    62,
+    62,    62,    61,    61,    61,    60,    60,    60,
+    60,    59,    59,    59,    59,    58,    58,    58,
+    58,    57,    57,    57,    57,    56,    56,    56,
+    56,    55,    55,    55,    55,    54,    54,    54,
+    54,    53,    53,    53,    53,    52,    52,    52,
+    52,    51,    51,    51,    51,    50,    50,    50,
+    50,    50,    49,    49,    49,    49,    48,    48,
+    48,    48,    47,    47,    47,    47,    46,    46,
+    46,    46,    46,    45,    45,    45,    45,    44,
+    44,    44,    44,    44,    43,    43,    43,    43,
+    43,    42,    42,    42,    42,    42,    41,    41,
+    41,    41,    40,    40,    40,    40,    40,    39,
+    39,    39,    39,    39,    38,    38,    38,    38,
+    38,    37,    37,    37,    37,    37,    37,    36,
+    36,    36,    36,    36,    35,    35,    35,    35,
+    35,    34,    34,    34,    34,    34,    33,    33,
+    33,    33,    33,    33,    32,    32,    32,    32,
+    32,    32,    31,    31,    31,    31,    31,    31,
+    30,    30,    30,    30,    30,    29,    29,    29,
+    29,    29,    29,    28,    28,    28,    28,    28,
+    28,    27,    27,    27,    27,    27,    27,    27,
+    26,    26,    26,    26,    26,    26,    26,    25,
+    25,    25,    25,    25,    25,    24,    24,    24,
+    24,    24,    24,    23,    23,    23,    23,    23,
+    23,    23,    22,    22,    22,    22,    22,    22,
+    22,    22,    21,    21,    21,    21,    21,    21,
+    21,    21,    20,    20,    20,    20,    20,    20,
+    20,    19,    19,    19,    19,    19,    19,    19,
+    18,    18,    18,    18,    18,    18,    18,    18,
+    18,    17,    17,    17,    17,    17,    17,    17,
+    17,    17,    17,    16,    16,    16,    16,    16,
+    16,    16,    15,    15,    15,    15,    15,    15,
+    15,    15,    14,    14,    14,    14,    14,    14,
+    14,    14,    14,    14,    14,    14,    14,    14,
+    13,    13,    13,    13,    13,    13,    13,    13,
+    12,    12,    12,    12,    12,    12,    11,    11,
+    11,    11,    11,    11,    11,    11,    11,    11,
+    11,    11,    11,    11,    11,    11,    11,    11,
+    11,    11,    11,    11,    10,    10,    10,    10,
+    9,     9,     9,     8,     8,     8,     7,     7,
+    7,     7,     7,     7,     7,     7,     8,     8,
+    9,     9,    10,    11,    12,    14,    15,    17,
+    18,    20,    21,    23,    25,    26,    28,    29,
+    31,    32,    33,    34,    35,    35,    36,    36,
+  };
 
 
-void computeCorrectionFactors(float *factors, unsigned nrChannels)
-{
-  // The following matlab functions are used:
+  void computeCorrectionFactors(float *factors, unsigned nrChannels)
+  {
+    // The following matlab functions are used:
 
-  // f=fftshift(fft(Coeffs16384Kaiser_quant,262144))
-  // m=f(131073-128:131073+127)
-  // r=f(131073-128+256:131073+127+256)
-  // l=f(131073-128-256:131073+127-256)
-  // plot(2^50./(abs(m).^2+abs(l).^2+abs(r).^2))
+    // f=fftshift(fft(Coeffs16384Kaiser_quant,262144))
+    // m=f(131073-128:131073+127)
+    // r=f(131073-128+256:131073+127+256)
+    // l=f(131073-128-256:131073+127-256)
+    // plot(2^50./(abs(m).^2+abs(l).^2+abs(r).^2))
 
-  unsigned fftSize = STATION_FFT_SIZE * nrChannels;
-  
-  // We cannot make the fft smaller than the number of filter constants.
-  if (fftSize < STATION_FILTER_LENGTH)
-    fftSize = STATION_FILTER_LENGTH;
+    unsigned fftSize = STATION_FFT_SIZE * nrChannels;
 
-  // it is not worth to use the more complex R2C FFTW method
-  std::vector<std::complex<float> > in(fftSize), out(fftSize);
+    // We cannot make the fft smaller than the number of filter constants.
+    if (fftSize < STATION_FILTER_LENGTH)
+      fftSize = STATION_FILTER_LENGTH;
+
+    // it is not worth to use the more complex R2C FFTW method
+    std::vector<std::complex<float> > in(fftSize), out(fftSize);
 
 #if defined HAVE_FFTW3
-  fftwf_plan plan;
+    fftwf_plan plan;
 #pragma omp critical (FFTW)
-  plan = fftwf_plan_dft_1d(fftSize, reinterpret_cast<fftwf_complex *>(&in[0]), reinterpret_cast<fftwf_complex *>(&out[0]), FFTW_FORWARD, FFTW_ESTIMATE);
+    plan = fftwf_plan_dft_1d(fftSize, reinterpret_cast<fftwf_complex *>(&in[0]), reinterpret_cast<fftwf_complex *>(&out[0]), FFTW_FORWARD, FFTW_ESTIMATE);
 #elif defined HAVE_FFTW2
     fftw_plan plan;
 #pragma omp critical (FFTW)
@@ -2103,30 +2104,30 @@ void computeCorrectionFactors(float *factors, unsigned nrChannels)
 #error need FFTW2 or FFTW3
 #endif
 
-  for (unsigned i = 0; i < STATION_FILTER_LENGTH; i ++)
-    in[i] = stationFilterConstants[i];
+    for (unsigned i = 0; i < STATION_FILTER_LENGTH; i++)
+      in[i] = stationFilterConstants[i];
 
-  for (unsigned i = STATION_FILTER_LENGTH; i < fftSize; i ++)
-    in[i] = 0;
+    for (unsigned i = STATION_FILTER_LENGTH; i < fftSize; i++)
+      in[i] = 0;
 
 #if defined HAVE_FFTW3
-  fftwf_execute(plan);
+    fftwf_execute(plan);
 #pragma omp critical (FFTW)
-  fftwf_destroy_plan(plan);
+    fftwf_destroy_plan(plan);
 #elif defined HAVE_FFTW2
-  fftw_one(plan, reinterpret_cast<fftw_complex *>(&in[0]), reinterpret_cast<fftw_complex *>(&out[0]));
+    fftw_one(plan, reinterpret_cast<fftw_complex *>(&in[0]), reinterpret_cast<fftw_complex *>(&out[0]));
 #pragma omp critical (FFTW)
-  fftw_destroy_plan(plan);
+    fftw_destroy_plan(plan);
 #endif
 
-  for (unsigned i = 0; i < nrChannels; i ++) {
-    const std::complex<float> m = out[(i - nrChannels / 2) % fftSize];
-    const std::complex<float> l = out[(i - 3 * nrChannels / 2) % fftSize];
-    const std::complex<float> r = out[i + nrChannels / 2];
+    for (unsigned i = 0; i < nrChannels; i++) {
+      const std::complex<float> m = out[(i - nrChannels / 2) % fftSize];
+      const std::complex<float> l = out[(i - 3 * nrChannels / 2) % fftSize];
+      const std::complex<float> r = out[i + nrChannels / 2];
 
-    factors[i] = pow(2, 25) / sqrt(abs(m * m + l * l + r * r));
+      factors[i] = pow(2, 25) / sqrt(abs(m * m + l * l + r * r));
+    }
   }
-}
 
 } // namespace BandPass
 
diff --git a/RTCP/Cobalt/GPUProc/src/BandPass.h b/RTCP/Cobalt/GPUProc/src/BandPass.h
index acdc9eff1c46882e27cff4ad90f5976651e3800e..2d891bac059812c5a4004817c05c82657a97b25c 100644
--- a/RTCP/Cobalt/GPUProc/src/BandPass.h
+++ b/RTCP/Cobalt/GPUProc/src/BandPass.h
@@ -2,7 +2,8 @@
 #define BANDPASS_H
 
 
-namespace BandPass {
+namespace BandPass
+{
   void computeCorrectionFactors(float *factors, unsigned nrChannels);
 }
 
diff --git a/RTCP/Cobalt/GPUProc/src/BeamFormer/BeamFormer.cl b/RTCP/Cobalt/GPUProc/src/BeamFormer/BeamFormer.cl
index b9d77ff7ac4749adca9a4267129afd7fd4ac9b44..790c0c45461827b0d8b7157bb3810ac6a889cd40 100644
--- a/RTCP/Cobalt/GPUProc/src/BeamFormer/BeamFormer.cl
+++ b/RTCP/Cobalt/GPUProc/src/BeamFormer/BeamFormer.cl
@@ -1,4 +1,4 @@
-#define MAX(A,B) ((A)>(B)?(A):(B))
+#define MAX(A,B) ((A)>(B) ? (A) : (B))
 #define NR_PASSES MAX((NR_STATIONS + 6) / 16, 1) // gives best results on GTX 680
 #define NR_STATIONS_PER_PASS ((NR_STATIONS + NR_PASSES - 1) / NR_PASSES)
 
@@ -13,16 +13,16 @@ typedef __global float2 (*WeightsType)[NR_STATIONS][NR_CHANNELS][NR_TABS];
 
 
 __kernel void complexVoltages(__global void *complexVoltagesPtr,
-			      __global const void *samplesPtr,
-			      __global const void *weightsPtr)
+                              __global const void *samplesPtr,
+                              __global const void *weightsPtr)
 {
-  ComplexVoltagesType	complexVoltages = (ComplexVoltagesType) complexVoltagesPtr;
-  BandPassCorrectedType samples		= (BandPassCorrectedType) samplesPtr;
-  WeightsType		weights		= (WeightsType) weightsPtr;
+  ComplexVoltagesType complexVoltages = (ComplexVoltagesType) complexVoltagesPtr;
+  BandPassCorrectedType samples = (BandPassCorrectedType) samplesPtr;
+  WeightsType weights = (WeightsType) weightsPtr;
 
-  uint pol		= get_local_id(0);
-  uint tab		= get_local_id(1);
-  uint channel		= get_global_id(2);
+  uint pol = get_local_id(0);
+  uint tab = get_local_id(1);
+  uint channel = get_global_id(2);
 
   float2 sample;
   __local union {
@@ -36,70 +36,70 @@ __kernel void complexVoltages(__global void *complexVoltagesPtr,
     float2 weight_00;
 
     if (first_station + 0 < NR_STATIONS)
-      weight_00 = (*weights)[first_station +  0][channel][tab];
+      weight_00 = (*weights)[first_station + 0][channel][tab];
 #endif
 
 #if NR_STATIONS_PER_PASS >= 2
     float2 weight_01;
 
     if (first_station + 1 < NR_STATIONS)
-      weight_01 = (*weights)[first_station +  1][channel][tab];
+      weight_01 = (*weights)[first_station + 1][channel][tab];
 #endif
 
 #if NR_STATIONS_PER_PASS >= 3
     float2 weight_02;
 
     if (first_station + 2 < NR_STATIONS)
-      weight_02 = (*weights)[first_station +  2][channel][tab];
+      weight_02 = (*weights)[first_station + 2][channel][tab];
 #endif
 
 #if NR_STATIONS_PER_PASS >= 4
     float2 weight_03;
 
     if (first_station + 3 < NR_STATIONS)
-      weight_03 = (*weights)[first_station +  3][channel][tab];
+      weight_03 = (*weights)[first_station + 3][channel][tab];
 #endif
 
 #if NR_STATIONS_PER_PASS >= 5
     float2 weight_04;
 
     if (first_station + 4 < NR_STATIONS)
-      weight_04 = (*weights)[first_station +  4][channel][tab];
+      weight_04 = (*weights)[first_station + 4][channel][tab];
 #endif
 
 #if NR_STATIONS_PER_PASS >= 6
     float2 weight_05;
 
     if (first_station + 5 < NR_STATIONS)
-      weight_05 = (*weights)[first_station +  5][channel][tab];
+      weight_05 = (*weights)[first_station + 5][channel][tab];
 #endif
 
 #if NR_STATIONS_PER_PASS >= 7
     float2 weight_06;
 
     if (first_station + 6 < NR_STATIONS)
-      weight_06 = (*weights)[first_station +  6][channel][tab];
+      weight_06 = (*weights)[first_station + 6][channel][tab];
 #endif
 
 #if NR_STATIONS_PER_PASS >= 8
     float2 weight_07;
 
     if (first_station + 7 < NR_STATIONS)
-      weight_07 = (*weights)[first_station +  7][channel][tab];
+      weight_07 = (*weights)[first_station + 7][channel][tab];
 #endif
 
 #if NR_STATIONS_PER_PASS >= 9
     float2 weight_08;
 
     if (first_station + 8 < NR_STATIONS)
-      weight_08 = (*weights)[first_station +  8][channel][tab];
+      weight_08 = (*weights)[first_station + 8][channel][tab];
 #endif
 
 #if NR_STATIONS_PER_PASS >= 10
     float2 weight_09;
 
     if (first_station + 9 < NR_STATIONS)
-      weight_09 = (*weights)[first_station +  9][channel][tab];
+      weight_09 = (*weights)[first_station + 9][channel][tab];
 #endif
 
 #if NR_STATIONS_PER_PASS >= 11
@@ -258,276 +258,276 @@ __kernel void complexVoltages(__global void *complexVoltagesPtr,
 
     for (uint time = 0; time < NR_SAMPLES_PER_CHANNEL; time += 16) {
       for (uint i = get_local_id(0) + NR_POLARIZATIONS * get_local_id(1); i < NR_STATIONS_PER_PASS * 16; i += NR_TABS * NR_POLARIZATIONS) {
-	uint t = i % 16;
-	uint s = i / 16;
+        uint t = i % 16;
+        uint s = i / 16;
 
-	if (NR_SAMPLES_PER_CHANNEL % 16 == 0 || time + t < NR_SAMPLES_PER_CHANNEL)
-	  if (NR_STATIONS % NR_STATIONS_PER_PASS == 0 || first_station + s < NR_STATIONS)
-	    _local.samples4[0][i] = convert_float4((*samples)[first_station + s][channel][time + t]);
+        if (NR_SAMPLES_PER_CHANNEL % 16 == 0 || time + t < NR_SAMPLES_PER_CHANNEL)
+          if (NR_STATIONS % NR_STATIONS_PER_PASS == 0 || first_station + s < NR_STATIONS)
+            _local.samples4[0][i] = convert_float4((*samples)[first_station + s][channel][time + t]);
       }
 
       barrier(CLK_LOCAL_MEM_FENCE);
 
-      for (uint t = 0; t < (NR_SAMPLES_PER_CHANNEL % 16 == 0 ? 16 : min(16U, NR_SAMPLES_PER_CHANNEL - time)); t ++) {
-	float2 sum = first_station == 0 ? 0 : (*complexVoltages)[channel][time + t][tab][pol];
+      for (uint t = 0; t < (NR_SAMPLES_PER_CHANNEL % 16 == 0 ? 16 : min(16U, NR_SAMPLES_PER_CHANNEL - time)); t++) {
+        float2 sum = first_station == 0 ? 0 : (*complexVoltages)[channel][time + t][tab][pol];
 
 #if NR_STATIONS_PER_PASS >= 1
-	if (first_station + 1 < NR_STATIONS) {
-	  sample = _local.samples[ 0][t][pol];
-	  sum += weight_00.xx * sample;
-	  sum += weight_00.yy * (float2) (-sample.y, sample.x);
-	}
+        if (first_station + 1 < NR_STATIONS) {
+          sample = _local.samples[ 0][t][pol];
+          sum += weight_00.xx * sample;
+          sum += weight_00.yy * (float2) (-sample.y, sample.x);
+        }
 #endif
 
 #if NR_STATIONS_PER_PASS >= 2
-	if (first_station + 2 < NR_STATIONS) {
-	  sample = _local.samples[ 1][t][pol];
-	  sum += weight_01.xx * sample;
-	  sum += weight_01.yy * (float2) (-sample.y, sample.x);
-	}
+        if (first_station + 2 < NR_STATIONS) {
+          sample = _local.samples[ 1][t][pol];
+          sum += weight_01.xx * sample;
+          sum += weight_01.yy * (float2) (-sample.y, sample.x);
+        }
 #endif
 
 #if NR_STATIONS_PER_PASS >= 3
-	if (first_station + 3 < NR_STATIONS) {
-	  sample = _local.samples[ 2][t][pol];
-	  sum += weight_02.xx * sample;
-	  sum += weight_02.yy * (float2) (-sample.y, sample.x);
-	}
+        if (first_station + 3 < NR_STATIONS) {
+          sample = _local.samples[ 2][t][pol];
+          sum += weight_02.xx * sample;
+          sum += weight_02.yy * (float2) (-sample.y, sample.x);
+        }
 #endif
 
 #if NR_STATIONS_PER_PASS >= 4
-	if (first_station + 4 < NR_STATIONS) {
-	  sample = _local.samples[ 3][t][pol];
-	  sum += weight_03.xx * sample;
-	  sum += weight_03.yy * (float2) (-sample.y, sample.x);
-	}
+        if (first_station + 4 < NR_STATIONS) {
+          sample = _local.samples[ 3][t][pol];
+          sum += weight_03.xx * sample;
+          sum += weight_03.yy * (float2) (-sample.y, sample.x);
+        }
 #endif
 
 #if NR_STATIONS_PER_PASS >= 5
-	if (first_station + 5 < NR_STATIONS) {
-	  sample = _local.samples[ 4][t][pol];
-	  sum += weight_04.xx * sample;
-	  sum += weight_04.yy * (float2) (-sample.y, sample.x);
-	}
+        if (first_station + 5 < NR_STATIONS) {
+          sample = _local.samples[ 4][t][pol];
+          sum += weight_04.xx * sample;
+          sum += weight_04.yy * (float2) (-sample.y, sample.x);
+        }
 #endif
 
 #if NR_STATIONS_PER_PASS >= 6
-	if (first_station + 6 < NR_STATIONS) {
-	  sample = _local.samples[ 5][t][pol];
-	  sum += weight_05.xx * sample;
-	  sum += weight_05.yy * (float2) (-sample.y, sample.x);
-	}
+        if (first_station + 6 < NR_STATIONS) {
+          sample = _local.samples[ 5][t][pol];
+          sum += weight_05.xx * sample;
+          sum += weight_05.yy * (float2) (-sample.y, sample.x);
+        }
 #endif
 
 #if NR_STATIONS_PER_PASS >= 7
-	if (first_station + 7 < NR_STATIONS) {
-	  sample = _local.samples[ 6][t][pol];
-	  sum += weight_06.xx * sample;
-	  sum += weight_06.yy * (float2) (-sample.y, sample.x);
-	}
+        if (first_station + 7 < NR_STATIONS) {
+          sample = _local.samples[ 6][t][pol];
+          sum += weight_06.xx * sample;
+          sum += weight_06.yy * (float2) (-sample.y, sample.x);
+        }
 #endif
 
 #if NR_STATIONS_PER_PASS >= 8
-	if (first_station + 8 < NR_STATIONS) {
-	  sample = _local.samples[ 7][t][pol];
-	  sum += weight_07.xx * sample;
-	  sum += weight_07.yy * (float2) (-sample.y, sample.x);
-	}
+        if (first_station + 8 < NR_STATIONS) {
+          sample = _local.samples[ 7][t][pol];
+          sum += weight_07.xx * sample;
+          sum += weight_07.yy * (float2) (-sample.y, sample.x);
+        }
 #endif
 
 #if NR_STATIONS_PER_PASS >= 9
-	if (first_station + 9 < NR_STATIONS) {
-	  sample = _local.samples[ 8][t][pol];
-	  sum += weight_08.xx * sample;
-	  sum += weight_08.yy * (float2) (-sample.y, sample.x);
-	}
+        if (first_station + 9 < NR_STATIONS) {
+          sample = _local.samples[ 8][t][pol];
+          sum += weight_08.xx * sample;
+          sum += weight_08.yy * (float2) (-sample.y, sample.x);
+        }
 #endif
 
 #if NR_STATIONS_PER_PASS >= 10
-	if (first_station + 10 < NR_STATIONS) {
-	  sample = _local.samples[ 9][t][pol];
-	  sum += weight_09.xx * sample;
-	  sum += weight_09.yy * (float2) (-sample.y, sample.x);
-	}
+        if (first_station + 10 < NR_STATIONS) {
+          sample = _local.samples[ 9][t][pol];
+          sum += weight_09.xx * sample;
+          sum += weight_09.yy * (float2) (-sample.y, sample.x);
+        }
 #endif
 
 #if NR_STATIONS_PER_PASS >= 11
-	if (first_station + 11 < NR_STATIONS) {
-	  sample = _local.samples[10][t][pol];
-	  sum += weight_10.xx * sample;
-	  sum += weight_10.yy * (float2) (-sample.y, sample.x);
-	}
+        if (first_station + 11 < NR_STATIONS) {
+          sample = _local.samples[10][t][pol];
+          sum += weight_10.xx * sample;
+          sum += weight_10.yy * (float2) (-sample.y, sample.x);
+        }
 #endif
 
 #if NR_STATIONS_PER_PASS >= 12
-	if (first_station + 12 < NR_STATIONS) {
-	  sample = _local.samples[11][t][pol];
-	  sum += weight_11.xx * sample;
-	  sum += weight_11.yy * (float2) (-sample.y, sample.x);
-	}
+        if (first_station + 12 < NR_STATIONS) {
+          sample = _local.samples[11][t][pol];
+          sum += weight_11.xx * sample;
+          sum += weight_11.yy * (float2) (-sample.y, sample.x);
+        }
 #endif
 
 #if NR_STATIONS_PER_PASS >= 13
-	if (first_station + 13 < NR_STATIONS) {
-	  sample = _local.samples[12][t][pol];
-	  sum += weight_12.xx * sample;
-	  sum += weight_12.yy * (float2) (-sample.y, sample.x);
-	}
+        if (first_station + 13 < NR_STATIONS) {
+          sample = _local.samples[12][t][pol];
+          sum += weight_12.xx * sample;
+          sum += weight_12.yy * (float2) (-sample.y, sample.x);
+        }
 #endif
 
 #if NR_STATIONS_PER_PASS >= 14
-	if (first_station + 14 < NR_STATIONS) {
-	  sample = _local.samples[13][t][pol];
-	  sum += weight_13.xx * sample;
-	  sum += weight_13.yy * (float2) (-sample.y, sample.x);
-	}
+        if (first_station + 14 < NR_STATIONS) {
+          sample = _local.samples[13][t][pol];
+          sum += weight_13.xx * sample;
+          sum += weight_13.yy * (float2) (-sample.y, sample.x);
+        }
 #endif
 
 #if NR_STATIONS_PER_PASS >= 15
-	if (first_station + 15 < NR_STATIONS) {
-	  sample = _local.samples[14][t][pol];
-	  sum += weight_14.xx * sample;
-	  sum += weight_14.yy * (float2) (-sample.y, sample.x);
-	}
+        if (first_station + 15 < NR_STATIONS) {
+          sample = _local.samples[14][t][pol];
+          sum += weight_14.xx * sample;
+          sum += weight_14.yy * (float2) (-sample.y, sample.x);
+        }
 #endif
 
 #if NR_STATIONS_PER_PASS >= 16
-	if (first_station + 15 < NR_STATIONS) {
-	  sample = _local.samples[15][t][pol];
-	  sum += weight_15.xx * sample;
-	  sum += weight_15.yy * (float2) (-sample.y, sample.x);
-	}
+        if (first_station + 15 < NR_STATIONS) {
+          sample = _local.samples[15][t][pol];
+          sum += weight_15.xx * sample;
+          sum += weight_15.yy * (float2) (-sample.y, sample.x);
+        }
 #endif
 
 #if NR_STATIONS_PER_PASS >= 17
-	if (first_station + 16 < NR_STATIONS) {
-	  sample = _local.samples[16][t][pol];
-	  sum += weight_16.xx * sample;
-	  sum += weight_16.yy * (float2) (-sample.y, sample.x);
-	}
+        if (first_station + 16 < NR_STATIONS) {
+          sample = _local.samples[16][t][pol];
+          sum += weight_16.xx * sample;
+          sum += weight_16.yy * (float2) (-sample.y, sample.x);
+        }
 #endif
 
 #if NR_STATIONS_PER_PASS >= 18
-	if (first_station + 17 < NR_STATIONS) {
-	  sample = _local.samples[17][t][pol];
-	  sum += weight_17.xx * sample;
-	  sum += weight_17.yy * (float2) (-sample.y, sample.x);
-	}
+        if (first_station + 17 < NR_STATIONS) {
+          sample = _local.samples[17][t][pol];
+          sum += weight_17.xx * sample;
+          sum += weight_17.yy * (float2) (-sample.y, sample.x);
+        }
 #endif
 
 #if NR_STATIONS_PER_PASS >= 19
-	if (first_station + 18 < NR_STATIONS) {
-	  sample = _local.samples[18][t][pol];
-	  sum += weight_18.xx * sample;
-	  sum += weight_18.yy * (float2) (-sample.y, sample.x);
-	}
+        if (first_station + 18 < NR_STATIONS) {
+          sample = _local.samples[18][t][pol];
+          sum += weight_18.xx * sample;
+          sum += weight_18.yy * (float2) (-sample.y, sample.x);
+        }
 #endif
 
 #if NR_STATIONS_PER_PASS >= 20
-	if (first_station + 19 < NR_STATIONS) {
-	  sample = _local.samples[19][t][pol];
-	  sum += weight_19.xx * sample;
-	  sum += weight_19.yy * (float2) (-sample.y, sample.x);
-	}
+        if (first_station + 19 < NR_STATIONS) {
+          sample = _local.samples[19][t][pol];
+          sum += weight_19.xx * sample;
+          sum += weight_19.yy * (float2) (-sample.y, sample.x);
+        }
 #endif
 
 #if NR_STATIONS_PER_PASS >= 21
-	if (first_station + 20 < NR_STATIONS) {
-	  sample = _local.samples[20][t][pol];
-	  sum += weight_20.xx * sample;
-	  sum += weight_20.yy * (float2) (-sample.y, sample.x);
-	}
+        if (first_station + 20 < NR_STATIONS) {
+          sample = _local.samples[20][t][pol];
+          sum += weight_20.xx * sample;
+          sum += weight_20.yy * (float2) (-sample.y, sample.x);
+        }
 #endif
 
 #if NR_STATIONS_PER_PASS >= 22
-	if (first_station + 21 < NR_STATIONS) {
-	  sample = _local.samples[21][t][pol];
-	  sum += weight_21.xx * sample;
-	  sum += weight_21.yy * (float2) (-sample.y, sample.x);
-	}
+        if (first_station + 21 < NR_STATIONS) {
+          sample = _local.samples[21][t][pol];
+          sum += weight_21.xx * sample;
+          sum += weight_21.yy * (float2) (-sample.y, sample.x);
+        }
 #endif
 
 #if NR_STATIONS_PER_PASS >= 23
-	if (first_station + 22 < NR_STATIONS) {
-	  sample = _local.samples[22][t][pol];
-	  sum += weight_22.xx * sample;
-	  sum += weight_22.yy * (float2) (-sample.y, sample.x);
-	}
+        if (first_station + 22 < NR_STATIONS) {
+          sample = _local.samples[22][t][pol];
+          sum += weight_22.xx * sample;
+          sum += weight_22.yy * (float2) (-sample.y, sample.x);
+        }
 #endif
 
 #if NR_STATIONS_PER_PASS >= 24
-	if (first_station + 23 < NR_STATIONS) {
-	  sample = _local.samples[23][t][pol];
-	  sum += weight_23.xx * sample;
-	  sum += weight_23.yy * (float2) (-sample.y, sample.x);
-	}
+        if (first_station + 23 < NR_STATIONS) {
+          sample = _local.samples[23][t][pol];
+          sum += weight_23.xx * sample;
+          sum += weight_23.yy * (float2) (-sample.y, sample.x);
+        }
 #endif
 
 #if NR_STATIONS_PER_PASS >= 25
-	if (first_station + 25 < NR_STATIONS) {
-	  sample = _local.samples[24][t][pol];
-	  sum += weight_24.xx * sample;
-	  sum += weight_24.yy * (float2) (-sample.y, sample.x);
-	}
+        if (first_station + 25 < NR_STATIONS) {
+          sample = _local.samples[24][t][pol];
+          sum += weight_24.xx * sample;
+          sum += weight_24.yy * (float2) (-sample.y, sample.x);
+        }
 #endif
 
 #if NR_STATIONS_PER_PASS >= 26
-	if (first_station + 25 < NR_STATIONS) {
-	  sample = _local.samples[25][t][pol];
-	  sum += weight_25.xx * sample;
-	  sum += weight_25.yy * (float2) (-sample.y, sample.x);
-	}
+        if (first_station + 25 < NR_STATIONS) {
+          sample = _local.samples[25][t][pol];
+          sum += weight_25.xx * sample;
+          sum += weight_25.yy * (float2) (-sample.y, sample.x);
+        }
 #endif
 
 #if NR_STATIONS_PER_PASS >= 27
-	if (first_station + 26 < NR_STATIONS) {
-	  sample = _local.samples[26][t][pol];
-	  sum += weight_26.xx * sample;
-	  sum += weight_26.yy * (float2) (-sample.y, sample.x);
-	}
+        if (first_station + 26 < NR_STATIONS) {
+          sample = _local.samples[26][t][pol];
+          sum += weight_26.xx * sample;
+          sum += weight_26.yy * (float2) (-sample.y, sample.x);
+        }
 #endif
 
 #if NR_STATIONS_PER_PASS >= 28
-	if (first_station + 27 < NR_STATIONS) {
-	  sample = _local.samples[27][t][pol];
-	  sum += weight_27.xx * sample;
-	  sum += weight_27.yy * (float2) (-sample.y, sample.x);
-	}
+        if (first_station + 27 < NR_STATIONS) {
+          sample = _local.samples[27][t][pol];
+          sum += weight_27.xx * sample;
+          sum += weight_27.yy * (float2) (-sample.y, sample.x);
+        }
 #endif
 
 #if NR_STATIONS_PER_PASS >= 29
-	if (first_station + 28 < NR_STATIONS) {
-	  sample = _local.samples[28][t][pol];
-	  sum += weight_28.xx * sample;
-	  sum += weight_28.yy * (float2) (-sample.y, sample.x);
-	}
+        if (first_station + 28 < NR_STATIONS) {
+          sample = _local.samples[28][t][pol];
+          sum += weight_28.xx * sample;
+          sum += weight_28.yy * (float2) (-sample.y, sample.x);
+        }
 #endif
 
 #if NR_STATIONS_PER_PASS >= 30
-	if (first_station + 29 < NR_STATIONS) {
-	  sample = _local.samples[29][t][pol];
-	  sum += weight_29.xx * sample;
-	  sum += weight_29.yy * (float2) (-sample.y, sample.x);
-	}
+        if (first_station + 29 < NR_STATIONS) {
+          sample = _local.samples[29][t][pol];
+          sum += weight_29.xx * sample;
+          sum += weight_29.yy * (float2) (-sample.y, sample.x);
+        }
 #endif
 
 #if NR_STATIONS_PER_PASS >= 31
-	if (first_station + 30 < NR_STATIONS) {
-	  sample = _local.samples[30][t][pol];
-	  sum += weight_30.xx * sample;
-	  sum += weight_30.yy * (float2) (-sample.y, sample.x);
-	}
+        if (first_station + 30 < NR_STATIONS) {
+          sample = _local.samples[30][t][pol];
+          sum += weight_30.xx * sample;
+          sum += weight_30.yy * (float2) (-sample.y, sample.x);
+        }
 #endif
 
 #if NR_STATIONS_PER_PASS >= 32
-	if (first_station + 31 < NR_STATIONS) {
-	  sample = _local.samples[31][t][pol];
-	  sum += weight_31.xx * sample;
-	  sum += weight_31.yy * (float2) (-sample.y, sample.x);
-	}
+        if (first_station + 31 < NR_STATIONS) {
+          sample = _local.samples[31][t][pol];
+          sum += weight_31.xx * sample;
+          sum += weight_31.yy * (float2) (-sample.y, sample.x);
+        }
 #endif
 
-	(*complexVoltages)[channel][time + t][tab][pol] = sum;
+        (*complexVoltages)[channel][time + t][tab][pol] = sum;
       }
 
       barrier(CLK_LOCAL_MEM_FENCE);
diff --git a/RTCP/Cobalt/GPUProc/src/BeamFormer/BeamFormer.cl.4x3 b/RTCP/Cobalt/GPUProc/src/BeamFormer/BeamFormer.cl.4x3
index dd4345c6780f1fe950027653833d328899aa4ae8..3570e6598cb798d479e9381a2f00d4b170471fac 100644
--- a/RTCP/Cobalt/GPUProc/src/BeamFormer/BeamFormer.cl.4x3
+++ b/RTCP/Cobalt/GPUProc/src/BeamFormer/BeamFormer.cl.4x3
@@ -1,4 +1,4 @@
-#define NR_CHANNELS_PER_BLOCK	4
+#define NR_CHANNELS_PER_BLOCK   4
 
 
 typedef __global float4 (*ComplexVoltagesType)[NR_TABS][NR_SAMPLES_PER_INTEGRATION][NR_CHANNELS];
@@ -13,16 +13,16 @@ float2 cmul(float2 a, float2 b)
 
 
 __kernel void complexVoltages(__global void *complexVoltagesPtr,
-			      __global const void *correctedDataPtr,
-			      __global const void *weightsPtr)
+                              __global const void *correctedDataPtr,
+                              __global const void *weightsPtr)
 {
   ComplexVoltagesType complexVoltages = (ComplexVoltagesType) complexVoltagesPtr;
-  CorrectedDataType   correctedData   = (CorrectedDataType) correctedDataPtr;
-  WeightsType	      weights	      = (WeightsType) weightsPtr;
+  CorrectedDataType correctedData = (CorrectedDataType) correctedDataPtr;
+  WeightsType weights = (WeightsType) weightsPtr;
 
-  uint first_tab	= 3 * get_global_id(0);
-  uint channel		= get_global_id(1);
-  uint first_station	= 4 * get_global_id(2);
+  uint first_tab = 3 * get_global_id(0);
+  uint channel = get_global_id(1);
+  uint first_station = 4 * get_global_id(2);
 
   float2 weight_0_0 = (*weights)[first_station + 0][channel][first_tab + 0];
   float2 weight_0_1 = (*weights)[first_station + 0][channel][first_tab + 1];
@@ -39,7 +39,7 @@ __kernel void complexVoltages(__global void *complexVoltagesPtr,
 
   __local float4 local_sums[3][NR_STATIONS / 4][NR_CHANNELS_PER_BLOCK][NR_TABS / 3];
 
-  for (int time = 0 - first_station / 4; time < NR_SAMPLES_PER_INTEGRATION + NR_STATIONS - first_station / 4; time ++) {
+  for (int time = 0 - first_station / 4; time < NR_SAMPLES_PER_INTEGRATION + NR_STATIONS - first_station / 4; time++) {
     barrier(CLK_LOCAL_MEM_FENCE);
 
     float4 sum_0, sum_1, sum_2;
diff --git a/RTCP/Cobalt/GPUProc/src/BeamFormer/BeamFormer.cl.6x3 b/RTCP/Cobalt/GPUProc/src/BeamFormer/BeamFormer.cl.6x3
index ab91e51706981c80d64181d152b298f4a83755e7..e51aa78e3bcdece43cea17bff70e8ee19434ed62 100644
--- a/RTCP/Cobalt/GPUProc/src/BeamFormer/BeamFormer.cl.6x3
+++ b/RTCP/Cobalt/GPUProc/src/BeamFormer/BeamFormer.cl.6x3
@@ -1,4 +1,4 @@
-#define NR_CHANNELS_PER_BLOCK	8
+#define NR_CHANNELS_PER_BLOCK   8
 
 
 typedef __global float4 (*ComplexVoltagesType)[NR_TABS][NR_SAMPLES_PER_INTEGRATION][NR_CHANNELS];
@@ -13,16 +13,16 @@ float2 cmul(float2 a, float2 b)
 
 
 __kernel void complexVoltages(__global void *complexVoltagesPtr,
-			      __global const void *correctedDataPtr,
-			      __global const void *weightsPtr)
+                              __global const void *correctedDataPtr,
+                              __global const void *weightsPtr)
 {
   ComplexVoltagesType complexVoltages = (ComplexVoltagesType) complexVoltagesPtr;
-  CorrectedDataType   correctedData   = (CorrectedDataType) correctedDataPtr;
-  WeightsType	      weights	      = (WeightsType) weightsPtr;
+  CorrectedDataType correctedData = (CorrectedDataType) correctedDataPtr;
+  WeightsType weights = (WeightsType) weightsPtr;
 
-  uint first_tab	= 3 * get_global_id(0);
-  uint channel		= get_global_id(1);
-  uint first_station	= 6 * get_global_id(2);
+  uint first_tab = 3 * get_global_id(0);
+  uint channel = get_global_id(1);
+  uint first_station = 6 * get_global_id(2);
 
   float2 weight_0_0 = (*weights)[first_station + 0][channel][first_tab + 0];
   float2 weight_0_1 = (*weights)[first_station + 0][channel][first_tab + 1];
@@ -45,7 +45,7 @@ __kernel void complexVoltages(__global void *complexVoltagesPtr,
 
   __local float4 local_sums[3][NR_STATIONS / 6][NR_CHANNELS_PER_BLOCK][NR_TABS / 3];
 
-  for (int time = 0 - first_station / 6; time < NR_SAMPLES_PER_INTEGRATION + NR_STATIONS - first_station / 6; time ++) {
+  for (int time = 0 - first_station / 6; time < NR_SAMPLES_PER_INTEGRATION + NR_STATIONS - first_station / 6; time++) {
     barrier(CLK_LOCAL_MEM_FENCE);
 
     float4 sum_0, sum_1, sum_2;
diff --git a/RTCP/Cobalt/GPUProc/src/BeamFormer/BeamFormer.cl.bak b/RTCP/Cobalt/GPUProc/src/BeamFormer/BeamFormer.cl.bak
index 07722c05093a0e1d2f05498b739e0e30849cb29e..3e87f0c00d905bab678cab8903a588ba17a56880 100644
--- a/RTCP/Cobalt/GPUProc/src/BeamFormer/BeamFormer.cl.bak
+++ b/RTCP/Cobalt/GPUProc/src/BeamFormer/BeamFormer.cl.bak
@@ -1,4 +1,4 @@
-#define MAX(A,B) ((A)>(B)?(A):(B))
+#define MAX(A,B) ((A)>(B) ? (A) : (B))
 #define NR_PASSES MAX((NR_STATIONS + 6) / 16, 1) // gives best results on GTX 680
 #define NR_STATIONS_PER_PASS ((NR_STATIONS + NR_PASSES - 1) / NR_PASSES)
 
@@ -13,16 +13,16 @@ typedef __global float2 (*WeightsType)[NR_STATIONS][NR_CHANNELS][NR_TABS];
 
 
 __kernel void complexVoltages(__global void *complexVoltagesPtr,
-			      __global const void *samplesPtr,
-			      __global const void *weightsPtr)
+                              __global const void *samplesPtr,
+                              __global const void *weightsPtr)
 {
-  ComplexVoltagesType	complexVoltages = (ComplexVoltagesType) complexVoltagesPtr;
-  BandPassCorrectedType samples		= (BandPassCorrectedType) samplesPtr;
-  WeightsType		weights		= (WeightsType) weightsPtr;
+  ComplexVoltagesType complexVoltages = (ComplexVoltagesType) complexVoltagesPtr;
+  BandPassCorrectedType samples = (BandPassCorrectedType) samplesPtr;
+  WeightsType weights = (WeightsType) weightsPtr;
 
-  uint minor_time	= get_local_id(0);
-  uint tab		= get_global_id(1);
-  uint channel		= get_global_id(2);
+  uint minor_time = get_local_id(0);
+  uint tab = get_global_id(1);
+  uint channel = get_global_id(2);
 
   float4 sample;
   __local float4 local_samples[NR_STATIONS_PER_PASS][16];
@@ -33,70 +33,70 @@ __kernel void complexVoltages(__global void *complexVoltagesPtr,
     float2 weight_00;
 
     if (first_station + 0 < NR_STATIONS)
-      weight_00 = (*weights)[first_station +  0][channel][tab];
+      weight_00 = (*weights)[first_station + 0][channel][tab];
 #endif
 
 #if NR_STATIONS_PER_PASS >= 2
     float2 weight_01;
 
     if (first_station + 1 < NR_STATIONS)
-      weight_01 = (*weights)[first_station +  1][channel][tab];
+      weight_01 = (*weights)[first_station + 1][channel][tab];
 #endif
 
 #if NR_STATIONS_PER_PASS >= 3
     float2 weight_02;
 
     if (first_station + 2 < NR_STATIONS)
-      weight_02 = (*weights)[first_station +  2][channel][tab];
+      weight_02 = (*weights)[first_station + 2][channel][tab];
 #endif
 
 #if NR_STATIONS_PER_PASS >= 4
     float2 weight_03;
 
     if (first_station + 3 < NR_STATIONS)
-      weight_03 = (*weights)[first_station +  3][channel][tab];
+      weight_03 = (*weights)[first_station + 3][channel][tab];
 #endif
 
 #if NR_STATIONS_PER_PASS >= 5
     float2 weight_04;
 
     if (first_station + 4 < NR_STATIONS)
-      weight_04 = (*weights)[first_station +  4][channel][tab];
+      weight_04 = (*weights)[first_station + 4][channel][tab];
 #endif
 
 #if NR_STATIONS_PER_PASS >= 6
     float2 weight_05;
 
     if (first_station + 5 < NR_STATIONS)
-      weight_05 = (*weights)[first_station +  5][channel][tab];
+      weight_05 = (*weights)[first_station + 5][channel][tab];
 #endif
 
 #if NR_STATIONS_PER_PASS >= 7
     float2 weight_06;
 
     if (first_station + 6 < NR_STATIONS)
-      weight_06 = (*weights)[first_station +  6][channel][tab];
+      weight_06 = (*weights)[first_station + 6][channel][tab];
 #endif
 
 #if NR_STATIONS_PER_PASS >= 8
     float2 weight_07;
 
     if (first_station + 7 < NR_STATIONS)
-      weight_07 = (*weights)[first_station +  7][channel][tab];
+      weight_07 = (*weights)[first_station + 7][channel][tab];
 #endif
 
 #if NR_STATIONS_PER_PASS >= 9
     float2 weight_08;
 
     if (first_station + 8 < NR_STATIONS)
-      weight_08 = (*weights)[first_station +  8][channel][tab];
+      weight_08 = (*weights)[first_station + 8][channel][tab];
 #endif
 
 #if NR_STATIONS_PER_PASS >= 10
     float2 weight_09;
 
     if (first_station + 9 < NR_STATIONS)
-      weight_09 = (*weights)[first_station +  9][channel][tab];
+      weight_09 = (*weights)[first_station + 9][channel][tab];
 #endif
 
 #if NR_STATIONS_PER_PASS >= 11
@@ -256,278 +256,278 @@ __kernel void complexVoltages(__global void *complexVoltagesPtr,
     for (uint time = 0; time < NR_TIMES_PER_BLOCK; time += 16) {
 #if 1
       for (uint i = get_local_id(0) + 16 * get_local_id(1); i < NR_STATIONS_PER_PASS * 16; i += get_local_size(0) * get_local_size(1)) {
-	uint t = i % 16;
-	uint s = i / 16;
+        uint t = i % 16;
+        uint s = i / 16;
 
-	if (NR_TIMES_PER_BLOCK % 16 == 0 || time + t < NR_TIMES_PER_BLOCK)
-	  if (NR_STATIONS % NR_STATIONS_PER_PASS == 0 || first_station + s < NR_STATIONS)
-	    local_samples[0][i] = (*samples)[first_station + s][channel][time + t];
+        if (NR_TIMES_PER_BLOCK % 16 == 0 || time + t < NR_TIMES_PER_BLOCK)
+          if (NR_STATIONS % NR_STATIONS_PER_PASS == 0 || first_station + s < NR_STATIONS)
+            local_samples[0][i] = (*samples)[first_station + s][channel][time + t];
       }
 
       barrier(CLK_LOCAL_MEM_FENCE);
 #endif
 
       /*for (uint t = 0; t < (NR_TIMES_PER_BLOCK % 16 == 0 ? 16 : min(16U, NR_TIMES_PER_BLOCK - time)); t ++)*/ {
-	float4 sum = first_station == 0 ? 0 : (float4) ((*complexVoltages)[tab][0][channel][time + minor_time], (*complexVoltages)[tab][1][channel][time + minor_time]);
+        float4 sum = first_station == 0 ? 0 : (float4) ((*complexVoltages)[tab][0][channel][time + minor_time], (*complexVoltages)[tab][1][channel][time + minor_time]);
 
 #if NR_STATIONS_PER_PASS >= 1
-	if (first_station + 1 < NR_STATIONS) {
-	  sample = local_samples[0][minor_time];
-	  sum += weight_00.xxxx * sample;
-	  sum += weight_00.yyyy * (float4) (-sample.y, sample.x, -sample.w, sample.z);
-	}
+        if (first_station + 1 < NR_STATIONS) {
+          sample = local_samples[0][minor_time];
+          sum += weight_00.xxxx * sample;
+          sum += weight_00.yyyy * (float4) (-sample.y, sample.x, -sample.w, sample.z);
+        }
 #endif
 
 #if NR_STATIONS_PER_PASS >= 2
-	if (first_station + 2 < NR_STATIONS) {
-	  sample = local_samples[1][minor_time];
-	  sum += weight_01.xxxx * sample;
-	  sum += weight_01.yyyy * (float4) (-sample.y, sample.x, -sample.w, sample.z);
-	}
+        if (first_station + 2 < NR_STATIONS) {
+          sample = local_samples[1][minor_time];
+          sum += weight_01.xxxx * sample;
+          sum += weight_01.yyyy * (float4) (-sample.y, sample.x, -sample.w, sample.z);
+        }
 #endif
 
 #if NR_STATIONS_PER_PASS >= 3
-	if (first_station + 3 < NR_STATIONS) {
-	  sample = local_samples[2][minor_time];
-	  sum += weight_02.xxxx * sample;
-	  sum += weight_02.yyyy * (float4) (-sample.y, sample.x, -sample.w, sample.z);
-	}
+        if (first_station + 3 < NR_STATIONS) {
+          sample = local_samples[2][minor_time];
+          sum += weight_02.xxxx * sample;
+          sum += weight_02.yyyy * (float4) (-sample.y, sample.x, -sample.w, sample.z);
+        }
 #endif
 
 #if NR_STATIONS_PER_PASS >= 4
-	if (first_station + 4 < NR_STATIONS) {
-	  sample = local_samples[3][minor_time];
-	  sum += weight_03.xxxx * sample;
-	  sum += weight_03.yyyy * (float4) (-sample.y, sample.x, -sample.w, sample.z);
-	}
+        if (first_station + 4 < NR_STATIONS) {
+          sample = local_samples[3][minor_time];
+          sum += weight_03.xxxx * sample;
+          sum += weight_03.yyyy * (float4) (-sample.y, sample.x, -sample.w, sample.z);
+        }
 #endif
 
 #if NR_STATIONS_PER_PASS >= 5
-	if (first_station + 5 < NR_STATIONS) {
-	  sample = local_samples[4][minor_time];
-	  sum += weight_04.xxxx * sample;
-	  sum += weight_04.yyyy * (float4) (-sample.y, sample.x, -sample.w, sample.z);
-	}
+        if (first_station + 5 < NR_STATIONS) {
+          sample = local_samples[4][minor_time];
+          sum += weight_04.xxxx * sample;
+          sum += weight_04.yyyy * (float4) (-sample.y, sample.x, -sample.w, sample.z);
+        }
 #endif
 
 #if NR_STATIONS_PER_PASS >= 6
-	if (first_station + 6 < NR_STATIONS) {
-	  sample = local_samples[5][minor_time];
-	  sum += weight_05.xxxx * sample;
-	  sum += weight_05.yyyy * (float4) (-sample.y, sample.x, -sample.w, sample.z);
-	}
+        if (first_station + 6 < NR_STATIONS) {
+          sample = local_samples[5][minor_time];
+          sum += weight_05.xxxx * sample;
+          sum += weight_05.yyyy * (float4) (-sample.y, sample.x, -sample.w, sample.z);
+        }
 #endif
 
 #if NR_STATIONS_PER_PASS >= 7
-	if (first_station + 7 < NR_STATIONS) {
-	  sample = local_samples[6][minor_time];
-	  sum += weight_06.xxxx * sample;
-	  sum += weight_06.yyyy * (float4) (-sample.y, sample.x, -sample.w, sample.z);
-	}
+        if (first_station + 7 < NR_STATIONS) {
+          sample = local_samples[6][minor_time];
+          sum += weight_06.xxxx * sample;
+          sum += weight_06.yyyy * (float4) (-sample.y, sample.x, -sample.w, sample.z);
+        }
 #endif
 
 #if NR_STATIONS_PER_PASS >= 8
-	if (first_station + 8 < NR_STATIONS) {
-	  sample = local_samples[7][minor_time];
-	  sum += weight_07.xxxx * sample;
-	  sum += weight_07.yyyy * (float4) (-sample.y, sample.x, -sample.w, sample.z);
-	}
+        if (first_station + 8 < NR_STATIONS) {
+          sample = local_samples[7][minor_time];
+          sum += weight_07.xxxx * sample;
+          sum += weight_07.yyyy * (float4) (-sample.y, sample.x, -sample.w, sample.z);
+        }
 #endif
 
 #if NR_STATIONS_PER_PASS >= 9
-	if (first_station + 9 < NR_STATIONS) {
-	  sample = local_samples[8][minor_time];
-	  sum += weight_08.xxxx * sample;
-	  sum += weight_08.yyyy * (float4) (-sample.y, sample.x, -sample.w, sample.z);
-	}
+        if (first_station + 9 < NR_STATIONS) {
+          sample = local_samples[8][minor_time];
+          sum += weight_08.xxxx * sample;
+          sum += weight_08.yyyy * (float4) (-sample.y, sample.x, -sample.w, sample.z);
+        }
 #endif
 
 #if NR_STATIONS_PER_PASS >= 10
-	if (first_station + 10 < NR_STATIONS) {
-	  sample = local_samples[9][minor_time];
-	  sum += weight_09.xxxx * sample;
-	  sum += weight_09.yyyy * (float4) (-sample.y, sample.x, -sample.w, sample.z);
-	}
+        if (first_station + 10 < NR_STATIONS) {
+          sample = local_samples[9][minor_time];
+          sum += weight_09.xxxx * sample;
+          sum += weight_09.yyyy * (float4) (-sample.y, sample.x, -sample.w, sample.z);
+        }
 #endif
 
 #if NR_STATIONS_PER_PASS >= 11
-	if (first_station + 11 < NR_STATIONS) {
-	  sample = local_samples[10][minor_time];
-	  sum += weight_10.xxxx * sample;
-	  sum += weight_10.yyyy * (float4) (-sample.y, sample.x, -sample.w, sample.z);
-	}
+        if (first_station + 11 < NR_STATIONS) {
+          sample = local_samples[10][minor_time];
+          sum += weight_10.xxxx * sample;
+          sum += weight_10.yyyy * (float4) (-sample.y, sample.x, -sample.w, sample.z);
+        }
 #endif
 
 #if NR_STATIONS_PER_PASS >= 12
-	if (first_station + 12 < NR_STATIONS) {
-	  sample = local_samples[11][minor_time];
-	  sum += weight_11.xxxx * sample;
-	  sum += weight_11.yyyy * (float4) (-sample.y, sample.x, -sample.w, sample.z);
-	}
+        if (first_station + 12 < NR_STATIONS) {
+          sample = local_samples[11][minor_time];
+          sum += weight_11.xxxx * sample;
+          sum += weight_11.yyyy * (float4) (-sample.y, sample.x, -sample.w, sample.z);
+        }
 #endif
 
 #if NR_STATIONS_PER_PASS >= 13
-	if (first_station + 13 < NR_STATIONS) {
-	  sample = local_samples[12][minor_time];
-	  sum += weight_12.xxxx * sample;
-	  sum += weight_12.yyyy * (float4) (-sample.y, sample.x, -sample.w, sample.z);
-	}
+        if (first_station + 13 < NR_STATIONS) {
+          sample = local_samples[12][minor_time];
+          sum += weight_12.xxxx * sample;
+          sum += weight_12.yyyy * (float4) (-sample.y, sample.x, -sample.w, sample.z);
+        }
 #endif
 
 #if NR_STATIONS_PER_PASS >= 14
-	if (first_station + 14 < NR_STATIONS) {
-	  sample = local_samples[13][minor_time];
-	  sum += weight_13.xxxx * sample;
-	  sum += weight_13.yyyy * (float4) (-sample.y, sample.x, -sample.w, sample.z);
-	}
+        if (first_station + 14 < NR_STATIONS) {
+          sample = local_samples[13][minor_time];
+          sum += weight_13.xxxx * sample;
+          sum += weight_13.yyyy * (float4) (-sample.y, sample.x, -sample.w, sample.z);
+        }
 #endif
 
 #if NR_STATIONS_PER_PASS >= 15
-	if (first_station + 15 < NR_STATIONS) {
-	  sample = local_samples[14][minor_time];
-	  sum += weight_14.xxxx * sample;
-	  sum += weight_14.yyyy * (float4) (-sample.y, sample.x, -sample.w, sample.z);
-	}
+        if (first_station + 15 < NR_STATIONS) {
+          sample = local_samples[14][minor_time];
+          sum += weight_14.xxxx * sample;
+          sum += weight_14.yyyy * (float4) (-sample.y, sample.x, -sample.w, sample.z);
+        }
 #endif
 
 #if NR_STATIONS_PER_PASS >= 16
-	if (first_station + 15 < NR_STATIONS) {
-	  sample = local_samples[15][minor_time];
-	  sum += weight_15.xxxx * sample;
-	  sum += weight_15.yyyy * (float4) (-sample.y, sample.x, -sample.w, sample.z);
-	}
+        if (first_station + 15 < NR_STATIONS) {
+          sample = local_samples[15][minor_time];
+          sum += weight_15.xxxx * sample;
+          sum += weight_15.yyyy * (float4) (-sample.y, sample.x, -sample.w, sample.z);
+        }
 #endif
 
 #if NR_STATIONS_PER_PASS >= 17
-	if (first_station + 16 < NR_STATIONS) {
-	  sample = local_samples[16][minor_time];
-	  sum += weight_16.xxxx * sample;
-	  sum += weight_16.yyyy * (float4) (-sample.y, sample.x, -sample.w, sample.z);
-	}
+        if (first_station + 16 < NR_STATIONS) {
+          sample = local_samples[16][minor_time];
+          sum += weight_16.xxxx * sample;
+          sum += weight_16.yyyy * (float4) (-sample.y, sample.x, -sample.w, sample.z);
+        }
 #endif
 
 #if NR_STATIONS_PER_PASS >= 18
-	if (first_station + 17 < NR_STATIONS) {
-	  sample = local_samples[17][minor_time];
-	  sum += weight_17.xxxx * sample;
-	  sum += weight_17.yyyy * (float4) (-sample.y, sample.x, -sample.w, sample.z);
-	}
+        if (first_station + 17 < NR_STATIONS) {
+          sample = local_samples[17][minor_time];
+          sum += weight_17.xxxx * sample;
+          sum += weight_17.yyyy * (float4) (-sample.y, sample.x, -sample.w, sample.z);
+        }
 #endif
 
 #if NR_STATIONS_PER_PASS >= 19
-	if (first_station + 18 < NR_STATIONS) {
-	  sample = local_samples[18][minor_time];
-	  sum += weight_18.xxxx * sample;
-	  sum += weight_18.yyyy * (float4) (-sample.y, sample.x, -sample.w, sample.z);
-	}
+        if (first_station + 18 < NR_STATIONS) {
+          sample = local_samples[18][minor_time];
+          sum += weight_18.xxxx * sample;
+          sum += weight_18.yyyy * (float4) (-sample.y, sample.x, -sample.w, sample.z);
+        }
 #endif
 
 #if NR_STATIONS_PER_PASS >= 20
-	if (first_station + 19 < NR_STATIONS) {
-	  sample = local_samples[19][minor_time];
-	  sum += weight_19.xxxx * sample;
-	  sum += weight_19.yyyy * (float4) (-sample.y, sample.x, -sample.w, sample.z);
-	}
+        if (first_station + 19 < NR_STATIONS) {
+          sample = local_samples[19][minor_time];
+          sum += weight_19.xxxx * sample;
+          sum += weight_19.yyyy * (float4) (-sample.y, sample.x, -sample.w, sample.z);
+        }
 #endif
 
 #if NR_STATIONS_PER_PASS >= 21
-	if (first_station + 20 < NR_STATIONS) {
-	  sample = local_samples[20][minor_time];
-	  sum += weight_20.xxxx * sample;
-	  sum += weight_20.yyyy * (float4) (-sample.y, sample.x, -sample.w, sample.z);
-	}
+        if (first_station + 20 < NR_STATIONS) {
+          sample = local_samples[20][minor_time];
+          sum += weight_20.xxxx * sample;
+          sum += weight_20.yyyy * (float4) (-sample.y, sample.x, -sample.w, sample.z);
+        }
 #endif
 
 #if NR_STATIONS_PER_PASS >= 22
-	if (first_station + 21 < NR_STATIONS) {
-	  sample = local_samples[21][minor_time];
-	  sum += weight_21.xxxx * sample;
-	  sum += weight_21.yyyy * (float4) (-sample.y, sample.x, -sample.w, sample.z);
-	}
+        if (first_station + 21 < NR_STATIONS) {
+          sample = local_samples[21][minor_time];
+          sum += weight_21.xxxx * sample;
+          sum += weight_21.yyyy * (float4) (-sample.y, sample.x, -sample.w, sample.z);
+        }
 #endif
 
 #if NR_STATIONS_PER_PASS >= 23
-	if (first_station + 22 < NR_STATIONS) {
-	  sample = local_samples[22][minor_time];
-	  sum += weight_22.xxxx * sample;
-	  sum += weight_22.yyyy * (float4) (-sample.y, sample.x, -sample.w, sample.z);
-	}
+        if (first_station + 22 < NR_STATIONS) {
+          sample = local_samples[22][minor_time];
+          sum += weight_22.xxxx * sample;
+          sum += weight_22.yyyy * (float4) (-sample.y, sample.x, -sample.w, sample.z);
+        }
 #endif
 
 #if NR_STATIONS_PER_PASS >= 24
-	if (first_station + 23 < NR_STATIONS) {
-	  sample = local_samples[23][minor_time];
-	  sum += weight_23.xxxx * sample;
-	  sum += weight_23.yyyy * (float4) (-sample.y, sample.x, -sample.w, sample.z);
-	}
+        if (first_station + 23 < NR_STATIONS) {
+          sample = local_samples[23][minor_time];
+          sum += weight_23.xxxx * sample;
+          sum += weight_23.yyyy * (float4) (-sample.y, sample.x, -sample.w, sample.z);
+        }
 #endif
 
 #if NR_STATIONS_PER_PASS >= 25
-	if (first_station + 25 < NR_STATIONS) {
-	  sample = local_samples[24][minor_time];
-	  sum += weight_24.xxxx * sample;
-	  sum += weight_24.yyyy * (float4) (-sample.y, sample.x, -sample.w, sample.z);
-	}
+        if (first_station + 25 < NR_STATIONS) {
+          sample = local_samples[24][minor_time];
+          sum += weight_24.xxxx * sample;
+          sum += weight_24.yyyy * (float4) (-sample.y, sample.x, -sample.w, sample.z);
+        }
 #endif
 
 #if NR_STATIONS_PER_PASS >= 26
-	if (first_station + 25 < NR_STATIONS) {
-	  sample = local_samples[25][minor_time];
-	  sum += weight_25.xxxx * sample;
-	  sum += weight_25.yyyy * (float4) (-sample.y, sample.x, -sample.w, sample.z);
-	}
+        if (first_station + 25 < NR_STATIONS) {
+          sample = local_samples[25][minor_time];
+          sum += weight_25.xxxx * sample;
+          sum += weight_25.yyyy * (float4) (-sample.y, sample.x, -sample.w, sample.z);
+        }
 #endif
 
 #if NR_STATIONS_PER_PASS >= 27
-	if (first_station + 26 < NR_STATIONS) {
-	  sample = local_samples[26][minor_time];
-	  sum += weight_26.xxxx * sample;
-	  sum += weight_26.yyyy * (float4) (-sample.y, sample.x, -sample.w, sample.z);
-	}
+        if (first_station + 26 < NR_STATIONS) {
+          sample = local_samples[26][minor_time];
+          sum += weight_26.xxxx * sample;
+          sum += weight_26.yyyy * (float4) (-sample.y, sample.x, -sample.w, sample.z);
+        }
 #endif
 
 #if NR_STATIONS_PER_PASS >= 28
-	if (first_station + 27 < NR_STATIONS) {
-	  sample = local_samples[27][minor_time];
-	  sum += weight_27.xxxx * sample;
-	  sum += weight_27.yyyy * (float4) (-sample.y, sample.x, -sample.w, sample.z);
-	}
+        if (first_station + 27 < NR_STATIONS) {
+          sample = local_samples[27][minor_time];
+          sum += weight_27.xxxx * sample;
+          sum += weight_27.yyyy * (float4) (-sample.y, sample.x, -sample.w, sample.z);
+        }
 #endif
 
 #if NR_STATIONS_PER_PASS >= 29
-	if (first_station + 28 < NR_STATIONS) {
-	  sample = local_samples[28][minor_time];
-	  sum += weight_28.xxxx * sample;
-	  sum += weight_28.yyyy * (float4) (-sample.y, sample.x, -sample.w, sample.z);
-	}
+        if (first_station + 28 < NR_STATIONS) {
+          sample = local_samples[28][minor_time];
+          sum += weight_28.xxxx * sample;
+          sum += weight_28.yyyy * (float4) (-sample.y, sample.x, -sample.w, sample.z);
+        }
 #endif
 
 #if NR_STATIONS_PER_PASS >= 30
-	if (first_station + 29 < NR_STATIONS) {
-	  sample = local_samples[29][minor_time];
-	  sum += weight_29.xxxx * sample;
-	  sum += weight_29.yyyy * (float4) (-sample.y, sample.x, -sample.w, sample.z);
-	}
+        if (first_station + 29 < NR_STATIONS) {
+          sample = local_samples[29][minor_time];
+          sum += weight_29.xxxx * sample;
+          sum += weight_29.yyyy * (float4) (-sample.y, sample.x, -sample.w, sample.z);
+        }
 #endif
 
 #if NR_STATIONS_PER_PASS >= 31
-	if (first_station + 30 < NR_STATIONS) {
-	  sample = local_samples[30][minor_time];
-	  sum += weight_30.xxxx * sample;
-	  sum += weight_30.yyyy * (float4) (-sample.y, sample.x, -sample.w, sample.z);
-	}
+        if (first_station + 30 < NR_STATIONS) {
+          sample = local_samples[30][minor_time];
+          sum += weight_30.xxxx * sample;
+          sum += weight_30.yyyy * (float4) (-sample.y, sample.x, -sample.w, sample.z);
+        }
 #endif
 
 #if NR_STATIONS_PER_PASS >= 32
-	if (first_station + 31 < NR_STATIONS) {
-	  sample = local_samples[31][minor_time];
-	  sum += weight_31.xxxx * sample;
-	  sum += weight_31.yyyy * (float4) (-sample.y, sample.x, -sample.w, sample.z);
-	}
+        if (first_station + 31 < NR_STATIONS) {
+          sample = local_samples[31][minor_time];
+          sum += weight_31.xxxx * sample;
+          sum += weight_31.yyyy * (float4) (-sample.y, sample.x, -sample.w, sample.z);
+        }
 #endif
 
-	(*complexVoltages)[tab][0][channel][time + minor_time] = sum.xy;
-	(*complexVoltages)[tab][1][channel][time + minor_time] = sum.zw;
+        (*complexVoltages)[tab][0][channel][time + minor_time] = sum.xy;
+        (*complexVoltages)[tab][1][channel][time + minor_time] = sum.zw;
       }
 
       barrier(CLK_LOCAL_MEM_FENCE);
diff --git a/RTCP/Cobalt/GPUProc/src/BeamFormer/BeamFormer.cl.not b/RTCP/Cobalt/GPUProc/src/BeamFormer/BeamFormer.cl.not
index ff5e84018cbd92de14bd35481f16987c2f294d41..1bd98a2fb00cb622ead6c57925621124c30890c9 100644
--- a/RTCP/Cobalt/GPUProc/src/BeamFormer/BeamFormer.cl.not
+++ b/RTCP/Cobalt/GPUProc/src/BeamFormer/BeamFormer.cl.not
@@ -1,4 +1,4 @@
-#define NR_CHANNELS_PER_BLOCK	2
+#define NR_CHANNELS_PER_BLOCK   2
 
 
 typedef __global float4 (*ComplexVoltagesType)[NR_TABS][NR_SAMPLES_PER_INTEGRATION][NR_CHANNELS];
@@ -13,16 +13,16 @@ float2 cmul(float2 a, float2 b)
 
 
 __kernel void complexVoltages(__global void *complexVoltagesPtr,
-			      __global const void *correctedDataPtr,
-			      __global const void *weightsPtr)
+                              __global const void *correctedDataPtr,
+                              __global const void *weightsPtr)
 {
   ComplexVoltagesType complexVoltages = (ComplexVoltagesType) complexVoltagesPtr;
-  CorrectedDataType   correctedData   = (CorrectedDataType) correctedDataPtr;
-  WeightsType	      weights	      = (WeightsType) weightsPtr;
+  CorrectedDataType correctedData = (CorrectedDataType) correctedDataPtr;
+  WeightsType weights = (WeightsType) weightsPtr;
 
-  uint first_tab	= 3 * get_local_id(0);
-  uint channel		= get_global_id(1);
-  uint first_station	= 6 * get_local_id(2);
+  uint first_tab = 3 * get_local_id(0);
+  uint channel = get_global_id(1);
+  uint first_station = 6 * get_local_id(2);
 
   float2 weight_0_0 = (*weights)[first_station + 0][channel][first_tab + 0];
   float2 weight_0_1 = (*weights)[first_station + 0][channel][first_tab + 1];
@@ -45,10 +45,10 @@ __kernel void complexVoltages(__global void *complexVoltagesPtr,
 
   __local float4 local_sums[3][NR_STATIONS / 6 - 1][NR_CHANNELS_PER_BLOCK][NR_TABS / 3];
 
-  for (int i = 0; i < 2 * get_local_id(2); i ++)
+  for (int i = 0; i < 2 * get_local_id(2); i++)
     barrier(CLK_LOCAL_MEM_FENCE);
 
-  for (int time = 0; time < (int) NR_SAMPLES_PER_INTEGRATION; time ++) {
+  for (int time = 0; time < (int) NR_SAMPLES_PER_INTEGRATION; time++) {
     barrier(CLK_LOCAL_MEM_FENCE);
 
     float4 sum_0, sum_1, sum_2;
@@ -128,8 +128,8 @@ __kernel void complexVoltages(__global void *complexVoltagesPtr,
       (*complexVoltages)[first_tab + 2][time][channel] = sum_2;
     }
 
-  for (int i = 0; i < 2 * (get_local_size(2) - 1 - get_local_id(2)); i ++)
-    barrier(CLK_LOCAL_MEM_FENCE);
+    for (int i = 0; i < 2 * (get_local_size(2) - 1 - get_local_id(2)); i++)
+      barrier(CLK_LOCAL_MEM_FENCE);
 
 #if 0
 #if defined STOKES_I || defined STOKES_IQUV
diff --git a/RTCP/Cobalt/GPUProc/src/BeamFormer/BeamFormer.cl.ok b/RTCP/Cobalt/GPUProc/src/BeamFormer/BeamFormer.cl.ok
index 82eba8d0e89e844943f12e801c780347f145bd8f..6bd1a3afc83afad117a6fd608552561f73324818 100644
--- a/RTCP/Cobalt/GPUProc/src/BeamFormer/BeamFormer.cl.ok
+++ b/RTCP/Cobalt/GPUProc/src/BeamFormer/BeamFormer.cl.ok
@@ -1,4 +1,4 @@
-#define MAX(A,B) ((A)>(B)?(A):(B))
+#define MAX(A,B) ((A)>(B) ? (A) : (B))
 #define NR_PASSES MAX((NR_STATIONS + 6) / 16, 1) // gives best results on GTX 680
 #define NR_STATIONS_PER_PASS ((NR_STATIONS + NR_PASSES - 1) / NR_PASSES)
 
@@ -13,16 +13,16 @@ typedef __global float2 (*WeightsType)[NR_STATIONS][NR_CHANNELS][NR_TABS];
 
 
 __kernel void complexVoltages(__global void *complexVoltagesPtr,
-			      __global const void *samplesPtr,
-			      __global const void *weightsPtr)
+                              __global const void *samplesPtr,
+                              __global const void *weightsPtr)
 {
-  ComplexVoltagesType	complexVoltages = (ComplexVoltagesType) complexVoltagesPtr;
-  BandPassCorrectedType samples		= (BandPassCorrectedType) samplesPtr;
-  WeightsType		weights		= (WeightsType) weightsPtr;
+  ComplexVoltagesType complexVoltages = (ComplexVoltagesType) complexVoltagesPtr;
+  BandPassCorrectedType samples = (BandPassCorrectedType) samplesPtr;
+  WeightsType weights = (WeightsType) weightsPtr;
 
-  uint pol		= get_local_id(0);
-  uint tab		= get_local_id(1);
-  uint channel		= get_global_id(2);
+  uint pol = get_local_id(0);
+  uint tab = get_local_id(1);
+  uint channel = get_global_id(2);
 
   float2 sample;
   __local union {
@@ -36,70 +36,70 @@ __kernel void complexVoltages(__global void *complexVoltagesPtr,
     float2 weight_00;
 
     if (first_station + 0 < NR_STATIONS)
-      weight_00 = (*weights)[first_station +  0][channel][tab];
+      weight_00 = (*weights)[first_station + 0][channel][tab];
 #endif
 
 #if NR_STATIONS_PER_PASS >= 2
     float2 weight_01;
 
     if (first_station + 1 < NR_STATIONS)
-      weight_01 = (*weights)[first_station +  1][channel][tab];
+      weight_01 = (*weights)[first_station + 1][channel][tab];
 #endif
 
 #if NR_STATIONS_PER_PASS >= 3
     float2 weight_02;
 
     if (first_station + 2 < NR_STATIONS)
-      weight_02 = (*weights)[first_station +  2][channel][tab];
+      weight_02 = (*weights)[first_station + 2][channel][tab];
 #endif
 
 #if NR_STATIONS_PER_PASS >= 4
     float2 weight_03;
 
     if (first_station + 3 < NR_STATIONS)
-      weight_03 = (*weights)[first_station +  3][channel][tab];
+      weight_03 = (*weights)[first_station + 3][channel][tab];
 #endif
 
 #if NR_STATIONS_PER_PASS >= 5
     float2 weight_04;
 
     if (first_station + 4 < NR_STATIONS)
-      weight_04 = (*weights)[first_station +  4][channel][tab];
+      weight_04 = (*weights)[first_station + 4][channel][tab];
 #endif
 
 #if NR_STATIONS_PER_PASS >= 6
     float2 weight_05;
 
     if (first_station + 5 < NR_STATIONS)
-      weight_05 = (*weights)[first_station +  5][channel][tab];
+      weight_05 = (*weights)[first_station + 5][channel][tab];
 #endif
 
 #if NR_STATIONS_PER_PASS >= 7
     float2 weight_06;
 
     if (first_station + 6 < NR_STATIONS)
-      weight_06 = (*weights)[first_station +  6][channel][tab];
+      weight_06 = (*weights)[first_station + 6][channel][tab];
 #endif
 
 #if NR_STATIONS_PER_PASS >= 8
     float2 weight_07;
 
     if (first_station + 7 < NR_STATIONS)
-      weight_07 = (*weights)[first_station +  7][channel][tab];
+      weight_07 = (*weights)[first_station + 7][channel][tab];
 #endif
 
 #if NR_STATIONS_PER_PASS >= 9
     float2 weight_08;
 
     if (first_station + 8 < NR_STATIONS)
-      weight_08 = (*weights)[first_station +  8][channel][tab];
+      weight_08 = (*weights)[first_station + 8][channel][tab];
 #endif
 
 #if NR_STATIONS_PER_PASS >= 10
     float2 weight_09;
 
     if (first_station + 9 < NR_STATIONS)
-      weight_09 = (*weights)[first_station +  9][channel][tab];
+      weight_09 = (*weights)[first_station + 9][channel][tab];
 #endif
 
 #if NR_STATIONS_PER_PASS >= 11
@@ -258,276 +258,276 @@ __kernel void complexVoltages(__global void *complexVoltagesPtr,
 
     for (uint time = 0; time < NR_TIMES_PER_BLOCK; time += 16) {
       for (uint i = get_local_id(0) + NR_POLARIZATIONS * get_local_id(1); i < NR_STATIONS_PER_PASS * 16; i += NR_TABS * NR_POLARIZATIONS) {
-	uint t = i % 16;
-	uint s = i / 16;
+        uint t = i % 16;
+        uint s = i / 16;
 
-	if (NR_TIMES_PER_BLOCK % 16 == 0 || time + t < NR_TIMES_PER_BLOCK)
-	  if (NR_STATIONS % NR_STATIONS_PER_PASS == 0 || first_station + s < NR_STATIONS)
-	    _local.samples4[0][i] = convert_float4((*samples)[first_station + s][channel][time + t]);
+        if (NR_TIMES_PER_BLOCK % 16 == 0 || time + t < NR_TIMES_PER_BLOCK)
+          if (NR_STATIONS % NR_STATIONS_PER_PASS == 0 || first_station + s < NR_STATIONS)
+            _local.samples4[0][i] = convert_float4((*samples)[first_station + s][channel][time + t]);
       }
 
       barrier(CLK_LOCAL_MEM_FENCE);
 
-      for (uint t = 0; t < (NR_TIMES_PER_BLOCK % 16 == 0 ? 16 : min(16U, NR_TIMES_PER_BLOCK - time)); t ++) {
-	float2 sum = first_station == 0 ? 0 : (*complexVoltages)[channel][time + t][tab][pol];
+      for (uint t = 0; t < (NR_TIMES_PER_BLOCK % 16 == 0 ? 16 : min(16U, NR_TIMES_PER_BLOCK - time)); t++) {
+        float2 sum = first_station == 0 ? 0 : (*complexVoltages)[channel][time + t][tab][pol];
 
 #if NR_STATIONS_PER_PASS >= 1
-	if (first_station + 1 < NR_STATIONS) {
-	  sample = _local.samples[ 0][t][pol];
-	  sum += weight_00.xx * sample;
-	  sum += weight_00.yy * (float2) (-sample.y, sample.x);
-	}
+        if (first_station + 1 < NR_STATIONS) {
+          sample = _local.samples[ 0][t][pol];
+          sum += weight_00.xx * sample;
+          sum += weight_00.yy * (float2) (-sample.y, sample.x);
+        }
 #endif
 
 #if NR_STATIONS_PER_PASS >= 2
-	if (first_station + 2 < NR_STATIONS) {
-	  sample = _local.samples[ 1][t][pol];
-	  sum += weight_01.xx * sample;
-	  sum += weight_01.yy * (float2) (-sample.y, sample.x);
-	}
+        if (first_station + 2 < NR_STATIONS) {
+          sample = _local.samples[ 1][t][pol];
+          sum += weight_01.xx * sample;
+          sum += weight_01.yy * (float2) (-sample.y, sample.x);
+        }
 #endif
 
 #if NR_STATIONS_PER_PASS >= 3
-	if (first_station + 3 < NR_STATIONS) {
-	  sample = _local.samples[ 2][t][pol];
-	  sum += weight_02.xx * sample;
-	  sum += weight_02.yy * (float2) (-sample.y, sample.x);
-	}
+        if (first_station + 3 < NR_STATIONS) {
+          sample = _local.samples[ 2][t][pol];
+          sum += weight_02.xx * sample;
+          sum += weight_02.yy * (float2) (-sample.y, sample.x);
+        }
 #endif
 
 #if NR_STATIONS_PER_PASS >= 4
-	if (first_station + 4 < NR_STATIONS) {
-	  sample = _local.samples[ 3][t][pol];
-	  sum += weight_03.xx * sample;
-	  sum += weight_03.yy * (float2) (-sample.y, sample.x);
-	}
+        if (first_station + 4 < NR_STATIONS) {
+          sample = _local.samples[ 3][t][pol];
+          sum += weight_03.xx * sample;
+          sum += weight_03.yy * (float2) (-sample.y, sample.x);
+        }
 #endif
 
 #if NR_STATIONS_PER_PASS >= 5
-	if (first_station + 5 < NR_STATIONS) {
-	  sample = _local.samples[ 4][t][pol];
-	  sum += weight_04.xx * sample;
-	  sum += weight_04.yy * (float2) (-sample.y, sample.x);
-	}
+        if (first_station + 5 < NR_STATIONS) {
+          sample = _local.samples[ 4][t][pol];
+          sum += weight_04.xx * sample;
+          sum += weight_04.yy * (float2) (-sample.y, sample.x);
+        }
 #endif
 
 #if NR_STATIONS_PER_PASS >= 6
-	if (first_station + 6 < NR_STATIONS) {
-	  sample = _local.samples[ 5][t][pol];
-	  sum += weight_05.xx * sample;
-	  sum += weight_05.yy * (float2) (-sample.y, sample.x);
-	}
+        if (first_station + 6 < NR_STATIONS) {
+          sample = _local.samples[ 5][t][pol];
+          sum += weight_05.xx * sample;
+          sum += weight_05.yy * (float2) (-sample.y, sample.x);
+        }
 #endif
 
 #if NR_STATIONS_PER_PASS >= 7
-	if (first_station + 7 < NR_STATIONS) {
-	  sample = _local.samples[ 6][t][pol];
-	  sum += weight_06.xx * sample;
-	  sum += weight_06.yy * (float2) (-sample.y, sample.x);
-	}
+        if (first_station + 7 < NR_STATIONS) {
+          sample = _local.samples[ 6][t][pol];
+          sum += weight_06.xx * sample;
+          sum += weight_06.yy * (float2) (-sample.y, sample.x);
+        }
 #endif
 
 #if NR_STATIONS_PER_PASS >= 8
-	if (first_station + 8 < NR_STATIONS) {
-	  sample = _local.samples[ 7][t][pol];
-	  sum += weight_07.xx * sample;
-	  sum += weight_07.yy * (float2) (-sample.y, sample.x);
-	}
+        if (first_station + 8 < NR_STATIONS) {
+          sample = _local.samples[ 7][t][pol];
+          sum += weight_07.xx * sample;
+          sum += weight_07.yy * (float2) (-sample.y, sample.x);
+        }
 #endif
 
 #if NR_STATIONS_PER_PASS >= 9
-	if (first_station + 9 < NR_STATIONS) {
-	  sample = _local.samples[ 8][t][pol];
-	  sum += weight_08.xx * sample;
-	  sum += weight_08.yy * (float2) (-sample.y, sample.x);
-	}
+        if (first_station + 9 < NR_STATIONS) {
+          sample = _local.samples[ 8][t][pol];
+          sum += weight_08.xx * sample;
+          sum += weight_08.yy * (float2) (-sample.y, sample.x);
+        }
 #endif
 
 #if NR_STATIONS_PER_PASS >= 10
-	if (first_station + 10 < NR_STATIONS) {
-	  sample = _local.samples[ 9][t][pol];
-	  sum += weight_09.xx * sample;
-	  sum += weight_09.yy * (float2) (-sample.y, sample.x);
-	}
+        if (first_station + 10 < NR_STATIONS) {
+          sample = _local.samples[ 9][t][pol];
+          sum += weight_09.xx * sample;
+          sum += weight_09.yy * (float2) (-sample.y, sample.x);
+        }
 #endif
 
 #if NR_STATIONS_PER_PASS >= 11
-	if (first_station + 11 < NR_STATIONS) {
-	  sample = _local.samples[10][t][pol];
-	  sum += weight_10.xx * sample;
-	  sum += weight_10.yy * (float2) (-sample.y, sample.x);
-	}
+        if (first_station + 11 < NR_STATIONS) {
+          sample = _local.samples[10][t][pol];
+          sum += weight_10.xx * sample;
+          sum += weight_10.yy * (float2) (-sample.y, sample.x);
+        }
 #endif
 
 #if NR_STATIONS_PER_PASS >= 12
-	if (first_station + 12 < NR_STATIONS) {
-	  sample = _local.samples[11][t][pol];
-	  sum += weight_11.xx * sample;
-	  sum += weight_11.yy * (float2) (-sample.y, sample.x);
-	}
+        if (first_station + 12 < NR_STATIONS) {
+          sample = _local.samples[11][t][pol];
+          sum += weight_11.xx * sample;
+          sum += weight_11.yy * (float2) (-sample.y, sample.x);
+        }
 #endif
 
 #if NR_STATIONS_PER_PASS >= 13
-	if (first_station + 13 < NR_STATIONS) {
-	  sample = _local.samples[12][t][pol];
-	  sum += weight_12.xx * sample;
-	  sum += weight_12.yy * (float2) (-sample.y, sample.x);
-	}
+        if (first_station + 13 < NR_STATIONS) {
+          sample = _local.samples[12][t][pol];
+          sum += weight_12.xx * sample;
+          sum += weight_12.yy * (float2) (-sample.y, sample.x);
+        }
 #endif
 
 #if NR_STATIONS_PER_PASS >= 14
-	if (first_station + 14 < NR_STATIONS) {
-	  sample = _local.samples[13][t][pol];
-	  sum += weight_13.xx * sample;
-	  sum += weight_13.yy * (float2) (-sample.y, sample.x);
-	}
+        if (first_station + 14 < NR_STATIONS) {
+          sample = _local.samples[13][t][pol];
+          sum += weight_13.xx * sample;
+          sum += weight_13.yy * (float2) (-sample.y, sample.x);
+        }
 #endif
 
 #if NR_STATIONS_PER_PASS >= 15
-	if (first_station + 15 < NR_STATIONS) {
-	  sample = _local.samples[14][t][pol];
-	  sum += weight_14.xx * sample;
-	  sum += weight_14.yy * (float2) (-sample.y, sample.x);
-	}
+        if (first_station + 15 < NR_STATIONS) {
+          sample = _local.samples[14][t][pol];
+          sum += weight_14.xx * sample;
+          sum += weight_14.yy * (float2) (-sample.y, sample.x);
+        }
 #endif
 
 #if NR_STATIONS_PER_PASS >= 16
-	if (first_station + 15 < NR_STATIONS) {
-	  sample = _local.samples[15][t][pol];
-	  sum += weight_15.xx * sample;
-	  sum += weight_15.yy * (float2) (-sample.y, sample.x);
-	}
+        if (first_station + 15 < NR_STATIONS) {
+          sample = _local.samples[15][t][pol];
+          sum += weight_15.xx * sample;
+          sum += weight_15.yy * (float2) (-sample.y, sample.x);
+        }
 #endif
 
 #if NR_STATIONS_PER_PASS >= 17
-	if (first_station + 16 < NR_STATIONS) {
-	  sample = _local.samples[16][t][pol];
-	  sum += weight_16.xx * sample;
-	  sum += weight_16.yy * (float2) (-sample.y, sample.x);
-	}
+        if (first_station + 16 < NR_STATIONS) {
+          sample = _local.samples[16][t][pol];
+          sum += weight_16.xx * sample;
+          sum += weight_16.yy * (float2) (-sample.y, sample.x);
+        }
 #endif
 
 #if NR_STATIONS_PER_PASS >= 18
-	if (first_station + 17 < NR_STATIONS) {
-	  sample = _local.samples[17][t][pol];
-	  sum += weight_17.xx * sample;
-	  sum += weight_17.yy * (float2) (-sample.y, sample.x);
-	}
+        if (first_station + 17 < NR_STATIONS) {
+          sample = _local.samples[17][t][pol];
+          sum += weight_17.xx * sample;
+          sum += weight_17.yy * (float2) (-sample.y, sample.x);
+        }
 #endif
 
 #if NR_STATIONS_PER_PASS >= 19
-	if (first_station + 18 < NR_STATIONS) {
-	  sample = _local.samples[18][t][pol];
-	  sum += weight_18.xx * sample;
-	  sum += weight_18.yy * (float2) (-sample.y, sample.x);
-	}
+        if (first_station + 18 < NR_STATIONS) {
+          sample = _local.samples[18][t][pol];
+          sum += weight_18.xx * sample;
+          sum += weight_18.yy * (float2) (-sample.y, sample.x);
+        }
 #endif
 
 #if NR_STATIONS_PER_PASS >= 20
-	if (first_station + 19 < NR_STATIONS) {
-	  sample = _local.samples[19][t][pol];
-	  sum += weight_19.xx * sample;
-	  sum += weight_19.yy * (float2) (-sample.y, sample.x);
-	}
+        if (first_station + 19 < NR_STATIONS) {
+          sample = _local.samples[19][t][pol];
+          sum += weight_19.xx * sample;
+          sum += weight_19.yy * (float2) (-sample.y, sample.x);
+        }
 #endif
 
 #if NR_STATIONS_PER_PASS >= 21
-	if (first_station + 20 < NR_STATIONS) {
-	  sample = _local.samples[20][t][pol];
-	  sum += weight_20.xx * sample;
-	  sum += weight_20.yy * (float2) (-sample.y, sample.x);
-	}
+        if (first_station + 20 < NR_STATIONS) {
+          sample = _local.samples[20][t][pol];
+          sum += weight_20.xx * sample;
+          sum += weight_20.yy * (float2) (-sample.y, sample.x);
+        }
 #endif
 
 #if NR_STATIONS_PER_PASS >= 22
-	if (first_station + 21 < NR_STATIONS) {
-	  sample = _local.samples[21][t][pol];
-	  sum += weight_21.xx * sample;
-	  sum += weight_21.yy * (float2) (-sample.y, sample.x);
-	}
+        if (first_station + 21 < NR_STATIONS) {
+          sample = _local.samples[21][t][pol];
+          sum += weight_21.xx * sample;
+          sum += weight_21.yy * (float2) (-sample.y, sample.x);
+        }
 #endif
 
 #if NR_STATIONS_PER_PASS >= 23
-	if (first_station + 22 < NR_STATIONS) {
-	  sample = _local.samples[22][t][pol];
-	  sum += weight_22.xx * sample;
-	  sum += weight_22.yy * (float2) (-sample.y, sample.x);
-	}
+        if (first_station + 22 < NR_STATIONS) {
+          sample = _local.samples[22][t][pol];
+          sum += weight_22.xx * sample;
+          sum += weight_22.yy * (float2) (-sample.y, sample.x);
+        }
 #endif
 
 #if NR_STATIONS_PER_PASS >= 24
-	if (first_station + 23 < NR_STATIONS) {
-	  sample = _local.samples[23][t][pol];
-	  sum += weight_23.xx * sample;
-	  sum += weight_23.yy * (float2) (-sample.y, sample.x);
-	}
+        if (first_station + 23 < NR_STATIONS) {
+          sample = _local.samples[23][t][pol];
+          sum += weight_23.xx * sample;
+          sum += weight_23.yy * (float2) (-sample.y, sample.x);
+        }
 #endif
 
 #if NR_STATIONS_PER_PASS >= 25
-	if (first_station + 25 < NR_STATIONS) {
-	  sample = _local.samples[24][t][pol];
-	  sum += weight_24.xx * sample;
-	  sum += weight_24.yy * (float2) (-sample.y, sample.x);
-	}
+        if (first_station + 25 < NR_STATIONS) {
+          sample = _local.samples[24][t][pol];
+          sum += weight_24.xx * sample;
+          sum += weight_24.yy * (float2) (-sample.y, sample.x);
+        }
 #endif
 
 #if NR_STATIONS_PER_PASS >= 26
-	if (first_station + 25 < NR_STATIONS) {
-	  sample = _local.samples[25][t][pol];
-	  sum += weight_25.xx * sample;
-	  sum += weight_25.yy * (float2) (-sample.y, sample.x);
-	}
+        if (first_station + 25 < NR_STATIONS) {
+          sample = _local.samples[25][t][pol];
+          sum += weight_25.xx * sample;
+          sum += weight_25.yy * (float2) (-sample.y, sample.x);
+        }
 #endif
 
 #if NR_STATIONS_PER_PASS >= 27
-	if (first_station + 26 < NR_STATIONS) {
-	  sample = _local.samples[26][t][pol];
-	  sum += weight_26.xx * sample;
-	  sum += weight_26.yy * (float2) (-sample.y, sample.x);
-	}
+        if (first_station + 26 < NR_STATIONS) {
+          sample = _local.samples[26][t][pol];
+          sum += weight_26.xx * sample;
+          sum += weight_26.yy * (float2) (-sample.y, sample.x);
+        }
 #endif
 
 #if NR_STATIONS_PER_PASS >= 28
-	if (first_station + 27 < NR_STATIONS) {
-	  sample = _local.samples[27][t][pol];
-	  sum += weight_27.xx * sample;
-	  sum += weight_27.yy * (float2) (-sample.y, sample.x);
-	}
+        if (first_station + 27 < NR_STATIONS) {
+          sample = _local.samples[27][t][pol];
+          sum += weight_27.xx * sample;
+          sum += weight_27.yy * (float2) (-sample.y, sample.x);
+        }
 #endif
 
 #if NR_STATIONS_PER_PASS >= 29
-	if (first_station + 28 < NR_STATIONS) {
-	  sample = _local.samples[28][t][pol];
-	  sum += weight_28.xx * sample;
-	  sum += weight_28.yy * (float2) (-sample.y, sample.x);
-	}
+        if (first_station + 28 < NR_STATIONS) {
+          sample = _local.samples[28][t][pol];
+          sum += weight_28.xx * sample;
+          sum += weight_28.yy * (float2) (-sample.y, sample.x);
+        }
 #endif
 
 #if NR_STATIONS_PER_PASS >= 30
-	if (first_station + 29 < NR_STATIONS) {
-	  sample = _local.samples[29][t][pol];
-	  sum += weight_29.xx * sample;
-	  sum += weight_29.yy * (float2) (-sample.y, sample.x);
-	}
+        if (first_station + 29 < NR_STATIONS) {
+          sample = _local.samples[29][t][pol];
+          sum += weight_29.xx * sample;
+          sum += weight_29.yy * (float2) (-sample.y, sample.x);
+        }
 #endif
 
 #if NR_STATIONS_PER_PASS >= 31
-	if (first_station + 30 < NR_STATIONS) {
-	  sample = _local.samples[30][t][pol];
-	  sum += weight_30.xx * sample;
-	  sum += weight_30.yy * (float2) (-sample.y, sample.x);
-	}
+        if (first_station + 30 < NR_STATIONS) {
+          sample = _local.samples[30][t][pol];
+          sum += weight_30.xx * sample;
+          sum += weight_30.yy * (float2) (-sample.y, sample.x);
+        }
 #endif
 
 #if NR_STATIONS_PER_PASS >= 32
-	if (first_station + 31 < NR_STATIONS) {
-	  sample = _local.samples[31][t][pol];
-	  sum += weight_31.xx * sample;
-	  sum += weight_31.yy * (float2) (-sample.y, sample.x);
-	}
+        if (first_station + 31 < NR_STATIONS) {
+          sample = _local.samples[31][t][pol];
+          sum += weight_31.xx * sample;
+          sum += weight_31.yy * (float2) (-sample.y, sample.x);
+        }
 #endif
 
-	(*complexVoltages)[channel][time + t][tab][pol] = sum;
+        (*complexVoltages)[channel][time + t][tab][pol] = sum;
       }
 
       barrier(CLK_LOCAL_MEM_FENCE);
diff --git a/RTCP/Cobalt/GPUProc/src/BeamFormer/BeamFormer.cl.orig b/RTCP/Cobalt/GPUProc/src/BeamFormer/BeamFormer.cl.orig
index cdaceafe25037428ee704b505003e0591a34c220..43ae0e90cb39fd79c6393dd194b6aa8b95695a96 100644
--- a/RTCP/Cobalt/GPUProc/src/BeamFormer/BeamFormer.cl.orig
+++ b/RTCP/Cobalt/GPUProc/src/BeamFormer/BeamFormer.cl.orig
@@ -10,16 +10,16 @@ float2 cmul(float2 a, float2 b)
 
 
 __kernel void complexVoltages(__global void *complexVoltagesPtr,
-			      __global const void *correctedDataPtr,
-			      __global const void *weightsPtr)
+                              __global const void *correctedDataPtr,
+                              __global const void *weightsPtr)
 {
   ComplexVoltagesType complexVoltages = (ComplexVoltagesType) complexVoltagesPtr;
-  CorrectedDataType   correctedData   = (CorrectedDataType) correctedDataPtr;
-  WeightsType	      weights	      = (WeightsType) weightsPtr;
+  CorrectedDataType correctedData = (CorrectedDataType) correctedDataPtr;
+  WeightsType weights = (WeightsType) weightsPtr;
 
-  uint first_tab	= 3 * get_local_id(0);
-  uint first_station	= 6 * get_local_id(1);
-  uint channel		= get_global_id(2);
+  uint first_tab = 3 * get_local_id(0);
+  uint first_station = 6 * get_local_id(1);
+  uint channel = get_global_id(2);
 
   bool lastGroupOfStations = first_station + 6 == NR_STATIONS;
 
@@ -52,7 +52,7 @@ __kernel void complexVoltages(__global void *complexVoltagesPtr,
     local_sums[2][0][get_local_id(0)] = (float4) { 0, 0, 0, 0 };
   }
 
-  for (int time = 0 - get_local_id(1); time < (int) (NR_TIMES_PER_BLOCK + NR_STATIONS / 6 - 1 - get_local_id(1)); time ++) {
+  for (int time = 0 - get_local_id(1); time < (int) (NR_TIMES_PER_BLOCK + NR_STATIONS / 6 - 1 - get_local_id(1)); time++) {
     bool validTime = time >= 0 && time < NR_TIMES_PER_BLOCK;
 
     if (validTime) {
@@ -120,13 +120,13 @@ __kernel void complexVoltages(__global void *complexVoltagesPtr,
 
     if (validTime) {
       if (lastGroupOfStations) {
-	(*complexVoltages)[channel][time][first_tab + 0] = sum_0;
-	(*complexVoltages)[channel][time][first_tab + 1] = sum_1;
-	(*complexVoltages)[channel][time][first_tab + 2] = sum_2;
+        (*complexVoltages)[channel][time][first_tab + 0] = sum_0;
+        (*complexVoltages)[channel][time][first_tab + 1] = sum_1;
+        (*complexVoltages)[channel][time][first_tab + 2] = sum_2;
       } else {
-	local_sums[0][get_local_id(1) + 1][get_local_id(0)] = sum_0;
-	local_sums[1][get_local_id(1) + 1][get_local_id(0)] = sum_1;
-	local_sums[2][get_local_id(1) + 1][get_local_id(0)] = sum_2;
+        local_sums[0][get_local_id(1) + 1][get_local_id(0)] = sum_0;
+        local_sums[1][get_local_id(1) + 1][get_local_id(0)] = sum_1;
+        local_sums[2][get_local_id(1) + 1][get_local_id(0)] = sum_2;
       }
     }
 
diff --git a/RTCP/Cobalt/GPUProc/src/BeamFormer/CoherentStokes.cl b/RTCP/Cobalt/GPUProc/src/BeamFormer/CoherentStokes.cl
index 0730d34cf4cc728dcee72f652a2775874b903f1c..604ecbc8f7eb1a966d91898b7d35140927025618 100644
--- a/RTCP/Cobalt/GPUProc/src/BeamFormer/CoherentStokes.cl
+++ b/RTCP/Cobalt/GPUProc/src/BeamFormer/CoherentStokes.cl
@@ -1,46 +1,46 @@
-__kernel void coherentStokes(__global void *restrict stokesDataPtr, 
-			     __global const void *restrict complexVoltagesPtr)
+__kernel void coherentStokes(__global void *restrict stokesDataPtr,
+                             __global const void *restrict complexVoltagesPtr)
 {
   typedef __global float (*StokesType)[NR_TABS][NR_COHERENT_STOKES][NR_SAMPLES_PER_CHANNEL / COHERENT_STOKES_TIME_INTEGRATION_FACTOR][NR_CHANNELS];
   typedef __global float4 (*ComplexVoltagesType)[NR_CHANNELS][NR_SAMPLES_PER_CHANNEL / COHERENT_STOKES_TIME_INTEGRATION_FACTOR][COHERENT_STOKES_TIME_INTEGRATION_FACTOR][NR_TABS];
 
-  StokesType	      stokesData      = (StokesType) stokesDataPtr;
+  StokesType stokesData = (StokesType) stokesDataPtr;
   ComplexVoltagesType complexVoltages = (ComplexVoltagesType) complexVoltagesPtr;
 
   __local float tmp[NR_COHERENT_STOKES][16][17];
 
   uint tabBase = 16 * get_global_id(1);
-  uint chBase  = 16 * get_global_id(2);
+  uint chBase = 16 * get_global_id(2);
 
   uint tabOffsetR = get_local_id(0) & 15;
-  uint tabR	  = tabBase + tabOffsetR;
-  uint chOffsetR  = get_local_id(0) >> 4;
-  uint channelR	  = chBase + chOffsetR;
-  bool doR	  = NR_TABS % 16 == 0 || tabR < NR_TABS;
+  uint tabR = tabBase + tabOffsetR;
+  uint chOffsetR = get_local_id(0) >> 4;
+  uint channelR = chBase + chOffsetR;
+  bool doR = NR_TABS % 16 == 0 || tabR < NR_TABS;
 
   uint tabOffsetW = get_local_id(0) >> 4;
-  uint tabW	  = tabBase + tabOffsetW;
-  uint chOffsetW  = get_local_id(0) & 15;
-  uint channelW	  = chBase + chOffsetW;
-  bool doW	  = NR_TABS % 16 == 0 || tabW < NR_TABS;
+  uint tabW = tabBase + tabOffsetW;
+  uint chOffsetW = get_local_id(0) & 15;
+  uint channelW = chBase + chOffsetW;
+  bool doW = NR_TABS % 16 == 0 || tabW < NR_TABS;
 
-  for (uint time = 0; time < NR_SAMPLES_PER_CHANNEL / COHERENT_STOKES_TIME_INTEGRATION_FACTOR; time ++) {
+  for (uint time = 0; time < NR_SAMPLES_PER_CHANNEL / COHERENT_STOKES_TIME_INTEGRATION_FACTOR; time++) {
     float stokesI = 0;
 #if NR_COHERENT_STOKES == 4
     float stokesQ = 0, halfStokesU = 0, halfStokesV = 0;
 #endif
 
     if (doR) {
-      for (uint t = 0; t < COHERENT_STOKES_TIME_INTEGRATION_FACTOR; t ++) {
-	float4 sample = (*complexVoltages)[channelR][time][t][tabR];
-	float2 X = sample.xy, Y = sample.zw;
-	float powerX = X.x * X.x + X.y * X.y;
-	float powerY = Y.x * Y.x + Y.y * Y.y;
-	stokesI += powerX + powerY;
+      for (uint t = 0; t < COHERENT_STOKES_TIME_INTEGRATION_FACTOR; t++) {
+        float4 sample = (*complexVoltages)[channelR][time][t][tabR];
+        float2 X = sample.xy, Y = sample.zw;
+        float powerX = X.x * X.x + X.y * X.y;
+        float powerY = Y.x * Y.x + Y.y * Y.y;
+        stokesI += powerX + powerY;
 #if NR_COHERENT_STOKES == 4
-	stokesQ += powerX - powerY;
-	halfStokesU += X.x * Y.x + X.y * Y.y;
-	halfStokesV += X.y * Y.x - X.x * Y.y;
+        stokesQ += powerX - powerY;
+        halfStokesU += X.x * Y.x + X.y * Y.y;
+        halfStokesV += X.y * Y.x - X.x * Y.y;
 #endif
       }
 
@@ -55,8 +55,8 @@ __kernel void coherentStokes(__global void *restrict stokesDataPtr,
     barrier(CLK_LOCAL_MEM_FENCE);
 
     if (doW)
-      for (uint stokes = 0; stokes < NR_COHERENT_STOKES; stokes ++)
-	(*stokesData)[tabW][stokes][time][channelW] = tmp[stokes][tabOffsetW][chOffsetW];
+      for (uint stokes = 0; stokes < NR_COHERENT_STOKES; stokes++)
+        (*stokesData)[tabW][stokes][time][channelW] = tmp[stokes][tabOffsetW][chOffsetW];
 
     barrier(CLK_LOCAL_MEM_FENCE);
   }
@@ -64,49 +64,49 @@ __kernel void coherentStokes(__global void *restrict stokesDataPtr,
 
 
 #if 0
-__kernel void computeStokes(__global void *restrict stokesDataPtr, 
-			    __global const void *restrict dedispersedDataPtr)
+__kernel void computeStokes(__global void *restrict stokesDataPtr,
+                            __global const void *restrict dedispersedDataPtr)
 {
   typedef __global float (*StokesType)[NR_TABS][NR_COHERENT_STOKES][NR_SAMPLES_PER_CHANNEL / COHERENT_STOKES_TIME_INTEGRATION_FACTOR][NR_CHANNELS];
   typedef __global float2 (*DedispersedDataType)[NR_TABS][NR_POLARIZATIONS][NR_CHANNELS][NR_SAMPLES_PER_CHANNEL];
 
-  StokesType	      stokesData      = (StokesType) stokesDataPtr;
+  StokesType stokesData = (StokesType) stokesDataPtr;
   DedispersedDataType dedispersedData = (DedispersedDataType) dedispersedDataPtr;
 
   __local float tmp[NR_COHERENT_STOKES][16][17];
 
   uint timeBase = 16 * get_global_id(1);
-  uint chBase  = 16 * get_global_id(2);
+  uint chBase = 16 * get_global_id(2);
 
   uint timeOffsetR = get_local_id(0) & 15;
-  uint timeR	  = timeBase + tabOffsetR;
-  uint chOffsetR  = get_local_id(0) >> 4;
-  uint channelR	  = chBase + chOffsetR;
-  bool doR	  = NR_TABS % 16 == 0 || tabR < NR_TABS;
+  uint timeR = timeBase + tabOffsetR;
+  uint chOffsetR = get_local_id(0) >> 4;
+  uint channelR = chBase + chOffsetR;
+  bool doR = NR_TABS % 16 == 0 || tabR < NR_TABS;
 
   uint tabOffsetW = get_local_id(0) >> 4;
-  uint tabW	  = tabBase + tabOffsetW;
-  uint chOffsetW  = get_local_id(0) & 15;
-  uint channelW	  = chBase + chOffsetW;
-  bool doW	  = NR_TABS % 16 == 0 || tabW < NR_TABS;
+  uint tabW = tabBase + tabOffsetW;
+  uint chOffsetW = get_local_id(0) & 15;
+  uint channelW = chBase + chOffsetW;
+  bool doW = NR_TABS % 16 == 0 || tabW < NR_TABS;
 
-  for (uint time = 0; time < NR_SAMPLES_PER_CHANNEL / COHERENT_STOKES_TIME_INTEGRATION_FACTOR; time ++) {
+  for (uint time = 0; time < NR_SAMPLES_PER_CHANNEL / COHERENT_STOKES_TIME_INTEGRATION_FACTOR; time++) {
     float stokesI = 0;
 #if NR_COHERENT_STOKES == 4
     float stokesQ = 0, halfStokesU = 0, halfStokesV = 0;
 #endif
 
     if (doR) {
-      for (uint t = 0; t < COHERENT_STOKES_TIME_INTEGRATION_FACTOR; t ++) {
-	float4 sample = (*complexVoltages)[channelR][time][t][tabR];
-	float2 X = sample.xy, Y = sample.zw;
-	float powerX = X.x * X.x + X.y * X.y;
-	float powerY = Y.x * Y.x + Y.y * Y.y;
-	stokesI += powerX + powerY;
+      for (uint t = 0; t < COHERENT_STOKES_TIME_INTEGRATION_FACTOR; t++) {
+        float4 sample = (*complexVoltages)[channelR][time][t][tabR];
+        float2 X = sample.xy, Y = sample.zw;
+        float powerX = X.x * X.x + X.y * X.y;
+        float powerY = Y.x * Y.x + Y.y * Y.y;
+        stokesI += powerX + powerY;
 #if NR_COHERENT_STOKES == 4
-	stokesQ += powerX - powerY;
-	halfStokesU += X.x * Y.x + X.y * Y.y;
-	halfStokesV += X.y * Y.x - X.x * Y.y;
+        stokesQ += powerX - powerY;
+        halfStokesU += X.x * Y.x + X.y * Y.y;
+        halfStokesV += X.y * Y.x - X.x * Y.y;
 #endif
       }
 
@@ -121,8 +121,8 @@ __kernel void computeStokes(__global void *restrict stokesDataPtr,
     barrier(CLK_LOCAL_MEM_FENCE);
 
     if (doW)
-      for (uint stokes = 0; stokes < NR_COHERENT_STOKES; stokes ++)
-	(*stokesData)[tabW][stokes][time][channelW] = tmp[stokes][tabOffsetW][chOffsetW];
+      for (uint stokes = 0; stokes < NR_COHERENT_STOKES; stokes++)
+        (*stokesData)[tabW][stokes][time][channelW] = tmp[stokes][tabOffsetW][chOffsetW];
 
     barrier(CLK_LOCAL_MEM_FENCE);
   }
diff --git a/RTCP/Cobalt/GPUProc/src/BeamFormer/CoherentStokes.cl.ok b/RTCP/Cobalt/GPUProc/src/BeamFormer/CoherentStokes.cl.ok
index be45251af7d4067667abd7f9af7c7f325a182e06..07cc1a63b15bfa5a7e73053f2392a854af6fa6cb 100644
--- a/RTCP/Cobalt/GPUProc/src/BeamFormer/CoherentStokes.cl.ok
+++ b/RTCP/Cobalt/GPUProc/src/BeamFormer/CoherentStokes.cl.ok
@@ -1,46 +1,46 @@
-__kernel void computeStokes(__global void *restrict stokesDataPtr, 
-			    __global const void *restrict complexVoltagesPtr)
+__kernel void computeStokes(__global void *restrict stokesDataPtr,
+                            __global const void *restrict complexVoltagesPtr)
 {
   typedef __global float (*StokesType)[NR_TABS][NR_STOKES][NR_TIMES_PER_BLOCK / STOKES_INTEGRATION_SAMPLES][NR_CHANNELS];
   typedef __global float4 (*ComplexVoltagesType)[NR_CHANNELS][NR_TIMES_PER_BLOCK / STOKES_INTEGRATION_SAMPLES][STOKES_INTEGRATION_SAMPLES][NR_TABS];
 
-  StokesType	      stokesData      = (StokesType) stokesDataPtr;
+  StokesType stokesData = (StokesType) stokesDataPtr;
   ComplexVoltagesType complexVoltages = (ComplexVoltagesType) complexVoltagesPtr;
 
   __local float tmp[NR_STOKES][16][17];
 
   uint tabBase = 16 * get_global_id(1);
-  uint chBase  = 16 * get_global_id(2);
+  uint chBase = 16 * get_global_id(2);
 
   uint tabOffsetR = get_local_id(0) & 15;
-  uint tabR	  = tabBase + tabOffsetR;
-  uint chOffsetR  = get_local_id(0) >> 4;
-  uint channelR	  = chBase + chOffsetR;
-  bool doR	  = NR_TABS % 16 == 0 || tabR < NR_TABS;
+  uint tabR = tabBase + tabOffsetR;
+  uint chOffsetR = get_local_id(0) >> 4;
+  uint channelR = chBase + chOffsetR;
+  bool doR = NR_TABS % 16 == 0 || tabR < NR_TABS;
 
   uint tabOffsetW = get_local_id(0) >> 4;
-  uint tabW	  = tabBase + tabOffsetW;
-  uint chOffsetW  = get_local_id(0) & 15;
-  uint channelW	  = chBase + chOffsetW;
-  bool doW	  = NR_TABS % 16 == 0 || tabW < NR_TABS;
+  uint tabW = tabBase + tabOffsetW;
+  uint chOffsetW = get_local_id(0) & 15;
+  uint channelW = chBase + chOffsetW;
+  bool doW = NR_TABS % 16 == 0 || tabW < NR_TABS;
 
-  for (uint time = 0; time < NR_TIMES_PER_BLOCK / STOKES_INTEGRATION_SAMPLES; time ++) {
+  for (uint time = 0; time < NR_TIMES_PER_BLOCK / STOKES_INTEGRATION_SAMPLES; time++) {
     float stokesI = 0;
 #if NR_STOKES == 4
     float stokesQ = 0, halfStokesU = 0, halfStokesV = 0;
 #endif
 
     if (doR) {
-      for (uint t = 0; t < STOKES_INTEGRATION_SAMPLES; t ++) {
-	float4 sample = (*complexVoltages)[channelR][time][t][tabR];
-	float2 X = sample.xy, Y = sample.zw;
-	float powerX = X.x * X.x + X.y * X.y;
-	float powerY = Y.x * Y.x + Y.y * Y.y;
-	stokesI += powerX + powerY;
+      for (uint t = 0; t < STOKES_INTEGRATION_SAMPLES; t++) {
+        float4 sample = (*complexVoltages)[channelR][time][t][tabR];
+        float2 X = sample.xy, Y = sample.zw;
+        float powerX = X.x * X.x + X.y * X.y;
+        float powerY = Y.x * Y.x + Y.y * Y.y;
+        stokesI += powerX + powerY;
 #if NR_STOKES == 4
-	stokesQ += powerX - powerY;
-	halfStokesU += X.x * Y.x + X.y * Y.y;
-	halfStokesV += X.y * Y.x - X.x * Y.y;
+        stokesQ += powerX - powerY;
+        halfStokesU += X.x * Y.x + X.y * Y.y;
+        halfStokesV += X.y * Y.x - X.x * Y.y;
 #endif
       }
 
@@ -55,8 +55,8 @@ __kernel void computeStokes(__global void *restrict stokesDataPtr,
     barrier(CLK_LOCAL_MEM_FENCE);
 
     if (doW)
-      for (uint stokes = 0; stokes < NR_STOKES; stokes ++)
-	(*stokesData)[tabW][stokes][time][channelW] = tmp[stokes][tabOffsetW][chOffsetW];
+      for (uint stokes = 0; stokes < NR_STOKES; stokes++)
+        (*stokesData)[tabW][stokes][time][channelW] = tmp[stokes][tabOffsetW][chOffsetW];
 
     barrier(CLK_LOCAL_MEM_FENCE);
   }
diff --git a/RTCP/Cobalt/GPUProc/src/BeamFormer/Dedispersion.cl b/RTCP/Cobalt/GPUProc/src/BeamFormer/Dedispersion.cl
index bffddc4e9d0a052dd4570269e89700b2faac9046..c1b3f2354cfa3b4fc9f443d6afa59ad978627d9c 100644
--- a/RTCP/Cobalt/GPUProc/src/BeamFormer/Dedispersion.cl
+++ b/RTCP/Cobalt/GPUProc/src/BeamFormer/Dedispersion.cl
@@ -14,7 +14,7 @@ typedef __global float2 (*BufferType)[NR_TABS][NR_POLARIZATIONS][NR_CHANNELS][NR
 
 
 __kernel void applyChirp(__global void *bufferPtr,
-			 __global float *DMs,
+                         __global float *DMs,
                          float subbandFrequency)
 {
   __local float local_DMs[NR_TABS];
@@ -23,7 +23,7 @@ __kernel void applyChirp(__global void *bufferPtr,
     local_DMs[i] = DMs[i] * 2.0f * (float) M_PI * 4.149e15f;
 
   barrier(CLK_LOCAL_MEM_FENCE);
-  
+
   BufferType buffer = (BufferType) bufferPtr;
 
   uint subChannel = get_global_id(0);
@@ -32,9 +32,9 @@ __kernel void applyChirp(__global void *bufferPtr,
 
 #if NR_CHANNELS > 1
   float subbandBaseFrequency = subbandFrequency - .5f * (float) SUBBAND_BANDWIDTH;
-  float channel0frequency    = subbandBaseFrequency + channel * CHANNEL_BANDWIDTH;
+  float channel0frequency = subbandBaseFrequency + channel * CHANNEL_BANDWIDTH;
 #else
-  float channel0frequency    = subbandFrequency;
+  float channel0frequency = subbandFrequency;
 #endif
 
   float binFrequency = subChannel * SUB_CHANNEL_BANDWIDTH;
@@ -46,13 +46,13 @@ __kernel void applyChirp(__global void *bufferPtr,
   float frequencyDiv = binFrequency / channel0frequency;
   float frequencyFac = frequencyDiv * frequencyDiv / (channel0frequency + binFrequency);
 
-  for (uint tab = 0; tab < NR_TABS; tab ++) {
+  for (uint tab = 0; tab < NR_TABS; tab++) {
     float DM = local_DMs[tab];
 
     /* if (DM > 0) */ {
       float2 sampleX = (*buffer)[tab][0][channel][time][subChannel];
       float2 sampleY = (*buffer)[tab][1][channel][time][subChannel];
-      float2 factor  = cexp(DM * frequencyFac) * taper;
+      float2 factor = cexp(DM * frequencyFac) * taper;
 
       (*buffer)[tab][0][channel][time][subChannel] = cmul(factor, sampleX);
       (*buffer)[tab][1][channel][time][subChannel] = cmul(factor, sampleY);
diff --git a/RTCP/Cobalt/GPUProc/src/BeamFormer/IncoherentStokes.cl b/RTCP/Cobalt/GPUProc/src/BeamFormer/IncoherentStokes.cl
index 0f3a14bb126d5326b394eede815a82ef4febba47..ac6c1b3305ff298fca12761dfcb86236f49386c0 100644
--- a/RTCP/Cobalt/GPUProc/src/BeamFormer/IncoherentStokes.cl
+++ b/RTCP/Cobalt/GPUProc/src/BeamFormer/IncoherentStokes.cl
@@ -3,12 +3,12 @@ typedef __global float4 (*InputType)[NR_STATIONS][NR_CHANNELS][NR_SAMPLES_PER_CH
 
 
 __kernel void incoherentStokes(__global void *restrict stokesPtr,
-			       __global const void *restrict inputPtr)
+                               __global const void *restrict inputPtr)
 {
   IncoherentStokesType stokes = (IncoherentStokesType) stokesPtr;
-  InputType	       input  = (InputType) inputPtr;
+  InputType input = (InputType) inputPtr;
 
-  uint time    = get_global_id(0);
+  uint time = get_global_id(0);
   uint channel = get_global_id(1);
 
   if (time >= NR_SAMPLES_PER_CHANNEL / INCOHERENT_STOKES_TIME_INTEGRATION_FACTOR)
@@ -19,13 +19,13 @@ __kernel void incoherentStokes(__global void *restrict stokesPtr,
   float stokesQ = 0, halfStokesU = 0, halfStokesV = 0;
 #endif
 
-  for (uint station = 0; station < NR_STATIONS; station ++) {
-    for (uint t = 0; t < INCOHERENT_STOKES_TIME_INTEGRATION_FACTOR; t ++) {
-      float4 sample  = (*input)[station][channel][time][t];
-      float2 X       = sample.xy;
-      float2 Y       = sample.zw;
-      float  powerX  = X.x * X.x + X.y * X.y;
-      float  powerY  = Y.x * Y.x + Y.y * Y.y;
+  for (uint station = 0; station < NR_STATIONS; station++) {
+    for (uint t = 0; t < INCOHERENT_STOKES_TIME_INTEGRATION_FACTOR; t++) {
+      float4 sample = (*input)[station][channel][time][t];
+      float2 X = sample.xy;
+      float2 Y = sample.zw;
+      float powerX = X.x * X.x + X.y * X.y;
+      float powerY = Y.x * Y.x + Y.y * Y.y;
 
       stokesI += powerX + powerY;
 #if NR_INCOHERENT_STOKES == 4
diff --git a/RTCP/Cobalt/GPUProc/src/BeamFormer/IntToFloat.cl b/RTCP/Cobalt/GPUProc/src/BeamFormer/IntToFloat.cl
index fcb5e035873fb78a05534c4deacdb444040601c9..a4659023f9b8f0606852f96208653b2bb66da4ab 100644
--- a/RTCP/Cobalt/GPUProc/src/BeamFormer/IntToFloat.cl
+++ b/RTCP/Cobalt/GPUProc/src/BeamFormer/IntToFloat.cl
@@ -11,10 +11,10 @@ typedef __global float2 (*ConvertedDataType)[NR_STATIONS][NR_POLARIZATIONS][NR_S
 
 
 __kernel void intToFloat(__global void *restrict convertedDataPtr,
-			 __global const void *restrict sampledDataPtr)
+                         __global const void *restrict sampledDataPtr)
 {
   ConvertedDataType convertedData = (ConvertedDataType) convertedDataPtr;
-  SampledDataType   sampledData   = (SampledDataType) sampledDataPtr;
+  SampledDataType sampledData = (SampledDataType) sampledDataPtr;
 
   uint station = get_global_id(1);
 
diff --git a/RTCP/Cobalt/GPUProc/src/BeamFormer/Transpose.cl b/RTCP/Cobalt/GPUProc/src/BeamFormer/Transpose.cl
index bc1af15319662633a138f1e28957be2e89829b68..08195e1b89d16f7bf81126eb47675dd2c7e6a7bf 100644
--- a/RTCP/Cobalt/GPUProc/src/BeamFormer/Transpose.cl
+++ b/RTCP/Cobalt/GPUProc/src/BeamFormer/Transpose.cl
@@ -2,30 +2,30 @@
 typedef __global float2 (*TransposedDataType)[NR_TABS][NR_POLARIZATIONS][NR_SAMPLES_PER_CHANNEL][NR_CHANNELS];
 typedef __global float4 (*ComplexVoltagesType)[NR_CHANNELS][NR_SAMPLES_PER_CHANNEL][NR_TABS];
 
-__kernel void transposeComplexVoltages(__global void *restrict transposedDataPtr, 
-				       __global const void *restrict complexVoltagesPtr)
+__kernel void transposeComplexVoltages(__global void *restrict transposedDataPtr,
+                                       __global const void *restrict complexVoltagesPtr)
 {
-  TransposedDataType  transposedData  = (TransposedDataType) transposedDataPtr;
+  TransposedDataType transposedData = (TransposedDataType) transposedDataPtr;
   ComplexVoltagesType complexVoltages = (ComplexVoltagesType) complexVoltagesPtr;
 
   __local float4 tmp[16][17];
 
   uint tabBase = 16 * get_global_id(1);
-  uint chBase  = 16 * get_global_id(2);
+  uint chBase = 16 * get_global_id(2);
 
   uint tabOffsetR = get_local_id(0) & 15;
-  uint tabR	  = tabBase + tabOffsetR;
-  uint chOffsetR  = get_local_id(0) >> 4;
-  uint channelR	  = chBase + chOffsetR;
-  bool doR	  = NR_TABS % 16 == 0 || tabR < NR_TABS;
+  uint tabR = tabBase + tabOffsetR;
+  uint chOffsetR = get_local_id(0) >> 4;
+  uint channelR = chBase + chOffsetR;
+  bool doR = NR_TABS % 16 == 0 || tabR < NR_TABS;
 
   uint tabOffsetW = get_local_id(0) >> 4;
-  uint tabW	  = tabBase + tabOffsetW;
-  uint chOffsetW  = get_local_id(0) & 15;
-  uint channelW	  = chBase + chOffsetW;
-  bool doW	  = NR_TABS % 16 == 0 || tabW < NR_TABS;
+  uint tabW = tabBase + tabOffsetW;
+  uint chOffsetW = get_local_id(0) & 15;
+  uint channelW = chBase + chOffsetW;
+  bool doW = NR_TABS % 16 == 0 || tabW < NR_TABS;
 
-  for (int time = 0; time < NR_SAMPLES_PER_CHANNEL; time ++) {
+  for (int time = 0; time < NR_SAMPLES_PER_CHANNEL; time++) {
     if (doR)
       tmp[tabOffsetR][chOffsetR] = (*complexVoltages)[channelR][time][tabR];
 
@@ -46,30 +46,30 @@ __kernel void transposeComplexVoltages(__global void *restrict transposedDataPtr
 typedef __global float2 (*TransposedDataType)[NR_TABS][NR_POLARIZATIONS][NR_CHANNELS][NR_SAMPLES_PER_CHANNEL];
 typedef __global float4 (*ComplexVoltagesType)[NR_CHANNELS][NR_SAMPLES_PER_CHANNEL][NR_TABS];
 
-__kernel void transposeComplexVoltages(__global void *restrict transposedDataPtr, 
-				       __global const void *restrict complexVoltagesPtr)
+__kernel void transposeComplexVoltages(__global void *restrict transposedDataPtr,
+                                       __global const void *restrict complexVoltagesPtr)
 {
-  TransposedDataType  transposedData  = (TransposedDataType) transposedDataPtr;
+  TransposedDataType transposedData = (TransposedDataType) transposedDataPtr;
   ComplexVoltagesType complexVoltages = (ComplexVoltagesType) complexVoltagesPtr;
 
   __local float4 tmp[16][17];
 
   uint tabBase = 16 * get_global_id(1);
-  uint timeBase  = 16 * get_global_id(2);
+  uint timeBase = 16 * get_global_id(2);
 
   uint tabOffsetR = get_local_id(0) & 15;
-  uint tabR	  = tabBase + tabOffsetR;
-  uint timeOffsetR  = get_local_id(0) >> 4;
-  uint timeR	  = timeBase + timeOffsetR;
-  bool doR	  = NR_TABS % 16 == 0 || tabR < NR_TABS;
+  uint tabR = tabBase + tabOffsetR;
+  uint timeOffsetR = get_local_id(0) >> 4;
+  uint timeR = timeBase + timeOffsetR;
+  bool doR = NR_TABS % 16 == 0 || tabR < NR_TABS;
 
   uint tabOffsetW = get_local_id(0) >> 4;
-  uint tabW	  = tabBase + tabOffsetW;
-  uint timeOffsetW  = get_local_id(0) & 15;
-  uint timeW	  = timeBase + timeOffsetW;
-  bool doW	  = NR_TABS % 16 == 0 || tabW < NR_TABS;
+  uint tabW = tabBase + tabOffsetW;
+  uint timeOffsetW = get_local_id(0) & 15;
+  uint timeW = timeBase + timeOffsetW;
+  bool doW = NR_TABS % 16 == 0 || tabW < NR_TABS;
 
-  for (int channel = 0; channel < NR_CHANNELS; channel ++) {
+  for (int channel = 0; channel < NR_CHANNELS; channel++) {
     if (doR)
       tmp[tabOffsetR][timeOffsetR] = (*complexVoltages)[timeR][channel][tabR];
 
diff --git a/RTCP/Cobalt/GPUProc/src/BestEffortQueue.h b/RTCP/Cobalt/GPUProc/src/BestEffortQueue.h
index 0c7dc9eb9c1a3306fc58b887f4600f29cba479c5..8956a76a93dd90235db6654ece9ff0e58a6cf4ca 100644
--- a/RTCP/Cobalt/GPUProc/src/BestEffortQueue.h
+++ b/RTCP/Cobalt/GPUProc/src/BestEffortQueue.h
@@ -6,47 +6,48 @@
 
 namespace LOFAR
 {
-    namespace RTCP 
+  namespace RTCP
+  {
+    /*
+     * Implements a best-effort queue. The queue has a maximum size,
+     * at which point further append()s are blocked until an item
+     * is removed. If `dropIfFull` is set, append() will not block,
+     * but discard the item instead.
+     *
+     * The noMore() function signals the end-of-stream, at which point
+     * an 0 or NULL element is inserted into the stream. The reader
+     * thus has to consider the value 0 as end-of-stream.
+     */
+    template<typename T>
+    class BestEffortQueue : public Queue<T>
     {
-        /*
-         * Implements a best-effort queue. The queue has a maximum size,
-         * at which point further append()s are blocked until an item
-         * is removed. If `dropIfFull` is set, append() will not block,
-         * but discard the item instead.
-         *
-         * The noMore() function signals the end-of-stream, at which point
-         * an 0 or NULL element is inserted into the stream. The reader
-         * thus has to consider the value 0 as end-of-stream.
-         */
-        template<typename T> class BestEffortQueue: public Queue<T>
-        {
-        public:
-          // Create a best-effort queue with room for `maxSize' elements.
-          // If `dropIfFull' is true, appends are dropped if the queue
-          // has reached `maxSize'.
-          BestEffortQueue(size_t maxSize, bool dropIfFull);
-
-          // Add an element. Returns true if append succeeded, false if element
-          // was dropped.
-          bool append(T);
-
-          // Remove an element -- 0 or NULL signals end-of-stream.
-          T remove();
-
-          // Signal end-of-stream.
-          void noMore();
-
-        private:
-          const size_t maxSize;
-          const bool dropIfFull;
-
-          // contains the amount of free space in the queue
-          Semaphore freeSpace;
-
-          // true if the queue is being flushed
-          bool flushing;
-        };
-    }
+    public:
+      // Create a best-effort queue with room for `maxSize' elements.
+      // If `dropIfFull' is true, appends are dropped if the queue
+      // has reached `maxSize'.
+      BestEffortQueue(size_t maxSize, bool dropIfFull);
+
+      // Add an element. Returns true if append succeeded, false if element
+      // was dropped.
+      bool append(T);
+
+      // Remove an element -- 0 or NULL signals end-of-stream.
+      T remove();
+
+      // Signal end-of-stream.
+      void noMore();
+
+    private:
+      const size_t maxSize;
+      const bool dropIfFull;
+
+      // contains the amount of free space in the queue
+      Semaphore freeSpace;
+
+      // true if the queue is being flushed
+      bool flushing;
+    };
+  }
 }
 
 #include "BestEffortQueue.tcc"
diff --git a/RTCP/Cobalt/GPUProc/src/Correlator.cl b/RTCP/Cobalt/GPUProc/src/Correlator.cl
index 948ddbc963df9deae3908407fe0dadcce30fb8b4..c8d368c7f29a44a47deb3d1f46ef13ef395a40c1 100644
--- a/RTCP/Cobalt/GPUProc/src/Correlator.cl
+++ b/RTCP/Cobalt/GPUProc/src/Correlator.cl
@@ -1,19 +1,19 @@
 #include "math.cl"
 
-#define NR_BASELINES	 (NR_STATIONS * (NR_STATIONS + 1) / 2)
+#define NR_BASELINES     (NR_STATIONS * (NR_STATIONS + 1) / 2)
 
 #if NR_STATIONS == 288
 #if defined NVIDIA_CUDA
-#define BLOCK_SIZE	 8
+#define BLOCK_SIZE       8
 #elif NR_SAMPLES_PER_CHANNEL % 6 == 0
-#define BLOCK_SIZE	 6
+#define BLOCK_SIZE       6
 #else
-#define BLOCK_SIZE	 4
+#define BLOCK_SIZE       4
 #endif
 #elif NR_SAMPLES_PER_CHANNEL % 24 == 0
-#define BLOCK_SIZE	 24
+#define BLOCK_SIZE       24
 #else
-#define BLOCK_SIZE	 16
+#define BLOCK_SIZE       16
 #endif
 
 typedef __global fcomplex2 (*CorrectedDataType)[NR_STATIONS][NR_CHANNELS][NR_SAMPLES_PER_CHANNEL];
@@ -23,18 +23,18 @@ typedef __global fcomplex4 (*VisibilitiesType)[NR_BASELINES][NR_CHANNELS];
 //#pragma OPENCL EXTENSION cl_intel_printf : enable
 
 __kernel void correlate(__global void *visibilitiesPtr,
-			__global const void *correctedDataPtr
-)
+                        __global const void *correctedDataPtr
+                        )
 {
-  VisibilitiesType visibilities	= (VisibilitiesType) visibilitiesPtr;
+  VisibilitiesType visibilities = (VisibilitiesType) visibilitiesPtr;
   CorrectedDataType correctedData = (CorrectedDataType) correctedDataPtr;
 
   __local float samples[4][BLOCK_SIZE][NR_STATIONS | 1]; // avoid power-of-2
 
-  uint baseline	    = get_global_id(0);
-  uint channel	    = get_global_id(1) + 1;
-  uint stat_0	    = convert_uint_rtz(sqrt(convert_float(8 * baseline + 1)) - 0.99999f) / 2;
-  uint stat_A	    = baseline - stat_0 * (stat_0 + 1) / 2;
+  uint baseline = get_global_id(0);
+  uint channel = get_global_id(1) + 1;
+  uint stat_0 = convert_uint_rtz(sqrt(convert_float(8 * baseline + 1)) - 0.99999f) / 2;
+  uint stat_A = baseline - stat_0 * (stat_0 + 1) / 2;
 
   float4 visR = (float4) 0, visI = (float4) 0;
 
@@ -56,8 +56,8 @@ __kernel void correlate(__global void *visibilitiesPtr,
 
     // compute correlations
     if (baseline < NR_BASELINES) {
-      for (uint time = 0; time < BLOCK_SIZE; time ++) {
-	fcomplex2 sample_1, sample_A;
+      for (uint time = 0; time < BLOCK_SIZE; time++) {
+        fcomplex2 sample_1, sample_A;
         sample_1.x = samples[0][time][stat_0];
         sample_1.y = samples[1][time][stat_0];
         sample_1.z = samples[2][time][stat_0];
@@ -67,10 +67,10 @@ __kernel void correlate(__global void *visibilitiesPtr,
         sample_A.z = samples[2][time][stat_A];
         sample_A.w = samples[3][time][stat_A];
 
-	visR += sample_1.xxzz * sample_A.xzxz;
-	visI += sample_1.yyww * sample_A.xzxz;
-	visR += sample_1.yyww * sample_A.ywyw;
-	visI -= sample_1.xxzz * sample_A.ywyw;
+        visR += sample_1.xxzz * sample_A.xzxz;
+        visI += sample_1.yyww * sample_A.xzxz;
+        visR += sample_1.yyww * sample_A.ywyw;
+        visI -= sample_1.xxzz * sample_A.ywyw;
       }
     }
 
@@ -84,21 +84,21 @@ __kernel void correlate(__global void *visibilitiesPtr,
 
 
 __kernel void correlate_2x2(__global void *visibilitiesPtr,
-			    __global const void *correctedDataPtr
-)
+                            __global const void *correctedDataPtr
+                            )
 {
-  VisibilitiesType visibilities	= (VisibilitiesType) visibilitiesPtr;
+  VisibilitiesType visibilities = (VisibilitiesType) visibilitiesPtr;
   CorrectedDataType correctedData = (CorrectedDataType) correctedDataPtr;
 
   __local fcomplex2 samples[2][BLOCK_SIZE][(NR_STATIONS + 1) / 2 | 1]; // avoid power-of-2
 
-  uint channel	    = get_global_id(1) + 1;
-  uint block	    = get_global_id(0);
+  uint channel = get_global_id(1) + 1;
+  uint block = get_global_id(0);
 
-  uint x	    = convert_uint_rtz(sqrt(convert_float(8 * block + 1)) - 0.99999f) / 2;
-  uint y	    = block - x * (x + 1) / 2;
+  uint x = convert_uint_rtz(sqrt(convert_float(8 * block + 1)) - 0.99999f) / 2;
+  uint y = block - x * (x + 1) / 2;
 
-  uint stat_A	    = 2 * x;
+  uint stat_A = 2 * x;
 
   bool compute_correlations = stat_A < NR_STATIONS;
 
@@ -120,29 +120,29 @@ __kernel void correlate_2x2(__global void *visibilitiesPtr,
     barrier(CLK_LOCAL_MEM_FENCE);
 
     if (compute_correlations) {
-      for (uint time = 0; time < BLOCK_SIZE; time ++) {
-	float4 sample_0 = samples[0][time][y];
-	float4 sample_A = samples[0][time][x];
-	float4 sample_B = samples[1][time][x];
-	float4 sample_1 = samples[1][time][y];
-
-	vis_0A_r += sample_0.xxzz * sample_A.xzxz;
-	vis_0A_i += sample_0.yyww * sample_A.xzxz;
-	vis_0B_r += sample_0.xxzz * sample_B.xzxz;
-	vis_0B_i += sample_0.yyww * sample_B.xzxz;
-	vis_1A_r += sample_1.xxzz * sample_A.xzxz;
-	vis_1A_i += sample_1.yyww * sample_A.xzxz;
-	vis_1B_r += sample_1.xxzz * sample_B.xzxz;
-	vis_1B_i += sample_1.yyww * sample_B.xzxz;
-
-	vis_0A_r += sample_0.yyww * sample_A.ywyw;
-	vis_0A_i -= sample_0.xxzz * sample_A.ywyw;
-	vis_0B_r += sample_0.yyww * sample_B.ywyw;
-	vis_0B_i -= sample_0.xxzz * sample_B.ywyw;
-	vis_1A_r += sample_1.yyww * sample_A.ywyw;
-	vis_1A_i -= sample_1.xxzz * sample_A.ywyw;
-	vis_1B_r += sample_1.yyww * sample_B.ywyw;
-	vis_1B_i -= sample_1.xxzz * sample_B.ywyw;
+      for (uint time = 0; time < BLOCK_SIZE; time++) {
+        float4 sample_0 = samples[0][time][y];
+        float4 sample_A = samples[0][time][x];
+        float4 sample_B = samples[1][time][x];
+        float4 sample_1 = samples[1][time][y];
+
+        vis_0A_r += sample_0.xxzz * sample_A.xzxz;
+        vis_0A_i += sample_0.yyww * sample_A.xzxz;
+        vis_0B_r += sample_0.xxzz * sample_B.xzxz;
+        vis_0B_i += sample_0.yyww * sample_B.xzxz;
+        vis_1A_r += sample_1.xxzz * sample_A.xzxz;
+        vis_1A_i += sample_1.yyww * sample_A.xzxz;
+        vis_1B_r += sample_1.xxzz * sample_B.xzxz;
+        vis_1B_i += sample_1.yyww * sample_B.xzxz;
+
+        vis_0A_r += sample_0.yyww * sample_A.ywyw;
+        vis_0A_i -= sample_0.xxzz * sample_A.ywyw;
+        vis_0B_r += sample_0.yyww * sample_B.ywyw;
+        vis_0B_i -= sample_0.xxzz * sample_B.ywyw;
+        vis_1A_r += sample_1.yyww * sample_A.ywyw;
+        vis_1A_i -= sample_1.xxzz * sample_A.ywyw;
+        vis_1B_r += sample_1.yyww * sample_B.ywyw;
+        vis_1B_i -= sample_1.xxzz * sample_B.ywyw;
       }
     }
 
@@ -150,9 +150,9 @@ __kernel void correlate_2x2(__global void *visibilitiesPtr,
   }
 
   // write visibilities
-  uint stat_0	    = 2 * y;
-  uint stat_1	    = stat_0 + 1;
-  uint stat_B	    = stat_A + 1;
+  uint stat_0 = 2 * y;
+  uint stat_1 = stat_0 + 1;
+  uint stat_B = stat_A + 1;
   bool do_baseline_0A = stat_A < NR_STATIONS;
   bool do_baseline_0B = stat_B < NR_STATIONS;
   bool do_baseline_1A = do_baseline_0A && stat_1 <= stat_A;
@@ -181,21 +181,21 @@ __kernel void correlate_2x2(__global void *visibilitiesPtr,
 
 
 __kernel void correlate_3x3(__global void *visibilitiesPtr,
-			    __global const void *correctedDataPtr
-)
+                            __global const void *correctedDataPtr
+                            )
 {
-  VisibilitiesType visibilities	= (VisibilitiesType) visibilitiesPtr;
+  VisibilitiesType visibilities = (VisibilitiesType) visibilitiesPtr;
   CorrectedDataType correctedData = (CorrectedDataType) correctedDataPtr;
 
   __local fcomplex2 samples[3][BLOCK_SIZE][(NR_STATIONS + 2) / 3 | 1]; // avoid power-of-2
 
-  uint channel	    = get_global_id(1) + 1;
-  uint block	    = get_global_id(0);
+  uint channel = get_global_id(1) + 1;
+  uint block = get_global_id(0);
 
-  uint x	    = convert_uint_rtz(sqrt(convert_float(8 * block + 1)) - 0.99999f) / 2;
-  uint y	    = block - x * (x + 1) / 2;
+  uint x = convert_uint_rtz(sqrt(convert_float(8 * block + 1)) - 0.99999f) / 2;
+  uint y = block - x * (x + 1) / 2;
 
-  uint stat_A	    = 3 * x;
+  uint stat_A = 3 * x;
 
   bool compute_correlations = stat_A < NR_STATIONS;
 
@@ -222,51 +222,51 @@ __kernel void correlate_3x3(__global void *visibilitiesPtr,
     barrier(CLK_LOCAL_MEM_FENCE);
 
     if (compute_correlations) {
-      for (uint time = 0; time < BLOCK_SIZE; time ++) {
-	fcomplex2 sample_0 = samples[0][time][y];
-	fcomplex2 sample_A = samples[0][time][x];
-	fcomplex2 sample_B = samples[1][time][x];
-	fcomplex2 sample_C = samples[2][time][x];
-	fcomplex2 sample_1 = samples[1][time][y];
-	fcomplex2 sample_2 = samples[2][time][y];
-
-	vis_0A_r += sample_0.xxzz * sample_A.xzxz;
-	vis_0A_i += sample_0.yyww * sample_A.xzxz;
-	vis_0B_r += sample_0.xxzz * sample_B.xzxz;
-	vis_0B_i += sample_0.yyww * sample_B.xzxz;
-	vis_0C_r += sample_0.xxzz * sample_C.xzxz;
-	vis_0C_i += sample_0.yyww * sample_C.xzxz;
-	vis_1A_r += sample_1.xxzz * sample_A.xzxz;
-	vis_1A_i += sample_1.yyww * sample_A.xzxz;
-	vis_1B_r += sample_1.xxzz * sample_B.xzxz;
-	vis_1B_i += sample_1.yyww * sample_B.xzxz;
-	vis_1C_r += sample_1.xxzz * sample_C.xzxz;
-	vis_1C_i += sample_1.yyww * sample_C.xzxz;
-	vis_2A_r += sample_2.xxzz * sample_A.xzxz;
-	vis_2A_i += sample_2.yyww * sample_A.xzxz;
-	vis_2B_r += sample_2.xxzz * sample_B.xzxz;
-	vis_2B_i += sample_2.yyww * sample_B.xzxz;
-	vis_2C_r += sample_2.xxzz * sample_C.xzxz;
-	vis_2C_i += sample_2.yyww * sample_C.xzxz;
-
-	vis_0A_r += sample_0.yyww * sample_A.ywyw;
-	vis_0A_i -= sample_0.xxzz * sample_A.ywyw;
-	vis_0B_r += sample_0.yyww * sample_B.ywyw;
-	vis_0B_i -= sample_0.xxzz * sample_B.ywyw;
-	vis_0C_r += sample_0.yyww * sample_C.ywyw;
-	vis_0C_i -= sample_0.xxzz * sample_C.ywyw;
-	vis_1A_r += sample_1.yyww * sample_A.ywyw;
-	vis_1A_i -= sample_1.xxzz * sample_A.ywyw;
-	vis_1B_r += sample_1.yyww * sample_B.ywyw;
-	vis_1B_i -= sample_1.xxzz * sample_B.ywyw;
-	vis_1C_r += sample_1.yyww * sample_C.ywyw;
-	vis_1C_i -= sample_1.xxzz * sample_C.ywyw;
-	vis_2A_r += sample_2.yyww * sample_A.ywyw;
-	vis_2A_i -= sample_2.xxzz * sample_A.ywyw;
-	vis_2B_r += sample_2.yyww * sample_B.ywyw;
-	vis_2B_i -= sample_2.xxzz * sample_B.ywyw;
-	vis_2C_r += sample_2.yyww * sample_C.ywyw;
-	vis_2C_i -= sample_2.xxzz * sample_C.ywyw;
+      for (uint time = 0; time < BLOCK_SIZE; time++) {
+        fcomplex2 sample_0 = samples[0][time][y];
+        fcomplex2 sample_A = samples[0][time][x];
+        fcomplex2 sample_B = samples[1][time][x];
+        fcomplex2 sample_C = samples[2][time][x];
+        fcomplex2 sample_1 = samples[1][time][y];
+        fcomplex2 sample_2 = samples[2][time][y];
+
+        vis_0A_r += sample_0.xxzz * sample_A.xzxz;
+        vis_0A_i += sample_0.yyww * sample_A.xzxz;
+        vis_0B_r += sample_0.xxzz * sample_B.xzxz;
+        vis_0B_i += sample_0.yyww * sample_B.xzxz;
+        vis_0C_r += sample_0.xxzz * sample_C.xzxz;
+        vis_0C_i += sample_0.yyww * sample_C.xzxz;
+        vis_1A_r += sample_1.xxzz * sample_A.xzxz;
+        vis_1A_i += sample_1.yyww * sample_A.xzxz;
+        vis_1B_r += sample_1.xxzz * sample_B.xzxz;
+        vis_1B_i += sample_1.yyww * sample_B.xzxz;
+        vis_1C_r += sample_1.xxzz * sample_C.xzxz;
+        vis_1C_i += sample_1.yyww * sample_C.xzxz;
+        vis_2A_r += sample_2.xxzz * sample_A.xzxz;
+        vis_2A_i += sample_2.yyww * sample_A.xzxz;
+        vis_2B_r += sample_2.xxzz * sample_B.xzxz;
+        vis_2B_i += sample_2.yyww * sample_B.xzxz;
+        vis_2C_r += sample_2.xxzz * sample_C.xzxz;
+        vis_2C_i += sample_2.yyww * sample_C.xzxz;
+
+        vis_0A_r += sample_0.yyww * sample_A.ywyw;
+        vis_0A_i -= sample_0.xxzz * sample_A.ywyw;
+        vis_0B_r += sample_0.yyww * sample_B.ywyw;
+        vis_0B_i -= sample_0.xxzz * sample_B.ywyw;
+        vis_0C_r += sample_0.yyww * sample_C.ywyw;
+        vis_0C_i -= sample_0.xxzz * sample_C.ywyw;
+        vis_1A_r += sample_1.yyww * sample_A.ywyw;
+        vis_1A_i -= sample_1.xxzz * sample_A.ywyw;
+        vis_1B_r += sample_1.yyww * sample_B.ywyw;
+        vis_1B_i -= sample_1.xxzz * sample_B.ywyw;
+        vis_1C_r += sample_1.yyww * sample_C.ywyw;
+        vis_1C_i -= sample_1.xxzz * sample_C.ywyw;
+        vis_2A_r += sample_2.yyww * sample_A.ywyw;
+        vis_2A_i -= sample_2.xxzz * sample_A.ywyw;
+        vis_2B_r += sample_2.yyww * sample_B.ywyw;
+        vis_2B_i -= sample_2.xxzz * sample_B.ywyw;
+        vis_2C_r += sample_2.yyww * sample_C.ywyw;
+        vis_2C_i -= sample_2.xxzz * sample_C.ywyw;
       }
     }
 
@@ -274,11 +274,11 @@ __kernel void correlate_3x3(__global void *visibilitiesPtr,
   }
 
   // write visibilities
-  uint stat_0	    = 3 * y;
-  uint stat_1	    = stat_0 + 1;
-  uint stat_2	    = stat_0 + 2;
-  uint stat_B	    = stat_A + 1;
-  uint stat_C	    = stat_A + 2;
+  uint stat_0 = 3 * y;
+  uint stat_1 = stat_0 + 1;
+  uint stat_2 = stat_0 + 2;
+  uint stat_B = stat_A + 1;
+  uint stat_C = stat_A + 2;
 
   bool do_baseline_0A = stat_0 < NR_STATIONS && stat_A < NR_STATIONS && stat_0 <= stat_A;
   bool do_baseline_0B = stat_0 < NR_STATIONS && stat_B < NR_STATIONS && stat_0 <= stat_B;
@@ -338,21 +338,21 @@ __kernel void correlate_3x3(__global void *visibilitiesPtr,
 
 
 __kernel void correlate_4x4(__global void *visibilitiesPtr,
-			    __global const void *correctedDataPtr
-)
+                            __global const void *correctedDataPtr
+                            )
 {
-  VisibilitiesType visibilities	= (VisibilitiesType) visibilitiesPtr;
+  VisibilitiesType visibilities = (VisibilitiesType) visibilitiesPtr;
   CorrectedDataType correctedData = (CorrectedDataType) correctedDataPtr;
 
   __local fcomplex2 samples[4][BLOCK_SIZE][(NR_STATIONS + 3) / 4 | 1]; // avoid power-of-2
 
-  uint channel	    = get_global_id(1) + 1;
-  uint block	    = get_global_id(0);
+  uint channel = get_global_id(1) + 1;
+  uint block = get_global_id(0);
 
-  uint x	    = convert_uint_rtz(sqrt(convert_float(8 * block + 1)) - 0.99999f) / 2;
-  uint y	    = block - x * (x + 1) / 2;
+  uint x = convert_uint_rtz(sqrt(convert_float(8 * block + 1)) - 0.99999f) / 2;
+  uint y = block - x * (x + 1) / 2;
 
-  uint stat_A	    = 4 * x;
+  uint stat_A = 4 * x;
 
   bool compute_correlations = stat_A < NR_STATIONS;
 
@@ -386,81 +386,81 @@ __kernel void correlate_4x4(__global void *visibilitiesPtr,
     barrier(CLK_LOCAL_MEM_FENCE);
 
     if (compute_correlations) {
-      for (uint time = 0; time < BLOCK_SIZE; time ++) {
-	fcomplex2 sample_0 = samples[0][time][y];
-	fcomplex2 sample_A = samples[0][time][x];
-	fcomplex2 sample_B = samples[1][time][x];
-	fcomplex2 sample_C = samples[2][time][x];
-	fcomplex2 sample_D = samples[3][time][x];
-	fcomplex2 sample_1 = samples[1][time][y];
-	fcomplex2 sample_2 = samples[2][time][y];
-	fcomplex2 sample_3 = samples[3][time][y];
-
-	vis_0A_r += sample_0.xxzz * sample_A.xzxz;
-	vis_0A_i += sample_0.yyww * sample_A.xzxz;
-	vis_0B_r += sample_0.xxzz * sample_B.xzxz;
-	vis_0B_i += sample_0.yyww * sample_B.xzxz;
-	vis_0C_r += sample_0.xxzz * sample_C.xzxz;
-	vis_0C_i += sample_0.yyww * sample_C.xzxz;
-	vis_0D_r += sample_0.xxzz * sample_D.xzxz;
-	vis_0D_i += sample_0.yyww * sample_D.xzxz;
-	vis_1A_r += sample_1.xxzz * sample_A.xzxz;
-	vis_1A_i += sample_1.yyww * sample_A.xzxz;
-	vis_1B_r += sample_1.xxzz * sample_B.xzxz;
-	vis_1B_i += sample_1.yyww * sample_B.xzxz;
-	vis_1C_r += sample_1.xxzz * sample_C.xzxz;
-	vis_1C_i += sample_1.yyww * sample_C.xzxz;
-	vis_1D_r += sample_1.xxzz * sample_D.xzxz;
-	vis_1D_i += sample_1.yyww * sample_D.xzxz;
-	vis_2A_r += sample_2.xxzz * sample_A.xzxz;
-	vis_2A_i += sample_2.yyww * sample_A.xzxz;
-	vis_2B_r += sample_2.xxzz * sample_B.xzxz;
-	vis_2B_i += sample_2.yyww * sample_B.xzxz;
-	vis_2C_r += sample_2.xxzz * sample_C.xzxz;
-	vis_2C_i += sample_2.yyww * sample_C.xzxz;
-	vis_2D_r += sample_2.xxzz * sample_D.xzxz;
-	vis_2D_i += sample_2.yyww * sample_D.xzxz;
-	vis_3A_r += sample_3.xxzz * sample_A.xzxz;
-	vis_3A_i += sample_3.yyww * sample_A.xzxz;
-	vis_3B_r += sample_3.xxzz * sample_B.xzxz;
-	vis_3B_i += sample_3.yyww * sample_B.xzxz;
-	vis_3C_r += sample_3.xxzz * sample_C.xzxz;
-	vis_3C_i += sample_3.yyww * sample_C.xzxz;
-	vis_3D_r += sample_3.xxzz * sample_D.xzxz;
-	vis_3D_i += sample_3.yyww * sample_D.xzxz;
-
-	vis_0A_r += sample_0.yyww * sample_A.ywyw;
-	vis_0A_i -= sample_0.xxzz * sample_A.ywyw;
-	vis_0B_r += sample_0.yyww * sample_B.ywyw;
-	vis_0B_i -= sample_0.xxzz * sample_B.ywyw;
-	vis_0C_r += sample_0.yyww * sample_C.ywyw;
-	vis_0C_i -= sample_0.xxzz * sample_C.ywyw;
-	vis_0D_r += sample_0.yyww * sample_D.ywyw;
-	vis_0D_i -= sample_0.xxzz * sample_D.ywyw;
-	vis_1A_r += sample_1.yyww * sample_A.ywyw;
-	vis_1A_i -= sample_1.xxzz * sample_A.ywyw;
-	vis_1B_r += sample_1.yyww * sample_B.ywyw;
-	vis_1B_i -= sample_1.xxzz * sample_B.ywyw;
-	vis_1C_r += sample_1.yyww * sample_C.ywyw;
-	vis_1C_i -= sample_1.xxzz * sample_C.ywyw;
-	vis_1D_r += sample_1.yyww * sample_D.ywyw;
-	vis_1D_i -= sample_1.xxzz * sample_D.ywyw;
-	vis_2A_r += sample_2.yyww * sample_A.ywyw;
-	vis_2A_i -= sample_2.xxzz * sample_A.ywyw;
-	vis_2B_r += sample_2.yyww * sample_B.ywyw;
-	vis_2B_i -= sample_2.xxzz * sample_B.ywyw;
-	vis_2C_r += sample_2.yyww * sample_C.ywyw;
-	vis_2C_i -= sample_2.xxzz * sample_C.ywyw;
-	vis_2D_r += sample_2.yyww * sample_D.ywyw;
-	vis_2D_i -= sample_2.xxzz * sample_D.ywyw;
-	vis_3A_r += sample_3.yyww * sample_A.ywyw;
-	vis_3A_i -= sample_3.xxzz * sample_A.ywyw;
-	vis_3B_r += sample_3.yyww * sample_B.ywyw;
-	vis_3B_i -= sample_3.xxzz * sample_B.ywyw;
-	vis_3C_r += sample_3.yyww * sample_C.ywyw;
-	vis_3C_i -= sample_3.xxzz * sample_C.ywyw;
-	vis_3D_r += sample_3.yyww * sample_D.ywyw;
-	vis_3D_i -= sample_3.xxzz * sample_D.ywyw;
+      for (uint time = 0; time < BLOCK_SIZE; time++) {
+        fcomplex2 sample_0 = samples[0][time][y];
+        fcomplex2 sample_A = samples[0][time][x];
+        fcomplex2 sample_B = samples[1][time][x];
+        fcomplex2 sample_C = samples[2][time][x];
+        fcomplex2 sample_D = samples[3][time][x];
+        fcomplex2 sample_1 = samples[1][time][y];
+        fcomplex2 sample_2 = samples[2][time][y];
+        fcomplex2 sample_3 = samples[3][time][y];
+
+        vis_0A_r += sample_0.xxzz * sample_A.xzxz;
+        vis_0A_i += sample_0.yyww * sample_A.xzxz;
+        vis_0B_r += sample_0.xxzz * sample_B.xzxz;
+        vis_0B_i += sample_0.yyww * sample_B.xzxz;
+        vis_0C_r += sample_0.xxzz * sample_C.xzxz;
+        vis_0C_i += sample_0.yyww * sample_C.xzxz;
+        vis_0D_r += sample_0.xxzz * sample_D.xzxz;
+        vis_0D_i += sample_0.yyww * sample_D.xzxz;
+        vis_1A_r += sample_1.xxzz * sample_A.xzxz;
+        vis_1A_i += sample_1.yyww * sample_A.xzxz;
+        vis_1B_r += sample_1.xxzz * sample_B.xzxz;
+        vis_1B_i += sample_1.yyww * sample_B.xzxz;
+        vis_1C_r += sample_1.xxzz * sample_C.xzxz;
+        vis_1C_i += sample_1.yyww * sample_C.xzxz;
+        vis_1D_r += sample_1.xxzz * sample_D.xzxz;
+        vis_1D_i += sample_1.yyww * sample_D.xzxz;
+        vis_2A_r += sample_2.xxzz * sample_A.xzxz;
+        vis_2A_i += sample_2.yyww * sample_A.xzxz;
+        vis_2B_r += sample_2.xxzz * sample_B.xzxz;
+        vis_2B_i += sample_2.yyww * sample_B.xzxz;
+        vis_2C_r += sample_2.xxzz * sample_C.xzxz;
+        vis_2C_i += sample_2.yyww * sample_C.xzxz;
+        vis_2D_r += sample_2.xxzz * sample_D.xzxz;
+        vis_2D_i += sample_2.yyww * sample_D.xzxz;
+        vis_3A_r += sample_3.xxzz * sample_A.xzxz;
+        vis_3A_i += sample_3.yyww * sample_A.xzxz;
+        vis_3B_r += sample_3.xxzz * sample_B.xzxz;
+        vis_3B_i += sample_3.yyww * sample_B.xzxz;
+        vis_3C_r += sample_3.xxzz * sample_C.xzxz;
+        vis_3C_i += sample_3.yyww * sample_C.xzxz;
+        vis_3D_r += sample_3.xxzz * sample_D.xzxz;
+        vis_3D_i += sample_3.yyww * sample_D.xzxz;
+
+        vis_0A_r += sample_0.yyww * sample_A.ywyw;
+        vis_0A_i -= sample_0.xxzz * sample_A.ywyw;
+        vis_0B_r += sample_0.yyww * sample_B.ywyw;
+        vis_0B_i -= sample_0.xxzz * sample_B.ywyw;
+        vis_0C_r += sample_0.yyww * sample_C.ywyw;
+        vis_0C_i -= sample_0.xxzz * sample_C.ywyw;
+        vis_0D_r += sample_0.yyww * sample_D.ywyw;
+        vis_0D_i -= sample_0.xxzz * sample_D.ywyw;
+        vis_1A_r += sample_1.yyww * sample_A.ywyw;
+        vis_1A_i -= sample_1.xxzz * sample_A.ywyw;
+        vis_1B_r += sample_1.yyww * sample_B.ywyw;
+        vis_1B_i -= sample_1.xxzz * sample_B.ywyw;
+        vis_1C_r += sample_1.yyww * sample_C.ywyw;
+        vis_1C_i -= sample_1.xxzz * sample_C.ywyw;
+        vis_1D_r += sample_1.yyww * sample_D.ywyw;
+        vis_1D_i -= sample_1.xxzz * sample_D.ywyw;
+        vis_2A_r += sample_2.yyww * sample_A.ywyw;
+        vis_2A_i -= sample_2.xxzz * sample_A.ywyw;
+        vis_2B_r += sample_2.yyww * sample_B.ywyw;
+        vis_2B_i -= sample_2.xxzz * sample_B.ywyw;
+        vis_2C_r += sample_2.yyww * sample_C.ywyw;
+        vis_2C_i -= sample_2.xxzz * sample_C.ywyw;
+        vis_2D_r += sample_2.yyww * sample_D.ywyw;
+        vis_2D_i -= sample_2.xxzz * sample_D.ywyw;
+        vis_3A_r += sample_3.yyww * sample_A.ywyw;
+        vis_3A_i -= sample_3.xxzz * sample_A.ywyw;
+        vis_3B_r += sample_3.yyww * sample_B.ywyw;
+        vis_3B_i -= sample_3.xxzz * sample_B.ywyw;
+        vis_3C_r += sample_3.yyww * sample_C.ywyw;
+        vis_3C_i -= sample_3.xxzz * sample_C.ywyw;
+        vis_3D_r += sample_3.yyww * sample_D.ywyw;
+        vis_3D_i -= sample_3.xxzz * sample_D.ywyw;
       }
     }
 
@@ -468,13 +468,13 @@ __kernel void correlate_4x4(__global void *visibilitiesPtr,
   }
 
   // write visibilities
-  uint stat_0	    = 4 * y;
-  uint stat_1	    = stat_0 + 1;
-  uint stat_2	    = stat_0 + 2;
-  uint stat_3	    = stat_0 + 3;
-  uint stat_B	    = stat_A + 1;
-  uint stat_C	    = stat_A + 2;
-  uint stat_D	    = stat_A + 3;
+  uint stat_0 = 4 * y;
+  uint stat_1 = stat_0 + 1;
+  uint stat_2 = stat_0 + 2;
+  uint stat_3 = stat_0 + 3;
+  uint stat_B = stat_A + 1;
+  uint stat_C = stat_A + 2;
+  uint stat_D = stat_A + 3;
 
   bool do_baseline_0A = stat_0 < NR_STATIONS && stat_A < NR_STATIONS && stat_0 <= stat_A;
   bool do_baseline_0B = stat_0 < NR_STATIONS && stat_B < NR_STATIONS && stat_0 <= stat_B;
diff --git a/RTCP/Cobalt/GPUProc/src/DelayAndBandPass.cl b/RTCP/Cobalt/GPUProc/src/DelayAndBandPass.cl
index 2ac1e4c9f00944b08fdbd68159aaec94c1f39663..06e0d640b15be71a37cb305247d6db6739da75c9 100644
--- a/RTCP/Cobalt/GPUProc/src/DelayAndBandPass.cl
+++ b/RTCP/Cobalt/GPUProc/src/DelayAndBandPass.cl
@@ -53,11 +53,11 @@ typedef __global const float (*restrict BandPassFactorsType)[NR_CHANNELS];
  *   hence it can be fully compensated for.
  * - Transpose the data so that the time slices for each channel are placed
  *   consecutively in memory.
- * 
+ *
  * @param[out] correctedDataPtr    pointer to output data of ::OutputDataType,
  *                                 a 3D array [station][channel][sample]
  *                                 of ::fcomplex2 (2 complex polarizations)
- * @param[in]  filteredDataPtr     pointer to input data; this can either be a 
+ * @param[in]  filteredDataPtr     pointer to input data; this can either be a
  *                                 4D array [station][polarization][sample][channel]
  *                                 of ::fcomplex, or a 2D array [station][subband]
  *                                 of ::short_complex2 or ::char_complex2,
@@ -72,7 +72,7 @@ typedef __global const float (*restrict BandPassFactorsType)[NR_CHANNELS];
  *                                 a 2D array [beam][station] of float2 (real:
  *                                 2 polarizations), containing delays in
  *                                 seconds after end of integration period
- * @param[in]  phaseOffsetsPtr     pointer to phase offset data of 
+ * @param[in]  phaseOffsetsPtr     pointer to phase offset data of
  *                                 ::PhaseOffsetsType, a 1D array [station] of
  *                                 float2 (real: 2 polarizations), containing
  *                                 phase offsets in radians
@@ -82,13 +82,13 @@ typedef __global const float (*restrict BandPassFactorsType)[NR_CHANNELS];
  */
 __kernel __attribute__((reqd_work_group_size(16 * 16, 1, 1)))
 void applyDelaysAndCorrectBandPass(__global fcomplex *restrict correctedDataPtr,
-				   __global const fcomplex *restrict filteredDataPtr,
-				   float subbandFrequency,
-				   unsigned beam,
-				   __global const float2 *restrict delaysAtBeginPtr,
-				   __global const float2 *restrict delaysAfterEndPtr,
-				   __global const float2 *restrict phaseOffsetsPtr,
-				   __global const float *restrict bandPassFactorsPtr)
+                                   __global const fcomplex *restrict filteredDataPtr,
+                                   float subbandFrequency,
+                                   unsigned beam,
+                                   __global const float2 *restrict delaysAtBeginPtr,
+                                   __global const float2 *restrict delaysAfterEndPtr,
+                                   __global const float2 *restrict phaseOffsetsPtr,
+                                   __global const float *restrict bandPassFactorsPtr)
 {
   OutputDataType outputData = (OutputDataType) correctedDataPtr;
   InputDataType inputData = (InputDataType) filteredDataPtr;
@@ -101,11 +101,11 @@ void applyDelaysAndCorrectBandPass(__global fcomplex *restrict correctedDataPtr,
 
   __local fcomplex2 tmp[16][17]; // one too wide to allow coalesced reads
 
-  uint major	   = get_global_id(0) / 16;
-  uint minor	   = get_global_id(0) % 16;
-  uint channel	   = get_global_id(1) * 16;
+  uint major = get_global_id(0) / 16;
+  uint minor = get_global_id(0) % 16;
+  uint channel = get_global_id(1) * 16;
 #endif
-  uint station	   = get_global_id(2);
+  uint station = get_global_id(2);
 
 #if defined DELAY_COMPENSATION
 #if NR_CHANNELS == 1
@@ -116,7 +116,7 @@ void applyDelaysAndCorrectBandPass(__global fcomplex *restrict correctedDataPtr,
   float2 delayAtBegin = (*delaysAtBegin)[beam][station];
   float2 delayAfterEnd = (*delaysAfterEnd)[beam][station];
   float2 phiBegin = -2 * 3.1415926535f * delayAtBegin;
-  float2 phiEnd   = -2 * 3.1415926535f * delayAfterEnd;
+  float2 phiEnd = -2 * 3.1415926535f * delayAfterEnd;
   float2 deltaPhi = (phiEnd - phiBegin) / NR_SAMPLES_PER_CHANNEL;
 #if NR_CHANNELS == 1
   float2 myPhiBegin = (phiBegin + get_local_id(0) * deltaPhi) * frequency + (*phaseOffsets)[station];
diff --git a/RTCP/Cobalt/GPUProc/src/FFT.cl b/RTCP/Cobalt/GPUProc/src/FFT.cl
index d235a8c89095853d855579e1753869bd56bd2244..f96b0241d9786d24842b8e4f23fe60c1dd3bdb6d 100644
--- a/RTCP/Cobalt/GPUProc/src/FFT.cl
+++ b/RTCP/Cobalt/GPUProc/src/FFT.cl
@@ -8,45 +8,45 @@
 #define conjTransp(a) ((float2)(-(a).y, (a).x))
 
 #define fftKernel2(a,dir) \
-{ \
+  { \
     float2 c = (a)[0];    \
     (a)[0] = c + (a)[1];  \
     (a)[1] = c - (a)[1];  \
-}
+  }
 
 #define fftKernel2S(d1,d2,dir) \
-{ \
+  { \
     float2 c = (d1);   \
     (d1) = c + (d2);   \
     (d2) = c - (d2);   \
-}
+  }
 
 #define fftKernel4(a,dir) \
-{ \
+  { \
     fftKernel2S((a)[0], (a)[2], dir); \
     fftKernel2S((a)[1], (a)[3], dir); \
     fftKernel2S((a)[0], (a)[1], dir); \
-    (a)[3] = (float2)(dir)*(conjTransp((a)[3])); \
+    (a)[3] = (float2)(dir) * (conjTransp((a)[3])); \
     fftKernel2S((a)[2], (a)[3], dir); \
     float2 c = (a)[1]; \
     (a)[1] = (a)[2]; \
     (a)[2] = c; \
-}
+  }
 
 #define fftKernel4s(a0,a1,a2,a3,dir) \
-{ \
+  { \
     fftKernel2S((a0), (a2), dir); \
     fftKernel2S((a1), (a3), dir); \
     fftKernel2S((a0), (a1), dir); \
-    (a3) = (float2)(dir)*(conjTransp((a3))); \
+    (a3) = (float2)(dir) * (conjTransp((a3))); \
     fftKernel2S((a2), (a3), dir); \
     float2 c = (a1); \
     (a1) = (a2); \
     (a2) = c; \
-}
+  }
 
 #define bitreverse8(a) \
-{ \
+  { \
     float2 c; \
     c = (a)[1]; \
     (a)[1] = (a)[4]; \
@@ -54,46 +54,46 @@
     c = (a)[3]; \
     (a)[3] = (a)[6]; \
     (a)[6] = c; \
-}
+  }
 
 #define fftKernel8(a,dir) \
-{ \
-	const float2 w1  = (float2)(0x1.6a09e6p-1f,  dir*0x1.6a09e6p-1f);  \
-	const float2 w3  = (float2)(-0x1.6a09e6p-1f, dir*0x1.6a09e6p-1f);  \
-	float2 c; \
-	fftKernel2S((a)[0], (a)[4], dir); \
-	fftKernel2S((a)[1], (a)[5], dir); \
-	fftKernel2S((a)[2], (a)[6], dir); \
-	fftKernel2S((a)[3], (a)[7], dir); \
-	(a)[5] = complexMul(w1, (a)[5]); \
-	(a)[6] = (float2)(dir)*(conjTransp((a)[6])); \
-	(a)[7] = complexMul(w3, (a)[7]); \
-	fftKernel2S((a)[0], (a)[2], dir); \
-	fftKernel2S((a)[1], (a)[3], dir); \
-	fftKernel2S((a)[4], (a)[6], dir); \
-	fftKernel2S((a)[5], (a)[7], dir); \
-	(a)[3] = (float2)(dir)*(conjTransp((a)[3])); \
-	(a)[7] = (float2)(dir)*(conjTransp((a)[7])); \
-	fftKernel2S((a)[0], (a)[1], dir); \
-	fftKernel2S((a)[2], (a)[3], dir); \
-	fftKernel2S((a)[4], (a)[5], dir); \
-	fftKernel2S((a)[6], (a)[7], dir); \
-	bitreverse8((a)); \
-}
+  { \
+    const float2 w1 = (float2)(0x1.6a09e6p-1f,  dir * 0x1.6a09e6p-1f);  \
+    const float2 w3 = (float2)(-0x1.6a09e6p-1f, dir * 0x1.6a09e6p-1f);  \
+    float2 c; \
+    fftKernel2S((a)[0], (a)[4], dir); \
+    fftKernel2S((a)[1], (a)[5], dir); \
+    fftKernel2S((a)[2], (a)[6], dir); \
+    fftKernel2S((a)[3], (a)[7], dir); \
+    (a)[5] = complexMul(w1, (a)[5]); \
+    (a)[6] = (float2)(dir) * (conjTransp((a)[6])); \
+    (a)[7] = complexMul(w3, (a)[7]); \
+    fftKernel2S((a)[0], (a)[2], dir); \
+    fftKernel2S((a)[1], (a)[3], dir); \
+    fftKernel2S((a)[4], (a)[6], dir); \
+    fftKernel2S((a)[5], (a)[7], dir); \
+    (a)[3] = (float2)(dir) * (conjTransp((a)[3])); \
+    (a)[7] = (float2)(dir) * (conjTransp((a)[7])); \
+    fftKernel2S((a)[0], (a)[1], dir); \
+    fftKernel2S((a)[2], (a)[3], dir); \
+    fftKernel2S((a)[4], (a)[5], dir); \
+    fftKernel2S((a)[6], (a)[7], dir); \
+    bitreverse8((a)); \
+  }
 
 #define bitreverse4x4(a) \
-{ \
-	float2 c; \
-	c = (a)[1];  (a)[1]  = (a)[4];  (a)[4]  = c; \
-	c = (a)[2];  (a)[2]  = (a)[8];  (a)[8]  = c; \
-	c = (a)[3];  (a)[3]  = (a)[12]; (a)[12] = c; \
-	c = (a)[6];  (a)[6]  = (a)[9];  (a)[9]  = c; \
-	c = (a)[7];  (a)[7]  = (a)[13]; (a)[13] = c; \
-	c = (a)[11]; (a)[11] = (a)[14]; (a)[14] = c; \
-}
+  { \
+    float2 c; \
+    c = (a)[1];  (a)[1] = (a)[4];  (a)[4] = c; \
+    c = (a)[2];  (a)[2] = (a)[8];  (a)[8] = c; \
+    c = (a)[3];  (a)[3] = (a)[12]; (a)[12] = c; \
+    c = (a)[6];  (a)[6] = (a)[9];  (a)[9] = c; \
+    c = (a)[7];  (a)[7] = (a)[13]; (a)[13] = c; \
+    c = (a)[11]; (a)[11] = (a)[14]; (a)[14] = c; \
+  }
 
 #define fftKernel16(a,dir) \
-{ \
+  { \
     const float w0 = 0x1.d906bcp-1f; \
     const float w1 = 0x1.87de2ap-2f; \
     const float w2 = 0x1.6a09e6p-1f; \
@@ -101,24 +101,24 @@
     fftKernel4s((a)[1], (a)[5], (a)[9],  (a)[13], dir); \
     fftKernel4s((a)[2], (a)[6], (a)[10], (a)[14], dir); \
     fftKernel4s((a)[3], (a)[7], (a)[11], (a)[15], dir); \
-    (a)[5]  = complexMul((a)[5], (float2)(w0, dir*w1)); \
-    (a)[6]  = complexMul((a)[6], (float2)(w2, dir*w2)); \
-    (a)[7]  = complexMul((a)[7], (float2)(w1, dir*w0)); \
-    (a)[9]  = complexMul((a)[9], (float2)(w2, dir*w2)); \
-    (a)[10] = (float2)(dir)*(conjTransp((a)[10])); \
-    (a)[11] = complexMul((a)[11], (float2)(-w2, dir*w2)); \
-    (a)[13] = complexMul((a)[13], (float2)(w1, dir*w0)); \
-    (a)[14] = complexMul((a)[14], (float2)(-w2, dir*w2)); \
-    (a)[15] = complexMul((a)[15], (float2)(-w0, dir*-w1)); \
+    (a)[5] = complexMul((a)[5], (float2)(w0, dir * w1)); \
+    (a)[6] = complexMul((a)[6], (float2)(w2, dir * w2)); \
+    (a)[7] = complexMul((a)[7], (float2)(w1, dir * w0)); \
+    (a)[9] = complexMul((a)[9], (float2)(w2, dir * w2)); \
+    (a)[10] = (float2)(dir) * (conjTransp((a)[10])); \
+    (a)[11] = complexMul((a)[11], (float2)(-w2, dir * w2)); \
+    (a)[13] = complexMul((a)[13], (float2)(w1, dir * w0)); \
+    (a)[14] = complexMul((a)[14], (float2)(-w2, dir * w2)); \
+    (a)[15] = complexMul((a)[15], (float2)(-w0, dir * -w1)); \
     fftKernel4((a), dir); \
     fftKernel4((a) + 4, dir); \
     fftKernel4((a) + 8, dir); \
     fftKernel4((a) + 12, dir); \
     bitreverse4x4((a)); \
-}
+  }
 
 #define bitreverse32(a) \
-{ \
+  { \
     float2 c1, c2; \
     c1 = (a)[2];   (a)[2] = (a)[1];   c2 = (a)[4];   (a)[4] = c1;   c1 = (a)[8];   (a)[8] = c2;    c2 = (a)[16];  (a)[16] = c1;   (a)[1] = c2; \
     c1 = (a)[6];   (a)[6] = (a)[3];   c2 = (a)[12];  (a)[12] = c1;  c1 = (a)[24];  (a)[24] = c2;   c2 = (a)[17];  (a)[17] = c1;   (a)[3] = c2; \
@@ -126,10 +126,10 @@
     c1 = (a)[14];  (a)[14] = (a)[7];  c2 = (a)[28];  (a)[28] = c1;  c1 = (a)[25];  (a)[25] = c2;   c2 = (a)[19];  (a)[19] = c1;   (a)[7] = c2; \
     c1 = (a)[22];  (a)[22] = (a)[11]; c2 = (a)[13];  (a)[13] = c1;  c1 = (a)[26];  (a)[26] = c2;   c2 = (a)[21];  (a)[21] = c1;   (a)[11] = c2; \
     c1 = (a)[30];  (a)[30] = (a)[15]; c2 = (a)[29];  (a)[29] = c1;  c1 = (a)[27];  (a)[27] = c2;   c2 = (a)[23];  (a)[23] = c1;   (a)[15] = c2; \
-}
+  }
 
 #define fftKernel32(a,dir) \
-{ \
+  { \
     fftKernel2S((a)[0],  (a)[16], dir); \
     fftKernel2S((a)[1],  (a)[17], dir); \
     fftKernel2S((a)[2],  (a)[18], dir); \
@@ -146,137 +146,137 @@
     fftKernel2S((a)[13], (a)[29], dir); \
     fftKernel2S((a)[14], (a)[30], dir); \
     fftKernel2S((a)[15], (a)[31], dir); \
-    (a)[17] = complexMul((a)[17], (float2)(0x1.f6297cp-1f, dir*0x1.8f8b84p-3f)); \
-    (a)[18] = complexMul((a)[18], (float2)(0x1.d906bcp-1f, dir*0x1.87de2ap-2f)); \
-    (a)[19] = complexMul((a)[19], (float2)(0x1.a9b662p-1f, dir*0x1.1c73b4p-1f)); \
-    (a)[20] = complexMul((a)[20], (float2)(0x1.6a09e6p-1f, dir*0x1.6a09e6p-1f)); \
-    (a)[21] = complexMul((a)[21], (float2)(0x1.1c73b4p-1f, dir*0x1.a9b662p-1f)); \
-    (a)[22] = complexMul((a)[22], (float2)(0x1.87de2ap-2f, dir*0x1.d906bcp-1f)); \
-    (a)[23] = complexMul((a)[23], (float2)(0x1.8f8b84p-3f, dir*0x1.f6297cp-1f)); \
-    (a)[24] = complexMul((a)[24], (float2)(0x0p+0f, dir*0x1p+0f)); \
-    (a)[25] = complexMul((a)[25], (float2)(-0x1.8f8b84p-3f, dir*0x1.f6297cp-1f)); \
-    (a)[26] = complexMul((a)[26], (float2)(-0x1.87de2ap-2f, dir*0x1.d906bcp-1f)); \
-    (a)[27] = complexMul((a)[27], (float2)(-0x1.1c73b4p-1f, dir*0x1.a9b662p-1f)); \
-    (a)[28] = complexMul((a)[28], (float2)(-0x1.6a09e6p-1f, dir*0x1.6a09e6p-1f)); \
-    (a)[29] = complexMul((a)[29], (float2)(-0x1.a9b662p-1f, dir*0x1.1c73b4p-1f)); \
-    (a)[30] = complexMul((a)[30], (float2)(-0x1.d906bcp-1f, dir*0x1.87de2ap-2f)); \
-    (a)[31] = complexMul((a)[31], (float2)(-0x1.f6297cp-1f, dir*0x1.8f8b84p-3f)); \
+    (a)[17] = complexMul((a)[17], (float2)(0x1.f6297cp-1f, dir * 0x1.8f8b84p-3f)); \
+    (a)[18] = complexMul((a)[18], (float2)(0x1.d906bcp-1f, dir * 0x1.87de2ap-2f)); \
+    (a)[19] = complexMul((a)[19], (float2)(0x1.a9b662p-1f, dir * 0x1.1c73b4p-1f)); \
+    (a)[20] = complexMul((a)[20], (float2)(0x1.6a09e6p-1f, dir * 0x1.6a09e6p-1f)); \
+    (a)[21] = complexMul((a)[21], (float2)(0x1.1c73b4p-1f, dir * 0x1.a9b662p-1f)); \
+    (a)[22] = complexMul((a)[22], (float2)(0x1.87de2ap-2f, dir * 0x1.d906bcp-1f)); \
+    (a)[23] = complexMul((a)[23], (float2)(0x1.8f8b84p-3f, dir * 0x1.f6297cp-1f)); \
+    (a)[24] = complexMul((a)[24], (float2)(0x0p+0f, dir * 0x1p+0f)); \
+    (a)[25] = complexMul((a)[25], (float2)(-0x1.8f8b84p-3f, dir * 0x1.f6297cp-1f)); \
+    (a)[26] = complexMul((a)[26], (float2)(-0x1.87de2ap-2f, dir * 0x1.d906bcp-1f)); \
+    (a)[27] = complexMul((a)[27], (float2)(-0x1.1c73b4p-1f, dir * 0x1.a9b662p-1f)); \
+    (a)[28] = complexMul((a)[28], (float2)(-0x1.6a09e6p-1f, dir * 0x1.6a09e6p-1f)); \
+    (a)[29] = complexMul((a)[29], (float2)(-0x1.a9b662p-1f, dir * 0x1.1c73b4p-1f)); \
+    (a)[30] = complexMul((a)[30], (float2)(-0x1.d906bcp-1f, dir * 0x1.87de2ap-2f)); \
+    (a)[31] = complexMul((a)[31], (float2)(-0x1.f6297cp-1f, dir * 0x1.8f8b84p-3f)); \
     fftKernel16((a), dir); \
     fftKernel16((a) + 16, dir); \
     bitreverse32((a)); \
-}
+  }
 
 __kernel void \
-clFFT_1DTwistInterleaved(__global float2 *in, unsigned int startRow, unsigned int numCols, unsigned int N, unsigned int numRowsToProcess, int dir) \
-{ \
-   float2 a, w; \
-   float ang; \
-   unsigned int j; \
-	unsigned int i = get_global_id(0); \
-	unsigned int startIndex = i; \
-	 \
-	if(i < numCols) \
-	{ \
-	    for(j = 0; j < numRowsToProcess; j++) \
-	    { \
-	        a = in[startIndex]; \
-	        ang = 2.0f * M_PI * dir * i * (startRow + j) / N; \
-	        w = (float2)(native_cos(ang), native_sin(ang)); \
-	        a = complexMul(a, w); \
-	        in[startIndex] = a; \
-	        startIndex += numCols; \
-	    } \
-	}	 \
-} \
-__kernel void fft0(__global float2 *in_out)
+  clFFT_1DTwistInterleaved(__global float2 *in, unsigned int startRow, unsigned int numCols, unsigned int N, unsigned int numRowsToProcess, int dir) \
+  { \
+  float2 a, w; \
+  float ang; \
+  unsigned int j; \
+  unsigned int i = get_global_id(0); \
+  unsigned int startIndex = i; \
+         \
+  if(i < numCols) \
+  { \
+    for(j = 0; j < numRowsToProcess; j++) \
+    { \
+      a = in[startIndex]; \
+      ang = 2.0f * M_PI * dir * i * (startRow + j) / N; \
+      w = (float2)(native_cos(ang), native_sin(ang)); \
+      a = complexMul(a, w); \
+      in[startIndex] = a; \
+      startIndex += numCols; \
+    } \
+  }        \
+  } \
+  __kernel void fft0(__global float2 *in_out)
 {
-    const int dir = -1;
-    __local float2 sMem[4][272];
-    int i, j;
-    float ang, angf;
-    __local float2 *lMemStore, *lMemLoad;
-    float2 a0, a1, a2, a3;
-    int offset = (get_group_id(0) * 4 + get_local_id(1)) * 256 + get_local_id(0);
-    in_out += offset;
-    a0 = in_out[0];
-    a1 = in_out[64];
-    a2 = in_out[128];
-    a3 = in_out[192];
-    fftKernel4s(a0, a1, a2, a3, dir);
-    angf = (float) get_local_id(0);
-    ang = dir * ( 2.0f * M_PI * 1.0f / 256.0f ) * angf;
-    float2 w0 = (float2)(native_cos(ang), native_sin(ang));
-    ang = dir * ( 2.0f * M_PI * 2.0f / 256.0f ) * angf;
-    float2 w1 = (float2)(native_cos(ang), native_sin(ang));
-    ang = dir * ( 2.0f * M_PI * 3.0f / 256.0f ) * angf;
-    float2 w2 = (float2)(native_cos(ang), native_sin(ang));
-    a1 = complexMul(a1, w0);
-    a2 = complexMul(a2, w1);
-    a3 = complexMul(a3, w2);
-    lMemStore = &sMem[get_local_id(1)][get_local_id(0)];
-    j = get_local_id(0) & 3;
-    i = get_local_id(0) >> 2;
-    lMemLoad = &sMem[get_local_id(1)][j * 68 + i];
-    lMemStore[0] = a0;
-    lMemStore[68] = a1;
-    lMemStore[136] = a2;
-    lMemStore[204] = a3;
-    barrier(CLK_LOCAL_MEM_FENCE);
-    a0 = lMemLoad[0];
-    a1 = lMemLoad[16];
-    a2 = lMemLoad[32];
-    a3 = lMemLoad[48];
-    barrier(CLK_LOCAL_MEM_FENCE);
-    fftKernel4s(a0, a1, a2, a3, dir);
-    angf = (float) (get_local_id(0) >> 2);
-    ang = dir * ( 2.0f * M_PI * 1.0f / 64.0f ) * angf;
-    float2 w3 = (float2)(native_cos(ang), native_sin(ang));
-    ang = dir * ( 2.0f * M_PI * 2.0f / 64.0f ) * angf;
-    float2 w4 = (float2)(native_cos(ang), native_sin(ang));
-    ang = dir * ( 2.0f * M_PI * 3.0f / 64.0f ) * angf;
-    float2 w5 = (float2)(native_cos(ang), native_sin(ang));
-    a1 = complexMul(a1, w3);
-    a2 = complexMul(a2, w4);
-    a3 = complexMul(a3, w5);
-    j = (get_local_id(0) & 15) >> 2;
-    i = (get_local_id(0) >> 4) * 4 + (get_local_id(0) & 3);
-    lMemLoad = &sMem[get_local_id(1)][j * 68 + i];
-    lMemStore[0] = a0;
-    lMemStore[68] = a1;
-    lMemStore[136] = a2;
-    lMemStore[204] = a3;
-    barrier(CLK_LOCAL_MEM_FENCE);
-    a0 = lMemLoad[0];
-    a1 = lMemLoad[16];
-    a2 = lMemLoad[32];
-    a3 = lMemLoad[48];
-    barrier(CLK_LOCAL_MEM_FENCE);
-    fftKernel4s(a0, a1, a2, a3, dir);
-    angf = (float) (get_local_id(0) >> 4);
-    ang = dir * ( 2.0f * M_PI * 1.0f / 16.0f ) * angf;
-    float2 w6 = (float2)(native_cos(ang), native_sin(ang));
-    ang = dir * ( 2.0f * M_PI * 2.0f / 16.0f ) * angf;
-    float2 w7 = (float2)(native_cos(ang), native_sin(ang));
-    ang = dir * ( 2.0f * M_PI * 3.0f / 16.0f ) * angf;
-    float2 w8 = (float2)(native_cos(ang), native_sin(ang));
-    a1 = complexMul(a1, w6);
-    a2 = complexMul(a2, w7);
-    a3 = complexMul(a3, w8);
-    j = get_local_id(0) >> 4;
-    i = get_local_id(0) & 15;
-    lMemLoad = &sMem[get_local_id(1)][j * 64 + i];
-    lMemStore[0] = a0;
-    lMemStore[64] = a1;
-    lMemStore[128] = a2;
-    lMemStore[192] = a3;
-    barrier(CLK_LOCAL_MEM_FENCE);
-    a0 = lMemLoad[0];
-    a1 = lMemLoad[16];
-    a2 = lMemLoad[32];
-    a3 = lMemLoad[48];
-    fftKernel4s(a0, a1, a2, a3, dir);
-    in_out[0] = a0;
-    in_out[64] = a1;
-    in_out[128] = a2;
-    in_out[192] = a3;
+  const int dir = -1;
+  __local float2 sMem[4][272];
+  int i, j;
+  float ang, angf;
+  __local float2 *lMemStore, *lMemLoad;
+  float2 a0, a1, a2, a3;
+  int offset = (get_group_id(0) * 4 + get_local_id(1)) * 256 + get_local_id(0);
+  in_out += offset;
+  a0 = in_out[0];
+  a1 = in_out[64];
+  a2 = in_out[128];
+  a3 = in_out[192];
+  fftKernel4s(a0, a1, a2, a3, dir);
+  angf = (float) get_local_id(0);
+  ang = dir * ( 2.0f * M_PI * 1.0f / 256.0f ) * angf;
+  float2 w0 = (float2)(native_cos(ang), native_sin(ang));
+  ang = dir * ( 2.0f * M_PI * 2.0f / 256.0f ) * angf;
+  float2 w1 = (float2)(native_cos(ang), native_sin(ang));
+  ang = dir * ( 2.0f * M_PI * 3.0f / 256.0f ) * angf;
+  float2 w2 = (float2)(native_cos(ang), native_sin(ang));
+  a1 = complexMul(a1, w0);
+  a2 = complexMul(a2, w1);
+  a3 = complexMul(a3, w2);
+  lMemStore = &sMem[get_local_id(1)][get_local_id(0)];
+  j = get_local_id(0) & 3;
+  i = get_local_id(0) >> 2;
+  lMemLoad = &sMem[get_local_id(1)][j * 68 + i];
+  lMemStore[0] = a0;
+  lMemStore[68] = a1;
+  lMemStore[136] = a2;
+  lMemStore[204] = a3;
+  barrier(CLK_LOCAL_MEM_FENCE);
+  a0 = lMemLoad[0];
+  a1 = lMemLoad[16];
+  a2 = lMemLoad[32];
+  a3 = lMemLoad[48];
+  barrier(CLK_LOCAL_MEM_FENCE);
+  fftKernel4s(a0, a1, a2, a3, dir);
+  angf = (float) (get_local_id(0) >> 2);
+  ang = dir * ( 2.0f * M_PI * 1.0f / 64.0f ) * angf;
+  float2 w3 = (float2)(native_cos(ang), native_sin(ang));
+  ang = dir * ( 2.0f * M_PI * 2.0f / 64.0f ) * angf;
+  float2 w4 = (float2)(native_cos(ang), native_sin(ang));
+  ang = dir * ( 2.0f * M_PI * 3.0f / 64.0f ) * angf;
+  float2 w5 = (float2)(native_cos(ang), native_sin(ang));
+  a1 = complexMul(a1, w3);
+  a2 = complexMul(a2, w4);
+  a3 = complexMul(a3, w5);
+  j = (get_local_id(0) & 15) >> 2;
+  i = (get_local_id(0) >> 4) * 4 + (get_local_id(0) & 3);
+  lMemLoad = &sMem[get_local_id(1)][j * 68 + i];
+  lMemStore[0] = a0;
+  lMemStore[68] = a1;
+  lMemStore[136] = a2;
+  lMemStore[204] = a3;
+  barrier(CLK_LOCAL_MEM_FENCE);
+  a0 = lMemLoad[0];
+  a1 = lMemLoad[16];
+  a2 = lMemLoad[32];
+  a3 = lMemLoad[48];
+  barrier(CLK_LOCAL_MEM_FENCE);
+  fftKernel4s(a0, a1, a2, a3, dir);
+  angf = (float) (get_local_id(0) >> 4);
+  ang = dir * ( 2.0f * M_PI * 1.0f / 16.0f ) * angf;
+  float2 w6 = (float2)(native_cos(ang), native_sin(ang));
+  ang = dir * ( 2.0f * M_PI * 2.0f / 16.0f ) * angf;
+  float2 w7 = (float2)(native_cos(ang), native_sin(ang));
+  ang = dir * ( 2.0f * M_PI * 3.0f / 16.0f ) * angf;
+  float2 w8 = (float2)(native_cos(ang), native_sin(ang));
+  a1 = complexMul(a1, w6);
+  a2 = complexMul(a2, w7);
+  a3 = complexMul(a3, w8);
+  j = get_local_id(0) >> 4;
+  i = get_local_id(0) & 15;
+  lMemLoad = &sMem[get_local_id(1)][j * 64 + i];
+  lMemStore[0] = a0;
+  lMemStore[64] = a1;
+  lMemStore[128] = a2;
+  lMemStore[192] = a3;
+  barrier(CLK_LOCAL_MEM_FENCE);
+  a0 = lMemLoad[0];
+  a1 = lMemLoad[16];
+  a2 = lMemLoad[32];
+  a3 = lMemLoad[48];
+  fftKernel4s(a0, a1, a2, a3, dir);
+  in_out[0] = a0;
+  in_out[64] = a1;
+  in_out[128] = a2;
+  in_out[192] = a3;
 }
diff --git a/RTCP/Cobalt/GPUProc/src/FIR.cl b/RTCP/Cobalt/GPUProc/src/FIR.cl
index 63ac52e2615f00748889f59cf4c494f2080bba5c..a4500350660302bfa1daa94984cddaa974f1bd7e 100644
--- a/RTCP/Cobalt/GPUProc/src/FIR.cl
+++ b/RTCP/Cobalt/GPUProc/src/FIR.cl
@@ -1,4 +1,4 @@
-#define COMPLEX 2	// do not change
+#define COMPLEX 2       // do not change
 
 #if NR_BITS_PER_SAMPLE == 16
 typedef short SampleType;
@@ -48,29 +48,29 @@ typedef __global const float16 (*WeightsType)[NR_CHANNELS];
  * TODO: convert complex dim to fcomplex (=float2 in math.cl) in device code and to complex<float> in host code.
  */
 __kernel void FIR_filter(__global void *filteredDataPtr,
-			 __global const void *sampledDataPtr,
-			 __global const void *weightsPtr)
+                         __global const void *sampledDataPtr,
+                         __global const void *weightsPtr)
 {
-  SampledDataType  sampledData  = (SampledDataType) sampledDataPtr;
+  SampledDataType sampledData = (SampledDataType) sampledDataPtr;
   FilteredDataType filteredData = (FilteredDataType) filteredDataPtr;
-  WeightsType      weightsData  = (WeightsType) weightsPtr;
+  WeightsType weightsData = (WeightsType) weightsPtr;
 
-  uint cpr     = get_global_id(0);
+  uint cpr = get_global_id(0);
 #if 0
   // Straight index calc for NR_CHANNELS == 1
-  uint pol_ri  = cpr & 3;
+  uint pol_ri = cpr & 3;
   uint channel = cpr >> 2;
-  uint ri      = cpr & 1;
-  uint pol     = pol_ri >> 1;
+  uint ri = cpr & 1;
+  uint pol = pol_ri >> 1;
 #else
-  uint ri      = cpr & 1;
+  uint ri = cpr & 1;
   uint channel = (cpr >> 1) % NR_CHANNELS;
-  uint pol     = (cpr >> 1) / NR_CHANNELS;
-  uint pol_ri  = (pol << 1) | ri;
+  uint pol = (cpr >> 1) / NR_CHANNELS;
+  uint pol_ri = (pol << 1) | ri;
 #endif
   uint station = get_global_id(1);
 
-//#pragma OPENCL EXTENSION cl_amd_printf : enable
+  //#pragma OPENCL EXTENSION cl_amd_printf : enable
 
   const float16 weights = (*weightsData)[channel];
   float16 delayLine;
@@ -94,7 +94,7 @@ __kernel void FIR_filter(__global void *filteredDataPtr,
 
   for (uint time = 0; time < NR_SAMPLES_PER_CHANNEL; time += NR_TAPS) {
     delayLine.sF = convert_float((*sampledData)[station][time + NR_TAPS - 1 + 0][channel][pol_ri]);
-    sum.s0  = weights.sF * delayLine.s0;
+    sum.s0 = weights.sF * delayLine.s0;
     delayLine.s0 = convert_float((*sampledData)[station][time + NR_TAPS - 1 + 1][channel][pol_ri]);
     sum.s0 += weights.sE * delayLine.s1;
     sum.s0 += weights.sD * delayLine.s2;
@@ -113,7 +113,7 @@ __kernel void FIR_filter(__global void *filteredDataPtr,
     sum.s0 += weights.s0 * delayLine.sF;
     (*filteredData)[station][pol][time + 0][channel][ri] = sum.s0;
 
-    sum.s1  = weights.sF * delayLine.s1;
+    sum.s1 = weights.sF * delayLine.s1;
     delayLine.s1 = convert_float((*sampledData)[station][time + NR_TAPS - 1 + 2][channel][pol_ri]);
     sum.s1 += weights.sE * delayLine.s2;
     sum.s1 += weights.sD * delayLine.s3;
@@ -132,7 +132,7 @@ __kernel void FIR_filter(__global void *filteredDataPtr,
     sum.s1 += weights.s0 * delayLine.s0;
     (*filteredData)[station][pol][time + 1][channel][ri] = sum.s1;
 
-    sum.s2  = weights.sF * delayLine.s2;
+    sum.s2 = weights.sF * delayLine.s2;
     delayLine.s2 = convert_float((*sampledData)[station][time + NR_TAPS - 1 + 3][channel][pol_ri]);
     sum.s2 += weights.sE * delayLine.s3;
     sum.s2 += weights.sD * delayLine.s4;
@@ -151,7 +151,7 @@ __kernel void FIR_filter(__global void *filteredDataPtr,
     sum.s2 += weights.s0 * delayLine.s1;
     (*filteredData)[station][pol][time + 2][channel][ri] = sum.s2;
 
-    sum.s3  = weights.sF * delayLine.s3;
+    sum.s3 = weights.sF * delayLine.s3;
     delayLine.s3 = convert_float((*sampledData)[station][time + NR_TAPS - 1 + 4][channel][pol_ri]);
     sum.s3 += weights.sE * delayLine.s4;
     sum.s3 += weights.sD * delayLine.s5;
@@ -170,7 +170,7 @@ __kernel void FIR_filter(__global void *filteredDataPtr,
     sum.s3 += weights.s0 * delayLine.s2;
     (*filteredData)[station][pol][time + 3][channel][ri] = sum.s3;
 
-    sum.s4  = weights.sF * delayLine.s4;
+    sum.s4 = weights.sF * delayLine.s4;
     delayLine.s4 = convert_float((*sampledData)[station][time + NR_TAPS - 1 + 5][channel][pol_ri]);
     sum.s4 += weights.sE * delayLine.s5;
     sum.s4 += weights.sD * delayLine.s6;
@@ -189,7 +189,7 @@ __kernel void FIR_filter(__global void *filteredDataPtr,
     sum.s4 += weights.s0 * delayLine.s3;
     (*filteredData)[station][pol][time + 4][channel][ri] = sum.s4;
 
-    sum.s5  = weights.sF * delayLine.s5;
+    sum.s5 = weights.sF * delayLine.s5;
     delayLine.s5 = convert_float((*sampledData)[station][time + NR_TAPS - 1 + 6][channel][pol_ri]);
     sum.s5 += weights.sE * delayLine.s6;
     sum.s5 += weights.sD * delayLine.s7;
@@ -208,7 +208,7 @@ __kernel void FIR_filter(__global void *filteredDataPtr,
     sum.s5 += weights.s0 * delayLine.s4;
     (*filteredData)[station][pol][time + 5][channel][ri] = sum.s5;
 
-    sum.s6  = weights.sF * delayLine.s6;
+    sum.s6 = weights.sF * delayLine.s6;
     delayLine.s6 = convert_float((*sampledData)[station][time + NR_TAPS - 1 + 7][channel][pol_ri]);
     sum.s6 += weights.sE * delayLine.s7;
     sum.s6 += weights.sD * delayLine.s8;
@@ -227,7 +227,7 @@ __kernel void FIR_filter(__global void *filteredDataPtr,
     sum.s6 += weights.s0 * delayLine.s5;
     (*filteredData)[station][pol][time + 6][channel][ri] = sum.s6;
 
-    sum.s7  = weights.sF * delayLine.s7;
+    sum.s7 = weights.sF * delayLine.s7;
     delayLine.s7 = convert_float((*sampledData)[station][time + NR_TAPS - 1 + 8][channel][pol_ri]);
     sum.s7 += weights.sE * delayLine.s8;
     sum.s7 += weights.sD * delayLine.s9;
@@ -246,7 +246,7 @@ __kernel void FIR_filter(__global void *filteredDataPtr,
     sum.s7 += weights.s0 * delayLine.s6;
     (*filteredData)[station][pol][time + 7][channel][ri] = sum.s7;
 
-    sum.s8  = weights.sF * delayLine.s8;
+    sum.s8 = weights.sF * delayLine.s8;
     delayLine.s8 = convert_float((*sampledData)[station][time + NR_TAPS - 1 + 9][channel][pol_ri]);
     sum.s8 += weights.sE * delayLine.s9;
     sum.s8 += weights.sD * delayLine.sA;
@@ -265,7 +265,7 @@ __kernel void FIR_filter(__global void *filteredDataPtr,
     sum.s8 += weights.s0 * delayLine.s7;
     (*filteredData)[station][pol][time + 8][channel][ri] = sum.s8;
 
-    sum.s9  = weights.sF * delayLine.s9;
+    sum.s9 = weights.sF * delayLine.s9;
     delayLine.s9 = convert_float((*sampledData)[station][time + NR_TAPS - 1 + 10][channel][pol_ri]);
     sum.s9 += weights.sE * delayLine.sA;
     sum.s9 += weights.sD * delayLine.sB;
@@ -284,7 +284,7 @@ __kernel void FIR_filter(__global void *filteredDataPtr,
     sum.s9 += weights.s0 * delayLine.s8;
     (*filteredData)[station][pol][time + 9][channel][ri] = sum.s9;
 
-    sum.sA  = weights.sF * delayLine.sA;
+    sum.sA = weights.sF * delayLine.sA;
     delayLine.sA = convert_float((*sampledData)[station][time + NR_TAPS - 1 + 11][channel][pol_ri]);
     sum.sA += weights.sE * delayLine.sB;
     sum.sA += weights.sD * delayLine.sC;
@@ -303,7 +303,7 @@ __kernel void FIR_filter(__global void *filteredDataPtr,
     sum.sA += weights.s0 * delayLine.s9;
     (*filteredData)[station][pol][time + 10][channel][ri] = sum.sA;
 
-    sum.sB  = weights.sF * delayLine.sB;
+    sum.sB = weights.sF * delayLine.sB;
     delayLine.sB = convert_float((*sampledData)[station][time + NR_TAPS - 1 + 12][channel][pol_ri]);
     sum.sB += weights.sE * delayLine.sC;
     sum.sB += weights.sD * delayLine.sD;
@@ -322,7 +322,7 @@ __kernel void FIR_filter(__global void *filteredDataPtr,
     sum.sB += weights.s0 * delayLine.sA;
     (*filteredData)[station][pol][time + 11][channel][ri] = sum.sB;
 
-    sum.sC  = weights.sF * delayLine.sC;
+    sum.sC = weights.sF * delayLine.sC;
     delayLine.sC = convert_float((*sampledData)[station][time + NR_TAPS - 1 + 13][channel][pol_ri]);
     sum.sC += weights.sE * delayLine.sD;
     sum.sC += weights.sD * delayLine.sE;
@@ -341,7 +341,7 @@ __kernel void FIR_filter(__global void *filteredDataPtr,
     sum.sC += weights.s0 * delayLine.sB;
     (*filteredData)[station][pol][time + 12][channel][ri] = sum.sC;
 
-    sum.sD  = weights.sF * delayLine.sD;
+    sum.sD = weights.sF * delayLine.sD;
     delayLine.sD = convert_float((*sampledData)[station][time + NR_TAPS - 1 + 14][channel][pol_ri]);
     sum.sD += weights.sE * delayLine.sE;
     sum.sD += weights.sD * delayLine.sF;
@@ -360,7 +360,7 @@ __kernel void FIR_filter(__global void *filteredDataPtr,
     sum.sD += weights.s0 * delayLine.sC;
     (*filteredData)[station][pol][time + 13][channel][ri] = sum.sD;
 
-    sum.sE  = weights.sF * delayLine.sE;
+    sum.sE = weights.sF * delayLine.sE;
     delayLine.sE = convert_float((*sampledData)[station][time + NR_TAPS - 1 + 15][channel][pol_ri]);
     sum.sE += weights.sE * delayLine.sF;
     sum.sE += weights.sD * delayLine.s0;
@@ -379,7 +379,7 @@ __kernel void FIR_filter(__global void *filteredDataPtr,
     sum.sE += weights.s0 * delayLine.sD;
     (*filteredData)[station][pol][time + 14][channel][ri] = sum.sE;
 
-    sum.sF  = weights.sF * delayLine.sF;
+    sum.sF = weights.sF * delayLine.sF;
     sum.sF += weights.sE * delayLine.s0;
     sum.sF += weights.sD * delayLine.s1;
     sum.sF += weights.sC * delayLine.s2;
diff --git a/RTCP/Cobalt/GPUProc/src/FilterBank.cc b/RTCP/Cobalt/GPUProc/src/FilterBank.cc
index 0cc10edb8637d0d64e47791a2d9fe1a69707adba..5a80cefdaca542c91d33ee8d42f4456482e2c264 100644
--- a/RTCP/Cobalt/GPUProc/src/FilterBank.cc
+++ b/RTCP/Cobalt/GPUProc/src/FilterBank.cc
@@ -22,472 +22,474 @@
 #error Should have FFTW3 or FFTW2 installed
 #endif
 
-namespace LOFAR {
-namespace RTCP {
+namespace LOFAR
+{
+  namespace RTCP
+  {
 
 #if USE_ORIGINAL_FILTER
 #include <FIR_OriginalCepPPFWeights.h>
 #endif
 
-// For documentation on this class, see the header file.
+    // For documentation on this class, see the header file.
 
-FilterBank::FilterBank(bool verbose, unsigned taps, unsigned channels, WindowType windowType)
-:
-  itsWindowType(windowType), itsNrTaps(taps), itsNrChannels(channels), itsVerbose(verbose), itsNegated(false)
-{
-  generate_filter();
-}
+    FilterBank::FilterBank(bool verbose, unsigned taps, unsigned channels, WindowType windowType)
+      :
+      itsWindowType(windowType), itsNrTaps(taps), itsNrChannels(channels), itsVerbose(verbose), itsNegated(false)
+    {
+      generate_filter();
+    }
 
 
-FilterBank::FilterBank(bool verbose, unsigned taps, unsigned channels, float newWeights[])
-:
-  itsWindowType(PREDEFINED_FILTER), itsNrTaps(taps), itsNrChannels(channels), itsVerbose(verbose), itsNegated(false)
-{
-  weights.resize(boost::extents[itsNrChannels][itsNrTaps]);
-  memcpy(weights.origin(), newWeights, (itsNrChannels * itsNrTaps) * sizeof(float));
-}
+    FilterBank::FilterBank(bool verbose, unsigned taps, unsigned channels, float newWeights[])
+      :
+      itsWindowType(PREDEFINED_FILTER), itsNrTaps(taps), itsNrChannels(channels), itsVerbose(verbose), itsNegated(false)
+    {
+      weights.resize(boost::extents[itsNrChannels][itsNrTaps]);
+      memcpy(weights.origin(), newWeights, (itsNrChannels * itsNrTaps) * sizeof(float));
+    }
 
 
-// hamming window function
-void FilterBank::hamming(unsigned n, double d[])
-{
-  if (n == 1) {
-    d[0] = 1.0;
-    return;
-  }
+    // hamming window function
+    void FilterBank::hamming(unsigned n, double d[])
+    {
+      if (n == 1) {
+        d[0] = 1.0;
+        return;
+      }
 
-  unsigned m = n - 1;
+      unsigned m = n - 1;
 
-  for (unsigned i = 0; i < n; i++) {
-    d[i] = 0.54 - 0.46 * cos((2.0 * M_PI * i) / m);
-  }
-}
+      for (unsigned i = 0; i < n; i++) {
+        d[i] = 0.54 - 0.46 * cos((2.0 * M_PI * i) / m);
+      }
+    }
 
 
-// blackman window function
-void FilterBank::blackman(unsigned n, double d[])
-{
-  if (n == 1) {
-    d[0] = 1.0;
-    return;
-  }
+    // blackman window function
+    void FilterBank::blackman(unsigned n, double d[])
+    {
+      if (n == 1) {
+        d[0] = 1.0;
+        return;
+      }
 
-  unsigned m = n - 1;
+      unsigned m = n - 1;
 
-  for (unsigned i = 0; i < n; i++) {
-    double k = i / m;
-    d[i] = 0.42 - 0.5 * cos(2.0 * M_PI * k) + 0.08 * cos(4.0 * M_PI * k);
-  }
-}
+      for (unsigned i = 0; i < n; i++) {
+        double k = i / m;
+        d[i] = 0.42 - 0.5 * cos(2.0 * M_PI * k) + 0.08 * cos(4.0 * M_PI * k);
+      }
+    }
 
 
-// Guassian window function
-void FilterBank::gaussian(int n, double a, double d[])
-{
-  int index = 0;
+    // Guassian window function
+    void FilterBank::gaussian(int n, double a, double d[])
+    {
+      int index = 0;
 
-  for (int i = -(n - 1); i <= n - 1; i += 2) {
-    d[index++] = exp(-0.5 * pow((a / n * i), 2));
-  }
-}
+      for (int i = -(n - 1); i <= n - 1; i += 2) {
+        d[index++] = exp(-0.5 * pow((a / n * i), 2));
+      }
+    }
 
 
-// Compute the modified Bessel function I_0(x) for any real x.
-// This method was taken from the ROOT package, See http://root.cern.ch/root.
-// It was released under the GNU LESSER GENERAL PUBLIC LICENSE Version 2.1
-double FilterBank::besselI0(double x)
-{
-  // Parameters of the polynomial approximation
-  const double p1 = 1.0, p2 = 3.5156229, p3 = 3.0899424, p4 = 1.2067492, p5 = 0.2659732, p6 = 3.60768e-2, p7 = 4.5813e-3;
+    // Compute the modified Bessel function I_0(x) for any real x.
+    // This method was taken from the ROOT package, See http://root.cern.ch/root.
+    // It was released under the GNU LESSER GENERAL PUBLIC LICENSE Version 2.1
+    double FilterBank::besselI0(double x)
+    {
+      // Parameters of the polynomial approximation
+      const double p1 = 1.0, p2 = 3.5156229, p3 = 3.0899424, p4 = 1.2067492, p5 = 0.2659732, p6 = 3.60768e-2, p7 = 4.5813e-3;
 
-  const double q1 = 0.39894228, q2 = 1.328592e-2, q3 = 2.25319e-3, q4 = -1.57565e-3, q5 = 9.16281e-3, q6 = -2.057706e-2, q7 = 2.635537e-2, q8 = -1.647633e-2,
-      q9 = 3.92377e-3;
+      const double q1 = 0.39894228, q2 = 1.328592e-2, q3 = 2.25319e-3, q4 = -1.57565e-3, q5 = 9.16281e-3, q6 = -2.057706e-2, q7 = 2.635537e-2, q8 = -1.647633e-2,
+                   q9 = 3.92377e-3;
 
-  const double k1 = 3.75;
-  double ax = abs(x);
+      const double k1 = 3.75;
+      double ax = abs(x);
 
-  double y = 0, result = 0;
+      double y = 0, result = 0;
 
-  if (ax < k1) {
-    double xx = x / k1;
-    y = xx * xx;
-    result = p1 + y * (p2 + y * (p3 + y * (p4 + y * (p5 + y * (p6 + y * p7)))));
-  } else {
-    y = k1 / ax;
-    result = (exp(ax) / sqrt(ax)) * (q1 + y * (q2 + y * (q3 + y * (q4 + y * (q5 + y * (q6 + y * (q7 + y * (q8 + y * q9))))))));
-  }
+      if (ax < k1) {
+        double xx = x / k1;
+        y = xx * xx;
+        result = p1 + y * (p2 + y * (p3 + y * (p4 + y * (p5 + y * (p6 + y * p7)))));
+      } else {
+        y = k1 / ax;
+        result = (exp(ax) / sqrt(ax)) * (q1 + y * (q2 + y * (q3 + y * (q4 + y * (q5 + y * (q6 + y * (q7 + y * (q8 + y * q9))))))));
+      }
 
-  return result;
-}
+      return result;
+    }
 
 
-// Kaiser window function
-void FilterBank::kaiser(int n, double beta, double d[])
-{
-  if (n == 1) {
-    d[0] = 1.0;
-    return;
-  }
+    // Kaiser window function
+    void FilterBank::kaiser(int n, double beta, double d[])
+    {
+      if (n == 1) {
+        d[0] = 1.0;
+        return;
+      }
 
-  int m = n - 1;
+      int m = n - 1;
 
-  for (int i = 0; i < n; i++) {
-    double k = 2.0 * beta / m * sqrt(i * (m - i));
-    d[i] = besselI0(k) / besselI0(beta);
-  }
-}
+      for (int i = 0; i < n; i++) {
+        double k = 2.0 * beta / m * sqrt(i * (m - i));
+        d[i] = besselI0(k) / besselI0(beta);
+      }
+    }
 
 
-// One-dimensional interpolation. Interpolate Y, defined at the points X, 
-// at N evenly spaced points between 0 and 1. The sample points X must be strictly monotonic
-void FilterBank::interpolate(const double x[], const double y[], unsigned xlen, unsigned n, double result[])
-{
-  unsigned nextX = 0;
-  unsigned index = 0;
+    // One-dimensional interpolation. Interpolate Y, defined at the points X,
+    // at N evenly spaced points between 0 and 1. The sample points X must be strictly monotonic
+    void FilterBank::interpolate(const double x[], const double y[], unsigned xlen, unsigned n, double result[])
+    {
+      unsigned nextX = 0;
+      unsigned index = 0;
 
-  for (double interpolatedX = 0; interpolatedX <= 1.0; interpolatedX += 1.0 / (n - 1), index++) {
-    while (x[nextX] <= interpolatedX && nextX < xlen - 1)
-      nextX++;
+      for (double interpolatedX = 0; interpolatedX <= 1.0; interpolatedX += 1.0 / (n - 1), index++) {
+        while (x[nextX] <= interpolatedX && nextX < xlen - 1)
+          nextX++;
 
-    if (nextX == 0) {
-      LOG_ERROR("ERROR in FilterBank::interpolate");
-    }
+        if (nextX == 0) {
+          LOG_ERROR("ERROR in FilterBank::interpolate");
+        }
 
-    double prevXVal = x[nextX - 1];
-    double nextXVal = x[nextX];
-    double prevYVal = y[nextX - 1];
-    double nextYVal = y[nextX];
+        double prevXVal = x[nextX - 1];
+        double nextXVal = x[nextX];
+        double prevYVal = y[nextX - 1];
+        double nextYVal = y[nextX];
 
-    double rc = (nextYVal - prevYVal) / (nextXVal - prevXVal);
+        double rc = (nextYVal - prevYVal) / (nextXVal - prevXVal);
 
-    double newVal = prevYVal + (interpolatedX - prevXVal) * rc;
-    result[index] = newVal;
-  }
-}
+        double newVal = prevYVal + (interpolatedX - prevXVal) * rc;
+        result[index] = newVal;
+      }
+    }
 
 
-// Compute the filter, similar to Octave's fir2(n, f, m, grid_n, ramp_n, window);
-// Window and result must be of size n+1.
-// grid_n: length of ideal frequency response function
-// ramp_n: transition width for jumps in filter response
-// defaults to grid_n/20; a wider ramp gives wider transitions
-// but has better stopband characteristics.
-void FilterBank::generate_fir_filter(unsigned n, double w, const double window[], double result[])
-{
+    // Compute the filter, similar to Octave's fir2(n, f, m, grid_n, ramp_n, window);
+    // Window and result must be of size n+1.
+    // grid_n: length of ideal frequency response function
+    // ramp_n: transition width for jumps in filter response
+    // defaults to grid_n/20; a wider ramp gives wider transitions
+    // but has better stopband characteristics.
+    void FilterBank::generate_fir_filter(unsigned n, double w, const double window[], double result[])
+    {
 #pragma omp critical (FFTW)
-  {
-    // make sure grid is big enough for the window
-    // the grid must be at least (n+1)/2
-    // for all filters where the order is a power of two minus 1, grid_n = n+1;
-    unsigned grid_n = nextPowerOfTwo(n + 1);
+      {
+        // make sure grid is big enough for the window
+        // the grid must be at least (n+1)/2
+        // for all filters where the order is a power of two minus 1, grid_n = n+1;
+        unsigned grid_n = nextPowerOfTwo(n + 1);
 
-    unsigned ramp_n = 2; // grid_n/20;
+        unsigned ramp_n = 2; // grid_n/20;
 
-    // Apply ramps to discontinuities
-    // this is a low pass filter
-    // maybe we can omit the "w, 0" point?
-    // I did observe a small difference
-    double f[] = { 0.0, w - ramp_n / grid_n / 2.0, w, w + ramp_n / grid_n / 2.0, 1.0 };
-    double m[] = { 1.0, 1.0, 0.0, 0.0, 0.0 };
+        // Apply ramps to discontinuities
+        // this is a low pass filter
+        // maybe we can omit the "w, 0" point?
+        // I did observe a small difference
+        double f[] = { 0.0, w - ramp_n / grid_n / 2.0, w, w + ramp_n / grid_n / 2.0, 1.0 };
+        double m[] = { 1.0, 1.0, 0.0, 0.0, 0.0 };
 
-    // grid is a 1-D array with grid_n+1 points. Values are 1 in filter passband, 0 otherwise
-    std::vector<double> grid(grid_n + 1);
+        // grid is a 1-D array with grid_n+1 points. Values are 1 in filter passband, 0 otherwise
+        std::vector<double> grid(grid_n + 1);
 
-    // interpolate between grid points
-    interpolate(f, m, 5 /* length of f and m arrays */, grid_n + 1, &grid[0]);
+        // interpolate between grid points
+        interpolate(f, m, 5 /* length of f and m arrays */, grid_n + 1, &grid[0]);
 
 #if 0
-    std::stringstream logStr;
-    logStr << "interpolated = [";
-    for(unsigned i=0; i<grid_n+1; i++) {
-      logStr << grid[i];
-      if(i != grid_n+1-1) logStr << ", ";
-    }
-    logStr << "];";
-    LOG_DEBUG(logStr.str());
+        std::stringstream logStr;
+        logStr << "interpolated = [";
+        for(unsigned i = 0; i<grid_n + 1; i++) {
+          logStr << grid[i];
+          if(i != grid_n + 1 - 1) logStr << ", ";
+        }
+        logStr << "];";
+        LOG_DEBUG(logStr.str());
 #endif
 
-    // the grid we do an ifft on is:
-    // grid appended with grid_n*2 zeros
-    // appended with original grid values from indices grid_n..2, i.e., the values in reverse order
-    // (note, arrays start at 1 in octave!)
-    // the input for the ifft is of size 4*grid_n
-    // input = [grid ; zeros(grid_n*2,1) ;grid(grid_n:-1:2)];
+        // the grid we do an ifft on is:
+        // grid appended with grid_n*2 zeros
+        // appended with original grid values from indices grid_n..2, i.e., the values in reverse order
+        // (note, arrays start at 1 in octave!)
+        // the input for the ifft is of size 4*grid_n
+        // input = [grid ; zeros(grid_n*2,1) ;grid(grid_n:-1:2)];
 
 #if defined HAVE_FFTW3
-    fftwf_complex* cinput = (fftwf_complex*) fftwf_malloc(grid_n * 4 * sizeof(fftwf_complex));
-    fftwf_complex* coutput = (fftwf_complex*) fftwf_malloc(grid_n * 4 * sizeof(fftwf_complex));
+        fftwf_complex* cinput = (fftwf_complex*) fftwf_malloc(grid_n * 4 * sizeof(fftwf_complex));
+        fftwf_complex* coutput = (fftwf_complex*) fftwf_malloc(grid_n * 4 * sizeof(fftwf_complex));
 #elif defined HAVE_FFTW2
-    fftw_complex* cinput = (fftw_complex*) fftw_malloc(grid_n*4*sizeof(fftw_complex));
-    fftw_complex* coutput = (fftw_complex*) fftw_malloc(grid_n*4*sizeof(fftw_complex));
+        fftw_complex* cinput = (fftw_complex*) fftw_malloc(grid_n * 4 * sizeof(fftw_complex));
+        fftw_complex* coutput = (fftw_complex*) fftw_malloc(grid_n * 4 * sizeof(fftw_complex));
 #endif
 
-    if (cinput == NULL || coutput == NULL) {
-      THROW(GPUProcException, "cannot allocate buffers");
-    }
+        if (cinput == NULL || coutput == NULL) {
+          THROW(GPUProcException, "cannot allocate buffers");
+        }
 
-    // wipe imaginary part
-    for (unsigned i = 0; i < grid_n * 4; i++) {
-      fftw_imag(cinput[i]) = 0.0;
-    }
+        // wipe imaginary part
+        for (unsigned i = 0; i < grid_n * 4; i++) {
+          fftw_imag(cinput[i]) = 0.0;
+        }
 
-    // copy first part of grid
-    for (unsigned i = 0; i < grid_n + 1; i++) {
-      fftw_real(cinput[i]) = grid[i];
-    }
+        // copy first part of grid
+        for (unsigned i = 0; i < grid_n + 1; i++) {
+          fftw_real(cinput[i]) = grid[i];
+        }
 
-    // append zeros
-    for (unsigned i = grid_n + 1; i <= grid_n * 3; i++) {
-      fftw_real(cinput[i]) = 0.0;
-    }
+        // append zeros
+        for (unsigned i = grid_n + 1; i <= grid_n * 3; i++) {
+          fftw_real(cinput[i]) = 0.0;
+        }
 
-    // now append the grid in reverse order
-    for (unsigned i = grid_n - 1, index = 0; i >= 1; i --, index ++) {
-      fftw_real(cinput[grid_n * 3 + 1 + index]) = grid[i];
-    }
+        // now append the grid in reverse order
+        for (unsigned i = grid_n - 1, index = 0; i >= 1; i--, index++) {
+          fftw_real(cinput[grid_n * 3 + 1 + index]) = grid[i];
+        }
 
 #if 0
-    std::stringstream logStr;
-    logStr << "ifft_in = [";
-    for(unsigned i=0; i<grid_n*4; i++) {
-      logStr << fftw_real(cinput[i]) << " " << fftw_imag(cinput[i]);
-      if(i != grid_n*4-1) logStr << ", ";
-    }
-    logStr << "];";
-    LOG_DEBUG(logStr.str());
+        std::stringstream logStr;
+        logStr << "ifft_in = [";
+        for(unsigned i = 0; i<grid_n * 4; i++) {
+          logStr << fftw_real(cinput[i]) << " " << fftw_imag(cinput[i]);
+          if(i != grid_n * 4 - 1) logStr << ", ";
+        }
+        logStr << "];";
+        LOG_DEBUG(logStr.str());
 #endif
 
 #if defined HAVE_FFTW3
-    fftwf_plan plan = fftwf_plan_dft_1d(grid_n * 4, cinput, coutput, FFTW_BACKWARD, FFTW_ESTIMATE);
-    fftwf_execute(plan);
+        fftwf_plan plan = fftwf_plan_dft_1d(grid_n * 4, cinput, coutput, FFTW_BACKWARD, FFTW_ESTIMATE);
+        fftwf_execute(plan);
 #elif defined HAVE_FFTW2
-    fftw_plan plan = fftw_create_plan(grid_n * 4, FFTW_BACKWARD, FFTW_ESTIMATE);
-    fftw_one(plan, cinput, coutput);
+        fftw_plan plan = fftw_create_plan(grid_n * 4, FFTW_BACKWARD, FFTW_ESTIMATE);
+        fftw_one(plan, cinput, coutput);
 #endif
 
 #if 0
-    for(unsigned i=0; i<grid_n*4; i++) {
-      LOG_DEBUG_STR("ifft result [" << i << "] = " << fftw_real(coutput[i]) << " " << fftw_imag(coutput[i]));
-    }
+        for(unsigned i = 0; i<grid_n * 4; i++) {
+          LOG_DEBUG_STR("ifft result [" << i << "] = " << fftw_real(coutput[i]) << " " << fftw_imag(coutput[i]));
+        }
 #endif
 
-    //                        half                   end
-    // 1 2       n+1          2(n+1)      3(n+1)     4(n+1)
-    //                                    x x x x x x x x x     # last quarter
-    //   x x x x x x                                            # first quarter
+        //                        half                   end
+        // 1 2       n+1          2(n+1)      3(n+1)     4(n+1)
+        //                                    x x x x x x x x x     # last quarter
+        //   x x x x x x                                            # first quarter
 
-    // last_quarter  = b([end-n+1:2:end]); # the size is only 1/8, since we skip half of the elements
-    // first_quarter = b(2:2:(n+1));       # the size is only 1/8, since we skip half of the elements
+        // last_quarter  = b([end-n+1:2:end]); # the size is only 1/8, since we skip half of the elements
+        // first_quarter = b(2:2:(n+1));       # the size is only 1/8, since we skip half of the elements
 
-    unsigned index = 0;
+        unsigned index = 0;
 
-    for (unsigned i = 4 * grid_n - n; i < 4 * grid_n; i += 2) {
-      result[index] = fftw_real(coutput[i]);
-      index++;
-    }
+        for (unsigned i = 4 * grid_n - n; i < 4 * grid_n; i += 2) {
+          result[index] = fftw_real(coutput[i]);
+          index++;
+        }
 
-    for (unsigned i = 1; i <= n; i += 2) {
-      result[index] = fftw_real(coutput[i]);
-      index++;
-    }
+        for (unsigned i = 1; i <= n; i += 2) {
+          result[index] = fftw_real(coutput[i]);
+          index++;
+        }
 
 #if defined HAVE_FFTW3
-    fftwf_destroy_plan(plan);
-    fftwf_free(cinput);
-    fftwf_free(coutput);
+        fftwf_destroy_plan(plan);
+        fftwf_free(cinput);
+        fftwf_free(coutput);
 #elif defined HAVE_FFTW2
-    fftw_destroy_plan(plan);
-    fftw_free(cinput);
-    fftw_free(coutput);
+        fftw_destroy_plan(plan);
+        fftw_free(cinput);
+        fftw_free(coutput);
 #endif
 
-    // multiply with window
-    for (unsigned i = 0; i <= n; i++) {
-      result[i] *= window[i];
-    }
+        // multiply with window
+        for (unsigned i = 0; i <= n; i++) {
+          result[i] *= window[i];
+        }
 
-    // normalize
-    double factor = result[n / 2];
-    for (unsigned i = 0; i <= n; i++) {
-      result[i] /= factor;
-    }
+        // normalize
+        double factor = result[n / 2];
+        for (unsigned i = 0; i <= n; i++) {
+          result[i] /= factor;
+        }
 
 #if 0
-    std::stringstream logStr;
-    logStr << "result = [";
-    for(unsigned i=0; i<=n; i++) {
-      logStr << result[i];
-      if(i != n) logStr << ", ";
-    }
-    logStr << "];";
-    LOG_DEBUG(logStr.str());
+        std::stringstream logStr;
+        logStr << "result = [";
+        for(unsigned i = 0; i<=n; i++) {
+          logStr << result[i];
+          if(i != n) logStr << ", ";
+        }
+        logStr << "];";
+        LOG_DEBUG(logStr.str());
 #endif
-  }
-}
-
+      }
+    }
 
-#if ! USE_ORIGINAL_FILTER
-// This method initializes the weights array.
-void FilterBank::generate_filter()
-{
-  unsigned n = itsNrChannels * itsNrTaps;
 
-  std::stringstream logStr;
+#if !USE_ORIGINAL_FILTER
+    // This method initializes the weights array.
+    void FilterBank::generate_filter()
+    {
+      unsigned n = itsNrChannels * itsNrTaps;
 
-  if (itsVerbose) {
-    logStr << "generating FIR filter bank with " << itsNrChannels << " channels and " << itsNrTaps << " taps (" << n << " total), using a ";
-  }
+      std::stringstream logStr;
 
-  std::vector<double> window(n);
+      if (itsVerbose) {
+        logStr << "generating FIR filter bank with " << itsNrChannels << " channels and " << itsNrTaps << " taps (" << n << " total), using a ";
+      }
 
-  switch (itsWindowType) {
-  case HAMMING: {
-    // Use a n-point Hamming window.
-    if (itsVerbose) {
-      logStr << "Hamming window";
-      LOG_DEBUG(logStr.str());
-    }
-    hamming(n, &window[0]);
-    break;
-  }
-  case BLACKMAN: {
-    // Use a n-point Blackman window.
-    if (itsVerbose) {
-      logStr << "Blackman window";
-      LOG_DEBUG(logStr.str());
-    }
-    blackman(n, &window[0]);
-    break;
-  }
-  case GAUSSIAN: {
-    // Use a n-point Gaussian window.
-    double alpha = 3.5;
-    if (itsVerbose) {
-      logStr << "Gaussian window with alpha = " << alpha;
-      LOG_DEBUG(logStr.str());
-    }
-    gaussian(n, alpha, &window[0]);
-    break;
-  }
-  case KAISER: {
-    // Use a n-point Kaiser window.
-    // The beta parameter is found in matlab / octave with
-    // [n,Wn,bta,filtype]=kaiserord([fsin/channels 1.4*fsin/channels],[1 0],[10^(0.5/20) 10^(-91/20)],fsin);
-    // where fsin is the sample freq
-    double beta = 9.0695;
-    if (itsVerbose) {
-      logStr << "Kaiser window with beta = " << beta;
-      LOG_DEBUG(logStr.str());
-    }
-    kaiser(n, beta, &window[0]);
-    break;
-  }
-  default:
-    THROW(GPUProcException, "unknown window type");
-  }
+      std::vector<double> window(n);
+
+      switch (itsWindowType) {
+      case HAMMING: {
+        // Use a n-point Hamming window.
+        if (itsVerbose) {
+          logStr << "Hamming window";
+          LOG_DEBUG(logStr.str());
+        }
+        hamming(n, &window[0]);
+        break;
+      }
+      case BLACKMAN: {
+        // Use a n-point Blackman window.
+        if (itsVerbose) {
+          logStr << "Blackman window";
+          LOG_DEBUG(logStr.str());
+        }
+        blackman(n, &window[0]);
+        break;
+      }
+      case GAUSSIAN: {
+        // Use a n-point Gaussian window.
+        double alpha = 3.5;
+        if (itsVerbose) {
+          logStr << "Gaussian window with alpha = " << alpha;
+          LOG_DEBUG(logStr.str());
+        }
+        gaussian(n, alpha, &window[0]);
+        break;
+      }
+      case KAISER: {
+        // Use a n-point Kaiser window.
+        // The beta parameter is found in matlab / octave with
+        // [n,Wn,bta,filtype]=kaiserord([fsin/channels 1.4*fsin/channels],[1 0],[10^(0.5/20) 10^(-91/20)],fsin);
+        // where fsin is the sample freq
+        double beta = 9.0695;
+        if (itsVerbose) {
+          logStr << "Kaiser window with beta = " << beta;
+          LOG_DEBUG(logStr.str());
+        }
+        kaiser(n, beta, &window[0]);
+        break;
+      }
+      default:
+        THROW(GPUProcException, "unknown window type");
+      }
 
 #if 0
-  std::stringstream logStr;
-  logStr << "window = [";
-  for(unsigned i=0; i<n; i++) {
-    logStr << window[i];
-    if(i != n-1) logStr << ", ";
-  }
-  logStr << "];";
-  LOG_DEBUG(logStr.str());
+      std::stringstream logStr;
+      logStr << "window = [";
+      for(unsigned i = 0; i<n; i++) {
+        logStr << window[i];
+        if(i != n - 1) logStr << ", ";
+      }
+      logStr << "];";
+      LOG_DEBUG(logStr.str());
 #endif
 
-  std::vector<double> result(n);
+      std::vector<double> result(n);
 
-  generate_fir_filter(n - 1, 1.0 / itsNrChannels, &window[0], &result[0]);
+      generate_fir_filter(n - 1, 1.0 / itsNrChannels, &window[0], &result[0]);
 
-  weights.resize(boost::extents[itsNrChannels][itsNrTaps]);
+      weights.resize(boost::extents[itsNrChannels][itsNrTaps]);
 
-  unsigned index = 0;
-  for (int tap = itsNrTaps - 1; tap >= 0; tap--) { // store the taps in reverse!
-    for (unsigned channel = 0; channel < itsNrChannels; channel++) {
-      // Correct total power.
-      // we use the 256 channel case as a reference, so we
-      // multiply by 256, and divide by the number of channels
-      weights[channel][tap] = result[index] * 256.0 / itsNrChannels;
-      index++;
-    }
-  }
+      unsigned index = 0;
+      for (int tap = itsNrTaps - 1; tap >= 0; tap--) { // store the taps in reverse!
+        for (unsigned channel = 0; channel < itsNrChannels; channel++) {
+          // Correct total power.
+          // we use the 256 channel case as a reference, so we
+          // multiply by 256, and divide by the number of channels
+          weights[channel][tap] = result[index] * 256.0 / itsNrChannels;
+          index++;
+        }
+      }
 
 #if 0
-  LOG_DEBUG("final taps: ");
-  std::stringstream logStr;
-  for(unsigned channel=0; channel<itsNrChannels; channel++) {
-    logStr << "channel: " << channel << "| ";
-    for(unsigned tap=0; tap<itsNrTaps; tap++) {
-      logStr << " " << weights[channel][tap];
-    }
-    LOG_DEBUG(logStr.str());
-  }
+      LOG_DEBUG("final taps: ");
+      std::stringstream logStr;
+      for(unsigned channel = 0; channel<itsNrChannels; channel++) {
+        logStr << "channel: " << channel << "| ";
+        for(unsigned tap = 0; tap<itsNrTaps; tap++) {
+          logStr << " " << weights[channel][tap];
+        }
+        LOG_DEBUG(logStr.str());
+      }
 #endif
-}
+    }
 
 #else // USE_ORIGINAL_FILTER
-// This method initializes the weights array.
-void FilterBank::generate_filter()
-{
-  if(itsVerbose) {
-    LOG_DEBUG("using original static 256 channel FIR filter bank");
-  }
-
-  if(itsNrTaps != 16 || itsNrChannels != 256) {
-    THROW(GPUProcException, "not supported!");
-  }
-  weights.resize(boost::extents[itsNrChannels][itsNrTaps]);
-  memcpy(weights.origin(), origWeights, (itsNrChannels * itsNrTaps) * sizeof(float));
-  itsNegated = true;
-}
+    // This method initializes the weights array.
+    void FilterBank::generate_filter()
+    {
+      if(itsVerbose) {
+        LOG_DEBUG("using original static 256 channel FIR filter bank");
+      }
+
+      if(itsNrTaps != 16 || itsNrChannels != 256) {
+        THROW(GPUProcException, "not supported!");
+      }
+      weights.resize(boost::extents[itsNrChannels][itsNrTaps]);
+      memcpy(weights.origin(), origWeights, (itsNrChannels * itsNrTaps) * sizeof(float));
+      itsNegated = true;
+    }
 #endif // USE_ORIGINAL_FILTER
 
-// In CEP, the first subband is from -98 KHz to 98 KHz, rather than from 0 to 195 KHz.
-// To avoid that the FFT outputs the channels in the wrong order (from 128 to
-// 255 followed by channels 0 to 127), we multiply each second FFT input by -1.
-// This is efficiently achieved by negating the FIR filter constants of all
-// uneven FIR filters.
-void FilterBank::negateWeights()
-{
-  for (int tap = itsNrTaps - 1; tap >= 0; tap--) { // store the taps in reverse!
-    // Negate all odd channels
-    for (unsigned channel = 1; channel < itsNrChannels; channel += 2) {
-      weights[channel][tap] = -weights[channel][tap];
+    // In CEP, the first subband is from -98 KHz to 98 KHz, rather than from 0 to 195 KHz.
+    // To avoid that the FFT outputs the channels in the wrong order (from 128 to
+    // 255 followed by channels 0 to 127), we multiply each second FFT input by -1.
+    // This is efficiently achieved by negating the FIR filter constants of all
+    // uneven FIR filters.
+    void FilterBank::negateWeights()
+    {
+      for (int tap = itsNrTaps - 1; tap >= 0; tap--) { // store the taps in reverse!
+        // Negate all odd channels
+        for (unsigned channel = 1; channel < itsNrChannels; channel += 2) {
+          weights[channel][tap] = -weights[channel][tap];
+        }
+      }
+      itsNegated = !itsNegated;
     }
-  }
-  itsNegated = !itsNegated;
-}
 
 
-// Used for debugging.
-void FilterBank::reverseTaps()
-{
-  for (unsigned channel = 0; channel < itsNrChannels; channel++) {
-    for (unsigned tap = 0; tap < itsNrTaps/2; tap++) {
-      float tmp = weights[channel][itsNrTaps - tap - 1];
-      weights[channel][itsNrTaps - tap - 1] = weights[channel][tap];
-      weights[channel][tap] = tmp;
+    // Used for debugging.
+    void FilterBank::reverseTaps()
+    {
+      for (unsigned channel = 0; channel < itsNrChannels; channel++) {
+        for (unsigned tap = 0; tap < itsNrTaps / 2; tap++) {
+          float tmp = weights[channel][itsNrTaps - tap - 1];
+          weights[channel][itsNrTaps - tap - 1] = weights[channel][tap];
+          weights[channel][tap] = tmp;
+        }
+      }
     }
-  }
-}
 
 
-// Print the weights array in the natural order, in a format that can be read by gnuplot.
-void FilterBank::printWeights()
-{
-  cout << (itsNegated ? "NEGATED" : "NORMAL(NOT NEGATED)") << endl;
-  for (int tap = itsNrTaps - 1; tap >= 0; tap--) { // taps are stored in reverse!
-    for (unsigned channel = 0; channel < itsNrChannels; channel++) {
-      if (itsNegated && channel % 2 != 0) {
-        cout << -weights[channel][tap] << endl; // odd channels are negated
-      } else {
-        cout << weights[channel][tap] << endl;
+    // Print the weights array in the natural order, in a format that can be read by gnuplot.
+    void FilterBank::printWeights()
+    {
+      cout << (itsNegated ? "NEGATED" : "NORMAL(NOT NEGATED)") << endl;
+      for (int tap = itsNrTaps - 1; tap >= 0; tap--) { // taps are stored in reverse!
+        for (unsigned channel = 0; channel < itsNrChannels; channel++) {
+          if (itsNegated && channel % 2 != 0) {
+            cout << -weights[channel][tap] << endl; // odd channels are negated
+          } else {
+            cout << weights[channel][tap] << endl;
+          }
+        }
       }
     }
-  }
-}
 
-} // namespace RTCP
+  } // namespace RTCP
 } // namespace LOFAR
diff --git a/RTCP/Cobalt/GPUProc/src/FilterBank.h b/RTCP/Cobalt/GPUProc/src/FilterBank.h
index 1815bfeb3aa7506aaff5f1414070cb5b0b67ec05..934db9ae9ec2564f2f7e1c5e32c0a31c8a699296 100644
--- a/RTCP/Cobalt/GPUProc/src/FilterBank.h
+++ b/RTCP/Cobalt/GPUProc/src/FilterBank.h
@@ -9,106 +9,108 @@
 
 #include <boost/multi_array.hpp>
 
-namespace LOFAR {
-namespace RTCP {
+namespace LOFAR
+{
+  namespace RTCP
+  {
 
-enum WindowType { HAMMING, BLACKMAN, GAUSSIAN, KAISER, PREDEFINED_FILTER };
+    enum WindowType { HAMMING, BLACKMAN, GAUSSIAN, KAISER, PREDEFINED_FILTER };
 
-// Note that the filter tap constants for a channel are in reverse order.
-// This makes the implementation more efficient.
+    // Note that the filter tap constants for a channel are in reverse order.
+    // This makes the implementation more efficient.
 
-class FilterBank
-{
-  public:
+    class FilterBank
+    {
+    public:
 
-  // This constructor designs a new filter with the specified parameters, and initializes the weights array.
-  FilterBank(bool verbose, unsigned taps, unsigned channels, WindowType windowType);
+      // This constructor designs a new filter with the specified parameters, and initializes the weights array.
+      FilterBank(bool verbose, unsigned taps, unsigned channels, WindowType windowType);
 
-  // This constructor creates a filterbank from an already existing set of weights.
-  FilterBank(bool verbose, unsigned taps, unsigned channels, float *weights);
+      // This constructor creates a filterbank from an already existing set of weights.
+      FilterBank(bool verbose, unsigned taps, unsigned channels, float *weights);
 
-  unsigned getNrTaps();
+      unsigned getNrTaps();
 
-  float *getWeights(unsigned channel);
-  const boost::multi_array<float, 2> &getWeights() const; // [nrChannels][taps];
+      float *getWeights(unsigned channel);
+      const boost::multi_array<float, 2> &getWeights() const; // [nrChannels][taps];
 
-  // In CEP, the first subband is from -98 KHz to 98 KHz, rather than from 0 to 195 KHz.
-  // To avoid that the FFT outputs the channels in the wrong order (from 128 to
-  // 255 followed by channels 0 to 127), we multiply each second FFT input by -1.
-  // This is efficiently achieved by negating the FIR filter constants of all
-  // uneven FIR filters.
-  void negateWeights();
+      // In CEP, the first subband is from -98 KHz to 98 KHz, rather than from 0 to 195 KHz.
+      // To avoid that the FFT outputs the channels in the wrong order (from 128 to
+      // 255 followed by channels 0 to 127), we multiply each second FFT input by -1.
+      // This is efficiently achieved by negating the FIR filter constants of all
+      // uneven FIR filters.
+      void negateWeights();
 
-  bool isNegated();
+      bool isNegated();
 
-  // Used for debugging.
-  void reverseTaps();
+      // Used for debugging.
+      void reverseTaps();
 
-  // Print the weights array in the natural order, in a format that can be read by gnuplot.
-  void printWeights();
+      // Print the weights array in the natural order, in a format that can be read by gnuplot.
+      void printWeights();
 
-private:
-  // Hamming window function
-  void hamming(unsigned n, double d[]);
+    private:
+      // Hamming window function
+      void hamming(unsigned n, double d[]);
 
-  // Blackman window function
-  void blackman(unsigned n, double d[]);
+      // Blackman window function
+      void blackman(unsigned n, double d[]);
 
-  // Gaussian window function
-  void gaussian(int n, double a, double d[]);
+      // Gaussian window function
+      void gaussian(int n, double a, double d[]);
 
-  // Kaiser window function
-  void kaiser(int n, double beta, double d[]);
+      // Kaiser window function
+      void kaiser(int n, double beta, double d[]);
 
-  // helper functions
-  double besselI0(double x);
-  void interpolate(const double x[], const double y[], unsigned xlen, unsigned n, double result[]);
-  void generate_fir_filter(unsigned n, double w, const double window[], double result[]);
-  void generate_filter();
+      // helper functions
+      double besselI0(double x);
+      void interpolate(const double x[], const double y[], unsigned xlen, unsigned n, double result[]);
+      void generate_fir_filter(unsigned n, double w, const double window[], double result[]);
+      void generate_filter();
 
 
-  // The window used for generating the filter, default is KAISER.
-  WindowType itsWindowType;
+      // The window used for generating the filter, default is KAISER.
+      WindowType itsWindowType;
 
-  const unsigned itsNrTaps;
-  const unsigned itsNrChannels;
-  const bool itsVerbose;
-  bool itsNegated;
+      const unsigned itsNrTaps;
+      const unsigned itsNrChannels;
+      const bool itsVerbose;
+      bool itsNegated;
 
-  // Store the weights in a multiarray, since both the number of channels are not known at compile time.
-  boost::multi_array<float, 2> weights; // [nrChannels][taps];
+      // Store the weights in a multiarray, since both the number of channels are not known at compile time.
+      boost::multi_array<float, 2> weights; // [nrChannels][taps];
 
 #if USE_ORIGINAL_FILTER
-  static const float originalCepPPFWeights[256][16];
+      static const float originalCepPPFWeights[256][16];
 #endif
 
-};
+    };
 
 
-inline unsigned FilterBank::getNrTaps()
-{
-  return itsNrTaps;
-}
+    inline unsigned FilterBank::getNrTaps()
+    {
+      return itsNrTaps;
+    }
 
 
-inline float *FilterBank::getWeights(unsigned channel)
-{
-  return weights[channel].origin();
-}
+    inline float *FilterBank::getWeights(unsigned channel)
+    {
+      return weights[channel].origin();
+    }
 
 
-inline const boost::multi_array<float, 2> &FilterBank::getWeights() const
-{
-  return weights;
-}
+    inline const boost::multi_array<float, 2> &FilterBank::getWeights() const
+    {
+      return weights;
+    }
 
 
-inline bool FilterBank::isNegated()
-{
-  return itsNegated;
-}
+    inline bool FilterBank::isNegated()
+    {
+      return itsNegated;
+    }
 
-} // namespace RTCP
+  } // namespace RTCP
 } // namespace LOFAR
 
 #endif
diff --git a/RTCP/Cobalt/GPUProc/src/Input/BeamletBuffer.cc b/RTCP/Cobalt/GPUProc/src/Input/BeamletBuffer.cc
index 10a8ebbcf555a107a5ed5fa3aea2b9f59d96679d..5b68701e4d071d86019ad3beae7f590e3a525ed3 100644
--- a/RTCP/Cobalt/GPUProc/src/Input/BeamletBuffer.cc
+++ b/RTCP/Cobalt/GPUProc/src/Input/BeamletBuffer.cc
@@ -36,380 +36,400 @@
 using boost::format;
 
 
-namespace LOFAR {
-namespace RTCP {
-
-template<typename SAMPLE_TYPE> const unsigned BeamletBuffer<SAMPLE_TYPE>::itsNrTimesPerPacket;
-
-
-// The buffer size is a multiple of the input packet size.  By setting
-// itsOffset to a proper value, we can assure that input packets never
-// wrap around the circular buffer
-
-template<typename SAMPLE_TYPE> BeamletBuffer<SAMPLE_TYPE>::BeamletBuffer(const Parset &ps, const std::string &stationName, unsigned rspBoard)
-:
-  itsRSPboard(rspBoard),
-  itsNrSubbands(ps.nrSlotsInFrame()),
-  itsPacketSize(sizeof(struct RSP::Header) + itsNrTimesPerPacket * itsNrSubbands * NR_POLARIZATIONS * sizeof(SAMPLE_TYPE)),
-  itsSize(align(ps.inputBufferSize(), itsNrTimesPerPacket)),
-  itsHistorySize(ps.nrHistorySamples()),
-  itsIsRealTime(ps.realTime()),
-  itsSynchronizedReaderWriter(itsIsRealTime ? 0 : new SynchronizedReaderAndWriter(itsSize)), // FIXME: does not work for multiple observations
-  itsLockedRanges(itsSize),
-  itsSBBuffers(boost::extents[itsNrSubbands][itsSize][NR_POLARIZATIONS], 128 /*, hugeMemoryAllocator*/),
-  itsOffset(0),
-  itsPreviousTimeStamp(0),
-  itsPreviousI(0),
-  itsCurrentTimeStamp(0),
-  itsCurrentI(0),
+namespace LOFAR
+{
+  namespace RTCP
+  {
+
+    template<typename SAMPLE_TYPE>
+    const unsigned BeamletBuffer<SAMPLE_TYPE>::itsNrTimesPerPacket;
+
+
+    // The buffer size is a multiple of the input packet size.  By setting
+    // itsOffset to a proper value, we can assure that input packets never
+    // wrap around the circular buffer
+
+    template<typename SAMPLE_TYPE>
+    BeamletBuffer<SAMPLE_TYPE>::BeamletBuffer(const Parset &ps, const std::string &stationName, unsigned rspBoard)
+      :
+      itsRSPboard(rspBoard),
+      itsNrSubbands(ps.nrSlotsInFrame()),
+      itsPacketSize(sizeof(struct RSP::Header) + itsNrTimesPerPacket * itsNrSubbands * NR_POLARIZATIONS * sizeof(SAMPLE_TYPE)),
+      itsSize(align(ps.inputBufferSize(), itsNrTimesPerPacket)),
+      itsHistorySize(ps.nrHistorySamples()),
+      itsIsRealTime(ps.realTime()),
+      itsSynchronizedReaderWriter(itsIsRealTime ? 0 : new SynchronizedReaderAndWriter(itsSize)), // FIXME: does not work for multiple observations
+      itsLockedRanges(itsSize),
+      itsSBBuffers(boost::extents[itsNrSubbands][itsSize][NR_POLARIZATIONS], 128 /*, hugeMemoryAllocator*/),
+      itsOffset(0),
+      itsPreviousTimeStamp(0),
+      itsPreviousI(0),
+      itsCurrentTimeStamp(0),
+      itsCurrentI(0),
 #if defined HAVE_BGP && !defined USE_VALGRIND
-  itsStride(itsSBBuffers[0].num_elements() * sizeof(SAMPLE_TYPE)),
+      itsStride(itsSBBuffers[0].num_elements() * sizeof(SAMPLE_TYPE)),
 #else
-  itsStride(itsSBBuffers[0].num_elements()),
+      itsStride(itsSBBuffers[0].num_elements()),
 #endif
-  itsReadTimer("buffer read", true, true),
-  itsWriteTimer("buffer write", true, true)
-{
-  itsLogPrefix = str(format("[station %s board %u] ") % stationName % rspBoard);
+      itsReadTimer("buffer read", true, true),
+      itsWriteTimer("buffer write", true, true)
+    {
+      itsLogPrefix = str(format("[station %s board %u] ") % stationName % rspBoard);
 
-  if (ps.getUint32("OLAP.nrTimesInFrame") != itsNrTimesPerPacket)
-    THROW(GPUProcException, "OLAP.nrTimesInFrame should be " << boost::lexical_cast<std::string>(itsNrTimesPerPacket));
+      if (ps.getUint32("OLAP.nrTimesInFrame") != itsNrTimesPerPacket)
+        THROW(GPUProcException, "OLAP.nrTimesInFrame should be " << boost::lexical_cast<std::string>(itsNrTimesPerPacket));
 
 #if 0
-  if (ps->realTime())
-    itsSynchronizedReaderWriter = new TimeSynchronizedReader(ps->maxNetworkDelay());  
-  else
-    itsSynchronizedReaderWriter = new SynchronizedReaderAndWriter(itsSize);
+      if (ps->realTime())
+        itsSynchronizedReaderWriter = new TimeSynchronizedReader(ps->maxNetworkDelay());
+      else
+        itsSynchronizedReaderWriter = new SynchronizedReaderAndWriter(itsSize);
 #endif
 
 #if defined USE_VALGRIND
-  memset(itsSBBuffers.origin(), 0, itsSBBuffers.num_elements() * sizeof(SAMPLE_TYPE));
+      memset(itsSBBuffers.origin(), 0, itsSBBuffers.num_elements() * sizeof(SAMPLE_TYPE));
 #endif
 
-  LOG_DEBUG_STR(itsLogPrefix << "Circular buffer at " << itsSBBuffers.origin() << "; contains " << itsSize << " samples");
-}
+      LOG_DEBUG_STR(itsLogPrefix << "Circular buffer at " << itsSBBuffers.origin() << "; contains " << itsSize << " samples");
+    }
 
 
 #if defined HAVE_BGP && !defined USE_VALGRIND
 
-template<> inline void BeamletBuffer<i4complex>::writePacket(i4complex *dst, const i4complex *src)
-{
-  _copy_pkt_to_bbuffer_32_bytes(dst, itsStride, src, itsNrSubbands);
-}
+    template<>
+    inline void BeamletBuffer<i4complex>::writePacket(i4complex *dst, const i4complex *src)
+    {
+      _copy_pkt_to_bbuffer_32_bytes(dst, itsStride, src, itsNrSubbands);
+    }
 
-template<> inline void BeamletBuffer<i8complex>::writePacket(i8complex *dst, const i8complex *src)
-{
-  _copy_pkt_to_bbuffer_64_bytes(dst, itsStride, src, itsNrSubbands);
-}
+    template<>
+    inline void BeamletBuffer<i8complex>::writePacket(i8complex *dst, const i8complex *src)
+    {
+      _copy_pkt_to_bbuffer_64_bytes(dst, itsStride, src, itsNrSubbands);
+    }
 
-template<> inline void BeamletBuffer<i16complex>::writePacket(i16complex *dst, const i16complex *src)
-{
-  _copy_pkt_to_bbuffer_128_bytes(dst, itsStride, src, itsNrSubbands);
-}
+    template<>
+    inline void BeamletBuffer<i16complex>::writePacket(i16complex *dst, const i16complex *src)
+    {
+      _copy_pkt_to_bbuffer_128_bytes(dst, itsStride, src, itsNrSubbands);
+    }
 
 #endif
 
 
-template<typename SAMPLE_TYPE> inline void BeamletBuffer<SAMPLE_TYPE>::writePacket(SAMPLE_TYPE *dst, const SAMPLE_TYPE *src)
-{
-  for (unsigned sb = 0; sb < itsNrSubbands; sb ++) {
-    for (unsigned i = 0; i < itsNrTimesPerPacket * NR_POLARIZATIONS; i ++)
-      dst[i] = *src ++;
+    template<typename SAMPLE_TYPE>
+    inline void BeamletBuffer<SAMPLE_TYPE>::writePacket(SAMPLE_TYPE *dst, const SAMPLE_TYPE *src)
+    {
+      for (unsigned sb = 0; sb < itsNrSubbands; sb++) {
+        for (unsigned i = 0; i < itsNrTimesPerPacket * NR_POLARIZATIONS; i++)
+          dst[i] = *src++;
 
-    dst += itsStride;
-  }
-}
+        dst += itsStride;
+      }
+    }
 
 
-template<typename SAMPLE_TYPE> inline void BeamletBuffer<SAMPLE_TYPE>::updateValidData(const TimeStamp &begin, const TimeStamp &end)
-{
-  ScopedLock sl(itsValidDataMutex);
+    template<typename SAMPLE_TYPE>
+    inline void BeamletBuffer<SAMPLE_TYPE>::updateValidData(const TimeStamp &begin, const TimeStamp &end)
+    {
+      ScopedLock sl(itsValidDataMutex);
 
-  itsValidData.exclude(0, end - itsSize);  // forget old ValidData
+      itsValidData.exclude(0, end - itsSize); // forget old ValidData
 
-  // add new ValidData (except if range list will grow too long, to avoid long
-  // computations)
+      // add new ValidData (except if range list will grow too long, to avoid long
+      // computations)
 
-  const SparseSet<TimeStamp>::Ranges &ranges = itsValidData.getRanges();
+      const SparseSet<TimeStamp>::Ranges &ranges = itsValidData.getRanges();
 
-  if (ranges.size() < 64 || ranges.back().end == begin) 
-    itsValidData.include(begin, end);
-}
+      if (ranges.size() < 64 || ranges.back().end == begin)
+        itsValidData.include(begin, end);
+    }
 
 
-template<typename SAMPLE_TYPE> void BeamletBuffer<SAMPLE_TYPE>::writeConsecutivePackets(unsigned count)
-{
-  unsigned  nrTimes = count * itsNrTimesPerPacket;
-  TimeStamp begin   = itsCurrentTimeStamp, end  = begin + nrTimes;
-  unsigned  startI  = itsCurrentI,	   endI = startI + nrTimes;
-
-  if (endI >= itsSize)
-    endI -= itsSize;
-
-  SAMPLE_TYPE *dst = itsSBBuffers[0][startI].origin();
-  
-  // in synchronous mode, do not overrun tail of reader
-  if (!itsIsRealTime)
-    itsSynchronizedReaderWriter->startWrite(begin, end);
-
-  // do not write in circular buffer section that is being read
-  itsLockedRanges.lock(startI, endI);
-
-  while (itsCurrentI != endI) {
-    writePacket(dst, reinterpret_cast<const SAMPLE_TYPE *>(itsCurrentPacketPtr));
-    itsCurrentPacketPtr += itsPacketSize;
-    dst			+= itsNrTimesPerPacket * NR_POLARIZATIONS;
-
-    if ((itsCurrentI += itsNrTimesPerPacket) == itsSize) {
-      itsCurrentI = 0;
-      dst	  = itsSBBuffers.origin();
-    }
-  }
+    template<typename SAMPLE_TYPE>
+    void BeamletBuffer<SAMPLE_TYPE>::writeConsecutivePackets(unsigned count)
+    {
+      unsigned nrTimes = count * itsNrTimesPerPacket;
+      TimeStamp begin = itsCurrentTimeStamp, end = begin + nrTimes;
+      unsigned startI = itsCurrentI,         endI = startI + nrTimes;
 
-  itsCurrentTimeStamp = end;
-  updateValidData(begin, end);
+      if (endI >= itsSize)
+        endI -= itsSize;
 
-  itsLockedRanges.unlock(startI, endI);
+      SAMPLE_TYPE *dst = itsSBBuffers[0][startI].origin();
 
-  if (!itsIsRealTime)
-    itsSynchronizedReaderWriter->finishedWrite(end);
-}
+      // in synchronous mode, do not overrun tail of reader
+      if (!itsIsRealTime)
+        itsSynchronizedReaderWriter->startWrite(begin, end);
 
+      // do not write in circular buffer section that is being read
+      itsLockedRanges.lock(startI, endI);
 
-template<typename SAMPLE_TYPE> void BeamletBuffer<SAMPLE_TYPE>::resetCurrentTimeStamp(const TimeStamp &newTimeStamp)
-{
-  // A packet with unexpected timestamp was received.  Handle accordingly.
-  bool firstPacket = !itsCurrentTimeStamp; // the first timestamp is always unexpected
+      while (itsCurrentI != endI) {
+        writePacket(dst, reinterpret_cast<const SAMPLE_TYPE *>(itsCurrentPacketPtr));
+        itsCurrentPacketPtr += itsPacketSize;
+        dst += itsNrTimesPerPacket * NR_POLARIZATIONS;
 
-  itsCurrentTimeStamp = newTimeStamp;
-  itsCurrentI	      = mapTime2Index(newTimeStamp);
+        if ((itsCurrentI += itsNrTimesPerPacket) == itsSize) {
+          itsCurrentI = 0;
+          dst = itsSBBuffers.origin();
+        }
+      }
 
-  if (!aligned(itsCurrentI, itsNrTimesPerPacket)) {
-    // RSP board reset?  Recompute itsOffset and clear the entire buffer.
+      itsCurrentTimeStamp = end;
+      updateValidData(begin, end);
 
-    ScopedLock sl(itsReadMutex); // avoid reset while other thread reads
+      itsLockedRanges.unlock(startI, endI);
 
-    int oldOffset = itsOffset;
-    itsOffset   = - (newTimeStamp % itsNrTimesPerPacket);
-    itsCurrentI = mapTime2Index(newTimeStamp);
-    assert(aligned(itsCurrentI, itsNrTimesPerPacket));
+      if (!itsIsRealTime)
+        itsSynchronizedReaderWriter->finishedWrite(end);
+    }
 
+
+    template<typename SAMPLE_TYPE>
+    void BeamletBuffer<SAMPLE_TYPE>::resetCurrentTimeStamp(const TimeStamp &newTimeStamp)
     {
-      ScopedLock sl(itsValidDataMutex);
-      itsValidData.reset();
+      // A packet with unexpected timestamp was received.  Handle accordingly.
+      bool firstPacket = !itsCurrentTimeStamp; // the first timestamp is always unexpected
+
+      itsCurrentTimeStamp = newTimeStamp;
+      itsCurrentI = mapTime2Index(newTimeStamp);
+
+      if (!aligned(itsCurrentI, itsNrTimesPerPacket)) {
+        // RSP board reset?  Recompute itsOffset and clear the entire buffer.
+
+        ScopedLock sl(itsReadMutex); // avoid reset while other thread reads
+
+        int oldOffset = itsOffset;
+        itsOffset = -(newTimeStamp % itsNrTimesPerPacket);
+        itsCurrentI = mapTime2Index(newTimeStamp);
+        assert(aligned(itsCurrentI, itsNrTimesPerPacket));
+
+        {
+          ScopedLock sl(itsValidDataMutex);
+          itsValidData.reset();
+        }
+
+        if (!firstPacket) {
+          LOG_WARN_STR(itsLogPrefix << "Reset BeamletBuffer at " << newTimeStamp << "; itsOffset was " << oldOffset << " and becomes " << itsOffset);
+        }
+      }
     }
 
-    if (!firstPacket) {
-      LOG_WARN_STR(itsLogPrefix << "Reset BeamletBuffer at " << newTimeStamp << "; itsOffset was " << oldOffset << " and becomes " << itsOffset);
-    }  
-  }
-}
 
+    template<typename SAMPLE_TYPE>
+    void BeamletBuffer<SAMPLE_TYPE>::writeMultiplePackets(const void *rspData, const std::vector<TimeStamp> &timeStamps)
+    {
+      itsWriteTimer.start();
+      itsCurrentPacketPtr = reinterpret_cast<const char *>(rspData) + sizeof(struct RSP::Header);
 
-template<typename SAMPLE_TYPE> void BeamletBuffer<SAMPLE_TYPE>::writeMultiplePackets(const void *rspData, const std::vector<TimeStamp> &timeStamps)
-{
-  itsWriteTimer.start();
-  itsCurrentPacketPtr = reinterpret_cast<const char *>(rspData) + sizeof(struct RSP::Header);
+      for (unsigned first = 0, last; first < timeStamps.size(); ) {
+        if (timeStamps[first] != itsCurrentTimeStamp)
+          resetCurrentTimeStamp(timeStamps[first]);
 
-  for (unsigned first = 0, last; first < timeStamps.size();) {
-    if (timeStamps[first] != itsCurrentTimeStamp)
-      resetCurrentTimeStamp(timeStamps[first]);
+        // find a series of consecutively timed packets
+        for (last = first + 1; last < timeStamps.size() && timeStamps[last] == timeStamps[last - 1] + itsNrTimesPerPacket; last++)
+          ;
 
-    // find a series of consecutively timed packets
-    for (last = first + 1; last < timeStamps.size() && timeStamps[last] == timeStamps[last - 1] + itsNrTimesPerPacket; last ++)
-      ;
+        writeConsecutivePackets(last - first);
+        first = last;
+      }
 
-    writeConsecutivePackets(last - first);
-    first = last;
-  }
+      itsWriteTimer.stop();
+    }
 
-  itsWriteTimer.stop();
-}
 
+    template<typename SAMPLE_TYPE>
+    void BeamletBuffer<SAMPLE_TYPE>::writePacketData(const SAMPLE_TYPE *data, const TimeStamp &begin)
+    {
+      itsWriteTimer.start();
 
-template<typename SAMPLE_TYPE> void BeamletBuffer<SAMPLE_TYPE>::writePacketData(const SAMPLE_TYPE *data, const TimeStamp &begin)
-{
-  itsWriteTimer.start();
+      TimeStamp end = begin + itsNrTimesPerPacket;
 
-  TimeStamp end = begin + itsNrTimesPerPacket;
+      // cache previous index, to avoid expensive mapTime2Index()
+      unsigned startI;
 
-  // cache previous index, to avoid expensive mapTime2Index()
-  unsigned startI;
+      if (begin == itsPreviousTimeStamp) {
+        startI = itsPreviousI;
+      } else {
+        startI = mapTime2Index(begin);
 
-  if (begin == itsPreviousTimeStamp) {
-    startI = itsPreviousI;
-  } else {
-    startI = mapTime2Index(begin);
+        if (!aligned(startI, itsNrTimesPerPacket)) {
+          // RSP board reset?  Recompute itsOffset and clear the entire buffer.
+          itsOffset = -(startI % itsNrTimesPerPacket);
+          startI = mapTime2Index(begin);
 
-    if (!aligned(startI, itsNrTimesPerPacket)) {
-      // RSP board reset?  Recompute itsOffset and clear the entire buffer.
-      itsOffset = - (startI % itsNrTimesPerPacket);
-      startI    = mapTime2Index(begin);
+          {
+            ScopedLock sl(itsValidDataMutex);
+            itsValidData.reset();
+          }
+        }
 
-      {
-        ScopedLock sl(itsValidDataMutex);
-        itsValidData.reset();
+        //LOG_DEBUG_STR(""timestamp = " << (uint64_t) begin << ", itsOffset = " << itsOffset");
       }
-    }
 
-    //LOG_DEBUG_STR(""timestamp = " << (uint64_t) begin << ", itsOffset = " << itsOffset");
-  }
+      unsigned endI = startI + itsNrTimesPerPacket;
 
-  unsigned endI = startI + itsNrTimesPerPacket;
+      if (endI >= itsSize)
+        endI -= itsSize;
 
-  if (endI >= itsSize)
-    endI -= itsSize;
+      itsPreviousTimeStamp = end;
+      itsPreviousI = endI;
 
-  itsPreviousTimeStamp = end;
-  itsPreviousI	       = endI;
+      // in synchronous mode, do not overrun tail of reader
+      if (!itsIsRealTime)
+        itsSynchronizedReaderWriter->startWrite(begin, end);
 
-  // in synchronous mode, do not overrun tail of reader
-  if (!itsIsRealTime)
-    itsSynchronizedReaderWriter->startWrite(begin, end);
+      // do not write in circular buffer section that is being read
+      itsLockedRanges.lock(startI, endI);
 
-  // do not write in circular buffer section that is being read
-  itsLockedRanges.lock(startI, endI);
+      writePacket(itsSBBuffers[0][startI].origin(), data);
 
-  writePacket(itsSBBuffers[0][startI].origin(), data);
-  
-  // forget old ValidData
-  {
-    ScopedLock sl(itsValidDataMutex);
-    itsValidData.exclude(0, end - itsSize);
+      // forget old ValidData
+      {
+        ScopedLock sl(itsValidDataMutex);
+        itsValidData.exclude(0, end - itsSize);
+
+        unsigned rangesSize = itsValidData.getRanges().size();
 
-    unsigned rangesSize = itsValidData.getRanges().size();
+        // add new ValidData (except if range list will grow too long, to avoid long
+        // computations)
+        if (rangesSize < 64 || itsValidData.getRanges()[rangesSize - 1].end == begin)
+          itsValidData.include(begin, end);
+      }
 
-    // add new ValidData (except if range list will grow too long, to avoid long
-    // computations)
-    if (rangesSize < 64 || itsValidData.getRanges()[rangesSize - 1].end == begin) 
-      itsValidData.include(begin, end);
-  }  
+      itsLockedRanges.unlock(startI, endI);
 
-  itsLockedRanges.unlock(startI, endI);
+      if (!itsIsRealTime)
+        itsSynchronizedReaderWriter->finishedWrite(end);
 
-  if (!itsIsRealTime)
-    itsSynchronizedReaderWriter->finishedWrite(end);
+      itsWriteTimer.stop();
+    }
 
-  itsWriteTimer.stop();
-}
 
+    template<typename SAMPLE_TYPE>
+    void BeamletBuffer<SAMPLE_TYPE>::startReadTransaction(const std::vector<TimeStamp> &begin, unsigned nrElements)
+    {
+      // in synchronous mode, do not overrun writer
+      if (!itsIsRealTime) {
+        TimeStamp minBegin = *std::min_element(begin.begin(), begin.end());
+        TimeStamp maxEnd = *std::max_element(begin.begin(), begin.end()) + nrElements;
+        itsSynchronizedReaderWriter->startRead(minBegin, maxEnd);
+      }
 
-template<typename SAMPLE_TYPE> void BeamletBuffer<SAMPLE_TYPE>::startReadTransaction(const std::vector<TimeStamp> &begin, unsigned nrElements)
-{
-  // in synchronous mode, do not overrun writer
-  if (!itsIsRealTime) {
-    TimeStamp minBegin = *std::min_element(begin.begin(), begin.end());
-    TimeStamp maxEnd   = *std::max_element(begin.begin(), begin.end()) + nrElements;
-    itsSynchronizedReaderWriter->startRead(minBegin, maxEnd);
-  }
+      itsReadMutex.lock(); // only one reader per BeamletBuffer allowed
+      itsReadTimer.start();
 
-  itsReadMutex.lock(); // only one reader per BeamletBuffer allowed
-  itsReadTimer.start();
+      unsigned nrBeams = begin.size();
 
-  unsigned nrBeams = begin.size();
+      itsEnd.resize(nrBeams);
+      itsStartI.resize(nrBeams);
+      itsEndI.resize(nrBeams);
 
-  itsEnd.resize(nrBeams);
-  itsStartI.resize(nrBeams);
-  itsEndI.resize(nrBeams);
+      itsBegin = begin;
 
-  itsBegin = begin;
+      for (unsigned beam = 0; beam < begin.size(); beam++) {
+        itsEnd[beam] = begin[beam] + nrElements;
+        itsStartI[beam] = mapTime2Index(begin[beam]);
+        itsEndI[beam] = mapTime2Index(itsEnd[beam]);
+      }
 
-  for (unsigned beam = 0; beam < begin.size(); beam ++) {
-    itsEnd[beam]    = begin[beam] + nrElements;
-    itsStartI[beam] = mapTime2Index(begin[beam]);
-    itsEndI[beam]   = mapTime2Index(itsEnd[beam]);
-  }
- 
-  itsMinEnd	     = *std::min_element(itsEnd.begin(),    itsEnd.end());
-  itsMinStartI	     = *std::min_element(itsStartI.begin(), itsStartI.end());
-  itsMaxEndI	     = *std::max_element(itsEndI.begin(),   itsEndI.end());
+      itsMinEnd = *std::min_element(itsEnd.begin(),    itsEnd.end());
+      itsMinStartI = *std::min_element(itsStartI.begin(), itsStartI.end());
+      itsMaxEndI = *std::max_element(itsEndI.begin(),   itsEndI.end());
 
-  // do not read from circular buffer section that is being written
-  itsLockedRanges.lock(itsMinStartI, itsMaxEndI);
-}
+      // do not read from circular buffer section that is being written
+      itsLockedRanges.lock(itsMinStartI, itsMaxEndI);
+    }
 
 
-template<typename SAMPLE_TYPE> void BeamletBuffer<SAMPLE_TYPE>::sendSubband(Stream *str, unsigned subband, unsigned beam) const
-{
-  // Align to 32 bytes and make multiple of 32 bytes by prepending/appending
-  // extra data.  Always send 32 bytes extra, even if data was already aligned.
-  unsigned startI = align(itsStartI[beam] - itsAlignment + 1, itsAlignment); // round down
-  unsigned endI   = align(itsEndI[beam] + 1, itsAlignment); // round up, possibly adding 32 bytes
-  
-  if (endI < startI) {
-    // the data wraps around the allocated memory, so copy in two parts
-    unsigned firstChunk = itsSize - startI;
-
-    str->write(itsSBBuffers[subband][startI].origin(), sizeof(SAMPLE_TYPE[firstChunk][NR_POLARIZATIONS]));
-    str->write(itsSBBuffers[subband][0].origin(),      sizeof(SAMPLE_TYPE[endI][NR_POLARIZATIONS]));
-  } else {
-    str->write(itsSBBuffers[subband][startI].origin(), sizeof(SAMPLE_TYPE[endI - startI][NR_POLARIZATIONS]));
-  }
-}
-
-
-template<typename SAMPLE_TYPE> void BeamletBuffer<SAMPLE_TYPE>::sendUnalignedSubband(Stream *str, unsigned subband, unsigned beam) const
-{
-  if (itsEndI[beam] < itsStartI[beam]) {
-    // the data wraps around the allocated memory, so copy in two parts
-    unsigned firstChunk = itsSize - itsStartI[beam];
+    template<typename SAMPLE_TYPE>
+    void BeamletBuffer<SAMPLE_TYPE>::sendSubband(Stream *str, unsigned subband, unsigned beam) const
+    {
+      // Align to 32 bytes and make multiple of 32 bytes by prepending/appending
+      // extra data.  Always send 32 bytes extra, even if data was already aligned.
+      unsigned startI = align(itsStartI[beam] - itsAlignment + 1, itsAlignment); // round down
+      unsigned endI = align(itsEndI[beam] + 1, itsAlignment); // round up, possibly adding 32 bytes
+
+      if (endI < startI) {
+        // the data wraps around the allocated memory, so copy in two parts
+        unsigned firstChunk = itsSize - startI;
+
+        str->write(itsSBBuffers[subband][startI].origin(), sizeof(SAMPLE_TYPE[firstChunk][NR_POLARIZATIONS]));
+        str->write(itsSBBuffers[subband][0].origin(),      sizeof(SAMPLE_TYPE[endI][NR_POLARIZATIONS]));
+      } else {
+        str->write(itsSBBuffers[subband][startI].origin(), sizeof(SAMPLE_TYPE[endI - startI][NR_POLARIZATIONS]));
+      }
+    }
+
 
-    str->write(itsSBBuffers[subband][itsStartI[beam]].origin(), sizeof(SAMPLE_TYPE[firstChunk][NR_POLARIZATIONS]));
-    str->write(itsSBBuffers[subband][0].origin(),		sizeof(SAMPLE_TYPE[itsEndI[beam]][NR_POLARIZATIONS]));
-  } else {
-    str->write(itsSBBuffers[subband][itsStartI[beam]].origin(), sizeof(SAMPLE_TYPE[itsEndI[beam] - itsStartI[beam]][NR_POLARIZATIONS]));
-  }
-}
+    template<typename SAMPLE_TYPE>
+    void BeamletBuffer<SAMPLE_TYPE>::sendUnalignedSubband(Stream *str, unsigned subband, unsigned beam) const
+    {
+      if (itsEndI[beam] < itsStartI[beam]) {
+        // the data wraps around the allocated memory, so copy in two parts
+        unsigned firstChunk = itsSize - itsStartI[beam];
+
+        str->write(itsSBBuffers[subband][itsStartI[beam]].origin(), sizeof(SAMPLE_TYPE[firstChunk][NR_POLARIZATIONS]));
+        str->write(itsSBBuffers[subband][0].origin(),               sizeof(SAMPLE_TYPE[itsEndI[beam]][NR_POLARIZATIONS]));
+      } else {
+        str->write(itsSBBuffers[subband][itsStartI[beam]].origin(), sizeof(SAMPLE_TYPE[itsEndI[beam] - itsStartI[beam]][NR_POLARIZATIONS]));
+      }
+    }
 
 
-template<typename SAMPLE_TYPE> SparseSet<unsigned> BeamletBuffer<SAMPLE_TYPE>::readFlags(unsigned beam)
-{
-  itsValidDataMutex.lock();
-  SparseSet<TimeStamp> validTimes = itsValidData.subset(itsBegin[beam], itsEnd[beam]);
-  itsValidDataMutex.unlock();
+    template<typename SAMPLE_TYPE>
+    SparseSet<unsigned> BeamletBuffer<SAMPLE_TYPE>::readFlags(unsigned beam)
+    {
+      itsValidDataMutex.lock();
+      SparseSet<TimeStamp> validTimes = itsValidData.subset(itsBegin[beam], itsEnd[beam]);
+      itsValidDataMutex.unlock();
 
-  SparseSet<unsigned> flags;
-  flags.include(0, static_cast<unsigned>(itsEnd[beam] - itsBegin[beam]));
-  
-  for (SparseSet<TimeStamp>::const_iterator it = validTimes.getRanges().begin(); it != validTimes.getRanges().end(); it ++)
-    flags.exclude(static_cast<unsigned>(it->begin - itsBegin[beam]),
-		  static_cast<unsigned>(it->end - itsBegin[beam]));
+      SparseSet<unsigned> flags;
+      flags.include(0, static_cast<unsigned>(itsEnd[beam] - itsBegin[beam]));
 
-  return flags;
-}
+      for (SparseSet<TimeStamp>::const_iterator it = validTimes.getRanges().begin(); it != validTimes.getRanges().end(); it++)
+        flags.exclude(static_cast<unsigned>(it->begin - itsBegin[beam]),
+                      static_cast<unsigned>(it->end - itsBegin[beam]));
 
+      return flags;
+    }
 
-template<typename SAMPLE_TYPE> void BeamletBuffer<SAMPLE_TYPE>::stopReadTransaction()
-{
-  itsLockedRanges.unlock(itsMinStartI, itsMaxEndI);
 
-  if (!itsIsRealTime)
-    itsSynchronizedReaderWriter->finishedRead(itsMinEnd - (itsHistorySize + 16));
-    // subtract 16 extra; due to alignment restrictions and the changing delays,
-    // it is hard to predict where the next read will begin.
-  
-  itsReadTimer.stop();
-  itsReadMutex.unlock();
-}
+    template<typename SAMPLE_TYPE>
+    void BeamletBuffer<SAMPLE_TYPE>::stopReadTransaction()
+    {
+      itsLockedRanges.unlock(itsMinStartI, itsMaxEndI);
 
+      if (!itsIsRealTime)
+        itsSynchronizedReaderWriter->finishedRead(itsMinEnd - (itsHistorySize + 16));
+      // subtract 16 extra; due to alignment restrictions and the changing delays,
+      // it is hard to predict where the next read will begin.
 
-template<typename SAMPLE_TYPE> void BeamletBuffer<SAMPLE_TYPE>::noMoreReading()
-{
-  if (!itsIsRealTime)
-    itsSynchronizedReaderWriter->noMoreReading();
-}
+      itsReadTimer.stop();
+      itsReadMutex.unlock();
+    }
 
 
-template<typename SAMPLE_TYPE> void BeamletBuffer<SAMPLE_TYPE>::noMoreWriting()
-{
-  if (!itsIsRealTime)
-    itsSynchronizedReaderWriter->noMoreWriting();
-}
+    template<typename SAMPLE_TYPE>
+    void BeamletBuffer<SAMPLE_TYPE>::noMoreReading()
+    {
+      if (!itsIsRealTime)
+        itsSynchronizedReaderWriter->noMoreReading();
+    }
+
+
+    template<typename SAMPLE_TYPE>
+    void BeamletBuffer<SAMPLE_TYPE>::noMoreWriting()
+    {
+      if (!itsIsRealTime)
+        itsSynchronizedReaderWriter->noMoreWriting();
+    }
 
 
-template class BeamletBuffer<i4complex>;
-template class BeamletBuffer<i8complex>;
-template class BeamletBuffer<i16complex>;
+    template class BeamletBuffer<i4complex>;
+    template class BeamletBuffer<i8complex>;
+    template class BeamletBuffer<i16complex>;
 
-} // namespace RTCP
+  } // namespace RTCP
 } // namespace LOFAR
diff --git a/RTCP/Cobalt/GPUProc/src/Input/BeamletBuffer.h b/RTCP/Cobalt/GPUProc/src/Input/BeamletBuffer.h
index 363dd2939f9bc9fa2d88df1a01233bd1dd6e36d2..d0d897f1a50877afcf55eb732ad75868beb669f5 100644
--- a/RTCP/Cobalt/GPUProc/src/Input/BeamletBuffer.h
+++ b/RTCP/Cobalt/GPUProc/src/Input/BeamletBuffer.h
@@ -47,87 +47,92 @@
 #include <string>
 
 
-namespace LOFAR {
-namespace RTCP {
-
-// define a "simple" type of which the size equals the size of two samples
-// (X and Y polarizations)
-
-
-template<typename SAMPLE_TYPE> class BeamletBuffer
+namespace LOFAR
 {
-  public:
-	     BeamletBuffer(const Parset &, const std::string &stationName, unsigned rspBoard);
-
-    void     writePacketData(const SAMPLE_TYPE *data, const TimeStamp &begin);
-    void     writeMultiplePackets(const void *rspData, const std::vector<TimeStamp> &);
-
-    void     startReadTransaction(const std::vector<TimeStamp> &begin, unsigned nrElements);
-    void     sendSubband(Stream *, unsigned subband, unsigned currentBeam) const;
-    void     sendUnalignedSubband(Stream *, unsigned subband, unsigned currentBeam) const;
-    unsigned alignmentShift(unsigned beam) const;
-    SparseSet<unsigned> readFlags(unsigned beam);
-    void     stopReadTransaction();
-
-    void     noMoreReading();
-    void     noMoreWriting();
-    
-    const static unsigned		  itsNrTimesPerPacket = 16;
-
-  private:
-    unsigned mapTime2Index(TimeStamp time) const;
-
-    std::string                           itsLogPrefix;
-
-    Mutex				  itsValidDataMutex;
-    SparseSet<TimeStamp>		  itsValidData;
-    unsigned				  itsRSPboard;
-    unsigned				  itsNrSubbands;
-    size_t				  itsPacketSize;
-    unsigned				  itsSize, itsHistorySize;
-    bool				  itsIsRealTime;
-    SmartPtr<SynchronizedReaderAndWriter> itsSynchronizedReaderWriter;
-    LockedRanges			  itsLockedRanges;
-    Cube<SAMPLE_TYPE>			  itsSBBuffers;
-    int					  itsOffset;
-    const static unsigned		  itsAlignment = 32 / (NR_POLARIZATIONS * sizeof(SAMPLE_TYPE));
-
-    // read internals
-    std::vector<TimeStamp>		  itsBegin, itsEnd;
-    std::vector<size_t>			  itsStartI, itsEndI;
-    size_t                                itsMinStartI, itsMaxEndI;
-    TimeStamp                             itsMinEnd;
-    Mutex				  itsReadMutex;
-
-    // write internals
-    void				  writePacket(SAMPLE_TYPE *dst, const SAMPLE_TYPE *src);
-    void				  updateValidData(const TimeStamp &begin, const TimeStamp &end);
-    void				  writeConsecutivePackets(unsigned count);
-    void				  resetCurrentTimeStamp(const TimeStamp &);
-
-    TimeStamp				  itsPreviousTimeStamp;
-    unsigned				  itsPreviousI;
-    TimeStamp				  itsCurrentTimeStamp;
-    unsigned				  itsCurrentI;
-    size_t				  itsStride;
-    const char				  *itsCurrentPacketPtr;
-
-    NSTimer				  itsReadTimer, itsWriteTimer;
-};
-
-
-template<typename SAMPLE_TYPE> inline unsigned BeamletBuffer<SAMPLE_TYPE>::alignmentShift(unsigned beam) const
-{
-  return itsStartI[beam] % itsAlignment;
-}
-
-template<typename SAMPLE_TYPE> inline unsigned BeamletBuffer<SAMPLE_TYPE>::mapTime2Index(TimeStamp time) const
-{ 
-  // TODO: this is very slow because of the %
-  return (time + itsOffset) % itsSize;
-}
-
-} // namespace RTCP
+  namespace RTCP
+  {
+
+    // define a "simple" type of which the size equals the size of two samples
+    // (X and Y polarizations)
+
+
+    template<typename SAMPLE_TYPE>
+    class BeamletBuffer
+    {
+    public:
+      BeamletBuffer(const Parset &, const std::string &stationName, unsigned rspBoard);
+
+      void     writePacketData(const SAMPLE_TYPE *data, const TimeStamp &begin);
+      void     writeMultiplePackets(const void *rspData, const std::vector<TimeStamp> &);
+
+      void     startReadTransaction(const std::vector<TimeStamp> &begin, unsigned nrElements);
+      void     sendSubband(Stream *, unsigned subband, unsigned currentBeam) const;
+      void     sendUnalignedSubband(Stream *, unsigned subband, unsigned currentBeam) const;
+      unsigned alignmentShift(unsigned beam) const;
+      SparseSet<unsigned> readFlags(unsigned beam);
+      void     stopReadTransaction();
+
+      void     noMoreReading();
+      void     noMoreWriting();
+
+      const static unsigned itsNrTimesPerPacket = 16;
+
+    private:
+      unsigned mapTime2Index(TimeStamp time) const;
+
+      std::string itsLogPrefix;
+
+      Mutex itsValidDataMutex;
+      SparseSet<TimeStamp>                  itsValidData;
+      unsigned itsRSPboard;
+      unsigned itsNrSubbands;
+      size_t itsPacketSize;
+      unsigned itsSize, itsHistorySize;
+      bool itsIsRealTime;
+      SmartPtr<SynchronizedReaderAndWriter> itsSynchronizedReaderWriter;
+      LockedRanges itsLockedRanges;
+      Cube<SAMPLE_TYPE>                     itsSBBuffers;
+      int itsOffset;
+      const static unsigned itsAlignment = 32 / (NR_POLARIZATIONS * sizeof(SAMPLE_TYPE));
+
+      // read internals
+      std::vector<TimeStamp>                itsBegin, itsEnd;
+      std::vector<size_t>                   itsStartI, itsEndI;
+      size_t itsMinStartI, itsMaxEndI;
+      TimeStamp itsMinEnd;
+      Mutex itsReadMutex;
+
+      // write internals
+      void                                  writePacket(SAMPLE_TYPE *dst, const SAMPLE_TYPE *src);
+      void                                  updateValidData(const TimeStamp &begin, const TimeStamp &end);
+      void                                  writeConsecutivePackets(unsigned count);
+      void                                  resetCurrentTimeStamp(const TimeStamp &);
+
+      TimeStamp itsPreviousTimeStamp;
+      unsigned itsPreviousI;
+      TimeStamp itsCurrentTimeStamp;
+      unsigned itsCurrentI;
+      size_t itsStride;
+      const char                            *itsCurrentPacketPtr;
+
+      NSTimer itsReadTimer, itsWriteTimer;
+    };
+
+
+    template<typename SAMPLE_TYPE>
+    inline unsigned BeamletBuffer<SAMPLE_TYPE>::alignmentShift(unsigned beam) const
+    {
+      return itsStartI[beam] % itsAlignment;
+    }
+
+    template<typename SAMPLE_TYPE>
+    inline unsigned BeamletBuffer<SAMPLE_TYPE>::mapTime2Index(TimeStamp time) const
+    {
+      // TODO: this is very slow because of the %
+      return (time + itsOffset) % itsSize;
+    }
+
+  } // namespace RTCP
 } // namespace LOFAR
 
 #endif
diff --git a/RTCP/Cobalt/GPUProc/src/Input/BeamletBufferToComputeNode.cc b/RTCP/Cobalt/GPUProc/src/Input/BeamletBufferToComputeNode.cc
index 8b564310980ee6ec92e979b40eb00f4d920eeda4..1380ba1f6e4be953319249c77f58cbeb29544390 100644
--- a/RTCP/Cobalt/GPUProc/src/Input/BeamletBufferToComputeNode.cc
+++ b/RTCP/Cobalt/GPUProc/src/Input/BeamletBufferToComputeNode.cc
@@ -1,4 +1,4 @@
-//#  BeamletBufferToComputeNode.cc: Catch RSP ethernet frames and synchronize RSP inputs 
+//#  BeamletBufferToComputeNode.cc: Catch RSP ethernet frames and synchronize RSP inputs
 //#
 //#  Copyright (C) 2006
 //#  ASTRON (Netherlands Foundation for Research in Astronomy)
@@ -47,313 +47,327 @@
 #include <boost/format.hpp>
 
 
-namespace LOFAR {
-namespace RTCP {
+namespace LOFAR
+{
+  namespace RTCP
+  {
+
+
+    template<typename SAMPLE_TYPE>
+    const unsigned BeamletBufferToComputeNode<SAMPLE_TYPE>::itsMaximumDelay;
+
+
+    template<typename SAMPLE_TYPE>
+    BeamletBufferToComputeNode<SAMPLE_TYPE>::BeamletBufferToComputeNode(const Parset &ps, const std::string &stationName, const std::vector<SmartPtr<BeamletBuffer<SAMPLE_TYPE> > > &beamletBuffers, unsigned firstBlockNumber)
+      :
+      itsPS(ps),
+      itsNrRSPboards(beamletBuffers.size()),
+      itsBeamletBuffers(beamletBuffers),
+      itsDelayTimer("delay consumer", true, true)
+    {
+      bool haveStationInput = itsNrRSPboards > 0;
+      ASSERTSTR(itsNrRSPboards > 0, "BeamletBufferToComputeNode requires at least one BeamletBuffer");
+
+      itsLogPrefix = str(boost::format("[obs %u station %s] ") % ps.observationID() % stationName);
+
+      itsSubbandBandwidth = ps.subbandBandwidth();
+      itsNrSubbands = ps.nrSubbands();
+      itsNrSamplesPerSubband = ps.nrSamplesPerSubband();
+      itsNrBeams = ps.nrBeams();
+      itsMaxNrTABs = ps.maxNrTABs();
+      itsNrTABs = ps.nrTABs();
+
+      itsSampleDuration = ps.sampleDuration();
+      itsDelayCompensation = ps.delayCompensation();
+      itsCorrectClocks = ps.correctClocks();
+      itsNeedDelays = itsDelayCompensation || itsMaxNrTABs > 1 || itsCorrectClocks;
+      itsSubbandToSAPmapping = ps.subbandToSAPmapping();
+      itsSubbandToRSPboardMapping = ps.subbandToRSPboardMapping(stationName);
+      itsSubbandToRSPslotMapping = ps.subbandToRSPslotMapping(stationName);
+
+      ASSERT( itsSubbandToSAPmapping.size() == itsNrSubbands );
+      ASSERT( itsSubbandToRSPboardMapping.size() == itsNrSubbands );
+      ASSERT( itsSubbandToRSPslotMapping.size() == itsNrSubbands );
+
+      itsCurrentTimeStamp = TimeStamp(static_cast<int64>(ps.startTime() * itsSubbandBandwidth + firstBlockNumber * itsNrSamplesPerSubband), ps.clockSpeed());
+
+      itsIsRealTime = ps.realTime();
+      itsMaxNetworkDelay = ps.maxNetworkDelay();
+      itsNrHistorySamples = ps.nrHistorySamples();
+
+      LOG_DEBUG_STR(itsLogPrefix << "nrSubbands = " << itsNrSubbands);
+      LOG_DEBUG_STR(itsLogPrefix << "nrChannelsPerSubband = " << ps.nrChannelsPerSubband());
+      LOG_DEBUG_STR(itsLogPrefix << "nrStations = " << ps.nrStations());
+      LOG_DEBUG_STR(itsLogPrefix << "nrBitsPerSample = " << ps.nrBitsPerSample());
+      LOG_DEBUG_STR(itsLogPrefix << "maxNetworkDelay = " << itsMaxNetworkDelay << " samples");
+
+      if (haveStationInput && itsNeedDelays) {
+        itsDelaysAtBegin.resize(itsNrBeams, itsMaxNrTABs + 1);
+        itsDelaysAfterEnd.resize(itsNrBeams, itsMaxNrTABs + 1);
+        itsBeamDirectionsAtBegin.resize(itsNrBeams, itsMaxNrTABs + 1);
+        itsBeamDirectionsAfterEnd.resize(itsNrBeams, itsMaxNrTABs + 1);
+
+        if (itsDelayCompensation || itsMaxNrTABs > 1) {
+          itsDelays = new Delays(ps, stationName, itsCurrentTimeStamp);
+          itsDelays->start();
+        }
+
+        if (itsCorrectClocks)
+          itsClockCorrectionTime = ps.clockCorrectionTime(stationName);
+
+        computeNextDelays(); // initialize itsDelaysAfterEnd before we really start
+      }
 
+      itsDelayedStamps.resize(itsNrBeams);
+      itsSamplesDelay.resize(itsNrBeams);
+      itsFineDelaysAtBegin.resize(itsNrBeams, itsMaxNrTABs + 1);
+      itsFineDelaysAfterEnd.resize(itsNrBeams, itsMaxNrTABs + 1);
+      itsFlags.resize(boost::extents[itsNrRSPboards][itsNrBeams]);
 
-template<typename SAMPLE_TYPE> const unsigned BeamletBufferToComputeNode<SAMPLE_TYPE>::itsMaximumDelay;
+#if defined HAVE_BGP_ION // FIXME: not in preprocess
+      doNotRunOnCore0();
+      setPriority(3);
+#endif
+    }
 
 
-template<typename SAMPLE_TYPE> BeamletBufferToComputeNode<SAMPLE_TYPE>::BeamletBufferToComputeNode(const Parset &ps, const std::string &stationName, const std::vector<SmartPtr<BeamletBuffer<SAMPLE_TYPE> > > &beamletBuffers, unsigned firstBlockNumber)
-:
-  itsPS(ps),
-  itsNrRSPboards(beamletBuffers.size()),
-  itsBeamletBuffers(beamletBuffers),
-  itsDelayTimer("delay consumer", true, true)
-{
-  bool haveStationInput = itsNrRSPboards > 0;
-  ASSERTSTR(itsNrRSPboards > 0, "BeamletBufferToComputeNode requires at least one BeamletBuffer");
-
-  itsLogPrefix = str(boost::format("[obs %u station %s] ") % ps.observationID() % stationName);
-
-  itsSubbandBandwidth	      = ps.subbandBandwidth();
-  itsNrSubbands		      = ps.nrSubbands();
-  itsNrSamplesPerSubband      = ps.nrSamplesPerSubband();
-  itsNrBeams		      = ps.nrBeams();
-  itsMaxNrTABs	              = ps.maxNrTABs();
-  itsNrTABs	              = ps.nrTABs();
-
-  itsSampleDuration	      = ps.sampleDuration();
-  itsDelayCompensation	      = ps.delayCompensation();
-  itsCorrectClocks	      = ps.correctClocks();
-  itsNeedDelays               = itsDelayCompensation || itsMaxNrTABs > 1 || itsCorrectClocks;
-  itsSubbandToSAPmapping      = ps.subbandToSAPmapping();
-  itsSubbandToRSPboardMapping = ps.subbandToRSPboardMapping(stationName);
-  itsSubbandToRSPslotMapping  = ps.subbandToRSPslotMapping(stationName);
-
-  ASSERT( itsSubbandToSAPmapping.size() == itsNrSubbands );
-  ASSERT( itsSubbandToRSPboardMapping.size() == itsNrSubbands );
-  ASSERT( itsSubbandToRSPslotMapping.size() == itsNrSubbands );
-
-  itsCurrentTimeStamp	      = TimeStamp(static_cast<int64>(ps.startTime() * itsSubbandBandwidth + firstBlockNumber * itsNrSamplesPerSubband), ps.clockSpeed());
-
-  itsIsRealTime		      = ps.realTime();
-  itsMaxNetworkDelay	      = ps.maxNetworkDelay();
-  itsNrHistorySamples	      = ps.nrHistorySamples();
-
-  LOG_DEBUG_STR(itsLogPrefix << "nrSubbands = " << itsNrSubbands);
-  LOG_DEBUG_STR(itsLogPrefix << "nrChannelsPerSubband = " << ps.nrChannelsPerSubband());
-  LOG_DEBUG_STR(itsLogPrefix << "nrStations = " << ps.nrStations());
-  LOG_DEBUG_STR(itsLogPrefix << "nrBitsPerSample = " << ps.nrBitsPerSample());
-  LOG_DEBUG_STR(itsLogPrefix << "maxNetworkDelay = " << itsMaxNetworkDelay << " samples");
-
-  if (haveStationInput && itsNeedDelays) {
-    itsDelaysAtBegin.resize(itsNrBeams, itsMaxNrTABs + 1);
-    itsDelaysAfterEnd.resize(itsNrBeams, itsMaxNrTABs + 1);
-    itsBeamDirectionsAtBegin.resize(itsNrBeams, itsMaxNrTABs + 1);
-    itsBeamDirectionsAfterEnd.resize(itsNrBeams, itsMaxNrTABs + 1);
-
-    if (itsDelayCompensation || itsMaxNrTABs > 1) {
-      itsDelays = new Delays(ps, stationName, itsCurrentTimeStamp);
-      itsDelays->start();
-    }  
-
-    if (itsCorrectClocks)
-      itsClockCorrectionTime = ps.clockCorrectionTime(stationName);
-
-    computeNextDelays(); // initialize itsDelaysAfterEnd before we really start
-  }
-   
-  itsDelayedStamps.resize(itsNrBeams);
-  itsSamplesDelay.resize(itsNrBeams);
-  itsFineDelaysAtBegin.resize(itsNrBeams, itsMaxNrTABs + 1);
-  itsFineDelaysAfterEnd.resize(itsNrBeams, itsMaxNrTABs + 1);
-  itsFlags.resize(boost::extents[itsNrRSPboards][itsNrBeams]);
+    template<typename SAMPLE_TYPE>
+    BeamletBufferToComputeNode<SAMPLE_TYPE>::~BeamletBufferToComputeNode()
+    {
+      LOG_DEBUG_STR(itsLogPrefix << "BeamletBufferToComputeNode::~BeamletBufferToComputeNode");
 
-#if defined HAVE_BGP_ION // FIXME: not in preprocess
-  doNotRunOnCore0();
-  setPriority(3);
-#endif
-}
+      for (unsigned rsp = 0; rsp < itsNrRSPboards; rsp++)
+        itsBeamletBuffers[rsp]->noMoreReading();
+    }
 
 
-template<typename SAMPLE_TYPE> BeamletBufferToComputeNode<SAMPLE_TYPE>::~BeamletBufferToComputeNode() 
-{
-  LOG_DEBUG_STR(itsLogPrefix << "BeamletBufferToComputeNode::~BeamletBufferToComputeNode");
+    template<typename SAMPLE_TYPE>
+    void BeamletBufferToComputeNode<SAMPLE_TYPE>::computeNextDelays()
+    {
+      // track source
+
+#ifdef USE_VALGRIND
+      for (unsigned beam = 0; beam < itsNrBeams; beam++)
+        for (unsigned pencil = 0; pencil < itsMaxNrTABs + 1; pencil++)
+          itsDelaysAfterEnd[beam][pencil] = 0;
+#endif
 
-  for (unsigned rsp = 0; rsp < itsNrRSPboards; rsp ++)
-    itsBeamletBuffers[rsp]->noMoreReading();
-}
+      if (itsDelays != 0)
+        itsDelays->getNextDelays(itsBeamDirectionsAfterEnd, itsDelaysAfterEnd);
+      else
+        for (unsigned beam = 0; beam < itsNrBeams; beam++)
+          for (unsigned pencil = 0; pencil < itsMaxNrTABs + 1; pencil++)
+            itsDelaysAfterEnd[beam][pencil] = 0;
 
+      // apply clock correction due to cable differences
 
-template<typename SAMPLE_TYPE> void BeamletBufferToComputeNode<SAMPLE_TYPE>::computeNextDelays()
-{
-  // track source
-
-#ifdef USE_VALGRIND  
-  for (unsigned beam = 0; beam < itsNrBeams; beam ++)
-    for (unsigned pencil = 0; pencil < itsMaxNrTABs + 1; pencil ++)
-      itsDelaysAfterEnd[beam][pencil] = 0;
-#endif        
-
-  if (itsDelays != 0)
-    itsDelays->getNextDelays(itsBeamDirectionsAfterEnd, itsDelaysAfterEnd);
-  else
-    for (unsigned beam = 0; beam < itsNrBeams; beam ++)
-      for (unsigned pencil = 0; pencil < itsMaxNrTABs + 1; pencil ++)
-	itsDelaysAfterEnd[beam][pencil] = 0;
-   
-  // apply clock correction due to cable differences
-
-  if (itsCorrectClocks)
-    for (unsigned beam = 0; beam < itsNrBeams; beam ++)
-      for (unsigned pencil = 0; pencil < itsMaxNrTABs + 1; pencil ++)
-	itsDelaysAfterEnd[beam][pencil] += itsClockCorrectionTime;
-}
-
-
-template<typename SAMPLE_TYPE> void BeamletBufferToComputeNode<SAMPLE_TYPE>::limitFlagsLength(SparseSet<unsigned> &flags)
-{
-  const SparseSet<unsigned>::Ranges &ranges = flags.getRanges();
+      if (itsCorrectClocks)
+        for (unsigned beam = 0; beam < itsNrBeams; beam++)
+          for (unsigned pencil = 0; pencil < itsMaxNrTABs + 1; pencil++)
+            itsDelaysAfterEnd[beam][pencil] += itsClockCorrectionTime;
+    }
 
-  if (ranges.size() > 16)
-    flags.include(ranges[15].begin, ranges.back().end);
-}
 
+    template<typename SAMPLE_TYPE>
+    void BeamletBufferToComputeNode<SAMPLE_TYPE>::limitFlagsLength(SparseSet<unsigned> &flags)
+    {
+      const SparseSet<unsigned>::Ranges &ranges = flags.getRanges();
 
-template<typename SAMPLE_TYPE> void BeamletBufferToComputeNode<SAMPLE_TYPE>::computeDelays()
-{
-  itsDelayTimer.start();
-
-  // begin of this integration is end of previous integration
-  itsDelaysAtBegin	   = itsDelaysAfterEnd;
-  itsBeamDirectionsAtBegin = itsBeamDirectionsAfterEnd;
-    
-  computeNextDelays();
-
-  for (unsigned beam = 0; beam < itsNrBeams; beam ++) {
-    // The coarse delay is determined for the center of the current
-    // time interval and is expressed in an entire amount of samples.
-    //
-    // We use the central pencil beam (#0) for the coarse delay compensation.
-    signed int coarseDelay = static_cast<signed int>(floor(0.5 * (itsDelaysAtBegin[beam][0] + itsDelaysAfterEnd[beam][0]) * itsSubbandBandwidth + 0.5));
-
-    // The fine delay is determined for the boundaries of the current
-    // time interval and is expressed in seconds.
-    double d = coarseDelay * itsSampleDuration;
-
-    itsDelayedStamps[beam] -= coarseDelay;
-    itsSamplesDelay[beam]  = -coarseDelay;
-
-    for (unsigned pencil = 0; pencil < itsNrTABs[beam] + 1; pencil ++) {
-      // we don't do coarse delay compensation for the individual pencil beams to avoid complexity and overhead
-      itsFineDelaysAtBegin[beam][pencil]  = static_cast<float>(itsDelaysAtBegin[beam][pencil] - d);
-      itsFineDelaysAfterEnd[beam][pencil] = static_cast<float>(itsDelaysAfterEnd[beam][pencil] - d);
+      if (ranges.size() > 16)
+        flags.include(ranges[15].begin, ranges.back().end);
     }
-  }
 
-  itsDelayTimer.stop();
-}
 
+    template<typename SAMPLE_TYPE>
+    void BeamletBufferToComputeNode<SAMPLE_TYPE>::computeDelays()
+    {
+      itsDelayTimer.start();
 
-template<typename SAMPLE_TYPE> void BeamletBufferToComputeNode<SAMPLE_TYPE>::startTransaction()
-{
-  for (unsigned rsp = 0; rsp < itsNrRSPboards; rsp ++) {
-    itsBeamletBuffers[rsp]->startReadTransaction(itsDelayedStamps, itsNrSamplesPerSubband + itsNrHistorySamples);
+      // begin of this integration is end of previous integration
+      itsDelaysAtBegin = itsDelaysAfterEnd;
+      itsBeamDirectionsAtBegin = itsBeamDirectionsAfterEnd;
+
+      computeNextDelays();
+
+      for (unsigned beam = 0; beam < itsNrBeams; beam++) {
+        // The coarse delay is determined for the center of the current
+        // time interval and is expressed in an entire amount of samples.
+        //
+        // We use the central pencil beam (#0) for the coarse delay compensation.
+        signed int coarseDelay = static_cast<signed int>(floor(0.5 * (itsDelaysAtBegin[beam][0] + itsDelaysAfterEnd[beam][0]) * itsSubbandBandwidth + 0.5));
+
+        // The fine delay is determined for the boundaries of the current
+        // time interval and is expressed in seconds.
+        double d = coarseDelay * itsSampleDuration;
+
+        itsDelayedStamps[beam] -= coarseDelay;
+        itsSamplesDelay[beam] = -coarseDelay;
+
+        for (unsigned pencil = 0; pencil < itsNrTABs[beam] + 1; pencil++) {
+          // we don't do coarse delay compensation for the individual pencil beams to avoid complexity and overhead
+          itsFineDelaysAtBegin[beam][pencil] = static_cast<float>(itsDelaysAtBegin[beam][pencil] - d);
+          itsFineDelaysAfterEnd[beam][pencil] = static_cast<float>(itsDelaysAfterEnd[beam][pencil] - d);
+        }
+      }
+
+      itsDelayTimer.stop();
+    }
 
-    for (unsigned beam = 0; beam < itsNrBeams; beam ++)
-      /*if (itsMustComputeFlags[rsp][beam])*/ { // TODO
-	itsFlags[rsp][beam] = itsBeamletBuffers[rsp]->readFlags(beam);
-	limitFlagsLength(itsFlags[rsp][beam]);
+
+    template<typename SAMPLE_TYPE>
+    void BeamletBufferToComputeNode<SAMPLE_TYPE>::startTransaction()
+    {
+      for (unsigned rsp = 0; rsp < itsNrRSPboards; rsp++) {
+        itsBeamletBuffers[rsp]->startReadTransaction(itsDelayedStamps, itsNrSamplesPerSubband + itsNrHistorySamples);
+
+        for (unsigned beam = 0; beam < itsNrBeams; beam++)
+        /*if (itsMustComputeFlags[rsp][beam])*/ { // TODO
+          itsFlags[rsp][beam] = itsBeamletBuffers[rsp]->readFlags(beam);
+          limitFlagsLength(itsFlags[rsp][beam]);
+        }
       }
-  }
-}
+    }
 
 
-template<typename SAMPLE_TYPE> void BeamletBufferToComputeNode<SAMPLE_TYPE>::writeLogMessage() const
-{
-  std::stringstream logStr;
+    template<typename SAMPLE_TYPE>
+    void BeamletBufferToComputeNode<SAMPLE_TYPE>::writeLogMessage() const
+    {
+      std::stringstream logStr;
 
-  logStr << itsLogPrefix << itsCurrentTimeStamp;
+      logStr << itsLogPrefix << itsCurrentTimeStamp;
 
-  if (itsIsRealTime) {
-    struct timeval tv;
+      if (itsIsRealTime) {
+        struct timeval tv;
 
-    gettimeofday(&tv, 0);
+        gettimeofday(&tv, 0);
 
-    double currentTime  = tv.tv_sec + tv.tv_usec / 1e6;
-    double expectedTime = itsCorrelationStartTime * itsSampleDuration;
-    double recordingTime = itsCurrentTimeStamp * itsSampleDuration;
+        double currentTime = tv.tv_sec + tv.tv_usec / 1e6;
+        double expectedTime = itsCorrelationStartTime * itsSampleDuration;
+        double recordingTime = itsCurrentTimeStamp * itsSampleDuration;
 
-    logStr << ", age: " << PrettyTime(currentTime - recordingTime) << ", late: " << PrettyTime(currentTime - expectedTime);
-  }
+        logStr << ", age: " << PrettyTime(currentTime - recordingTime) << ", late: " << PrettyTime(currentTime - expectedTime);
+      }
 
-  if (itsNeedDelays) {
-    for (unsigned beam = 0; beam < itsNrBeams; beam ++)
-      logStr << (beam == 0 ? ", delays: [" : ", ") << PrettyTime(itsDelaysAtBegin[beam][0], 7);
-      //logStr << (beam == 0 ? ", delays: [" : ", ") << PrettyTime(itsDelaysAtBegin[beam], 7) << " = " << itsSamplesDelay[beam] << " samples + " << PrettyTime(itsFineDelaysAtBegin[beam], 7);
+      if (itsNeedDelays) {
+        for (unsigned beam = 0; beam < itsNrBeams; beam++)
+          logStr << (beam == 0 ? ", delays: [" : ", ") << PrettyTime(itsDelaysAtBegin[beam][0], 7);
+        //logStr << (beam == 0 ? ", delays: [" : ", ") << PrettyTime(itsDelaysAtBegin[beam], 7) << " = " << itsSamplesDelay[beam] << " samples + " << PrettyTime(itsFineDelaysAtBegin[beam], 7);
 
-    logStr << "]";
-  }
+        logStr << "]";
+      }
 
-  for (unsigned rsp = 0; rsp < itsNrRSPboards; rsp ++)
-    logStr << ", flags " << rsp << ": " << itsFlags[rsp][0] << '(' << std::setprecision(3) << (100.0 * itsFlags[rsp][0].count() / (itsNrSamplesPerSubband + itsNrHistorySamples)) << "%)"; // not really correct; beam(0) may be shifted
-  
-  LOG_INFO(logStr.str());
-}
+      for (unsigned rsp = 0; rsp < itsNrRSPboards; rsp++)
+        logStr << ", flags " << rsp << ": " << itsFlags[rsp][0] << '(' << std::setprecision(3) << (100.0 * itsFlags[rsp][0].count() / (itsNrSamplesPerSubband + itsNrHistorySamples)) << "%)";  // not really correct; beam(0) may be shifted
 
+      LOG_INFO(logStr.str());
+    }
 
-template<typename SAMPLE_TYPE> void BeamletBufferToComputeNode<SAMPLE_TYPE>::sendSubband( Stream *stream, unsigned subband )
-{
-  ASSERT( subband < itsSubbandToSAPmapping.size() );
 
-  unsigned rspBoard = itsSubbandToRSPboardMapping[subband];
-  unsigned rspSlot  = itsSubbandToRSPslotMapping[subband];
-  unsigned beam     = itsSubbandToSAPmapping[subband];
+    template<typename SAMPLE_TYPE>
+    void BeamletBufferToComputeNode<SAMPLE_TYPE>::sendSubband( Stream *stream, unsigned subband )
+    {
+      ASSERT( subband < itsSubbandToSAPmapping.size() );
 
-  struct header header;
+      unsigned rspBoard = itsSubbandToRSPboardMapping[subband];
+      unsigned rspSlot = itsSubbandToRSPslotMapping[subband];
+      unsigned beam = itsSubbandToSAPmapping[subband];
 
-  header.subband    = subband;
-  header.nrSamples  = itsNrSamplesPerSubband + itsNrHistorySamples;
-  header.sampleSize = NR_POLARIZATIONS * sizeof(SAMPLE_TYPE);
-  header.nrTABs     = itsNrTABs[beam];
+      struct header header;
 
-  // send header
-  stream->write(&header, sizeof header);
+      header.subband = subband;
+      header.nrSamples = itsNrSamplesPerSubband + itsNrHistorySamples;
+      header.sampleSize = NR_POLARIZATIONS * sizeof(SAMPLE_TYPE);
+      header.nrTABs = itsNrTABs[beam];
 
-  // send subband
-  itsBeamletBuffers[rspBoard]->sendUnalignedSubband(stream, rspSlot, beam);
+      // send header
+      stream->write(&header, sizeof header);
 
-  // send meta data
-  SubbandMetaData metaData(itsNrTABs[beam] + 1);
+      // send subband
+      itsBeamletBuffers[rspBoard]->sendUnalignedSubband(stream, rspSlot, beam);
 
-  if (itsNeedDelays) {
-    for (unsigned p = 0; p < itsNrTABs[beam] + 1; p ++) {
-      struct SubbandMetaData::beamInfo &beamInfo = (p == 0 ? metaData.stationBeam : metaData.TABs[p - 1]);
+      // send meta data
+      SubbandMetaData metaData(itsNrTABs[beam] + 1);
 
-      beamInfo.delayAtBegin   = itsFineDelaysAtBegin[beam][p];
-      beamInfo.delayAfterEnd  = itsFineDelaysAfterEnd[beam][p];
+      if (itsNeedDelays) {
+        for (unsigned p = 0; p < itsNrTABs[beam] + 1; p++) {
+          struct SubbandMetaData::beamInfo &beamInfo = (p == 0 ? metaData.stationBeam : metaData.TABs[p - 1]);
 
-      // extract the carthesian coordinates
-      const casa::Vector<double> &beamDirBegin = itsBeamDirectionsAtBegin[beam][p].getValue();
-      const casa::Vector<double> &beamDirEnd   = itsBeamDirectionsAfterEnd[beam][p].getValue();
+          beamInfo.delayAtBegin = itsFineDelaysAtBegin[beam][p];
+          beamInfo.delayAfterEnd = itsFineDelaysAfterEnd[beam][p];
 
-      for (unsigned i = 0; i < 3; i ++) {
-        beamInfo.beamDirectionAtBegin[i]  = beamDirBegin[i];
-        beamInfo.beamDirectionAfterEnd[i] = beamDirEnd[i];
+          // extract the carthesian coordinates
+          const casa::Vector<double> &beamDirBegin = itsBeamDirectionsAtBegin[beam][p].getValue();
+          const casa::Vector<double> &beamDirEnd = itsBeamDirectionsAfterEnd[beam][p].getValue();
+
+          for (unsigned i = 0; i < 3; i++) {
+            beamInfo.beamDirectionAtBegin[i] = beamDirBegin[i];
+            beamInfo.beamDirectionAfterEnd[i] = beamDirEnd[i];
+          }
+        }
       }
-    }
-  }
 
-  metaData.flags = itsFlags[rspBoard][beam];
+      metaData.flags = itsFlags[rspBoard][beam];
 
-  metaData.write(stream);
-}
+      metaData.write(stream);
+    }
 
 
-template<typename SAMPLE_TYPE> void BeamletBufferToComputeNode<SAMPLE_TYPE>::toStream( Stream *stream )
-{
-    // send all subband data
-    for (unsigned subband = 0; subband < itsNrSubbands; subband ++)
-      sendSubband(stream, subband);
-}
+    template<typename SAMPLE_TYPE>
+    void BeamletBufferToComputeNode<SAMPLE_TYPE>::toStream( Stream *stream )
+    {
+      // send all subband data
+      for (unsigned subband = 0; subband < itsNrSubbands; subband++)
+        sendSubband(stream, subband);
+    }
 
 
-template<typename SAMPLE_TYPE> void BeamletBufferToComputeNode<SAMPLE_TYPE>::stopTransaction()
-{
-  for (unsigned rsp = 0; rsp < itsNrRSPboards; rsp ++)
-    itsBeamletBuffers[rsp]->stopReadTransaction();
-}
+    template<typename SAMPLE_TYPE>
+    void BeamletBufferToComputeNode<SAMPLE_TYPE>::stopTransaction()
+    {
+      for (unsigned rsp = 0; rsp < itsNrRSPboards; rsp++)
+        itsBeamletBuffers[rsp]->stopReadTransaction();
+    }
 
 
-template<typename SAMPLE_TYPE> void BeamletBufferToComputeNode<SAMPLE_TYPE>::process( Stream *stream )
-{
-  // stay in sync with other psets even if there are no inputs to allow a synchronised early abort
+    template<typename SAMPLE_TYPE>
+    void BeamletBufferToComputeNode<SAMPLE_TYPE>::process( Stream *stream )
+    {
+      // stay in sync with other psets even if there are no inputs to allow a synchronised early abort
 
-  for (unsigned beam = 0; beam < itsNrBeams; beam ++)
-    itsDelayedStamps[beam] = itsCurrentTimeStamp - itsNrHistorySamples;
+      for (unsigned beam = 0; beam < itsNrBeams; beam++)
+        itsDelayedStamps[beam] = itsCurrentTimeStamp - itsNrHistorySamples;
 
-  if (itsNeedDelays)
-    computeDelays();
+      if (itsNeedDelays)
+        computeDelays();
 
-  if (itsIsRealTime) {
-    // wait for the deadline for these data
-    itsCorrelationStartTime = itsCurrentTimeStamp + itsNrSamplesPerSubband + itsMaxNetworkDelay + itsMaximumDelay;
+      if (itsIsRealTime) {
+        // wait for the deadline for these data
+        itsCorrelationStartTime = itsCurrentTimeStamp + itsNrSamplesPerSubband + itsMaxNetworkDelay + itsMaximumDelay;
 
-    itsWallClock.waitUntil(itsCorrelationStartTime);
-  }
+        itsWallClock.waitUntil(itsCorrelationStartTime);
+      }
 
-  startTransaction();
-  writeLogMessage();
+      startTransaction();
+      writeLogMessage();
 
-  NSTimer timer;
-  timer.start();
-  
-  /* write data to buffer */
-  toStream(stream);
+      NSTimer timer;
+      timer.start();
 
-  stopTransaction();
+      /* write data to buffer */
+      toStream(stream);
 
-  itsCurrentTimeStamp += itsNrSamplesPerSubband;
-  timer.stop();
+      stopTransaction();
 
-  if (itsNrRSPboards > 0)
-    LOG_DEBUG_STR(itsLogPrefix << " ION->CN: " << PrettyTime(timer.getElapsed()));
-}
+      itsCurrentTimeStamp += itsNrSamplesPerSubband;
+      timer.stop();
+
+      if (itsNrRSPboards > 0)
+        LOG_DEBUG_STR(itsLogPrefix << " ION->CN: " << PrettyTime(timer.getElapsed()));
+    }
 
-template class BeamletBufferToComputeNode<i4complex>;
-template class BeamletBufferToComputeNode<i8complex>;
-template class BeamletBufferToComputeNode<i16complex>;
+    template class BeamletBufferToComputeNode<i4complex>;
+    template class BeamletBufferToComputeNode<i8complex>;
+    template class BeamletBufferToComputeNode<i16complex>;
 
-} // namespace RTCP
+  } // namespace RTCP
 } // namespace LOFAR
diff --git a/RTCP/Cobalt/GPUProc/src/Input/BeamletBufferToComputeNode.h b/RTCP/Cobalt/GPUProc/src/Input/BeamletBufferToComputeNode.h
index 9b49a8d10e054ae7f6c66da1a6d1e7410a911476..9ab989bec2f65b11a2b0176533a600bfe29381fa 100644
--- a/RTCP/Cobalt/GPUProc/src/Input/BeamletBufferToComputeNode.h
+++ b/RTCP/Cobalt/GPUProc/src/Input/BeamletBufferToComputeNode.h
@@ -1,4 +1,4 @@
-//#  BeamletBufferToComputeNode.h: Catch RSP ethernet frames and synchronize RSP inputs 
+//#  BeamletBufferToComputeNode.h: Catch RSP ethernet frames and synchronize RSP inputs
 //#
 //#  Copyright (C) 2006
 //#  ASTRON (Netherlands Foundation for Research in Astronomy)
@@ -43,85 +43,92 @@
 #include <vector>
 
 
-namespace LOFAR {
-namespace RTCP {
+namespace LOFAR
+{
+  namespace RTCP
+  {
 
-template <typename SAMPLE_TYPE> class BeamletBufferToComputeNode {
-  public:
-    BeamletBufferToComputeNode(const Parset &ps, const std::string &stationName, const std::vector<SmartPtr<BeamletBuffer<SAMPLE_TYPE> > > &beamletBuffers, unsigned firstBlockNumber);
-    ~BeamletBufferToComputeNode();
+    template <typename SAMPLE_TYPE>
+    class BeamletBufferToComputeNode
+    {
+    public:
+      BeamletBufferToComputeNode(const Parset &ps, const std::string &stationName, const std::vector<SmartPtr<BeamletBuffer<SAMPLE_TYPE> > > &beamletBuffers, unsigned firstBlockNumber);
+      ~BeamletBufferToComputeNode();
 
-    struct header {
-      unsigned subband;
-      size_t nrSamples;
-      size_t sampleSize;
-      size_t nrTABs;
+      struct header {
+        unsigned subband;
+        size_t nrSamples;
+        size_t sampleSize;
+        size_t nrTABs;
+      };
+
+      void                         process( Stream *stream );
+
+      TimeStamp                    getCurrentTimeStamp() const
+      {
+        return itsCurrentTimeStamp;
+      }
+
+    private:
+      static void                  limitFlagsLength(SparseSet<unsigned> &flags);
+
+      void                         computeDelays(), computeNextDelays();
+
+      void                         sendSubband( Stream *stream, unsigned subband );
+
+
+      void                         startTransaction();
+      void                         writeLogMessage() const;
+      void                         toStream( Stream *stream );
+      void                         stopTransaction();
+
+      std::string itsLogPrefix;
+
+      bool itsDelayCompensation;
+      bool itsCorrectClocks;
+      bool itsNeedDelays;
+      bool itsIsRealTime;
+      std::vector<unsigned>        itsSubbandToSAPmapping;
+      std::vector<unsigned>        itsSubbandToRSPboardMapping;
+      std::vector<unsigned>        itsSubbandToRSPslotMapping;
+
+      const Parset                 &itsPS;
+
+      TimeStamp itsCurrentTimeStamp;
+
+      Matrix<double>               itsDelaysAtBegin;
+      Matrix<double>               itsDelaysAfterEnd;
+      Matrix<casa::MVDirection>    itsBeamDirectionsAtBegin;
+      Matrix<casa::MVDirection>    itsBeamDirectionsAfterEnd;
+
+      unsigned itsMaxNetworkDelay;                   // in samples
+      unsigned itsNrSubbands;
+      unsigned itsNrSamplesPerSubband;
+      unsigned itsNrHistorySamples;
+      unsigned itsNrRSPboards;
+      unsigned itsNrBeams;
+      unsigned itsMaxNrTABs;
+      std::vector<unsigned>        itsNrTABs;
+
+      const std::vector<SmartPtr<BeamletBuffer<SAMPLE_TYPE> > > &itsBeamletBuffers;
+      SmartPtr<Delays>             itsDelays;
+      double itsSubbandBandwidth, itsSampleDuration;
+      double itsClockCorrectionTime;
+
+      std::vector<TimeStamp>       itsDelayedStamps;
+      std::vector<signed int>      itsSamplesDelay;
+      boost::multi_array<SparseSet<unsigned>, 2> itsFlags;
+
+      Matrix<float>                itsFineDelaysAtBegin, itsFineDelaysAfterEnd;
+
+      static const unsigned itsMaximumDelay = 1000;      // samples; roughly 1500 km
+      TimeStamp itsCorrelationStartTime;
+      WallClockTime itsWallClock;
+
+      NSTimer itsDelayTimer;
     };
-  
-    void			 process( Stream *stream );
-
-    TimeStamp                    getCurrentTimeStamp() const { return itsCurrentTimeStamp; }
-    
-  private:
-    static void			 limitFlagsLength(SparseSet<unsigned> &flags);
-
-    void			 computeDelays(), computeNextDelays();
-
-    void                         sendSubband( Stream *stream, unsigned subband );
-    
-
-    void			 startTransaction();
-    void			 writeLogMessage() const;
-    void			 toStream( Stream *stream );
-    void			 stopTransaction();
-
-    std::string                  itsLogPrefix;
-
-    bool			 itsDelayCompensation;
-    bool			 itsCorrectClocks;
-    bool			 itsNeedDelays;
-    bool			 itsIsRealTime;
-    std::vector<unsigned>	 itsSubbandToSAPmapping;
-    std::vector<unsigned>	 itsSubbandToRSPboardMapping;
-    std::vector<unsigned>	 itsSubbandToRSPslotMapping;
-
-    const Parset		 &itsPS;
-    
-    TimeStamp			 itsCurrentTimeStamp;
-   
-    Matrix<double>		 itsDelaysAtBegin;
-    Matrix<double>		 itsDelaysAfterEnd;
-    Matrix<casa::MVDirection>	 itsBeamDirectionsAtBegin;
-    Matrix<casa::MVDirection>	 itsBeamDirectionsAfterEnd;
-    
-    unsigned			 itsMaxNetworkDelay; // in samples
-    unsigned                     itsNrSubbands;
-    unsigned			 itsNrSamplesPerSubband;
-    unsigned			 itsNrHistorySamples;
-    unsigned			 itsNrRSPboards;
-    unsigned			 itsNrBeams;
-    unsigned			 itsMaxNrTABs;
-    std::vector<unsigned>	 itsNrTABs;
-
-    const std::vector<SmartPtr<BeamletBuffer<SAMPLE_TYPE> > > &itsBeamletBuffers;
-    SmartPtr<Delays>		 itsDelays;
-    double			 itsSubbandBandwidth, itsSampleDuration;
-    double			 itsClockCorrectionTime;
-
-    std::vector<TimeStamp>	 itsDelayedStamps;
-    std::vector<signed int>	 itsSamplesDelay;
-    boost::multi_array<SparseSet<unsigned>, 2> itsFlags;
-
-    Matrix<float>		 itsFineDelaysAtBegin, itsFineDelaysAfterEnd;
-
-    static const unsigned	 itsMaximumDelay = 1000; // samples; roughly 1500 km
-    TimeStamp			 itsCorrelationStartTime;
-    WallClockTime		 itsWallClock;
-
-    NSTimer			 itsDelayTimer;
-};
-
-} // namespace RTCP
+
+  } // namespace RTCP
 } // namespace LOFAR
 
 #endif
diff --git a/RTCP/Cobalt/GPUProc/src/Input/Delays.cc b/RTCP/Cobalt/GPUProc/src/Input/Delays.cc
index fb7ff2b248e9d8e46241e304d96b0d26cb3ccc98..716be4d17c567b794be596c2d5f780836f7ebf1c 100644
--- a/RTCP/Cobalt/GPUProc/src/Input/Delays.cc
+++ b/RTCP/Cobalt/GPUProc/src/Input/Delays.cc
@@ -40,274 +40,276 @@
 #include <memory>
 
 
-namespace LOFAR {
-namespace RTCP {
-
-using namespace casa;
-
-static LOFAR::Mutex casacoreMutex; // casacore is not thread safe
-
-//##----------------  Public methods  ----------------##//
-
-Delays::Delays(const Parset &parset, const string &stationName, const TimeStamp &startTime)
-:
-  itsParset(parset),
-  stop(false),
-  // we need an extra entry for the central beam
-  itsBuffer(bufferSize, parset.nrBeams(), parset.maxNrTABs() + 1),
-  head(0),
-  tail(0),
-  bufferFree(bufferSize),
-  bufferUsed(0),
-  itsNrCalcDelays(parset.nrCalcDelays()),
-  itsNrBeams(parset.nrBeams()),
-  itsMaxNrTABs(parset.maxNrTABs()),
-  itsNrTABs(parset.nrTABs()),
-  itsStartTime(startTime),
-  itsNrSamplesPerSec(parset.nrSamplesPerSubband()),
-  itsSampleDuration(parset.sampleDuration()),
-  itsStationName(stationName),
-  itsDelayTimer("delay producer", true, true)
+namespace LOFAR
 {
-}
+  namespace RTCP
+  {
+
+    using namespace casa;
+
+    static LOFAR::Mutex casacoreMutex; // casacore is not thread safe
+
+    //##----------------  Public methods  ----------------##//
+
+    Delays::Delays(const Parset &parset, const string &stationName, const TimeStamp &startTime)
+      :
+      itsParset(parset),
+      stop(false),
+      // we need an extra entry for the central beam
+      itsBuffer(bufferSize, parset.nrBeams(), parset.maxNrTABs() + 1),
+      head(0),
+      tail(0),
+      bufferFree(bufferSize),
+      bufferUsed(0),
+      itsNrCalcDelays(parset.nrCalcDelays()),
+      itsNrBeams(parset.nrBeams()),
+      itsMaxNrTABs(parset.maxNrTABs()),
+      itsNrTABs(parset.nrTABs()),
+      itsStartTime(startTime),
+      itsNrSamplesPerSec(parset.nrSamplesPerSubband()),
+      itsSampleDuration(parset.sampleDuration()),
+      itsStationName(stationName),
+      itsDelayTimer("delay producer", true, true)
+    {
+    }
 
 
-void Delays::start()
-{
-  itsThread = new Thread(this, &Delays::mainLoop, "[DelayCompensation] ");
-}
+    void Delays::start()
+    {
+      itsThread = new Thread(this, &Delays::mainLoop, "[DelayCompensation] ");
+    }
 
 
-Delays::~Delays()
-{
-  ScopedDelayCancellation dc; // Semaphores provide cancellation points
+    Delays::~Delays()
+    {
+      ScopedDelayCancellation dc; // Semaphores provide cancellation points
 
-  // trigger mainLoop and force it to stop
-  stop = true;
-  bufferFree.up(itsNrCalcDelays);
-}
+      // trigger mainLoop and force it to stop
+      stop = true;
+      bufferFree.up(itsNrCalcDelays);
+    }
 
 
-// convert a time in samples to a (day,fraction) pair in UTC in a CasaCore format
-MVEpoch Delays::toUTC(int64 timeInSamples)
-{
-  double utc_sec = (timeInSamples * itsSampleDuration) / MVEpoch::secInDay;
-  double day	 = floor(utc_sec);
-  double frac	 = utc_sec - day;
+    // convert a time in samples to a (day,fraction) pair in UTC in a CasaCore format
+    MVEpoch Delays::toUTC(int64 timeInSamples)
+    {
+      double utc_sec = (timeInSamples * itsSampleDuration) / MVEpoch::secInDay;
+      double day = floor(utc_sec);
+      double frac = utc_sec - day;
 
-  // (40587 modify Julian day number = 00:00:00 January 1, 1970, GMT)
-  return MVEpoch(day + 40587., frac);
-}
+      // (40587 modify Julian day number = 00:00:00 January 1, 1970, GMT)
+      return MVEpoch(day + 40587., frac);
+    }
 
 
-void Delays::init()
-{
-  ScopedLock lock(casacoreMutex);
-  ScopedDelayCancellation dc;
+    void Delays::init()
+    {
+      ScopedLock lock(casacoreMutex);
+      ScopedDelayCancellation dc;
 
-  setBeamDirections(itsParset);
-  setPositionDiff(itsParset);
+      setBeamDirections(itsParset);
+      setPositionDiff(itsParset);
 
-  // We need bufferSize to be a multiple of batchSize to avoid wraparounds in
-  // the middle of the batch calculations. This makes life a lot easier and there is no
-  // need to support other cases.
+      // We need bufferSize to be a multiple of batchSize to avoid wraparounds in
+      // the middle of the batch calculations. This makes life a lot easier and there is no
+      // need to support other cases.
 
-  if (bufferSize % itsNrCalcDelays > 0)
-    THROW(GPUProcException, "nrCalcDelays (" << itsNrCalcDelays << ") must divide bufferSize (" << bufferSize << ")");
+      if (bufferSize % itsNrCalcDelays > 0)
+        THROW(GPUProcException, "nrCalcDelays (" << itsNrCalcDelays << ") must divide bufferSize (" << bufferSize << ")");
 
-  // Set an initial epoch for the itsFrame
-  itsFrame.set(MEpoch(toUTC(itsStartTime), MEpoch::UTC));
+      // Set an initial epoch for the itsFrame
+      itsFrame.set(MEpoch(toUTC(itsStartTime), MEpoch::UTC));
 
-  // Set the position for the itsFrame.
-  itsFrame.set(itsPhaseCentre);
-  
-  // Set-up the conversion engines, using reference direction ITRF.
-  for (unsigned beam = 0; beam < itsNrBeams; beam++) {
-    const casa::MDirection::Types &dirtype = itsDirectionTypes[beam];
+      // Set the position for the itsFrame.
+      itsFrame.set(itsPhaseCentre);
 
-    if (itsConverters.find(dirtype) == itsConverters.end())
-      itsConverters[dirtype] = MDirection::Convert(dirtype, MDirection::Ref(MDirection::ITRF, itsFrame));
-  }
-}
+      // Set-up the conversion engines, using reference direction ITRF.
+      for (unsigned beam = 0; beam < itsNrBeams; beam++) {
+        const casa::MDirection::Types &dirtype = itsDirectionTypes[beam];
 
+        if (itsConverters.find(dirtype) == itsConverters.end())
+          itsConverters[dirtype] = MDirection::Convert(dirtype, MDirection::Ref(MDirection::ITRF, itsFrame));
+      }
+    }
 
-void Delays::mainLoop()
-{
+
+    void Delays::mainLoop()
+    {
 #if defined HAVE_BGP_ION
-  doNotRunOnCore0();
+      doNotRunOnCore0();
 #endif
 
-  LOG_DEBUG("Delay compensation thread running");
+      LOG_DEBUG("Delay compensation thread running");
 
 #if defined HAVE_BGP_ION
-  runOnCore0();
+      runOnCore0();
 #endif
 
-  init();
+      init();
 
-  // the current time, in samples
-  int64 currentTime = itsStartTime;
+      // the current time, in samples
+      int64 currentTime = itsStartTime;
 
-  try {
-    while (!stop) {
-      bufferFree.down(itsNrCalcDelays);
+      try {
+        while (!stop) {
+          bufferFree.down(itsNrCalcDelays);
 
-      itsDelayTimer.start();
+          itsDelayTimer.start();
 
-      // Calculate itsNrCalcDelays seconds worth of delays. Technically, we do not have
-      // to calculate that many at the end of the run, but there is no need to
-      // prevent the few excess delays from being calculated.
+          // Calculate itsNrCalcDelays seconds worth of delays. Technically, we do not have
+          // to calculate that many at the end of the run, but there is no need to
+          // prevent the few excess delays from being calculated.
 
-      {
-	ScopedLock lock(casacoreMutex);
-        ScopedDelayCancellation dc;
+          {
+            ScopedLock lock(casacoreMutex);
+            ScopedDelayCancellation dc;
 
-	// For each given moment in time ...
-	for (uint i = 0; i < itsNrCalcDelays; i ++) {
-	  // Set the instant in time in the itsFrame (40587 modify Julian day number = 00:00:00 January 1, 1970, GMT)
-	  itsFrame.resetEpoch(toUTC(currentTime));
+            // For each given moment in time ...
+            for (uint i = 0; i < itsNrCalcDelays; i++) {
+              // Set the instant in time in the itsFrame (40587 modify Julian day number = 00:00:00 January 1, 1970, GMT)
+              itsFrame.resetEpoch(toUTC(currentTime));
 
-	  // Check whether we will store results in a valid place
-	  ASSERTSTR(tail < bufferSize, tail << " < " << bufferSize);
-	  
-	  // For each given direction in the sky ...
-	  for (uint b = 0; b < itsNrBeams; b ++) {
-            MDirection::Convert &converter = itsConverters[itsDirectionTypes[b]];
+              // Check whether we will store results in a valid place
+              ASSERTSTR(tail < bufferSize, tail << " < " << bufferSize);
 
-	    for (uint p = 0; p < itsNrTABs[b] + 1; p ++) {
-	      // Define the astronomical direction as a J2000 direction.
-	      MVDirection &sky = itsBeamDirections[b][p];
+              // For each given direction in the sky ...
+              for (uint b = 0; b < itsNrBeams; b++) {
+                MDirection::Convert &converter = itsConverters[itsDirectionTypes[b]];
 
-	      // Convert this direction, using the conversion engine.
-	      MDirection dir = converter(sky);
+                for (uint p = 0; p < itsNrTABs[b] + 1; p++) {
+                  // Define the astronomical direction as a J2000 direction.
+                  MVDirection &sky = itsBeamDirections[b][p];
 
-	      // Add to the return vector
-	      itsBuffer[tail][b][p] = dir.getValue();
-	    }
-	  }  
+                  // Convert this direction, using the conversion engine.
+                  MDirection dir = converter(sky);
 
-	  // Advance time for the next calculation
-	  currentTime += itsNrSamplesPerSec;
+                  // Add to the return vector
+                  itsBuffer[tail][b][p] = dir.getValue();
+                }
+              }
 
-	  // Advance to the next result set.
-	  // since bufferSize % itsNrCalcDelays == 0, wrap
-	  // around can only occur between runs
-	  ++ tail;
-	}
-      }
-      // check for wrap around for the next run
-      if (tail >= bufferSize)
-	tail = 0;
+              // Advance time for the next calculation
+              currentTime += itsNrSamplesPerSec;
+
+              // Advance to the next result set.
+              // since bufferSize % itsNrCalcDelays == 0, wrap
+              // around can only occur between runs
+              ++tail;
+            }
+          }
+          // check for wrap around for the next run
+          if (tail >= bufferSize)
+            tail = 0;
+
+          itsDelayTimer.stop();
+
+          bufferUsed.up(itsNrCalcDelays);
+        }
+      } catch (AipsError &ex) {
+        // trigger getNextDelays and force it to stop
+        stop = true;
+        bufferUsed.up(1);
 
-      itsDelayTimer.stop();
+        THROW(GPUProcException, "AipsError: " << ex.what());
+      }
 
-      bufferUsed.up(itsNrCalcDelays);
+      LOG_DEBUG("Delay compensation thread stopped");
     }
-  } catch (AipsError &ex) {
-    // trigger getNextDelays and force it to stop
-    stop = true;
-    bufferUsed.up(1);
 
-    THROW(GPUProcException, "AipsError: " << ex.what());
-  }
 
-  LOG_DEBUG("Delay compensation thread stopped");
-}
+    void Delays::getNextDelays(Matrix<MVDirection> &directions, Matrix<double> &delays)
+    {
+      ASSERTSTR(directions.num_elements() == itsNrBeams * (itsMaxNrTABs + 1),
+                directions.num_elements() << " == " << itsNrBeams << "*" << (itsMaxNrTABs + 1));
 
+      ASSERTSTR(delays.num_elements() == itsNrBeams * (itsMaxNrTABs + 1),
+                delays.num_elements() << " == " << itsNrBeams << "*" << (itsMaxNrTABs + 1));
 
-void Delays::getNextDelays(Matrix<MVDirection> &directions, Matrix<double> &delays)
-{
-  ASSERTSTR(directions.num_elements() == itsNrBeams * (itsMaxNrTABs + 1),
-	    directions.num_elements() << " == " << itsNrBeams << "*" << (itsMaxNrTABs + 1));
+      ASSERT(itsThread);
+
+      bufferUsed.down();
+
+      if (stop)
+        THROW(GPUProcException, "Cannot obtain delays -- delay thread stopped running");
 
-  ASSERTSTR(delays.num_elements() == itsNrBeams * (itsMaxNrTABs + 1),
-	    delays.num_elements() << " == " << itsNrBeams << "*" << (itsMaxNrTABs + 1));
+      // copy the directions at itsBuffer[head] into the provided buffer,
+      // and calculate the respective delays
+      for (unsigned b = 0; b < itsNrBeams; b++) {
+        for (unsigned p = 0; p < itsNrTABs[b] + 1; p++) {
+          const MVDirection &dir = itsBuffer[head][b][p];
 
-  ASSERT(itsThread);
+          directions[b][p] = dir;
+          delays[b][p] = dir * itsPhasePositionDiff * (1.0 / speedOfLight);
+        }
+      }
 
-  bufferUsed.down();
+      // increment the head pointer
+      if (++head == bufferSize)
+        head = 0;
 
-  if (stop)
-    THROW(GPUProcException, "Cannot obtain delays -- delay thread stopped running");
+      bufferFree.up();
+    }
 
-  // copy the directions at itsBuffer[head] into the provided buffer,
-  // and calculate the respective delays
-  for (unsigned b = 0; b < itsNrBeams; b ++) {
-    for (unsigned p = 0; p < itsNrTABs[b] + 1; p ++) {
-      const MVDirection &dir = itsBuffer[head][b][p];
 
-      directions[b][p] = dir;
-      delays[b][p] = dir * itsPhasePositionDiff * (1.0 / speedOfLight);
-    }  
-  }
+    void Delays::setBeamDirections(const Parset &parset)
+    {
+      // TODO: For now, we include pencil beams for all regular beams,
+      // and use the pencil beam offsets as offsets in J2000.
+      // To do the coordinates properly, the offsets should be applied
+      // in today's coordinates (JMEAN/JTRUE?), not J2000.
 
-  // increment the head pointer
-  if (++ head == bufferSize)
-    head = 0;
+      itsBeamDirections.resize(itsNrBeams, itsMaxNrTABs + 1);
+      itsDirectionTypes.resize(itsNrBeams);
 
-  bufferFree.up();
-}
+      for (unsigned beam = 0; beam < itsNrBeams; beam++) {
+        const string type = toUpper(parset.getBeamDirectionType(beam));
 
+        if (!MDirection::getType(itsDirectionTypes[beam], type))
+          THROW(GPUProcException, "Beam direction type unknown: " << type);
+      }
 
-void Delays::setBeamDirections(const Parset &parset)
-{
-  // TODO: For now, we include pencil beams for all regular beams,
-  // and use the pencil beam offsets as offsets in J2000.
-  // To do the coordinates properly, the offsets should be applied
-  // in today's coordinates (JMEAN/JTRUE?), not J2000.
-  
-  itsBeamDirections.resize(itsNrBeams, itsMaxNrTABs + 1);
-  itsDirectionTypes.resize(itsNrBeams);
-
-  for (unsigned beam = 0; beam < itsNrBeams; beam ++) {
-    const string type = toUpper(parset.getBeamDirectionType(beam));
-
-    if (!MDirection::getType(itsDirectionTypes[beam], type))
-      THROW(GPUProcException, "Beam direction type unknown: " << type);
-  }
-
-  // Get the source directions from the parameter set. 
-  // Split the \a dir vector into separate Direction objects.
-  for (unsigned beam = 0; beam < itsNrBeams; beam ++) {
-    const vector<double> beamDir = parset.getBeamDirection(beam);
-    const BeamCoordinates& TABs = parset.TABs(beam);
-
-    // add central beam coordinates for non-beamforming pipelines
-    itsBeamDirections[beam][0] = MVDirection(beamDir[0], beamDir[1]);
-
-    for (unsigned pencil = 0; pencil < itsNrTABs[beam]; pencil ++) {
-      // obtain pencil coordinate
-      const BeamCoord3D &pencilCoord = TABs[pencil];
-
-      // apply angle modification
-      const double angle1 = beamDir[0] + pencilCoord[0];
-      const double angle2 = beamDir[1] + pencilCoord[1];
-
-      // store beam
-      itsBeamDirections[beam][pencil + 1] = MVDirection(angle1, angle2);
+      // Get the source directions from the parameter set.
+      // Split the \a dir vector into separate Direction objects.
+      for (unsigned beam = 0; beam < itsNrBeams; beam++) {
+        const vector<double> beamDir = parset.getBeamDirection(beam);
+        const BeamCoordinates& TABs = parset.TABs(beam);
+
+        // add central beam coordinates for non-beamforming pipelines
+        itsBeamDirections[beam][0] = MVDirection(beamDir[0], beamDir[1]);
+
+        for (unsigned pencil = 0; pencil < itsNrTABs[beam]; pencil++) {
+          // obtain pencil coordinate
+          const BeamCoord3D &pencilCoord = TABs[pencil];
+
+          // apply angle modification
+          const double angle1 = beamDir[0] + pencilCoord[0];
+          const double angle2 = beamDir[1] + pencilCoord[1];
+
+          // store beam
+          itsBeamDirections[beam][pencil + 1] = MVDirection(angle1, angle2);
+        }
+      }
     }
-  }
-}
 
 
-void Delays::setPositionDiff(const Parset &parset)
-{
-  // Calculate the station to reference station position difference of apply station.
-  
-  // Station positions must be given in ITRF
-  string str = toUpper(parset.positionType());
+    void Delays::setPositionDiff(const Parset &parset)
+    {
+      // Calculate the station to reference station position difference of apply station.
 
-  if (str != "ITRF")
-    THROW(GPUProcException, "OLAP.DelayComp.positionType must be ITRF");
+      // Station positions must be given in ITRF
+      string str = toUpper(parset.positionType());
 
-  // Get the antenna positions from the parameter set. The antenna
-  // positions are stored as one large vector of doubles.
-  const MVPosition pRef(parset.getRefPhaseCentre());
-  const MVPosition phaseCentre(parset.getPhaseCentreOf(itsStationName));
+      if (str != "ITRF")
+        THROW(GPUProcException, "OLAP.DelayComp.positionType must be ITRF");
 
-  itsPhaseCentre = MPosition(phaseCentre, MPosition::ITRF);
-  itsPhasePositionDiff = phaseCentre - pRef;
-}
+      // Get the antenna positions from the parameter set. The antenna
+      // positions are stored as one large vector of doubles.
+      const MVPosition pRef(parset.getRefPhaseCentre());
+      const MVPosition phaseCentre(parset.getPhaseCentreOf(itsStationName));
+
+      itsPhaseCentre = MPosition(phaseCentre, MPosition::ITRF);
+      itsPhasePositionDiff = phaseCentre - pRef;
+    }
 
-} // namespace RTCP
+  } // namespace RTCP
 } // namespace LOFAR
diff --git a/RTCP/Cobalt/GPUProc/src/Input/Delays.h b/RTCP/Cobalt/GPUProc/src/Input/Delays.h
index 072f6d40d82361627bc23a0aa550127438159a6a..12085ef51190c1c15ab832ea44de1a083cd341f4 100644
--- a/RTCP/Cobalt/GPUProc/src/Input/Delays.h
+++ b/RTCP/Cobalt/GPUProc/src/Input/Delays.h
@@ -44,123 +44,125 @@
 #include <casa/Quanta/MVPosition.h>
 #include <casa/Quanta/MVEpoch.h>
 
-namespace LOFAR {
-namespace RTCP {
+namespace LOFAR
+{
+  namespace RTCP
+  {
 
     // Speed of light in vacuum, in m/s.
-const double speedOfLight = 299792458;
-
-// Workholder for calculating the delay compensation that must be applied
-// per beam per station. We start by calculating the path length
-// difference for beam \f$\mathbf{b}_i\f$ between station \f$j\f$ at
-// position \f$\mathbf{p}_j\f$ and the reference station 0 at position
-// \f$\mathbf{p}_0\f$.
-// \f[
-//   d_{ij} - d_{i0} = \mathbf{b}_i \cdot \mathbf{p}_j 
-//                   - \mathbf{b}_i \cdot \mathbf{p}_0
-//                   = \mathbf{b}_i \cdot (\mathbf{p}_j - \mathbf{p}_0)
-// \f]
-// The choice of reference station is arbitrary, so we simply choose the
-// first station from the parameter set. From the equation above it is
-// clear that we can reduce the number of dot products if we precalculate
-// the position difference vectors \f$\mathbf{p}_j - \mathbf{p}_0$\f,
-// which we will store in \c			itsPositionDiffs.
-//
-// The geometrical delay is easily obtained by dividing the path length
-// difference by the speed of light in vacuum. We don't need to know the
-// speed of light in the atmosphere, because the AZEL directions that
-// we've calculated are valid for vacuum (only!). This is the delay that
-// must be compensated for.
-//
-// The calculated delay compensation must be split into a coarse (whole
-// sample) delay and a fine (subsample) delay.  The coarse delay will be
-// applied in the input section as a true time delay, by shifting the
-// input samples. The fine delay will be applied in the correlator as a
-// phase shift in each frequency channel.
-class Delays
-{
-  public:
-    Delays(const Parset &ps, const string &stationName, const TimeStamp &startTime);
-    ~Delays();
-
-    void start();
-
-    // get the set of directions (ITRF) and delays for the beams, for the next CN integration time
-    // Both matrices must have dimensions [itsNrBeams][itsMaxNrTABs+1]
-    void getNextDelays(Matrix<casa::MVDirection> &directions, Matrix<double> &delays);
-    
-  private:
-    casa::MVEpoch			toUTC(int64 timeInSamples);
-
-    void				init();
-
-    // do the delay compensation calculations in a separate thread to allow bulk
-    // calculations and to avoid blocking other threads
-    void				mainLoop();
-
-    const Parset			&itsParset;
-
-    volatile bool			stop;
-
-    // the circular buffer to hold the moving beam directions for every second of data
-    Cube<casa::MVDirection>		itsBuffer;
-    size_t				head, tail;
-
-    // two semaphores are used: one to trigger the producer that free space is available,
-    // another to trigger the consumer that data is available.
-    Semaphore				bufferFree, bufferUsed;
-
-    // the number of seconds to maintain in the buffer
-    static const size_t			bufferSize = 128;
-
-    // the number of delays to calculate in a single run
-    const unsigned			itsNrCalcDelays;
-
-    // Get the source directions from the parameter file and initialize \c
-    // itsBeamDirections. Beam positions must be specified as
-    // <tt>(longitude, latitude, direction-type)</tt>. The direction angles
-    // are in radians; the direction type must be one of J2000, ITRF, or
-    // AZEL.
-    void setBeamDirections(const Parset &);
-
-    // Set the station to reference station position differences for
-    // all stations. CS002LBA is the reference station, even if it
-    // does not take part in the observation. The position
-    // differences are stored in \c itsPositionDiffs. In other
-    // words: we store \f$\mathbf{p}_j - \mathbf{p}_0\f$, where
-    // \f$\mathbf{p}_0\f$ is the position of the reference station
-    // and \f$\mathbf{p}_j\f$ is the position of station \f$j\f$.
-    void setPositionDiff(const Parset &);
-
-    // Beam info.
-    const unsigned			itsNrBeams;
-    const unsigned			itsMaxNrTABs;
-    const std::vector<unsigned>		itsNrTABs;
-    Vector<casa::MDirection::Types>	itsDirectionTypes;
-    Matrix<casa::MVDirection>		itsBeamDirections; // [itsNrBeams][itsMaxNrTABs+1]
-
-    // Sample timings.
-    const TimeStamp			itsStartTime;
-    const unsigned			itsNrSamplesPerSec;
-    const double			itsSampleDuration;
-
-    // Station Name.
-    const string			itsStationName;
-    casa::MeasFrame			itsFrame;
-    std::map<casa::MDirection::Types, casa::MDirection::Convert> itsConverters;
-    
-    // Station phase centre. 
-    casa::MPosition			itsPhaseCentre;
-    
-    // Station to reference station position difference vector.
-    casa::MVPosition			itsPhasePositionDiff;
-    
-    NSTimer				itsDelayTimer;
-
-    SmartPtr<Thread>			itsThread;
-};
-
-} // namespace RTCP
+    const double speedOfLight = 299792458;
+
+    // Workholder for calculating the delay compensation that must be applied
+    // per beam per station. We start by calculating the path length
+    // difference for beam \f$\mathbf{b}_i\f$ between station \f$j\f$ at
+    // position \f$\mathbf{p}_j\f$ and the reference station 0 at position
+    // \f$\mathbf{p}_0\f$.
+    // \f[
+    //   d_{ij} - d_{i0} = \mathbf{b}_i \cdot \mathbf{p}_j
+    //                   - \mathbf{b}_i \cdot \mathbf{p}_0
+    //                   = \mathbf{b}_i \cdot (\mathbf{p}_j - \mathbf{p}_0)
+    // \f]
+    // The choice of reference station is arbitrary, so we simply choose the
+    // first station from the parameter set. From the equation above it is
+    // clear that we can reduce the number of dot products if we precalculate
+    // the position difference vectors \f$\mathbf{p}_j - \mathbf{p}_0$\f,
+    // which we will store in \c			itsPositionDiffs.
+    //
+    // The geometrical delay is easily obtained by dividing the path length
+    // difference by the speed of light in vacuum. We don't need to know the
+    // speed of light in the atmosphere, because the AZEL directions that
+    // we've calculated are valid for vacuum (only!). This is the delay that
+    // must be compensated for.
+    //
+    // The calculated delay compensation must be split into a coarse (whole
+    // sample) delay and a fine (subsample) delay.  The coarse delay will be
+    // applied in the input section as a true time delay, by shifting the
+    // input samples. The fine delay will be applied in the correlator as a
+    // phase shift in each frequency channel.
+    class Delays
+    {
+    public:
+      Delays(const Parset &ps, const string &stationName, const TimeStamp &startTime);
+      ~Delays();
+
+      void start();
+
+      // get the set of directions (ITRF) and delays for the beams, for the next CN integration time
+      // Both matrices must have dimensions [itsNrBeams][itsMaxNrTABs+1]
+      void getNextDelays(Matrix<casa::MVDirection> &directions, Matrix<double> &delays);
+
+    private:
+      casa::MVEpoch                       toUTC(int64 timeInSamples);
+
+      void                                init();
+
+      // do the delay compensation calculations in a separate thread to allow bulk
+      // calculations and to avoid blocking other threads
+      void                                mainLoop();
+
+      const Parset                        &itsParset;
+
+      volatile bool stop;
+
+      // the circular buffer to hold the moving beam directions for every second of data
+      Cube<casa::MVDirection>             itsBuffer;
+      size_t head, tail;
+
+      // two semaphores are used: one to trigger the producer that free space is available,
+      // another to trigger the consumer that data is available.
+      Semaphore bufferFree, bufferUsed;
+
+      // the number of seconds to maintain in the buffer
+      static const size_t bufferSize = 128;
+
+      // the number of delays to calculate in a single run
+      const unsigned itsNrCalcDelays;
+
+      // Get the source directions from the parameter file and initialize \c
+      // itsBeamDirections. Beam positions must be specified as
+      // <tt>(longitude, latitude, direction-type)</tt>. The direction angles
+      // are in radians; the direction type must be one of J2000, ITRF, or
+      // AZEL.
+      void setBeamDirections(const Parset &);
+
+      // Set the station to reference station position differences for
+      // all stations. CS002LBA is the reference station, even if it
+      // does not take part in the observation. The position
+      // differences are stored in \c itsPositionDiffs. In other
+      // words: we store \f$\mathbf{p}_j - \mathbf{p}_0\f$, where
+      // \f$\mathbf{p}_0\f$ is the position of the reference station
+      // and \f$\mathbf{p}_j\f$ is the position of station \f$j\f$.
+      void setPositionDiff(const Parset &);
+
+      // Beam info.
+      const unsigned itsNrBeams;
+      const unsigned itsMaxNrTABs;
+      const std::vector<unsigned>         itsNrTABs;
+      Vector<casa::MDirection::Types>     itsDirectionTypes;
+      Matrix<casa::MVDirection>           itsBeamDirections; // [itsNrBeams][itsMaxNrTABs+1]
+
+      // Sample timings.
+      const TimeStamp itsStartTime;
+      const unsigned itsNrSamplesPerSec;
+      const double itsSampleDuration;
+
+      // Station Name.
+      const string itsStationName;
+      casa::MeasFrame itsFrame;
+      std::map<casa::MDirection::Types, casa::MDirection::Convert> itsConverters;
+
+      // Station phase centre.
+      casa::MPosition itsPhaseCentre;
+
+      // Station to reference station position difference vector.
+      casa::MVPosition itsPhasePositionDiff;
+
+      NSTimer itsDelayTimer;
+
+      SmartPtr<Thread>                    itsThread;
+    };
+
+  } // namespace RTCP
 } // namespace LOFAR
 
 #endif
diff --git a/RTCP/Cobalt/GPUProc/src/Input/InputSection.cc b/RTCP/Cobalt/GPUProc/src/Input/InputSection.cc
index c15345464858d7453b9e40fbbd0c6fc20075ae43..c56a6daf79418674262a0928ebb8195bf10b6f46 100644
--- a/RTCP/Cobalt/GPUProc/src/Input/InputSection.cc
+++ b/RTCP/Cobalt/GPUProc/src/Input/InputSection.cc
@@ -1,4 +1,4 @@
-//#  InputSection.cc: Catch RSP ethernet frames and synchronize RSP inputs 
+//#  InputSection.cc: Catch RSP ethernet frames and synchronize RSP inputs
 //#
 //#  Copyright (C) 2006
 //#  ASTRON (Netherlands Foundation for Research in Astronomy)
@@ -31,98 +31,104 @@
 #include <boost/format.hpp>
 using boost::format;
 
-namespace LOFAR {
-namespace RTCP {
+namespace LOFAR
+{
+  namespace RTCP
+  {
 
 
-template<typename SAMPLE_TYPE> InputSection<SAMPLE_TYPE>::InputSection(const Parset &parset, const std::vector<Parset::StationRSPpair> &inputs)
-{
-  ASSERT(inputs.size() > 0);
+    template<typename SAMPLE_TYPE>
+    InputSection<SAMPLE_TYPE>::InputSection(const Parset &parset, const std::vector<Parset::StationRSPpair> &inputs)
+    {
+      ASSERT(inputs.size() > 0);
 
-  string stationName = inputs[0].station;
-  itsNrRSPboards = inputs.size();
+      string stationName = inputs[0].station;
+      itsNrRSPboards = inputs.size();
 
-  itsLogPrefix = str(format("[station %s] ") % stationName);
+      itsLogPrefix = str(format("[station %s] ") % stationName);
 
-  itsBeamletBuffers.resize(itsNrRSPboards);
+      itsBeamletBuffers.resize(itsNrRSPboards);
 
-  for (unsigned rsp = 0; rsp < itsNrRSPboards; rsp ++)
-    itsBeamletBuffers[rsp] = new BeamletBuffer<SAMPLE_TYPE>(parset, inputs[rsp].station, inputs[rsp].rsp);
+      for (unsigned rsp = 0; rsp < itsNrRSPboards; rsp++)
+        itsBeamletBuffers[rsp] = new BeamletBuffer<SAMPLE_TYPE>(parset, inputs[rsp].station, inputs[rsp].rsp);
 
-  createInputStreams(parset, inputs);
-  createInputThreads(parset, inputs);
-}
+      createInputStreams(parset, inputs);
+      createInputThreads(parset, inputs);
+    }
 
 
-template<typename SAMPLE_TYPE> InputSection<SAMPLE_TYPE>::~InputSection() 
-{
-  LOG_DEBUG_STR(itsLogPrefix << "InputSection::~InputSection()");
-}
+    template<typename SAMPLE_TYPE>
+    InputSection<SAMPLE_TYPE>::~InputSection()
+    {
+      LOG_DEBUG_STR(itsLogPrefix << "InputSection::~InputSection()");
+    }
 
 
-template<typename SAMPLE_TYPE> void InputSection<SAMPLE_TYPE>::createInputStreams(const Parset &parset, const std::vector<Parset::StationRSPpair> &inputs)
-{
-  itsInputStreams.resize(itsNrRSPboards);
+    template<typename SAMPLE_TYPE>
+    void InputSection<SAMPLE_TYPE>::createInputStreams(const Parset &parset, const std::vector<Parset::StationRSPpair> &inputs)
+    {
+      itsInputStreams.resize(itsNrRSPboards);
 
-  for (unsigned i = 0; i < itsNrRSPboards; i ++) {
-    const std::string &station   = inputs[i].station;
-    unsigned	      rsp	 = inputs[i].rsp;
-    std::string	      streamName = parset.getInputStreamName(station, rsp);
+      for (unsigned i = 0; i < itsNrRSPboards; i++) {
+        const std::string &station = inputs[i].station;
+        unsigned rsp = inputs[i].rsp;
+        std::string streamName = parset.getInputStreamName(station, rsp);
 
-    LOG_DEBUG_STR(itsLogPrefix << "input " << i << ": RSP board " << rsp << ", reads from \"" << streamName << '"');
+        LOG_DEBUG_STR(itsLogPrefix << "input " << i << ": RSP board " << rsp << ", reads from \"" << streamName << '"');
 
-    if (station != inputs[0].station)
-      THROW(GPUProcException, "inputs from multiple stations on one I/O node not supported (yet)");
+        if (station != inputs[0].station)
+          THROW(GPUProcException, "inputs from multiple stations on one I/O node not supported (yet)");
 
-    try {
-      itsInputStreams[i] = createStream(streamName, true);
-    } catch(SystemCallException &ex) {
-      LOG_ERROR_STR( "Could not open input stream " << streamName << ", using null stream instead: " << ex);
+        try {
+          itsInputStreams[i] = createStream(streamName, true);
+        } catch(SystemCallException &ex) {
+          LOG_ERROR_STR( "Could not open input stream " << streamName << ", using null stream instead: " << ex);
 
-      itsInputStreams[i] = createStream("null:", true);
-    }
+          itsInputStreams[i] = createStream("null:", true);
+        }
 
-    SocketStream *sstr = dynamic_cast<SocketStream *>(itsInputStreams[i].get());
+        SocketStream *sstr = dynamic_cast<SocketStream *>(itsInputStreams[i].get());
 
-    if (sstr != 0)
-      sstr->setReadBufferSize(8 * 1024 * 1024); // stupid kernel multiplies this by 2
-  }
-}
+        if (sstr != 0)
+          sstr->setReadBufferSize(8 * 1024 * 1024);  // stupid kernel multiplies this by 2
+      }
+    }
 
 
-template<typename SAMPLE_TYPE> void InputSection<SAMPLE_TYPE>::createInputThreads(const Parset &parset, const std::vector<Parset::StationRSPpair> &inputs)
-{
-  itsLogThread = new LogThread(itsNrRSPboards, inputs.size() > 0 ? inputs[0].station : "none");
-  itsLogThread->start();
+    template<typename SAMPLE_TYPE>
+    void InputSection<SAMPLE_TYPE>::createInputThreads(const Parset &parset, const std::vector<Parset::StationRSPpair> &inputs)
+    {
+      itsLogThread = new LogThread(itsNrRSPboards, inputs.size() > 0 ? inputs[0].station : "none");
+      itsLogThread->start();
 
-  /* start up thread which writes RSP data from ethernet link
-     into cyclic buffers */
+      /* start up thread which writes RSP data from ethernet link
+         into cyclic buffers */
 
-  typename InputThread<SAMPLE_TYPE>::ThreadArgs args;
+      typename InputThread<SAMPLE_TYPE>::ThreadArgs args;
 
-  args.nrTimesPerPacket    = parset.getInt32("OLAP.nrTimesInFrame");
-  args.nrSlotsPerPacket    = parset.nrSlotsInFrame();
-  args.isRealTime	   = parset.realTime();
-  args.startTime	   = TimeStamp(static_cast<int64>(parset.startTime() * parset.subbandBandwidth()), parset.clockSpeed());
+      args.nrTimesPerPacket = parset.getInt32("OLAP.nrTimesInFrame");
+      args.nrSlotsPerPacket = parset.nrSlotsInFrame();
+      args.isRealTime = parset.realTime();
+      args.startTime = TimeStamp(static_cast<int64>(parset.startTime() * parset.subbandBandwidth()), parset.clockSpeed());
 
-  itsInputThreads.resize(itsNrRSPboards);
+      itsInputThreads.resize(itsNrRSPboards);
 
-  for (unsigned thread = 0; thread < itsNrRSPboards; thread ++) {
-    args.threadID	    = thread;
-    args.stream		    = itsInputStreams[thread];
-    args.BBuffer            = itsBeamletBuffers[thread];
-    args.packetCounters     = &itsLogThread->itsCounters[thread];
-    args.logPrefix          = str(format("[station %s board %s] ") % inputs[thread].station % inputs[thread].rsp);
+      for (unsigned thread = 0; thread < itsNrRSPboards; thread++) {
+        args.threadID = thread;
+        args.stream = itsInputStreams[thread];
+        args.BBuffer = itsBeamletBuffers[thread];
+        args.packetCounters = &itsLogThread->itsCounters[thread];
+        args.logPrefix = str(format("[station %s board %s] ") % inputs[thread].station % inputs[thread].rsp);
 
-    itsInputThreads[thread] = new InputThread<SAMPLE_TYPE>(args);
-    itsInputThreads[thread]->start();
-  }
-}
+        itsInputThreads[thread] = new InputThread<SAMPLE_TYPE>(args);
+        itsInputThreads[thread]->start();
+      }
+    }
 
 
-template class InputSection<i4complex>;
-template class InputSection<i8complex>;
-template class InputSection<i16complex>;
+    template class InputSection<i4complex>;
+    template class InputSection<i8complex>;
+    template class InputSection<i16complex>;
 
-} // namespace RTCP
+  } // namespace RTCP
 } // namespace LOFAR
diff --git a/RTCP/Cobalt/GPUProc/src/Input/InputSection.h b/RTCP/Cobalt/GPUProc/src/Input/InputSection.h
index 3c1dbc69bdd179d2e5d35f4fd4bb7ecac9bb0f6c..eb04aa45a4d412a3e5ccdee41bd1b8b995dd4cdb 100644
--- a/RTCP/Cobalt/GPUProc/src/Input/InputSection.h
+++ b/RTCP/Cobalt/GPUProc/src/Input/InputSection.h
@@ -1,4 +1,4 @@
-//#  InputSection.h: Catch RSP ethernet frames and synchronize RSP inputs 
+//#  InputSection.h: Catch RSP ethernet frames and synchronize RSP inputs
 //#
 //#  Copyright (C) 2006
 //#  ASTRON (Netherlands Foundation for Research in Astronomy)
@@ -24,7 +24,7 @@
 #define LOFAR_GPUPROC_INPUTSECTION_H
 
 // \file
-// Catch RSP ethernet frames and synchronize RSP inputs 
+// Catch RSP ethernet frames and synchronize RSP inputs
 
 //# Never #include <config.h> or #include <lofar_config.h> in a header file!
 
@@ -41,32 +41,35 @@
 #include <vector>
 
 
-namespace LOFAR {
-namespace RTCP {
-
-template <typename SAMPLE_TYPE> class InputSection
+namespace LOFAR
 {
-  public:
-							InputSection(const Parset &, const std::vector<Parset::StationRSPpair> &inputs);
-							~InputSection();
-  
-    std::vector<SmartPtr<BeamletBuffer<SAMPLE_TYPE> > > itsBeamletBuffers;
-
-  private:
-    void						createInputStreams(const Parset &, const std::vector<Parset::StationRSPpair> &inputs);
-    void						createInputThreads(const Parset &, const std::vector<Parset::StationRSPpair> &inputs);
-
-    std::string						itsLogPrefix;
-
-    std::vector<SmartPtr<Stream > >			itsInputStreams;
-    
-    unsigned						itsNrRSPboards;
-   
-    SmartPtr<LogThread>					itsLogThread;
-    std::vector<SmartPtr<InputThread<SAMPLE_TYPE> > >	itsInputThreads;
-};
-
-} // namespace RTCP
+  namespace RTCP
+  {
+
+    template <typename SAMPLE_TYPE>
+    class InputSection
+    {
+    public:
+      InputSection(const Parset &, const std::vector<Parset::StationRSPpair> &inputs);
+      ~InputSection();
+
+      std::vector<SmartPtr<BeamletBuffer<SAMPLE_TYPE> > > itsBeamletBuffers;
+
+    private:
+      void                                                createInputStreams(const Parset &, const std::vector<Parset::StationRSPpair> &inputs);
+      void                                                createInputThreads(const Parset &, const std::vector<Parset::StationRSPpair> &inputs);
+
+      std::string itsLogPrefix;
+
+      std::vector<SmartPtr<Stream > >                     itsInputStreams;
+
+      unsigned itsNrRSPboards;
+
+      SmartPtr<LogThread>                                 itsLogThread;
+      std::vector<SmartPtr<InputThread<SAMPLE_TYPE> > >   itsInputThreads;
+    };
+
+  } // namespace RTCP
 } // namespace LOFAR
 
 #endif
diff --git a/RTCP/Cobalt/GPUProc/src/Input/InputThread.cc b/RTCP/Cobalt/GPUProc/src/Input/InputThread.cc
index db4108dc9b8f44a987380d75b4b7bf446ffca078..481cab60058dc9da76af14a086f8ab7e2efa7e9b 100644
--- a/RTCP/Cobalt/GPUProc/src/Input/InputThread.cc
+++ b/RTCP/Cobalt/GPUProc/src/Input/InputThread.cc
@@ -45,162 +45,168 @@
 #include <boost/multi_array.hpp>
 
 
-namespace LOFAR {
-namespace RTCP {
+namespace LOFAR
+{
+  namespace RTCP
+  {
 
 
-template <typename SAMPLE_TYPE> InputThread<SAMPLE_TYPE>::InputThread(ThreadArgs args /* call by value! */)
-:
-  itsArgs(args)
-{
-  LOG_DEBUG_STR(itsArgs.logPrefix << "InputThread::InputThread(...)");
-}
+    template <typename SAMPLE_TYPE>
+    InputThread<SAMPLE_TYPE>::InputThread(ThreadArgs args /* call by value! */)
+      :
+      itsArgs(args)
+    {
+      LOG_DEBUG_STR(itsArgs.logPrefix << "InputThread::InputThread(...)");
+    }
 
 
-template <typename SAMPLE_TYPE> void InputThread<SAMPLE_TYPE>::start()
-{
-  itsThread = new Thread(this, &InputThread<SAMPLE_TYPE>::mainLoop, itsArgs.logPrefix + "[InputThread] ", 65536);
-}
+    template <typename SAMPLE_TYPE>
+    void InputThread<SAMPLE_TYPE>::start()
+    {
+      itsThread = new Thread(this, &InputThread<SAMPLE_TYPE>::mainLoop, itsArgs.logPrefix + "[InputThread] ", 65536);
+    }
 
 
-template <typename SAMPLE_TYPE> InputThread<SAMPLE_TYPE>::~InputThread()
-{
-  LOG_DEBUG_STR(itsArgs.logPrefix << "InputThread::~InputThread()");
+    template <typename SAMPLE_TYPE>
+    InputThread<SAMPLE_TYPE>::~InputThread()
+    {
+      LOG_DEBUG_STR(itsArgs.logPrefix << "InputThread::~InputThread()");
 
-  if (itsThread)
-    itsThread->cancel();
-}
+      if (itsThread)
+        itsThread->cancel();
+    }
 
 
-template <typename SAMPLE_TYPE> void InputThread<SAMPLE_TYPE>::mainLoop()
-{
+    template <typename SAMPLE_TYPE>
+    void InputThread<SAMPLE_TYPE>::mainLoop()
+    {
 #if 0 && defined HAVE_BGP_ION
-  if (0 && itsArgs.threadID == 0)
-    runOnCore0();
-  else
-    doNotRunOnCore0();
+      if (0 && itsArgs.threadID == 0)
+        runOnCore0();
+      else
+        doNotRunOnCore0();
 #endif
 
 #if 1 && defined HAVE_BGP_ION
-  doNotRunOnCore0();
+      doNotRunOnCore0();
 #endif
 
-  const unsigned maxNrPackets = 128;
-  TimeStamp	 actualstamp  = itsArgs.startTime - itsArgs.nrTimesPerPacket;
-  unsigned	 packetSize   = sizeof(struct RSP::Header) + itsArgs.nrSlotsPerPacket * itsArgs.nrTimesPerPacket * NR_POLARIZATIONS * sizeof(SAMPLE_TYPE);
-
-  std::vector<TimeStamp> timeStamps(maxNrPackets);
-  boost::multi_array<char, 2, AlignedStdAllocator<char, 32> > packets(boost::extents[maxNrPackets][packetSize]);
-  //boost::multi_array<char, 2, FlatMemoryAllocator<char> > packets(boost::extents[maxNrPackets][packetSize]);
-
-  char		*currentPacketPtr	    = packets.origin();
-  unsigned	currentPacket		    = 0;
-
-  unsigned	previousSeqid		    = 0;
-  bool		previousSeqidIsAccepted	    = false;
-  
-  bool		dataShouldContainValidStamp = dynamic_cast<NullStream *>(itsArgs.stream) == 0;
-  bool		isUDPstream		    = dynamic_cast<SocketStream *>(itsArgs.stream) != 0 && dynamic_cast<SocketStream *>(itsArgs.stream)->protocol == SocketStream::UDP;
-  WallClockTime wallClockTime;
-
-  LOG_DEBUG_STR(itsArgs.logPrefix << " input thread " << itsArgs.threadID << " entering loop");
-
-  while (true) {
-    try {
-      // cancelable read, to allow stopping this thread even if the station
-      // does not send data
-
-      if (isUDPstream) {
-	if (itsArgs.stream->tryRead(currentPacketPtr, packetSize) != packetSize) {
-	  ++ itsArgs.packetCounters->received;
-	  ++ itsArgs.packetCounters->badSize;
-	  continue;
-	}
-      } else {
-	Cancellation::point(); // allow cancellation from null:
-	itsArgs.stream->read(currentPacketPtr, packetSize);
-      }
-    } catch (Stream::EndOfStreamException &) {
-      break;
-    } catch (SystemCallException &ex) {
-      if (ex.error == EINTR)
-	break;
-      else
-	throw;
-    }
-
-    ++ itsArgs.packetCounters->received;
-
-    if (dataShouldContainValidStamp) {
+      const unsigned maxNrPackets = 128;
+      TimeStamp actualstamp = itsArgs.startTime - itsArgs.nrTimesPerPacket;
+      unsigned packetSize = sizeof(struct RSP::Header) + itsArgs.nrSlotsPerPacket * itsArgs.nrTimesPerPacket * NR_POLARIZATIONS * sizeof(SAMPLE_TYPE);
+
+      std::vector<TimeStamp> timeStamps(maxNrPackets);
+      boost::multi_array<char, 2, AlignedStdAllocator<char, 32> > packets(boost::extents[maxNrPackets][packetSize]);
+      //boost::multi_array<char, 2, FlatMemoryAllocator<char> > packets(boost::extents[maxNrPackets][packetSize]);
+
+      char          *currentPacketPtr = packets.origin();
+      unsigned currentPacket = 0;
+
+      unsigned previousSeqid = 0;
+      bool previousSeqidIsAccepted = false;
+
+      bool dataShouldContainValidStamp = dynamic_cast<NullStream *>(itsArgs.stream) == 0;
+      bool isUDPstream = dynamic_cast<SocketStream *>(itsArgs.stream) != 0 && dynamic_cast<SocketStream *>(itsArgs.stream)->protocol == SocketStream::UDP;
+      WallClockTime wallClockTime;
+
+      LOG_DEBUG_STR(itsArgs.logPrefix << " input thread " << itsArgs.threadID << " entering loop");
+
+      while (true) {
+        try {
+          // cancelable read, to allow stopping this thread even if the station
+          // does not send data
+
+          if (isUDPstream) {
+            if (itsArgs.stream->tryRead(currentPacketPtr, packetSize) != packetSize) {
+              ++itsArgs.packetCounters->received;
+              ++itsArgs.packetCounters->badSize;
+              continue;
+            }
+          } else {
+            Cancellation::point(); // allow cancellation from null:
+            itsArgs.stream->read(currentPacketPtr, packetSize);
+          }
+        } catch (Stream::EndOfStreamException &) {
+          break;
+        } catch (SystemCallException &ex) {
+          if (ex.error == EINTR)
+            break;
+          else
+            throw;
+        }
+
+        ++itsArgs.packetCounters->received;
+
+        if (dataShouldContainValidStamp) {
 #if defined __PPC__
-      unsigned seqid, blockid;
+          unsigned seqid, blockid;
 
-      asm volatile ("lwbrx %0,%1,%2" : "=r" (seqid)   : "b" (currentPacketPtr), "r" (offsetof(RSP, header.timestamp)));
-      asm volatile ("lwbrx %0,%1,%2" : "=r" (blockid) : "b" (currentPacketPtr), "r" (offsetof(RSP, header.blockSequenceNumber)));
+          asm volatile ("lwbrx %0,%1,%2" : "=r" (seqid)   : "b" (currentPacketPtr), "r" (offsetof(RSP, header.timestamp)));
+          asm volatile ("lwbrx %0,%1,%2" : "=r" (blockid) : "b" (currentPacketPtr), "r" (offsetof(RSP, header.blockSequenceNumber)));
 #else
-      unsigned seqid   = reinterpret_cast<RSP *>(currentPacketPtr)->header.timestamp;
-      unsigned blockid = reinterpret_cast<RSP *>(currentPacketPtr)->header.blockSequenceNumber;
+          unsigned seqid = reinterpret_cast<RSP *>(currentPacketPtr)->header.timestamp;
+          unsigned blockid = reinterpret_cast<RSP *>(currentPacketPtr)->header.blockSequenceNumber;
 
 #if defined WORDS_BIGENDIAN
-      seqid   = byteSwap(seqid);
-      blockid = byteSwap(blockid);
+          seqid = byteSwap(seqid);
+          blockid = byteSwap(blockid);
 #endif
 #endif
 
-      //if the seconds counter is 0xFFFFFFFF, the data cannot be trusted.
-      if (seqid == ~0U) {
-	++ itsArgs.packetCounters->badTimeStamp;
-	continue;
-      }
-
-      // Sanity check on seqid. Note, that seqid is in seconds,
-      // so a value which is greater than the previous one with more 
-      // than (say) 10 seconds probably means that the sequence number 
-      // in the packet is wrong. This can happen, since communication is not
-      // reliable.
-      if (seqid >= previousSeqid + 10 && previousSeqidIsAccepted) {
-	previousSeqidIsAccepted = false;
-	++ itsArgs.packetCounters->badTimeStamp;
-	continue;
+          //if the seconds counter is 0xFFFFFFFF, the data cannot be trusted.
+          if (seqid == ~0U) {
+            ++itsArgs.packetCounters->badTimeStamp;
+            continue;
+          }
+
+          // Sanity check on seqid. Note, that seqid is in seconds,
+          // so a value which is greater than the previous one with more
+          // than (say) 10 seconds probably means that the sequence number
+          // in the packet is wrong. This can happen, since communication is not
+          // reliable.
+          if (seqid >= previousSeqid + 10 && previousSeqidIsAccepted) {
+            previousSeqidIsAccepted = false;
+            ++itsArgs.packetCounters->badTimeStamp;
+            continue;
+          }
+
+          // accept seqid
+          previousSeqidIsAccepted = true;
+          previousSeqid = seqid;
+
+          actualstamp.setStamp(seqid, blockid);
+        } else {
+          actualstamp += itsArgs.nrTimesPerPacket;
+
+          if (itsArgs.isRealTime)
+            wallClockTime.waitUntil(actualstamp);
+        }
+
+        // expected packet received so write data into corresponding buffer
+        //itsArgs.BBuffer->writePacketData(reinterpret_cast<SAMPLE_TYPE *>(&packet.data), actualstamp);
+
+        timeStamps[currentPacket] = actualstamp;
+        currentPacketPtr += packetSize;
+
+        if (++currentPacket == maxNrPackets) {
+          itsArgs.BBuffer->writeMultiplePackets(packets.origin(), timeStamps);
+          // pthread_yield();
+          currentPacket = 0;
+          currentPacketPtr = packets.origin();
+        }
       }
 
-      // accept seqid
-      previousSeqidIsAccepted = true;
-      previousSeqid	      = seqid;
-	
-      actualstamp.setStamp(seqid, blockid);
-    } else {
-      actualstamp += itsArgs.nrTimesPerPacket; 
-
-      if (itsArgs.isRealTime)
-	wallClockTime.waitUntil(actualstamp);
-    }
-
-    // expected packet received so write data into corresponding buffer
-    //itsArgs.BBuffer->writePacketData(reinterpret_cast<SAMPLE_TYPE *>(&packet.data), actualstamp);
-
-    timeStamps[currentPacket] = actualstamp;
-    currentPacketPtr += packetSize;
-
-    if (++ currentPacket == maxNrPackets) {
+      timeStamps.resize(currentPacket);
       itsArgs.BBuffer->writeMultiplePackets(packets.origin(), timeStamps);
-      // pthread_yield();
-      currentPacket    = 0;
-      currentPacketPtr = packets.origin();
-    }
-  }
-
-  timeStamps.resize(currentPacket);
-  itsArgs.BBuffer->writeMultiplePackets(packets.origin(), timeStamps);
-  itsArgs.BBuffer->noMoreWriting();
+      itsArgs.BBuffer->noMoreWriting();
 
-  LOG_DEBUG_STR(itsArgs.logPrefix << "InputThread::mainLoop() exiting");
-}
+      LOG_DEBUG_STR(itsArgs.logPrefix << "InputThread::mainLoop() exiting");
+    }
 
 
-template class InputThread<i4complex>;
-template class InputThread<i8complex>;
-template class InputThread<i16complex>;
+    template class InputThread<i4complex>;
+    template class InputThread<i8complex>;
+    template class InputThread<i16complex>;
 
-} // namespace RTCP
+  } // namespace RTCP
 } // namespace LOFAR
diff --git a/RTCP/Cobalt/GPUProc/src/Input/InputThread.h b/RTCP/Cobalt/GPUProc/src/Input/InputThread.h
index d2519ae6415b8e19a49929842cdeb5d0807b5ef1..1f3c05c30ade7ce851c9487e08053cfb65043eb3 100644
--- a/RTCP/Cobalt/GPUProc/src/Input/InputThread.h
+++ b/RTCP/Cobalt/GPUProc/src/Input/InputThread.h
@@ -38,41 +38,44 @@
 #include <Input/LogThread.h>
 
 
-namespace LOFAR {
-namespace RTCP {
-
-template<typename SAMPLE_TYPE> class InputThread
+namespace LOFAR
 {
-  public:
-    struct ThreadArgs {
-      BeamletBuffer<SAMPLE_TYPE> *BBuffer;
-      Stream		  *stream; 
-
-      unsigned		  threadID;
-      unsigned		  nrTimesPerPacket;
-      unsigned		  nrSlotsPerPacket;
-      LogThread::Counters *packetCounters;
-      bool		  isRealTime;
-      TimeStamp		  startTime;
-
-      std::string         logPrefix;
-    };
+  namespace RTCP
+  {
+
+    template<typename SAMPLE_TYPE>
+    class InputThread
+    {
+    public:
+      struct ThreadArgs {
+        BeamletBuffer<SAMPLE_TYPE> *BBuffer;
+        Stream              *stream;
 
-			  InputThread(ThreadArgs args);
-			  ~InputThread();
+        unsigned threadID;
+        unsigned nrTimesPerPacket;
+        unsigned nrSlotsPerPacket;
+        LogThread::Counters *packetCounters;
+        bool isRealTime;
+        TimeStamp startTime;
 
-    void                  start();                      
+        std::string logPrefix;
+      };
 
-    static const unsigned packetBuffersSize = 128;
+      InputThread(ThreadArgs args);
+      ~InputThread();
 
-  private:
-    void		  mainLoop();
+      void                  start();
 
-    ThreadArgs		  itsArgs;
-    SmartPtr<Thread>	  itsThread;
-};
+      static const unsigned packetBuffersSize = 128;
+
+    private:
+      void                  mainLoop();
+
+      ThreadArgs itsArgs;
+      SmartPtr<Thread>      itsThread;
+    };
 
-} // namespace RTCP
+  } // namespace RTCP
 } // namespace LOFAR
 
 #endif
diff --git a/RTCP/Cobalt/GPUProc/src/Input/LockedRanges.h b/RTCP/Cobalt/GPUProc/src/Input/LockedRanges.h
index 9ffd70f9bc9286025a41f227ee42ca8e07922167..5e10bafb3a9b5cf222fd3c09e708815ddad2d815 100644
--- a/RTCP/Cobalt/GPUProc/src/Input/LockedRanges.h
+++ b/RTCP/Cobalt/GPUProc/src/Input/LockedRanges.h
@@ -29,67 +29,69 @@
 #include <Common/Thread/Mutex.h>
 
 
-namespace LOFAR {
-namespace RTCP {
-
-class LockedRanges
+namespace LOFAR
 {
-  public:
-    LockedRanges(unsigned bufferSize);
+  namespace RTCP
+  {
 
-    void lock(unsigned begin, unsigned end);
-    void unlock(unsigned begin, unsigned end);
+    class LockedRanges
+    {
+    public:
+      LockedRanges(unsigned bufferSize);
 
-  private:
-    SparseSet<unsigned> itsLockedRanges;
-    Mutex		itsMutex;
-    Condition		itsRangeUnlocked;
-    const unsigned	itsBufferSize;
-};
+      void lock(unsigned begin, unsigned end);
+      void unlock(unsigned begin, unsigned end);
 
+    private:
+      SparseSet<unsigned> itsLockedRanges;
+      Mutex itsMutex;
+      Condition itsRangeUnlocked;
+      const unsigned itsBufferSize;
+    };
 
-inline LockedRanges::LockedRanges(unsigned bufferSize)
-:
-  itsBufferSize(bufferSize)
-{
-}
 
+    inline LockedRanges::LockedRanges(unsigned bufferSize)
+      :
+      itsBufferSize(bufferSize)
+    {
+    }
 
-inline void LockedRanges::lock(unsigned begin, unsigned end)
-{
-  ScopedLock scopedLock(itsMutex);
 
-  if (begin < end) {
-    while (itsLockedRanges.subset(begin, end).count() > 0) {
-      LOG_WARN_STR("Circular buffer: reader & writer try to use overlapping sections, range to lock = (" << begin << ", " << end << "), already locked = " << itsLockedRanges);
-      itsRangeUnlocked.wait(itsMutex);
-    }
+    inline void LockedRanges::lock(unsigned begin, unsigned end)
+    {
+      ScopedLock scopedLock(itsMutex);
 
-    itsLockedRanges.include(begin, end);
-  } else {
-    while (itsLockedRanges.subset(begin, itsBufferSize).count() > 0 || itsLockedRanges.subset(0, end).count() > 0) {
-      LOG_WARN_STR("Circular buffer: reader & writer try to use overlapping sections, range to lock = (" << begin << ", " << end << "), already locked = " << itsLockedRanges);
-      itsRangeUnlocked.wait(itsMutex);
+      if (begin < end) {
+        while (itsLockedRanges.subset(begin, end).count() > 0) {
+          LOG_WARN_STR("Circular buffer: reader & writer try to use overlapping sections, range to lock = (" << begin << ", " << end << "), already locked = " << itsLockedRanges);
+          itsRangeUnlocked.wait(itsMutex);
+        }
+
+        itsLockedRanges.include(begin, end);
+      } else {
+        while (itsLockedRanges.subset(begin, itsBufferSize).count() > 0 || itsLockedRanges.subset(0, end).count() > 0) {
+          LOG_WARN_STR("Circular buffer: reader & writer try to use overlapping sections, range to lock = (" << begin << ", " << end << "), already locked = " << itsLockedRanges);
+          itsRangeUnlocked.wait(itsMutex);
+        }
+
+        itsLockedRanges.include(begin, itsBufferSize).include(0, end);
+      }
     }
 
-    itsLockedRanges.include(begin, itsBufferSize).include(0, end);
-  }
-}
 
+    inline void LockedRanges::unlock(unsigned begin, unsigned end)
+    {
+      ScopedLock scopedLock(itsMutex);
 
-inline void LockedRanges::unlock(unsigned begin, unsigned end)
-{
-  ScopedLock scopedLock(itsMutex);
-  
-  if (begin < end)
-    itsLockedRanges.exclude(begin, end);
-  else
-    itsLockedRanges.exclude(end, itsBufferSize).exclude(0, begin);
+      if (begin < end)
+        itsLockedRanges.exclude(begin, end);
+      else
+        itsLockedRanges.exclude(end, itsBufferSize).exclude(0, begin);
 
-  itsRangeUnlocked.broadcast();
-}
+      itsRangeUnlocked.broadcast();
+    }
 
-} // namespace RTCP
+  } // namespace RTCP
 } // namespace LOFAR
 
 #endif
diff --git a/RTCP/Cobalt/GPUProc/src/Input/LogThread.cc b/RTCP/Cobalt/GPUProc/src/Input/LogThread.cc
index 86a7feaf59820f756456cbf3b36fbaf4e0021d7c..7968a1b21d5918792b1aaa119d93286254666c39 100644
--- a/RTCP/Cobalt/GPUProc/src/Input/LogThread.cc
+++ b/RTCP/Cobalt/GPUProc/src/Input/LogThread.cc
@@ -36,168 +36,171 @@
 #include <unistd.h>
 
 
-namespace LOFAR {
-namespace RTCP {
+namespace LOFAR
+{
+  namespace RTCP
+  {
 
 
-// log from separate thread, since printing from a signal handler causes deadlocks
+    // log from separate thread, since printing from a signal handler causes deadlocks
 
-LogThread::LogThread(unsigned nrRspBoards, std::string stationName)
-:
-  itsCounters(nrRspBoards),
-  itsStationName(stationName)
-{
-}
+    LogThread::LogThread(unsigned nrRspBoards, std::string stationName)
+      :
+      itsCounters(nrRspBoards),
+      itsStationName(stationName)
+    {
+    }
 
 
-void LogThread::start()
-{
-  itsThread = new Thread(this, &LogThread::mainLoop, "[LogThread] ", 65536);
-}
+    void LogThread::start()
+    {
+      itsThread = new Thread(this, &LogThread::mainLoop, "[LogThread] ", 65536);
+    }
 
 
-LogThread::~LogThread()
-{
-  if (itsThread)
-    itsThread->cancel();
+    LogThread::~LogThread()
+    {
+      if (itsThread)
+        itsThread->cancel();
 
-  LOG_DEBUG_STR("[LogThread] finished");
-}
+      LOG_DEBUG_STR("[LogThread] finished");
+    }
 
 
 #if defined HAVE_BGP_ION
 
-bool LogThread::readCPUstats(struct CPUload &load)
-{
-  FILE *file = fopen("/proc/stat", "r");
-  int  retval;
+    bool LogThread::readCPUstats(struct CPUload &load)
+    {
+      FILE *file = fopen("/proc/stat", "r");
+      int retval;
+
+      if (file == 0)
+        return false;
+
+      // make sure the file is always closed -- even on cancellation (fscanf CAN be a cancellation point)
+      struct D {
+        ~D()
+        {
+          fclose(file);
+        }
+
+        FILE *file;
+      } onDestruct = { file };
+      (void)onDestruct;
 
-  if (file == 0)
-    return false;
+      do
+        retval = fscanf(file, "cpu %llu %*u %llu %llu %*u %*u %llu %*u\n", &load.user, &load.system, &load.idle, &load.interrupt);
+      while (retval != 4 && retval != EOF);
 
-  // make sure the file is always closed -- even on cancellation (fscanf CAN be a cancellation point)
-  struct D {
-    ~D() {
-      fclose(file);
+      do
+        retval = fscanf(file, "cpu0 %*u %*u %*u %llu %*u %*u %*u %*u\n", &load.idle0);
+      while (retval != 1 && retval != EOF);
+
+      return retval != EOF;
     }
 
-    FILE *file;
-  } onDestruct = { file };
-  (void)onDestruct;
 
-  do
-    retval = fscanf(file, "cpu %llu %*u %llu %llu %*u %*u %llu %*u\n", &load.user, &load.system, &load.idle, &load.interrupt);
-  while (retval != 4 && retval != EOF);
+    void LogThread::writeCPUstats(std::stringstream &str)
+    {
+      struct CPUload load;
+      struct timeval tv;
 
-  do
-    retval = fscanf(file, "cpu0 %*u %*u %*u %llu %*u %*u %*u %*u\n", &load.idle0);
-  while (retval != 1 && retval != EOF);
+      static size_t lowIdleCount = 0;
 
-  return retval != EOF;
-}
+      if (readCPUstats(load)) {
+        gettimeofday( &tv, 0 );
 
+        float timediff = (tv.tv_sec - previousTimeval.tv_sec) + (tv.tv_usec - previousTimeval.tv_usec) / 1.0e6;
 
-void LogThread::writeCPUstats(std::stringstream &str)
-{
-  struct CPUload load;
-  struct timeval tv;
-
-  static size_t lowIdleCount = 0;
-
-  if (readCPUstats(load)) {
-    gettimeofday( &tv, 0 );
-
-    float timediff = (tv.tv_sec - previousTimeval.tv_sec) + (tv.tv_usec - previousTimeval.tv_usec)/1.0e6;
-
-    unsigned idle0 = static_cast<unsigned>((load.idle0 - previousLoad.idle0) / timediff);
-    if (idle0 < 10)
-      lowIdleCount++;
-    else
-      lowIdleCount = 0;
-
-    // TODO: Don't print this error in non-realtime mode
-    if (lowIdleCount == 5)
-      LOG_ERROR("CPU load critical on core 0");
-
-    //str << ", us/sy/in/id: ["
-    str << ", us/sy/in/id(0): ["
-	<< fixed << setprecision(0) 
-        << (unsigned(load.user	    - previousLoad.user)      + 2) / 4 / timediff << '/'
-	<< (unsigned(load.system    - previousLoad.system)    + 2) / 4 / timediff << '/'
-	<< (unsigned(load.interrupt - previousLoad.interrupt) + 2) / 4 / timediff << '/'
-	<< (unsigned(load.idle	    - previousLoad.idle)      + 2) / 4 / timediff << '('
-	<< idle0 << ")]";
+        unsigned idle0 = static_cast<unsigned>((load.idle0 - previousLoad.idle0) / timediff);
+        if (idle0 < 10)
+          lowIdleCount++;
+        else
+          lowIdleCount = 0;
+
+        // TODO: Don't print this error in non-realtime mode
+        if (lowIdleCount == 5)
+          LOG_ERROR("CPU load critical on core 0");
+
+        //str << ", us/sy/in/id: ["
+        str << ", us/sy/in/id(0): ["
+            << fixed << setprecision(0)
+            << (unsigned(load.user - previousLoad.user) + 2) / 4 / timediff << '/'
+            << (unsigned(load.system - previousLoad.system) + 2) / 4 / timediff << '/'
+            << (unsigned(load.interrupt - previousLoad.interrupt) + 2) / 4 / timediff << '/'
+            << (unsigned(load.idle - previousLoad.idle) + 2) / 4 / timediff << '('
+            << idle0 << ")]";
 #if 0
-	<< "], id: ["
-	<< (unsigned(load.idlePerCore[0] - previousLoad.idlePerCore[0]) << '/'
+        << "], id: ["
+        << (unsigned(load.idlePerCore[0] - previousLoad.idlePerCore[0]) << '/'
 
-    for (unsigned cpu = 0; cpu < 4; cpu ++)
-      str << unsigned(load.idle[cpu] - previousLoad.idle[cpu])
-	  << (cpu == 3 ? ']' : ',');
+            for (unsigned cpu = 0; cpu < 4; cpu++)
+              str << unsigned(load.idle[cpu] - previousLoad.idle[cpu])
+              << (cpu == 3 ? ']' : ',');
 #endif
 
-    previousLoad = load;
-    previousTimeval = tv;
-  } else {
-    str << ", no CPU load info";
-  }
-}
+        previousLoad = load;
+        previousTimeval = tv;
+      } else {
+        str << ", no CPU load info";
+      }
+    }
 
 #endif
 
 
-void LogThread::mainLoop()
-{
+    void LogThread::mainLoop()
+    {
 #if defined HAVE_BGP_ION
-  //doNotRunOnCore0();
-  runOnCore0();
-  readCPUstats(previousLoad);
-  gettimeofday(&previousTimeval,0);
+      //doNotRunOnCore0();
+      runOnCore0();
+      readCPUstats(previousLoad);
+      gettimeofday(&previousTimeval,0);
 #endif
 
-  //LOG_DEBUG("LogThread running");
+      //LOG_DEBUG("LogThread running");
 
-  // non-atomic updates from other threads cause race conditions, but who cares
+      // non-atomic updates from other threads cause race conditions, but who cares
 
-  while (true) {
-    std::stringstream	  logStr;
-    std::vector<unsigned> counts(itsCounters.size());
+      while (true) {
+        std::stringstream logStr;
+        std::vector<unsigned> counts(itsCounters.size());
 
-    for (unsigned rsp = 0; rsp < itsCounters.size(); rsp ++) {
-      counts[rsp]		= itsCounters[rsp].received;
-      itsCounters[rsp].received = 0;
-    }
+        for (unsigned rsp = 0; rsp < itsCounters.size(); rsp++) {
+          counts[rsp] = itsCounters[rsp].received;
+          itsCounters[rsp].received = 0;
+        }
 
-    logStr << "[station " << itsStationName << "] ";
+        logStr << "[station " << itsStationName << "] ";
 
-    logStr << "received packets = " << counts;
+        logStr << "received packets = " << counts;
 
-    for (unsigned rsp = 0; rsp < itsCounters.size(); rsp ++) {
-      counts[rsp]	       = itsCounters[rsp].badSize;
-      itsCounters[rsp].badSize = 0;
-    }
+        for (unsigned rsp = 0; rsp < itsCounters.size(); rsp++) {
+          counts[rsp] = itsCounters[rsp].badSize;
+          itsCounters[rsp].badSize = 0;
+        }
 
-    if (static_cast<unsigned>(std::count(counts.begin(), counts.end(), 0U)) != counts.size())
-      logStr << ", bad size = " << counts;
+        if (static_cast<unsigned>(std::count(counts.begin(), counts.end(), 0U)) != counts.size())
+          logStr << ", bad size = " << counts;
 
-    for (unsigned rsp = 0; rsp < itsCounters.size(); rsp ++) {
-      counts[rsp]		    = itsCounters[rsp].badTimeStamp;
-      itsCounters[rsp].badTimeStamp = 0;
-    }
+        for (unsigned rsp = 0; rsp < itsCounters.size(); rsp++) {
+          counts[rsp] = itsCounters[rsp].badTimeStamp;
+          itsCounters[rsp].badTimeStamp = 0;
+        }
 
-    if (static_cast<unsigned>(std::count(counts.begin(), counts.end(), 0U)) != counts.size())
-      logStr << ", bad timestamps = " << counts;
+        if (static_cast<unsigned>(std::count(counts.begin(), counts.end(), 0U)) != counts.size())
+          logStr << ", bad timestamps = " << counts;
 
 #if defined HAVE_BGP_ION
-    writeCPUstats(logStr);
+        writeCPUstats(logStr);
 #endif
 
-    LOG_INFO_STR(logStr.str());
-    sleep(15);
-  }
+        LOG_INFO_STR(logStr.str());
+        sleep(15);
+      }
 
-  //LOG_DEBUG("LogThread stopped");
-}
+      //LOG_DEBUG("LogThread stopped");
+    }
 
-} // namespace RTCP
+  } // namespace RTCP
 } // namespace LOFAR
diff --git a/RTCP/Cobalt/GPUProc/src/Input/LogThread.h b/RTCP/Cobalt/GPUProc/src/Input/LogThread.h
index 5481223061e8b8fff0368cf5fd3ecf0580e7ac14..97a25b66c40f68f0591268117a1df50117acd030 100644
--- a/RTCP/Cobalt/GPUProc/src/Input/LogThread.h
+++ b/RTCP/Cobalt/GPUProc/src/Input/LogThread.h
@@ -34,47 +34,49 @@
 #include <string>
 #include <sys/time.h>
 
-namespace LOFAR {
-namespace RTCP {
-
-class LogThread
+namespace LOFAR
 {
-  public:
-    LogThread(unsigned nrRspBoards, std::string stationName);
-    ~LogThread();
+  namespace RTCP
+  {
 
-    void start();
+    class LogThread
+    {
+    public:
+      LogThread(unsigned nrRspBoards, std::string stationName);
+      ~LogThread();
 
-    struct Counters {
-      unsigned received, badTimeStamp, badSize;
-      unsigned pad[5]; // pad to cache line size to avoid false sharing 
-    };
+      void start();
+
+      struct Counters {
+        unsigned received, badTimeStamp, badSize;
+        unsigned pad[5]; // pad to cache line size to avoid false sharing
+      };
 
-    std::vector<Counters> itsCounters;
+      std::vector<Counters> itsCounters;
 
-  private:
-    void	mainLoop();
+    private:
+      void        mainLoop();
 
-    std::string itsStationName;
-  
-    SmartPtr<Thread>	itsThread;
+      std::string itsStationName;
+
+      SmartPtr<Thread>    itsThread;
 
 #if defined HAVE_BGP_ION
-    struct CPUload {
-      //unsigned long long user, system, interrupt, idle, idlePerCore[4];
-      unsigned long long user, system, interrupt, idle, idle0;
-    } previousLoad;
+      struct CPUload {
+        //unsigned long long user, system, interrupt, idle, idlePerCore[4];
+        unsigned long long user, system, interrupt, idle, idle0;
+      } previousLoad;
 
-    struct timeval previousTimeval;
+      struct timeval previousTimeval;
 
-    bool readCPUstats(struct CPUload &load);
-    void writeCPUstats(std::stringstream &str);
+      bool readCPUstats(struct CPUload &load);
+      void writeCPUstats(std::stringstream &str);
 #endif
-  };
+    };
 
-  // @}
+    // @}
 
-} // namespace RTCP
+  } // namespace RTCP
 } // namespace LOFAR
 
 #endif
diff --git a/RTCP/Cobalt/GPUProc/src/Input/RSP.h b/RTCP/Cobalt/GPUProc/src/Input/RSP.h
index 20158437fb9af2ef5dc3249bc535e8447f091aae..b43e49c5dc1400ed0a0a8cfacf01f861ee1ea52a 100644
--- a/RTCP/Cobalt/GPUProc/src/Input/RSP.h
+++ b/RTCP/Cobalt/GPUProc/src/Input/RSP.h
@@ -24,30 +24,32 @@
 #define LOFAR_GPUPROC_RSP_H
 
 
-namespace LOFAR {
-namespace RTCP {
+namespace LOFAR
+{
+  namespace RTCP
+  {
 
 #include <cstddef>
 
 
-// All data is in Little Endian format!
+    // All data is in Little Endian format!
 
-struct RSP {
-  struct Header {
-    uint8_t  version;
-    uint8_t  sourceInfo;
-    uint16_t configuration;
-    uint16_t station;
-    uint8_t  nrBeamlets;
-    uint8_t  nrBlocks;
-    uint32_t timestamp;
-    uint32_t blockSequenceNumber;
-  } header;
+    struct RSP {
+      struct Header {
+        uint8_t version;
+        uint8_t sourceInfo;
+        uint16_t configuration;
+        uint16_t station;
+        uint8_t nrBeamlets;
+        uint8_t nrBlocks;
+        uint32_t timestamp;
+        uint32_t blockSequenceNumber;
+      } header;
 
-  char       data[8130];
-};
+      char data[8130];
+    };
 
-} // namespace RTCP
+  } // namespace RTCP
 } // namespace LOFAR
 
 #endif
diff --git a/RTCP/Cobalt/GPUProc/src/Input/ReaderWriterSynchronization.cc b/RTCP/Cobalt/GPUProc/src/Input/ReaderWriterSynchronization.cc
index 4cc0a19ca95acea246bae23b0dcf5f0cc37a2e04..9b658f395e5c8f4ca17ad1bb5b26357ab67d6743 100644
--- a/RTCP/Cobalt/GPUProc/src/Input/ReaderWriterSynchronization.cc
+++ b/RTCP/Cobalt/GPUProc/src/Input/ReaderWriterSynchronization.cc
@@ -1,4 +1,4 @@
-//# 
+//#
 //#
 //# Copyright (C) 2000, 2001
 //# ASTRON (Netherlands Foundation for Research in Astronomy)
@@ -26,99 +26,101 @@
 #include <Input/ReaderWriterSynchronization.h>
 
 
-namespace LOFAR {
-namespace RTCP {
+namespace LOFAR
+{
+  namespace RTCP
+  {
 
 
-ReaderAndWriterSynchronization::~ReaderAndWriterSynchronization()
-{
-}
+    ReaderAndWriterSynchronization::~ReaderAndWriterSynchronization()
+    {
+    }
 
 
 
 
-SynchronizedReaderAndWriter::SynchronizedReaderAndWriter(unsigned bufferSize)
-:
-  itsBufferSize(bufferSize)
-{
-}
+    SynchronizedReaderAndWriter::SynchronizedReaderAndWriter(unsigned bufferSize)
+      :
+      itsBufferSize(bufferSize)
+    {
+    }
 
 
-SynchronizedReaderAndWriter::~SynchronizedReaderAndWriter()
-{
-}
+    SynchronizedReaderAndWriter::~SynchronizedReaderAndWriter()
+    {
+    }
 
 
-void SynchronizedReaderAndWriter::startRead(const TimeStamp &begin, const TimeStamp &end)
-{
-  itsReadPointer.advanceTo(begin);
-  itsWritePointer.waitFor(end);
-}
+    void SynchronizedReaderAndWriter::startRead(const TimeStamp &begin, const TimeStamp &end)
+    {
+      itsReadPointer.advanceTo(begin);
+      itsWritePointer.waitFor(end);
+    }
 
 
-void SynchronizedReaderAndWriter::finishedRead(const TimeStamp &advanceTo)
-{
-  itsReadPointer.advanceTo(advanceTo);
-}
+    void SynchronizedReaderAndWriter::finishedRead(const TimeStamp &advanceTo)
+    {
+      itsReadPointer.advanceTo(advanceTo);
+    }
 
 
-void SynchronizedReaderAndWriter::startWrite(const TimeStamp &begin, const TimeStamp &end)
-{
-  itsWritePointer.advanceTo(begin);
-  itsReadPointer.waitFor(end - itsBufferSize);
-}
+    void SynchronizedReaderAndWriter::startWrite(const TimeStamp &begin, const TimeStamp &end)
+    {
+      itsWritePointer.advanceTo(begin);
+      itsReadPointer.waitFor(end - itsBufferSize);
+    }
 
 
-void SynchronizedReaderAndWriter::finishedWrite(const TimeStamp &advanceTo)
-{
-  itsWritePointer.advanceTo(advanceTo);
-}
+    void SynchronizedReaderAndWriter::finishedWrite(const TimeStamp &advanceTo)
+    {
+      itsWritePointer.advanceTo(advanceTo);
+    }
 
 
-void SynchronizedReaderAndWriter::noMoreReading()
-{
-  // advance read pointer to infinity, to unblock thread that waits in startWrite
-  itsReadPointer.advanceTo(TimeStamp(0x7FFFFFFFFFFFFFFFLL)); // we only use this TimeStamp for comparison so clockSpeed does not matter
-}
+    void SynchronizedReaderAndWriter::noMoreReading()
+    {
+      // advance read pointer to infinity, to unblock thread that waits in startWrite
+      itsReadPointer.advanceTo(TimeStamp(0x7FFFFFFFFFFFFFFFLL)); // we only use this TimeStamp for comparison so clockSpeed does not matter
+    }
 
 
-void SynchronizedReaderAndWriter::noMoreWriting()
-{
-  itsWritePointer.advanceTo(TimeStamp(0x7FFFFFFFFFFFFFFFLL));
-}
+    void SynchronizedReaderAndWriter::noMoreWriting()
+    {
+      itsWritePointer.advanceTo(TimeStamp(0x7FFFFFFFFFFFFFFFLL));
+    }
 
 
-TimeSynchronizedReader::TimeSynchronizedReader(unsigned maximumNetworkLatency)
-:
-  itsMaximumNetworkLatency(maximumNetworkLatency)
-{
-}
+    TimeSynchronizedReader::TimeSynchronizedReader(unsigned maximumNetworkLatency)
+      :
+      itsMaximumNetworkLatency(maximumNetworkLatency)
+    {
+    }
 
 
-TimeSynchronizedReader::~TimeSynchronizedReader()
-{
-}
+    TimeSynchronizedReader::~TimeSynchronizedReader()
+    {
+    }
 
 
-void TimeSynchronizedReader::startRead(const TimeStamp & /*begin*/, const TimeStamp &end)
-{
-  itsWallClock.waitUntil(end + itsMaximumNetworkLatency);
-}
+    void TimeSynchronizedReader::startRead(const TimeStamp & /*begin*/, const TimeStamp &end)
+    {
+      itsWallClock.waitUntil(end + itsMaximumNetworkLatency);
+    }
 
 
-void TimeSynchronizedReader::finishedRead(const TimeStamp & /*advanceTo*/)
-{
-}
+    void TimeSynchronizedReader::finishedRead(const TimeStamp & /*advanceTo*/)
+    {
+    }
 
 
-void TimeSynchronizedReader::startWrite(const TimeStamp & /*begin*/, const TimeStamp & /*end*/)
-{
-}
+    void TimeSynchronizedReader::startWrite(const TimeStamp & /*begin*/, const TimeStamp & /*end*/)
+    {
+    }
 
 
-void TimeSynchronizedReader::finishedWrite(const TimeStamp & /*advanceTo*/)
-{
-}
+    void TimeSynchronizedReader::finishedWrite(const TimeStamp & /*advanceTo*/)
+    {
+    }
 
-} // namespace RTCP
+  } // namespace RTCP
 } // namespace LOFAR
diff --git a/RTCP/Cobalt/GPUProc/src/Input/ReaderWriterSynchronization.h b/RTCP/Cobalt/GPUProc/src/Input/ReaderWriterSynchronization.h
index 15c3152afaef82673555f9bec04d3e2af6ae0999..f933b3e19068b1bdffd77599f7398ddf9676cf06 100644
--- a/RTCP/Cobalt/GPUProc/src/Input/ReaderWriterSynchronization.h
+++ b/RTCP/Cobalt/GPUProc/src/Input/ReaderWriterSynchronization.h
@@ -30,64 +30,66 @@
 #include <pthread.h>
 
 
-namespace LOFAR {
-namespace RTCP {  
+namespace LOFAR
+{
+  namespace RTCP
+  {
 
 
-class ReaderAndWriterSynchronization
-{
-  public:
-    virtual	 ~ReaderAndWriterSynchronization();
+    class ReaderAndWriterSynchronization
+    {
+    public:
+      virtual ~ReaderAndWriterSynchronization();
 
-    virtual void startRead(const TimeStamp &begin, const TimeStamp &end) = 0;
-    virtual void finishedRead(const TimeStamp &advanceTo) = 0;
+      virtual void startRead(const TimeStamp &begin, const TimeStamp &end) = 0;
+      virtual void finishedRead(const TimeStamp &advanceTo) = 0;
 
-    virtual void startWrite(const TimeStamp &begin, const TimeStamp &end) = 0;
-    virtual void finishedWrite(const TimeStamp &advanceTo) = 0;
-};
+      virtual void startWrite(const TimeStamp &begin, const TimeStamp &end) = 0;
+      virtual void finishedWrite(const TimeStamp &advanceTo) = 0;
+    };
 
 
-class SynchronizedReaderAndWriter : public ReaderAndWriterSynchronization
-{
-  public:
-		 SynchronizedReaderAndWriter(unsigned bufferSize);
-		 ~SynchronizedReaderAndWriter();
+    class SynchronizedReaderAndWriter : public ReaderAndWriterSynchronization
+    {
+    public:
+      SynchronizedReaderAndWriter(unsigned bufferSize);
+      ~SynchronizedReaderAndWriter();
 
-    virtual void startRead(const TimeStamp &begin, const TimeStamp &end);
-    virtual void finishedRead(const TimeStamp &advanceTo);
+      virtual void startRead(const TimeStamp &begin, const TimeStamp &end);
+      virtual void finishedRead(const TimeStamp &advanceTo);
 
-    virtual void startWrite(const TimeStamp &begin, const TimeStamp &end);
-    virtual void finishedWrite(const TimeStamp &advanceTo);
+      virtual void startWrite(const TimeStamp &begin, const TimeStamp &end);
+      virtual void finishedWrite(const TimeStamp &advanceTo);
 
-    void	 noMoreReading();
-    void	 noMoreWriting();
-    
-  private:
-    SlidingPointer<TimeStamp> itsReadPointer, itsWritePointer;
-    unsigned		      itsBufferSize;
-};
+      void         noMoreReading();
+      void         noMoreWriting();
 
+    private:
+      SlidingPointer<TimeStamp> itsReadPointer, itsWritePointer;
+      unsigned itsBufferSize;
+    };
 
-class TimeSynchronizedReader : public ReaderAndWriterSynchronization
-{
-  public:
-		  TimeSynchronizedReader(unsigned maximumNetworkLatency);
-		  ~TimeSynchronizedReader();
 
-    virtual void  startRead(const TimeStamp &begin, const TimeStamp &end);
-    virtual void  finishedRead(const TimeStamp &advanceTo);
+    class TimeSynchronizedReader : public ReaderAndWriterSynchronization
+    {
+    public:
+      TimeSynchronizedReader(unsigned maximumNetworkLatency);
+      ~TimeSynchronizedReader();
+
+      virtual void  startRead(const TimeStamp &begin, const TimeStamp &end);
+      virtual void  finishedRead(const TimeStamp &advanceTo);
+
+      virtual void  startWrite(const TimeStamp &begin, const TimeStamp &end);
+      virtual void  finishedWrite(const TimeStamp &advanceTo);
 
-    virtual void  startWrite(const TimeStamp &begin, const TimeStamp &end);
-    virtual void  finishedWrite(const TimeStamp &advanceTo);
-    
-  private:
-    WallClockTime itsWallClock;
-    unsigned	  itsMaximumNetworkLatency;
-};
+    private:
+      WallClockTime itsWallClock;
+      unsigned itsMaximumNetworkLatency;
+    };
 
 
 
-} // namespace RTCP
+  } // namespace RTCP
 } // namespace LOFAR
 
 #endif
diff --git a/RTCP/Cobalt/GPUProc/src/Input/WallClockTime.h b/RTCP/Cobalt/GPUProc/src/Input/WallClockTime.h
index 7b9a74f155a459dbe50f5c8a61b9a1aff0678a3d..d4763e527c6edb8dbcbb47c6e013ae0485bd9f5a 100644
--- a/RTCP/Cobalt/GPUProc/src/Input/WallClockTime.h
+++ b/RTCP/Cobalt/GPUProc/src/Input/WallClockTime.h
@@ -31,78 +31,80 @@
 #include <time.h>
 
 
-namespace LOFAR {
-namespace RTCP {
+namespace LOFAR
+{
+  namespace RTCP
+  {
 
 
-class WallClockTime
-{
-  public:
-	      WallClockTime();
+    class WallClockTime
+    {
+    public:
+      WallClockTime();
 
-    bool      waitUntil(const struct timespec &);
-    bool      waitUntil(time_t);
-    bool      waitUntil(const TimeStamp &);
-    void      waitForever();
+      bool      waitUntil(const struct timespec &);
+      bool waitUntil(time_t);
+      bool      waitUntil(const TimeStamp &);
+      void      waitForever();
 
-    void      cancelWait();
+      void      cancelWait();
 
-  private:
-    Mutex     itsMutex;
-    Condition itsCondition;
-    bool      itsCancelled;
-};
+    private:
+      Mutex itsMutex;
+      Condition itsCondition;
+      bool itsCancelled;
+    };
 
 
-inline WallClockTime::WallClockTime()
-:
-  itsCancelled(false)
-{
-}
+    inline WallClockTime::WallClockTime()
+      :
+      itsCancelled(false)
+    {
+    }
 
 
-inline bool WallClockTime::waitUntil(const struct timespec &timespec)
-{
-  ScopedLock scopedLock(itsMutex);
+    inline bool WallClockTime::waitUntil(const struct timespec &timespec)
+    {
+      ScopedLock scopedLock(itsMutex);
 
-  while (!itsCancelled && itsCondition.wait(itsMutex, timespec))
-    ;
+      while (!itsCancelled && itsCondition.wait(itsMutex, timespec))
+        ;
 
-  return !itsCancelled;
-}
+      return !itsCancelled;
+    }
 
 
-inline bool WallClockTime::waitUntil(time_t timestamp)
-{
-  struct timespec timespec = { timestamp, 0 };
+    inline bool WallClockTime::waitUntil(time_t timestamp)
+    {
+      struct timespec timespec = { timestamp, 0 };
 
-  return waitUntil(timespec);
-}
+      return waitUntil(timespec);
+    }
 
 
-inline bool WallClockTime::waitUntil(const TimeStamp &timestamp)
-{
-  return waitUntil(static_cast<struct timespec>(timestamp));
-}
+    inline bool WallClockTime::waitUntil(const TimeStamp &timestamp)
+    {
+      return waitUntil(static_cast<struct timespec>(timestamp));
+    }
 
-inline void WallClockTime::waitForever()
-{
-  ScopedLock scopedLock(itsMutex);
+    inline void WallClockTime::waitForever()
+    {
+      ScopedLock scopedLock(itsMutex);
 
-  while (!itsCancelled) 
-    itsCondition.wait(itsMutex);
-}
+      while (!itsCancelled)
+        itsCondition.wait(itsMutex);
+    }
 
-inline void WallClockTime::cancelWait()
-{
-  ScopedLock scopedLock(itsMutex);
+    inline void WallClockTime::cancelWait()
+    {
+      ScopedLock scopedLock(itsMutex);
 
-  itsCancelled = true;
-  itsCondition.broadcast();
-}
+      itsCancelled = true;
+      itsCondition.broadcast();
+    }
 
 
-} // namespace RTCP
+  } // namespace RTCP
 } // namespace LOFAR
 
 #endif
diff --git a/RTCP/Cobalt/GPUProc/src/Kernel.cc b/RTCP/Cobalt/GPUProc/src/Kernel.cc
index e7c99417bd11d9ed2cb02d83c8a51f2cccd8c4fb..0cf01230c7a38f67bbfaac3b93aca8cc1b0fc315 100644
--- a/RTCP/Cobalt/GPUProc/src/Kernel.cc
+++ b/RTCP/Cobalt/GPUProc/src/Kernel.cc
@@ -7,24 +7,24 @@
 
 namespace LOFAR
 {
-    namespace RTCP 
+  namespace RTCP
+  {
+    Kernel::Kernel(const Parset &ps, cl::Program &program, const char *name)
+      :
+      cl::Kernel(program, name),
+      ps(ps)
     {
-        Kernel::Kernel(const Parset &ps, cl::Program &program, const char *name)
-            :
-        cl::Kernel(program, name),
-            ps(ps)
-        {
-        }
+    }
 
-        void Kernel::enqueue(cl::CommandQueue &queue, PerformanceCounter &counter)
-        {
-            // AMD complains if we submit 0-sized work
-            for (unsigned dim = 0; dim < globalWorkSize.dimensions(); dim ++)
-                if (globalWorkSize[dim] == 0)
-                    return;
+    void Kernel::enqueue(cl::CommandQueue &queue, PerformanceCounter &counter)
+    {
+      // AMD complains if we submit 0-sized work
+      for (unsigned dim = 0; dim < globalWorkSize.dimensions(); dim++)
+        if (globalWorkSize[dim] == 0)
+          return;
 
-            queue.enqueueNDRangeKernel(*this, cl::NullRange, globalWorkSize, localWorkSize, 0, &event);
-            counter.doOperation(event, nrOperations, nrBytesRead, nrBytesWritten);
-        }
+      queue.enqueueNDRangeKernel(*this, cl::NullRange, globalWorkSize, localWorkSize, 0, &event);
+      counter.doOperation(event, nrOperations, nrBytesRead, nrBytesWritten);
     }
+  }
 }
diff --git a/RTCP/Cobalt/GPUProc/src/Kernel.h b/RTCP/Cobalt/GPUProc/src/Kernel.h
index 874bfa5e2e0914054b40d1d5b06552ed7547498e..2de14f59139ac9c76f11e942bf8e32fc1aea8eba 100644
--- a/RTCP/Cobalt/GPUProc/src/Kernel.h
+++ b/RTCP/Cobalt/GPUProc/src/Kernel.h
@@ -7,21 +7,21 @@
 
 namespace LOFAR
 {
-    namespace RTCP 
+  namespace RTCP
+  {
+    class Kernel : public cl::Kernel
     {
-        class Kernel : public cl::Kernel
-        {
-        public:
-            Kernel(const Parset &ps, cl::Program &program, const char *name);
-            
-            void enqueue(cl::CommandQueue &queue, PerformanceCounter &counter);
-            
-        protected:
-            cl::Event	 event;
-            const Parset &ps;
-            cl::NDRange  globalWorkSize, localWorkSize;
-            size_t       nrOperations, nrBytesRead, nrBytesWritten;
-        };
-    }
+    public:
+      Kernel(const Parset &ps, cl::Program &program, const char *name);
+
+      void enqueue(cl::CommandQueue &queue, PerformanceCounter &counter);
+
+    protected:
+      cl::Event event;
+      const Parset &ps;
+      cl::NDRange globalWorkSize, localWorkSize;
+      size_t nrOperations, nrBytesRead, nrBytesWritten;
+    };
+  }
 }
 #endif
diff --git a/RTCP/Cobalt/GPUProc/src/Kernels/BeamFormerKernel.cc b/RTCP/Cobalt/GPUProc/src/Kernels/BeamFormerKernel.cc
index 93652f1c4043e106ffd663b77d1fa1a88d6936a4..95de7d265ce28ac3f5d3dbeb2695d70ea34a7006 100644
--- a/RTCP/Cobalt/GPUProc/src/Kernels/BeamFormerKernel.cc
+++ b/RTCP/Cobalt/GPUProc/src/Kernels/BeamFormerKernel.cc
@@ -1,5 +1,5 @@
-
-#include "lofar_config.h"    
+
+#include "lofar_config.h"
 
 #include "Kernel.h"
 #include "BeamFormerKernel.h"
@@ -11,31 +11,31 @@
 
 namespace LOFAR
 {
-    namespace RTCP 
-    {      
-            BeamFormerKernel::BeamFormerKernel(const Parset &ps, cl::Program &program, cl::Buffer &devComplexVoltages, cl::Buffer &devCorrectedData, cl::Buffer &devBeamFormerWeights)
-                :
-            Kernel(ps, program, "complexVoltages")
-            {
-                setArg(0, devComplexVoltages);
-                setArg(1, devCorrectedData);
-                setArg(2, devBeamFormerWeights);
-
-                globalWorkSize = cl::NDRange(NR_POLARIZATIONS, ps.nrTABs(0), ps.nrChannelsPerSubband());
-                localWorkSize  = cl::NDRange(NR_POLARIZATIONS, ps.nrTABs(0), 1);
-
-                // FIXME: nrTABs
-                //queue.enqueueNDRangeKernel(*this, cl::NullRange, cl::NDRange(16, ps.nrTABs(0), ps.nrChannelsPerSubband()), cl::NDRange(16, ps.nrTABs(0), 1), 0, &event);
-
-                size_t count = ps.nrChannelsPerSubband() * ps.nrSamplesPerChannel() * NR_POLARIZATIONS;
-                size_t nrWeightsBytes = ps.nrStations() * ps.nrTABs(0) * ps.nrChannelsPerSubband() * NR_POLARIZATIONS * sizeof(std::complex<float>);
-                size_t nrSampleBytesPerPass = count * ps.nrStations() * sizeof(std::complex<float>);
-                size_t nrComplexVoltagesBytesPerPass = count * ps.nrTABs(0) * sizeof(std::complex<float>);
-                unsigned nrPasses = std::max((ps.nrStations() + 6) / 16, 1U);
-                nrOperations   = count * ps.nrStations() * ps.nrTABs(0) * 8;
-                nrBytesRead    = nrWeightsBytes + nrSampleBytesPerPass + (nrPasses - 1) * nrComplexVoltagesBytesPerPass;
-                nrBytesWritten = nrPasses * nrComplexVoltagesBytesPerPass;
-            }
-        
+  namespace RTCP
+  {
+    BeamFormerKernel::BeamFormerKernel(const Parset &ps, cl::Program &program, cl::Buffer &devComplexVoltages, cl::Buffer &devCorrectedData, cl::Buffer &devBeamFormerWeights)
+      :
+      Kernel(ps, program, "complexVoltages")
+    {
+      setArg(0, devComplexVoltages);
+      setArg(1, devCorrectedData);
+      setArg(2, devBeamFormerWeights);
+
+      globalWorkSize = cl::NDRange(NR_POLARIZATIONS, ps.nrTABs(0), ps.nrChannelsPerSubband());
+      localWorkSize = cl::NDRange(NR_POLARIZATIONS, ps.nrTABs(0), 1);
+
+      // FIXME: nrTABs
+      //queue.enqueueNDRangeKernel(*this, cl::NullRange, cl::NDRange(16, ps.nrTABs(0), ps.nrChannelsPerSubband()), cl::NDRange(16, ps.nrTABs(0), 1), 0, &event);
+
+      size_t count = ps.nrChannelsPerSubband() * ps.nrSamplesPerChannel() * NR_POLARIZATIONS;
+      size_t nrWeightsBytes = ps.nrStations() * ps.nrTABs(0) * ps.nrChannelsPerSubband() * NR_POLARIZATIONS * sizeof(std::complex<float>);
+      size_t nrSampleBytesPerPass = count * ps.nrStations() * sizeof(std::complex<float>);
+      size_t nrComplexVoltagesBytesPerPass = count * ps.nrTABs(0) * sizeof(std::complex<float>);
+      unsigned nrPasses = std::max((ps.nrStations() + 6) / 16, 1U);
+      nrOperations = count * ps.nrStations() * ps.nrTABs(0) * 8;
+      nrBytesRead = nrWeightsBytes + nrSampleBytesPerPass + (nrPasses - 1) * nrComplexVoltagesBytesPerPass;
+      nrBytesWritten = nrPasses * nrComplexVoltagesBytesPerPass;
     }
+
+  }
 }
\ No newline at end of file
diff --git a/RTCP/Cobalt/GPUProc/src/Kernels/BeamFormerKernel.h b/RTCP/Cobalt/GPUProc/src/Kernels/BeamFormerKernel.h
index 58bfa1e42d983b9ea5c4a02e55223b71572c755e..a071222f29ca4e2bc6a3daa516c7fd537b37c5a7 100644
--- a/RTCP/Cobalt/GPUProc/src/Kernels/BeamFormerKernel.h
+++ b/RTCP/Cobalt/GPUProc/src/Kernels/BeamFormerKernel.h
@@ -10,16 +10,16 @@
 
 namespace LOFAR
 {
-    namespace RTCP 
-    {
-        class BeamFormerKernel : public Kernel
-        {
-        public:
-            BeamFormerKernel(const Parset &ps, cl::Program &program, cl::Buffer &devComplexVoltages,
-                cl::Buffer &devCorrectedData, cl::Buffer &devBeamFormerWeights);
-        };
+  namespace RTCP
+  {
+    class BeamFormerKernel : public Kernel
+    {
+    public:
+      BeamFormerKernel(const Parset &ps, cl::Program &program, cl::Buffer &devComplexVoltages,
+                       cl::Buffer &devCorrectedData, cl::Buffer &devBeamFormerWeights);
+    };
 
 
-    }
+  }
 }
 #endif
\ No newline at end of file
diff --git a/RTCP/Cobalt/GPUProc/src/Kernels/BeamFormerTransposeKernel.cc b/RTCP/Cobalt/GPUProc/src/Kernels/BeamFormerTransposeKernel.cc
index 95756b1050bb2b559517a6f8ce1501f436f78bba..14f04798de37b7cd3b156ccf874113e71ddff4b1 100644
--- a/RTCP/Cobalt/GPUProc/src/Kernels/BeamFormerTransposeKernel.cc
+++ b/RTCP/Cobalt/GPUProc/src/Kernels/BeamFormerTransposeKernel.cc
@@ -1,4 +1,4 @@
-#include "lofar_config.h"    
+#include "lofar_config.h"
 
 #include "Kernel.h"
 #include "BeamFormerTransposeKernel.h"
@@ -11,26 +11,26 @@
 
 namespace LOFAR
 {
-    namespace RTCP 
-    {      
+  namespace RTCP
+  {
 
-        BeamFormerTransposeKernel::BeamFormerTransposeKernel(const Parset &ps, cl::Program &program, cl::Buffer &devTransposedData, cl::Buffer &devComplexVoltages)
-            :
-        Kernel(ps, program, "transposeComplexVoltages")
-        {
-            ASSERT(ps.nrSamplesPerChannel() % 16 == 0);
-            setArg(0, devTransposedData);
-            setArg(1, devComplexVoltages);
+    BeamFormerTransposeKernel::BeamFormerTransposeKernel(const Parset &ps, cl::Program &program, cl::Buffer &devTransposedData, cl::Buffer &devComplexVoltages)
+      :
+      Kernel(ps, program, "transposeComplexVoltages")
+    {
+      ASSERT(ps.nrSamplesPerChannel() % 16 == 0);
+      setArg(0, devTransposedData);
+      setArg(1, devComplexVoltages);
 
-            //globalWorkSize = cl::NDRange(256, (ps.nrTABs(0) + 15) / 16, (ps.nrChannelsPerSubband() + 15) / 16);
-            globalWorkSize = cl::NDRange(256, (ps.nrTABs(0) + 15) / 16, ps.nrSamplesPerChannel() / 16);
-            localWorkSize  = cl::NDRange(256, 1, 1);
-
-            nrOperations   = 0;
-            nrBytesRead    = (size_t) ps.nrChannelsPerSubband() * ps.nrSamplesPerChannel() * ps.nrTABs(0) * NR_POLARIZATIONS * sizeof(std::complex<float>),
-                //nrBytesWritten = (size_t) ps.nrTABs(0) * NR_POLARIZATIONS * ps.nrSamplesPerChannel() * ps.nrChannelsPerSubband() * sizeof(std::complex<float>);
-                nrBytesWritten = (size_t) ps.nrTABs(0) * NR_POLARIZATIONS * ps.nrChannelsPerSubband() * ps.nrSamplesPerChannel() * sizeof(std::complex<float>);
-        }
+      //globalWorkSize = cl::NDRange(256, (ps.nrTABs(0) + 15) / 16, (ps.nrChannelsPerSubband() + 15) / 16);
+      globalWorkSize = cl::NDRange(256, (ps.nrTABs(0) + 15) / 16, ps.nrSamplesPerChannel() / 16);
+      localWorkSize = cl::NDRange(256, 1, 1);
 
+      nrOperations = 0;
+      nrBytesRead = (size_t) ps.nrChannelsPerSubband() * ps.nrSamplesPerChannel() * ps.nrTABs(0) * NR_POLARIZATIONS * sizeof(std::complex<float>),
+      //nrBytesWritten = (size_t) ps.nrTABs(0) * NR_POLARIZATIONS * ps.nrSamplesPerChannel() * ps.nrChannelsPerSubband() * sizeof(std::complex<float>);
+      nrBytesWritten = (size_t) ps.nrTABs(0) * NR_POLARIZATIONS * ps.nrChannelsPerSubband() * ps.nrSamplesPerChannel() * sizeof(std::complex<float>);
     }
+
+  }
 }
\ No newline at end of file
diff --git a/RTCP/Cobalt/GPUProc/src/Kernels/BeamFormerTransposeKernel.h b/RTCP/Cobalt/GPUProc/src/Kernels/BeamFormerTransposeKernel.h
index eff43d9b96e35b8b95b5f45aecceb32b95501e44..1e54e2fb7ca2fe007daebd279e2b03ee8df434a1 100644
--- a/RTCP/Cobalt/GPUProc/src/Kernels/BeamFormerTransposeKernel.h
+++ b/RTCP/Cobalt/GPUProc/src/Kernels/BeamFormerTransposeKernel.h
@@ -10,15 +10,15 @@
 
 namespace LOFAR
 {
-    namespace RTCP 
+  namespace RTCP
+  {
+    class BeamFormerTransposeKernel : public Kernel
     {
-        class BeamFormerTransposeKernel : public Kernel
-        {
-        public:
-            BeamFormerTransposeKernel(const Parset &ps, cl::Program &program,
-                cl::Buffer &devTransposedData, cl::Buffer &devComplexVoltages);
+    public:
+      BeamFormerTransposeKernel(const Parset &ps, cl::Program &program,
+                                cl::Buffer &devTransposedData, cl::Buffer &devComplexVoltages);
 
-        };
-    }
+    };
+  }
 }
 #endif
diff --git a/RTCP/Cobalt/GPUProc/src/Kernels/CoherentStokesKernel.cc b/RTCP/Cobalt/GPUProc/src/Kernels/CoherentStokesKernel.cc
index 1f53aa4145a497bc890c9a5415598028ee742cd2..7b095e620f20439551bb862e4fd9d244b0724b64 100644
--- a/RTCP/Cobalt/GPUProc/src/Kernels/CoherentStokesKernel.cc
+++ b/RTCP/Cobalt/GPUProc/src/Kernels/CoherentStokesKernel.cc
@@ -1,4 +1,4 @@
-#include "lofar_config.h"    
+#include "lofar_config.h"
 
 #include "Kernel.h"
 #include "CoherentStokesKernel.h"
@@ -10,26 +10,26 @@
 
 namespace LOFAR
 {
-    namespace RTCP 
-    {      
-
-        CoherentStokesKernel::CoherentStokesKernel(const Parset &ps, cl::Program &program, cl::Buffer &devStokesData, cl::Buffer &devComplexVoltages)
-            :
-        Kernel(ps, program, "coherentStokes")
-        {
-            ASSERT(ps.nrChannelsPerSubband() >= 16 && ps.nrChannelsPerSubband() % 16 == 0);
-            ASSERT(ps.nrCoherentStokes() == 1 || ps.nrCoherentStokes() == 4);
-            setArg(0, devStokesData);
-            setArg(1, devComplexVoltages);
-
-            globalWorkSize = cl::NDRange(256, (ps.nrTABs(0) + 15) / 16, (ps.nrChannelsPerSubband() + 15) / 16);
-            localWorkSize  = cl::NDRange(256, 1, 1);
-
-            nrOperations   = (size_t) ps.nrChannelsPerSubband() * ps.nrSamplesPerChannel() * ps.nrTABs(0) * (ps.nrCoherentStokes() == 1 ? 8 : 20 + 2.0 / ps.coherentStokesTimeIntegrationFactor());
-            nrBytesRead    = (size_t) ps.nrChannelsPerSubband() * ps.nrSamplesPerChannel() * ps.nrTABs(0) * NR_POLARIZATIONS * sizeof(std::complex<float>);
-            nrBytesWritten = (size_t) ps.nrTABs(0) * ps.nrCoherentStokes() * ps.nrSamplesPerChannel() / ps.coherentStokesTimeIntegrationFactor() * ps.nrChannelsPerSubband() * sizeof(float);
-        }
-
+  namespace RTCP
+  {
+
+    CoherentStokesKernel::CoherentStokesKernel(const Parset &ps, cl::Program &program, cl::Buffer &devStokesData, cl::Buffer &devComplexVoltages)
+      :
+      Kernel(ps, program, "coherentStokes")
+    {
+      ASSERT(ps.nrChannelsPerSubband() >= 16 && ps.nrChannelsPerSubband() % 16 == 0);
+      ASSERT(ps.nrCoherentStokes() == 1 || ps.nrCoherentStokes() == 4);
+      setArg(0, devStokesData);
+      setArg(1, devComplexVoltages);
+
+      globalWorkSize = cl::NDRange(256, (ps.nrTABs(0) + 15) / 16, (ps.nrChannelsPerSubband() + 15) / 16);
+      localWorkSize = cl::NDRange(256, 1, 1);
+
+      nrOperations = (size_t) ps.nrChannelsPerSubband() * ps.nrSamplesPerChannel() * ps.nrTABs(0) * (ps.nrCoherentStokes() == 1 ? 8 : 20 + 2.0 / ps.coherentStokesTimeIntegrationFactor());
+      nrBytesRead = (size_t) ps.nrChannelsPerSubband() * ps.nrSamplesPerChannel() * ps.nrTABs(0) * NR_POLARIZATIONS * sizeof(std::complex<float>);
+      nrBytesWritten = (size_t) ps.nrTABs(0) * ps.nrCoherentStokes() * ps.nrSamplesPerChannel() / ps.coherentStokesTimeIntegrationFactor() * ps.nrChannelsPerSubband() * sizeof(float);
     }
+
+  }
 }
 
diff --git a/RTCP/Cobalt/GPUProc/src/Kernels/CoherentStokesKernel.h b/RTCP/Cobalt/GPUProc/src/Kernels/CoherentStokesKernel.h
index 36f90d5a1d761370ca5ecc249743ec3d3f6b6396..23fde026a132f77b797e4e918649409e9f8d048e 100644
--- a/RTCP/Cobalt/GPUProc/src/Kernels/CoherentStokesKernel.h
+++ b/RTCP/Cobalt/GPUProc/src/Kernels/CoherentStokesKernel.h
@@ -9,16 +9,16 @@
 #include "Kernel.h"
 namespace LOFAR
 {
-    namespace RTCP 
+  namespace RTCP
+  {
+
+    class CoherentStokesKernel : public Kernel
     {
+    public:
+      CoherentStokesKernel(const Parset &ps, cl::Program &program,
+                           cl::Buffer &devStokesData, cl::Buffer &devComplexVoltages);
 
-        class CoherentStokesKernel : public Kernel
-        {
-        public:
-            CoherentStokesKernel(const Parset &ps, cl::Program &program, 
-                cl::Buffer &devStokesData, cl::Buffer &devComplexVoltages);
-                
-        };
-    }
+    };
+  }
 }
 #endif
diff --git a/RTCP/Cobalt/GPUProc/src/Kernels/CorrelatorKernel.cc b/RTCP/Cobalt/GPUProc/src/Kernels/CorrelatorKernel.cc
index 4d514b95ac8d9ec643ec642dc92097d5aae0b058..ca7f17707040c609d742ce3bfb8280aaa30094fa 100644
--- a/RTCP/Cobalt/GPUProc/src/Kernels/CorrelatorKernel.cc
+++ b/RTCP/Cobalt/GPUProc/src/Kernels/CorrelatorKernel.cc
@@ -1,4 +1,4 @@
-#include "lofar_config.h"    
+#include "lofar_config.h"
 
 #include "Kernel.h"
 #include "CorrelatorKernel.h"
@@ -12,154 +12,154 @@
 
 namespace LOFAR
 {
-    namespace RTCP 
-    {
+  namespace RTCP
+  {
 #if !defined USE_NEW_CORRELATOR
-        CorrelatorKernel::CorrelatorKernel(const Parset &ps, cl::CommandQueue &queue, cl::Program &program, cl::Buffer &devVisibilities, cl::Buffer &devCorrectedData)
-            :
+    CorrelatorKernel::CorrelatorKernel(const Parset &ps, cl::CommandQueue &queue, cl::Program &program, cl::Buffer &devVisibilities, cl::Buffer &devCorrectedData)
+      :
 #if defined USE_4X4
-        Kernel(ps, program, "correlate_4x4")
+      Kernel(ps, program, "correlate_4x4")
 #elif defined USE_3X3
-        Kernel(ps, program, "correlate_3x3")
+      Kernel(ps, program, "correlate_3x3")
 #elif defined USE_2X2
-        Kernel(ps, program, "correlate_2x2")
+      Kernel(ps, program, "correlate_2x2")
 #else
-        Kernel(ps, program, "correlate")
+      Kernel(ps, program, "correlate")
 #endif
-        {
-            setArg(0, devVisibilities);
-            setArg(1, devCorrectedData);
+    {
+      setArg(0, devVisibilities);
+      setArg(1, devCorrectedData);
 
-            size_t maxNrThreads, preferredMultiple;
-            getWorkGroupInfo(queue.getInfo<CL_QUEUE_DEVICE>(), CL_KERNEL_WORK_GROUP_SIZE, &maxNrThreads);
+      size_t maxNrThreads, preferredMultiple;
+      getWorkGroupInfo(queue.getInfo<CL_QUEUE_DEVICE>(), CL_KERNEL_WORK_GROUP_SIZE, &maxNrThreads);
 
-            std::vector<cl_context_properties> properties;
-            queue.getInfo<CL_QUEUE_CONTEXT>().getInfo(CL_CONTEXT_PROPERTIES, &properties);
+      std::vector<cl_context_properties> properties;
+      queue.getInfo<CL_QUEUE_CONTEXT>().getInfo(CL_CONTEXT_PROPERTIES, &properties);
 
-            if (cl::Platform((cl_platform_id) properties[1]).getInfo<CL_PLATFORM_NAME>() == "AMD Accelerated Parallel Processing")
-                preferredMultiple = 256;
-            else
-                getWorkGroupInfo(queue.getInfo<CL_QUEUE_DEVICE>(), CL_KERNEL_PREFERRED_WORK_GROUP_SIZE_MULTIPLE, &preferredMultiple);
+      if (cl::Platform((cl_platform_id) properties[1]).getInfo<CL_PLATFORM_NAME>() == "AMD Accelerated Parallel Processing")
+        preferredMultiple = 256;
+      else
+        getWorkGroupInfo(queue.getInfo<CL_QUEUE_DEVICE>(), CL_KERNEL_PREFERRED_WORK_GROUP_SIZE_MULTIPLE, &preferredMultiple);
 
 #if defined USE_4X4
-            unsigned quartStations = (ps.nrStations() + 2) / 4;
-            unsigned nrBlocks = quartStations * (quartStations + 1) / 2;
+      unsigned quartStations = (ps.nrStations() + 2) / 4;
+      unsigned nrBlocks = quartStations * (quartStations + 1) / 2;
 #elif defined USE_3X3
-            unsigned thirdStations = (ps.nrStations() + 2) / 3;
-            unsigned nrBlocks = thirdStations * (thirdStations + 1) / 2;
+      unsigned thirdStations = (ps.nrStations() + 2) / 3;
+      unsigned nrBlocks = thirdStations * (thirdStations + 1) / 2;
 #elif defined USE_2X2
-            unsigned halfStations = (ps.nrStations() + 1) / 2;
-            unsigned nrBlocks = halfStations * (halfStations + 1) / 2;
+      unsigned halfStations = (ps.nrStations() + 1) / 2;
+      unsigned nrBlocks = halfStations * (halfStations + 1) / 2;
 #else
-            unsigned nrBlocks = ps.nrBaselines();
+      unsigned nrBlocks = ps.nrBaselines();
 #endif
-            unsigned nrPasses = (nrBlocks + maxNrThreads - 1) / maxNrThreads;
-            unsigned nrThreads = (nrBlocks + nrPasses - 1) / nrPasses;
-            nrThreads = (nrThreads + preferredMultiple - 1) / preferredMultiple * preferredMultiple;
-            //std::cout << "nrBlocks = " << nrBlocks << ", nrPasses = " << nrPasses << ", preferredMultiple = " << preferredMultiple << ", nrThreads = " << nrThreads << std::endl;
-
-            unsigned nrUsableChannels = std::max(ps.nrChannelsPerSubband() - 1, 1U);
-            globalWorkSize = cl::NDRange(nrPasses * nrThreads, nrUsableChannels);
-            localWorkSize  = cl::NDRange(nrThreads, 1);
-
-            nrOperations   = (size_t) nrUsableChannels * ps.nrBaselines() * ps.nrSamplesPerChannel() * 32;
-            nrBytesRead    = (size_t) nrPasses * ps.nrStations() * nrUsableChannels * ps.nrSamplesPerChannel() * NR_POLARIZATIONS * sizeof(std::complex<float>);
-            nrBytesWritten = (size_t) ps.nrBaselines() * nrUsableChannels * NR_POLARIZATIONS * NR_POLARIZATIONS * sizeof(std::complex<float>);
-        }
+      unsigned nrPasses = (nrBlocks + maxNrThreads - 1) / maxNrThreads;
+      unsigned nrThreads = (nrBlocks + nrPasses - 1) / nrPasses;
+      nrThreads = (nrThreads + preferredMultiple - 1) / preferredMultiple * preferredMultiple;
+      //std::cout << "nrBlocks = " << nrBlocks << ", nrPasses = " << nrPasses << ", preferredMultiple = " << preferredMultiple << ", nrThreads = " << nrThreads << std::endl;
+
+      unsigned nrUsableChannels = std::max(ps.nrChannelsPerSubband() - 1, 1U);
+      globalWorkSize = cl::NDRange(nrPasses * nrThreads, nrUsableChannels);
+      localWorkSize = cl::NDRange(nrThreads, 1);
+
+      nrOperations = (size_t) nrUsableChannels * ps.nrBaselines() * ps.nrSamplesPerChannel() * 32;
+      nrBytesRead = (size_t) nrPasses * ps.nrStations() * nrUsableChannels * ps.nrSamplesPerChannel() * NR_POLARIZATIONS * sizeof(std::complex<float>);
+      nrBytesWritten = (size_t) ps.nrBaselines() * nrUsableChannels * NR_POLARIZATIONS * NR_POLARIZATIONS * sizeof(std::complex<float>);
+    }
 
 #else
 
 
-        CorrelatorKernel::CorrelatorKernel(const Parset &ps, cl::CommandQueue &queue, cl::Program &program, cl::Buffer &devVisibilities, cl::Buffer &devCorrectedData)
-            :
+    CorrelatorKernel::CorrelatorKernel(const Parset &ps, cl::CommandQueue &queue, cl::Program &program, cl::Buffer &devVisibilities, cl::Buffer &devCorrectedData)
+      :
 #if defined USE_2X2
-        Kernel(ps, program, "correlate")
+      Kernel(ps, program, "correlate")
 #else
 #error not implemented
 #endif
-        {
-            setArg(0, devVisibilities);
-            setArg(1, devCorrectedData);
-
-            unsigned nrRectanglesPerSide = (ps.nrStations() - 1) / (2 * 16);
-            unsigned nrRectangles = nrRectanglesPerSide * (nrRectanglesPerSide + 1) / 2;
-            //#pragma omp critical (cout)
-            //std::cout << "nrRectangles = " << nrRectangles << std::endl;
-
-            unsigned nrBlocksPerSide = (ps.nrStations() + 2 * 16 - 1) / (2 * 16);
-            unsigned nrBlocks	       = nrBlocksPerSide * (nrBlocksPerSide + 1) / 2;
-            //#pragma omp critical (cout)
-            //std::cout << "nrBlocks = " << nrBlocks << std::endl;
-
-            unsigned nrUsableChannels = std::max(ps.nrChannelsPerSubband() - 1, 1U);
-            globalWorkSize = cl::NDRange(16 * 16, nrBlocks, nrUsableChannels);
-            localWorkSize  = cl::NDRange(16 * 16, 1, 1);
-
-            // FIXME
-            //nrOperations   = (size_t) (32 * 32) * nrRectangles * nrUsableChannels * ps.nrSamplesPerChannel() * 32;
-            nrOperations   = (size_t) ps.nrBaselines() * ps.nrSamplesPerSubband() * 32;
-            nrBytesRead    = (size_t) (32 + 32) * nrRectangles * nrUsableChannels * ps.nrSamplesPerChannel() * NR_POLARIZATIONS * sizeof(std::complex<float>);
-            nrBytesWritten = (size_t) (32 * 32) * nrRectangles * nrUsableChannels * NR_POLARIZATIONS * NR_POLARIZATIONS * sizeof(std::complex<float>);
-        }
-
-        CorrelateRectangleKernel::CorrelateRectangleKernel(const Parset &ps, cl::CommandQueue &queue, cl::Program &program, cl::Buffer &devVisibilities, cl::Buffer &devCorrectedData)
-            :
+    {
+      setArg(0, devVisibilities);
+      setArg(1, devCorrectedData);
+
+      unsigned nrRectanglesPerSide = (ps.nrStations() - 1) / (2 * 16);
+      unsigned nrRectangles = nrRectanglesPerSide * (nrRectanglesPerSide + 1) / 2;
+      //#pragma omp critical (cout)
+      //std::cout << "nrRectangles = " << nrRectangles << std::endl;
+
+      unsigned nrBlocksPerSide = (ps.nrStations() + 2 * 16 - 1) / (2 * 16);
+      unsigned nrBlocks = nrBlocksPerSide * (nrBlocksPerSide + 1) / 2;
+      //#pragma omp critical (cout)
+      //std::cout << "nrBlocks = " << nrBlocks << std::endl;
+
+      unsigned nrUsableChannels = std::max(ps.nrChannelsPerSubband() - 1, 1U);
+      globalWorkSize = cl::NDRange(16 * 16, nrBlocks, nrUsableChannels);
+      localWorkSize = cl::NDRange(16 * 16, 1, 1);
+
+      // FIXME
+      //nrOperations   = (size_t) (32 * 32) * nrRectangles * nrUsableChannels * ps.nrSamplesPerChannel() * 32;
+      nrOperations = (size_t) ps.nrBaselines() * ps.nrSamplesPerSubband() * 32;
+      nrBytesRead = (size_t) (32 + 32) * nrRectangles * nrUsableChannels * ps.nrSamplesPerChannel() * NR_POLARIZATIONS * sizeof(std::complex<float>);
+      nrBytesWritten = (size_t) (32 * 32) * nrRectangles * nrUsableChannels * NR_POLARIZATIONS * NR_POLARIZATIONS * sizeof(std::complex<float>);
+    }
+
+    CorrelateRectangleKernel::CorrelateRectangleKernel(const Parset &ps, cl::CommandQueue &queue, cl::Program &program, cl::Buffer &devVisibilities, cl::Buffer &devCorrectedData)
+      :
 #if defined USE_2X2
-        Kernel(ps, program, "correlateRectangleKernel")
+      Kernel(ps, program, "correlateRectangleKernel")
 #else
 #error not implemented
 #endif
-        {
-            setArg(0, devVisibilities);
-            setArg(1, devCorrectedData);
+    {
+      setArg(0, devVisibilities);
+      setArg(1, devCorrectedData);
 
-            unsigned nrRectanglesPerSide = (ps.nrStations() - 1) / (2 * 16);
-            unsigned nrRectangles = nrRectanglesPerSide * (nrRectanglesPerSide + 1) / 2;
+      unsigned nrRectanglesPerSide = (ps.nrStations() - 1) / (2 * 16);
+      unsigned nrRectangles = nrRectanglesPerSide * (nrRectanglesPerSide + 1) / 2;
 #pragma omp critical (cout)
-            std::cout << "nrRectangles = " << nrRectangles << std::endl;
+      std::cout << "nrRectangles = " << nrRectangles << std::endl;
 
-            unsigned nrUsableChannels = std::max(ps.nrChannelsPerSubband() - 1, 1U);
-            globalWorkSize = cl::NDRange(16 * 16, nrRectangles, nrUsableChannels);
-            localWorkSize  = cl::NDRange(16 * 16, 1, 1);
+      unsigned nrUsableChannels = std::max(ps.nrChannelsPerSubband() - 1, 1U);
+      globalWorkSize = cl::NDRange(16 * 16, nrRectangles, nrUsableChannels);
+      localWorkSize = cl::NDRange(16 * 16, 1, 1);
 
-            nrOperations   = (size_t) (32 * 32) * nrRectangles * nrUsableChannels * ps.nrSamplesPerChannel() * 32;
-            nrBytesRead    = (size_t) (32 + 32) * nrRectangles * nrUsableChannels * ps.nrSamplesPerChannel() * NR_POLARIZATIONS * sizeof(std::complex<float>);
-            nrBytesWritten = (size_t) (32 * 32) * nrRectangles * nrUsableChannels * NR_POLARIZATIONS * NR_POLARIZATIONS * sizeof(std::complex<float>);
-        }
+      nrOperations = (size_t) (32 * 32) * nrRectangles * nrUsableChannels * ps.nrSamplesPerChannel() * 32;
+      nrBytesRead = (size_t) (32 + 32) * nrRectangles * nrUsableChannels * ps.nrSamplesPerChannel() * NR_POLARIZATIONS * sizeof(std::complex<float>);
+      nrBytesWritten = (size_t) (32 * 32) * nrRectangles * nrUsableChannels * NR_POLARIZATIONS * NR_POLARIZATIONS * sizeof(std::complex<float>);
+    }
 
 
-        CorrelateTriangleKernel::CorrelateTriangleKernel(const Parset &ps, cl::CommandQueue &queue, cl::Program &program, cl::Buffer &devVisibilities, cl::Buffer &devCorrectedData)
-            :
+    CorrelateTriangleKernel::CorrelateTriangleKernel(const Parset &ps, cl::CommandQueue &queue, cl::Program &program, cl::Buffer &devVisibilities, cl::Buffer &devCorrectedData)
+      :
 #if defined USE_2X2
-        Kernel(ps, program, "correlateTriangleKernel")
+      Kernel(ps, program, "correlateTriangleKernel")
 #else
 #error not implemented
 #endif
-        {
-            setArg(0, devVisibilities);
-            setArg(1, devCorrectedData);
+    {
+      setArg(0, devVisibilities);
+      setArg(1, devCorrectedData);
 
-            unsigned nrTriangles = (ps.nrStations() + 2 * 16 - 1) / (2 * 16);
-            unsigned nrMiniBlocksPerSide = 16;
-            unsigned nrMiniBlocks = nrMiniBlocksPerSide * (nrMiniBlocksPerSide + 1) / 2;
-            size_t   preferredMultiple;
-            getWorkGroupInfo(queue.getInfo<CL_QUEUE_DEVICE>(), CL_KERNEL_PREFERRED_WORK_GROUP_SIZE_MULTIPLE, &preferredMultiple);
-            unsigned nrThreads = align(nrMiniBlocks, preferredMultiple);
+      unsigned nrTriangles = (ps.nrStations() + 2 * 16 - 1) / (2 * 16);
+      unsigned nrMiniBlocksPerSide = 16;
+      unsigned nrMiniBlocks = nrMiniBlocksPerSide * (nrMiniBlocksPerSide + 1) / 2;
+      size_t preferredMultiple;
+      getWorkGroupInfo(queue.getInfo<CL_QUEUE_DEVICE>(), CL_KERNEL_PREFERRED_WORK_GROUP_SIZE_MULTIPLE, &preferredMultiple);
+      unsigned nrThreads = align(nrMiniBlocks, preferredMultiple);
 
 #pragma omp critical (cout)
-            std::cout << "nrTriangles = " << nrTriangles << ", nrMiniBlocks = " << nrMiniBlocks << ", nrThreads = " << nrThreads << std::endl;
+      std::cout << "nrTriangles = " << nrTriangles << ", nrMiniBlocks = " << nrMiniBlocks << ", nrThreads = " << nrThreads << std::endl;
 
-            unsigned nrUsableChannels = std::max(ps.nrChannelsPerSubband() - 1, 1U);
-            globalWorkSize = cl::NDRange(nrThreads, nrTriangles, nrUsableChannels);
-            localWorkSize  = cl::NDRange(nrThreads, 1, 1);
+      unsigned nrUsableChannels = std::max(ps.nrChannelsPerSubband() - 1, 1U);
+      globalWorkSize = cl::NDRange(nrThreads, nrTriangles, nrUsableChannels);
+      localWorkSize = cl::NDRange(nrThreads, 1, 1);
 
-            nrOperations   = (size_t) (32 * 32 / 2) * nrTriangles * nrUsableChannels * ps.nrSamplesPerChannel() * 32;
-            nrBytesRead    = (size_t) 32 * nrTriangles * nrUsableChannels * ps.nrSamplesPerChannel() * NR_POLARIZATIONS * sizeof(std::complex<float>);
-            nrBytesWritten = (size_t) (32 * 32 / 2) * nrTriangles * nrUsableChannels * NR_POLARIZATIONS * NR_POLARIZATIONS * sizeof(std::complex<float>);
-        }
+      nrOperations = (size_t) (32 * 32 / 2) * nrTriangles * nrUsableChannels * ps.nrSamplesPerChannel() * 32;
+      nrBytesRead = (size_t) 32 * nrTriangles * nrUsableChannels * ps.nrSamplesPerChannel() * NR_POLARIZATIONS * sizeof(std::complex<float>);
+      nrBytesWritten = (size_t) (32 * 32 / 2) * nrTriangles * nrUsableChannels * NR_POLARIZATIONS * NR_POLARIZATIONS * sizeof(std::complex<float>);
+    }
 
 #endif
 
-    }
+  }
 }
 
diff --git a/RTCP/Cobalt/GPUProc/src/Kernels/CorrelatorKernel.h b/RTCP/Cobalt/GPUProc/src/Kernels/CorrelatorKernel.h
index 95a9cc007ebbd4589bb8e39c93704d25a0708b77..b471f911c87bba8c3d63563fca95e5f0a23ae362 100644
--- a/RTCP/Cobalt/GPUProc/src/Kernels/CorrelatorKernel.h
+++ b/RTCP/Cobalt/GPUProc/src/Kernels/CorrelatorKernel.h
@@ -10,42 +10,42 @@
 
 namespace LOFAR
 {
-    namespace RTCP 
-    {
+  namespace RTCP
+  {
 #if !defined USE_NEW_CORRELATOR
 
-        class CorrelatorKernel : public Kernel
-        {
-        public:
-            CorrelatorKernel(const Parset &ps, cl::CommandQueue &queue,
-                cl::Program &program, cl::Buffer &devVisibilities, cl::Buffer &devCorrectedData);
-        };
+    class CorrelatorKernel : public Kernel
+    {
+    public:
+      CorrelatorKernel(const Parset &ps, cl::CommandQueue &queue,
+                       cl::Program &program, cl::Buffer &devVisibilities, cl::Buffer &devCorrectedData);
+    };
 
 #else
 
-        class CorrelatorKernel : public Kernel
-        {
-        public:
-            CorrelatorKernel(const Parset &ps, cl::CommandQueue &queue, cl::Program &program,
-                cl::Buffer &devVisibilities, cl::Buffer &devCorrectedData);
-               
-        };
-
-        class CorrelateRectangleKernel : public Kernel
-        {
-        public:
-            CorrelateRectangleKernel(const Parset &ps, cl::CommandQueue &queue, cl::Program &program, 
-                cl::Buffer &devVisibilities, cl::Buffer &devCorrectedData);
-        };
-
-        class CorrelateTriangleKernel : public Kernel
-        {
-        public:
-            CorrelateTriangleKernel(const Parset &ps, cl::CommandQueue &queue, cl::Program &program,
-                cl::Buffer &devVisibilities, cl::Buffer &devCorrectedData);
-        };
+    class CorrelatorKernel : public Kernel
+    {
+    public:
+      CorrelatorKernel(const Parset &ps, cl::CommandQueue &queue, cl::Program &program,
+                       cl::Buffer &devVisibilities, cl::Buffer &devCorrectedData);
+
+    };
+
+    class CorrelateRectangleKernel : public Kernel
+    {
+    public:
+      CorrelateRectangleKernel(const Parset &ps, cl::CommandQueue &queue, cl::Program &program,
+                               cl::Buffer &devVisibilities, cl::Buffer &devCorrectedData);
+    };
+
+    class CorrelateTriangleKernel : public Kernel
+    {
+    public:
+      CorrelateTriangleKernel(const Parset &ps, cl::CommandQueue &queue, cl::Program &program,
+                              cl::Buffer &devVisibilities, cl::Buffer &devCorrectedData);
+    };
 
 #endif
-    }
+  }
 }
 #endif
diff --git a/RTCP/Cobalt/GPUProc/src/Kernels/DedispersionBackwardFFTkernel.cc b/RTCP/Cobalt/GPUProc/src/Kernels/DedispersionBackwardFFTkernel.cc
index 701fcef9d81a20080261accbd4419f8c4f7fd499..94476fb97f9a63500ff64b6406daf9ea765a4290 100644
--- a/RTCP/Cobalt/GPUProc/src/Kernels/DedispersionBackwardFFTkernel.cc
+++ b/RTCP/Cobalt/GPUProc/src/Kernels/DedispersionBackwardFFTkernel.cc
@@ -9,14 +9,14 @@
 
 namespace LOFAR
 {
-    namespace RTCP 
-    {    
-            DedispersionBackwardFFTkernel::DedispersionBackwardFFTkernel(const Parset &ps, cl::Context &context, cl::Buffer &buffer)
-                :
-            FFT_Kernel(context, ps.dedispersionFFTsize(), ps.nrTABs(0) * NR_POLARIZATIONS * ps.nrChannelsPerSubband() * ps.nrSamplesPerChannel() / ps.dedispersionFFTsize(), false, buffer)
-            {
-                ASSERT(ps.nrSamplesPerChannel() % ps.dedispersionFFTsize() == 0);
-            }
+  namespace RTCP
+  {
+    DedispersionBackwardFFTkernel::DedispersionBackwardFFTkernel(const Parset &ps, cl::Context &context, cl::Buffer &buffer)
+      :
+      FFT_Kernel(context, ps.dedispersionFFTsize(), ps.nrTABs(0) * NR_POLARIZATIONS * ps.nrChannelsPerSubband() * ps.nrSamplesPerChannel() / ps.dedispersionFFTsize(), false, buffer)
+    {
+      ASSERT(ps.nrSamplesPerChannel() % ps.dedispersionFFTsize() == 0);
     }
+  }
 
 }
\ No newline at end of file
diff --git a/RTCP/Cobalt/GPUProc/src/Kernels/DedispersionBackwardFFTkernel.h b/RTCP/Cobalt/GPUProc/src/Kernels/DedispersionBackwardFFTkernel.h
index 4ef170a1f438a046a135ea5af3921e2185dd997a..73ffad239de57492cec049f2503f17ee51311e77 100644
--- a/RTCP/Cobalt/GPUProc/src/Kernels/DedispersionBackwardFFTkernel.h
+++ b/RTCP/Cobalt/GPUProc/src/Kernels/DedispersionBackwardFFTkernel.h
@@ -8,15 +8,15 @@
 
 namespace LOFAR
 {
-    namespace RTCP 
+  namespace RTCP
+  {
+    class DedispersionBackwardFFTkernel : public FFT_Kernel
     {
-                class DedispersionBackwardFFTkernel : public FFT_Kernel
-        {
-        public:
-            DedispersionBackwardFFTkernel(const Parset &ps, cl::Context &context, cl::Buffer &buffer);
-                
-        };
-    }
+    public:
+      DedispersionBackwardFFTkernel(const Parset &ps, cl::Context &context, cl::Buffer &buffer);
+
+    };
+  }
 
 }
 #endif
diff --git a/RTCP/Cobalt/GPUProc/src/Kernels/DedispersionChirpKernel.cc b/RTCP/Cobalt/GPUProc/src/Kernels/DedispersionChirpKernel.cc
index faf9ed81057959a4f2bd15d867ba6caa6b30288d..d427b3f22a6fa93183c839effd5f1427b77b18cb 100644
--- a/RTCP/Cobalt/GPUProc/src/Kernels/DedispersionChirpKernel.cc
+++ b/RTCP/Cobalt/GPUProc/src/Kernels/DedispersionChirpKernel.cc
@@ -1,4 +1,4 @@
-#include "lofar_config.h"    
+#include "lofar_config.h"
 
 #include "Kernel.h"
 #include "DedispersionChirpKernel.h"
@@ -11,43 +11,43 @@
 
 namespace LOFAR
 {
-    namespace RTCP 
-    {      
-            DedispersionChirpKernel::DedispersionChirpKernel(const Parset &ps, cl::Program &program, cl::CommandQueue &queue, cl::Buffer &buffer, cl::Buffer &DMs)
-                :
-            Kernel(ps, program, "applyChirp")
-            {
-                setArg(0, buffer);
-                setArg(1, DMs);
-
-                size_t maxNrThreads;
-                getWorkGroupInfo(queue.getInfo<CL_QUEUE_DEVICE>(), CL_KERNEL_WORK_GROUP_SIZE, &maxNrThreads);
-                unsigned fftSize = ps.dedispersionFFTsize();
-
-                globalWorkSize = cl::NDRange(fftSize, ps.nrSamplesPerChannel() / fftSize, ps.nrChannelsPerSubband());
-                //std::cout << "globalWorkSize = NDRange(" << fftSize << ", " << ps.nrSamplesPerChannel() / fftSize << ", " << ps.nrChannelsPerSubband() << ')' << std::endl;
-
-                if (fftSize <= maxNrThreads) {
-                    localWorkSize = cl::NDRange(fftSize, 1, maxNrThreads / fftSize);
-                    //std::cout << "localWorkSize = NDRange(" << fftSize << ", 1, " << maxNrThreads / fftSize << ')' << std::endl;
-                } else {
-                    unsigned divisor;
-
-                    for (divisor = 1; fftSize / divisor > maxNrThreads || fftSize % divisor != 0; divisor ++)
-                        ;
-
-                    localWorkSize = cl::NDRange(fftSize / divisor, 1, 1);
-                    //std::cout << "localWorkSize = NDRange(" << fftSize / divisor << ", 1, 1))" << std::endl;
-                }
-
-                nrOperations = (size_t) NR_POLARIZATIONS * ps.nrChannelsPerSubband() * ps.nrSamplesPerChannel() * (9 * ps.nrTABs(0) + 17),
-                    nrBytesRead  = nrBytesWritten = sizeof(std::complex<float>) * ps.nrTABs(0) * NR_POLARIZATIONS * ps.nrChannelsPerSubband() * ps.nrSamplesPerChannel();
-            }
-
-            void DedispersionChirpKernel::enqueue(cl::CommandQueue &queue, PerformanceCounter &counter, double subbandFrequency)
-            {
-                setArg(2, (float) subbandFrequency);
-                Kernel::enqueue(queue, counter);
-            }
+  namespace RTCP
+  {
+    DedispersionChirpKernel::DedispersionChirpKernel(const Parset &ps, cl::Program &program, cl::CommandQueue &queue, cl::Buffer &buffer, cl::Buffer &DMs)
+      :
+      Kernel(ps, program, "applyChirp")
+    {
+      setArg(0, buffer);
+      setArg(1, DMs);
+
+      size_t maxNrThreads;
+      getWorkGroupInfo(queue.getInfo<CL_QUEUE_DEVICE>(), CL_KERNEL_WORK_GROUP_SIZE, &maxNrThreads);
+      unsigned fftSize = ps.dedispersionFFTsize();
+
+      globalWorkSize = cl::NDRange(fftSize, ps.nrSamplesPerChannel() / fftSize, ps.nrChannelsPerSubband());
+      //std::cout << "globalWorkSize = NDRange(" << fftSize << ", " << ps.nrSamplesPerChannel() / fftSize << ", " << ps.nrChannelsPerSubband() << ')' << std::endl;
+
+      if (fftSize <= maxNrThreads) {
+        localWorkSize = cl::NDRange(fftSize, 1, maxNrThreads / fftSize);
+        //std::cout << "localWorkSize = NDRange(" << fftSize << ", 1, " << maxNrThreads / fftSize << ')' << std::endl;
+      } else {
+        unsigned divisor;
+
+        for (divisor = 1; fftSize / divisor > maxNrThreads || fftSize % divisor != 0; divisor++)
+          ;
+
+        localWorkSize = cl::NDRange(fftSize / divisor, 1, 1);
+        //std::cout << "localWorkSize = NDRange(" << fftSize / divisor << ", 1, 1))" << std::endl;
+      }
+
+      nrOperations = (size_t) NR_POLARIZATIONS * ps.nrChannelsPerSubband() * ps.nrSamplesPerChannel() * (9 * ps.nrTABs(0) + 17),
+      nrBytesRead = nrBytesWritten = sizeof(std::complex<float>) * ps.nrTABs(0) * NR_POLARIZATIONS * ps.nrChannelsPerSubband() * ps.nrSamplesPerChannel();
     }
+
+    void DedispersionChirpKernel::enqueue(cl::CommandQueue &queue, PerformanceCounter &counter, double subbandFrequency)
+    {
+      setArg(2, (float) subbandFrequency);
+      Kernel::enqueue(queue, counter);
+    }
+  }
 }
diff --git a/RTCP/Cobalt/GPUProc/src/Kernels/DedispersionChirpKernel.h b/RTCP/Cobalt/GPUProc/src/Kernels/DedispersionChirpKernel.h
index 27d81a46bebf491c390af495ea659634e22f4a3c..8e0f0248171b65242a7f993f77a1667a3f53ab72 100644
--- a/RTCP/Cobalt/GPUProc/src/Kernels/DedispersionChirpKernel.h
+++ b/RTCP/Cobalt/GPUProc/src/Kernels/DedispersionChirpKernel.h
@@ -10,19 +10,19 @@
 
 namespace LOFAR
 {
-    namespace RTCP 
-    {
+  namespace RTCP
+  {
 
-        class DedispersionChirpKernel : public Kernel
-        {
-        public:
-            DedispersionChirpKernel(const Parset &ps, cl::Program &program,
-                cl::CommandQueue &queue, cl::Buffer &buffer, cl::Buffer &DMs);
+    class DedispersionChirpKernel : public Kernel
+    {
+    public:
+      DedispersionChirpKernel(const Parset &ps, cl::Program &program,
+                              cl::CommandQueue &queue, cl::Buffer &buffer, cl::Buffer &DMs);
 
-            void enqueue(cl::CommandQueue &queue, PerformanceCounter &counter, double subbandFrequency);
+      void enqueue(cl::CommandQueue &queue, PerformanceCounter &counter, double subbandFrequency);
 
-        };
+    };
 
-    }
+  }
 }
 #endif
\ No newline at end of file
diff --git a/RTCP/Cobalt/GPUProc/src/Kernels/DedispersionForwardFFTkernel.cc b/RTCP/Cobalt/GPUProc/src/Kernels/DedispersionForwardFFTkernel.cc
index 423efac55713d15c6128a53db75945d036dd9659..e304a6955764b6cb4537d278e5671ce7bfb061ec 100644
--- a/RTCP/Cobalt/GPUProc/src/Kernels/DedispersionForwardFFTkernel.cc
+++ b/RTCP/Cobalt/GPUProc/src/Kernels/DedispersionForwardFFTkernel.cc
@@ -9,13 +9,13 @@
 
 namespace LOFAR
 {
-    namespace RTCP 
-    {        
-            DedispersionForwardFFTkernel::DedispersionForwardFFTkernel(const Parset &ps, cl::Context &context, cl::Buffer &buffer)
-                :
-            FFT_Kernel(context, ps.dedispersionFFTsize(), ps.nrTABs(0) * NR_POLARIZATIONS * ps.nrChannelsPerSubband() * ps.nrSamplesPerChannel() / ps.dedispersionFFTsize(), true, buffer)
-            {
-                ASSERT(ps.nrSamplesPerChannel() % ps.dedispersionFFTsize() == 0);
-            }
+  namespace RTCP
+  {
+    DedispersionForwardFFTkernel::DedispersionForwardFFTkernel(const Parset &ps, cl::Context &context, cl::Buffer &buffer)
+      :
+      FFT_Kernel(context, ps.dedispersionFFTsize(), ps.nrTABs(0) * NR_POLARIZATIONS * ps.nrChannelsPerSubband() * ps.nrSamplesPerChannel() / ps.dedispersionFFTsize(), true, buffer)
+    {
+      ASSERT(ps.nrSamplesPerChannel() % ps.dedispersionFFTsize() == 0);
     }
+  }
 }
diff --git a/RTCP/Cobalt/GPUProc/src/Kernels/DedispersionForwardFFTkernel.h b/RTCP/Cobalt/GPUProc/src/Kernels/DedispersionForwardFFTkernel.h
index de8059aaf49f81cd3ca6dfccc90bb43b0ee853cf..fad692b307e20a7aab481f001eba1735f6d38b82 100644
--- a/RTCP/Cobalt/GPUProc/src/Kernels/DedispersionForwardFFTkernel.h
+++ b/RTCP/Cobalt/GPUProc/src/Kernels/DedispersionForwardFFTkernel.h
@@ -8,14 +8,14 @@
 
 namespace LOFAR
 {
-    namespace RTCP 
+  namespace RTCP
+  {
+    class DedispersionForwardFFTkernel : public FFT_Kernel
     {
-        class DedispersionForwardFFTkernel : public FFT_Kernel
-        {
-        public:
-            DedispersionForwardFFTkernel(const Parset &ps, cl::Context &context, cl::Buffer &buffer);
+    public:
+      DedispersionForwardFFTkernel(const Parset &ps, cl::Context &context, cl::Buffer &buffer);
 
-        };
-    }
+    };
+  }
 }
 #endif
diff --git a/RTCP/Cobalt/GPUProc/src/Kernels/DelayAndBandPassKernel.cc b/RTCP/Cobalt/GPUProc/src/Kernels/DelayAndBandPassKernel.cc
index d0ab8bc4c238e317860e7c83cb457396e03c99e0..d6911d46177bfd6437aea68c1f8cca8e395e2987 100644
--- a/RTCP/Cobalt/GPUProc/src/Kernels/DelayAndBandPassKernel.cc
+++ b/RTCP/Cobalt/GPUProc/src/Kernels/DelayAndBandPassKernel.cc
@@ -1,4 +1,4 @@
-#include "lofar_config.h"    
+#include "lofar_config.h"
 
 #include "Kernel.h"
 #include "DelayAndBandPassKernel.h"
@@ -12,40 +12,40 @@
 
 namespace LOFAR
 {
-    namespace RTCP 
+  namespace RTCP
+  {
+    DelayAndBandPassKernel::DelayAndBandPassKernel(const Parset &ps, cl::Program &program,
+                                                   cl::Buffer &devCorrectedData, cl::Buffer &devFilteredData,
+                                                   cl::Buffer &devDelaysAtBegin, cl::Buffer &devDelaysAfterEnd,
+                                                   cl::Buffer &devPhaseOffsets, cl::Buffer &devBandPassCorrectionWeights)
+      :
+      Kernel(ps, program, "applyDelaysAndCorrectBandPass")
     {
-        DelayAndBandPassKernel::DelayAndBandPassKernel(const Parset &ps, cl::Program &program, 
-            cl::Buffer &devCorrectedData, cl::Buffer &devFilteredData,
-            cl::Buffer &devDelaysAtBegin, cl::Buffer &devDelaysAfterEnd,
-            cl::Buffer &devPhaseOffsets, cl::Buffer &devBandPassCorrectionWeights)
-            :
-        Kernel(ps, program, "applyDelaysAndCorrectBandPass")
-        {
-            ASSERT(ps.nrChannelsPerSubband() % 16 == 0 || ps.nrChannelsPerSubband() == 1);
-            ASSERT(ps.nrSamplesPerChannel() % 16 == 0);
-
-            setArg(0, devCorrectedData);
-            setArg(1, devFilteredData);
-            setArg(4, devDelaysAtBegin);
-            setArg(5, devDelaysAfterEnd);
-            setArg(6, devPhaseOffsets);
-            setArg(7, devBandPassCorrectionWeights);
-
-            globalWorkSize = cl::NDRange(256, ps.nrChannelsPerSubband() == 1 ? 1 : ps.nrChannelsPerSubband() / 16, ps.nrStations());
-            localWorkSize  = cl::NDRange(256, 1, 1);
-
-            size_t nrSamples = ps.nrStations() * ps.nrChannelsPerSubband() * ps.nrSamplesPerChannel() * NR_POLARIZATIONS;
-            nrOperations = nrSamples * 12;
-            nrBytesRead = nrBytesWritten = nrSamples * sizeof(std::complex<float>);
-        }
-
-        void DelayAndBandPassKernel::enqueue(cl::CommandQueue &queue, PerformanceCounter &counter, unsigned subband)
-        {
-            setArg(2, (float) ps.subbandToFrequencyMapping()[subband]);
-            setArg(3, 0); // beam
-            Kernel::enqueue(queue, counter);
-        }
-
+      ASSERT(ps.nrChannelsPerSubband() % 16 == 0 || ps.nrChannelsPerSubband() == 1);
+      ASSERT(ps.nrSamplesPerChannel() % 16 == 0);
+
+      setArg(0, devCorrectedData);
+      setArg(1, devFilteredData);
+      setArg(4, devDelaysAtBegin);
+      setArg(5, devDelaysAfterEnd);
+      setArg(6, devPhaseOffsets);
+      setArg(7, devBandPassCorrectionWeights);
+
+      globalWorkSize = cl::NDRange(256, ps.nrChannelsPerSubband() == 1 ? 1 : ps.nrChannelsPerSubband() / 16, ps.nrStations());
+      localWorkSize = cl::NDRange(256, 1, 1);
+
+      size_t nrSamples = ps.nrStations() * ps.nrChannelsPerSubband() * ps.nrSamplesPerChannel() * NR_POLARIZATIONS;
+      nrOperations = nrSamples * 12;
+      nrBytesRead = nrBytesWritten = nrSamples * sizeof(std::complex<float>);
+    }
 
+    void DelayAndBandPassKernel::enqueue(cl::CommandQueue &queue, PerformanceCounter &counter, unsigned subband)
+    {
+      setArg(2, (float) ps.subbandToFrequencyMapping()[subband]);
+      setArg(3, 0);       // beam
+      Kernel::enqueue(queue, counter);
     }
+
+
+  }
 }
diff --git a/RTCP/Cobalt/GPUProc/src/Kernels/DelayAndBandPassKernel.h b/RTCP/Cobalt/GPUProc/src/Kernels/DelayAndBandPassKernel.h
index 2ef514b99b4b3d614b16fe56d6df9685275558f9..5ebd384272d5c63c6b1758f0e055549de5400e96 100644
--- a/RTCP/Cobalt/GPUProc/src/Kernels/DelayAndBandPassKernel.h
+++ b/RTCP/Cobalt/GPUProc/src/Kernels/DelayAndBandPassKernel.h
@@ -8,16 +8,16 @@
 
 namespace LOFAR
 {
-    namespace RTCP 
-    {
+  namespace RTCP
+  {
 
-        class DelayAndBandPassKernel : public Kernel
-        {
-        public:
-            DelayAndBandPassKernel(const Parset &ps, cl::Program &program, cl::Buffer &devCorrectedData, cl::Buffer &devFilteredData, cl::Buffer &devDelaysAtBegin, cl::Buffer &devDelaysAfterEnd, cl::Buffer &devPhaseOffsets, cl::Buffer &devBandPassCorrectionWeights);
+    class DelayAndBandPassKernel : public Kernel
+    {
+    public:
+      DelayAndBandPassKernel(const Parset &ps, cl::Program &program, cl::Buffer &devCorrectedData, cl::Buffer &devFilteredData, cl::Buffer &devDelaysAtBegin, cl::Buffer &devDelaysAfterEnd, cl::Buffer &devPhaseOffsets, cl::Buffer &devBandPassCorrectionWeights);
 
-            void enqueue(cl::CommandQueue &queue, PerformanceCounter &counter, unsigned subband);
-        };
-    }
+      void enqueue(cl::CommandQueue &queue, PerformanceCounter &counter, unsigned subband);
+    };
+  }
 }
 #endif
diff --git a/RTCP/Cobalt/GPUProc/src/Kernels/FFT_Kernel.cc b/RTCP/Cobalt/GPUProc/src/Kernels/FFT_Kernel.cc
index 20fdb25535459272d83ea7806c3167cc7132c70e..7997494b3bc4441982fbb5d9286268a5a6981b89 100644
--- a/RTCP/Cobalt/GPUProc/src/Kernels/FFT_Kernel.cc
+++ b/RTCP/Cobalt/GPUProc/src/Kernels/FFT_Kernel.cc
@@ -10,46 +10,46 @@
 
 namespace LOFAR
 {
-    namespace RTCP 
-    {        
+  namespace RTCP
+  {
 
-        FFT_Kernel::FFT_Kernel(cl::Context &context, unsigned fftSize, unsigned nrFFTs, bool forward, cl::Buffer &buffer)
-            :
-        nrFFTs(nrFFTs),
-            fftSize(fftSize)
+    FFT_Kernel::FFT_Kernel(cl::Context &context, unsigned fftSize, unsigned nrFFTs, bool forward, cl::Buffer &buffer)
+      :
+      nrFFTs(nrFFTs),
+      fftSize(fftSize)
 #if defined USE_CUSTOM_FFT
-        {
-            ASSERT(fftSize == 256);
-            ASSERT(forward);
-            std::vector<cl::Device> devices = context.getInfo<CL_CONTEXT_DEVICES>();
-            cl::Program program = createProgram(context, devices, "FFT.cl", "");
-            kernel = cl::Kernel(program, "fft0");
-            kernel.setArg(0, buffer);
-        }
+    {
+      ASSERT(fftSize == 256);
+      ASSERT(forward);
+      std::vector<cl::Device> devices = context.getInfo<CL_CONTEXT_DEVICES>();
+      cl::Program program = createProgram(context, devices, "FFT.cl", "");
+      kernel = cl::Kernel(program, "fft0");
+      kernel.setArg(0, buffer);
+    }
 #else
-            , direction(forward ? clFFT_Forward : clFFT_Inverse),
-            plan(context, fftSize),
-            buffer(buffer)
-        {
-        }
+      , direction(forward ? clFFT_Forward : clFFT_Inverse),
+      plan(context, fftSize),
+      buffer(buffer)
+    {
+    }
 #endif
 
-        void FFT_Kernel::enqueue(cl::CommandQueue &queue, PerformanceCounter &counter)
-        {
+    void FFT_Kernel::enqueue(cl::CommandQueue &queue, PerformanceCounter &counter)
+    {
 #if defined USE_CUSTOM_FFT
-            queue.enqueueNDRangeKernel(kernel, cl::NullRange, cl::NDRange(nrFFTs * 64 / 4, 4), cl::NDRange(64, 4), 0, &event);
+      queue.enqueueNDRangeKernel(kernel, cl::NullRange, cl::NDRange(nrFFTs * 64 / 4, 4), cl::NDRange(64, 4), 0, &event);
 #else
-            cl_int error = clFFT_ExecuteInterleaved(queue(), plan.plan, nrFFTs, direction, buffer(), buffer(), 0, 0, &event());
+      cl_int error = clFFT_ExecuteInterleaved(queue(), plan.plan, nrFFTs, direction, buffer(), buffer(), 0, 0, &event());
 
-            if (error != CL_SUCCESS)
-                throw cl::Error(error, "clFFT_ExecuteInterleaved");
+      if (error != CL_SUCCESS)
+        throw cl::Error(error, "clFFT_ExecuteInterleaved");
 #endif
 
-            counter.doOperation(event,
-                (size_t) nrFFTs * 5 * fftSize * log2(fftSize),
-                (size_t) nrFFTs * fftSize * sizeof(std::complex<float>),
-                (size_t) nrFFTs * fftSize * sizeof(std::complex<float>));
-        }
-
+      counter.doOperation(event,
+                          (size_t) nrFFTs * 5 * fftSize * log2(fftSize),
+                          (size_t) nrFFTs * fftSize * sizeof(std::complex<float>),
+                          (size_t) nrFFTs * fftSize * sizeof(std::complex<float>));
     }
+
+  }
 }
diff --git a/RTCP/Cobalt/GPUProc/src/Kernels/FFT_Kernel.h b/RTCP/Cobalt/GPUProc/src/Kernels/FFT_Kernel.h
index 27bb062908404a704de70b1098212ecadf75f98d..8071534c9b1c7c99295541d85298df8aa7989717 100644
--- a/RTCP/Cobalt/GPUProc/src/Kernels/FFT_Kernel.h
+++ b/RTCP/Cobalt/GPUProc/src/Kernels/FFT_Kernel.h
@@ -9,28 +9,28 @@
 
 namespace LOFAR
 {
-    namespace RTCP 
+  namespace RTCP
+  {
+    class FFT_Kernel
     {
-         class FFT_Kernel
-        {
-        public:
-            FFT_Kernel(cl::Context &context, unsigned fftSize,
-                unsigned nrFFTs, bool forward, cl::Buffer &buffer);
-            void enqueue(cl::CommandQueue &queue, PerformanceCounter &counter);
+    public:
+      FFT_Kernel(cl::Context &context, unsigned fftSize,
+                 unsigned nrFFTs, bool forward, cl::Buffer &buffer);
+      void enqueue(cl::CommandQueue &queue, PerformanceCounter &counter);
 
 
-        private:
-            unsigned	 nrFFTs, fftSize;
+    private:
+      unsigned nrFFTs, fftSize;
 #if defined USE_CUSTOM_FFT
-            cl::Kernel	 kernel;
+      cl::Kernel kernel;
 #else
-            clFFT_Direction direction;
-            FFT_Plan     plan;
-            cl::Buffer	 &buffer;
-#endif 
-            cl::Event	 event;
-        };
-    }
+      clFFT_Direction direction;
+      FFT_Plan plan;
+      cl::Buffer   &buffer;
+#endif
+      cl::Event event;
+    };
+  }
 }
 #endif
 
diff --git a/RTCP/Cobalt/GPUProc/src/Kernels/FFT_Plan.cc b/RTCP/Cobalt/GPUProc/src/Kernels/FFT_Plan.cc
index f9ed9363ccdd50c8266c5f17c439d93a9046c136..0895ede0fdb3e3db379a4c9b1c559300319342ec 100644
--- a/RTCP/Cobalt/GPUProc/src/Kernels/FFT_Plan.cc
+++ b/RTCP/Cobalt/GPUProc/src/Kernels/FFT_Plan.cc
@@ -10,25 +10,25 @@
 
 namespace LOFAR
 {
-    namespace RTCP 
-    {        
-            FFT_Plan::FFT_Plan(cl::Context &context, unsigned fftSize)
-            {
-                clFFT_Dim3 dim = { fftSize, 1, 1 };
-                cl_int error;
-                plan = clFFT_CreatePlan(context(), dim, clFFT_1D, clFFT_InterleavedComplexFormat, &error);
+  namespace RTCP
+  {
+    FFT_Plan::FFT_Plan(cl::Context &context, unsigned fftSize)
+    {
+      clFFT_Dim3 dim = { fftSize, 1, 1 };
+      cl_int error;
+      plan = clFFT_CreatePlan(context(), dim, clFFT_1D, clFFT_InterleavedComplexFormat, &error);
 
-                if (error != CL_SUCCESS)
-                    throw cl::Error(error, "clFFT_CreatePlan");
+      if (error != CL_SUCCESS)
+        throw cl::Error(error, "clFFT_CreatePlan");
 
-                //clFFT_DumpPlan(plan, stdout);
-            }
+      //clFFT_DumpPlan(plan, stdout);
+    }
 
-            FFT_Plan::~FFT_Plan()
-            {
-                clFFT_DestroyPlan(plan);
-            }
+    FFT_Plan::~FFT_Plan()
+    {
+      clFFT_DestroyPlan(plan);
+    }
 
 
-    }
+  }
 }
diff --git a/RTCP/Cobalt/GPUProc/src/Kernels/FFT_Plan.h b/RTCP/Cobalt/GPUProc/src/Kernels/FFT_Plan.h
index 48601668c4e2862ee443db7eead7941341a36dc2..2038d917ed4e346065feafbd2daeaf1b9f793920 100644
--- a/RTCP/Cobalt/GPUProc/src/Kernels/FFT_Plan.h
+++ b/RTCP/Cobalt/GPUProc/src/Kernels/FFT_Plan.h
@@ -9,16 +9,16 @@
 
 namespace LOFAR
 {
-    namespace RTCP 
-    {
-
-        class FFT_Plan
-        {
-        public:
-            FFT_Plan(cl::Context &context, unsigned fftSize);
-            ~FFT_Plan();
-            clFFT_Plan plan;
-        };
-    }
+  namespace RTCP
+  {
+
+    class FFT_Plan
+    {
+    public:
+      FFT_Plan(cl::Context &context, unsigned fftSize);
+      ~FFT_Plan();
+      clFFT_Plan plan;
+    };
+  }
 }
 #endif
diff --git a/RTCP/Cobalt/GPUProc/src/Kernels/FIR_FilterKernel.cc b/RTCP/Cobalt/GPUProc/src/Kernels/FIR_FilterKernel.cc
index dc295a531467d5b24ac8d2bb2d0549bc64fd1acc..3c3848808337a4ae1f35f33a4bb01bd1bfef902d 100644
--- a/RTCP/Cobalt/GPUProc/src/Kernels/FIR_FilterKernel.cc
+++ b/RTCP/Cobalt/GPUProc/src/Kernels/FIR_FilterKernel.cc
@@ -1,4 +1,4 @@
-#include "lofar_config.h"    
+#include "lofar_config.h"
 
 #include "Kernel.h"
 #include "FIR_FilterKernel.h"
@@ -12,29 +12,29 @@
 
 namespace LOFAR
 {
-    namespace RTCP 
+  namespace RTCP
+  {
+    FIR_FilterKernel::FIR_FilterKernel(const Parset &ps, cl::CommandQueue &queue, cl::Program &program, cl::Buffer &devFilteredData, cl::Buffer &devInputSamples, cl::Buffer &devFIRweights)
+      :
+      Kernel(ps, program, "FIR_filter")
     {
-        FIR_FilterKernel::FIR_FilterKernel(const Parset &ps, cl::CommandQueue &queue, cl::Program &program, cl::Buffer &devFilteredData, cl::Buffer &devInputSamples, cl::Buffer &devFIRweights)
-            :
-        Kernel(ps, program, "FIR_filter")
-        {
-            setArg(0, devFilteredData);
-            setArg(1, devInputSamples);
-            setArg(2, devFIRweights);
-
-            size_t maxNrThreads;
-            getWorkGroupInfo(queue.getInfo<CL_QUEUE_DEVICE>(), CL_KERNEL_WORK_GROUP_SIZE, &maxNrThreads);
-            unsigned totalNrThreads = ps.nrChannelsPerSubband() * NR_POLARIZATIONS * 2;
-            unsigned nrPasses = (totalNrThreads + maxNrThreads - 1) / maxNrThreads;
-            globalWorkSize = cl::NDRange(totalNrThreads, ps.nrStations());
-            localWorkSize  = cl::NDRange(totalNrThreads / nrPasses, 1);
-
-            size_t nrSamples = (size_t) ps.nrStations() * ps.nrChannelsPerSubband() * NR_POLARIZATIONS;
-            nrOperations   = nrSamples * ps.nrSamplesPerChannel() * NR_TAPS * 2 * 2;
-            nrBytesRead    = nrSamples * (NR_TAPS - 1 + ps.nrSamplesPerChannel()) * ps.nrBytesPerComplexSample();
-            nrBytesWritten = nrSamples * ps.nrSamplesPerChannel() * sizeof(std::complex<float>);
-        }
-
+      setArg(0, devFilteredData);
+      setArg(1, devInputSamples);
+      setArg(2, devFIRweights);
+
+      size_t maxNrThreads;
+      getWorkGroupInfo(queue.getInfo<CL_QUEUE_DEVICE>(), CL_KERNEL_WORK_GROUP_SIZE, &maxNrThreads);
+      unsigned totalNrThreads = ps.nrChannelsPerSubband() * NR_POLARIZATIONS * 2;
+      unsigned nrPasses = (totalNrThreads + maxNrThreads - 1) / maxNrThreads;
+      globalWorkSize = cl::NDRange(totalNrThreads, ps.nrStations());
+      localWorkSize = cl::NDRange(totalNrThreads / nrPasses, 1);
+
+      size_t nrSamples = (size_t) ps.nrStations() * ps.nrChannelsPerSubband() * NR_POLARIZATIONS;
+      nrOperations = nrSamples * ps.nrSamplesPerChannel() * NR_TAPS * 2 * 2;
+      nrBytesRead = nrSamples * (NR_TAPS - 1 + ps.nrSamplesPerChannel()) * ps.nrBytesPerComplexSample();
+      nrBytesWritten = nrSamples * ps.nrSamplesPerChannel() * sizeof(std::complex<float>);
     }
+
+  }
 }
 
diff --git a/RTCP/Cobalt/GPUProc/src/Kernels/FIR_FilterKernel.h b/RTCP/Cobalt/GPUProc/src/Kernels/FIR_FilterKernel.h
index 1dec5f45138e087b597ee4e190e860af55a8b361..a79de93a58993c72de16e89f2141c9289d7c03ae 100644
--- a/RTCP/Cobalt/GPUProc/src/Kernels/FIR_FilterKernel.h
+++ b/RTCP/Cobalt/GPUProc/src/Kernels/FIR_FilterKernel.h
@@ -8,16 +8,16 @@
 
 namespace LOFAR
 {
-    namespace RTCP 
+  namespace RTCP
+  {
+    class FIR_FilterKernel : public Kernel
     {
-        class FIR_FilterKernel : public Kernel
-        {
-        public:
-            FIR_FilterKernel(const Parset &ps, cl::CommandQueue &queue, cl::Program &program,
-                cl::Buffer &devFilteredData, cl::Buffer &devInputSamples,
-                cl::Buffer &devFIRweights);
-        };
-    }
+    public:
+      FIR_FilterKernel(const Parset &ps, cl::CommandQueue &queue, cl::Program &program,
+                       cl::Buffer &devFilteredData, cl::Buffer &devInputSamples,
+                       cl::Buffer &devFIRweights);
+    };
+  }
 }
 
 #endif
\ No newline at end of file
diff --git a/RTCP/Cobalt/GPUProc/src/Kernels/Filter_FFT_Kernel.cc b/RTCP/Cobalt/GPUProc/src/Kernels/Filter_FFT_Kernel.cc
index 223063c8ab1489fd97edc38e31f2fe3f6a34268b..89c03a53be2f82d1cfd87d9c1e97af0970e63732 100644
--- a/RTCP/Cobalt/GPUProc/src/Kernels/Filter_FFT_Kernel.cc
+++ b/RTCP/Cobalt/GPUProc/src/Kernels/Filter_FFT_Kernel.cc
@@ -9,13 +9,13 @@
 
 namespace LOFAR
 {
-    namespace RTCP 
+  namespace RTCP
+  {
+    Filter_FFT_Kernel::Filter_FFT_Kernel(const Parset &ps, cl::Context &context, cl::Buffer &devFilteredData)
+      :
+      FFT_Kernel(context, ps.nrChannelsPerSubband(), ps.nrStations() * NR_POLARIZATIONS * ps.nrSamplesPerChannel(), true, devFilteredData)
     {
-            Filter_FFT_Kernel::Filter_FFT_Kernel(const Parset &ps, cl::Context &context, cl::Buffer &devFilteredData)
-                :
-            FFT_Kernel(context, ps.nrChannelsPerSubband(), ps.nrStations() * NR_POLARIZATIONS * ps.nrSamplesPerChannel(), true, devFilteredData)
-            {
-            }
-
     }
+
+  }
 }
diff --git a/RTCP/Cobalt/GPUProc/src/Kernels/Filter_FFT_Kernel.h b/RTCP/Cobalt/GPUProc/src/Kernels/Filter_FFT_Kernel.h
index 9cd96985a5eb2db6de7c6508a758974143470898..38bb72f1b9c6c62ffc5477ec0f6ed09fbfb70a44 100644
--- a/RTCP/Cobalt/GPUProc/src/Kernels/Filter_FFT_Kernel.h
+++ b/RTCP/Cobalt/GPUProc/src/Kernels/Filter_FFT_Kernel.h
@@ -8,16 +8,16 @@
 
 namespace LOFAR
 {
-    namespace RTCP 
+  namespace RTCP
+  {
+    class Filter_FFT_Kernel : public FFT_Kernel
     {
-        class Filter_FFT_Kernel : public FFT_Kernel
-        {
-        public:
-            Filter_FFT_Kernel(const Parset &ps, cl::Context &context,
-                cl::Buffer &devFilteredData);
+    public:
+      Filter_FFT_Kernel(const Parset &ps, cl::Context &context,
+                        cl::Buffer &devFilteredData);
 
-        };
+    };
 
-    }
+  }
 }
 #endif
\ No newline at end of file
diff --git a/RTCP/Cobalt/GPUProc/src/Kernels/IncoherentStokesKernel.cc b/RTCP/Cobalt/GPUProc/src/Kernels/IncoherentStokesKernel.cc
index 0aca91810b892a91533e7bf544a2194c4315a4f7..82f26ec0f414996fc70a0bada5731e1cc978d120 100644
--- a/RTCP/Cobalt/GPUProc/src/Kernels/IncoherentStokesKernel.cc
+++ b/RTCP/Cobalt/GPUProc/src/Kernels/IncoherentStokesKernel.cc
@@ -1,4 +1,4 @@
-#include "lofar_config.h"    
+#include "lofar_config.h"
 
 #include "Kernel.h"
 #include "IncoherentStokesKernel.h"
@@ -10,28 +10,28 @@
 
 namespace LOFAR
 {
-    namespace RTCP 
-    {        
-        IncoherentStokesKernel::IncoherentStokesKernel(const Parset &ps, cl::CommandQueue &queue,
-            cl::Program &program, cl::Buffer &devIncoherentStokes, cl::Buffer &devInputSamples)
-            :
-        Kernel(ps, program, "incoherentStokes")
-        {
-            setArg(0, devIncoherentStokes);
-            setArg(1, devInputSamples);
+  namespace RTCP
+  {
+    IncoherentStokesKernel::IncoherentStokesKernel(const Parset &ps, cl::CommandQueue &queue,
+                                                   cl::Program &program, cl::Buffer &devIncoherentStokes, cl::Buffer &devInputSamples)
+      :
+      Kernel(ps, program, "incoherentStokes")
+    {
+      setArg(0, devIncoherentStokes);
+      setArg(1, devInputSamples);
 
-            unsigned nrTimes = ps.nrSamplesPerChannel() / ps.incoherentStokesTimeIntegrationFactor();
-            size_t maxNrThreads;
-            getWorkGroupInfo(queue.getInfo<CL_QUEUE_DEVICE>(), CL_KERNEL_WORK_GROUP_SIZE, &maxNrThreads);
-            unsigned nrPasses = (nrTimes + maxNrThreads - 1) / maxNrThreads;
-            unsigned nrTimesPerPass = (nrTimes + nrPasses - 1) / nrPasses;
-            globalWorkSize = cl::NDRange(nrTimesPerPass * nrPasses, ps.nrChannelsPerSubband());
-            localWorkSize  = cl::NDRange(nrTimesPerPass, 1);
-
-            nrOperations   = ps.nrChannelsPerSubband() * ps.nrSamplesPerChannel() * ps.nrStations() * (ps.nrIncoherentStokes() == 1 ? 8 : 20 + 2.0 / ps.incoherentStokesTimeIntegrationFactor());
-            nrBytesRead    = (size_t) ps.nrStations() * ps.nrChannelsPerSubband() * ps.nrSamplesPerChannel() * NR_POLARIZATIONS * sizeof(std::complex<float>);
-            nrBytesWritten = (size_t) ps.nrIncoherentStokes() * nrTimes * ps.nrChannelsPerSubband() * sizeof(float);
-        }
+      unsigned nrTimes = ps.nrSamplesPerChannel() / ps.incoherentStokesTimeIntegrationFactor();
+      size_t maxNrThreads;
+      getWorkGroupInfo(queue.getInfo<CL_QUEUE_DEVICE>(), CL_KERNEL_WORK_GROUP_SIZE, &maxNrThreads);
+      unsigned nrPasses = (nrTimes + maxNrThreads - 1) / maxNrThreads;
+      unsigned nrTimesPerPass = (nrTimes + nrPasses - 1) / nrPasses;
+      globalWorkSize = cl::NDRange(nrTimesPerPass * nrPasses, ps.nrChannelsPerSubband());
+      localWorkSize = cl::NDRange(nrTimesPerPass, 1);
 
+      nrOperations = ps.nrChannelsPerSubband() * ps.nrSamplesPerChannel() * ps.nrStations() * (ps.nrIncoherentStokes() == 1 ? 8 : 20 + 2.0 / ps.incoherentStokesTimeIntegrationFactor());
+      nrBytesRead = (size_t) ps.nrStations() * ps.nrChannelsPerSubband() * ps.nrSamplesPerChannel() * NR_POLARIZATIONS * sizeof(std::complex<float>);
+      nrBytesWritten = (size_t) ps.nrIncoherentStokes() * nrTimes * ps.nrChannelsPerSubband() * sizeof(float);
     }
+
+  }
 }
diff --git a/RTCP/Cobalt/GPUProc/src/Kernels/IncoherentStokesKernel.h b/RTCP/Cobalt/GPUProc/src/Kernels/IncoherentStokesKernel.h
index efe71f012e0593b4b70c2e5b964a732880b1fa06..b5f9b6ea7a954872c83101f61d52bb67390753a8 100644
--- a/RTCP/Cobalt/GPUProc/src/Kernels/IncoherentStokesKernel.h
+++ b/RTCP/Cobalt/GPUProc/src/Kernels/IncoherentStokesKernel.h
@@ -10,16 +10,16 @@
 
 namespace LOFAR
 {
-    namespace RTCP 
-    {
+  namespace RTCP
+  {
 
-        class IncoherentStokesKernel : public Kernel
-        {
-        public:
-            IncoherentStokesKernel(const Parset &ps, cl::CommandQueue &queue, cl::Program &program, 
-                cl::Buffer &devIncoherentStokes, cl::Buffer &devInputSamples);             
-        };
+    class IncoherentStokesKernel : public Kernel
+    {
+    public:
+      IncoherentStokesKernel(const Parset &ps, cl::CommandQueue &queue, cl::Program &program,
+                             cl::Buffer &devIncoherentStokes, cl::Buffer &devInputSamples);
+    };
 
-    }
+  }
 }
 #endif
diff --git a/RTCP/Cobalt/GPUProc/src/Kernels/IntToFloatKernel.cc b/RTCP/Cobalt/GPUProc/src/Kernels/IntToFloatKernel.cc
index ce11da9ca024eeaf81f1282cc9d19edaa6f83d8b..069505a4d0496fd42704bfb23294854e2c8f8bd8 100644
--- a/RTCP/Cobalt/GPUProc/src/Kernels/IntToFloatKernel.cc
+++ b/RTCP/Cobalt/GPUProc/src/Kernels/IntToFloatKernel.cc
@@ -1,4 +1,4 @@
-#include "lofar_config.h"    
+#include "lofar_config.h"
 
 #include "Kernel.h"
 #include "IntToFloatKernel.h"
@@ -8,27 +8,27 @@
 
 namespace LOFAR
 {
-    namespace RTCP 
+  namespace RTCP
+  {
+    IntToFloatKernel::IntToFloatKernel(const Parset &ps, cl::CommandQueue &queue, cl::Program &program, cl::Buffer &devFilteredData, cl::Buffer &devInputSamples)
+      :
+      Kernel(ps, program, "intToFloat")
     {
-        IntToFloatKernel::IntToFloatKernel(const Parset &ps, cl::CommandQueue &queue, cl::Program &program, cl::Buffer &devFilteredData, cl::Buffer &devInputSamples)
-            :
-        Kernel(ps, program, "intToFloat")
-        {
-            setArg(0, devFilteredData);
-            setArg(1, devInputSamples);
-
-            size_t maxNrThreads;
-            getWorkGroupInfo(queue.getInfo<CL_QUEUE_DEVICE>(), CL_KERNEL_WORK_GROUP_SIZE, &maxNrThreads);
-            globalWorkSize = cl::NDRange(maxNrThreads, ps.nrStations());
-            localWorkSize  = cl::NDRange(maxNrThreads, 1);
-
-            size_t nrSamples = ps.nrStations() * ps.nrSamplesPerChannel() * ps.nrChannelsPerSubband() * NR_POLARIZATIONS;
-            nrOperations   = nrSamples * 2;
-            nrBytesRead    = nrSamples * 2 * ps.nrBitsPerSample() / 8;
-            nrBytesWritten = nrSamples * sizeof(std::complex<float>);
-        }
+      setArg(0, devFilteredData);
+      setArg(1, devInputSamples);
+
+      size_t maxNrThreads;
+      getWorkGroupInfo(queue.getInfo<CL_QUEUE_DEVICE>(), CL_KERNEL_WORK_GROUP_SIZE, &maxNrThreads);
+      globalWorkSize = cl::NDRange(maxNrThreads, ps.nrStations());
+      localWorkSize = cl::NDRange(maxNrThreads, 1);
+
+      size_t nrSamples = ps.nrStations() * ps.nrSamplesPerChannel() * ps.nrChannelsPerSubband() * NR_POLARIZATIONS;
+      nrOperations = nrSamples * 2;
+      nrBytesRead = nrSamples * 2 * ps.nrBitsPerSample() / 8;
+      nrBytesWritten = nrSamples * sizeof(std::complex<float>);
+    }
 
 
-    }
+  }
 }
 
diff --git a/RTCP/Cobalt/GPUProc/src/Kernels/IntToFloatKernel.h b/RTCP/Cobalt/GPUProc/src/Kernels/IntToFloatKernel.h
index a0dbb57503295aa04ecfd1dafe457f0c3afb7a3c..b2df422c676b16f927ea2213aa04c5710878fa25 100644
--- a/RTCP/Cobalt/GPUProc/src/Kernels/IntToFloatKernel.h
+++ b/RTCP/Cobalt/GPUProc/src/Kernels/IntToFloatKernel.h
@@ -10,15 +10,15 @@
 
 namespace LOFAR
 {
-    namespace RTCP 
+  namespace RTCP
+  {
+    class IntToFloatKernel : public Kernel
     {
-                class IntToFloatKernel : public Kernel
-        {
-        public:
-            IntToFloatKernel(const Parset &ps, cl::CommandQueue &queue, cl::Program &program,
-                cl::Buffer &devFilteredData, cl::Buffer &devInputSamples);
-        };
-    }
+    public:
+      IntToFloatKernel(const Parset &ps, cl::CommandQueue &queue, cl::Program &program,
+                       cl::Buffer &devFilteredData, cl::Buffer &devInputSamples);
+    };
+  }
 
 }
 #endif
diff --git a/RTCP/Cobalt/GPUProc/src/Kernels/UHEP_BeamFormerKernel.cc b/RTCP/Cobalt/GPUProc/src/Kernels/UHEP_BeamFormerKernel.cc
index 7e0da81820cbb612931c304b3068aa121ace89c0..f813504dac99c5a3b20689daf133bf7a583a893e 100644
--- a/RTCP/Cobalt/GPUProc/src/Kernels/UHEP_BeamFormerKernel.cc
+++ b/RTCP/Cobalt/GPUProc/src/Kernels/UHEP_BeamFormerKernel.cc
@@ -1,4 +1,4 @@
-#include "lofar_config.h"    
+#include "lofar_config.h"
 
 #include "Kernel.h"
 #include "UHEP_BeamFormerKernel.h"
@@ -11,45 +11,45 @@
 
 namespace LOFAR
 {
-    namespace RTCP 
-    {      
-        UHEP_BeamFormerKernel::UHEP_BeamFormerKernel(const Parset &ps, cl::Program &program, cl::Buffer &devComplexVoltages, cl::Buffer &devInputSamples, cl::Buffer &devBeamFormerWeights)
-            :
-        Kernel(ps, program, "complexVoltages")
-        {
-            setArg(0, devComplexVoltages);
-            setArg(1, devInputSamples);
-            setArg(2, devBeamFormerWeights);
+  namespace RTCP
+  {
+    UHEP_BeamFormerKernel::UHEP_BeamFormerKernel(const Parset &ps, cl::Program &program, cl::Buffer &devComplexVoltages, cl::Buffer &devInputSamples, cl::Buffer &devBeamFormerWeights)
+      :
+      Kernel(ps, program, "complexVoltages")
+    {
+      setArg(0, devComplexVoltages);
+      setArg(1, devInputSamples);
+      setArg(2, devBeamFormerWeights);
 
 #if 1
-            globalWorkSize = cl::NDRange(NR_POLARIZATIONS, ps.nrTABs(0), ps.nrSubbands());
-            localWorkSize  = cl::NDRange(NR_POLARIZATIONS, ps.nrTABs(0), 1);
+      globalWorkSize = cl::NDRange(NR_POLARIZATIONS, ps.nrTABs(0), ps.nrSubbands());
+      localWorkSize = cl::NDRange(NR_POLARIZATIONS, ps.nrTABs(0), 1);
 
-            size_t count = ps.nrSubbands() * (ps.nrSamplesPerChannel() + NR_STATION_FILTER_TAPS - 1) * NR_POLARIZATIONS;
-            size_t nrWeightsBytes = ps.nrStations() * ps.nrTABs(0) * ps.nrSubbands() * NR_POLARIZATIONS * sizeof(std::complex<float>);
-            size_t nrSampleBytes = count * ps.nrStations() * ps.nrBytesPerComplexSample();
-            size_t nrComplexVoltagesBytesPerPass = count * ps.nrTABs(0) * sizeof(std::complex<float>);
-            unsigned nrPasses = std::max((ps.nrStations() + 6) / 16, 1U);
-            nrOperations   = count * ps.nrStations() * ps.nrTABs(0) * 8;
-            nrBytesRead    = nrWeightsBytes + nrSampleBytes + (nrPasses - 1) * nrComplexVoltagesBytesPerPass;
-            nrBytesWritten = nrPasses * nrComplexVoltagesBytesPerPass;
+      size_t count = ps.nrSubbands() * (ps.nrSamplesPerChannel() + NR_STATION_FILTER_TAPS - 1) * NR_POLARIZATIONS;
+      size_t nrWeightsBytes = ps.nrStations() * ps.nrTABs(0) * ps.nrSubbands() * NR_POLARIZATIONS * sizeof(std::complex<float>);
+      size_t nrSampleBytes = count * ps.nrStations() * ps.nrBytesPerComplexSample();
+      size_t nrComplexVoltagesBytesPerPass = count * ps.nrTABs(0) * sizeof(std::complex<float>);
+      unsigned nrPasses = std::max((ps.nrStations() + 6) / 16, 1U);
+      nrOperations = count * ps.nrStations() * ps.nrTABs(0) * 8;
+      nrBytesRead = nrWeightsBytes + nrSampleBytes + (nrPasses - 1) * nrComplexVoltagesBytesPerPass;
+      nrBytesWritten = nrPasses * nrComplexVoltagesBytesPerPass;
 #else
-            ASSERT(ps.nrTABs(0) % 3 == 0);
-            ASSERT(ps.nrStations() % 6 == 0);
-            unsigned nrThreads = NR_POLARIZATIONS * (ps.nrTABs(0) / 3) * (ps.nrStations() / 6);
-            globalWorkSize = cl::NDRange(nrThreads, ps.nrSubbands());
-            localWorkSize  = cl::NDRange(nrThreads, 1);
-            //globalWorkSize = cl::NDRange(ps.nrStations() / 6, ps.nrTABs(0) / 3, ps.nrSubbands());
-            //localWorkSize  = cl::NDRange(ps.nrStations() / 6, ps.nrTABs(0) / 3, 1);
+      ASSERT(ps.nrTABs(0) % 3 == 0);
+      ASSERT(ps.nrStations() % 6 == 0);
+      unsigned nrThreads = NR_POLARIZATIONS * (ps.nrTABs(0) / 3) * (ps.nrStations() / 6);
+      globalWorkSize = cl::NDRange(nrThreads, ps.nrSubbands());
+      localWorkSize = cl::NDRange(nrThreads, 1);
+      //globalWorkSize = cl::NDRange(ps.nrStations() / 6, ps.nrTABs(0) / 3, ps.nrSubbands());
+      //localWorkSize  = cl::NDRange(ps.nrStations() / 6, ps.nrTABs(0) / 3, 1);
 
-            size_t count = ps.nrSubbands() * (ps.nrSamplesPerChannel() + NR_STATION_FILTER_TAPS - 1) * NR_POLARIZATIONS;
-            size_t nrWeightsBytes = ps.nrStations() * ps.nrTABs(0) * ps.nrSubbands() * NR_POLARIZATIONS * sizeof(std::complex<float>);
-            size_t nrSampleBytes = count * ps.nrStations() * ps.nrBytesPerComplexSample();
-            size_t nrComplexVoltagesBytes = count * ps.nrTABs(0) * sizeof(std::complex<float>);
-            nrOperations   = count * ps.nrStations() * ps.nrTABs(0) * 8;
-            nrBytesRead    = nrWeightsBytes + nrSampleBytes;
-            nrBytesWritten = nrComplexVoltagesBytes;
+      size_t count = ps.nrSubbands() * (ps.nrSamplesPerChannel() + NR_STATION_FILTER_TAPS - 1) * NR_POLARIZATIONS;
+      size_t nrWeightsBytes = ps.nrStations() * ps.nrTABs(0) * ps.nrSubbands() * NR_POLARIZATIONS * sizeof(std::complex<float>);
+      size_t nrSampleBytes = count * ps.nrStations() * ps.nrBytesPerComplexSample();
+      size_t nrComplexVoltagesBytes = count * ps.nrTABs(0) * sizeof(std::complex<float>);
+      nrOperations = count * ps.nrStations() * ps.nrTABs(0) * 8;
+      nrBytesRead = nrWeightsBytes + nrSampleBytes;
+      nrBytesWritten = nrComplexVoltagesBytes;
 #endif
-        }
     }
+  }
 }
diff --git a/RTCP/Cobalt/GPUProc/src/Kernels/UHEP_BeamFormerKernel.h b/RTCP/Cobalt/GPUProc/src/Kernels/UHEP_BeamFormerKernel.h
index bcb36058393b0f694acba0362d5df4c08698d78b..1eb7825f09c5d91121bb61a310217d99d4e3756e 100644
--- a/RTCP/Cobalt/GPUProc/src/Kernels/UHEP_BeamFormerKernel.h
+++ b/RTCP/Cobalt/GPUProc/src/Kernels/UHEP_BeamFormerKernel.h
@@ -10,14 +10,14 @@
 
 namespace LOFAR
 {
-    namespace RTCP 
+  namespace RTCP
+  {
+    class UHEP_BeamFormerKernel : public Kernel
     {
-        class UHEP_BeamFormerKernel : public Kernel
-        {
-        public:
-            UHEP_BeamFormerKernel(const Parset &ps, cl::Program &program, 
-                cl::Buffer &devComplexVoltages, cl::Buffer &devInputSamples, cl::Buffer &devBeamFormerWeights);
-        };
-    }
+    public:
+      UHEP_BeamFormerKernel(const Parset &ps, cl::Program &program,
+                            cl::Buffer &devComplexVoltages, cl::Buffer &devInputSamples, cl::Buffer &devBeamFormerWeights);
+    };
+  }
 }
 #endif
diff --git a/RTCP/Cobalt/GPUProc/src/Kernels/UHEP_InvFFT_Kernel.cc b/RTCP/Cobalt/GPUProc/src/Kernels/UHEP_InvFFT_Kernel.cc
index fb91965f2cdccb80207c9ad0e0458ebe1b023768..7a8c521782354a70d8fd7bb058aed166c825db92 100644
--- a/RTCP/Cobalt/GPUProc/src/Kernels/UHEP_InvFFT_Kernel.cc
+++ b/RTCP/Cobalt/GPUProc/src/Kernels/UHEP_InvFFT_Kernel.cc
@@ -1,4 +1,4 @@
-#include "lofar_config.h"    
+#include "lofar_config.h"
 
 #include "Kernel.h"
 #include "UHEP_InvFFT_Kernel.h"
@@ -11,23 +11,23 @@
 
 namespace LOFAR
 {
-    namespace RTCP 
-    {  
-            UHEP_InvFFT_Kernel::UHEP_InvFFT_Kernel(const Parset &ps, cl::Program &program, cl::Buffer &devFFTedData)
-                :
-            Kernel(ps, program, "inv_fft")
-            {
-                setArg(0, devFFTedData);
-                setArg(1, devFFTedData);
+  namespace RTCP
+  {
+    UHEP_InvFFT_Kernel::UHEP_InvFFT_Kernel(const Parset &ps, cl::Program &program, cl::Buffer &devFFTedData)
+      :
+      Kernel(ps, program, "inv_fft")
+    {
+      setArg(0, devFFTedData);
+      setArg(1, devFFTedData);
 
-                globalWorkSize = cl::NDRange(128, ps.nrTABs(0) * NR_POLARIZATIONS * ps.nrSamplesPerChannel());
-                localWorkSize  = cl::NDRange(128, 1);
+      globalWorkSize = cl::NDRange(128, ps.nrTABs(0) * NR_POLARIZATIONS * ps.nrSamplesPerChannel());
+      localWorkSize = cl::NDRange(128, 1);
 
-                size_t nrFFTs = (size_t) ps.nrTABs(0) * NR_POLARIZATIONS * (ps.nrSamplesPerChannel() + NR_STATION_FILTER_TAPS - 1);
-                nrOperations   = nrFFTs * 5 * 1024 * 10;
-                nrBytesRead    = nrFFTs * 512 * sizeof(std::complex<float>);
-                nrBytesWritten = nrFFTs * 1024 * sizeof(float);
-            }
-       
+      size_t nrFFTs = (size_t) ps.nrTABs(0) * NR_POLARIZATIONS * (ps.nrSamplesPerChannel() + NR_STATION_FILTER_TAPS - 1);
+      nrOperations = nrFFTs * 5 * 1024 * 10;
+      nrBytesRead = nrFFTs * 512 * sizeof(std::complex<float>);
+      nrBytesWritten = nrFFTs * 1024 * sizeof(float);
     }
+
+  }
 }
\ No newline at end of file
diff --git a/RTCP/Cobalt/GPUProc/src/Kernels/UHEP_InvFFT_Kernel.h b/RTCP/Cobalt/GPUProc/src/Kernels/UHEP_InvFFT_Kernel.h
index 653ffb85e469924f8f1137fb07ddfdb18c439161..b7f927ccbe8f913801eb3b708e8cc109d84306aa 100644
--- a/RTCP/Cobalt/GPUProc/src/Kernels/UHEP_InvFFT_Kernel.h
+++ b/RTCP/Cobalt/GPUProc/src/Kernels/UHEP_InvFFT_Kernel.h
@@ -10,14 +10,14 @@
 
 namespace LOFAR
 {
-    namespace RTCP 
+  namespace RTCP
+  {
+    class UHEP_InvFFT_Kernel : public Kernel
     {
-        class UHEP_InvFFT_Kernel : public Kernel
-        {
-        public:
-            UHEP_InvFFT_Kernel(const Parset &ps, cl::Program &program, cl::Buffer &devFFTedData);
-                
-        };
-    }
+    public:
+      UHEP_InvFFT_Kernel(const Parset &ps, cl::Program &program, cl::Buffer &devFFTedData);
+
+    };
+  }
 }
 #endif
\ No newline at end of file
diff --git a/RTCP/Cobalt/GPUProc/src/Kernels/UHEP_InvFIR_Kernel.cc b/RTCP/Cobalt/GPUProc/src/Kernels/UHEP_InvFIR_Kernel.cc
index 9b5caea48344e35bda0af10c04cec6b887d66b96..c97f7f1b47e779d7f2144d16d8e23745259b87cf 100644
--- a/RTCP/Cobalt/GPUProc/src/Kernels/UHEP_InvFIR_Kernel.cc
+++ b/RTCP/Cobalt/GPUProc/src/Kernels/UHEP_InvFIR_Kernel.cc
@@ -1,4 +1,4 @@
-#include "lofar_config.h"    
+#include "lofar_config.h"
 
 #include "Kernel.h"
 #include "UHEP_InvFIR_Kernel.h"
@@ -11,31 +11,31 @@
 
 namespace LOFAR
 {
-    namespace RTCP 
-    {  
-        UHEP_InvFIR_Kernel::UHEP_InvFIR_Kernel(const Parset &ps, cl::CommandQueue &queue,
-            cl::Program &program, cl::Buffer &devInvFIRfilteredData, cl::Buffer &devFFTedData, 
-            cl::Buffer &devInvFIRfilterWeights)
-            :
-        Kernel(ps, program, "invFIRfilter")
-        {
-            setArg(0, devInvFIRfilteredData);
-            setArg(1, devFFTedData);
-            setArg(2, devInvFIRfilterWeights);
+  namespace RTCP
+  {
+    UHEP_InvFIR_Kernel::UHEP_InvFIR_Kernel(const Parset &ps, cl::CommandQueue &queue,
+                                           cl::Program &program, cl::Buffer &devInvFIRfilteredData, cl::Buffer &devFFTedData,
+                                           cl::Buffer &devInvFIRfilterWeights)
+      :
+      Kernel(ps, program, "invFIRfilter")
+    {
+      setArg(0, devInvFIRfilteredData);
+      setArg(1, devFFTedData);
+      setArg(2, devInvFIRfilterWeights);
 
-            size_t maxNrThreads, nrThreads;
-            getWorkGroupInfo(queue.getInfo<CL_QUEUE_DEVICE>(), CL_KERNEL_WORK_GROUP_SIZE, &maxNrThreads);
-            // round down to nearest power of two
-            for (nrThreads = 1024; nrThreads > maxNrThreads; nrThreads /= 2)
-                ;
+      size_t maxNrThreads, nrThreads;
+      getWorkGroupInfo(queue.getInfo<CL_QUEUE_DEVICE>(), CL_KERNEL_WORK_GROUP_SIZE, &maxNrThreads);
+      // round down to nearest power of two
+      for (nrThreads = 1024; nrThreads > maxNrThreads; nrThreads /= 2)
+        ;
 
-            globalWorkSize = cl::NDRange(1024, NR_POLARIZATIONS, ps.nrTABs(0));
-            localWorkSize  = cl::NDRange(nrThreads, 1, 1);
+      globalWorkSize = cl::NDRange(1024, NR_POLARIZATIONS, ps.nrTABs(0));
+      localWorkSize = cl::NDRange(nrThreads, 1, 1);
 
-            size_t count = ps.nrTABs(0) * NR_POLARIZATIONS * 1024;
-            nrOperations   = count * ps.nrSamplesPerChannel() * NR_STATION_FILTER_TAPS * 2;
-            nrBytesRead    = count * (ps.nrSamplesPerChannel() + NR_STATION_FILTER_TAPS - 1) * sizeof(float);
-            nrBytesWritten = count * ps.nrSamplesPerChannel() * sizeof(float);
-        }
+      size_t count = ps.nrTABs(0) * NR_POLARIZATIONS * 1024;
+      nrOperations = count * ps.nrSamplesPerChannel() * NR_STATION_FILTER_TAPS * 2;
+      nrBytesRead = count * (ps.nrSamplesPerChannel() + NR_STATION_FILTER_TAPS - 1) * sizeof(float);
+      nrBytesWritten = count * ps.nrSamplesPerChannel() * sizeof(float);
     }
+  }
 }
diff --git a/RTCP/Cobalt/GPUProc/src/Kernels/UHEP_InvFIR_Kernel.h b/RTCP/Cobalt/GPUProc/src/Kernels/UHEP_InvFIR_Kernel.h
index 6b4cd4ac8a3e334d571e373afbc06d9f0fc68f38..48d6fd64ffc303c37b75b086702517bca3ef8a1b 100644
--- a/RTCP/Cobalt/GPUProc/src/Kernels/UHEP_InvFIR_Kernel.h
+++ b/RTCP/Cobalt/GPUProc/src/Kernels/UHEP_InvFIR_Kernel.h
@@ -10,16 +10,16 @@
 
 namespace LOFAR
 {
-    namespace RTCP 
+  namespace RTCP
+  {
+    class UHEP_InvFIR_Kernel : public Kernel
     {
-        class UHEP_InvFIR_Kernel : public Kernel
-        {
-        public:
-            UHEP_InvFIR_Kernel(const Parset &ps, cl::CommandQueue &queue, 
-                cl::Program &program, cl::Buffer &devInvFIRfilteredData, 
-                cl::Buffer &devFFTedData, cl::Buffer &devInvFIRfilterWeights);
-        };
+    public:
+      UHEP_InvFIR_Kernel(const Parset &ps, cl::CommandQueue &queue,
+                         cl::Program &program, cl::Buffer &devInvFIRfilteredData,
+                         cl::Buffer &devFFTedData, cl::Buffer &devInvFIRfilterWeights);
+    };
 
-    }
+  }
 }
 #endif
diff --git a/RTCP/Cobalt/GPUProc/src/Kernels/UHEP_TransposeKernel.cc b/RTCP/Cobalt/GPUProc/src/Kernels/UHEP_TransposeKernel.cc
index a36f7d36d4200ad04270d35999a4d03092bd21ff..90369a7f4c60e95c3dd62dccafeccc1540839bfe 100644
--- a/RTCP/Cobalt/GPUProc/src/Kernels/UHEP_TransposeKernel.cc
+++ b/RTCP/Cobalt/GPUProc/src/Kernels/UHEP_TransposeKernel.cc
@@ -1,4 +1,4 @@
-#include "lofar_config.h"    
+#include "lofar_config.h"
 
 #include "Kernel.h"
 #include "UHEP_TransposeKernel.h"
@@ -11,24 +11,24 @@
 
 namespace LOFAR
 {
-    namespace RTCP 
-    {      
-        UHEP_TransposeKernel::UHEP_TransposeKernel(const Parset &ps, cl::Program &program, cl::Buffer &devFFTedData, cl::Buffer &devComplexVoltages, cl::Buffer &devReverseSubbandMapping)
-            :
-        Kernel(ps, program, "UHEP_Transpose")
-        {
-            setArg(0, devFFTedData);
-            setArg(1, devComplexVoltages);
-            setArg(2, devReverseSubbandMapping);
+  namespace RTCP
+  {
+    UHEP_TransposeKernel::UHEP_TransposeKernel(const Parset &ps, cl::Program &program, cl::Buffer &devFFTedData, cl::Buffer &devComplexVoltages, cl::Buffer &devReverseSubbandMapping)
+      :
+      Kernel(ps, program, "UHEP_Transpose")
+    {
+      setArg(0, devFFTedData);
+      setArg(1, devComplexVoltages);
+      setArg(2, devReverseSubbandMapping);
 
-            globalWorkSize = cl::NDRange(256, (ps.nrTABs(0) + 15) / 16, 512 / 16);
-            localWorkSize  = cl::NDRange(256, 1, 1);
+      globalWorkSize = cl::NDRange(256, (ps.nrTABs(0) + 15) / 16, 512 / 16);
+      localWorkSize = cl::NDRange(256, 1, 1);
 
-            nrOperations   = 0;
-            nrBytesRead    = (size_t) ps.nrSubbands() * (ps.nrSamplesPerChannel() + NR_STATION_FILTER_TAPS - 1) * ps.nrTABs(0) * NR_POLARIZATIONS * sizeof(std::complex<float>);
-            nrBytesWritten = (size_t) ps.nrTABs(0) * NR_POLARIZATIONS * (ps.nrSamplesPerChannel() + NR_STATION_FILTER_TAPS - 1) * 512 * sizeof(std::complex<float>);
-        }
+      nrOperations = 0;
+      nrBytesRead = (size_t) ps.nrSubbands() * (ps.nrSamplesPerChannel() + NR_STATION_FILTER_TAPS - 1) * ps.nrTABs(0) * NR_POLARIZATIONS * sizeof(std::complex<float>);
+      nrBytesWritten = (size_t) ps.nrTABs(0) * NR_POLARIZATIONS * (ps.nrSamplesPerChannel() + NR_STATION_FILTER_TAPS - 1) * 512 * sizeof(std::complex<float>);
+    }
 
 
-    }
+  }
 }
diff --git a/RTCP/Cobalt/GPUProc/src/Kernels/UHEP_TransposeKernel.h b/RTCP/Cobalt/GPUProc/src/Kernels/UHEP_TransposeKernel.h
index 134ff908147076c45bc78a3b1e7244b4f7eb89b0..75d7282433373b82bcba12111a716e7121e6ae53 100644
--- a/RTCP/Cobalt/GPUProc/src/Kernels/UHEP_TransposeKernel.h
+++ b/RTCP/Cobalt/GPUProc/src/Kernels/UHEP_TransposeKernel.h
@@ -9,15 +9,15 @@
 #include "Kernel.h"
 namespace LOFAR
 {
-    namespace RTCP 
+  namespace RTCP
+  {
+    class UHEP_TransposeKernel : public Kernel
     {
-        class UHEP_TransposeKernel : public Kernel
-        {
-        public:
-            UHEP_TransposeKernel(const Parset &ps, cl::Program &program,
-                cl::Buffer &devFFTedData, cl::Buffer &devComplexVoltages, cl::Buffer &devReverseSubbandMapping);
-        };
+    public:
+      UHEP_TransposeKernel(const Parset &ps, cl::Program &program,
+                           cl::Buffer &devFFTedData, cl::Buffer &devComplexVoltages, cl::Buffer &devReverseSubbandMapping);
+    };
 
-    }
+  }
 }
 #endif
diff --git a/RTCP/Cobalt/GPUProc/src/Kernels/UHEP_TriggerKernel.cc b/RTCP/Cobalt/GPUProc/src/Kernels/UHEP_TriggerKernel.cc
index 10a5f3e4399cf02b647aa3f5fe4d6e523276ce5f..49710e0f31db5ecd88ef0d60f49bb7c67e29949d 100644
--- a/RTCP/Cobalt/GPUProc/src/Kernels/UHEP_TriggerKernel.cc
+++ b/RTCP/Cobalt/GPUProc/src/Kernels/UHEP_TriggerKernel.cc
@@ -1,4 +1,4 @@
-#include "lofar_config.h"    
+#include "lofar_config.h"
 
 #include "Kernel.h"
 #include "UHEP_TriggerKernel.h"
@@ -10,22 +10,22 @@
 
 namespace LOFAR
 {
-    namespace RTCP 
-    {  
-        UHEP_TriggerKernel::UHEP_TriggerKernel(const Parset &ps, cl::Program &program, cl::Buffer &devTriggerInfo, cl::Buffer &devInvFIRfilteredData)
-            :
-        Kernel(ps, program, "trigger")
-        {
-            setArg(0, devTriggerInfo);
-            setArg(1, devInvFIRfilteredData);
+  namespace RTCP
+  {
+    UHEP_TriggerKernel::UHEP_TriggerKernel(const Parset &ps, cl::Program &program, cl::Buffer &devTriggerInfo, cl::Buffer &devInvFIRfilteredData)
+      :
+      Kernel(ps, program, "trigger")
+    {
+      setArg(0, devTriggerInfo);
+      setArg(1, devInvFIRfilteredData);
 
-            globalWorkSize = cl::NDRange(16, 16, ps.nrTABs(0));
-            localWorkSize  = cl::NDRange(16, 16, 1);
-
-            nrOperations   = (size_t) ps.nrTABs(0) * ps.nrSamplesPerChannel() * 1024 * (3 /* power */ + 2 /* window */ + 1 /* max */ + 7 /* mean/variance */);
-            nrBytesRead    = (size_t) ps.nrTABs(0) * NR_POLARIZATIONS * ps.nrSamplesPerChannel() * 1024 * sizeof(float);
-            nrBytesWritten = (size_t) ps.nrTABs(0) * sizeof(TriggerInfo);
-        }
+      globalWorkSize = cl::NDRange(16, 16, ps.nrTABs(0));
+      localWorkSize = cl::NDRange(16, 16, 1);
 
+      nrOperations = (size_t) ps.nrTABs(0) * ps.nrSamplesPerChannel() * 1024 * (3 /* power */ + 2 /* window */ + 1 /* max */ + 7 /* mean/variance */);
+      nrBytesRead = (size_t) ps.nrTABs(0) * NR_POLARIZATIONS * ps.nrSamplesPerChannel() * 1024 * sizeof(float);
+      nrBytesWritten = (size_t) ps.nrTABs(0) * sizeof(TriggerInfo);
     }
+
+  }
 }
diff --git a/RTCP/Cobalt/GPUProc/src/Kernels/UHEP_TriggerKernel.h b/RTCP/Cobalt/GPUProc/src/Kernels/UHEP_TriggerKernel.h
index 304dac6c923b721172957b1707cfdb31d73caefd..e340ae838b31d00870bdcdc84de787957fe71540 100644
--- a/RTCP/Cobalt/GPUProc/src/Kernels/UHEP_TriggerKernel.h
+++ b/RTCP/Cobalt/GPUProc/src/Kernels/UHEP_TriggerKernel.h
@@ -10,23 +10,23 @@
 
 namespace LOFAR
 {
-    namespace RTCP 
-    {
+  namespace RTCP
+  {
 
 
-        struct TriggerInfo {
-            float	   mean, variance, bestValue;
-            unsigned bestApproxIndex;
-        };
+    struct TriggerInfo {
+      float mean, variance, bestValue;
+      unsigned bestApproxIndex;
+    };
 
-        class UHEP_TriggerKernel : public Kernel
-        {
-        public:
-            UHEP_TriggerKernel(const Parset &ps, cl::Program &program, 
-                cl::Buffer &devTriggerInfo, cl::Buffer &devInvFIRfilteredData);
+    class UHEP_TriggerKernel : public Kernel
+    {
+    public:
+      UHEP_TriggerKernel(const Parset &ps, cl::Program &program,
+                         cl::Buffer &devTriggerInfo, cl::Buffer &devInvFIRfilteredData);
 
-        };
+    };
 
-    }
+  }
 }
 #endif
diff --git a/RTCP/Cobalt/GPUProc/src/NewCorrelator.cl b/RTCP/Cobalt/GPUProc/src/NewCorrelator.cl
index b4b3645ee3a35e830444a930e0ab1fba820e9899..b864e9f686593a25c8e39b4515365768aaac548f 100644
--- a/RTCP/Cobalt/GPUProc/src/NewCorrelator.cl
+++ b/RTCP/Cobalt/GPUProc/src/NewCorrelator.cl
@@ -1,9 +1,9 @@
 #include "math.cl"
 
-#define NR_STATIONS_PER_BLOCK	32
-#define NR_TIMES_PER_BLOCK	8
+#define NR_STATIONS_PER_BLOCK   32
+#define NR_TIMES_PER_BLOCK      8
 
-#define NR_BASELINES		(NR_STATIONS * (NR_STATIONS + 1) / 2)
+#define NR_BASELINES            (NR_STATIONS * (NR_STATIONS + 1) / 2)
 
 
 typedef __global fcomplex2 (*CorrectedDataType)[NR_STATIONS][NR_CHANNELS][NR_SAMPLES_PER_CHANNEL];
@@ -12,7 +12,7 @@ typedef __global fcomplex4 (*VisibilitiesType)[NR_BASELINES][NR_CHANNELS];
 
 __kernel
 void correlateTriangleKernel(__global void *visibilitiesPtr,
-			     __global const void *correctedDataPtr)
+                             __global const void *correctedDataPtr)
 {
   VisibilitiesType visibilities = (VisibilitiesType) visibilitiesPtr;
   CorrectedDataType correctedData = (CorrectedDataType) correctedDataPtr;
@@ -57,7 +57,7 @@ void correlateTriangleKernel(__global void *visibilitiesPtr,
     barrier(CLK_LOCAL_MEM_FENCE);
 
 #pragma unroll 1
-    for (uint time = 0; time < NR_TIMES_PER_BLOCK; time ++) {
+    for (uint time = 0; time < NR_TIMES_PER_BLOCK; time++) {
       fcomplex2 sample_0, sample_1, sample_A, sample_B;
 
       if (doCorrelate) {
@@ -87,49 +87,49 @@ void correlateTriangleKernel(__global void *visibilitiesPtr,
     }
   }
 
-  int  statY = firstStation + statYoffset;
+  int statY = firstStation + statYoffset;
   uint statX = firstStation + statXoffset;
   uint baseline = (statX * (statX + 1) / 2) + statY;
 
   if (statXoffset < nrStationsThisBlock) {
-    (*visibilities)[baseline	        ][channel].even = vis_0A_r;
-    (*visibilities)[baseline	        ][channel].odd  = vis_0A_i;
+    (*visibilities)[baseline            ][channel].even = vis_0A_r;
+    (*visibilities)[baseline            ][channel].odd = vis_0A_i;
   }
 
   if (statXoffset < nrStationsThisBlock && statYoffset + 1 < nrStationsThisBlock) {
-    (*visibilities)[baseline	     + 1][channel].even = vis_1A_r;
-    (*visibilities)[baseline	     + 1][channel].odd  = vis_1A_i;
+    (*visibilities)[baseline + 1][channel].even = vis_1A_r;
+    (*visibilities)[baseline + 1][channel].odd = vis_1A_i;
   }
 
   if (statXoffset + 1 < nrStationsThisBlock) {
     (*visibilities)[baseline + statX + 1][channel].even = vis_0B_r;
-    (*visibilities)[baseline + statX + 1][channel].odd  = vis_0B_i;
+    (*visibilities)[baseline + statX + 1][channel].odd = vis_0B_i;
     (*visibilities)[baseline + statX + 2][channel].even = vis_1B_r;
-    (*visibilities)[baseline + statX + 2][channel].odd  = vis_1B_i;
+    (*visibilities)[baseline + statX + 2][channel].odd = vis_1B_i;
   }
 }
 
 
 __kernel __attribute__((reqd_work_group_size(NR_STATIONS_PER_BLOCK * NR_STATIONS_PER_BLOCK / 4, 1, 1)))
 void correlateRectangleKernel(__global void *visibilitiesPtr,
-	       __global const void *correctedDataPtr)
+                              __global const void *correctedDataPtr)
 {
-  VisibilitiesType  visibilities  = (VisibilitiesType)  visibilitiesPtr;
+  VisibilitiesType visibilities = (VisibilitiesType)  visibilitiesPtr;
   CorrectedDataType correctedData = (CorrectedDataType) correctedDataPtr;
 
   __local fcomplex2 samplesX[2][NR_TIMES_PER_BLOCK][NR_STATIONS_PER_BLOCK / 2 | 1];
   __local fcomplex2 samplesY[2][NR_TIMES_PER_BLOCK][NR_STATIONS_PER_BLOCK / 2 | 1];
 
-  uint block	 = get_global_id(1);
-  uint blockX	 = convert_uint_rtz(sqrt(convert_float(8 * block + 1)) - 0.99999f) / 2;
-  uint blockY	 = block - blockX * (blockX + 1) / 2;
+  uint block = get_global_id(1);
+  uint blockX = convert_uint_rtz(sqrt(convert_float(8 * block + 1)) - 0.99999f) / 2;
+  uint blockY = block - blockX * (blockX + 1) / 2;
 
 #if NR_STATIONS % NR_STATIONS_PER_BLOCK == 0
   uint firstStationX = (blockX + 1) * NR_STATIONS_PER_BLOCK;
   uint firstStationY = blockY * NR_STATIONS_PER_BLOCK;
 #else
   uint firstStationX = blockX * NR_STATIONS_PER_BLOCK + NR_STATIONS % NR_STATIONS_PER_BLOCK;
-  int  firstStationY = (blockY - 1) * NR_STATIONS_PER_BLOCK + NR_STATIONS % NR_STATIONS_PER_BLOCK;
+  int firstStationY = (blockY - 1) * NR_STATIONS_PER_BLOCK + NR_STATIONS % NR_STATIONS_PER_BLOCK;
 #endif
 
   uint statXoffset = get_local_id(0) / (NR_STATIONS_PER_BLOCK / 2);
@@ -145,7 +145,7 @@ void correlateRectangleKernel(__global void *visibilitiesPtr,
 
   bool doCorrelateLower = NR_STATIONS % NR_STATIONS_PER_BLOCK == 0 || (int) (firstStationY + 2 * statYoffset) >= 0;
   bool doCorrelateUpper = NR_STATIONS % NR_STATIONS_PER_BLOCK == 0 || (int) (firstStationY + 2 * statYoffset) >= -1;
-  bool doLoadY     = NR_STATIONS % NR_STATIONS_PER_BLOCK == 0 || (int) (firstStationY + loadStat) >= 0;
+  bool doLoadY = NR_STATIONS % NR_STATIONS_PER_BLOCK == 0 || (int) (firstStationY + loadStat) >= 0;
 
   uint channel = get_global_id(2) + 1;
 
@@ -167,7 +167,7 @@ void correlateRectangleKernel(__global void *visibilitiesPtr,
     barrier(CLK_LOCAL_MEM_FENCE);
 
 #pragma unroll 1
-    for (uint time = 0; time < NR_TIMES_PER_BLOCK; time ++) {
+    for (uint time = 0; time < NR_TIMES_PER_BLOCK; time++) {
       fcomplex2 sample_0, sample_1, sample_A, sample_B;
 
       if (doCorrelateLower) {
@@ -204,31 +204,31 @@ void correlateRectangleKernel(__global void *visibilitiesPtr,
     }
   }
 
-  int  statY = firstStationY + 2 * statYoffset;
+  int statY = firstStationY + 2 * statYoffset;
   uint statX = firstStationX + 2 * statXoffset;
   uint baseline = (statX * (statX + 1) / 2) + statY;
 
   if (doCorrelateLower) {
-    (*visibilities)[baseline	        ][channel].even = vis_0A_r;
-    (*visibilities)[baseline	        ][channel].odd  = vis_0A_i;
+    (*visibilities)[baseline            ][channel].even = vis_0A_r;
+    (*visibilities)[baseline            ][channel].odd = vis_0A_i;
     (*visibilities)[baseline + statX + 1][channel].even = vis_0B_r;
-    (*visibilities)[baseline + statX + 1][channel].odd  = vis_0B_i;
+    (*visibilities)[baseline + statX + 1][channel].odd = vis_0B_i;
   }
 
   if (doCorrelateUpper) {
-    (*visibilities)[baseline	     + 1][channel].even = vis_1A_r;
-    (*visibilities)[baseline	     + 1][channel].odd  = vis_1A_i;
+    (*visibilities)[baseline + 1][channel].even = vis_1A_r;
+    (*visibilities)[baseline + 1][channel].odd = vis_1A_i;
     (*visibilities)[baseline + statX + 2][channel].even = vis_1B_r;
-    (*visibilities)[baseline + statX + 2][channel].odd  = vis_1B_i;
+    (*visibilities)[baseline + statX + 2][channel].odd = vis_1B_i;
   }
 }
 
 ////////////////////////////////////////////////////////////////////////////////
 
 void correlateTriangle(VisibilitiesType visibilities,
-		       CorrectedDataType correctedData,
-		       __local fcomplex2 samples[2][NR_TIMES_PER_BLOCK][NR_STATIONS_PER_BLOCK / 2 | 1],
-		       uint block)
+                       CorrectedDataType correctedData,
+                       __local fcomplex2 samples[2][NR_TIMES_PER_BLOCK][NR_STATIONS_PER_BLOCK / 2 | 1],
+                       uint block)
 {
   uint channel = get_global_id(2) + 1;
 
@@ -266,7 +266,7 @@ void correlateTriangle(VisibilitiesType visibilities,
   uint loadTime = get_local_id(0) % NR_TIMES_PER_BLOCK;
   uint loadStat = get_local_id(0) / NR_TIMES_PER_BLOCK;
 
-  bool doLoad     = NR_STATIONS % NR_STATIONS_PER_BLOCK == 0 || (int) (firstStation + loadStat) >= 0;
+  bool doLoad = NR_STATIONS % NR_STATIONS_PER_BLOCK == 0 || (int) (firstStation + loadStat) >= 0;
 
   for (uint major = 0; major < NR_SAMPLES_PER_CHANNEL; major += NR_TIMES_PER_BLOCK) {
     // load data into local memory
@@ -283,7 +283,7 @@ void correlateTriangle(VisibilitiesType visibilities,
     barrier(CLK_LOCAL_MEM_FENCE);
 
 #pragma unroll 1
-    for (uint time = 0; time < NR_TIMES_PER_BLOCK; time ++) {
+    for (uint time = 0; time < NR_TIMES_PER_BLOCK; time++) {
       if (doCorrelate) {
         fcomplex2 sample_0 = samples[0][time][statYoffset / 2];
         fcomplex2 sample_A = samples[0][time][statXoffset / 2];
@@ -311,10 +311,10 @@ void correlateTriangle(VisibilitiesType visibilities,
 
       if (doAutoCorrelate) {
         fcomplex2 sample_0 = samples[statYoffset % 2][time][statYoffset / 2];
-	vis_0A_r.xyw += sample_0.xxz * sample_0.xzz;
-	vis_0A_i.y   += sample_0.y * sample_0.z;
-	vis_0A_r.xyw += sample_0.yyw * sample_0.yww;
-	vis_0A_i.y   -= sample_0.x * sample_0.w;
+        vis_0A_r.xyw += sample_0.xxz * sample_0.xzz;
+        vis_0A_i.y += sample_0.y * sample_0.z;
+        vis_0A_r.xyw += sample_0.yyw * sample_0.yww;
+        vis_0A_i.y -= sample_0.x * sample_0.w;
       }
 
       if (doNearAutoCorrelate) {
@@ -333,34 +333,34 @@ void correlateTriangle(VisibilitiesType visibilities,
     vis_0A_i.z = -vis_0A_i.y;
   }
 
-  int  statY = firstStation + statYoffset;
+  int statY = firstStation + statYoffset;
   uint statX = firstStation + statXoffset;
   uint baseline = (statX * (statX + 1) / 2) + statY;
 
   if (doCorrelate || doAutoCorrelate) {
-    (*visibilities)[baseline	        ][channel].even = vis_0A_r;
-    (*visibilities)[baseline	        ][channel].odd  = vis_0A_i;
+    (*visibilities)[baseline            ][channel].even = vis_0A_r;
+    (*visibilities)[baseline            ][channel].odd = vis_0A_i;
   }
 
   if (doCorrelate || doNearAutoCorrelate) {
     (*visibilities)[baseline + statX + 1][channel].even = vis_0B_r;
-    (*visibilities)[baseline + statX + 1][channel].odd  = vis_0B_i;
+    (*visibilities)[baseline + statX + 1][channel].odd = vis_0B_i;
   }
 
   if (doCorrelate) {
-    (*visibilities)[baseline	     + 1][channel].even = vis_1A_r;
-    (*visibilities)[baseline	     + 1][channel].odd  = vis_1A_i;
+    (*visibilities)[baseline + 1][channel].even = vis_1A_r;
+    (*visibilities)[baseline + 1][channel].odd = vis_1A_i;
     (*visibilities)[baseline + statX + 2][channel].even = vis_1B_r;
-    (*visibilities)[baseline + statX + 2][channel].odd  = vis_1B_i;
+    (*visibilities)[baseline + statX + 2][channel].odd = vis_1B_i;
   }
 }
 
 
 void correlateTriangle2(VisibilitiesType visibilities,
-			CorrectedDataType correctedData,
-			__local fcomplex2 samples[2][NR_TIMES_PER_BLOCK][NR_STATIONS_PER_BLOCK / 2 | 1],
-			uint block
-)
+                        CorrectedDataType correctedData,
+                        __local fcomplex2 samples[2][NR_TIMES_PER_BLOCK][NR_STATIONS_PER_BLOCK / 2 | 1],
+                        uint block
+                        )
 {
   uint channel = get_global_id(2) + 1;
 
@@ -409,7 +409,7 @@ void correlateTriangle2(VisibilitiesType visibilities,
     barrier(CLK_LOCAL_MEM_FENCE);
 
 #pragma unroll 1
-    for (uint time = 0; time < NR_TIMES_PER_BLOCK; time ++) {
+    for (uint time = 0; time < NR_TIMES_PER_BLOCK; time++) {
       float4 sample_0, sample_1, sample_A, sample_B;
 
       if (doCorrelateLeft) {
@@ -439,36 +439,36 @@ void correlateTriangle2(VisibilitiesType visibilities,
     }
   }
 
-  int  statY = firstStation + statYoffset;
+  int statY = firstStation + statYoffset;
   uint statX = firstStation + statXoffset;
   uint baseline = (statX * (statX + 1) / 2) + statY;
 
   if (statXoffset < nrStationsThisBlock) {
-    (*visibilities)[baseline	        ][channel].even = vis_0A_r;
-    (*visibilities)[baseline	        ][channel].odd  = vis_0A_i;
+    (*visibilities)[baseline            ][channel].even = vis_0A_r;
+    (*visibilities)[baseline            ][channel].odd = vis_0A_i;
   }
 
   if (statXoffset < nrStationsThisBlock && statYoffset + 1 < nrStationsThisBlock) {
-    (*visibilities)[baseline	     + 1][channel].even = vis_1A_r;
-    (*visibilities)[baseline	     + 1][channel].odd  = vis_1A_i;
+    (*visibilities)[baseline + 1][channel].even = vis_1A_r;
+    (*visibilities)[baseline + 1][channel].odd = vis_1A_i;
   }
 
   if (statXoffset + 1 < nrStationsThisBlock) {
     (*visibilities)[baseline + statX + 1][channel].even = vis_0B_r;
-    (*visibilities)[baseline + statX + 1][channel].odd  = vis_0B_i;
+    (*visibilities)[baseline + statX + 1][channel].odd = vis_0B_i;
     (*visibilities)[baseline + statX + 2][channel].even = vis_1B_r;
-    (*visibilities)[baseline + statX + 2][channel].odd  = vis_1B_i;
+    (*visibilities)[baseline + statX + 2][channel].odd = vis_1B_i;
   }
 }
 
 
 void correlateRectangle(VisibilitiesType visibilities,
-			CorrectedDataType correctedData,
-			__local fcomplex2 samplesX[2][NR_TIMES_PER_BLOCK][NR_STATIONS_PER_BLOCK / 2 | 1],
-			__local fcomplex2 samplesY[2][NR_TIMES_PER_BLOCK][NR_STATIONS_PER_BLOCK / 2 | 1],
-			uint blockX,
-			uint blockY
-)
+                        CorrectedDataType correctedData,
+                        __local fcomplex2 samplesX[2][NR_TIMES_PER_BLOCK][NR_STATIONS_PER_BLOCK / 2 | 1],
+                        __local fcomplex2 samplesY[2][NR_TIMES_PER_BLOCK][NR_STATIONS_PER_BLOCK / 2 | 1],
+                        uint blockX,
+                        uint blockY
+                        )
 {
   uint channel = get_global_id(2) + 1;
 
@@ -477,7 +477,7 @@ void correlateRectangle(VisibilitiesType visibilities,
   uint firstStationY = blockY * NR_STATIONS_PER_BLOCK;
 #else
   uint firstStationX = (blockX - 1) * NR_STATIONS_PER_BLOCK + NR_STATIONS % NR_STATIONS_PER_BLOCK;
-  int  firstStationY = (blockY - 1) * NR_STATIONS_PER_BLOCK + NR_STATIONS % NR_STATIONS_PER_BLOCK;
+  int firstStationY = (blockY - 1) * NR_STATIONS_PER_BLOCK + NR_STATIONS % NR_STATIONS_PER_BLOCK;
 #endif
 
   uint statXoffset = get_local_id(0) / (NR_STATIONS_PER_BLOCK / 2);
@@ -493,7 +493,7 @@ void correlateRectangle(VisibilitiesType visibilities,
 
   bool doCorrelateLower = NR_STATIONS % NR_STATIONS_PER_BLOCK == 0 || (int) (firstStationY + 2 * statYoffset) >= 0;
   bool doCorrelateUpper = NR_STATIONS % NR_STATIONS_PER_BLOCK == 0 || (int) (firstStationY + 2 * statYoffset) >= -1;
-  bool doLoadY     = NR_STATIONS % NR_STATIONS_PER_BLOCK == 0 || (int) (firstStationY + loadStat) >= 0;
+  bool doLoadY = NR_STATIONS % NR_STATIONS_PER_BLOCK == 0 || (int) (firstStationY + loadStat) >= 0;
 
   for (uint major = 0; major < NR_SAMPLES_PER_CHANNEL; major += NR_TIMES_PER_BLOCK) {
     // load data into local memory
@@ -513,7 +513,7 @@ void correlateRectangle(VisibilitiesType visibilities,
     barrier(CLK_LOCAL_MEM_FENCE);
 
 #pragma unroll 1
-    for (uint time = 0; time < NR_TIMES_PER_BLOCK; time ++) {
+    for (uint time = 0; time < NR_TIMES_PER_BLOCK; time++) {
       fcomplex2 sample_0, sample_1, sample_A, sample_B;
 
       if (doCorrelateLower) {
@@ -550,36 +550,36 @@ void correlateRectangle(VisibilitiesType visibilities,
     }
   }
 
-  int  statY = firstStationY + 2 * statYoffset;
+  int statY = firstStationY + 2 * statYoffset;
   uint statX = firstStationX + 2 * statXoffset;
   uint baseline = (statX * (statX + 1) / 2) + statY;
 
   if (doCorrelateLower) {
-    (*visibilities)[baseline	        ][channel].even = vis_0A_r;
-    (*visibilities)[baseline	        ][channel].odd  = vis_0A_i;
+    (*visibilities)[baseline            ][channel].even = vis_0A_r;
+    (*visibilities)[baseline            ][channel].odd = vis_0A_i;
     (*visibilities)[baseline + statX + 1][channel].even = vis_0B_r;
-    (*visibilities)[baseline + statX + 1][channel].odd  = vis_0B_i;
+    (*visibilities)[baseline + statX + 1][channel].odd = vis_0B_i;
   }
 
   if (doCorrelateUpper) {
-    (*visibilities)[baseline	     + 1][channel].even = vis_1A_r;
-    (*visibilities)[baseline	     + 1][channel].odd  = vis_1A_i;
+    (*visibilities)[baseline + 1][channel].even = vis_1A_r;
+    (*visibilities)[baseline + 1][channel].odd = vis_1A_i;
     (*visibilities)[baseline + statX + 2][channel].even = vis_1B_r;
-    (*visibilities)[baseline + statX + 2][channel].odd  = vis_1B_i;
+    (*visibilities)[baseline + statX + 2][channel].odd = vis_1B_i;
   }
 }
 
 
 __kernel __attribute__((reqd_work_group_size(NR_STATIONS_PER_BLOCK * NR_STATIONS_PER_BLOCK / 4, 1, 1)))
 void correlate(__global void *visibilitiesPtr,
-	       __global const void *correctedDataPtr)
+               __global const void *correctedDataPtr)
 {
   __local fcomplex2 samplesX[2][NR_TIMES_PER_BLOCK][NR_STATIONS_PER_BLOCK / 2 | 1];
   __local fcomplex2 samplesY[2][NR_TIMES_PER_BLOCK][NR_STATIONS_PER_BLOCK / 2 | 1];
 
-  uint block	 = get_global_id(1);
-  uint blockX	 = convert_uint_rtz(sqrt(convert_float(8 * block + 1)) - 0.99999f) / 2;
-  uint blockY	 = block - blockX * (blockX + 1) / 2;
+  uint block = get_global_id(1);
+  uint blockX = convert_uint_rtz(sqrt(convert_float(8 * block + 1)) - 0.99999f) / 2;
+  uint blockY = block - blockX * (blockX + 1) / 2;
 
   if (blockX == blockY)
     correlateTriangle2((VisibilitiesType) visibilitiesPtr, (CorrectedDataType) correctedDataPtr, samplesX, blockX);
diff --git a/RTCP/Cobalt/GPUProc/src/OpenCL_Support.cc b/RTCP/Cobalt/GPUProc/src/OpenCL_Support.cc
index 150ebbde79ef116d324b03df4ecfbcce3983f503..a45ad752e99a244edbef3168c12bcf87b963be67 100644
--- a/RTCP/Cobalt/GPUProc/src/OpenCL_Support.cc
+++ b/RTCP/Cobalt/GPUProc/src/OpenCL_Support.cc
@@ -12,218 +12,222 @@
 #include <Common/Thread/Mutex.h>
 #include <Common/Exception.h>
 
-namespace LOFAR {
-namespace RTCP {
-
-std::string errorMessage(cl_int error)
-{
-  switch (error) {
-    case CL_SUCCESS:				return "Success!";
-    case CL_DEVICE_NOT_FOUND:			return "Device not found.";
-    case CL_DEVICE_NOT_AVAILABLE:		return "Device not available";
-    case CL_COMPILER_NOT_AVAILABLE:		return "Compiler not available";
-    case CL_MEM_OBJECT_ALLOCATION_FAILURE:	return "Memory object allocation failure";
-    case CL_OUT_OF_RESOURCES:			return "Out of resources";
-    case CL_OUT_OF_HOST_MEMORY:			return "Out of host memory";
-    case CL_PROFILING_INFO_NOT_AVAILABLE:	return "Profiling information not available";
-    case CL_MEM_COPY_OVERLAP:			return "Memory copy overlap";
-    case CL_IMAGE_FORMAT_MISMATCH:		return "Image format mismatch";
-    case CL_IMAGE_FORMAT_NOT_SUPPORTED:		return "Image format not supported";
-    case CL_BUILD_PROGRAM_FAILURE:		return "Program build failure";
-    case CL_MAP_FAILURE:			return "Map failure";
-    case CL_INVALID_VALUE:			return "Invalid value";
-    case CL_INVALID_DEVICE_TYPE:		return "Invalid device type";
-    case CL_INVALID_PLATFORM:			return "Invalid platform";
-    case CL_INVALID_DEVICE:			return "Invalid device";
-    case CL_INVALID_CONTEXT:			return "Invalid context";
-    case CL_INVALID_QUEUE_PROPERTIES:		return "Invalid queue properties";
-    case CL_INVALID_COMMAND_QUEUE:		return "Invalid command queue";
-    case CL_INVALID_HOST_PTR:			return "Invalid host pointer";
-    case CL_INVALID_MEM_OBJECT:			return "Invalid memory object";
-    case CL_INVALID_IMAGE_FORMAT_DESCRIPTOR:	return "Invalid image format descriptor";
-    case CL_INVALID_IMAGE_SIZE:			return "Invalid image size";
-    case CL_INVALID_SAMPLER:			return "Invalid sampler";
-    case CL_INVALID_BINARY:			return "Invalid binary";
-    case CL_INVALID_BUILD_OPTIONS:		return "Invalid build options";
-    case CL_INVALID_PROGRAM:			return "Invalid program";
-    case CL_INVALID_PROGRAM_EXECUTABLE:		return "Invalid program executable";
-    case CL_INVALID_KERNEL_NAME:		return "Invalid kernel name";
-    case CL_INVALID_KERNEL_DEFINITION:		return "Invalid kernel definition";
-    case CL_INVALID_KERNEL:			return "Invalid kernel";
-    case CL_INVALID_ARG_INDEX:			return "Invalid argument index";
-    case CL_INVALID_ARG_VALUE:			return "Invalid argument value";
-    case CL_INVALID_ARG_SIZE:			return "Invalid argument size";
-    case CL_INVALID_KERNEL_ARGS:		return "Invalid kernel arguments";
-    case CL_INVALID_WORK_DIMENSION:		return "Invalid work dimension";
-    case CL_INVALID_WORK_GROUP_SIZE:		return "Invalid work group size";
-    case CL_INVALID_WORK_ITEM_SIZE:		return "Invalid work item size";
-    case CL_INVALID_GLOBAL_OFFSET:		return "Invalid global offset";
-    case CL_INVALID_EVENT_WAIT_LIST:		return "Invalid event wait list";
-    case CL_INVALID_EVENT:			return "Invalid event";
-    case CL_INVALID_OPERATION:			return "Invalid operation";
-    case CL_INVALID_GL_OBJECT:			return "Invalid OpenGL object";
-    case CL_INVALID_BUFFER_SIZE:		return "Invalid buffer size";
-    case CL_INVALID_MIP_LEVEL:			return "Invalid mip-map level";
-    default:					std::stringstream str; str << "Unknown (" << error << ')'; return str.str();
-  }
-}
-
-
-void createContext(cl::Context &context, std::vector<cl::Device> &devices)
+namespace LOFAR
 {
-  const char *platformName = getenv("PLATFORM");
+  namespace RTCP
+  {
+
+    std::string errorMessage(cl_int error)
+    {
+      switch (error) {
+      case CL_SUCCESS:                            return "Success!";
+      case CL_DEVICE_NOT_FOUND:                   return "Device not found.";
+      case CL_DEVICE_NOT_AVAILABLE:               return "Device not available";
+      case CL_COMPILER_NOT_AVAILABLE:             return "Compiler not available";
+      case CL_MEM_OBJECT_ALLOCATION_FAILURE:      return "Memory object allocation failure";
+      case CL_OUT_OF_RESOURCES:                   return "Out of resources";
+      case CL_OUT_OF_HOST_MEMORY:                 return "Out of host memory";
+      case CL_PROFILING_INFO_NOT_AVAILABLE:       return "Profiling information not available";
+      case CL_MEM_COPY_OVERLAP:                   return "Memory copy overlap";
+      case CL_IMAGE_FORMAT_MISMATCH:              return "Image format mismatch";
+      case CL_IMAGE_FORMAT_NOT_SUPPORTED:         return "Image format not supported";
+      case CL_BUILD_PROGRAM_FAILURE:              return "Program build failure";
+      case CL_MAP_FAILURE:                        return "Map failure";
+      case CL_INVALID_VALUE:                      return "Invalid value";
+      case CL_INVALID_DEVICE_TYPE:                return "Invalid device type";
+      case CL_INVALID_PLATFORM:                   return "Invalid platform";
+      case CL_INVALID_DEVICE:                     return "Invalid device";
+      case CL_INVALID_CONTEXT:                    return "Invalid context";
+      case CL_INVALID_QUEUE_PROPERTIES:           return "Invalid queue properties";
+      case CL_INVALID_COMMAND_QUEUE:              return "Invalid command queue";
+      case CL_INVALID_HOST_PTR:                   return "Invalid host pointer";
+      case CL_INVALID_MEM_OBJECT:                 return "Invalid memory object";
+      case CL_INVALID_IMAGE_FORMAT_DESCRIPTOR:    return "Invalid image format descriptor";
+      case CL_INVALID_IMAGE_SIZE:                 return "Invalid image size";
+      case CL_INVALID_SAMPLER:                    return "Invalid sampler";
+      case CL_INVALID_BINARY:                     return "Invalid binary";
+      case CL_INVALID_BUILD_OPTIONS:              return "Invalid build options";
+      case CL_INVALID_PROGRAM:                    return "Invalid program";
+      case CL_INVALID_PROGRAM_EXECUTABLE:         return "Invalid program executable";
+      case CL_INVALID_KERNEL_NAME:                return "Invalid kernel name";
+      case CL_INVALID_KERNEL_DEFINITION:          return "Invalid kernel definition";
+      case CL_INVALID_KERNEL:                     return "Invalid kernel";
+      case CL_INVALID_ARG_INDEX:                  return "Invalid argument index";
+      case CL_INVALID_ARG_VALUE:                  return "Invalid argument value";
+      case CL_INVALID_ARG_SIZE:                   return "Invalid argument size";
+      case CL_INVALID_KERNEL_ARGS:                return "Invalid kernel arguments";
+      case CL_INVALID_WORK_DIMENSION:             return "Invalid work dimension";
+      case CL_INVALID_WORK_GROUP_SIZE:            return "Invalid work group size";
+      case CL_INVALID_WORK_ITEM_SIZE:             return "Invalid work item size";
+      case CL_INVALID_GLOBAL_OFFSET:              return "Invalid global offset";
+      case CL_INVALID_EVENT_WAIT_LIST:            return "Invalid event wait list";
+      case CL_INVALID_EVENT:                      return "Invalid event";
+      case CL_INVALID_OPERATION:                  return "Invalid operation";
+      case CL_INVALID_GL_OBJECT:                  return "Invalid OpenGL object";
+      case CL_INVALID_BUFFER_SIZE:                return "Invalid buffer size";
+      case CL_INVALID_MIP_LEVEL:                  return "Invalid mip-map level";
+      default:                                    std::stringstream str;
+        str << "Unknown (" << error << ')';
+        return str.str();
+      }
+    }
+
+
+    void createContext(cl::Context &context, std::vector<cl::Device> &devices)
+    {
+      const char *platformName = getenv("PLATFORM");
 
 #if defined __linux__
-  if (platformName == 0)
+      if (platformName == 0)
 #endif
-    platformName = "NVIDIA CUDA";
-    //platformName = "AMD Accelerated Parallel Processing";
-
-  cl_device_type type = CL_DEVICE_TYPE_DEFAULT;
-
-  const char *deviceType = getenv("TYPE");
-
-  if (deviceType != 0) {
-    if (strcmp(deviceType, "GPU") == 0)
-      type = CL_DEVICE_TYPE_GPU;
-    else if (strcmp(deviceType, "CPU") == 0)
-      type = CL_DEVICE_TYPE_CPU;
-    else
-      std::cerr << "warning: unrecognized device type" << std::endl;
-  }
-
-  const char *deviceName = getenv("DEVICE");
-
-  std::vector<cl::Platform> platforms;
-  cl::Platform::get(&platforms);
-
-  for (std::vector<cl::Platform>::iterator platform = platforms.begin(); platform != platforms.end(); platform ++) {
-    std::cout << "Platform profile: " << platform->getInfo<CL_PLATFORM_PROFILE>() << std::endl;
-    std::cout << "Platform name: " << platform->getInfo<CL_PLATFORM_NAME>() << std::endl;
-    std::cout << "Platform version: " << platform->getInfo<CL_PLATFORM_VERSION>() << std::endl;
-    std::cout << "Platform extensions: " << platform->getInfo<CL_PLATFORM_EXTENSIONS>() << std::endl;
-  }
-
-  for (std::vector<cl::Platform>::iterator platform = platforms.begin(); platform != platforms.end(); platform ++) {
-    if (platform->getInfo<CL_PLATFORM_NAME>() == platformName) {
-      platform->getDevices(type, &devices);
-
-      if (deviceName != 0)
-	for (std::vector<cl::Device>::iterator device = devices.end(); -- device >= devices.begin();)
-	  if (device->getInfo<CL_DEVICE_NAME>() != deviceName)
-	    devices.erase(device);
-
-      for (std::vector<cl::Device>::iterator device = devices.begin(); device != devices.end(); device ++) {
-	std::cout << "device: " << device->getInfo<CL_DEVICE_NAME>() << std::endl;
-	std::cout << "max mem: " << device->getInfo<CL_DEVICE_MAX_MEM_ALLOC_SIZE>() << std::endl;
+      platformName = "NVIDIA CUDA";
+      //platformName = "AMD Accelerated Parallel Processing";
+
+      cl_device_type type = CL_DEVICE_TYPE_DEFAULT;
+
+      const char *deviceType = getenv("TYPE");
+
+      if (deviceType != 0) {
+        if (strcmp(deviceType, "GPU") == 0)
+          type = CL_DEVICE_TYPE_GPU;
+        else if (strcmp(deviceType, "CPU") == 0)
+          type = CL_DEVICE_TYPE_CPU;
+        else
+          std::cerr << "warning: unrecognized device type" << std::endl;
+      }
+
+      const char *deviceName = getenv("DEVICE");
+
+      std::vector<cl::Platform> platforms;
+      cl::Platform::get(&platforms);
+
+      for (std::vector<cl::Platform>::iterator platform = platforms.begin(); platform != platforms.end(); platform++) {
+        std::cout << "Platform profile: " << platform->getInfo<CL_PLATFORM_PROFILE>() << std::endl;
+        std::cout << "Platform name: " << platform->getInfo<CL_PLATFORM_NAME>() << std::endl;
+        std::cout << "Platform version: " << platform->getInfo<CL_PLATFORM_VERSION>() << std::endl;
+        std::cout << "Platform extensions: " << platform->getInfo<CL_PLATFORM_EXTENSIONS>() << std::endl;
       }
 
-      cl_context_properties cps[3] = { CL_CONTEXT_PLATFORM, (cl_context_properties)(*platform)(), 0 };
-      context = cl::Context(type, cps);
-      return;
+      for (std::vector<cl::Platform>::iterator platform = platforms.begin(); platform != platforms.end(); platform++) {
+        if (platform->getInfo<CL_PLATFORM_NAME>() == platformName) {
+          platform->getDevices(type, &devices);
+
+          if (deviceName != 0)
+            for (std::vector<cl::Device>::iterator device = devices.end(); --device >= devices.begin(); )
+              if (device->getInfo<CL_DEVICE_NAME>() != deviceName)
+                devices.erase(device);
+
+          for (std::vector<cl::Device>::iterator device = devices.begin(); device != devices.end(); device++) {
+            std::cout << "device: " << device->getInfo<CL_DEVICE_NAME>() << std::endl;
+            std::cout << "max mem: " << device->getInfo<CL_DEVICE_MAX_MEM_ALLOC_SIZE>() << std::endl;
+          }
+
+          cl_context_properties cps[3] = { CL_CONTEXT_PLATFORM, (cl_context_properties)(*platform)(), 0 };
+          context = cl::Context(type, cps);
+          return;
+        }
+      }
+
+      std::cerr << "Platform not found" << std::endl;
+      exit(1);
     }
-  }
 
-  std::cerr << "Platform not found" << std::endl;
-  exit(1);
-}
 
+    cl::Program createProgram(cl::Context &context, std::vector<cl::Device> &devices, const char *sources, const char *args)
+    {
+      std::stringstream cmd;
+      cmd << "#include \"" << std::string(sources) << '"' << std::endl;
+      cl::Program program(context, cmd.str());
 
-cl::Program createProgram(cl::Context &context, std::vector<cl::Device> &devices, const char *sources, const char *args)
-{
-  std::stringstream cmd;
-  cmd << "#include \"" << std::string(sources) << '"' << std::endl;
-  cl::Program program(context, cmd.str());
-
-  try {
-    program.build(devices, args);
-    std::string msg;
-    program.getBuildInfo(devices[0], CL_PROGRAM_BUILD_LOG, &msg);
+      try {
+        program.build(devices, args);
+        std::string msg;
+        program.getBuildInfo(devices[0], CL_PROGRAM_BUILD_LOG, &msg);
 #pragma omp critical (cout)
-    std::cout << msg << std::endl;
-  } catch (cl::Error &error) {
-    if (strcmp(error.what(), "clBuildProgram") == 0) {
-      std::string msg;
-      program.getBuildInfo(devices[0], CL_PROGRAM_BUILD_LOG, &msg);
+        std::cout << msg << std::endl;
+      } catch (cl::Error &error) {
+        if (strcmp(error.what(), "clBuildProgram") == 0) {
+          std::string msg;
+          program.getBuildInfo(devices[0], CL_PROGRAM_BUILD_LOG, &msg);
 #pragma omp critical (cerr)
-      std::cerr << msg << std::endl;
-      exit(1);
-    } else {
-      throw;
-    }
-  }
+          std::cerr << msg << std::endl;
+          exit(1);
+        } else {
+          throw;
+        }
+      }
 
 #if 1
-  std::vector<size_t> binarySizes = program.getInfo<CL_PROGRAM_BINARY_SIZES>();
+      std::vector<size_t> binarySizes = program.getInfo<CL_PROGRAM_BINARY_SIZES>();
 #if 0
-  // cl::Program::getInfo<> cl.hpp broken
-  std::vector<char *> binaries    = program.getInfo<CL_PROGRAM_BINARIES>();
+      // cl::Program::getInfo<> cl.hpp broken
+      std::vector<char *> binaries = program.getInfo<CL_PROGRAM_BINARIES>();
 #else
-  std::vector<char *> binaries(binarySizes.size());
+      std::vector<char *> binaries(binarySizes.size());
 
-  for (unsigned b = 0; b < binaries.size(); b ++)
-    binaries[b] = new char[binarySizes[b]];
+      for (unsigned b = 0; b < binaries.size(); b++)
+        binaries[b] = new char[binarySizes[b]];
 
-  cl_int error = clGetProgramInfo(program(), CL_PROGRAM_BINARIES, binaries.size() * sizeof(char *), &binaries[0], 0);
+      cl_int error = clGetProgramInfo(program(), CL_PROGRAM_BINARIES, binaries.size() * sizeof(char *), &binaries[0], 0);
 
-  if (error != CL_SUCCESS)
-    throw cl::Error(error, "clGetProgramInfo"); // FIXME: cleanup binaries[*]
+      if (error != CL_SUCCESS)
+        throw cl::Error(error, "clGetProgramInfo");  // FIXME: cleanup binaries[*]
 #endif
 
-  for (unsigned i = 0; i < 1 /*binaries.size()*/; i ++) {
-    std::stringstream filename;
-    filename << sources << '-' << i << ".ptx";
-    std::ofstream(filename.str().c_str(), std::ofstream::binary).write(binaries[i], binarySizes[i]);
-  }
+      for (unsigned i = 0; i < 1 /*binaries.size()*/; i++) {
+        std::stringstream filename;
+        filename << sources << '-' << i << ".ptx";
+        std::ofstream(filename.str().c_str(), std::ofstream::binary).write(binaries[i], binarySizes[i]);
+      }
 
 #if 1
-  for (unsigned b = 0; b < binaries.size(); b ++)
-    delete [] binaries[b];
+      for (unsigned b = 0; b < binaries.size(); b++)
+        delete [] binaries[b];
 #endif
 #endif
-  
-  return program;
-}
 
+      return program;
+    }
 
-namespace OpenCL_Support 
-{
-  void terminate()
-  {
-    // terminate() may be called recursively, so we need a mutex that can
-    // be locked recursively.
-    static Mutex mutex(Mutex::RECURSIVE);
-
-    // Make sure that one thread has exclusive access.
-    ScopedLock lock(mutex);
- 
-    // We need to safe-guard against recursive calls. E.g., we were called
-    // twice, because a rethrow was attempted without an active exception.
-    static bool terminating = false;
-
-    if (!terminating) {
-      // This is the first time we were called. Make sure there was an active
-      // exception by trying to rethrow it. If that fails, std::terminate()
-      // will be called, again.
-      terminating = true;
-      try {
-        throw;
-      }
-      // Print detailed error information if a cl::Error was thrown.
-      catch (cl::Error& err) {
-        try {
-          std::cerr << "cl::Error: " << err.what() << ": " 
-                    << errorMessage(err.err()) << std::endl;
-        } catch (...) {}
+
+    namespace OpenCL_Support
+    {
+      void terminate()
+      {
+        // terminate() may be called recursively, so we need a mutex that can
+        // be locked recursively.
+        static Mutex mutex(Mutex::RECURSIVE);
+
+        // Make sure that one thread has exclusive access.
+        ScopedLock lock(mutex);
+
+        // We need to safe-guard against recursive calls. E.g., we were called
+        // twice, because a rethrow was attempted without an active exception.
+        static bool terminating = false;
+
+        if (!terminating) {
+          // This is the first time we were called. Make sure there was an active
+          // exception by trying to rethrow it. If that fails, std::terminate()
+          // will be called, again.
+          terminating = true;
+          try {
+            throw;
+          }
+          // Print detailed error information if a cl::Error was thrown.
+          catch (cl::Error& err) {
+            try {
+              std::cerr << "cl::Error: " << err.what() << ": "
+                        << errorMessage(err.err()) << std::endl;
+            } catch (...) {}
+          }
+          // Catch all other exceptions, otherwise std::terminate() will call
+          // abort() immediately.
+          catch (...) {}
+        }
+        // Let the LOFAR Exception::terminate handler take it from here.
+        Exception::terminate();
       }
-      // Catch all other exceptions, otherwise std::terminate() will call
-      // abort() immediately.
-      catch (...) {}
     }
-    // Let the LOFAR Exception::terminate handler take it from here.
-    Exception::terminate();
-  }
-}
 
-} // namespace RTCP
+  } // namespace RTCP
 } // namespace LOFAR
diff --git a/RTCP/Cobalt/GPUProc/src/OpenCL_Support.h b/RTCP/Cobalt/GPUProc/src/OpenCL_Support.h
index ee7d908dec7e608a3ac55f5d52c82024fe5f66a9..d089e18cbe9eeb474b90cf855e455ed1bdc86119 100644
--- a/RTCP/Cobalt/GPUProc/src/OpenCL_Support.h
+++ b/RTCP/Cobalt/GPUProc/src/OpenCL_Support.h
@@ -8,232 +8,247 @@
 #include <vector>
 
 
-namespace LOFAR {
-namespace RTCP {
-
-extern std::string errorMessage(cl_int error);
-extern void createContext(cl::Context &, std::vector<cl::Device> &);
-extern cl::Program createProgram(cl::Context &, std::vector<cl::Device> &, const char *sources, const char *args);
-
-
-template <class T> class HostBufferAllocator
+namespace LOFAR
 {
-  public:
-    // type definitions
-    typedef T		   value_type;
-    typedef T		   *pointer;
-    typedef const T	   *const_pointer;
-    typedef T		   &reference;
-    typedef const T	   &const_reference;
-    typedef std::size_t    size_type;
-    typedef std::ptrdiff_t difference_type;
-
-    // rebind allocator to type U
-    template <class U> struct rebind {
-      typedef HostBufferAllocator<U> other;
+  namespace RTCP
+  {
+
+    extern std::string errorMessage(cl_int error);
+    extern void createContext(cl::Context &, std::vector<cl::Device> &);
+    extern cl::Program createProgram(cl::Context &, std::vector<cl::Device> &, const char *sources, const char *args);
+
+
+    template <class T>
+    class HostBufferAllocator
+    {
+    public:
+      // type definitions
+      typedef T value_type;
+      typedef T              *pointer;
+      typedef const T        *const_pointer;
+      typedef T              &reference;
+      typedef const T        &const_reference;
+      typedef std::size_t size_type;
+      typedef std::ptrdiff_t difference_type;
+
+      // rebind allocator to type U
+      template <class U>
+      struct rebind {
+        typedef HostBufferAllocator<U> other;
+      };
+
+      // return address of values
+      pointer address(reference value) const
+      {
+        return &value;
+      }
+
+      const_pointer address(const_reference value) const
+      {
+        return &value;
+      }
+
+      // constructors and destructor
+      // - nothing to do because the allocator has no state
+      HostBufferAllocator(cl::CommandQueue &queue, cl_mem_flags flags = CL_MEM_READ_WRITE) throw()
+        :
+        queue(queue),
+        flags(flags)
+      {
+      }
+
+      HostBufferAllocator(const HostBufferAllocator &other) throw()
+        :
+        queue(other.queue),
+        flags(other.flags)
+      {
+      }
+
+      template <class U>
+      HostBufferAllocator(const HostBufferAllocator<U> &other) throw()
+        :
+        queue(other.queue),
+        flags(other.flags)
+      {
+      }
+
+      ~HostBufferAllocator() throw()
+      {
+      }
+
+      // return maximum number of elements that can be allocated
+      size_type max_size() const throw()
+      {
+        return queue.getInfo<CL_QUEUE_DEVICE>().getInfo<CL_DEVICE_MAX_MEM_ALLOC_SIZE>() / sizeof(T);
+      }
+
+      // allocate but don't initialize num elements of type T
+      pointer allocate(size_type num, const void * = 0)
+      {
+        buffer = cl::Buffer(queue.getInfo<CL_QUEUE_CONTEXT>(), flags | CL_MEM_ALLOC_HOST_PTR, num * sizeof(T));
+        return static_cast<pointer>(queue.enqueueMapBuffer(buffer, CL_TRUE, flags & CL_MEM_READ_WRITE ? CL_MAP_READ | CL_MAP_WRITE : flags & CL_MEM_READ_ONLY ? CL_MAP_READ : flags & CL_MEM_WRITE_ONLY ? CL_MAP_WRITE : 0, 0, num * sizeof(T)));
+      }
+
+      // deallocate storage p of deleted elements
+      void deallocate(pointer ptr, size_type /*num*/)
+      {
+        queue.enqueueUnmapMemObject(buffer, ptr);
+      }
+
+      // initialize elements of allocated storage p with value value
+      void construct(pointer p, const T& value)
+      {
+        // initialize memory with placement new
+        new ((void *) p)T(value);
+      }
+
+      // destroy elements of initialized storage p
+      void destroy(pointer p)
+      {
+        // destroy objects by calling their destructor
+        p->~T();
+      }
+
+      cl::CommandQueue queue;
+      cl_mem_flags flags;
+      cl::Buffer buffer;
     };
 
-    // return address of values
-    pointer address(reference value) const
-    {
-      return &value;
-    }
-
-    const_pointer address(const_reference value) const
+    //
+    // return that all specializations of this allocator are interchangeable
+    template <class T1, class T2>
+    bool operator == (const HostBufferAllocator<T1> &, const HostBufferAllocator<T2> &) throw()
     {
-      return &value;
+      return true;
     }
 
-    // constructors and destructor
-    // - nothing to do because the allocator has no state
-    HostBufferAllocator(cl::CommandQueue &queue, cl_mem_flags flags = CL_MEM_READ_WRITE) throw()
-    :
-      queue(queue),
-      flags(flags)
-    {
-    }
 
-    HostBufferAllocator(const HostBufferAllocator &other) throw()
-    :
-      queue(other.queue),
-      flags(other.flags)
+    template <class T1, class T2>
+    bool operator != (const HostBufferAllocator<T1> &, const HostBufferAllocator<T2> &) throw()
     {
+      return false;
     }
 
-    template <class U> HostBufferAllocator(const HostBufferAllocator<U> &other) throw()
-    :
-      queue(other.queue),
-      flags(other.flags)
-    {
-    }
-
-    ~HostBufferAllocator() throw()
-    {
-    }
-
-    // return maximum number of elements that can be allocated
-    size_type max_size() const throw()
-    {
-      return queue.getInfo<CL_QUEUE_DEVICE>().getInfo<CL_DEVICE_MAX_MEM_ALLOC_SIZE>() / sizeof(T);
-    }
-
-    // allocate but don't initialize num elements of type T
-    pointer allocate(size_type num, const void * = 0)
-    {
-      buffer = cl::Buffer(queue.getInfo<CL_QUEUE_CONTEXT>(), flags | CL_MEM_ALLOC_HOST_PTR, num * sizeof(T));
-      return static_cast<pointer>(queue.enqueueMapBuffer(buffer, CL_TRUE, flags & CL_MEM_READ_WRITE ? CL_MAP_READ | CL_MAP_WRITE : flags & CL_MEM_READ_ONLY ? CL_MAP_READ : flags & CL_MEM_WRITE_ONLY ? CL_MAP_WRITE : 0, 0, num * sizeof(T)));
-    }
 
-    // deallocate storage p of deleted elements
-    void deallocate(pointer ptr, size_type /*num*/)
+    template <typename T, std::size_t DIM>
+    class MultiArrayHostBuffer : public boost::multi_array<T, DIM, HostBufferAllocator<T> >
     {
-      queue.enqueueUnmapMemObject(buffer, ptr);
-    }
-
-    // initialize elements of allocated storage p with value value
-    void construct(pointer p, const T& value)
-    {
-      // initialize memory with placement new
-      new ((void *) p) T(value);
-    }
-
-    // destroy elements of initialized storage p
-    void destroy(pointer p)
-    {
-      // destroy objects by calling their destructor
-      p->~T();
-    }
-
-    cl::CommandQueue queue;
-    cl_mem_flags     flags;
-    cl::Buffer	     buffer;
-};
-
-//
-// return that all specializations of this allocator are interchangeable
-template <class T1, class T2> bool operator == (const HostBufferAllocator<T1> &, const HostBufferAllocator<T2> &) throw()
-{
-  return true;
-}
-
-
-template <class T1, class T2> bool operator != (const HostBufferAllocator<T1> &, const HostBufferAllocator<T2> &) throw()
-{
-  return false;
-}
-
-
-template <typename T, std::size_t DIM> class MultiArrayHostBuffer : public boost::multi_array<T, DIM, HostBufferAllocator<T> >
-{
-  public:
-    template <typename ExtentList> MultiArrayHostBuffer(const ExtentList &extents, cl::CommandQueue &queue, cl_mem_flags flags)
-    :
-      boost::multi_array<T, DIM, HostBufferAllocator<T> >(extents, boost::c_storage_order(), HostBufferAllocator<T>(queue, flags))
-    {
-    }
+    public:
+      template <typename ExtentList>
+      MultiArrayHostBuffer(const ExtentList &extents, cl::CommandQueue &queue, cl_mem_flags flags)
+        :
+        boost::multi_array<T, DIM, HostBufferAllocator<T> >(extents, boost::c_storage_order(), HostBufferAllocator<T>(queue, flags))
+      {
+      }
 
-    size_t bytesize() const
-    {
-      return this->num_elements() * sizeof(T);
-    }
-};
+      size_t bytesize() const
+      {
+        return this->num_elements() * sizeof(T);
+      }
+    };
 
 
-template <typename T> class VectorHostBuffer : public std::vector<T, HostBufferAllocator<T> >
-{
-  public:
-    VectorHostBuffer(size_t size, cl::CommandQueue &queue, cl_mem_flags flags)
-    :
-      std::vector<T, HostBufferAllocator<T> >(size, T(), HostBufferAllocator<T>(queue, flags))
+    template <typename T>
+    class VectorHostBuffer : public std::vector<T, HostBufferAllocator<T> >
     {
-    }
-};
+    public:
+      VectorHostBuffer(size_t size, cl::CommandQueue &queue, cl_mem_flags flags)
+        :
+        std::vector<T, HostBufferAllocator<T> >(size, T(), HostBufferAllocator<T>(queue, flags))
+      {
+      }
+    };
 
 
 #if 0
-template <typename T, std::size_t DIM> class MultiArraySharedBuffer
-{
-  public:
-    template <typename ExtentList> MultiArraySharedBuffer(const ExtentList &extents, cl::CommandQueue &queue, cl_mem_flags hostBufferFlags, cl_mem_flags deviceBufferFlags)
-    :
-      hostBuffer(extents, queue, hostBufferFlags),
-      deviceBuffer(queue.getInfo<CL_QUEUE_CONTEXT>(), deviceBufferFlags, hostBuffer.num_elements() * sizeof(T)),
-      queue(queue)
-    {
-    }
-
-    void hostToGPU(cl_bool synchronous = CL_FALSE)
-    {
-      queue.enqueueWriteBuffer(deviceBuffer, synchronous, 0, hostBuffer.num_elements() * sizeof(T), hostBuffer.origin(), 0, &event);
-    }
-
-    void GPUtoHost(cl_bool synchronous = CL_FALSE)
-    {
-      queue.enqueueReadBuffer(deviceBuffer, synchronous, 0, hostBuffer.num_elements() * sizeof(T), hostBuffer.origin(), 0, &event);
-    }
-
-    operator cl::Buffer & ()
-    {
-      return deviceBuffer;
-    }
-
-    MultiArrayHostBuffer<T, DIM> hostBuffer;
-    cl::Buffer			 deviceBuffer;
-    cl::CommandQueue		 queue;
-    cl::Event			 event;
-};
+    template <typename T, std::size_t DIM>
+    class MultiArraySharedBuffer
+    {
+    public:
+      template <typename ExtentList>
+      MultiArraySharedBuffer(const ExtentList &extents, cl::CommandQueue &queue, cl_mem_flags hostBufferFlags, cl_mem_flags deviceBufferFlags)
+        :
+        hostBuffer(extents, queue, hostBufferFlags),
+        deviceBuffer(queue.getInfo<CL_QUEUE_CONTEXT>(), deviceBufferFlags, hostBuffer.num_elements() * sizeof(T)),
+        queue(queue)
+      {
+      }
+
+      void hostToGPU(cl_bool synchronous = CL_FALSE)
+      {
+        queue.enqueueWriteBuffer(deviceBuffer, synchronous, 0, hostBuffer.num_elements() * sizeof(T), hostBuffer.origin(), 0, &event);
+      }
+
+      void GPUtoHost(cl_bool synchronous = CL_FALSE)
+      {
+        queue.enqueueReadBuffer(deviceBuffer, synchronous, 0, hostBuffer.num_elements() * sizeof(T), hostBuffer.origin(), 0, &event);
+      }
+
+      operator cl::Buffer & ()
+      {
+        return deviceBuffer;
+      }
+
+      MultiArrayHostBuffer<T, DIM> hostBuffer;
+      cl::Buffer deviceBuffer;
+      cl::CommandQueue queue;
+      cl::Event event;
+    };
 #else
-template <typename T, std::size_t DIM> class MultiArraySharedBuffer : public MultiArrayHostBuffer<T, DIM>
-{
-  public:
-    template <typename ExtentList> MultiArraySharedBuffer(const ExtentList &extents, cl::CommandQueue &queue, cl_mem_flags hostBufferFlags, cl_mem_flags deviceBufferFlags)
-    :
-      MultiArrayHostBuffer<T, DIM>(extents, queue, hostBufferFlags),
-      deviceBuffer(queue.getInfo<CL_QUEUE_CONTEXT>(), deviceBufferFlags, this->bytesize()),
-      queue(queue)
-    {
-    }
-
-    template <typename ExtentList> MultiArraySharedBuffer(const ExtentList &extents, cl::CommandQueue &queue, cl_mem_flags hostBufferFlags, cl::Buffer &devBuffer)
-    :
-      MultiArrayHostBuffer<T, DIM>(extents, queue, hostBufferFlags),
-      deviceBuffer(devBuffer),
-      queue(queue)
-    {
-    }
-
-    void hostToDevice(cl_bool synchronous = CL_FALSE)
-    {
-      queue.enqueueWriteBuffer(deviceBuffer, synchronous, 0, this->bytesize(), this->origin(), 0, &event);
-    }
-
-    void deviceToHost(cl_bool synchronous = CL_FALSE)
-    {
-      queue.enqueueReadBuffer(deviceBuffer, synchronous, 0, this->bytesize(), this->origin(), 0, &event);
-    }
+    template <typename T, std::size_t DIM>
+    class MultiArraySharedBuffer : public MultiArrayHostBuffer<T, DIM>
+    {
+    public:
+      template <typename ExtentList>
+      MultiArraySharedBuffer(const ExtentList &extents, cl::CommandQueue &queue, cl_mem_flags hostBufferFlags, cl_mem_flags deviceBufferFlags)
+        :
+        MultiArrayHostBuffer<T, DIM>(extents, queue, hostBufferFlags),
+        deviceBuffer(queue.getInfo<CL_QUEUE_CONTEXT>(), deviceBufferFlags, this->bytesize()),
+        queue(queue)
+      {
+      }
+
+      template <typename ExtentList>
+      MultiArraySharedBuffer(const ExtentList &extents, cl::CommandQueue &queue, cl_mem_flags hostBufferFlags, cl::Buffer &devBuffer)
+        :
+        MultiArrayHostBuffer<T, DIM>(extents, queue, hostBufferFlags),
+        deviceBuffer(devBuffer),
+        queue(queue)
+      {
+      }
+
+      void hostToDevice(cl_bool synchronous = CL_FALSE)
+      {
+        queue.enqueueWriteBuffer(deviceBuffer, synchronous, 0, this->bytesize(), this->origin(), 0, &event);
+      }
+
+      void deviceToHost(cl_bool synchronous = CL_FALSE)
+      {
+        queue.enqueueReadBuffer(deviceBuffer, synchronous, 0, this->bytesize(), this->origin(), 0, &event);
+      }
+
+      operator cl::Buffer & ()
+      {
+        return deviceBuffer;
+      }
+
+      cl::Buffer deviceBuffer;
+      cl::CommandQueue queue;
+      cl::Event event;
+    };
+#endif
 
-    operator cl::Buffer & ()
+    namespace OpenCL_Support
     {
-      return deviceBuffer;
+      // The sole purpose of this function is to extract detailed error
+      // information if a cl::Error was thrown. Since we want the complete
+      // backtrace, we cannot simply try-catch in main(), because that would
+      // unwind the stack. The only option we have is to use our own terminate
+      // handler.
+      void terminate();
     }
 
-    cl::Buffer			 deviceBuffer;
-    cl::CommandQueue		 queue;
-    cl::Event			 event;
-};
-#endif
-
-namespace OpenCL_Support 
-{
-  // The sole purpose of this function is to extract detailed error
-  // information if a cl::Error was thrown. Since we want the complete
-  // backtrace, we cannot simply try-catch in main(), because that would
-  // unwind the stack. The only option we have is to use our own terminate
-  // handler.
-  void terminate();
-}
-
-} // namespace RTCP
+  } // namespace RTCP
 } // namespace LOFAR
 
 #endif
diff --git a/RTCP/Cobalt/GPUProc/src/OpenMP_Support.h b/RTCP/Cobalt/GPUProc/src/OpenMP_Support.h
index cd02df475e62d38b51f13812e05558ae8c5e0662..26dd00162eb205c5a94eec3acd8700bef98cbdd8 100644
--- a/RTCP/Cobalt/GPUProc/src/OpenMP_Support.h
+++ b/RTCP/Cobalt/GPUProc/src/OpenMP_Support.h
@@ -6,49 +6,49 @@
 
 class OMP_Lock
 {
-  public:
-    OMP_Lock()
-    {
-      omp_init_lock(&omp_lock);
-    }
-
-    ~OMP_Lock()
-    {
-      omp_destroy_lock(&omp_lock);
-    }
-
-    void lock()
-    {
-      omp_set_lock(&omp_lock);
-    }
-
-    void unlock()
-    {
-      omp_unset_lock(&omp_lock);
-    }
-
-  private:
-    omp_lock_t omp_lock;
+public:
+  OMP_Lock()
+  {
+    omp_init_lock(&omp_lock);
+  }
+
+  ~OMP_Lock()
+  {
+    omp_destroy_lock(&omp_lock);
+  }
+
+  void lock()
+  {
+    omp_set_lock(&omp_lock);
+  }
+
+  void unlock()
+  {
+    omp_unset_lock(&omp_lock);
+  }
+
+private:
+  omp_lock_t omp_lock;
 };
 
 
 class OMP_ScopedLock
 {
-  public:
-    OMP_ScopedLock(OMP_Lock &omp_lock)
+public:
+  OMP_ScopedLock(OMP_Lock &omp_lock)
     :
-      omp_lock(omp_lock)
-    {
-      omp_lock.lock();
-    }
-
-    ~OMP_ScopedLock()
-    {
-      omp_lock.unlock();
-    }
-
-  private:
-    OMP_Lock &omp_lock;
+    omp_lock(omp_lock)
+  {
+    omp_lock.lock();
+  }
+
+  ~OMP_ScopedLock()
+  {
+    omp_lock.unlock();
+  }
+
+private:
+  OMP_Lock &omp_lock;
 };
 
 #endif
diff --git a/RTCP/Cobalt/GPUProc/src/PerformanceCounter.cc b/RTCP/Cobalt/GPUProc/src/PerformanceCounter.cc
index 234aed68342bb604fa4774613c9c5c8828fe0d8d..2e000bf7782dc4ed3edad57ff93f71f670eb83fb 100644
--- a/RTCP/Cobalt/GPUProc/src/PerformanceCounter.cc
+++ b/RTCP/Cobalt/GPUProc/src/PerformanceCounter.cc
@@ -19,136 +19,136 @@ using namespace std;
 
 namespace LOFAR
 {
-    namespace RTCP 
+  namespace RTCP
+  {
+    PerformanceCounter::PerformanceCounter(const std::string &name, bool profiling, bool logAtDestruction)
+      :
+      name(name),
+      profiling(profiling),
+      logAtDestruction(logAtDestruction),
+      nrActiveEvents(0)
     {
-        PerformanceCounter::PerformanceCounter(const std::string &name, bool profiling, bool logAtDestruction)
-            :
-            name(name),
-            profiling(profiling),
-            logAtDestruction(logAtDestruction),
-            nrActiveEvents(0)
-        {
-        }
+    }
 
 
-        PerformanceCounter::~PerformanceCounter()
-        {
-            waitForAllOperations();
+    PerformanceCounter::~PerformanceCounter()
+    {
+      waitForAllOperations();
 
-            if (logAtDestruction) {
-              LOG_INFO_STR(total.log(name));
-            }
-        }
+      if (logAtDestruction) {
+        LOG_INFO_STR(total.log(name));
+      }
+    }
 
 
-        void PerformanceCounter::waitForAllOperations()
-        {
-            ScopedLock sl(mutex);
+    void PerformanceCounter::waitForAllOperations()
+    {
+      ScopedLock sl(mutex);
 
-            while (nrActiveEvents > 0)
-                activeEventsLowered.wait(mutex);
-        }
+      while (nrActiveEvents > 0)
+        activeEventsLowered.wait(mutex);
+    }
 
 
-        struct PerformanceCounter::figures PerformanceCounter::getTotal()
-        {
-          ScopedLock sl(mutex);
-          
-          return total;
-        }
+    struct PerformanceCounter::figures PerformanceCounter::getTotal()
+    {
+      ScopedLock sl(mutex);
 
+      return total;
+    }
 
-        std::string PerformanceCounter::figures::log(const std::string &name) const
-        {
-          std::stringstream str;
 
-          // Mimic output of NSTimer::print (in LCS/Common/Timer.cc)
-          str << left << setw(25) << name << ": " << right
-              << "avg = " << PrettyTime(avrRuntime()) << ", "
-              << "total = " << PrettyTime(runtime) << ", "
-              << "count = " << setw(9) << nrEvents << ", "
+    std::string PerformanceCounter::figures::log(const std::string &name) const
+    {
+      std::stringstream str;
 
-              << setprecision(3)
-              << "GFLOP/s = " << FLOPs() / 1e9 << ", "
-              << "read = " << readSpeed() / 1e9 << " GB/s, "
-              << "written = " << writeSpeed() / 1e9 << " GB/s, "
-              << "total I/O = " << (readSpeed() + writeSpeed()) / 1e9 << " GB/s";
+      // Mimic output of NSTimer::print (in LCS/Common/Timer.cc)
+      str << left << setw(25) << name << ": " << right
+          << "avg = " << PrettyTime(avrRuntime()) << ", "
+          << "total = " << PrettyTime(runtime) << ", "
+          << "count = " << setw(9) << nrEvents << ", "
 
-          return str.str();
-        }
+          << setprecision(3)
+          << "GFLOP/s = " << FLOPs() / 1e9 << ", "
+          << "read = " << readSpeed() / 1e9 << " GB/s, "
+          << "written = " << writeSpeed() / 1e9 << " GB/s, "
+          << "total I/O = " << (readSpeed() + writeSpeed()) / 1e9 << " GB/s";
 
+      return str.str();
+    }
 
-        void PerformanceCounter::eventCompleteCallBack(cl_event ev, cl_int /*status*/, void *userdata)
-        {
-            struct callBackArgs *args = static_cast<struct callBackArgs *>(userdata);
-
-            try {
-                // extract performance information
-                cl::Event event(ev);
-
-                size_t queued    = event.getProfilingInfo<CL_PROFILING_COMMAND_QUEUED>();
-                size_t submitted = event.getProfilingInfo<CL_PROFILING_COMMAND_SUBMIT>();
-                size_t start     = event.getProfilingInfo<CL_PROFILING_COMMAND_START>();
-                size_t stop      = event.getProfilingInfo<CL_PROFILING_COMMAND_END>();
-                double seconds   = (stop - start) / 1e9;
-
-                // sanity checks
-                ASSERT(seconds >= 0);
-                ASSERTSTR(seconds < 15, "Kernel took " << seconds << " seconds to execute: thread " << omp_get_thread_num() << ": " << queued << ' ' << submitted - queued << ' ' << start - queued << ' ' << stop - queued);
-
-                args->figures.runtime = seconds;
-
-                // add figures to total
-                {
-                  ScopedLock sl(args->this_->mutex);
-                  args->this_->total += args->figures;
-                }
-
-                // cl::~Event() decreases ref count
-            } catch (cl::Error &error) {
-                // ignore errors in callBack function (OpenCL library not exception safe)
-            }
-
-            // we're done -- release event and possibly signal destructor
-            {
-              ScopedLock sl(args->this_->mutex);
-              args->this_->nrActiveEvents--;
-              args->this_->activeEventsLowered.signal();
-            }
-
-            delete args;
-        }
 
+    void PerformanceCounter::eventCompleteCallBack(cl_event ev, cl_int /*status*/, void *userdata)
+    {
+      struct callBackArgs *args = static_cast<struct callBackArgs *>(userdata);
+
+      try {
+        // extract performance information
+        cl::Event event(ev);
+
+        size_t queued = event.getProfilingInfo<CL_PROFILING_COMMAND_QUEUED>();
+        size_t submitted = event.getProfilingInfo<CL_PROFILING_COMMAND_SUBMIT>();
+        size_t start = event.getProfilingInfo<CL_PROFILING_COMMAND_START>();
+        size_t stop = event.getProfilingInfo<CL_PROFILING_COMMAND_END>();
+        double seconds = (stop - start) / 1e9;
+
+        // sanity checks
+        ASSERT(seconds >= 0);
+        ASSERTSTR(seconds < 15, "Kernel took " << seconds << " seconds to execute: thread " << omp_get_thread_num() << ": " << queued << ' ' << submitted - queued << ' ' << start - queued << ' ' << stop - queued);
 
-        void PerformanceCounter::doOperation(cl::Event &event, size_t nrOperations, size_t nrBytesRead, size_t nrBytesWritten)
+        args->figures.runtime = seconds;
+
+        // add figures to total
         {
-            if (!profiling)
-              return;
-
-            // reference count between C and C++ conversions is serously broken in C++ wrapper
-            cl_event ev = event();
-            cl_int error = clRetainEvent(ev);
-
-            if (error != CL_SUCCESS)
-                throw cl::Error(error, "clRetainEvent");
-
-            // obtain run time information
-            struct callBackArgs *args = new callBackArgs;
-            args->this_ = this;
-            args->figures.nrOperations   = nrOperations;
-            args->figures.nrBytesRead    = nrBytesRead;
-            args->figures.nrBytesWritten = nrBytesWritten;
-            args->figures.runtime        = 0.0;
-            args->figures.nrEvents       = 1;
-
-            {
-              // allocate event as active
-              ScopedLock sl(mutex);
-              nrActiveEvents++;
-            }
-
-            event.setCallback(CL_COMPLETE, &PerformanceCounter::eventCompleteCallBack, args);
+          ScopedLock sl(args->this_->mutex);
+          args->this_->total += args->figures;
         }
 
+        // cl::~Event() decreases ref count
+      } catch (cl::Error &error) {
+        // ignore errors in callBack function (OpenCL library not exception safe)
+      }
+
+      // we're done -- release event and possibly signal destructor
+      {
+        ScopedLock sl(args->this_->mutex);
+        args->this_->nrActiveEvents--;
+        args->this_->activeEventsLowered.signal();
+      }
+
+      delete args;
+    }
+
+
+    void PerformanceCounter::doOperation(cl::Event &event, size_t nrOperations, size_t nrBytesRead, size_t nrBytesWritten)
+    {
+      if (!profiling)
+        return;
+
+      // reference count between C and C++ conversions is serously broken in C++ wrapper
+      cl_event ev = event();
+      cl_int error = clRetainEvent(ev);
+
+      if (error != CL_SUCCESS)
+        throw cl::Error(error, "clRetainEvent");
+
+      // obtain run time information
+      struct callBackArgs *args = new callBackArgs;
+      args->this_ = this;
+      args->figures.nrOperations = nrOperations;
+      args->figures.nrBytesRead = nrBytesRead;
+      args->figures.nrBytesWritten = nrBytesWritten;
+      args->figures.runtime = 0.0;
+      args->figures.nrEvents = 1;
+
+      {
+        // allocate event as active
+        ScopedLock sl(mutex);
+        nrActiveEvents++;
+      }
+
+      event.setCallback(CL_COMPLETE, &PerformanceCounter::eventCompleteCallBack, args);
     }
+
+  }
 }
diff --git a/RTCP/Cobalt/GPUProc/src/PerformanceCounter.h b/RTCP/Cobalt/GPUProc/src/PerformanceCounter.h
index 4b1d2f11e067c945dd5e55ce9cf7ac64bc18f1f4..e051b9404b5e0eb2d375658edc410579303a2c2e 100644
--- a/RTCP/Cobalt/GPUProc/src/PerformanceCounter.h
+++ b/RTCP/Cobalt/GPUProc/src/PerformanceCounter.h
@@ -9,89 +9,104 @@
 
 namespace LOFAR
 {
-    namespace RTCP 
+  namespace RTCP
+  {
+    class PerformanceCounter
     {
-        class PerformanceCounter
+    public:
+      // name of counter, for logging purposes
+      const std::string name;
+
+      // whether we collect profiling information in the first place
+      const bool profiling;
+
+      // Initialise the counter, giving it a name.
+      //
+      // If profiling == false, no actual performance statistics are
+      // gathered.
+      PerformanceCounter(const std::string &name, bool profiling, bool logAtDestruction = false);
+      ~PerformanceCounter();
+
+      // register an operation covered by `event'. runtime will be determined by OpenCL, the
+      // rest of the figures have to be provided.
+      void doOperation(cl::Event &, size_t nrOperations, size_t nrBytesRead, size_t nrBytesWritten);
+
+      // performance figures
+      struct figures {
+        size_t nrOperations;
+        size_t nrBytesRead;
+        size_t nrBytesWritten;
+        double runtime;
+
+        size_t nrEvents;
+
+        figures() : nrOperations(0), nrBytesRead(0), nrBytesWritten(0), runtime(0.0), nrEvents(0)
         {
-        public:
-            // name of counter, for logging purposes
-            const std::string name;
-
-            // whether we collect profiling information in the first place
-            const bool profiling;
-
-            // Initialise the counter, giving it a name.
-            //
-            // If profiling == false, no actual performance statistics are
-            // gathered.
-            PerformanceCounter(const std::string &name, bool profiling, bool logAtDestruction=false);
-            ~PerformanceCounter();
-
-            // register an operation covered by `event'. runtime will be determined by OpenCL, the
-            // rest of the figures have to be provided.
-            void doOperation(cl::Event &, size_t nrOperations, size_t nrBytesRead, size_t nrBytesWritten);
-
-            // performance figures
-            struct figures {
-              size_t nrOperations;
-              size_t nrBytesRead;
-              size_t nrBytesWritten;
-              double runtime;
-
-              size_t nrEvents;
-
-              figures(): nrOperations(0), nrBytesRead(0), nrBytesWritten(0), runtime(0.0), nrEvents(0) {}
-
-              struct figures &operator+=(const struct figures &other) {
-                nrOperations   += other.nrOperations;
-                nrBytesRead    += other.nrBytesRead;
-                nrBytesWritten += other.nrBytesWritten;
-                runtime        += other.runtime;
-                nrEvents       += other.nrEvents;
-
-                return *this;
-              }
-
-              double avrRuntime() const { return runtime/nrEvents; }
-              double FLOPs() const      { return nrOperations/runtime; }
-              double readSpeed() const  { return nrBytesRead/runtime; }
-              double writeSpeed() const { return nrBytesWritten/runtime; }
-
-              std::string log(const std::string &name = "timer") const;
-            };
-
-            // Return once all scheduled operations have completed
-            void waitForAllOperations();
-
-            // Return current running total figures
-            struct figures getTotal();
-
-            // Log the total figures
-            void logTotal();
-
-        private:
-            // whether to log the performance when ~PerformanceCounter is
-            // called
-            const bool logAtDestruction;
-
-            // performance totals
-            struct figures total;
-
-            // number of events that still have a callback waiting
-            size_t nrActiveEvents;
-            Condition activeEventsLowered;
-
-            // lock for total and nrActiveEvents
-            Mutex mutex;
-
-            // call-back to get runtime information
-            struct callBackArgs {
-              PerformanceCounter *this_;
-              struct figures figures;
-            };
-
-            static void eventCompleteCallBack(cl_event, cl_int /*status*/, void *userdata);
-        };
-    }
+        }
+
+        struct figures &operator+=(const struct figures &other)
+        {
+          nrOperations += other.nrOperations;
+          nrBytesRead += other.nrBytesRead;
+          nrBytesWritten += other.nrBytesWritten;
+          runtime += other.runtime;
+          nrEvents += other.nrEvents;
+
+          return *this;
+        }
+
+        double avrRuntime() const
+        {
+          return runtime / nrEvents;
+        }
+        double FLOPs() const
+        {
+          return nrOperations / runtime;
+        }
+        double readSpeed() const
+        {
+          return nrBytesRead / runtime;
+        }
+        double writeSpeed() const
+        {
+          return nrBytesWritten / runtime;
+        }
+
+        std::string log(const std::string &name = "timer") const;
+      };
+
+      // Return once all scheduled operations have completed
+      void waitForAllOperations();
+
+      // Return current running total figures
+      struct figures getTotal();
+
+      // Log the total figures
+      void logTotal();
+
+    private:
+      // whether to log the performance when ~PerformanceCounter is
+      // called
+      const bool logAtDestruction;
+
+      // performance totals
+      struct figures total;
+
+      // number of events that still have a callback waiting
+      size_t nrActiveEvents;
+      Condition activeEventsLowered;
+
+      // lock for total and nrActiveEvents
+      Mutex mutex;
+
+      // call-back to get runtime information
+      struct callBackArgs {
+        PerformanceCounter *this_;
+        struct figures figures;
+      };
+
+      static void eventCompleteCallBack(cl_event, cl_int /*status*/, void *userdata);
+    };
+  }
 }
 #endif
diff --git a/RTCP/Cobalt/GPUProc/src/Pipeline.cc b/RTCP/Cobalt/GPUProc/src/Pipeline.cc
index 74443687f289b43d558c1eae8468b49002d75dd9..fa4fdd3ac3e0345782cd7191130264f043df584a 100644
--- a/RTCP/Cobalt/GPUProc/src/Pipeline.cc
+++ b/RTCP/Cobalt/GPUProc/src/Pipeline.cc
@@ -1,4 +1,4 @@
-#include "lofar_config.h"    
+#include "lofar_config.h"
 
 #include "Common/LofarLogger.h"
 #include "global_defines.h"
@@ -15,148 +15,148 @@
 
 namespace LOFAR
 {
-    namespace RTCP 
-    {      
-
-
-                Pipeline::Pipeline(const Parset &ps)
-            :
-        ps(ps),
-            stationInputs16(ps.nrStations()),
-            stationInputs8(ps.nrStations()),
-            stationInputs4(ps.nrStations()),
-            bufferToGPUstreams(ps.nrStations()),
-            outputs(ps.nrSubbands())
-        {
-            createContext(context, devices);
-
-            for (unsigned stat = 0; stat < ps.nrStations(); stat ++) {
-                bufferToGPUstreams[stat] = new SharedMemoryStream;
-
-                switch (ps.nrBitsPerSample()) {
-                default:
-                case 16:
-                    stationInputs16[stat].init(ps, stat);
-                    break;
-
-                case 8:
-                    stationInputs8[stat].init(ps, stat);
-                    break;
-
-                case 4:
-                    stationInputs4[stat].init(ps, stat);
-                    break;
-                }
-            }
-
-            for (unsigned sb = 0; sb < ps.nrSubbands(); sb ++) {
-              // Allow 10 blocks to be in the best-effort queue.
-              // TODO: make this dynamic based on memory or time
-              outputs[sb].bequeue = new BestEffortQueue< SmartPtr<StreamableData> >(10, ps.realTime());
-            }
+  namespace RTCP
+  {
+
+
+    Pipeline::Pipeline(const Parset &ps)
+      :
+      ps(ps),
+      stationInputs16(ps.nrStations()),
+      stationInputs8(ps.nrStations()),
+      stationInputs4(ps.nrStations()),
+      bufferToGPUstreams(ps.nrStations()),
+      outputs(ps.nrSubbands())
+    {
+      createContext(context, devices);
+
+      for (unsigned stat = 0; stat < ps.nrStations(); stat++) {
+        bufferToGPUstreams[stat] = new SharedMemoryStream;
+
+        switch (ps.nrBitsPerSample()) {
+        default:
+        case 16:
+          stationInputs16[stat].init(ps, stat);
+          break;
+
+        case 8:
+          stationInputs8[stat].init(ps, stat);
+          break;
+
+        case 4:
+          stationInputs4[stat].init(ps, stat);
+          break;
         }
+      }
 
+      for (unsigned sb = 0; sb < ps.nrSubbands(); sb++) {
+        // Allow 10 blocks to be in the best-effort queue.
+        // TODO: make this dynamic based on memory or time
+        outputs[sb].bequeue = new BestEffortQueue< SmartPtr<StreamableData> >(10, ps.realTime());
+      }
+    }
 
-        void Pipeline::doWork()
-        {
-          handleOutput();
-        }
+
+    void Pipeline::doWork()
+    {
+      handleOutput();
+    }
 
 
-        void Pipeline::handleOutput()
-        {
-            // Process to all output streams in parallel
+    void Pipeline::handleOutput()
+    {
+      // Process to all output streams in parallel
 
 #           pragma omp parallel for num_threads(ps.nrSubbands())
-            for (unsigned sb = 0; sb < ps.nrSubbands(); sb ++) {
-              struct Output &output = outputs[sb];
-
-              SmartPtr<Stream> outputStream;
-
-              try {
-                  // Connect to output stream
-                  if (ps.getHostName(CORRELATED_DATA, sb) == "") {
-                    // an empty host name means 'write to disk directly', to
-                    // make debugging easier for now
-                    outputStream = new FileStream(ps.getFileName(CORRELATED_DATA, sb), 0666);
-                  } else {
-                    // connect to the Storage_main process for this output
-                    const std::string desc = getStreamDescriptorBetweenIONandStorage(ps, CORRELATED_DATA, sb);
-
-                    // TODO: Create these connections asynchronously!
-                    outputStream = createStream(desc, false, 0);
-                  }
-
-                  // Process queue elements
-                  SmartPtr<StreamableData> data;
-
-                  while ((data = output.bequeue->remove()) != NULL) {
-                    // Write data to Storage
-                    data->write(outputStream.get(), true);
-                  }
-              } catch(Exception &ex) {
-                  LOG_ERROR_STR("Caught exception for output subband " << sb << ": " << ex);
-              }
-            }
+      for (unsigned sb = 0; sb < ps.nrSubbands(); sb++) {
+        struct Output &output = outputs[sb];
+
+        SmartPtr<Stream> outputStream;
+
+        try {
+          // Connect to output stream
+          if (ps.getHostName(CORRELATED_DATA, sb) == "") {
+            // an empty host name means 'write to disk directly', to
+            // make debugging easier for now
+            outputStream = new FileStream(ps.getFileName(CORRELATED_DATA, sb), 0666);
+          } else {
+            // connect to the Storage_main process for this output
+            const std::string desc = getStreamDescriptorBetweenIONandStorage(ps, CORRELATED_DATA, sb);
+
+            // TODO: Create these connections asynchronously!
+            outputStream = createStream(desc, false, 0);
+          }
+
+          // Process queue elements
+          SmartPtr<StreamableData> data;
+
+          while ((data = output.bequeue->remove()) != NULL) {
+            // Write data to Storage
+            data->write(outputStream.get(), true);
+          }
+        } catch(Exception &ex) {
+          LOG_ERROR_STR("Caught exception for output subband " << sb << ": " << ex);
         }
+      }
+    }
 
 
-        void Pipeline::noMoreOutput()
-        {
-            for (unsigned sb = 0; sb < ps.nrSubbands(); sb ++) {
-              outputs[sb].bequeue->noMore();
-            }
-        }
-
+    void Pipeline::noMoreOutput()
+    {
+      for (unsigned sb = 0; sb < ps.nrSubbands(); sb++) {
+        outputs[sb].bequeue->noMore();
+      }
+    }
 
-        cl::Program Pipeline::createProgram(const char *sources)
-        {
-            return LOFAR::RTCP::createProgram(ps, context, devices, sources);
-        }
 
+    cl::Program Pipeline::createProgram(const char *sources)
+    {
+      return LOFAR::RTCP::createProgram(ps, context, devices, sources);
+    }
 
-        void Pipeline::writeOutput(unsigned block, unsigned subband, StreamableData *data)
-        {
-            struct Output &output = outputs[subband];
 
-            // Force blocks to be written in-order
-            output.sync.waitFor(block);
+    void Pipeline::writeOutput(unsigned block, unsigned subband, StreamableData *data)
+    {
+      struct Output &output = outputs[subband];
 
-            // We do the ordering, so we set the sequence numbers
-            data->setSequenceNumber(block);
+      // Force blocks to be written in-order
+      output.sync.waitFor(block);
 
-            if (!output.bequeue->append(data)) {
-              LOG_WARN_STR("Dropping block " << block << " of subband " << subband);
-            }
+      // We do the ordering, so we set the sequence numbers
+      data->setSequenceNumber(block);
 
-            // Allow the next block to be written
-            output.sync.advanceTo(block + 1);
-        }
+      if (!output.bequeue->append(data)) {
+        LOG_WARN_STR("Dropping block " << block << " of subband " << subband);
+      }
 
+      // Allow the next block to be written
+      output.sync.advanceTo(block + 1);
+    }
 
-        void Pipeline::sendNextBlock(unsigned station)
-        {
-            (void)station;
 
-            unsigned bitsPerSample = ps.nrBitsPerSample();
+    void Pipeline::sendNextBlock(unsigned station)
+    {
+      (void)station;
 
-            Stream *stream = bufferToGPUstreams[station];
+      unsigned bitsPerSample = ps.nrBitsPerSample();
 
-            switch(bitsPerSample) {
-            default:
-            case 16:
-                stationInputs16[station].beamletBufferToComputeNode->process(stream);
-                break;
+      Stream *stream = bufferToGPUstreams[station];
 
-            case 8:
-                stationInputs8[station].beamletBufferToComputeNode->process(stream);
-                break;
+      switch(bitsPerSample) {
+      default:
+      case 16:
+        stationInputs16[station].beamletBufferToComputeNode->process(stream);
+        break;
 
-            case 4:
-                stationInputs4[station].beamletBufferToComputeNode->process(stream);
-                break;
-            }
-        }
+      case 8:
+        stationInputs8[station].beamletBufferToComputeNode->process(stream);
+        break;
 
+      case 4:
+        stationInputs4[station].beamletBufferToComputeNode->process(stream);
+        break;
+      }
     }
+
+  }
 }
diff --git a/RTCP/Cobalt/GPUProc/src/Pipeline.h b/RTCP/Cobalt/GPUProc/src/Pipeline.h
index 7e3a3ced7696531bdbd9cd455d55684b4b08a6b1..2731b24629dcefaef7e5dd317ea664a1f9ac7274 100644
--- a/RTCP/Cobalt/GPUProc/src/Pipeline.h
+++ b/RTCP/Cobalt/GPUProc/src/Pipeline.h
@@ -16,75 +16,77 @@
 
 namespace LOFAR
 {
-    namespace RTCP 
-    {
+  namespace RTCP
+  {
 
-        template <typename SAMPLE_TYPE> class StationInput
-        {
-        public:
-            SmartPtr<InputSection<SAMPLE_TYPE> >               inputSection;
-            SmartPtr<BeamletBufferToComputeNode<SAMPLE_TYPE> > beamletBufferToComputeNode;
+    template <typename SAMPLE_TYPE>
+    class StationInput
+    {
+    public:
+      SmartPtr<InputSection<SAMPLE_TYPE> >               inputSection;
+      SmartPtr<BeamletBufferToComputeNode<SAMPLE_TYPE> > beamletBufferToComputeNode;
 
-            void init(const Parset &ps, unsigned psetNumber);
-        };
+      void init(const Parset &ps, unsigned psetNumber);
+    };
 
-        template<typename SAMPLE_TYPE> void StationInput<SAMPLE_TYPE>::init(const Parset &ps, unsigned psetNumber)
-        {
-            string stationName = ps.getStationNamesAndRSPboardNumbers(psetNumber)[0].station; // TODO: support more than one station
-            std::vector<Parset::StationRSPpair> inputs = ps.getStationNamesAndRSPboardNumbers(psetNumber);
+    template<typename SAMPLE_TYPE>
+    void StationInput<SAMPLE_TYPE>::init(const Parset &ps, unsigned psetNumber)
+    {
+      string stationName = ps.getStationNamesAndRSPboardNumbers(psetNumber)[0].station;       // TODO: support more than one station
+      std::vector<Parset::StationRSPpair> inputs = ps.getStationNamesAndRSPboardNumbers(psetNumber);
 
-            inputSection = new InputSection<SAMPLE_TYPE>(ps, inputs);
-            beamletBufferToComputeNode = new BeamletBufferToComputeNode<SAMPLE_TYPE>(ps, stationName, inputSection->itsBeamletBuffers, 0);
-        }
+      inputSection = new InputSection<SAMPLE_TYPE>(ps, inputs);
+      beamletBufferToComputeNode = new BeamletBufferToComputeNode<SAMPLE_TYPE>(ps, stationName, inputSection->itsBeamletBuffers, 0);
+    }
 
-        class Pipeline
-        {
-        public:
-            Pipeline(const Parset &);
+    class Pipeline
+    {
+    public:
+      Pipeline(const Parset &);
 
-            cl::Program		    createProgram(const char *sources);
+      cl::Program             createProgram(const char *sources);
 
-            const Parset	    &ps;
-            cl::Context		    context;
-            std::vector<cl::Device> devices;
+      const Parset            &ps;
+      cl::Context context;
+      std::vector<cl::Device> devices;
 
-            std::vector<StationInput<i16complex> > stationInputs16; // indexed by station
-            std::vector<StationInput<i8complex> >  stationInputs8; // indexed by station
-            std::vector<StationInput<i4complex> >  stationInputs4; // indexed by station
+      std::vector<StationInput<i16complex> > stationInputs16;       // indexed by station
+      std::vector<StationInput<i8complex> >  stationInputs8;       // indexed by station
+      std::vector<StationInput<i4complex> >  stationInputs4;       // indexed by station
 
-            std::vector<SmartPtr<Stream> >  bufferToGPUstreams; // indexed by station
+      std::vector<SmartPtr<Stream> >  bufferToGPUstreams;       // indexed by station
 
-            SlidingPointer<uint64_t> inputSynchronization;
+      SlidingPointer<uint64_t> inputSynchronization;
 
 #if defined USE_B7015
-            OMP_Lock hostToDeviceLock[4], deviceToHostLock[4];
+      OMP_Lock hostToDeviceLock[4], deviceToHostLock[4];
 #endif
 
-            void doWork();
+      void doWork();
 
-            // Write an output block. Takes ownership of data, because the
-            // block will be kept in the background until it can be written.
-            void writeOutput(unsigned block, unsigned subband, StreamableData *data);
+      // Write an output block. Takes ownership of data, because the
+      // block will be kept in the background until it can be written.
+      void writeOutput(unsigned block, unsigned subband, StreamableData *data);
 
-            // signal that we've written all blocks (because we can drop some)
-            void noMoreOutput();
+      // signal that we've written all blocks (because we can drop some)
+      void noMoreOutput();
 
-            //private:
-            void                    sendNextBlock(unsigned station);
+      //private:
+      void                    sendNextBlock(unsigned station);
 
-        private:
-            struct Output {
-              // synchronisation to write blocks in-order
-              SlidingPointer<size_t> sync;
+    private:
+      struct Output {
+        // synchronisation to write blocks in-order
+        SlidingPointer<size_t> sync;
 
-              // output data queue
-              SmartPtr< BestEffortQueue< SmartPtr<StreamableData> > > bequeue;
-            };
+        // output data queue
+        SmartPtr< BestEffortQueue< SmartPtr<StreamableData> > > bequeue;
+      };
 
-            std::vector<struct Output> outputs; // indexed by subband
+      std::vector<struct Output> outputs;       // indexed by subband
 
-            void handleOutput();
-        };
-    }
+      void handleOutput();
+    };
+  }
 }
 #endif
diff --git a/RTCP/Cobalt/GPUProc/src/Pipelines/BeamFormerPipeline.cc b/RTCP/Cobalt/GPUProc/src/Pipelines/BeamFormerPipeline.cc
index ec969e679739940fd24a06e8184d2bb88aebfe5f..4749930e0e9c0355ccc0e934f5e1ef6eefe9d0cf 100644
--- a/RTCP/Cobalt/GPUProc/src/Pipelines/BeamFormerPipeline.cc
+++ b/RTCP/Cobalt/GPUProc/src/Pipelines/BeamFormerPipeline.cc
@@ -1,4 +1,4 @@
-#include "lofar_config.h"    
+#include "lofar_config.h"
 
 #include "Common/LofarLogger.h"
 #include "global_defines.h"
@@ -13,45 +13,45 @@
 
 namespace LOFAR
 {
-    namespace RTCP 
+  namespace RTCP
+  {
+    BeamFormerPipeline::BeamFormerPipeline(const Parset &ps)
+      :
+      Pipeline(ps),
+      intToFloatCounter("int-to-float", profiling),
+      fftCounter("FFT", profiling),
+      delayAndBandPassCounter("delay/bp", profiling),
+      beamFormerCounter("beamformer", profiling),
+      transposeCounter("transpose", profiling),
+      dedispersionForwardFFTcounter("ddisp.fw.FFT", profiling),
+      dedispersionChirpCounter("chirp", profiling),
+      dedispersionBackwardFFTcounter("ddisp.bw.FFT", profiling),
+      samplesCounter("samples", profiling)
     {
-        BeamFormerPipeline::BeamFormerPipeline(const Parset &ps)
-            :
-        Pipeline(ps),
-            intToFloatCounter("int-to-float", profiling),
-            fftCounter("FFT", profiling),
-            delayAndBandPassCounter("delay/bp", profiling),
-            beamFormerCounter("beamformer", profiling),
-            transposeCounter("transpose", profiling),
-            dedispersionForwardFFTcounter("ddisp.fw.FFT", profiling),
-            dedispersionChirpCounter("chirp", profiling),
-            dedispersionBackwardFFTcounter("ddisp.bw.FFT", profiling),
-            samplesCounter("samples", profiling)
-        {
-            double startTime = omp_get_wtime();
+      double startTime = omp_get_wtime();
 
 #pragma omp parallel sections
-            {
+      {
 #pragma omp section
-                intToFloatProgram = createProgram("BeamFormer/IntToFloat.cl");
+        intToFloatProgram = createProgram("BeamFormer/IntToFloat.cl");
 #pragma omp section
-                delayAndBandPassProgram = createProgram("DelayAndBandPass.cl");
+        delayAndBandPassProgram = createProgram("DelayAndBandPass.cl");
 #pragma omp section
-                beamFormerProgram = createProgram("BeamFormer/BeamFormer.cl");
+        beamFormerProgram = createProgram("BeamFormer/BeamFormer.cl");
 #pragma omp section
-                transposeProgram = createProgram("BeamFormer/Transpose.cl");
+        transposeProgram = createProgram("BeamFormer/Transpose.cl");
 #pragma omp section
-                dedispersionChirpProgram = createProgram("BeamFormer/Dedispersion.cl");
-            }
+        dedispersionChirpProgram = createProgram("BeamFormer/Dedispersion.cl");
+      }
 
-            std::cout << "compile time = " << omp_get_wtime() - startTime << std::endl;
-        }
+      std::cout << "compile time = " << omp_get_wtime() - startTime << std::endl;
+    }
 
-                void BeamFormerPipeline::doWork()
-        {
+    void BeamFormerPipeline::doWork()
+    {
 #pragma omp parallel num_threads((profiling ? 1 : 2) * nrGPUs)
-                BeamFormerWorkQueue(*this, omp_get_thread_num()% nrGPUs).doWork();
-        }
+      BeamFormerWorkQueue(*this, omp_get_thread_num() % nrGPUs).doWork();
     }
+  }
 }
 
diff --git a/RTCP/Cobalt/GPUProc/src/Pipelines/BeamFormerPipeline.h b/RTCP/Cobalt/GPUProc/src/Pipelines/BeamFormerPipeline.h
index af11c8f985fac0a3b1c257601664461694618f26..f22e51f3223ff501a56dfe774215878821f1558c 100644
--- a/RTCP/Cobalt/GPUProc/src/Pipelines/BeamFormerPipeline.h
+++ b/RTCP/Cobalt/GPUProc/src/Pipelines/BeamFormerPipeline.h
@@ -11,20 +11,20 @@
 
 namespace LOFAR
 {
-    namespace RTCP 
+  namespace RTCP
+  {
+    class BeamFormerPipeline : public Pipeline
     {
-                class BeamFormerPipeline : public Pipeline
-        {
-        public:
-            BeamFormerPipeline(const Parset &);
+    public:
+      BeamFormerPipeline(const Parset &);
 
-            void		    doWork();
+      void                    doWork();
 
-            cl::Program		    intToFloatProgram, delayAndBandPassProgram, beamFormerProgram, transposeProgram, dedispersionChirpProgram;
+      cl::Program intToFloatProgram, delayAndBandPassProgram, beamFormerProgram, transposeProgram, dedispersionChirpProgram;
 
-            PerformanceCounter	    intToFloatCounter, fftCounter, delayAndBandPassCounter, beamFormerCounter, transposeCounter, dedispersionForwardFFTcounter, dedispersionChirpCounter, dedispersionBackwardFFTcounter;
-            PerformanceCounter	    samplesCounter;
-        };
-    }
+      PerformanceCounter intToFloatCounter, fftCounter, delayAndBandPassCounter, beamFormerCounter, transposeCounter, dedispersionForwardFFTcounter, dedispersionChirpCounter, dedispersionBackwardFFTcounter;
+      PerformanceCounter samplesCounter;
+    };
+  }
 }
-#endif 
+#endif
diff --git a/RTCP/Cobalt/GPUProc/src/Pipelines/CorrelatorPipeline.cc b/RTCP/Cobalt/GPUProc/src/Pipelines/CorrelatorPipeline.cc
index 68d8d4c16947365535e8e2ca68f246efd16622e0..19c934d567eecc93715b1eab9673e7c5ce91fece 100644
--- a/RTCP/Cobalt/GPUProc/src/Pipelines/CorrelatorPipeline.cc
+++ b/RTCP/Cobalt/GPUProc/src/Pipelines/CorrelatorPipeline.cc
@@ -1,4 +1,4 @@
-#include "lofar_config.h"    
+#include "lofar_config.h"
 
 #include "Common/LofarLogger.h"
 #include "global_defines.h"
@@ -21,12 +21,12 @@ using namespace std;
 
 namespace LOFAR
 {
-  namespace RTCP 
+  namespace RTCP
   {
 
     CorrelatorPipeline::CorrelatorPipeline(const Parset &ps)
       :
-    Pipeline(ps),
+      Pipeline(ps),
       filterBank(true, NR_TAPS, ps.nrChannelsPerSubband(), KAISER)
     {
 
@@ -113,11 +113,11 @@ namespace LOFAR
 
       // Log specific performance figures for regression tests at INFO level
       double wall_seconds = total_timers["CPU - total"]->getAverage();
-      double gpu_seconds = counter_groups["compute"].runtime/nrGPUs;
+      double gpu_seconds = counter_groups["compute"].runtime / nrGPUs;
       double spin_seconds = total_timers["GPU - wait"]->getAverage();
-      double input_seconds = total_timers["CPU - input"]->getElapsed()/nrWorkQueues;
-      double cpu_seconds = total_timers["CPU - compute"]->getElapsed()/nrWorkQueues;
-      double output_seconds = total_timers["CPU - output"]->getElapsed()/nrWorkQueues;
+      double input_seconds = total_timers["CPU - input"]->getElapsed() / nrWorkQueues;
+      double cpu_seconds = total_timers["CPU - compute"]->getElapsed() / nrWorkQueues;
+      double output_seconds = total_timers["CPU - output"]->getElapsed() / nrWorkQueues;
 
       LOG_INFO_STR("Wall seconds spent processing        : " << fixed << setw(8) << setprecision(3) << wall_seconds);
       LOG_INFO_STR("GPU  seconds spent computing, per GPU: " << fixed << setw(8) << setprecision(3) << gpu_seconds);
@@ -133,7 +133,7 @@ namespace LOFAR
       //           are distributed for parallel execution among available threads
       //parallel = directive explicitly instructs the compiler to parallelize the chosen block of code.
       //  The two sections in this function are done in parallel with a seperate set of threads.
-#     pragma omp parallel sections 
+#     pragma omp parallel sections
       {
         // Allow the super class to do its work
 #       pragma omp section
@@ -148,11 +148,11 @@ namespace LOFAR
 
           // The data from the input buffer to the input stream is run in a seperate thread
 #         pragma omp parallel for num_threads(nrStations)
-          for (size_t stat = 0; stat < nrStations; stat++) 
+          for (size_t stat = 0; stat < nrStations; stat++)
           {
             double currentTime;
 
-            for (unsigned block = 0; (currentTime = startTime + block * blockTime) < stopTime; block ++) 
+            for (unsigned block = 0; (currentTime = startTime + block * blockTime) < stopTime; block++)
             {
               // TODO: Connect the input buffer to the input stream, is this correct description??
               sendNextBlock(stat);
@@ -170,11 +170,11 @@ namespace LOFAR
 #         pragma omp parallel num_threads(nrWorkQueues)
           {
             CorrelatorWorkQueue queue(ps,               // Configuration
-               context,                                 // Opencl context
-               devices[omp_get_thread_num() % nrGPUs],  // The GPU this workQueue is connected to
-               omp_get_thread_num() % nrGPUs,           // The GPU index
-               programs,                                // The compiled kernels, const
-            filterBank);                             // The filter set to use. Const
+                                      context,          // Opencl context
+                                      devices[omp_get_thread_num() % nrGPUs], // The GPU this workQueue is connected to
+                                      omp_get_thread_num() % nrGPUs, // The GPU index
+                                      programs,         // The compiled kernels, const
+                                      filterBank);   // The filter set to use. Const
 
             // run the queue
             doWorkQueue(queue);
@@ -193,17 +193,17 @@ namespace LOFAR
 
 
     void CorrelatorPipeline::receiveSubbandSamples(
-         CorrelatorWorkQueue &workQueue, unsigned block,
-         unsigned subband)
+      CorrelatorWorkQueue &workQueue, unsigned block,
+      unsigned subband)
     {
       // Read the samples from the input stream in parallel
 #     pragma omp parallel for
-      for (unsigned station = 0; station < ps.nrStations(); station ++) 
+      for (unsigned station = 0; station < ps.nrStations(); station++)
       {
         // each input stream contains the data from a single station
-        Stream *inputStream = bufferToGPUstreams[station];      
+        Stream *inputStream = bufferToGPUstreams[station];
 
-        // 
+        //
         workQueue.inputData.read(inputStream, station, subband, ps.subbandToSAPmapping()[subband]);
       }
     }
@@ -212,28 +212,28 @@ namespace LOFAR
     //This whole block should be parallel: this allows the thread to pick up a subband from the next block
     void CorrelatorPipeline::doWorkQueue(CorrelatorWorkQueue &workQueue) //todo: name is not correct
     {
-      // get details regarding the observation from the parset. 
+      // get details regarding the observation from the parset.
       double currentTime;                         // set in the block processing for loop
-      double startTime  = ps.startTime();         // start of the observation 
-      double stopTime   = ps.stopTime();          // end of the observation
-      double blockTime  = ps.CNintegrationTime(); // Total integration time: How big a timeslot should be integrated
+      double startTime = ps.startTime();          // start of the observation
+      double stopTime = ps.stopTime();            // end of the observation
+      double blockTime = ps.CNintegrationTime();  // Total integration time: How big a timeslot should be integrated
 
       // wait until all other threads in this section reach the same point:
-      // This is the start of the work. We need a barier because not all WorkQueue objects might be created at once, 
+      // This is the start of the work. We need a barier because not all WorkQueue objects might be created at once,
       // each is  created in a seperate (OMP) Tread.
 #     pragma omp barrier
       double executionStartTime = omp_get_wtime();
-      double lastTime = omp_get_wtime(); 
+      double lastTime = omp_get_wtime();
 
       workQueue.timers["CPU - total"]->start();
 
       // loop all available blocks. use the blocks to determine if we are within the valid observation times
       // This loop is not parallel
-      for (unsigned block = 0; (currentTime = startTime + block * blockTime) < stopTime; block ++) 
+      for (unsigned block = 0; (currentTime = startTime + block * blockTime) < stopTime; block++)
       {
-#       pragma omp single nowait    // Only a single thread should perform the cout 
+#       pragma omp single nowait    // Only a single thread should perform the cout
 #       pragma omp critical (cout)  // Only one cout statement application wide can be active at a single time.
-        std::cout << "block = "  << block 
+        std::cout << "block = " << block
                   << ", time = " << to_simple_string(from_ustime_t(currentTime))  //current time
                   << ", exec = " << omp_get_wtime() - lastTime << std::endl;      //
 
@@ -244,11 +244,11 @@ namespace LOFAR
         // This is the main loop.
         // Get data from an input, send to the gpu, process, assign to the output.
         // schedule(dynamic) = the iterations requiring varying, or even unpredictable, amounts of work.
-        // nowait = Use this clause to avoid the implied barrier at the end of the for directive. 
-        //          Threads do not synchronize at the end of the parallel loop. 
+        // nowait = Use this clause to avoid the implied barrier at the end of the for directive.
+        //          Threads do not synchronize at the end of the parallel loop.
         // ordered =  Specifies that the iterations of the loop must be executed as they would be in a serial program
 #       pragma omp for schedule(dynamic), nowait, ordered  // no parallel: this no new threads
-        for (unsigned subband = 0; subband < ps.nrSubbands(); subband ++) 
+        for (unsigned subband = 0; subband < ps.nrSubbands(); subband++)
         {
           // Create an data object to Storage around our visibilities
           SmartPtr<CorrelatedData> output = new CorrelatedData(ps.nrStations(), ps.nrChannelsPerSubband(), ps.integrationSteps(), heapAllocator, 1);
@@ -270,19 +270,19 @@ namespace LOFAR
           workQueue.timers["CPU - output"]->start();
           writeOutput(block, subband, output.release());
           workQueue.timers["CPU - output"]->stop();
-        }  // end pragma omp for 
+        }  // end pragma omp for
       }
 
       workQueue.timers["CPU - total"]->stop();
 
-      //The omp for loop was nowait: We need a barier to assure that 
-#     pragma omp barrier 
+      //The omp for loop was nowait: We need a barier to assure that
+#     pragma omp barrier
 
       //master = a section of code that must be run only by the master thread.
 #     pragma omp master
 
       if (!profiling)
-#       pragma omp critical (cout)
+                       #       pragma omp critical (cout)
         std::cout << "run time = " << omp_get_wtime() - executionStartTime << std::endl;
     }
   }
diff --git a/RTCP/Cobalt/GPUProc/src/Pipelines/CorrelatorPipeline.h b/RTCP/Cobalt/GPUProc/src/Pipelines/CorrelatorPipeline.h
index 79766e09656756a34210e787e5477f2ea5415f8a..7aed9913d1372debd7d91af4c1d9bb1035402d09 100644
--- a/RTCP/Cobalt/GPUProc/src/Pipelines/CorrelatorPipeline.h
+++ b/RTCP/Cobalt/GPUProc/src/Pipelines/CorrelatorPipeline.h
@@ -15,36 +15,36 @@
 
 namespace LOFAR
 {
-    namespace RTCP 
-    {
-        class CorrelatorWorkQueue;
+  namespace RTCP
+  {
+    class CorrelatorWorkQueue;
 
-        class CorrelatorPipeline : public Pipeline
-        {
-        public:
-            CorrelatorPipeline(const Parset &);
+    class CorrelatorPipeline : public Pipeline
+    {
+    public:
+      CorrelatorPipeline(const Parset &);
 
-            void		    doWork();
-            void        doWorkQueue(CorrelatorWorkQueue &workQueue);
-            void        receiveSubbandSamples(CorrelatorWorkQueue &workQueue, unsigned block, unsigned subband);
+      void                    doWork();
+      void        doWorkQueue(CorrelatorWorkQueue &workQueue);
+      void        receiveSubbandSamples(CorrelatorWorkQueue &workQueue, unsigned block, unsigned subband);
 
-        private:
-            friend class CorrelatorWorkQueue;
+    private:
+      friend class CorrelatorWorkQueue;
 
-            FilterBank		    filterBank;            
-            CorrelatorPipelinePrograms programs;
+      FilterBank filterBank;
+      CorrelatorPipelinePrograms programs;
 
-            struct Performance {
-              map<string, PerformanceCounter::figures> total_counters;
-              map<string, SmartPtr<NSTimer> > total_timers;
-              Mutex totalsMutex;
+      struct Performance {
+        map<string, PerformanceCounter::figures> total_counters;
+        map<string, SmartPtr<NSTimer> > total_timers;
+        Mutex totalsMutex;
 
-              void addQueue(CorrelatorWorkQueue &queue);
-              void log(size_t nrWorkQueues);
-            } performance;
+        void addQueue(CorrelatorWorkQueue &queue);
+        void log(size_t nrWorkQueues);
+      } performance;
 
-        };
+    };
 
-    }
+  }
 }
 #endif
diff --git a/RTCP/Cobalt/GPUProc/src/Pipelines/CorrelatorPipelinePrograms.h b/RTCP/Cobalt/GPUProc/src/Pipelines/CorrelatorPipelinePrograms.h
index 929a8584a8ec1bab37b4ce689a8f77b7b3a8dda1..d260b2a0ecb03ae188f586b2e51eb3e87c14d05e 100644
--- a/RTCP/Cobalt/GPUProc/src/Pipelines/CorrelatorPipelinePrograms.h
+++ b/RTCP/Cobalt/GPUProc/src/Pipelines/CorrelatorPipelinePrograms.h
@@ -7,7 +7,7 @@
 
 namespace LOFAR
 {
-  namespace RTCP 
+  namespace RTCP
   {
     struct CorrelatorPipelinePrograms
     {
diff --git a/RTCP/Cobalt/GPUProc/src/Pipelines/UHEP_Pipeline.cc b/RTCP/Cobalt/GPUProc/src/Pipelines/UHEP_Pipeline.cc
index 98ae4bf668f1a4951859d59b8125f31a632a2fb0..f1ee7a2d8ddba7bbeab166e9a6c5cc60b1955b13 100644
--- a/RTCP/Cobalt/GPUProc/src/Pipelines/UHEP_Pipeline.cc
+++ b/RTCP/Cobalt/GPUProc/src/Pipelines/UHEP_Pipeline.cc
@@ -1,4 +1,4 @@
-#include "lofar_config.h"    
+#include "lofar_config.h"
 #define __CL_ENABLE_EXCEPTIONS
 
 #include "Common/LofarLogger.h"
@@ -12,56 +12,56 @@
 
 namespace LOFAR
 {
-    namespace RTCP 
+  namespace RTCP
+  {
+    UHEP_Pipeline::UHEP_Pipeline(const Parset &ps)
+      :
+      Pipeline(ps),
+      beamFormerCounter("beamformer", profiling),
+      transposeCounter("transpose", profiling),
+      invFFTcounter("inv. FFT", profiling),
+      invFIRfilterCounter("inv. FIR", profiling),
+      triggerCounter("trigger", profiling),
+      beamFormerWeightsCounter("BF weights", profiling),
+      samplesCounter("samples", profiling)
     {
-        UHEP_Pipeline::UHEP_Pipeline(const Parset &ps)
-            :
-        Pipeline(ps),
-            beamFormerCounter("beamformer", profiling),
-            transposeCounter("transpose", profiling),
-            invFFTcounter("inv. FFT", profiling),
-            invFIRfilterCounter("inv. FIR", profiling),
-            triggerCounter("trigger", profiling),
-            beamFormerWeightsCounter("BF weights", profiling),
-            samplesCounter("samples", profiling)
-        {
-            double startTime = omp_get_wtime();
+      double startTime = omp_get_wtime();
 
 #pragma omp parallel sections
-            {
+      {
 #pragma omp section
-                beamFormerProgram = createProgram("UHEP/BeamFormer.cl");
+        beamFormerProgram = createProgram("UHEP/BeamFormer.cl");
 #pragma omp section
-                transposeProgram = createProgram("UHEP/Transpose.cl");
+        transposeProgram = createProgram("UHEP/Transpose.cl");
 #pragma omp section
-                invFFTprogram = createProgram("UHEP/InvFFT.cl");
+        invFFTprogram = createProgram("UHEP/InvFFT.cl");
 #pragma omp section
-                invFIRfilterProgram = createProgram("UHEP/InvFIR.cl");
+        invFIRfilterProgram = createProgram("UHEP/InvFIR.cl");
 #pragma omp section
-                triggerProgram = createProgram("UHEP/Trigger.cl");
-            }
+        triggerProgram = createProgram("UHEP/Trigger.cl");
+      }
 
-            std::cout << "compile time = " << omp_get_wtime() - startTime << std::endl;
-        }
+      std::cout << "compile time = " << omp_get_wtime() - startTime << std::endl;
+    }
 
-        void UHEP_Pipeline::doWork()
-        {
-            float delaysAtBegin[ps.nrBeams()][ps.nrStations()][NR_POLARIZATIONS] __attribute__((aligned(32)));
-            float delaysAfterEnd[ps.nrBeams()][ps.nrStations()][NR_POLARIZATIONS] __attribute__((aligned(32)));
-            float phaseOffsets[ps.nrStations()][NR_POLARIZATIONS] __attribute__((aligned(32)));
+    void UHEP_Pipeline::doWork()
+    {
+      float delaysAtBegin[ps.nrBeams()][ps.nrStations()][NR_POLARIZATIONS] __attribute__((aligned(32)));
+      float delaysAfterEnd[ps.nrBeams()][ps.nrStations()][NR_POLARIZATIONS] __attribute__((aligned(32)));
+      float phaseOffsets[ps.nrStations()][NR_POLARIZATIONS] __attribute__((aligned(32)));
 
-            memset(delaysAtBegin, 0, sizeof delaysAtBegin);
-            memset(delaysAfterEnd, 0, sizeof delaysAfterEnd);
-            memset(phaseOffsets, 0, sizeof phaseOffsets);
-            delaysAtBegin[0][2][0] = 1e-6, delaysAfterEnd[0][2][0] = 1.1e-6;
+      memset(delaysAtBegin, 0, sizeof delaysAtBegin);
+      memset(delaysAfterEnd, 0, sizeof delaysAfterEnd);
+      memset(phaseOffsets, 0, sizeof phaseOffsets);
+      delaysAtBegin[0][2][0] = 1e-6, delaysAfterEnd[0][2][0] = 1.1e-6;
 
 #pragma omp parallel num_threads((profiling ? 1 : 2) * nrGPUs)
-                UHEP_WorkQueue(*this, omp_get_thread_num()% nrGPUs).doWork(&delaysAtBegin[0][0][0], &delaysAfterEnd[0][0][0], &phaseOffsets[0][0]);
-        }
+      UHEP_WorkQueue(*this, omp_get_thread_num() % nrGPUs).doWork(&delaysAtBegin[0][0][0], &delaysAfterEnd[0][0][0], &phaseOffsets[0][0]);
+    }
 
-        
 
 
-    }
+
+  }
 }
 
diff --git a/RTCP/Cobalt/GPUProc/src/Pipelines/UHEP_Pipeline.h b/RTCP/Cobalt/GPUProc/src/Pipelines/UHEP_Pipeline.h
index 33e39395340688b5387f4deaab63278baf2c61cc..f731f45989fb6471d8b652df94fe594676b13ea0 100644
--- a/RTCP/Cobalt/GPUProc/src/Pipelines/UHEP_Pipeline.h
+++ b/RTCP/Cobalt/GPUProc/src/Pipelines/UHEP_Pipeline.h
@@ -12,21 +12,21 @@
 
 namespace LOFAR
 {
-    namespace RTCP 
-    {
+  namespace RTCP
+  {
 
-        class UHEP_Pipeline : public Pipeline
-        {
-        public:
-            UHEP_Pipeline(const Parset &);
+    class UHEP_Pipeline : public Pipeline
+    {
+    public:
+      UHEP_Pipeline(const Parset &);
 
-            void		    doWork();
+      void                    doWork();
 
-            cl::Program		    beamFormerProgram, transposeProgram, invFFTprogram, invFIRfilterProgram, triggerProgram;
-            PerformanceCounter	    beamFormerCounter, transposeCounter, invFFTcounter, invFIRfilterCounter, triggerCounter;
-            PerformanceCounter	    beamFormerWeightsCounter, samplesCounter;
-        };
+      cl::Program beamFormerProgram, transposeProgram, invFFTprogram, invFIRfilterProgram, triggerProgram;
+      PerformanceCounter beamFormerCounter, transposeCounter, invFFTcounter, invFIRfilterCounter, triggerCounter;
+      PerformanceCounter beamFormerWeightsCounter, samplesCounter;
+    };
 
-    }
+  }
 }
 #endif
diff --git a/RTCP/Cobalt/GPUProc/src/RTCP_new.cc b/RTCP/Cobalt/GPUProc/src/RTCP_new.cc
index a6597549ab965edc5fd3821e9e5c5b9ce4170ef2..e9d7e6d9c4e32546212a648a6f8d0f5da3f766f3 100644
--- a/RTCP/Cobalt/GPUProc/src/RTCP_new.cc
+++ b/RTCP/Cobalt/GPUProc/src/RTCP_new.cc
@@ -62,10 +62,10 @@ Exception::TerminateHandler t(OpenCL_Support::terminate);
 
 void usage(char **argv)
 {
-    std::cerr << "usage: " << argv[0] << " parset" <<  " [-t correlator|beam|UHEP] [-p]" << std::endl;
-    std::cerr << std::endl;
-    std::cerr << "  -t: select pipeline type" << std::endl;
-    std::cerr << "  -p: enable profiling" << std::endl;
+  std::cerr << "usage: " << argv[0] << " parset" << " [-t correlator|beam|UHEP] [-p]" << std::endl;
+  std::cerr << std::endl;
+  std::cerr << "  -t: select pipeline type" << std::endl;
+  std::cerr << "  -p: enable profiling" << std::endl;
 }
 
 enum SELECTPIPELINE { correlator, beam, UHEP,unittest};
@@ -73,116 +73,116 @@ enum SELECTPIPELINE { correlator, beam, UHEP,unittest};
 // Coverts the input argument from string to a valid 'function' name
 SELECTPIPELINE to_select_pipeline(char *argument)
 {
-    if (!strcmp(argument,"correlator")) 
-        return correlator;
+  if (!strcmp(argument,"correlator"))
+    return correlator;
 
-    if (!strcmp(argument,"beam")) 
-        return beam;
+  if (!strcmp(argument,"beam"))
+    return beam;
 
-    if (!strcmp(argument,"UHEP")) 
-        return UHEP;
+  if (!strcmp(argument,"UHEP"))
+    return UHEP;
 
-    std::cout << "incorrect third argument supplied." << std::endl;
-    exit(1);
+  std::cout << "incorrect third argument supplied." << std::endl;
+  exit(1);
 }
 
 int main(int argc, char **argv)
 {
-    //Allow usage of nested omp calls
-    omp_set_nested(true);
+  //Allow usage of nested omp calls
+  omp_set_nested(true);
 
-    using namespace LOFAR::RTCP;
+  using namespace LOFAR::RTCP;
 
-    INIT_LOGGER("RTCP");
-    std::cout << "running ..." << std::endl;
+  INIT_LOGGER("RTCP");
+  std::cout << "running ..." << std::endl;
 
-    // Set parts of the environment
-    if (setenv("DISPLAY", ":0", 1) < 0)
-    {
-        perror("error setting DISPLAY");
-        exit(1);
-    }
+  // Set parts of the environment
+  if (setenv("DISPLAY", ":0", 1) < 0)
+  {
+    perror("error setting DISPLAY");
+    exit(1);
+  }
 
 #if 0 && defined __linux__
-    set_affinity(0); //something with processor affinity, define at start of rtcp
+  set_affinity(0);   //something with processor affinity, define at start of rtcp
 #endif
 
-    SELECTPIPELINE option = correlator;
-    int opt;
+  SELECTPIPELINE option = correlator;
+  int opt;
 
-    // parse all command-line options
-    while ((opt = getopt(argc, argv, "t:p")) != -1) {
-        switch (opt) {
-          case 't':
-            option = to_select_pipeline(optarg);
-            break;
+  // parse all command-line options
+  while ((opt = getopt(argc, argv, "t:p")) != -1) {
+    switch (opt) {
+    case 't':
+      option = to_select_pipeline(optarg);
+      break;
 
-          case 'p':
-            profiling = true;
-            break;
+    case 'p':
+      profiling = true;
+      break;
 
-          default: /* '?' */
-            usage(argv);
-            exit(1);
-        }
-    }
-
-    // we expect a parset filename as an additional parameter
-    if (optind >= argc) {
+    default:       /* '?' */
       usage(argv);
       exit(1);
     }
+  }
 
-        // Create a parameters set object based on the inputs
-        Parset ps(argv[optind]);
-
-        // Set the number of stations: Code is currently non functional
-        //bool set_num_stations = false;
-        //if (set_num_stations)
-        //{
-        //    const char *str = getenv("NR_STATIONS");
-        //    ps.nrStations() = str ? atoi(str) : 77;
-        //}
-        std::cout << "nr stations = " << ps.nrStations() << std::endl;        
-
-        // Select number of GPUs to run on
-
-        // Spawn the output processes (only do this once globally)
-        StorageProcesses storageProcesses(ps, "");
-
-        // use a switch to select between modes
-        switch (option)
-        {
-        case correlator:
-            std::cout << "We are in the correlator part of the code." << std::endl;
-            CorrelatorPipeline(ps).doWork();
-            break;
-
-        case beam:
-            std::cout << "We are in the beam part of the code." << std::endl;
-            BeamFormerPipeline(ps).doWork();
-            break;
-
-        case UHEP:
-            std::cout << "We are in the UHEP part of the code." << std::endl;
-            UHEP_Pipeline(ps).doWork();
-            break;
-
-        default:
-            std::cout << "None of the types matched, do nothing" << std::endl;
-        }
-
-        // COMPLETING stage
-        time_t completing_start = time(0);
-
-        // retrieve and forward final meta data
-        // TODO: Increase timeouts when FinalMetaDataGatherer starts working
-        // again
-        storageProcesses.forwardFinalMetaData(completing_start + 2);
-
-        // graceful exit
-        storageProcesses.stop(completing_start + 10);
-
-    return 0;
+  // we expect a parset filename as an additional parameter
+  if (optind >= argc) {
+    usage(argv);
+    exit(1);
+  }
+
+  // Create a parameters set object based on the inputs
+  Parset ps(argv[optind]);
+
+  // Set the number of stations: Code is currently non functional
+  //bool set_num_stations = false;
+  //if (set_num_stations)
+  //{
+  //    const char *str = getenv("NR_STATIONS");
+  //    ps.nrStations() = str ? atoi(str) : 77;
+  //}
+  std::cout << "nr stations = " << ps.nrStations() << std::endl;
+
+  // Select number of GPUs to run on
+
+  // Spawn the output processes (only do this once globally)
+  StorageProcesses storageProcesses(ps, "");
+
+  // use a switch to select between modes
+  switch (option)
+  {
+  case correlator:
+    std::cout << "We are in the correlator part of the code." << std::endl;
+    CorrelatorPipeline(ps).doWork();
+    break;
+
+  case beam:
+    std::cout << "We are in the beam part of the code." << std::endl;
+    BeamFormerPipeline(ps).doWork();
+    break;
+
+  case UHEP:
+    std::cout << "We are in the UHEP part of the code." << std::endl;
+    UHEP_Pipeline(ps).doWork();
+    break;
+
+  default:
+    std::cout << "None of the types matched, do nothing" << std::endl;
+  }
+
+  // COMPLETING stage
+  time_t completing_start = time(0);
+
+  // retrieve and forward final meta data
+  // TODO: Increase timeouts when FinalMetaDataGatherer starts working
+  // again
+  storageProcesses.forwardFinalMetaData(completing_start + 2);
+
+  // graceful exit
+  storageProcesses.stop(completing_start + 10);
+
+  return 0;
 }
 
diff --git a/RTCP/Cobalt/GPUProc/src/Scheduling.cc b/RTCP/Cobalt/GPUProc/src/Scheduling.cc
index 6541f34e495574c7c4de1a64bd01e2d62d5fe96f..608182c9bf4e82fe2cd55e89d2618e12ff6c0063 100644
--- a/RTCP/Cobalt/GPUProc/src/Scheduling.cc
+++ b/RTCP/Cobalt/GPUProc/src/Scheduling.cc
@@ -34,52 +34,54 @@
 #include <sched.h>
 
 
-namespace LOFAR {
-namespace RTCP {
-
-void doNotRunOnCore0()
+namespace LOFAR
 {
-  cpu_set_t cpu_set;
+  namespace RTCP
+  {
 
-  CPU_ZERO(&cpu_set);
+    void doNotRunOnCore0()
+    {
+      cpu_set_t cpu_set;
 
-  for (unsigned cpu = 1; cpu < 4; cpu ++)
-    CPU_SET(cpu, &cpu_set);
+      CPU_ZERO(&cpu_set);
 
-  if (sched_setaffinity(0, sizeof cpu_set, &cpu_set) != 0) {
-    LOG_WARN("sched_setaffinity failed");
-    perror("sched_setaffinity");
-  }
-}
+      for (unsigned cpu = 1; cpu < 4; cpu++)
+        CPU_SET(cpu, &cpu_set);
 
+      if (sched_setaffinity(0, sizeof cpu_set, &cpu_set) != 0) {
+        LOG_WARN("sched_setaffinity failed");
+        perror("sched_setaffinity");
+      }
+    }
 
-void runOnCore0()
-{
-  cpu_set_t cpu_set;
 
-  CPU_ZERO(&cpu_set);
-  CPU_SET(0, &cpu_set);
+    void runOnCore0()
+    {
+      cpu_set_t cpu_set;
 
-  if (sched_setaffinity(0, sizeof cpu_set, &cpu_set) != 0) {
-    LOG_WARN("sched_setaffinity failed");
-    perror("sched_setaffinity");
-  }
-}
+      CPU_ZERO(&cpu_set);
+      CPU_SET(0, &cpu_set);
 
+      if (sched_setaffinity(0, sizeof cpu_set, &cpu_set) != 0) {
+        LOG_WARN("sched_setaffinity failed");
+        perror("sched_setaffinity");
+      }
+    }
 
-void setPriority(unsigned priority)
-{
-  // priority 0: non-real time
-  // priority 1-99: real time
-  struct sched_param sched_param;
 
-  sched_param.sched_priority = priority;
+    void setPriority(unsigned priority)
+    {
+      // priority 0: non-real time
+      // priority 1-99: real time
+      struct sched_param sched_param;
+
+      sched_param.sched_priority = priority;
 
-  if (pthread_setschedparam(pthread_self(), priority ? SCHED_RR : SCHED_OTHER, &sched_param) < 0)
-    perror("pthread_setschedparam");
-}
+      if (pthread_setschedparam(pthread_self(), priority ? SCHED_RR : SCHED_OTHER, &sched_param) < 0)
+        perror("pthread_setschedparam");
+    }
 
-} // namespace RTCP
+  } // namespace RTCP
 } // namespace LOFAR
 
 #endif
diff --git a/RTCP/Cobalt/GPUProc/src/Scheduling.h b/RTCP/Cobalt/GPUProc/src/Scheduling.h
index ee42981e5ccaeea7861538252153b6fae55eea7a..30511c32723975d695ec2e19d3af0f383e323afa 100644
--- a/RTCP/Cobalt/GPUProc/src/Scheduling.h
+++ b/RTCP/Cobalt/GPUProc/src/Scheduling.h
@@ -25,20 +25,22 @@
 
 //# Never #include <config.h> or #include <lofar_config.h> in a header file!
 
-namespace LOFAR {
-namespace RTCP {
+namespace LOFAR
+{
+  namespace RTCP
+  {
 
 #if defined HAVE_BGP_ION
-// Core 0 handles all ethernet and tree interrupts.  Do not run time-critical
-// threads on this core.
-extern void doNotRunOnCore0();
-extern void runOnCore0();
+    // Core 0 handles all ethernet and tree interrupts.  Do not run time-critical
+    // threads on this core.
+    extern void doNotRunOnCore0();
+    extern void runOnCore0();
 
-// set thread priority. 0 = normal, 1 - 99 = real time
-extern void setPriority(unsigned priority);
+    // set thread priority. 0 = normal, 1 - 99 = real time
+    extern void setPriority(unsigned priority);
 #endif
 
-} // namespace RTCP
+  } // namespace RTCP
 } // namespace LOFAR
 
 #endif
diff --git a/RTCP/Cobalt/GPUProc/src/SlidingPointer.h b/RTCP/Cobalt/GPUProc/src/SlidingPointer.h
index 875d73a9ffa0f7bc8fe0cda7286ef2901a7f9d0f..611516286b06e5d4d08616c68d7be89b631c2e41 100644
--- a/RTCP/Cobalt/GPUProc/src/SlidingPointer.h
+++ b/RTCP/Cobalt/GPUProc/src/SlidingPointer.h
@@ -30,74 +30,87 @@
 #include <set>
 
 
-namespace LOFAR {
-namespace RTCP {
-
-
-template <typename T> class SlidingPointer
+namespace LOFAR
 {
-  public:
-	 SlidingPointer(T = 0);
-   SlidingPointer(const SlidingPointer &other);
-
-    void advanceTo(T);
-    void waitFor(T);
-
-  private:
-    struct WaitCondition {
-      WaitCondition(T value, std::set<WaitCondition *> &set) : value(value), set(set) { set.insert(this); }
-      ~WaitCondition() { set.erase(this); }
-
-      T	        value;
-      Condition valueReached;
-      std::set<WaitCondition *> &set;
+  namespace RTCP
+  {
+
+
+    template <typename T>
+    class SlidingPointer
+    {
+    public:
+      SlidingPointer(T = 0);
+      SlidingPointer(const SlidingPointer &other);
+
+      void advanceTo(T);
+      void waitFor(T);
+
+    private:
+      struct WaitCondition {
+        WaitCondition(T value, std::set<WaitCondition *> &set) : value(value), set(set)
+        {
+          set.insert(this);
+        }
+        ~WaitCondition()
+        {
+          set.erase(this);
+        }
+
+        T value;
+        Condition valueReached;
+        std::set<WaitCondition *> &set;
+      };
+
+      T itsValue;
+      Mutex itsMutex;
+      std::set<WaitCondition *> itsWaitList;
     };
 
-    T			      itsValue;
-    Mutex		      itsMutex;
-    std::set<WaitCondition *> itsWaitList;
-};
 
+    template <typename T>
+    inline SlidingPointer<T>::SlidingPointer(T value)
+      :
+      itsValue(value)
+    {
+    }
 
-template <typename T> inline SlidingPointer<T>::SlidingPointer(T value)
-:
-  itsValue(value)
-{
-}
 
+    template <typename T>
+    inline SlidingPointer<T>::SlidingPointer(const SlidingPointer &other)
+      :
+      itsValue(other.itsValue)
+    {
+    }
 
-template <typename T> inline SlidingPointer<T>::SlidingPointer(const SlidingPointer &other)
-:
-  itsValue(other.itsValue)
-{
-}
 
+    template <typename T>
+    inline void SlidingPointer<T>::advanceTo(T value)
+    {
+      ScopedLock lock(itsMutex);
 
-template <typename T> inline void SlidingPointer<T>::advanceTo(T value)
-{
-  ScopedLock lock(itsMutex);
+      if (value > itsValue) {
+        itsValue = value;
 
-  if (value > itsValue) {
-    itsValue = value;
+        for (typename std::set<WaitCondition *>::iterator it = itsWaitList.begin(); it != itsWaitList.end(); it++)
+          if (value >= (*it)->value)
+            (*it)->valueReached.signal();
+      }
+    }
 
-    for (typename std::set<WaitCondition *>::iterator it = itsWaitList.begin(); it != itsWaitList.end(); it ++)
-      if (value >= (*it)->value)
-	(*it)->valueReached.signal();
-  }
-}
 
+    template <typename T>
+    inline void SlidingPointer<T>::waitFor(T value)
+    {
+      ScopedLock lock(itsMutex);
 
-template <typename T> inline void SlidingPointer<T>::waitFor(T value)
-{
-  ScopedLock lock(itsMutex);
-
-  while (itsValue < value) {
-    WaitCondition waitCondition(value, itsWaitList);
-    waitCondition.valueReached.wait(itsMutex);
-  }
-}
+      while (itsValue < value) {
+        WaitCondition waitCondition(value, itsWaitList);
+        waitCondition.valueReached.wait(itsMutex);
+      }
+    }
 
-} // namespace RTCP
+  } // namespace RTCP
 } // namespace LOFAR
 
 #endif
diff --git a/RTCP/Cobalt/GPUProc/src/Storage/SSH.cc b/RTCP/Cobalt/GPUProc/src/Storage/SSH.cc
index 5abac2fc14547896854b6ce275d2b8c07554900b..ec12d99a849f0bfca8e224e0670e782b15f1ca11 100644
--- a/RTCP/Cobalt/GPUProc/src/Storage/SSH.cc
+++ b/RTCP/Cobalt/GPUProc/src/Storage/SSH.cc
@@ -45,739 +45,793 @@
 
 using namespace std;
 
-namespace LOFAR {
-namespace RTCP {
+namespace LOFAR
+{
+  namespace RTCP
+  {
 
 #ifndef HAVE_LOG4COUT
-Mutex coutMutex;
+    Mutex coutMutex;
 #endif
 
-// Prevent export of free_session and free_channel. They
-// cannot be made static as they are needed as a template
-// parameter.
-namespace {
+    // Prevent export of free_session and free_channel. They
+    // cannot be made static as they are needed as a template
+    // parameter.
+    namespace
+    {
 
-// free a LIBSSH2_SESSION object
-void free_session( LIBSSH2_SESSION *session )
-{
-  ScopedDelayCancellation dc;
+      // free a LIBSSH2_SESSION object
+      void free_session( LIBSSH2_SESSION *session )
+      {
+        ScopedDelayCancellation dc;
 
-  if (!session)
-    return;
+        if (!session)
+          return;
 
-  libssh2_session_free(session);
-}
+        libssh2_session_free(session);
+      }
 
-// free a LIBSSH2_CHANNEL object
-void free_channel( LIBSSH2_CHANNEL *channel )
-{
-  ScopedDelayCancellation dc;
+      // free a LIBSSH2_CHANNEL object
+      void free_channel( LIBSSH2_CHANNEL *channel )
+      {
+        ScopedDelayCancellation dc;
 
-  if (!channel)
-    return;
+        if (!channel)
+          return;
+
+        libssh2_channel_free(channel);
+      }
 
-  libssh2_channel_free(channel);
-}
+      typedef SmartPtr<LIBSSH2_SESSION, SmartPtrFreeFunc<LIBSSH2_SESSION, free_session> > session_t;
+      typedef SmartPtr<LIBSSH2_CHANNEL, SmartPtrFreeFunc<LIBSSH2_CHANNEL, free_channel> > channel_t;
 
-typedef SmartPtr<LIBSSH2_SESSION, SmartPtrFreeFunc<LIBSSH2_SESSION, free_session> > session_t;
-typedef SmartPtr<LIBSSH2_CHANNEL, SmartPtrFreeFunc<LIBSSH2_CHANNEL, free_channel> > channel_t;
+    }
 
-}
 
+    // Convert an SSH exit status to a string
+    static const char *explainExitStatus( int exitstatus )
+    {
+      const char *explanation;
 
-// Convert an SSH exit status to a string
-static const char *explainExitStatus( int exitstatus )
-{
-  const char *explanation;
-
-  switch (exitstatus) {
-    default:
-      explanation = "??";
-      break;
-
-    case 255:
-      explanation = "Network or authentication error";
-      break;
-    case 127:
-      explanation = "BASH: command/library not found";
-      break;
-    case 126:
-      explanation = "BASH: command found but could not be executed (wrong architecture?)";
-      break;
-
-    case 128 + SIGHUP:
-      explanation = "killed by SIGHUP";
-      break;
-    case 128 + SIGINT:
-      explanation = "killed by SIGINT (Ctrl-C)";
-      break;
-    case 128 + SIGQUIT:
-      explanation = "killed by SIGQUIT";
-      break;
-    case 128 + SIGILL:
-      explanation = "illegal instruction";
-      break;
-    case 128 + SIGABRT:
-      explanation = "killed by SIGABRT";
-      break;
-    case 128 + SIGKILL:
-      explanation = "killed by SIGKILL";
-      break;
-    case 128 + SIGSEGV:
-      explanation = "segmentation fault";
-      break;
-    case 128 + SIGPIPE:
-      explanation = "broken pipe";
-      break;
-    case 128 + SIGALRM:
-      explanation = "killed by SIGALRM";
-      break;
-    case 128 + SIGTERM:
-      explanation = "killed by SIGTERM";
-      break;
-  }
-
-  return explanation;
-}
-
-
-// Convert a LibSSH2 error code to a string
-static string explainLibSSH2Error( LIBSSH2_SESSION *session, int error )
-{
-  string error_str;
+      switch (exitstatus) {
+      default:
+        explanation = "??";
+        break;
+
+      case 255:
+        explanation = "Network or authentication error";
+        break;
+      case 127:
+        explanation = "BASH: command/library not found";
+        break;
+      case 126:
+        explanation = "BASH: command found but could not be executed (wrong architecture?)";
+        break;
+
+      case 128 + SIGHUP:
+        explanation = "killed by SIGHUP";
+        break;
+      case 128 + SIGINT:
+        explanation = "killed by SIGINT (Ctrl-C)";
+        break;
+      case 128 + SIGQUIT:
+        explanation = "killed by SIGQUIT";
+        break;
+      case 128 + SIGILL:
+        explanation = "illegal instruction";
+        break;
+      case 128 + SIGABRT:
+        explanation = "killed by SIGABRT";
+        break;
+      case 128 + SIGKILL:
+        explanation = "killed by SIGKILL";
+        break;
+      case 128 + SIGSEGV:
+        explanation = "segmentation fault";
+        break;
+      case 128 + SIGPIPE:
+        explanation = "broken pipe";
+        break;
+      case 128 + SIGALRM:
+        explanation = "killed by SIGALRM";
+        break;
+      case 128 + SIGTERM:
+        explanation = "killed by SIGTERM";
+        break;
+      }
+
+      return explanation;
+    }
+
+
+    // Convert a LibSSH2 error code to a string
+    static string explainLibSSH2Error( LIBSSH2_SESSION *session, int error )
+    {
+      string error_str;
 
-  // convert error code
-  switch(error) {
-    default:
-      error_str = "??";
-      break;
+      // convert error code
+      switch(error) {
+      default:
+        error_str = "??";
+        break;
 
-      case LIBSSH2_ERROR_NONE:			        error_str = "LIBSSH2_ERROR_NONE"; break;
-      case LIBSSH2_ERROR_SOCKET_NONE:			error_str = "LIBSSH2_ERROR_SOCKET_NONE"; break;
+      case LIBSSH2_ERROR_NONE:                          error_str = "LIBSSH2_ERROR_NONE";
+        break;
+      case LIBSSH2_ERROR_SOCKET_NONE:                   error_str = "LIBSSH2_ERROR_SOCKET_NONE";
+        break;
 #if LIBSSH2_VERSION_NUM > 0x010207
-      case LIBSSH2_ERROR_BANNER_RECV:			error_str = "LIBSSH2_ERROR_BANNER_RECV"; break;
+      case LIBSSH2_ERROR_BANNER_RECV:                   error_str = "LIBSSH2_ERROR_BANNER_RECV";
+        break;
 #else
-      case LIBSSH2_ERROR_BANNER_NONE:			error_str = "LIBSSH2_ERROR_BANNER_NONE"; break;
+      case LIBSSH2_ERROR_BANNER_NONE:                   error_str = "LIBSSH2_ERROR_BANNER_NONE";
+        break;
 #endif
-      case LIBSSH2_ERROR_BANNER_SEND:			error_str = "LIBSSH2_ERROR_BANNER_SEND"; break;
-      case LIBSSH2_ERROR_INVALID_MAC:			error_str = "LIBSSH2_ERROR_INVALID_MAC"; break;
-      case LIBSSH2_ERROR_KEX_FAILURE:			error_str = "LIBSSH2_ERROR_KEX_FAILURE"; break;
-      case LIBSSH2_ERROR_ALLOC:			        error_str = "LIBSSH2_ERROR_ALLOC"; break;
-      case LIBSSH2_ERROR_SOCKET_SEND:			error_str = "LIBSSH2_ERROR_SOCKET_SEND"; break;
-      case LIBSSH2_ERROR_KEY_EXCHANGE_FAILURE:		error_str = "LIBSSH2_ERROR_KEY_EXCHANGE_FAILURE"; break;
-      case LIBSSH2_ERROR_TIMEOUT:			error_str = "LIBSSH2_ERROR_TIMEOUT"; break;
-      case LIBSSH2_ERROR_HOSTKEY_INIT:			error_str = "LIBSSH2_ERROR_HOSTKEY_INIT"; break;
-      case LIBSSH2_ERROR_HOSTKEY_SIGN:			error_str = "LIBSSH2_ERROR_HOSTKEY_SIGN"; break;
-      case LIBSSH2_ERROR_DECRYPT:			error_str = "LIBSSH2_ERROR_DECRYPT"; break;
-      case LIBSSH2_ERROR_SOCKET_DISCONNECT:		error_str = "LIBSSH2_ERROR_SOCKET_DISCONNECT"; break;
-      case LIBSSH2_ERROR_PROTO:			        error_str = "LIBSSH2_ERROR_PROTO"; break;
-      case LIBSSH2_ERROR_PASSWORD_EXPIRED:		error_str = "LIBSSH2_ERROR_PASSWORD_EXPIRED"; break;
-      case LIBSSH2_ERROR_FILE:			        error_str = "LIBSSH2_ERROR_FILE"; break;
-      case LIBSSH2_ERROR_METHOD_NONE:			error_str = "LIBSSH2_ERROR_METHOD_NONE"; break;
-      case LIBSSH2_ERROR_AUTHENTICATION_FAILED:		error_str = "LIBSSH2_ERROR_AUTHENTICATION_FAILED"; break;
+      case LIBSSH2_ERROR_BANNER_SEND:                   error_str = "LIBSSH2_ERROR_BANNER_SEND";
+        break;
+      case LIBSSH2_ERROR_INVALID_MAC:                   error_str = "LIBSSH2_ERROR_INVALID_MAC";
+        break;
+      case LIBSSH2_ERROR_KEX_FAILURE:                   error_str = "LIBSSH2_ERROR_KEX_FAILURE";
+        break;
+      case LIBSSH2_ERROR_ALLOC:                         error_str = "LIBSSH2_ERROR_ALLOC";
+        break;
+      case LIBSSH2_ERROR_SOCKET_SEND:                   error_str = "LIBSSH2_ERROR_SOCKET_SEND";
+        break;
+      case LIBSSH2_ERROR_KEY_EXCHANGE_FAILURE:          error_str = "LIBSSH2_ERROR_KEY_EXCHANGE_FAILURE";
+        break;
+      case LIBSSH2_ERROR_TIMEOUT:                       error_str = "LIBSSH2_ERROR_TIMEOUT";
+        break;
+      case LIBSSH2_ERROR_HOSTKEY_INIT:                  error_str = "LIBSSH2_ERROR_HOSTKEY_INIT";
+        break;
+      case LIBSSH2_ERROR_HOSTKEY_SIGN:                  error_str = "LIBSSH2_ERROR_HOSTKEY_SIGN";
+        break;
+      case LIBSSH2_ERROR_DECRYPT:                       error_str = "LIBSSH2_ERROR_DECRYPT";
+        break;
+      case LIBSSH2_ERROR_SOCKET_DISCONNECT:             error_str = "LIBSSH2_ERROR_SOCKET_DISCONNECT";
+        break;
+      case LIBSSH2_ERROR_PROTO:                         error_str = "LIBSSH2_ERROR_PROTO";
+        break;
+      case LIBSSH2_ERROR_PASSWORD_EXPIRED:              error_str = "LIBSSH2_ERROR_PASSWORD_EXPIRED";
+        break;
+      case LIBSSH2_ERROR_FILE:                          error_str = "LIBSSH2_ERROR_FILE";
+        break;
+      case LIBSSH2_ERROR_METHOD_NONE:                   error_str = "LIBSSH2_ERROR_METHOD_NONE";
+        break;
+      case LIBSSH2_ERROR_AUTHENTICATION_FAILED:         error_str = "LIBSSH2_ERROR_AUTHENTICATION_FAILED";
+        break;
       //case LIBSSH2_ERROR_PUBLICKEY_UNRECOGNIZED:	error_str = "LIBSSH2_ERROR_PUBLICKEY_UNRECOGNIZED"; break;
-      case LIBSSH2_ERROR_PUBLICKEY_UNVERIFIED:		error_str = "LIBSSH2_ERROR_PUBLICKEY_UNVERIFIED"; break;
-      case LIBSSH2_ERROR_CHANNEL_OUTOFORDER:		error_str = "LIBSSH2_ERROR_CHANNEL_OUTOFORDER"; break;
-      case LIBSSH2_ERROR_CHANNEL_FAILURE:		error_str = "LIBSSH2_ERROR_CHANNEL_FAILURE"; break;
-      case LIBSSH2_ERROR_CHANNEL_REQUEST_DENIED:	error_str = "LIBSSH2_ERROR_CHANNEL_REQUEST_DENIED"; break;
-      case LIBSSH2_ERROR_CHANNEL_UNKNOWN:		error_str = "LIBSSH2_ERROR_CHANNEL_UNKNOWN"; break;
-      case LIBSSH2_ERROR_CHANNEL_WINDOW_EXCEEDED:	error_str = "LIBSSH2_ERROR_CHANNEL_WINDOW_EXCEEDED"; break;
-      case LIBSSH2_ERROR_CHANNEL_PACKET_EXCEEDED:	error_str = "LIBSSH2_ERROR_CHANNEL_PACKET_EXCEEDED"; break;
-      case LIBSSH2_ERROR_CHANNEL_CLOSED:		error_str = "LIBSSH2_ERROR_CHANNEL_CLOSED"; break;
-      case LIBSSH2_ERROR_CHANNEL_EOF_SENT:		error_str = "LIBSSH2_ERROR_CHANNEL_EOF_SENT"; break;
-      case LIBSSH2_ERROR_SCP_PROTOCOL:			error_str = "LIBSSH2_ERROR_SCP_PROTOCOL"; break;
-      case LIBSSH2_ERROR_ZLIB:			        error_str = "LIBSSH2_ERROR_ZLIB"; break;
-      case LIBSSH2_ERROR_SOCKET_TIMEOUT:		error_str = "LIBSSH2_ERROR_SOCKET_TIMEOUT"; break;
-      case LIBSSH2_ERROR_SFTP_PROTOCOL:			error_str = "LIBSSH2_ERROR_SFTP_PROTOCOL"; break;
-      case LIBSSH2_ERROR_REQUEST_DENIED:		error_str = "LIBSSH2_ERROR_REQUEST_DENIED"; break;
-      case LIBSSH2_ERROR_METHOD_NOT_SUPPORTED:		error_str = "LIBSSH2_ERROR_METHOD_NOT_SUPPORTED"; break;
-      case LIBSSH2_ERROR_INVAL:			        error_str = "LIBSSH2_ERROR_INVAL"; break;
-      case LIBSSH2_ERROR_INVALID_POLL_TYPE:		error_str = "LIBSSH2_ERROR_INVALID_POLL_TYPE"; break;
-      case LIBSSH2_ERROR_PUBLICKEY_PROTOCOL:		error_str = "LIBSSH2_ERROR_PUBLICKEY_PROTOCOL"; break;
-      case LIBSSH2_ERROR_EAGAIN:			error_str = "LIBSSH2_ERROR_EAGAIN"; break;
-      case LIBSSH2_ERROR_BUFFER_TOO_SMALL:		error_str = "LIBSSH2_ERROR_BUFFER_TOO_SMALL"; break;
-      case LIBSSH2_ERROR_BAD_USE:			error_str = "LIBSSH2_ERROR_BAD_USE"; break;
-      case LIBSSH2_ERROR_COMPRESS:			error_str = "LIBSSH2_ERROR_COMPRESS"; break;
-      case LIBSSH2_ERROR_OUT_OF_BOUNDARY:		error_str = "LIBSSH2_ERROR_OUT_OF_BOUNDARY"; break;
-      case LIBSSH2_ERROR_AGENT_PROTOCOL:		error_str = "LIBSSH2_ERROR_AGENT_PROTOCOL"; break;
-      case LIBSSH2_ERROR_SOCKET_RECV:			error_str = "LIBSSH2_ERROR_SOCKET_RECV"; break;
-      case LIBSSH2_ERROR_ENCRYPT:			error_str = "LIBSSH2_ERROR_ENCRYPT"; break;
-      case LIBSSH2_ERROR_BAD_SOCKET:			error_str = "LIBSSH2_ERROR_BAD_SOCKET"; break;
-//      case LIBSSH2_ERROR_KNOWN_HOSTS:			error_str = "LIBSSH2_ERROR_KNOWN_HOSTS"; break;
-  }
-
-  // ask libssh2 for more info
-  if (session) {
-    char *errormsg = NULL;
-
-    libssh2_session_last_error(session, &errormsg, NULL, 0);
-
-    return error_str + ": " + errormsg;
-  }
-
-  return error_str;
-}
-
-/*
- * Make sure we ScopedDelayCancellation around calls to libssh2 because
- * it is an external library.
- *
- * Note that waitsocket() is a forced cancellation point.
- */
-
-SSHconnection::SSHconnection(const string &logPrefix, const string &hostname, const string &commandline, const string &username, const string &pubkey, const string &privkey, bool captureStdout)
-:
-  itsLogPrefix(logPrefix),
-  itsHostName(hostname),
-  itsCommandLine(commandline),
-  itsUserName(username),
-  itsPublicKey(pubkey),
-  itsPrivateKey(privkey),
-  itsConnected(false),
-  itsCaptureStdout(captureStdout)
-{
-}
+      case LIBSSH2_ERROR_PUBLICKEY_UNVERIFIED:          error_str = "LIBSSH2_ERROR_PUBLICKEY_UNVERIFIED";
+        break;
+      case LIBSSH2_ERROR_CHANNEL_OUTOFORDER:            error_str = "LIBSSH2_ERROR_CHANNEL_OUTOFORDER";
+        break;
+      case LIBSSH2_ERROR_CHANNEL_FAILURE:               error_str = "LIBSSH2_ERROR_CHANNEL_FAILURE";
+        break;
+      case LIBSSH2_ERROR_CHANNEL_REQUEST_DENIED:        error_str = "LIBSSH2_ERROR_CHANNEL_REQUEST_DENIED";
+        break;
+      case LIBSSH2_ERROR_CHANNEL_UNKNOWN:               error_str = "LIBSSH2_ERROR_CHANNEL_UNKNOWN";
+        break;
+      case LIBSSH2_ERROR_CHANNEL_WINDOW_EXCEEDED:       error_str = "LIBSSH2_ERROR_CHANNEL_WINDOW_EXCEEDED";
+        break;
+      case LIBSSH2_ERROR_CHANNEL_PACKET_EXCEEDED:       error_str = "LIBSSH2_ERROR_CHANNEL_PACKET_EXCEEDED";
+        break;
+      case LIBSSH2_ERROR_CHANNEL_CLOSED:                error_str = "LIBSSH2_ERROR_CHANNEL_CLOSED";
+        break;
+      case LIBSSH2_ERROR_CHANNEL_EOF_SENT:              error_str = "LIBSSH2_ERROR_CHANNEL_EOF_SENT";
+        break;
+      case LIBSSH2_ERROR_SCP_PROTOCOL:                  error_str = "LIBSSH2_ERROR_SCP_PROTOCOL";
+        break;
+      case LIBSSH2_ERROR_ZLIB:                          error_str = "LIBSSH2_ERROR_ZLIB";
+        break;
+      case LIBSSH2_ERROR_SOCKET_TIMEOUT:                error_str = "LIBSSH2_ERROR_SOCKET_TIMEOUT";
+        break;
+      case LIBSSH2_ERROR_SFTP_PROTOCOL:                 error_str = "LIBSSH2_ERROR_SFTP_PROTOCOL";
+        break;
+      case LIBSSH2_ERROR_REQUEST_DENIED:                error_str = "LIBSSH2_ERROR_REQUEST_DENIED";
+        break;
+      case LIBSSH2_ERROR_METHOD_NOT_SUPPORTED:          error_str = "LIBSSH2_ERROR_METHOD_NOT_SUPPORTED";
+        break;
+      case LIBSSH2_ERROR_INVAL:                         error_str = "LIBSSH2_ERROR_INVAL";
+        break;
+      case LIBSSH2_ERROR_INVALID_POLL_TYPE:             error_str = "LIBSSH2_ERROR_INVALID_POLL_TYPE";
+        break;
+      case LIBSSH2_ERROR_PUBLICKEY_PROTOCOL:            error_str = "LIBSSH2_ERROR_PUBLICKEY_PROTOCOL";
+        break;
+      case LIBSSH2_ERROR_EAGAIN:                        error_str = "LIBSSH2_ERROR_EAGAIN";
+        break;
+      case LIBSSH2_ERROR_BUFFER_TOO_SMALL:              error_str = "LIBSSH2_ERROR_BUFFER_TOO_SMALL";
+        break;
+      case LIBSSH2_ERROR_BAD_USE:                       error_str = "LIBSSH2_ERROR_BAD_USE";
+        break;
+      case LIBSSH2_ERROR_COMPRESS:                      error_str = "LIBSSH2_ERROR_COMPRESS";
+        break;
+      case LIBSSH2_ERROR_OUT_OF_BOUNDARY:               error_str = "LIBSSH2_ERROR_OUT_OF_BOUNDARY";
+        break;
+      case LIBSSH2_ERROR_AGENT_PROTOCOL:                error_str = "LIBSSH2_ERROR_AGENT_PROTOCOL";
+        break;
+      case LIBSSH2_ERROR_SOCKET_RECV:                   error_str = "LIBSSH2_ERROR_SOCKET_RECV";
+        break;
+      case LIBSSH2_ERROR_ENCRYPT:                       error_str = "LIBSSH2_ERROR_ENCRYPT";
+        break;
+      case LIBSSH2_ERROR_BAD_SOCKET:                    error_str = "LIBSSH2_ERROR_BAD_SOCKET";
+        break;
+        //      case LIBSSH2_ERROR_KNOWN_HOSTS:			error_str = "LIBSSH2_ERROR_KNOWN_HOSTS"; break;
+      }
 
+      // ask libssh2 for more info
+      if (session) {
+        char *errormsg = NULL;
 
-SSHconnection::~SSHconnection()
-{
-  if (itsThread.get())
-    cancel();
-}
+        libssh2_session_last_error(session, &errormsg, NULL, 0);
 
+        return error_str + ": " + errormsg;
+      }
 
-void SSHconnection::start()
-{
-  itsThread = new Thread(this, &SSHconnection::commThread, itsLogPrefix + "[SSH Thread] ", 65536);
-}
+      return error_str;
+    }
 
+    /*
+     * Make sure we ScopedDelayCancellation around calls to libssh2 because
+     * it is an external library.
+     *
+     * Note that waitsocket() is a forced cancellation point.
+     */
+
+    SSHconnection::SSHconnection(const string &logPrefix, const string &hostname, const string &commandline, const string &username, const string &pubkey, const string &privkey, bool captureStdout)
+      :
+      itsLogPrefix(logPrefix),
+      itsHostName(hostname),
+      itsCommandLine(commandline),
+      itsUserName(username),
+      itsPublicKey(pubkey),
+      itsPrivateKey(privkey),
+      itsConnected(false),
+      itsCaptureStdout(captureStdout)
+    {
+    }
 
-bool SSHconnection::isDone()
-{
-  return itsThread && itsThread->isDone();
-}
 
+    SSHconnection::~SSHconnection()
+    {
+      if (itsThread.get())
+        cancel();
+    }
 
-bool SSHconnection::connected() const
-{
-  return itsConnected;
-}
 
+    void SSHconnection::start()
+    {
+      itsThread = new Thread(this, &SSHconnection::commThread, itsLogPrefix + "[SSH Thread] ", 65536);
+    }
 
-void SSHconnection::cancel()
-{
-  ASSERT(itsThread.get());
 
-  itsThread->cancel();
+    bool SSHconnection::isDone()
+    {
+      return itsThread && itsThread->isDone();
+    }
 
-  itsThread->wait();
-}
 
+    bool SSHconnection::connected() const
+    {
+      return itsConnected;
+    }
 
-void SSHconnection::wait()
-{
-  ASSERT(itsThread.get());
 
-  itsThread->wait();
-}
+    void SSHconnection::cancel()
+    {
+      ASSERT(itsThread.get());
 
+      itsThread->cancel();
 
-void SSHconnection::wait( const struct timespec &deadline )
-{
-  ASSERT(itsThread.get());
+      itsThread->wait();
+    }
 
-  if (!itsThread->wait(deadline)) {
-    itsThread->cancel();
 
-    itsThread->wait();
-  }
-}
+    void SSHconnection::wait()
+    {
+      ASSERT(itsThread.get());
 
+      itsThread->wait();
+    }
 
-std::string SSHconnection::stdoutBuffer() const
-{
-  return itsStdoutBuffer.str();
-}
 
-LIBSSH2_SESSION *SSHconnection::open_session( FileDescriptorBasedStream &sock )
-{
-  ScopedDelayCancellation dc;
+    void SSHconnection::wait( const struct timespec &deadline )
+    {
+      ASSERT(itsThread.get());
 
-  int rc;
+      if (!itsThread->wait(deadline)) {
+        itsThread->cancel();
 
-  /* Create a session instance */
-  session_t session = libssh2_session_init();
-  if (!session.get()) {
-    LOG_ERROR_STR( itsLogPrefix << "Cannot create SSH session object" );
-    return 0;
-  }
+        itsThread->wait();
+      }
+    }
+
+
+    std::string SSHconnection::stdoutBuffer() const
+    {
+      return itsStdoutBuffer.str();
+    }
+
+    LIBSSH2_SESSION *SSHconnection::open_session( FileDescriptorBasedStream &sock )
+    {
+      ScopedDelayCancellation dc;
 
-  /* tell libssh2 we want it all done non-blocking */
-  libssh2_session_set_blocking(session, 0);
+      int rc;
 
-  /* ... start it up. This will trade welcome banners, exchange keys,
-   * and setup crypto, compression, and MAC layers
-   */
+      /* Create a session instance */
+      session_t session = libssh2_session_init();
+      if (!session.get()) {
+        LOG_ERROR_STR( itsLogPrefix << "Cannot create SSH session object" );
+        return 0;
+      }
+
+      /* tell libssh2 we want it all done non-blocking */
+      libssh2_session_set_blocking(session, 0);
+
+      /* ... start it up. This will trade welcome banners, exchange keys,
+       * and setup crypto, compression, and MAC layers
+       */
 #if LIBSSH2_VERSION_NUM >= 0x010208
-  while ((rc = libssh2_session_handshake(session, sock.fd)) ==
-         LIBSSH2_ERROR_EAGAIN) {
-    waitsocket(session, sock);
-  }
+      while ((rc = libssh2_session_handshake(session, sock.fd)) ==
+             LIBSSH2_ERROR_EAGAIN) {
+        waitsocket(session, sock);
+      }
 #else
-  while ((rc = libssh2_session_startup(session, sock.fd)) ==
-         LIBSSH2_ERROR_EAGAIN) {
-    waitsocket(session, sock);
-  }
+      while ((rc = libssh2_session_startup(session, sock.fd)) ==
+             LIBSSH2_ERROR_EAGAIN) {
+        waitsocket(session, sock);
+      }
 #endif
 
-  /* NOTE: libssh2 now holds a copy of sock.fd, so don't invalidate it! */
-
-  if (rc) {
-    LOG_ERROR_STR( itsLogPrefix << "Failure establishing SSH session: " << rc << " (" << explainLibSSH2Error(session, rc) << ")");
-    return NULL;
-  }
-
-  /* Authenticate by public and/or private key */
-  while ((rc = libssh2_userauth_publickey_fromfile(session,
-                      itsUserName.c_str(),     // remote username
-                      itsPublicKey == "" ? NULL : itsPublicKey.c_str(),    // public key filename
-                      itsPrivateKey == "" ? NULL : itsPrivateKey.c_str(),   // private key filename
-                      NULL                     // password
-                      )) ==
-         LIBSSH2_ERROR_EAGAIN) {
-    waitsocket(session, sock);
-  }
-
-  if (rc) {
-    LOG_ERROR_STR( itsLogPrefix << "Authentication for user '" << itsUserName << "' by public/private keys '" << itsPublicKey << "'/'" << itsPrivateKey << "' failed: " << rc << " (" << explainLibSSH2Error(session, rc) << ")");
-    return NULL;
-  }
-
-  return session.release();
-}
-
-void SSHconnection::close_session( LIBSSH2_SESSION *session, FileDescriptorBasedStream &sock )
-{
-  ScopedDelayCancellation dc;
+      /* NOTE: libssh2 now holds a copy of sock.fd, so don't invalidate it! */
 
-  int rc;
+      if (rc) {
+        LOG_ERROR_STR( itsLogPrefix << "Failure establishing SSH session: " << rc << " (" << explainLibSSH2Error(session, rc) << ")");
+        return NULL;
+      }
 
-  while ((rc = libssh2_session_disconnect(session, "Normal Shutdown, Thank you for playing")) ==
-         LIBSSH2_ERROR_EAGAIN) {
-    waitsocket(session, sock);
-  }
+      /* Authenticate by public and/or private key */
+      while ((rc = libssh2_userauth_publickey_fromfile(session,
+                                                       itsUserName.c_str(), // remote username
+                                                       itsPublicKey == "" ? NULL : itsPublicKey.c_str(), // public key filename
+                                                       itsPrivateKey == "" ? NULL : itsPrivateKey.c_str(), // private key filename
+                                                       NULL // password
+                                                       )) ==
+             LIBSSH2_ERROR_EAGAIN) {
+        waitsocket(session, sock);
+      }
 
-  if (rc)
-  {
-    LOG_ERROR_STR( itsLogPrefix << "Failure closing session: " << rc << " (" << explainLibSSH2Error(session, rc) << ")");
-    return;
-  }
-}
+      if (rc) {
+        LOG_ERROR_STR( itsLogPrefix << "Authentication for user '" << itsUserName << "' by public/private keys '" << itsPublicKey << "'/'" << itsPrivateKey << "' failed: " << rc << " (" << explainLibSSH2Error(session, rc) << ")");
+        return NULL;
+      }
 
-LIBSSH2_CHANNEL *SSHconnection::open_channel( LIBSSH2_SESSION *session, FileDescriptorBasedStream &sock )
-{
-  ScopedDelayCancellation dc;
+      return session.release();
+    }
 
-  channel_t channel;
+    void SSHconnection::close_session( LIBSSH2_SESSION *session, FileDescriptorBasedStream &sock )
+    {
+      ScopedDelayCancellation dc;
 
-  /* Exec non-blocking on the remote host */
-  while( (channel = libssh2_channel_open_session(session)) == NULL &&
-         libssh2_session_last_error(session,NULL,NULL,0) ==
-         LIBSSH2_ERROR_EAGAIN )
-  {
-    waitsocket(session, sock);
-  }
+      int rc;
 
-  if (!channel.get())
-  {
-    LOG_ERROR_STR( itsLogPrefix << "Could not set up SSH channel" );
-    return NULL;
-  }
+      while ((rc = libssh2_session_disconnect(session, "Normal Shutdown, Thank you for playing")) ==
+             LIBSSH2_ERROR_EAGAIN) {
+        waitsocket(session, sock);
+      }
 
-  return channel.release();
-}
+      if (rc)
+      {
+        LOG_ERROR_STR( itsLogPrefix << "Failure closing session: " << rc << " (" << explainLibSSH2Error(session, rc) << ")");
+        return;
+      }
+    }
 
-void SSHconnection::close_channel( LIBSSH2_SESSION *session, LIBSSH2_CHANNEL *channel, FileDescriptorBasedStream &sock )
-{
-  ScopedDelayCancellation dc;
+    LIBSSH2_CHANNEL *SSHconnection::open_channel( LIBSSH2_SESSION *session, FileDescriptorBasedStream &sock )
+    {
+      ScopedDelayCancellation dc;
 
-  int rc;
+      channel_t channel;
 
-  while( (rc = libssh2_channel_close(channel)) == LIBSSH2_ERROR_EAGAIN ) {
-    waitsocket(session, sock);
-  }
+      /* Exec non-blocking on the remote host */
+      while( (channel = libssh2_channel_open_session(session)) == NULL &&
+             libssh2_session_last_error(session,NULL,NULL,0) ==
+             LIBSSH2_ERROR_EAGAIN )
+      {
+        waitsocket(session, sock);
+      }
 
-  if (rc)
-  {
-    LOG_ERROR_STR( itsLogPrefix << "Failure closing channel: " << rc << " (" << explainLibSSH2Error(session, rc) << ")");
-    return;
-  }
-}
+      if (!channel.get())
+      {
+        LOG_ERROR_STR( itsLogPrefix << "Could not set up SSH channel" );
+        return NULL;
+      }
 
-bool SSHconnection::waitsocket( LIBSSH2_SESSION *session, FileDescriptorBasedStream &sock )
-{
-  // we manually control the cancellation points, so make sure
-  // cancellation is actually disabled.
-  ScopedDelayCancellation dc;
+      return channel.release();
+    }
+
+    void SSHconnection::close_channel( LIBSSH2_SESSION *session, LIBSSH2_CHANNEL *channel, FileDescriptorBasedStream &sock )
+    {
+      ScopedDelayCancellation dc;
+
+      int rc;
 
-  struct timeval timeout;
-  int rc;
-  fd_set fd;
-  fd_set *writefd = NULL;
-  fd_set *readfd = NULL;
-  int dir;
+      while( (rc = libssh2_channel_close(channel)) == LIBSSH2_ERROR_EAGAIN ) {
+        waitsocket(session, sock);
+      }
 
-  timeout.tv_sec =  1;
-  timeout.tv_usec = 0;
+      if (rc)
+      {
+        LOG_ERROR_STR( itsLogPrefix << "Failure closing channel: " << rc << " (" << explainLibSSH2Error(session, rc) << ")");
+        return;
+      }
+    }
 
-  FD_ZERO(&fd);
+    bool SSHconnection::waitsocket( LIBSSH2_SESSION *session, FileDescriptorBasedStream &sock )
+    {
+      // we manually control the cancellation points, so make sure
+      // cancellation is actually disabled.
+      ScopedDelayCancellation dc;
 
-  FD_SET(sock.fd, &fd);
+      struct timeval timeout;
+      int rc;
+      fd_set fd;
+      fd_set *writefd = NULL;
+      fd_set *readfd = NULL;
+      int dir;
 
-  /* now make sure we wait in the correct direction */
-  dir = libssh2_session_block_directions(session);
+      timeout.tv_sec = 1;
+      timeout.tv_usec = 0;
 
-  if(dir & LIBSSH2_SESSION_BLOCK_INBOUND)
-      readfd = &fd;
+      FD_ZERO(&fd);
 
-  if(dir & LIBSSH2_SESSION_BLOCK_OUTBOUND)
-      writefd = &fd;
+      FD_SET(sock.fd, &fd);
 
-  {
-    Cancellation::enable();
+      /* now make sure we wait in the correct direction */
+      dir = libssh2_session_block_directions(session);
 
-    // select() is a cancellation point
-    rc = ::select(sock.fd + 1, readfd, writefd, NULL, &timeout);
+      if(dir & LIBSSH2_SESSION_BLOCK_INBOUND)
+        readfd = &fd;
 
-    Cancellation::disable();
-  }   
+      if(dir & LIBSSH2_SESSION_BLOCK_OUTBOUND)
+        writefd = &fd;
 
-  return rc > 0;
-}
+      {
+        Cancellation::enable();
 
-void SSHconnection::commThread()
-{
+        // select() is a cancellation point
+        rc = ::select(sock.fd + 1, readfd, writefd, NULL, &timeout);
+
+        Cancellation::disable();
+      }
+
+      return rc > 0;
+    }
+
+    void SSHconnection::commThread()
+    {
 #if defined HAVE_BGP_ION
-  doNotRunOnCore0();
-  //runOnCore0();
-  //nice(19);
+      doNotRunOnCore0();
+      //runOnCore0();
+      //nice(19);
 #endif
 
-  int rc;
-  int exitcode;
-  char *exitsignal = 0;
+      int rc;
+      int exitcode;
+      char *exitsignal = 0;
 
-  // WARNING: Make sure sock stays alive while a session is active, because the session
-  // will retain a copy of sock.fd so we can't invalidate it. We don't want to
-  // (for example) send a libssh2_session_disconnect to a sock.fd that has been
-  // reused by the system!
- 
-  // Declaring sock before session will cause ~sock to be called after
-  // ~session.
+      // WARNING: Make sure sock stays alive while a session is active, because the session
+      // will retain a copy of sock.fd so we can't invalidate it. We don't want to
+      // (for example) send a libssh2_session_disconnect to a sock.fd that has been
+      // reused by the system!
 
-  SmartPtr<SocketStream> sock;
-  session_t session;
-  channel_t channel;
+      // Declaring sock before session will cause ~sock to be called after
+      // ~session.
 
-  for(;;) {
-    // keep trying to connect
-    sock = new SocketStream( itsHostName, 22, SocketStream::TCP, SocketStream::Client, 0 );
+      SmartPtr<SocketStream> sock;
+      session_t session;
+      channel_t channel;
 
-    LOG_DEBUG_STR( itsLogPrefix << "Connected" );
+      for(;; ) {
+        // keep trying to connect
+        sock = new SocketStream( itsHostName, 22, SocketStream::TCP, SocketStream::Client, 0 );
 
-    /* Prevent cancellation in functions dealing with libssh2 internals, but
-     * NOT during sleep() */
-    {
-      {
-        ScopedDelayCancellation dc;
+        LOG_DEBUG_STR( itsLogPrefix << "Connected" );
 
-        session = open_session(*sock);
-      }
+        /* Prevent cancellation in functions dealing with libssh2 internals, but
+         * NOT during sleep() */
+        {
+          {
+            ScopedDelayCancellation dc;
 
-      if (session.get()) {
-        ScopedDelayCancellation dc;
+            session = open_session(*sock);
+          }
 
-        channel = open_channel(session, *sock);
+          if (session.get()) {
+            ScopedDelayCancellation dc;
 
-        if (channel.get())
-          // success!
-          break;
+            channel = open_channel(session, *sock);
 
-        close_session(session, *sock);
+            if (channel.get())
+              // success!
+              break;
 
-        session = 0;
-      }
+            close_session(session, *sock);
 
-      sleep(RETRY_DELAY);
-    }
+            session = 0;
+          }
 
-    break;
-  }
+          sleep(RETRY_DELAY);
+        }
 
-  itsConnected = true;
+        break;
+      }
 
-  LOG_DEBUG_STR( itsLogPrefix << "Starting remote command: " << itsCommandLine);
+      itsConnected = true;
 
-  while( (rc = libssh2_channel_exec(channel, itsCommandLine.c_str())) ==
-         LIBSSH2_ERROR_EAGAIN )
-  {
-    waitsocket(session, *sock);
-  }
+      LOG_DEBUG_STR( itsLogPrefix << "Starting remote command: " << itsCommandLine);
 
-  if (rc)
-  {
-    LOG_ERROR_STR( itsLogPrefix << "Failure starting remote command: " << rc << " (" << explainLibSSH2Error(session, rc) << ")");
-    return;
-  }
+      while( (rc = libssh2_channel_exec(channel, itsCommandLine.c_str())) ==
+             LIBSSH2_ERROR_EAGAIN )
+      {
+        waitsocket(session, *sock);
+      }
+
+      if (rc)
+      {
+        LOG_ERROR_STR( itsLogPrefix << "Failure starting remote command: " << rc << " (" << explainLibSSH2Error(session, rc) << ")");
+        return;
+      }
 
-  LOG_DEBUG_STR( itsLogPrefix << "Remote command started, waiting for output" );
+      LOG_DEBUG_STR( itsLogPrefix << "Remote command started, waiting for output" );
 
-  Cancellation::disable();
-  Cancellation::point();
+      Cancellation::disable();
+      Cancellation::point();
 
 #define NRSTREAMS 2
 
-  // raw input buffer
-  char data[NRSTREAMS][0x1000];
+      // raw input buffer
+      char data[NRSTREAMS][0x1000];
 
-  // the current line (or line remnant)
-  string line[NRSTREAMS];
+      // the current line (or line remnant)
+      string line[NRSTREAMS];
 
-  // how many streams still provide data
-  unsigned nrOpenStreams = NRSTREAMS;
+      // how many streams still provide data
+      unsigned nrOpenStreams = NRSTREAMS;
 
-  // which streams still provide data
-  bool isOpen[NRSTREAMS];
+      // which streams still provide data
+      bool isOpen[NRSTREAMS];
 
-  for (unsigned s = 0; s < NRSTREAMS; ++s)
-    isOpen[s] = true;
+      for (unsigned s = 0; s < NRSTREAMS; ++s)
+        isOpen[s] = true;
 
-  /* Session I/O */
-  while( nrOpenStreams > 0 )
-  {
-    for (unsigned s = 0; s < NRSTREAMS; ++s) {
-      if (!isOpen[s])
-        continue;
-
-      /* loop until we block */
-      do {
-        rc = libssh2_channel_read_ex(channel, s, data[s], sizeof data[s]);
-        if( rc > 0 )
-        {
-          if (s == 0 && itsCaptureStdout) {
-            // save stdout verbatim in our buffer
-
-            LOG_DEBUG_STR( itsLogPrefix << "Appending " << rc << " bytes to stdout buffer, which contains " << itsStdoutBuffer.rdbuf()->in_avail() << " bytes" );
-            
-            itsStdoutBuffer.write( data[s], rc );
-          } else {
-            // print stream to stdout (TODO: to logger)
-             
-            // create a buffer for line + data
-            stringstream buffer;
-
-            buffer << line[s];
-            buffer.write( data[s], rc );
-
-            /* extract and log lines */
-            for( ;; )
+      /* Session I/O */
+      while( nrOpenStreams > 0 )
+      {
+        for (unsigned s = 0; s < NRSTREAMS; ++s) {
+          if (!isOpen[s])
+            continue;
+
+          /* loop until we block */
+          do {
+            rc = libssh2_channel_read_ex(channel, s, data[s], sizeof data[s]);
+            if( rc > 0 )
             {
-              Cancellation::point();
+              if (s == 0 && itsCaptureStdout) {
+                // save stdout verbatim in our buffer
 
-              std::getline( buffer, line[s] );
+                LOG_DEBUG_STR( itsLogPrefix << "Appending " << rc << " bytes to stdout buffer, which contains " << itsStdoutBuffer.rdbuf()->in_avail() << " bytes" );
 
-              if (!buffer.good()) {
-                // 'line' now holds the remnant
+                itsStdoutBuffer.write( data[s], rc );
+              } else {
+                // print stream to stdout (TODO: to logger)
 
-                if (line[s].size() > 10240) {
-                  LOG_ERROR_STR( itsLogPrefix << "Line too long (" << line[s].size() << "); truncated: " << line[s] );
-                  line[s] = "";
-                }
-                break;
-              }
+                // create a buffer for line + data
+                stringstream buffer;
+
+                buffer << line[s];
+                buffer.write( data[s], rc );
+
+                /* extract and log lines */
+                for(;; )
+                {
+                  Cancellation::point();
+
+                  std::getline( buffer, line[s] );
 
-              // TODO: Use logger somehow (we'd duplicate the prefix if we just use LOG_* macros..)
-              {
+                  if (!buffer.good()) {
+                    // 'line' now holds the remnant
+
+                    if (line[s].size() > 10240) {
+                      LOG_ERROR_STR( itsLogPrefix << "Line too long (" << line[s].size() << "); truncated: " << line[s] );
+                      line[s] = "";
+                    }
+                    break;
+                  }
+
+                  // TODO: Use logger somehow (we'd duplicate the prefix if we just use LOG_* macros..)
+                  {
 #ifdef HAVE_LOG4COUT
-                ScopedLock sl(LFDebug::mutex);
+                    ScopedLock sl(LFDebug::mutex);
 #else
-                ScopedLock sl(coutMutex);
+                    ScopedLock sl(coutMutex);
 #endif
-                if (s == 0)
-                  cout << line[s] << endl;
-                else
-                  cerr << line[s] << endl;
+                    if (s == 0)
+                      cout << line[s] << endl;
+                    else
+                      cerr << line[s] << endl;
+                  }
+                }
+              }
+            } else {
+              if( rc < 0 && rc != LIBSSH2_ERROR_EAGAIN ) {
+                /* no need to output this for the EAGAIN case */
+                LOG_ERROR_STR( itsLogPrefix << "libssh2_channel_read_ex returned " << rc << " (" << explainLibSSH2Error(session, rc) << ") for channel " << s);
               }
             }
+          } while( rc > 0 );
+
+          /* this is due to blocking that would occur otherwise so we loop on
+             this condition */
+          if( rc != LIBSSH2_ERROR_EAGAIN )
+          {
+            /* EOF */
+            --nrOpenStreams;
           }
-        } else {
-          if( rc < 0 && rc != LIBSSH2_ERROR_EAGAIN ) {
-            /* no need to output this for the EAGAIN case */
-            LOG_ERROR_STR( itsLogPrefix << "libssh2_channel_read_ex returned " << rc << " (" << explainLibSSH2Error(session, rc) << ") for channel " << s);
-          }   
         }
-      } while( rc > 0 );
 
-      /* this is due to blocking that would occur otherwise so we loop on
-         this condition */
-      if( rc != LIBSSH2_ERROR_EAGAIN )
-      {
-        /* EOF */
-        --nrOpenStreams;
+        if (nrOpenStreams > 0)
+          waitsocket(session, *sock);
       }
-    }
 
-    if (nrOpenStreams > 0)
-      waitsocket(session, *sock);
-  }
+      LOG_DEBUG_STR( itsLogPrefix << "Disconnecting" );
 
-  LOG_DEBUG_STR( itsLogPrefix << "Disconnecting" );
+      close_channel(session, channel, *sock);
 
-  close_channel(session, channel, *sock);
-
-  if (rc == 0)
-  {
-    exitcode = libssh2_channel_get_exit_status(channel);
+      if (rc == 0)
+      {
+        exitcode = libssh2_channel_get_exit_status(channel);
 #if LIBSSH2_VERSION_NUM >= 0x010208
-    libssh2_channel_get_exit_signal(channel, &exitsignal,
-                                    NULL, NULL, NULL, NULL, NULL);
+        libssh2_channel_get_exit_signal(channel, &exitsignal,
+                                        NULL, NULL, NULL, NULL, NULL);
 #else
-    exitsignal = 0;
+        exitsignal = 0;
 #endif
-  } else {
-    exitcode = 127;
-  }
+      } else {
+        exitcode = 127;
+      }
 
-  close_session(session, *sock);
+      close_session(session, *sock);
 
-  if (exitsignal) {
-    LOG_ERROR_STR(itsLogPrefix << "SSH was killed by signal " << exitsignal);
-  } else if(exitcode > 0) {
-    LOG_ERROR_STR(itsLogPrefix << "Exited with exit code " << exitcode << " (" << explainExitStatus(exitcode) << ")" );
-  } else {
-    LOG_INFO_STR(itsLogPrefix << "Terminated normally");
-  }
-}
+      if (exitsignal) {
+        LOG_ERROR_STR(itsLogPrefix << "SSH was killed by signal " << exitsignal);
+      } else if(exitcode > 0) {
+        LOG_ERROR_STR(itsLogPrefix << "Exited with exit code " << exitcode << " (" << explainExitStatus(exitcode) << ")" );
+      } else {
+        LOG_INFO_STR(itsLogPrefix << "Terminated normally");
+      }
+    }
 
 
- 
-std::vector< SmartPtr<Mutex> > openssl_mutexes;
 
-static void lock_callback(int mode, int type, const char *file, int line)
-{
-  (void)file;
-  (void)line;
-
-  if (mode & CRYPTO_LOCK)
-    openssl_mutexes[type]->lock();
-  else
-    openssl_mutexes[type]->unlock();
-}
- 
-static unsigned long thread_id_callback()
-{
-  return static_cast<unsigned long>(pthread_self());
-}
-
- 
-bool SSH_Init() {
-  // initialise openssl
-  openssl_mutexes.resize(CRYPTO_num_locks());
-  for (size_t i = 0; i < openssl_mutexes.size(); ++i)
-    openssl_mutexes[i] = new Mutex;
- 
-  CRYPTO_set_id_callback(&thread_id_callback);
-  CRYPTO_set_locking_callback(&lock_callback);
+    std::vector< SmartPtr<Mutex> > openssl_mutexes;
+
+    static void lock_callback(int mode, int type, const char *file, int line)
+    {
+      (void)file;
+      (void)line;
+
+      if (mode & CRYPTO_LOCK)
+        openssl_mutexes[type]->lock();
+      else
+        openssl_mutexes[type]->unlock();
+    }
+
+    static unsigned long thread_id_callback()
+    {
+      return static_cast<unsigned long>(pthread_self());
+    }
+
+
+    bool SSH_Init()
+    {
+      // initialise openssl
+      openssl_mutexes.resize(CRYPTO_num_locks());
+      for (size_t i = 0; i < openssl_mutexes.size(); ++i)
+        openssl_mutexes[i] = new Mutex;
+
+      CRYPTO_set_id_callback(&thread_id_callback);
+      CRYPTO_set_locking_callback(&lock_callback);
 
 #if LIBSSH2_VERSION_NUM >= 0x010205
-  // initialise libssh2
-  int rc = libssh2_init(0);
+      // initialise libssh2
+      int rc = libssh2_init(0);
 
-  if (rc)
-    return false;
+      if (rc)
+        return false;
 #endif
 
-  return true;
-}
+      return true;
+    }
 
-void SSH_Finalize() {
+    void SSH_Finalize()
+    {
 #if LIBSSH2_VERSION_NUM >= 0x010205
-  // exit libssh2
-  libssh2_exit();
+      // exit libssh2
+      libssh2_exit();
 #endif
 
-  // exit openssl
-  CRYPTO_set_locking_callback(NULL);
-  CRYPTO_set_id_callback(NULL);
- 
-  openssl_mutexes.clear();
-}
+      // exit openssl
+      CRYPTO_set_locking_callback(NULL);
+      CRYPTO_set_id_callback(NULL);
 
+      openssl_mutexes.clear();
+    }
 
-// Returns true if the given private-key file name works for "ssh localhost"
-static bool ssh_works(const char *pubkey, const char *privkey) {
-  char *USER = getenv("USER");
 
-  ASSERTSTR(USER, "$USER not set");
+    // Returns true if the given private-key file name works for "ssh localhost"
+    static bool ssh_works(const char *pubkey, const char *privkey)
+    {
+      char *USER = getenv("USER");
 
-  // connect, running /bin/true
-  SSHconnection sshconn("", "localhost", "/bin/true", USER, pubkey, privkey, true);
-  sshconn.start();
+      ASSERTSTR(USER, "$USER not set");
 
-  // wait 5 seconds for connection to succeed
-  struct timespec deadline = { time(0) + 5, 0 };
-  sshconn.wait(deadline);
+      // connect, running /bin/true
+      SSHconnection sshconn("", "localhost", "/bin/true", USER, pubkey, privkey, true);
+      sshconn.start();
 
-  // return whether connection succeeded
-  return sshconn.connected();
-}
+      // wait 5 seconds for connection to succeed
+      struct timespec deadline = { time(0) + 5, 0 };
+      sshconn.wait(deadline);
 
+      // return whether connection succeeded
+      return sshconn.connected();
+    }
 
-bool discover_ssh_keys(char *pubkey, size_t pubkey_buflen, char *privkey, size_t privkey_buflen) {
-  ASSERT(pubkey_buflen > 0);
-  ASSERT(privkey_buflen > 0);
 
-  char *HOME = getenv("HOME");
+    bool discover_ssh_keys(char *pubkey, size_t pubkey_buflen, char *privkey, size_t privkey_buflen)
+    {
+      ASSERT(pubkey_buflen > 0);
+      ASSERT(privkey_buflen > 0);
 
-  ASSERTSTR(HOME, "$HOME not set");
+      char *HOME = getenv("HOME");
 
-  // try several common keys
-  for(unsigned attempt = 0; ; attempt++) {
-    switch (attempt) {
-      case 0:
-        pubkey[0] = 0;
-        snprintf(privkey, privkey_buflen, "%s/.ssh/id_dsa",     HOME);
-        break;
+      ASSERTSTR(HOME, "$HOME not set");
 
-      case 1:
-        snprintf(pubkey,  pubkey_buflen,  "%s/.ssh/id_dsa.pub", HOME);
-        snprintf(privkey, privkey_buflen, "%s/.ssh/id_dsa",     HOME);
-        break;
+      // try several common keys
+      for(unsigned attempt = 0;; attempt++) {
+        switch (attempt) {
+        case 0:
+          pubkey[0] = 0;
+          snprintf(privkey, privkey_buflen, "%s/.ssh/id_dsa",     HOME);
+          break;
 
-      case 2:
-        pubkey[0] = 0;
-        snprintf(privkey, privkey_buflen, "%s/.ssh/id_rsa",     HOME);
-        break;
+        case 1:
+          snprintf(pubkey,  pubkey_buflen,  "%s/.ssh/id_dsa.pub", HOME);
+          snprintf(privkey, privkey_buflen, "%s/.ssh/id_dsa",     HOME);
+          break;
 
-      case 3:
-        snprintf(pubkey,  pubkey_buflen,  "%s/.ssh/id_rsa.pub", HOME);
-        snprintf(privkey, privkey_buflen, "%s/.ssh/id_rsa",     HOME);
-        break;
+        case 2:
+          pubkey[0] = 0;
+          snprintf(privkey, privkey_buflen, "%s/.ssh/id_rsa",     HOME);
+          break;
 
-      default:
-        // ran out of attempts
-        LOG_ERROR("Cannot find a working public/private key for SSH to localhost");
-        return false;
-    }
+        case 3:
+          snprintf(pubkey,  pubkey_buflen,  "%s/.ssh/id_rsa.pub", HOME);
+          snprintf(privkey, privkey_buflen, "%s/.ssh/id_rsa",     HOME);
+          break;
 
-    // try key pair
-    if (ssh_works(pubkey, privkey)) {
-      LOG_DEBUG_STR("Key files '" << pubkey << "' and '" << privkey << "' work for ssh localhost.");
-      return true;
+        default:
+          // ran out of attempts
+          LOG_ERROR("Cannot find a working public/private key for SSH to localhost");
+          return false;
+        }
+
+        // try key pair
+        if (ssh_works(pubkey, privkey)) {
+          LOG_DEBUG_STR("Key files '" << pubkey << "' and '" << privkey << "' work for ssh localhost.");
+          return true;
+        }
+      }
     }
-  }
-}
 
-} // namespace RTCP
+  } // namespace RTCP
 } // namespace LOFAR
 
diff --git a/RTCP/Cobalt/GPUProc/src/Storage/SSH.h b/RTCP/Cobalt/GPUProc/src/Storage/SSH.h
index 37bbac1f6afa66de1ec0a54fba919ea015fc3574..cf0c9446febc6b6e7d7d4a0cc53775fe530f37bf 100644
--- a/RTCP/Cobalt/GPUProc/src/Storage/SSH.h
+++ b/RTCP/Cobalt/GPUProc/src/Storage/SSH.h
@@ -35,74 +35,77 @@
 #include <string>
 #include <sstream>
 
-namespace LOFAR {
-namespace RTCP {
+namespace LOFAR
+{
+  namespace RTCP
+  {
 
-bool SSH_Init();
-void SSH_Finalize();
+    bool SSH_Init();
+    void SSH_Finalize();
 
-// Sets up and maintains an SSH connection using LibSSH2.
-class SSHconnection {
-public:
-  // The number of seconds to wait to retry if establishing a connection fails.
-  static const unsigned RETRY_DELAY = 60;
+    // Sets up and maintains an SSH connection using LibSSH2.
+    class SSHconnection
+    {
+    public:
+      // The number of seconds to wait to retry if establishing a connection fails.
+      static const unsigned RETRY_DELAY = 60;
 
-  EXCEPTION_CLASS(SSHException, LOFAR::Exception);
+      EXCEPTION_CLASS(SSHException, LOFAR::Exception);
 
-  SSHconnection(const std::string &logPrefix, const std::string &hostname, const std::string &commandline, const std::string &username, const std::string &pubkey, const std::string &privkey, bool captureStdout = false);
+      SSHconnection(const std::string &logPrefix, const std::string &hostname, const std::string &commandline, const std::string &username, const std::string &pubkey, const std::string &privkey, bool captureStdout = false);
 
-  ~SSHconnection();
+      ~SSHconnection();
 
-  // Start connecting
-  void start();
+      // Start connecting
+      void start();
 
-  // Abort the connection
-  void cancel();
+      // Abort the connection
+      void cancel();
 
-  // Wait for the connection to finish
-  void wait();
-  void wait( const struct timespec &deadline );
+      // Wait for the connection to finish
+      void wait();
+      void wait( const struct timespec &deadline );
 
-  // Returns whether the connection is finished
-  bool isDone();
+      // Returns whether the connection is finished
+      bool isDone();
 
-  // Returns whether the SSH session is (or was) connected succesfully to the
-  // remote SSH daemon.
-  bool connected() const;
+      // Returns whether the SSH session is (or was) connected succesfully to the
+      // remote SSH daemon.
+      bool connected() const;
 
-  // If stdout is captured, return the captured output
-  std::string stdoutBuffer() const;
+      // If stdout is captured, return the captured output
+      std::string stdoutBuffer() const;
 
-private:
-  const string itsLogPrefix;
-  const string itsHostName;
-  const string itsCommandLine;
-  const string itsUserName;
-  const string itsPublicKey;
-  const string itsPrivateKey;
+    private:
+      const string itsLogPrefix;
+      const string itsHostName;
+      const string itsCommandLine;
+      const string itsUserName;
+      const string itsPublicKey;
+      const string itsPrivateKey;
 
-  bool itsConnected;
+      bool itsConnected;
 
-  SmartPtr<Thread> itsThread;
-  const bool itsCaptureStdout;
-  std::stringstream itsStdoutBuffer;
+      SmartPtr<Thread> itsThread;
+      const bool itsCaptureStdout;
+      std::stringstream itsStdoutBuffer;
 
-  bool waitsocket( LIBSSH2_SESSION *session, FileDescriptorBasedStream &sock );
+      bool waitsocket( LIBSSH2_SESSION *session, FileDescriptorBasedStream &sock );
 
-  LIBSSH2_SESSION *open_session( FileDescriptorBasedStream &sock );
-  void close_session( LIBSSH2_SESSION *session, FileDescriptorBasedStream &sock );
-  LIBSSH2_CHANNEL *open_channel( LIBSSH2_SESSION *session, FileDescriptorBasedStream &sock );
-  void close_channel( LIBSSH2_SESSION *session, LIBSSH2_CHANNEL *channel, FileDescriptorBasedStream &sock );
+      LIBSSH2_SESSION *open_session( FileDescriptorBasedStream &sock );
+      void close_session( LIBSSH2_SESSION *session, FileDescriptorBasedStream &sock );
+      LIBSSH2_CHANNEL *open_channel( LIBSSH2_SESSION *session, FileDescriptorBasedStream &sock );
+      void close_channel( LIBSSH2_SESSION *session, LIBSSH2_CHANNEL *channel, FileDescriptorBasedStream &sock );
 
-  void commThread();
-};
+      void commThread();
+    };
 
-// Discover the file name to the .ssh public/private key files,
-// and put them in pubkey and privkey. Returns true if the files
-// were found, and were usable for SSHconnection to localhost:22.
-bool discover_ssh_keys(char *pubkey, size_t pubkey_buflen, char *privkey, size_t privkey_buflen);
+    // Discover the file name to the .ssh public/private key files,
+    // and put them in pubkey and privkey. Returns true if the files
+    // were found, and were usable for SSHconnection to localhost:22.
+    bool discover_ssh_keys(char *pubkey, size_t pubkey_buflen, char *privkey, size_t privkey_buflen);
 
-} // namespace RTCP
+  } // namespace RTCP
 } // namespace LOFAR
 
 
diff --git a/RTCP/Cobalt/GPUProc/src/Storage/StorageProcess.cc b/RTCP/Cobalt/GPUProc/src/Storage/StorageProcess.cc
index 31598a120c6cb78404dde2d22513d48ce49709e8..2071704c74bc76b808a8b6d5e3c2cb00803b8bc9 100644
--- a/RTCP/Cobalt/GPUProc/src/Storage/StorageProcess.cc
+++ b/RTCP/Cobalt/GPUProc/src/Storage/StorageProcess.cc
@@ -8,136 +8,138 @@
 #include <Stream/PortBroker.h>
 #include <boost/format.hpp>
 
-namespace LOFAR {
-namespace RTCP {
-
-using namespace std;
-using boost::format;
-
-
-StorageProcess::StorageProcess( const Parset &parset, const string &logPrefix, int rank, const string &hostname, FinalMetaData &finalMetaData, Trigger &finalMetaDataAvailable )
-:
-  itsParset(parset),
-  itsLogPrefix(str(boost::format("%s [StorageWriter rank %2d host %s] ") % logPrefix % rank % hostname)),
-  itsRank(rank),
-  itsHostname(hostname),
-  itsFinalMetaData(finalMetaData),
-  itsFinalMetaDataAvailable(finalMetaDataAvailable)
+namespace LOFAR
 {
-}
+  namespace RTCP
+  {
+
+    using namespace std;
+    using boost::format;
+
+
+    StorageProcess::StorageProcess( const Parset &parset, const string &logPrefix, int rank, const string &hostname, FinalMetaData &finalMetaData, Trigger &finalMetaDataAvailable )
+      :
+      itsParset(parset),
+      itsLogPrefix(str(boost::format("%s [StorageWriter rank %2d host %s] ") % logPrefix % rank % hostname)),
+      itsRank(rank),
+      itsHostname(hostname),
+      itsFinalMetaData(finalMetaData),
+      itsFinalMetaDataAvailable(finalMetaDataAvailable)
+    {
+    }
 
 
-StorageProcess::~StorageProcess()
-{
-  ScopedDelayCancellation dc; // stop() is a cancellation point
+    StorageProcess::~StorageProcess()
+    {
+      ScopedDelayCancellation dc; // stop() is a cancellation point
 
-  // stop immediately
-  struct timespec immediately = { 0, 0 };
-  stop(immediately);
-}
+      // stop immediately
+      struct timespec immediately = { 0, 0 };
+      stop(immediately);
+    }
 
 
-void StorageProcess::start()
-{
-  ASSERTSTR(!itsThread, "StorageProcess has already been started");
+    void StorageProcess::start()
+    {
+      ASSERTSTR(!itsThread, "StorageProcess has already been started");
 
-  itsThread = new Thread(this, &StorageProcess::controlThread, itsLogPrefix + "[ControlThread] ", 65535);
-}
+      itsThread = new Thread(this, &StorageProcess::controlThread, itsLogPrefix + "[ControlThread] ", 65535);
+    }
 
 
-void StorageProcess::stop(struct timespec deadline)
-{
-  if (!itsThread) {
-    // not started
-    return;
-  }
+    void StorageProcess::stop(struct timespec deadline)
+    {
+      if (!itsThread) {
+        // not started
+        return;
+      }
 
-  if (!itsThread->wait(deadline))
-    itsThread->cancel();
-}
+      if (!itsThread->wait(deadline))
+        itsThread->cancel();
+    }
 
 
-bool StorageProcess::isDone()
-{
-  return itsThread->isDone();
-}
+    bool StorageProcess::isDone()
+    {
+      return itsThread->isDone();
+    }
 
 
-void StorageProcess::controlThread()
-{
-  // Start Storage
-  std::string userName   = itsParset.getString("OLAP.Storage.userName");
-  std::string pubKey     = itsParset.getString("OLAP.Storage.sshPublicKey");
-  std::string privKey    = itsParset.getString("OLAP.Storage.sshPrivateKey");
-  std::string executable = itsParset.getString("OLAP.Storage.msWriter");
+    void StorageProcess::controlThread()
+    {
+      // Start Storage
+      std::string userName = itsParset.getString("OLAP.Storage.userName");
+      std::string pubKey = itsParset.getString("OLAP.Storage.sshPublicKey");
+      std::string privKey = itsParset.getString("OLAP.Storage.sshPrivateKey");
+      std::string executable = itsParset.getString("OLAP.Storage.msWriter");
 
-  if (userName == "") {
-    // No username given -- use $USER
-    const char *USER = getenv("USER");
+      if (userName == "") {
+        // No username given -- use $USER
+        const char *USER = getenv("USER");
 
-    ASSERTSTR(USER, "$USER not set.");
+        ASSERTSTR(USER, "$USER not set.");
 
-    userName = USER;
-  }
+        userName = USER;
+      }
 
-  if (pubKey == "" && privKey == "") {
-    // No SSH keys given -- try to discover them
+      if (pubKey == "" && privKey == "") {
+        // No SSH keys given -- try to discover them
 
-    char discover_pubkey[1024];
-    char discover_privkey[1024];
+        char discover_pubkey[1024];
+        char discover_privkey[1024];
 
-    if (discover_ssh_keys(discover_pubkey, sizeof discover_pubkey, discover_privkey, sizeof discover_privkey)) {
-      pubKey  = discover_pubkey;
-      privKey = discover_privkey;
-    }
-  }
+        if (discover_ssh_keys(discover_pubkey, sizeof discover_pubkey, discover_privkey, sizeof discover_privkey)) {
+          pubKey = discover_pubkey;
+          privKey = discover_privkey;
+        }
+      }
 
-  char cwd[1024];
+      char cwd[1024];
 
-  if (getcwd(cwd, sizeof cwd) == 0)
-    throw SystemCallException("getcwd", errno, THROW_ARGS);
+      if (getcwd(cwd, sizeof cwd) == 0)
+        throw SystemCallException("getcwd", errno, THROW_ARGS);
 
-  std::string commandLine = str(boost::format("cd %s && %s%s %u %d %u")
-    % cwd
+      std::string commandLine = str(boost::format("cd %s && %s%s %u %d %u")
+                                    % cwd
 #if defined USE_VALGRIND
-    % "valgrind --leak-check=full "
+                                    % "valgrind --leak-check=full "
 #else
-    % ""
+                                    % ""
 #endif
-    % executable
-    % itsParset.observationID()
-    % itsRank
+                                    % executable
+                                    % itsParset.observationID()
+                                    % itsRank
 #if defined WORDS_BIGENDIAN
-    % 1
+                                    % 1
 #else
-    % 0
+                                    % 0
 #endif
-  );
+                                    );
 
-  SSHconnection sshconn(itsLogPrefix, itsHostname, commandLine, userName, pubKey, privKey, 0);
-  sshconn.start();
+      SSHconnection sshconn(itsLogPrefix, itsHostname, commandLine, userName, pubKey, privKey, 0);
+      sshconn.start();
 
-  // Connect control stream
-  LOG_DEBUG_STR(itsLogPrefix << "[ControlThread] connecting...");
-  std::string resource = getStorageControlDescription(itsParset.observationID(), itsRank);
-  PortBroker::ClientStream stream(itsHostname, storageBrokerPort(itsParset.observationID()), resource, 0);
+      // Connect control stream
+      LOG_DEBUG_STR(itsLogPrefix << "[ControlThread] connecting...");
+      std::string resource = getStorageControlDescription(itsParset.observationID(), itsRank);
+      PortBroker::ClientStream stream(itsHostname, storageBrokerPort(itsParset.observationID()), resource, 0);
 
-  // Send parset
-  LOG_DEBUG_STR(itsLogPrefix << "[ControlThread] connected -- sending parset");
-  itsParset.write(&stream);
-  LOG_DEBUG_STR(itsLogPrefix << "[ControlThread] sent parset");
+      // Send parset
+      LOG_DEBUG_STR(itsLogPrefix << "[ControlThread] connected -- sending parset");
+      itsParset.write(&stream);
+      LOG_DEBUG_STR(itsLogPrefix << "[ControlThread] sent parset");
 
-  // Send final meta data once it is available
-  itsFinalMetaDataAvailable.wait();
+      // Send final meta data once it is available
+      itsFinalMetaDataAvailable.wait();
 
-  LOG_DEBUG_STR(itsLogPrefix << "[ControlThread] sending final meta data");
-  itsFinalMetaData.write(stream);
-  LOG_DEBUG_STR(itsLogPrefix << "[ControlThread] sent final meta data");
+      LOG_DEBUG_STR(itsLogPrefix << "[ControlThread] sending final meta data");
+      itsFinalMetaData.write(stream);
+      LOG_DEBUG_STR(itsLogPrefix << "[ControlThread] sent final meta data");
 
-  // Wait for Storage to finish properly
-  sshconn.wait();
-}
+      // Wait for Storage to finish properly
+      sshconn.wait();
+    }
 
 
-}
+  }
 }
diff --git a/RTCP/Cobalt/GPUProc/src/Storage/StorageProcess.h b/RTCP/Cobalt/GPUProc/src/Storage/StorageProcess.h
index 4e456e9cb30fa2705f5a54b8daea2160f6613bbc..94ac0f562ff3487951cbafc308a23752b0622d5a 100644
--- a/RTCP/Cobalt/GPUProc/src/Storage/StorageProcess.h
+++ b/RTCP/Cobalt/GPUProc/src/Storage/StorageProcess.h
@@ -1,6 +1,6 @@
 #ifndef LOFAR_RTCP_STORAGE_PROCESS
 #define LOFAR_RTCP_STORAGE_PROCESS
- 
+
 #include <sys/time.h>
 #include <Common/Thread/Trigger.h>
 #include <Common/Thread/Thread.h>
@@ -9,31 +9,34 @@
 #include <CoInterface/FinalMetaData.h>
 #include <string>
 
-namespace LOFAR {
-namespace RTCP {
+namespace LOFAR
+{
+  namespace RTCP
+  {
 
-/* A single Storage process.
- *
- * Storage is started as:
- *     Storage_main observationID rank isBigEndian
- *
- * A Storage process is expected to follow the following protocol: 
- *
-  // establish control connection
-  string resource = getStorageControlDescription(observationID, rank);
-  PortBroker::ServerStream stream(resource);
+    /* A single Storage process.
+     *
+     * Storage is started as:
+     *     Storage_main observationID rank isBigEndian
+     *
+     * A Storage process is expected to follow the following protocol:
+     *
+       // establish control connection
+       string resource = getStorageControlDescription(observationID, rank);
+       PortBroker::ServerStream stream(resource);
 
-  // read parset
-  Parset parset(&stream);
+       // read parset
+       Parset parset(&stream);
 
-  ... process observation ...
+       ... process observation ...
 
-  // read meta data
-  FinalMetaData finalMetaData;
-  finalMetaData.read(stream);
- */
+       // read meta data
+       FinalMetaData finalMetaData;
+       finalMetaData.read(stream);
+     */
 
-class StorageProcess {
+    class StorageProcess
+    {
     public:
       // user must call start()
       StorageProcess( const Parset &parset, const std::string &logPrefix, int rank, const std::string &hostname, FinalMetaData &finalMetaData, Trigger &finalMetaDataAvailable );
@@ -58,9 +61,9 @@ class StorageProcess {
       Trigger                            &itsFinalMetaDataAvailable;
 
       SmartPtr<Thread> itsThread;
-};
+    };
 
-}
+  }
 }
 
 #endif
diff --git a/RTCP/Cobalt/GPUProc/src/Storage/StorageProcesses.cc b/RTCP/Cobalt/GPUProc/src/Storage/StorageProcesses.cc
index 9ed2f5a1525bf2604d9ed37679417175a9342413..8065f992faacebbaa8e7d8f24940ff1358b93b7a 100644
--- a/RTCP/Cobalt/GPUProc/src/Storage/StorageProcesses.cc
+++ b/RTCP/Cobalt/GPUProc/src/Storage/StorageProcesses.cc
@@ -8,114 +8,116 @@
 #include <Stream/PortBroker.h>
 #include <boost/format.hpp>
 
-namespace LOFAR {
-namespace RTCP {
+namespace LOFAR
+{
+  namespace RTCP
+  {
 
-using namespace std;
-using boost::format;
+    using namespace std;
+    using boost::format;
 
 
-StorageProcesses::StorageProcesses( const Parset &parset, const std::string &logPrefix )
-:
-  itsParset(parset),
-  itsLogPrefix(logPrefix)
-{
-  start();
-}
+    StorageProcesses::StorageProcesses( const Parset &parset, const std::string &logPrefix )
+      :
+      itsParset(parset),
+      itsLogPrefix(logPrefix)
+    {
+      start();
+    }
 
-StorageProcesses::~StorageProcesses()
-{
-  // never let any processes linger
-  stop(0);
-}
+    StorageProcesses::~StorageProcesses()
+    {
+      // never let any processes linger
+      stop(0);
+    }
 
-void StorageProcesses::start()
-{
-  vector<string> hostnames = itsParset.getStringVector("OLAP.Storage.hosts");
+    void StorageProcesses::start()
+    {
+      vector<string> hostnames = itsParset.getStringVector("OLAP.Storage.hosts");
 
-  itsStorageProcesses.resize(hostnames.size());
+      itsStorageProcesses.resize(hostnames.size());
 
-  LOG_DEBUG_STR(itsLogPrefix << "Starting " << itsStorageProcesses.size() << " Storage processes");
+      LOG_DEBUG_STR(itsLogPrefix << "Starting " << itsStorageProcesses.size() << " Storage processes");
 
-  // Start all processes
-  for (unsigned rank = 0; rank < itsStorageProcesses.size(); rank ++) {
-    itsStorageProcesses[rank] = new StorageProcess(itsParset, itsLogPrefix, rank, hostnames[rank], itsFinalMetaData, itsFinalMetaDataAvailable);
-    itsStorageProcesses[rank]->start();
-  }  
-}
+      // Start all processes
+      for (unsigned rank = 0; rank < itsStorageProcesses.size(); rank++) {
+        itsStorageProcesses[rank] = new StorageProcess(itsParset, itsLogPrefix, rank, hostnames[rank], itsFinalMetaData, itsFinalMetaDataAvailable);
+        itsStorageProcesses[rank]->start();
+      }
+    }
 
 
-void StorageProcesses::stop( time_t deadline )
-{
-  LOG_DEBUG_STR(itsLogPrefix << "Stopping storage processes");
+    void StorageProcesses::stop( time_t deadline )
+    {
+      LOG_DEBUG_STR(itsLogPrefix << "Stopping storage processes");
 
-  struct timespec deadline_ts = { deadline, 0 };
+      struct timespec deadline_ts = { deadline, 0 };
 
-  // Stop all processes
-  for (unsigned rank = 0; rank < itsStorageProcesses.size(); rank ++) {
-    itsStorageProcesses[rank]->stop(deadline_ts);
-    itsStorageProcesses[rank] = 0;
-  }
+      // Stop all processes
+      for (unsigned rank = 0; rank < itsStorageProcesses.size(); rank++) {
+        itsStorageProcesses[rank]->stop(deadline_ts);
+        itsStorageProcesses[rank] = 0;
+      }
 
-  itsStorageProcesses.clear();
+      itsStorageProcesses.clear();
 
-  LOG_DEBUG_STR(itsLogPrefix << "Storage processes are stopped");
-}
+      LOG_DEBUG_STR(itsLogPrefix << "Storage processes are stopped");
+    }
 
 
-void StorageProcesses::forwardFinalMetaData( time_t deadline )
-{
-  struct timespec deadline_ts = { deadline, 0 };
+    void StorageProcesses::forwardFinalMetaData( time_t deadline )
+    {
+      struct timespec deadline_ts = { deadline, 0 };
 
-  Thread thread(this, &StorageProcesses::finalMetaDataThread, itsLogPrefix + "[FinalMetaDataThread] ", 65536);
+      Thread thread(this, &StorageProcesses::finalMetaDataThread, itsLogPrefix + "[FinalMetaDataThread] ", 65536);
 
-  thread.cancel(deadline_ts);
-}
+      thread.cancel(deadline_ts);
+    }
 
 
-void StorageProcesses::finalMetaDataThread()
-{
-  std::string hostName    = itsParset.getString("OLAP.FinalMetaDataGatherer.host");
-  std::string userName    = itsParset.getString("OLAP.FinalMetaDataGatherer.userName");
-  std::string pubKey      = itsParset.getString("OLAP.FinalMetaDataGatherer.sshPublicKey");
-  std::string privKey     = itsParset.getString("OLAP.FinalMetaDataGatherer.sshPrivateKey");
-  std::string executable  = itsParset.getString("OLAP.FinalMetaDataGatherer.executable");
-
-  char cwd[1024];
-
-  if (getcwd(cwd, sizeof cwd) == 0)
-    throw SystemCallException("getcwd", errno, THROW_ARGS);
-
-  std::string commandLine = str(boost::format("cd %s && %s %d 2>&1")
-      % cwd
-      % executable
-      % itsParset.observationID()
-      );
-
-  // Start the remote process
-  SSHconnection sshconn(itsLogPrefix + "[FinalMetaData] ", hostName, commandLine, userName, pubKey, privKey);
-  sshconn.start();
-
-  // Connect
-  LOG_DEBUG_STR(itsLogPrefix << "[FinalMetaData] [ControlThread] connecting...");
-  std::string resource = getStorageControlDescription(itsParset.observationID(), -1);
-  PortBroker::ClientStream stream(hostName, storageBrokerPort(itsParset.observationID()), resource, 0);
-
-  // Send parset
-  LOG_DEBUG_STR(itsLogPrefix << "[FinalMetaData] [ControlThread] connected -- sending parset");
-  itsParset.write(&stream);
-  LOG_DEBUG_STR(itsLogPrefix << "[FinalMetaData] [ControlThread] sent parset");
-
-  // Receive final meta data
-  itsFinalMetaData.read(stream);
-  LOG_DEBUG_STR(itsLogPrefix << "[FinalMetaData] [ControlThread] obtained final meta data");
-
-  // Notify clients
-  itsFinalMetaDataAvailable.trigger();
-
-  // Wait for or end the remote process
-  sshconn.wait();
-}
+    void StorageProcesses::finalMetaDataThread()
+    {
+      std::string hostName = itsParset.getString("OLAP.FinalMetaDataGatherer.host");
+      std::string userName = itsParset.getString("OLAP.FinalMetaDataGatherer.userName");
+      std::string pubKey = itsParset.getString("OLAP.FinalMetaDataGatherer.sshPublicKey");
+      std::string privKey = itsParset.getString("OLAP.FinalMetaDataGatherer.sshPrivateKey");
+      std::string executable = itsParset.getString("OLAP.FinalMetaDataGatherer.executable");
 
-}
+      char cwd[1024];
+
+      if (getcwd(cwd, sizeof cwd) == 0)
+        throw SystemCallException("getcwd", errno, THROW_ARGS);
+
+      std::string commandLine = str(boost::format("cd %s && %s %d 2>&1")
+                                    % cwd
+                                    % executable
+                                    % itsParset.observationID()
+                                    );
+
+      // Start the remote process
+      SSHconnection sshconn(itsLogPrefix + "[FinalMetaData] ", hostName, commandLine, userName, pubKey, privKey);
+      sshconn.start();
+
+      // Connect
+      LOG_DEBUG_STR(itsLogPrefix << "[FinalMetaData] [ControlThread] connecting...");
+      std::string resource = getStorageControlDescription(itsParset.observationID(), -1);
+      PortBroker::ClientStream stream(hostName, storageBrokerPort(itsParset.observationID()), resource, 0);
+
+      // Send parset
+      LOG_DEBUG_STR(itsLogPrefix << "[FinalMetaData] [ControlThread] connected -- sending parset");
+      itsParset.write(&stream);
+      LOG_DEBUG_STR(itsLogPrefix << "[FinalMetaData] [ControlThread] sent parset");
+
+      // Receive final meta data
+      itsFinalMetaData.read(stream);
+      LOG_DEBUG_STR(itsLogPrefix << "[FinalMetaData] [ControlThread] obtained final meta data");
+
+      // Notify clients
+      itsFinalMetaDataAvailable.trigger();
+
+      // Wait for or end the remote process
+      sshconn.wait();
+    }
+
+  }
 }
diff --git a/RTCP/Cobalt/GPUProc/src/Storage/StorageProcesses.h b/RTCP/Cobalt/GPUProc/src/Storage/StorageProcesses.h
index d122b72bb92807c8c676a3d5379b6b91a3b9c618..c4415508d4eed6972b4206b089e70282a9b2fd6e 100644
--- a/RTCP/Cobalt/GPUProc/src/Storage/StorageProcesses.h
+++ b/RTCP/Cobalt/GPUProc/src/Storage/StorageProcesses.h
@@ -1,6 +1,6 @@
 #ifndef LOFAR_RTCP_STORAGE_PROCESSES
 #define LOFAR_RTCP_STORAGE_PROCESSES
- 
+
 #include <sys/time.h>
 #include <Common/Thread/Trigger.h>
 #include <Common/Thread/Thread.h>
@@ -11,66 +11,69 @@
 #include <string>
 #include <vector>
 
-namespace LOFAR {
-namespace RTCP {
+namespace LOFAR
+{
+  namespace RTCP
+  {
 
-/*
- * Manage a set of StorageProcess objects. The control sequence is as follows:
- *
- * 1. StorageProcess() creates and starts the StorageProcess objects from the
- *    parset.
- * 2. ... process observation ...
- * 3. forwardFinalMetaData(deadline) starts the FinalMetaDataGatherer, reads the
- *    final meta data and forwards it to the StorageProcess objects.
- * 4. stop(deadline) stops the StorageProcesses with a termination period.
- *
- * FinalMetaDataGatherer is started as:
- *     FinalMetaDataGatherer observationID
- *
- * A Storage process is expected to follow the following protocol: 
- *
-  // establish control connection
-  string resource = getStorageControlDescription(observationID, -1);
-  PortBroker::ServerStream stream(resource);
+    /*
+     * Manage a set of StorageProcess objects. The control sequence is as follows:
+     *
+     * 1. StorageProcess() creates and starts the StorageProcess objects from the
+     *    parset.
+     * 2. ... process observation ...
+     * 3. forwardFinalMetaData(deadline) starts the FinalMetaDataGatherer, reads the
+     *    final meta data and forwards it to the StorageProcess objects.
+     * 4. stop(deadline) stops the StorageProcesses with a termination period.
+     *
+     * FinalMetaDataGatherer is started as:
+     *     FinalMetaDataGatherer observationID
+     *
+     * A Storage process is expected to follow the following protocol:
+     *
+       // establish control connection
+       string resource = getStorageControlDescription(observationID, -1);
+       PortBroker::ServerStream stream(resource);
 
-  // read parset
-  Parset parset(&stream);
+       // read parset
+       Parset parset(&stream);
 
-  // write meta data
-  FinalMetaData finalMetaData;
-  finalMetaData.write(stream);
- */
+       // write meta data
+       FinalMetaData finalMetaData;
+       finalMetaData.write(stream);
+     */
 
-class StorageProcesses {
-public:
-    // calls start()
-    StorageProcesses( const Parset &parset, const std::string &logPrefix );
+    class StorageProcesses
+    {
+    public:
+      // calls start()
+      StorageProcesses( const Parset &parset, const std::string &logPrefix );
 
-    // calls stop(0)
-    ~StorageProcesses();
+      // calls stop(0)
+      ~StorageProcesses();
 
-    // start the FinalMetaDataGatherer process and forward the obtained
-    // meta data to the Storage processes. The deadline is an absolute time out.
-    void forwardFinalMetaData( time_t deadline );
+      // start the FinalMetaDataGatherer process and forward the obtained
+      // meta data to the Storage processes. The deadline is an absolute time out.
+      void forwardFinalMetaData( time_t deadline );
 
-    // stop the processes and control threads, given an absolute time out.
-    void stop( time_t deadline );
+      // stop the processes and control threads, given an absolute time out.
+      void stop( time_t deadline );
 
-private:
-    const Parset			 &itsParset;
-    const std::string                    itsLogPrefix;
+    private:
+      const Parset                         &itsParset;
+      const std::string itsLogPrefix;
 
-    std::vector<SmartPtr<StorageProcess> > itsStorageProcesses;
-    FinalMetaData                        itsFinalMetaData;
-    Trigger                              itsFinalMetaDataAvailable;
+      std::vector<SmartPtr<StorageProcess> > itsStorageProcesses;
+      FinalMetaData itsFinalMetaData;
+      Trigger itsFinalMetaDataAvailable;
 
-    // start the processes and control threads
-    void start();
+      // start the processes and control threads
+      void start();
 
-    void finalMetaDataThread();
-};
+      void finalMetaDataThread();
+    };
 
-}
+  }
 }
 
 #endif
diff --git a/RTCP/Cobalt/GPUProc/src/SubbandMetaData.h b/RTCP/Cobalt/GPUProc/src/SubbandMetaData.h
index caf43dbafe0f1dcb7323e2f24f72efb175e5d594..f0452abe19712f7e730bfceb07697a9733799385 100644
--- a/RTCP/Cobalt/GPUProc/src/SubbandMetaData.h
+++ b/RTCP/Cobalt/GPUProc/src/SubbandMetaData.h
@@ -29,80 +29,82 @@
 #include <vector>
 
 
-namespace LOFAR {
-namespace RTCP {
-
-struct SubbandMetaData
+namespace LOFAR
 {
-  public:
-    SubbandMetaData(unsigned nrTABs);
-
-    struct beamInfo {
-      float delayAtBegin;
-      float delayAfterEnd;
-      double beamDirectionAtBegin[3];
-      double beamDirectionAfterEnd[3];
-    };
+  namespace RTCP
+  {
 
-    // delays for all directions
-    beamInfo stationBeam;
-    std::vector<beamInfo> TABs;
+    struct SubbandMetaData
+    {
+    public:
+      SubbandMetaData(unsigned nrTABs);
 
-    // flag set. 
-    SparseSet<unsigned> flags;
- 
-    void read(Stream *str);
-    void write(Stream *str) const;
+      struct beamInfo {
+        float delayAtBegin;
+        float delayAfterEnd;
+        double beamDirectionAtBegin[3];
+        double beamDirectionAfterEnd[3];
+      };
 
-    static const size_t MAXFLAGSIZE = 132;
-};
+      // delays for all directions
+      beamInfo stationBeam;
+      std::vector<beamInfo> TABs;
 
+      // flag set.
+      SparseSet<unsigned> flags;
 
-inline SubbandMetaData::SubbandMetaData(unsigned nrTABs)
-: 
-  TABs(nrTABs)
-{
-}
+      void read(Stream *str);
+      void write(Stream *str) const;
 
+      static const size_t MAXFLAGSIZE = 132;
+    };
 
-inline void SubbandMetaData::read(Stream *str)
-{
-  // read station beam
-  str->read(&stationBeam, sizeof stationBeam);
 
-  // read TABs
-  size_t nrTABs;
-  str->read(&nrTABs, sizeof nrTABs);
-  TABs.resize(nrTABs);
-  str->read(&TABs[0], TABs.size() * sizeof TABs[0]);
+    inline SubbandMetaData::SubbandMetaData(unsigned nrTABs)
+      :
+      TABs(nrTABs)
+    {
+    }
 
-  // read flags
-  vector<char> flagsBuffer(MAXFLAGSIZE);
-  str->read(&flagsBuffer[0], flagsBuffer.size());
-  flags.unmarshall(&flagsBuffer[0]);
-}
 
+    inline void SubbandMetaData::read(Stream *str)
+    {
+      // read station beam
+      str->read(&stationBeam, sizeof stationBeam);
 
-inline void SubbandMetaData::write(Stream *str) const
-{
-  // write station beam
-  str->write(&stationBeam, sizeof stationBeam);
+      // read TABs
+      size_t nrTABs;
+      str->read(&nrTABs, sizeof nrTABs);
+      TABs.resize(nrTABs);
+      str->read(&TABs[0], TABs.size() * sizeof TABs[0]);
+
+      // read flags
+      vector<char> flagsBuffer(MAXFLAGSIZE);
+      str->read(&flagsBuffer[0], flagsBuffer.size());
+      flags.unmarshall(&flagsBuffer[0]);
+    }
+
+
+    inline void SubbandMetaData::write(Stream *str) const
+    {
+      // write station beam
+      str->write(&stationBeam, sizeof stationBeam);
 
-  // write TABs
-  size_t nrTABs = TABs.size();
-  str->write(&nrTABs, sizeof nrTABs);
-  str->write(&TABs[0], TABs.size() * sizeof TABs[0]);
+      // write TABs
+      size_t nrTABs = TABs.size();
+      str->write(&nrTABs, sizeof nrTABs);
+      str->write(&TABs[0], TABs.size() * sizeof TABs[0]);
 
-  // write flags
-  vector<char> flagsBuffer(MAXFLAGSIZE);
+      // write flags
+      vector<char> flagsBuffer(MAXFLAGSIZE);
 
-  ssize_t size = flags.marshall(&flagsBuffer[0], flagsBuffer.size());
-  ASSERT(size >= 0);
+      ssize_t size = flags.marshall(&flagsBuffer[0], flagsBuffer.size());
+      ASSERT(size >= 0);
 
-  str->write(&flagsBuffer[0], flagsBuffer.size());
-}
+      str->write(&flagsBuffer[0], flagsBuffer.size());
+    }
 
-} // namespace RTCP
+  } // namespace RTCP
 } // namespace LOFAR
 
-#endif 
+#endif
diff --git a/RTCP/Cobalt/GPUProc/src/UHEP/BeamFormer.cl b/RTCP/Cobalt/GPUProc/src/UHEP/BeamFormer.cl
index a5fb1def6202502e6b4e7d03868fd35789db3be6..4858286041eb04a169b70fce289c5d008a596963 100644
--- a/RTCP/Cobalt/GPUProc/src/UHEP/BeamFormer.cl
+++ b/RTCP/Cobalt/GPUProc/src/UHEP/BeamFormer.cl
@@ -1,4 +1,4 @@
-#define MAX(A,B) ((A)>(B)?(A):(B))
+#define MAX(A,B) ((A)>(B) ? (A) : (B))
 #define NR_PASSES MAX((NR_STATIONS + 6) / 16, 1) // gives best results on GTX 680
 #define NR_STATIONS_PER_PASS ((NR_STATIONS + NR_PASSES - 1) / NR_PASSES)
 
@@ -19,16 +19,16 @@ typedef __global float2 (*WeightsType)[NR_STATIONS][NR_SUBBANDS][NR_TABS];
 
 
 __kernel void complexVoltages(__global void *complexVoltagesPtr,
-			      __global const void *samplesPtr,
-			      __global const void *weightsPtr)
+                              __global const void *samplesPtr,
+                              __global const void *weightsPtr)
 {
   ComplexVoltagesType complexVoltages = (ComplexVoltagesType) complexVoltagesPtr;
-  SamplesType samples   = (SamplesType) samplesPtr;
-  WeightsType weights	= (WeightsType) weightsPtr;
+  SamplesType samples = (SamplesType) samplesPtr;
+  WeightsType weights = (WeightsType) weightsPtr;
 
-  uint pol		= get_local_id(0);
-  uint tab		= get_local_id(1);
-  uint subband		= get_global_id(2);
+  uint pol = get_local_id(0);
+  uint tab = get_local_id(1);
+  uint subband = get_global_id(2);
 
   float2 sample;
   __local union {
@@ -42,70 +42,70 @@ __kernel void complexVoltages(__global void *complexVoltagesPtr,
     float2 weight_00;
 
     if (NR_STATIONS % NR_STATIONS_PER_PASS == 0 || first_station + 0 < NR_STATIONS)
-      weight_00 = (*weights)[first_station +  0][subband][tab];
+      weight_00 = (*weights)[first_station + 0][subband][tab];
 #endif
 
 #if NR_STATIONS_PER_PASS >= 2
     float2 weight_01;
 
     if (NR_STATIONS % NR_STATIONS_PER_PASS == 0 || first_station + 1 < NR_STATIONS)
-      weight_01 = (*weights)[first_station +  1][subband][tab];
+      weight_01 = (*weights)[first_station + 1][subband][tab];
 #endif
 
 #if NR_STATIONS_PER_PASS >= 3
     float2 weight_02;
 
     if (NR_STATIONS % NR_STATIONS_PER_PASS == 0 || first_station + 2 < NR_STATIONS)
-      weight_02 = (*weights)[first_station +  2][subband][tab];
+      weight_02 = (*weights)[first_station + 2][subband][tab];
 #endif
 
 #if NR_STATIONS_PER_PASS >= 4
     float2 weight_03;
 
     if (NR_STATIONS % NR_STATIONS_PER_PASS == 0 || first_station + 3 < NR_STATIONS)
-      weight_03 = (*weights)[first_station +  3][subband][tab];
+      weight_03 = (*weights)[first_station + 3][subband][tab];
 #endif
 
 #if NR_STATIONS_PER_PASS >= 5
     float2 weight_04;
 
     if (NR_STATIONS % NR_STATIONS_PER_PASS == 0 || first_station + 4 < NR_STATIONS)
-      weight_04 = (*weights)[first_station +  4][subband][tab];
+      weight_04 = (*weights)[first_station + 4][subband][tab];
 #endif
 
 #if NR_STATIONS_PER_PASS >= 6
     float2 weight_05;
 
     if (NR_STATIONS % NR_STATIONS_PER_PASS == 0 || first_station + 5 < NR_STATIONS)
-      weight_05 = (*weights)[first_station +  5][subband][tab];
+      weight_05 = (*weights)[first_station + 5][subband][tab];
 #endif
 
 #if NR_STATIONS_PER_PASS >= 7
     float2 weight_06;
 
     if (NR_STATIONS % NR_STATIONS_PER_PASS == 0 || first_station + 6 < NR_STATIONS)
-      weight_06 = (*weights)[first_station +  6][subband][tab];
+      weight_06 = (*weights)[first_station + 6][subband][tab];
 #endif
 
 #if NR_STATIONS_PER_PASS >= 8
     float2 weight_07;
 
     if (NR_STATIONS % NR_STATIONS_PER_PASS == 0 || first_station + 7 < NR_STATIONS)
-      weight_07 = (*weights)[first_station +  7][subband][tab];
+      weight_07 = (*weights)[first_station + 7][subband][tab];
 #endif
 
 #if NR_STATIONS_PER_PASS >= 9
     float2 weight_08;
 
     if (NR_STATIONS % NR_STATIONS_PER_PASS == 0 || first_station + 8 < NR_STATIONS)
-      weight_08 = (*weights)[first_station +  8][subband][tab];
+      weight_08 = (*weights)[first_station + 8][subband][tab];
 #endif
 
 #if NR_STATIONS_PER_PASS >= 10
     float2 weight_09;
 
     if (NR_STATIONS % NR_STATIONS_PER_PASS == 0 || first_station + 9 < NR_STATIONS)
-      weight_09 = (*weights)[first_station +  9][subband][tab];
+      weight_09 = (*weights)[first_station + 9][subband][tab];
 #endif
 
 #if NR_STATIONS_PER_PASS >= 11
@@ -378,404 +378,404 @@ __kernel void complexVoltages(__global void *complexVoltagesPtr,
       barrier(CLK_LOCAL_MEM_FENCE);
 
       for (uint i = get_local_id(0) + NR_POLARIZATIONS * get_local_id(1); i < NR_STATIONS_PER_PASS * 16; i += NR_TABS * NR_POLARIZATIONS) {
-	uint t = i % 16;
-	uint s = i / 16;
+        uint t = i % 16;
+        uint s = i / 16;
 
-	if (time + t < NR_SAMPLES_PER_SUBBAND + NR_STATION_FILTER_TAPS - 1)
-	  if (NR_STATIONS % NR_STATIONS_PER_PASS == 0 || first_station + s < NR_STATIONS)
-	    _local.samples4[0][i] = convert_float4((*samples)[first_station + s][subband][time + t]);
+        if (time + t < NR_SAMPLES_PER_SUBBAND + NR_STATION_FILTER_TAPS - 1)
+          if (NR_STATIONS % NR_STATIONS_PER_PASS == 0 || first_station + s < NR_STATIONS)
+            _local.samples4[0][i] = convert_float4((*samples)[first_station + s][subband][time + t]);
       }
 
       barrier(CLK_LOCAL_MEM_FENCE);
 
-      for (uint t = 0; t < min(16U, (NR_SAMPLES_PER_SUBBAND + NR_STATION_FILTER_TAPS - 1 - time)); t ++) {
-	float2 sum = first_station == 0 ? 0 : (*complexVoltages)[subband][time + t][tab][pol];
+      for (uint t = 0; t < min(16U, (NR_SAMPLES_PER_SUBBAND + NR_STATION_FILTER_TAPS - 1 - time)); t++) {
+        float2 sum = first_station == 0 ? 0 : (*complexVoltages)[subband][time + t][tab][pol];
 
 #if NR_STATIONS_PER_PASS >= 1
-	if (NR_STATIONS % NR_STATIONS_PER_PASS == 0 || first_station + 1 < NR_STATIONS) {
-	  sample = _local.samples[ 0][t][pol];
-	  sum += weight_00.xx * sample;
-	  sum += weight_00.yy * (float2) (-sample.y, sample.x);
-	}
+        if (NR_STATIONS % NR_STATIONS_PER_PASS == 0 || first_station + 1 < NR_STATIONS) {
+          sample = _local.samples[ 0][t][pol];
+          sum += weight_00.xx * sample;
+          sum += weight_00.yy * (float2) (-sample.y, sample.x);
+        }
 #endif
 
 #if NR_STATIONS_PER_PASS >= 2
-	if (NR_STATIONS % NR_STATIONS_PER_PASS == 0 || first_station + 2 < NR_STATIONS) {
-	  sample = _local.samples[ 1][t][pol];
-	  sum += weight_01.xx * sample;
-	  sum += weight_01.yy * (float2) (-sample.y, sample.x);
-	}
+        if (NR_STATIONS % NR_STATIONS_PER_PASS == 0 || first_station + 2 < NR_STATIONS) {
+          sample = _local.samples[ 1][t][pol];
+          sum += weight_01.xx * sample;
+          sum += weight_01.yy * (float2) (-sample.y, sample.x);
+        }
 #endif
 
 #if NR_STATIONS_PER_PASS >= 3
-	if (NR_STATIONS % NR_STATIONS_PER_PASS == 0 || first_station + 3 < NR_STATIONS) {
-	  sample = _local.samples[ 2][t][pol];
-	  sum += weight_02.xx * sample;
-	  sum += weight_02.yy * (float2) (-sample.y, sample.x);
-	}
+        if (NR_STATIONS % NR_STATIONS_PER_PASS == 0 || first_station + 3 < NR_STATIONS) {
+          sample = _local.samples[ 2][t][pol];
+          sum += weight_02.xx * sample;
+          sum += weight_02.yy * (float2) (-sample.y, sample.x);
+        }
 #endif
 
 #if NR_STATIONS_PER_PASS >= 4
-	if (NR_STATIONS % NR_STATIONS_PER_PASS == 0 || first_station + 4 < NR_STATIONS) {
-	  sample = _local.samples[ 3][t][pol];
-	  sum += weight_03.xx * sample;
-	  sum += weight_03.yy * (float2) (-sample.y, sample.x);
-	}
+        if (NR_STATIONS % NR_STATIONS_PER_PASS == 0 || first_station + 4 < NR_STATIONS) {
+          sample = _local.samples[ 3][t][pol];
+          sum += weight_03.xx * sample;
+          sum += weight_03.yy * (float2) (-sample.y, sample.x);
+        }
 #endif
 
 #if NR_STATIONS_PER_PASS >= 5
-	if (NR_STATIONS % NR_STATIONS_PER_PASS == 0 || first_station + 5 < NR_STATIONS) {
-	  sample = _local.samples[ 4][t][pol];
-	  sum += weight_04.xx * sample;
-	  sum += weight_04.yy * (float2) (-sample.y, sample.x);
-	}
+        if (NR_STATIONS % NR_STATIONS_PER_PASS == 0 || first_station + 5 < NR_STATIONS) {
+          sample = _local.samples[ 4][t][pol];
+          sum += weight_04.xx * sample;
+          sum += weight_04.yy * (float2) (-sample.y, sample.x);
+        }
 #endif
 
 #if NR_STATIONS_PER_PASS >= 6
-	if (NR_STATIONS % NR_STATIONS_PER_PASS == 0 || first_station + 6 < NR_STATIONS) {
-	  sample = _local.samples[ 5][t][pol];
-	  sum += weight_05.xx * sample;
-	  sum += weight_05.yy * (float2) (-sample.y, sample.x);
-	}
+        if (NR_STATIONS % NR_STATIONS_PER_PASS == 0 || first_station + 6 < NR_STATIONS) {
+          sample = _local.samples[ 5][t][pol];
+          sum += weight_05.xx * sample;
+          sum += weight_05.yy * (float2) (-sample.y, sample.x);
+        }
 #endif
 
 #if NR_STATIONS_PER_PASS >= 7
-	if (NR_STATIONS % NR_STATIONS_PER_PASS == 0 || first_station + 7 < NR_STATIONS) {
-	  sample = _local.samples[ 6][t][pol];
-	  sum += weight_06.xx * sample;
-	  sum += weight_06.yy * (float2) (-sample.y, sample.x);
-	}
+        if (NR_STATIONS % NR_STATIONS_PER_PASS == 0 || first_station + 7 < NR_STATIONS) {
+          sample = _local.samples[ 6][t][pol];
+          sum += weight_06.xx * sample;
+          sum += weight_06.yy * (float2) (-sample.y, sample.x);
+        }
 #endif
 
 #if NR_STATIONS_PER_PASS >= 8
-	if (NR_STATIONS % NR_STATIONS_PER_PASS == 0 || first_station + 8 < NR_STATIONS) {
-	  sample = _local.samples[ 7][t][pol];
-	  sum += weight_07.xx * sample;
-	  sum += weight_07.yy * (float2) (-sample.y, sample.x);
-	}
+        if (NR_STATIONS % NR_STATIONS_PER_PASS == 0 || first_station + 8 < NR_STATIONS) {
+          sample = _local.samples[ 7][t][pol];
+          sum += weight_07.xx * sample;
+          sum += weight_07.yy * (float2) (-sample.y, sample.x);
+        }
 #endif
 
 #if NR_STATIONS_PER_PASS >= 9
-	if (NR_STATIONS % NR_STATIONS_PER_PASS == 0 || first_station + 9 < NR_STATIONS) {
-	  sample = _local.samples[ 8][t][pol];
-	  sum += weight_08.xx * sample;
-	  sum += weight_08.yy * (float2) (-sample.y, sample.x);
-	}
+        if (NR_STATIONS % NR_STATIONS_PER_PASS == 0 || first_station + 9 < NR_STATIONS) {
+          sample = _local.samples[ 8][t][pol];
+          sum += weight_08.xx * sample;
+          sum += weight_08.yy * (float2) (-sample.y, sample.x);
+        }
 #endif
 
 #if NR_STATIONS_PER_PASS >= 10
-	if (NR_STATIONS % NR_STATIONS_PER_PASS == 0 || first_station + 10 < NR_STATIONS) {
-	  sample = _local.samples[ 9][t][pol];
-	  sum += weight_09.xx * sample;
-	  sum += weight_09.yy * (float2) (-sample.y, sample.x);
-	}
+        if (NR_STATIONS % NR_STATIONS_PER_PASS == 0 || first_station + 10 < NR_STATIONS) {
+          sample = _local.samples[ 9][t][pol];
+          sum += weight_09.xx * sample;
+          sum += weight_09.yy * (float2) (-sample.y, sample.x);
+        }
 #endif
 
 #if NR_STATIONS_PER_PASS >= 11
-	if (NR_STATIONS % NR_STATIONS_PER_PASS == 0 || first_station + 11 < NR_STATIONS) {
-	  sample = _local.samples[10][t][pol];
-	  sum += weight_10.xx * sample;
-	  sum += weight_10.yy * (float2) (-sample.y, sample.x);
-	}
+        if (NR_STATIONS % NR_STATIONS_PER_PASS == 0 || first_station + 11 < NR_STATIONS) {
+          sample = _local.samples[10][t][pol];
+          sum += weight_10.xx * sample;
+          sum += weight_10.yy * (float2) (-sample.y, sample.x);
+        }
 #endif
 
 #if NR_STATIONS_PER_PASS >= 12
-	if (NR_STATIONS % NR_STATIONS_PER_PASS == 0 || first_station + 12 < NR_STATIONS) {
-	  sample = _local.samples[11][t][pol];
-	  sum += weight_11.xx * sample;
-	  sum += weight_11.yy * (float2) (-sample.y, sample.x);
-	}
+        if (NR_STATIONS % NR_STATIONS_PER_PASS == 0 || first_station + 12 < NR_STATIONS) {
+          sample = _local.samples[11][t][pol];
+          sum += weight_11.xx * sample;
+          sum += weight_11.yy * (float2) (-sample.y, sample.x);
+        }
 #endif
 
 #if NR_STATIONS_PER_PASS >= 13
-	if (NR_STATIONS % NR_STATIONS_PER_PASS == 0 || first_station + 13 < NR_STATIONS) {
-	  sample = _local.samples[12][t][pol];
-	  sum += weight_12.xx * sample;
-	  sum += weight_12.yy * (float2) (-sample.y, sample.x);
-	}
+        if (NR_STATIONS % NR_STATIONS_PER_PASS == 0 || first_station + 13 < NR_STATIONS) {
+          sample = _local.samples[12][t][pol];
+          sum += weight_12.xx * sample;
+          sum += weight_12.yy * (float2) (-sample.y, sample.x);
+        }
 #endif
 
 #if NR_STATIONS_PER_PASS >= 14
-	if (NR_STATIONS % NR_STATIONS_PER_PASS == 0 || first_station + 14 < NR_STATIONS) {
-	  sample = _local.samples[13][t][pol];
-	  sum += weight_13.xx * sample;
-	  sum += weight_13.yy * (float2) (-sample.y, sample.x);
-	}
+        if (NR_STATIONS % NR_STATIONS_PER_PASS == 0 || first_station + 14 < NR_STATIONS) {
+          sample = _local.samples[13][t][pol];
+          sum += weight_13.xx * sample;
+          sum += weight_13.yy * (float2) (-sample.y, sample.x);
+        }
 #endif
 
 #if NR_STATIONS_PER_PASS >= 15
-	if (NR_STATIONS % NR_STATIONS_PER_PASS == 0 || first_station + 15 < NR_STATIONS) {
-	  sample = _local.samples[14][t][pol];
-	  sum += weight_14.xx * sample;
-	  sum += weight_14.yy * (float2) (-sample.y, sample.x);
-	}
+        if (NR_STATIONS % NR_STATIONS_PER_PASS == 0 || first_station + 15 < NR_STATIONS) {
+          sample = _local.samples[14][t][pol];
+          sum += weight_14.xx * sample;
+          sum += weight_14.yy * (float2) (-sample.y, sample.x);
+        }
 #endif
 
 #if NR_STATIONS_PER_PASS >= 16
-	if (NR_STATIONS % NR_STATIONS_PER_PASS == 0 || first_station + 15 < NR_STATIONS) {
-	  sample = _local.samples[15][t][pol];
-	  sum += weight_15.xx * sample;
-	  sum += weight_15.yy * (float2) (-sample.y, sample.x);
-	}
+        if (NR_STATIONS % NR_STATIONS_PER_PASS == 0 || first_station + 15 < NR_STATIONS) {
+          sample = _local.samples[15][t][pol];
+          sum += weight_15.xx * sample;
+          sum += weight_15.yy * (float2) (-sample.y, sample.x);
+        }
 #endif
 
 #if NR_STATIONS_PER_PASS >= 17
-	if (NR_STATIONS % NR_STATIONS_PER_PASS == 0 || first_station + 16 < NR_STATIONS) {
-	  sample = _local.samples[16][t][pol];
-	  sum += weight_16.xx * sample;
-	  sum += weight_16.yy * (float2) (-sample.y, sample.x);
-	}
+        if (NR_STATIONS % NR_STATIONS_PER_PASS == 0 || first_station + 16 < NR_STATIONS) {
+          sample = _local.samples[16][t][pol];
+          sum += weight_16.xx * sample;
+          sum += weight_16.yy * (float2) (-sample.y, sample.x);
+        }
 #endif
 
 #if NR_STATIONS_PER_PASS >= 18
-	if (NR_STATIONS % NR_STATIONS_PER_PASS == 0 || first_station + 17 < NR_STATIONS) {
-	  sample = _local.samples[17][t][pol];
-	  sum += weight_17.xx * sample;
-	  sum += weight_17.yy * (float2) (-sample.y, sample.x);
-	}
+        if (NR_STATIONS % NR_STATIONS_PER_PASS == 0 || first_station + 17 < NR_STATIONS) {
+          sample = _local.samples[17][t][pol];
+          sum += weight_17.xx * sample;
+          sum += weight_17.yy * (float2) (-sample.y, sample.x);
+        }
 #endif
 
 #if NR_STATIONS_PER_PASS >= 19
-	if (NR_STATIONS % NR_STATIONS_PER_PASS == 0 || first_station + 18 < NR_STATIONS) {
-	  sample = _local.samples[18][t][pol];
-	  sum += weight_18.xx * sample;
-	  sum += weight_18.yy * (float2) (-sample.y, sample.x);
-	}
+        if (NR_STATIONS % NR_STATIONS_PER_PASS == 0 || first_station + 18 < NR_STATIONS) {
+          sample = _local.samples[18][t][pol];
+          sum += weight_18.xx * sample;
+          sum += weight_18.yy * (float2) (-sample.y, sample.x);
+        }
 #endif
 
 #if NR_STATIONS_PER_PASS >= 20
-	if (NR_STATIONS % NR_STATIONS_PER_PASS == 0 || first_station + 19 < NR_STATIONS) {
-	  sample = _local.samples[19][t][pol];
-	  sum += weight_19.xx * sample;
-	  sum += weight_19.yy * (float2) (-sample.y, sample.x);
-	}
+        if (NR_STATIONS % NR_STATIONS_PER_PASS == 0 || first_station + 19 < NR_STATIONS) {
+          sample = _local.samples[19][t][pol];
+          sum += weight_19.xx * sample;
+          sum += weight_19.yy * (float2) (-sample.y, sample.x);
+        }
 #endif
 
 #if NR_STATIONS_PER_PASS >= 21
-	if (NR_STATIONS % NR_STATIONS_PER_PASS == 0 || first_station + 20 < NR_STATIONS) {
-	  sample = _local.samples[20][t][pol];
-	  sum += weight_20.xx * sample;
-	  sum += weight_20.yy * (float2) (-sample.y, sample.x);
-	}
+        if (NR_STATIONS % NR_STATIONS_PER_PASS == 0 || first_station + 20 < NR_STATIONS) {
+          sample = _local.samples[20][t][pol];
+          sum += weight_20.xx * sample;
+          sum += weight_20.yy * (float2) (-sample.y, sample.x);
+        }
 #endif
 
 #if NR_STATIONS_PER_PASS >= 22
-	if (NR_STATIONS % NR_STATIONS_PER_PASS == 0 || first_station + 21 < NR_STATIONS) {
-	  sample = _local.samples[21][t][pol];
-	  sum += weight_21.xx * sample;
-	  sum += weight_21.yy * (float2) (-sample.y, sample.x);
-	}
+        if (NR_STATIONS % NR_STATIONS_PER_PASS == 0 || first_station + 21 < NR_STATIONS) {
+          sample = _local.samples[21][t][pol];
+          sum += weight_21.xx * sample;
+          sum += weight_21.yy * (float2) (-sample.y, sample.x);
+        }
 #endif
 
 #if NR_STATIONS_PER_PASS >= 23
-	if (NR_STATIONS % NR_STATIONS_PER_PASS == 0 || first_station + 22 < NR_STATIONS) {
-	  sample = _local.samples[22][t][pol];
-	  sum += weight_22.xx * sample;
-	  sum += weight_22.yy * (float2) (-sample.y, sample.x);
-	}
+        if (NR_STATIONS % NR_STATIONS_PER_PASS == 0 || first_station + 22 < NR_STATIONS) {
+          sample = _local.samples[22][t][pol];
+          sum += weight_22.xx * sample;
+          sum += weight_22.yy * (float2) (-sample.y, sample.x);
+        }
 #endif
 
 #if NR_STATIONS_PER_PASS >= 24
-	if (NR_STATIONS % NR_STATIONS_PER_PASS == 0 || first_station + 23 < NR_STATIONS) {
-	  sample = _local.samples[23][t][pol];
-	  sum += weight_23.xx * sample;
-	  sum += weight_23.yy * (float2) (-sample.y, sample.x);
-	}
+        if (NR_STATIONS % NR_STATIONS_PER_PASS == 0 || first_station + 23 < NR_STATIONS) {
+          sample = _local.samples[23][t][pol];
+          sum += weight_23.xx * sample;
+          sum += weight_23.yy * (float2) (-sample.y, sample.x);
+        }
 #endif
 
 #if NR_STATIONS_PER_PASS >= 25
-	if (NR_STATIONS % NR_STATIONS_PER_PASS == 0 || first_station + 25 < NR_STATIONS) {
-	  sample = _local.samples[24][t][pol];
-	  sum += weight_24.xx * sample;
-	  sum += weight_24.yy * (float2) (-sample.y, sample.x);
-	}
+        if (NR_STATIONS % NR_STATIONS_PER_PASS == 0 || first_station + 25 < NR_STATIONS) {
+          sample = _local.samples[24][t][pol];
+          sum += weight_24.xx * sample;
+          sum += weight_24.yy * (float2) (-sample.y, sample.x);
+        }
 #endif
 
 #if NR_STATIONS_PER_PASS >= 26
-	if (NR_STATIONS % NR_STATIONS_PER_PASS == 0 || first_station + 25 < NR_STATIONS) {
-	  sample = _local.samples[25][t][pol];
-	  sum += weight_25.xx * sample;
-	  sum += weight_25.yy * (float2) (-sample.y, sample.x);
-	}
+        if (NR_STATIONS % NR_STATIONS_PER_PASS == 0 || first_station + 25 < NR_STATIONS) {
+          sample = _local.samples[25][t][pol];
+          sum += weight_25.xx * sample;
+          sum += weight_25.yy * (float2) (-sample.y, sample.x);
+        }
 #endif
 
 #if NR_STATIONS_PER_PASS >= 27
-	if (NR_STATIONS % NR_STATIONS_PER_PASS == 0 || first_station + 26 < NR_STATIONS) {
-	  sample = _local.samples[26][t][pol];
-	  sum += weight_26.xx * sample;
-	  sum += weight_26.yy * (float2) (-sample.y, sample.x);
-	}
+        if (NR_STATIONS % NR_STATIONS_PER_PASS == 0 || first_station + 26 < NR_STATIONS) {
+          sample = _local.samples[26][t][pol];
+          sum += weight_26.xx * sample;
+          sum += weight_26.yy * (float2) (-sample.y, sample.x);
+        }
 #endif
 
 #if NR_STATIONS_PER_PASS >= 28
-	if (NR_STATIONS % NR_STATIONS_PER_PASS == 0 || first_station + 27 < NR_STATIONS) {
-	  sample = _local.samples[27][t][pol];
-	  sum += weight_27.xx * sample;
-	  sum += weight_27.yy * (float2) (-sample.y, sample.x);
-	}
+        if (NR_STATIONS % NR_STATIONS_PER_PASS == 0 || first_station + 27 < NR_STATIONS) {
+          sample = _local.samples[27][t][pol];
+          sum += weight_27.xx * sample;
+          sum += weight_27.yy * (float2) (-sample.y, sample.x);
+        }
 #endif
 
 #if NR_STATIONS_PER_PASS >= 29
-	if (NR_STATIONS % NR_STATIONS_PER_PASS == 0 || first_station + 28 < NR_STATIONS) {
-	  sample = _local.samples[28][t][pol];
-	  sum += weight_28.xx * sample;
-	  sum += weight_28.yy * (float2) (-sample.y, sample.x);
-	}
+        if (NR_STATIONS % NR_STATIONS_PER_PASS == 0 || first_station + 28 < NR_STATIONS) {
+          sample = _local.samples[28][t][pol];
+          sum += weight_28.xx * sample;
+          sum += weight_28.yy * (float2) (-sample.y, sample.x);
+        }
 #endif
 
 #if NR_STATIONS_PER_PASS >= 30
-	if (NR_STATIONS % NR_STATIONS_PER_PASS == 0 || first_station + 29 < NR_STATIONS) {
-	  sample = _local.samples[29][t][pol];
-	  sum += weight_29.xx * sample;
-	  sum += weight_29.yy * (float2) (-sample.y, sample.x);
-	}
+        if (NR_STATIONS % NR_STATIONS_PER_PASS == 0 || first_station + 29 < NR_STATIONS) {
+          sample = _local.samples[29][t][pol];
+          sum += weight_29.xx * sample;
+          sum += weight_29.yy * (float2) (-sample.y, sample.x);
+        }
 #endif
 
 #if NR_STATIONS_PER_PASS >= 31
-	if (NR_STATIONS % NR_STATIONS_PER_PASS == 0 || first_station + 30 < NR_STATIONS) {
-	  sample = _local.samples[30][t][pol];
-	  sum += weight_30.xx * sample;
-	  sum += weight_30.yy * (float2) (-sample.y, sample.x);
-	}
+        if (NR_STATIONS % NR_STATIONS_PER_PASS == 0 || first_station + 30 < NR_STATIONS) {
+          sample = _local.samples[30][t][pol];
+          sum += weight_30.xx * sample;
+          sum += weight_30.yy * (float2) (-sample.y, sample.x);
+        }
 #endif
 
 #if NR_STATIONS_PER_PASS >= 32
-	if (NR_STATIONS % NR_STATIONS_PER_PASS == 0 || first_station + 31 < NR_STATIONS) {
-	  sample = _local.samples[31][t][pol];
-	  sum += weight_31.xx * sample;
-	  sum += weight_31.yy * (float2) (-sample.y, sample.x);
-	}
+        if (NR_STATIONS % NR_STATIONS_PER_PASS == 0 || first_station + 31 < NR_STATIONS) {
+          sample = _local.samples[31][t][pol];
+          sum += weight_31.xx * sample;
+          sum += weight_31.yy * (float2) (-sample.y, sample.x);
+        }
 #endif
 
 #if NR_STATIONS_PER_PASS >= 33
-	if (NR_STATIONS % NR_STATIONS_PER_PASS == 0 || first_station + 32 < NR_STATIONS) {
-	  sample = _local.samples[32][t][pol];
-	  sum += weight_32.xx * sample;
-	  sum += weight_32.yy * (float2) (-sample.y, sample.x);
-	}
+        if (NR_STATIONS % NR_STATIONS_PER_PASS == 0 || first_station + 32 < NR_STATIONS) {
+          sample = _local.samples[32][t][pol];
+          sum += weight_32.xx * sample;
+          sum += weight_32.yy * (float2) (-sample.y, sample.x);
+        }
 #endif
 
 #if NR_STATIONS_PER_PASS >= 34
-	if (NR_STATIONS % NR_STATIONS_PER_PASS == 0 || first_station + 33 < NR_STATIONS) {
-	  sample = _local.samples[33][t][pol];
-	  sum += weight_33.xx * sample;
-	  sum += weight_33.yy * (float2) (-sample.y, sample.x);
-	}
+        if (NR_STATIONS % NR_STATIONS_PER_PASS == 0 || first_station + 33 < NR_STATIONS) {
+          sample = _local.samples[33][t][pol];
+          sum += weight_33.xx * sample;
+          sum += weight_33.yy * (float2) (-sample.y, sample.x);
+        }
 #endif
 
 #if NR_STATIONS_PER_PASS >= 35
-	if (NR_STATIONS % NR_STATIONS_PER_PASS == 0 || first_station + 34 < NR_STATIONS) {
-	  sample = _local.samples[34][t][pol];
-	  sum += weight_34.xx * sample;
-	  sum += weight_34.yy * (float2) (-sample.y, sample.x);
-	}
+        if (NR_STATIONS % NR_STATIONS_PER_PASS == 0 || first_station + 34 < NR_STATIONS) {
+          sample = _local.samples[34][t][pol];
+          sum += weight_34.xx * sample;
+          sum += weight_34.yy * (float2) (-sample.y, sample.x);
+        }
 #endif
 
 #if NR_STATIONS_PER_PASS >= 36
-	if (NR_STATIONS % NR_STATIONS_PER_PASS == 0 || first_station + 35 < NR_STATIONS) {
-	  sample = _local.samples[35][t][pol];
-	  sum += weight_35.xx * sample;
-	  sum += weight_35.yy * (float2) (-sample.y, sample.x);
-	}
+        if (NR_STATIONS % NR_STATIONS_PER_PASS == 0 || first_station + 35 < NR_STATIONS) {
+          sample = _local.samples[35][t][pol];
+          sum += weight_35.xx * sample;
+          sum += weight_35.yy * (float2) (-sample.y, sample.x);
+        }
 #endif
 
 #if NR_STATIONS_PER_PASS >= 37
-	if (NR_STATIONS % NR_STATIONS_PER_PASS == 0 || first_station + 36 < NR_STATIONS) {
-	  sample = _local.samples[36][t][pol];
-	  sum += weight_36.xx * sample;
-	  sum += weight_36.yy * (float2) (-sample.y, sample.x);
-	}
+        if (NR_STATIONS % NR_STATIONS_PER_PASS == 0 || first_station + 36 < NR_STATIONS) {
+          sample = _local.samples[36][t][pol];
+          sum += weight_36.xx * sample;
+          sum += weight_36.yy * (float2) (-sample.y, sample.x);
+        }
 #endif
 
 #if NR_STATIONS_PER_PASS >= 38
-	if (NR_STATIONS % NR_STATIONS_PER_PASS == 0 || first_station + 37 < NR_STATIONS) {
-	  sample = _local.samples[37][t][pol];
-	  sum += weight_37.xx * sample;
-	  sum += weight_37.yy * (float2) (-sample.y, sample.x);
-	}
+        if (NR_STATIONS % NR_STATIONS_PER_PASS == 0 || first_station + 37 < NR_STATIONS) {
+          sample = _local.samples[37][t][pol];
+          sum += weight_37.xx * sample;
+          sum += weight_37.yy * (float2) (-sample.y, sample.x);
+        }
 #endif
 
 #if NR_STATIONS_PER_PASS >= 39
-	if (NR_STATIONS % NR_STATIONS_PER_PASS == 0 || first_station + 38 < NR_STATIONS) {
-	  sample = _local.samples[38][t][pol];
-	  sum += weight_38.xx * sample;
-	  sum += weight_38.yy * (float2) (-sample.y, sample.x);
-	}
+        if (NR_STATIONS % NR_STATIONS_PER_PASS == 0 || first_station + 38 < NR_STATIONS) {
+          sample = _local.samples[38][t][pol];
+          sum += weight_38.xx * sample;
+          sum += weight_38.yy * (float2) (-sample.y, sample.x);
+        }
 #endif
 
 #if NR_STATIONS_PER_PASS >= 40
-	if (NR_STATIONS % NR_STATIONS_PER_PASS == 0 || first_station + 39 < NR_STATIONS) {
-	  sample = _local.samples[39][t][pol];
-	  sum += weight_39.xx * sample;
-	  sum += weight_39.yy * (float2) (-sample.y, sample.x);
-	}
+        if (NR_STATIONS % NR_STATIONS_PER_PASS == 0 || first_station + 39 < NR_STATIONS) {
+          sample = _local.samples[39][t][pol];
+          sum += weight_39.xx * sample;
+          sum += weight_39.yy * (float2) (-sample.y, sample.x);
+        }
 #endif
 
 #if NR_STATIONS_PER_PASS >= 41
-	if (NR_STATIONS % NR_STATIONS_PER_PASS == 0 || first_station + 40 < NR_STATIONS) {
-	  sample = _local.samples[40][t][pol];
-	  sum += weight_40.xx * sample;
-	  sum += weight_40.yy * (float2) (-sample.y, sample.x);
-	}
+        if (NR_STATIONS % NR_STATIONS_PER_PASS == 0 || first_station + 40 < NR_STATIONS) {
+          sample = _local.samples[40][t][pol];
+          sum += weight_40.xx * sample;
+          sum += weight_40.yy * (float2) (-sample.y, sample.x);
+        }
 #endif
 
 #if NR_STATIONS_PER_PASS >= 42
-	if (NR_STATIONS % NR_STATIONS_PER_PASS == 0 || first_station + 41 < NR_STATIONS) {
-	  sample = _local.samples[41][t][pol];
-	  sum += weight_41.xx * sample;
-	  sum += weight_41.yy * (float2) (-sample.y, sample.x);
-	}
+        if (NR_STATIONS % NR_STATIONS_PER_PASS == 0 || first_station + 41 < NR_STATIONS) {
+          sample = _local.samples[41][t][pol];
+          sum += weight_41.xx * sample;
+          sum += weight_41.yy * (float2) (-sample.y, sample.x);
+        }
 #endif
 
 #if NR_STATIONS_PER_PASS >= 43
-	if (NR_STATIONS % NR_STATIONS_PER_PASS == 0 || first_station + 42 < NR_STATIONS) {
-	  sample = _local.samples[42][t][pol];
-	  sum += weight_42.xx * sample;
-	  sum += weight_42.yy * (float2) (-sample.y, sample.x);
-	}
+        if (NR_STATIONS % NR_STATIONS_PER_PASS == 0 || first_station + 42 < NR_STATIONS) {
+          sample = _local.samples[42][t][pol];
+          sum += weight_42.xx * sample;
+          sum += weight_42.yy * (float2) (-sample.y, sample.x);
+        }
 #endif
 
 #if NR_STATIONS_PER_PASS >= 44
-	if (NR_STATIONS % NR_STATIONS_PER_PASS == 0 || first_station + 43 < NR_STATIONS) {
-	  sample = _local.samples[43][t][pol];
-	  sum += weight_43.xx * sample;
-	  sum += weight_43.yy * (float2) (-sample.y, sample.x);
-	}
+        if (NR_STATIONS % NR_STATIONS_PER_PASS == 0 || first_station + 43 < NR_STATIONS) {
+          sample = _local.samples[43][t][pol];
+          sum += weight_43.xx * sample;
+          sum += weight_43.yy * (float2) (-sample.y, sample.x);
+        }
 #endif
 
 #if NR_STATIONS_PER_PASS >= 45
-	if (NR_STATIONS % NR_STATIONS_PER_PASS == 0 || first_station + 44 < NR_STATIONS) {
-	  sample = _local.samples[44][t][pol];
-	  sum += weight_44.xx * sample;
-	  sum += weight_44.yy * (float2) (-sample.y, sample.x);
-	}
+        if (NR_STATIONS % NR_STATIONS_PER_PASS == 0 || first_station + 44 < NR_STATIONS) {
+          sample = _local.samples[44][t][pol];
+          sum += weight_44.xx * sample;
+          sum += weight_44.yy * (float2) (-sample.y, sample.x);
+        }
 #endif
 
 #if NR_STATIONS_PER_PASS >= 46
-	if (NR_STATIONS % NR_STATIONS_PER_PASS == 0 || first_station + 45 < NR_STATIONS) {
-	  sample = _local.samples[45][t][pol];
-	  sum += weight_45.xx * sample;
-	  sum += weight_45.yy * (float2) (-sample.y, sample.x);
-	}
+        if (NR_STATIONS % NR_STATIONS_PER_PASS == 0 || first_station + 45 < NR_STATIONS) {
+          sample = _local.samples[45][t][pol];
+          sum += weight_45.xx * sample;
+          sum += weight_45.yy * (float2) (-sample.y, sample.x);
+        }
 #endif
 
 #if NR_STATIONS_PER_PASS >= 47
-	if (NR_STATIONS % NR_STATIONS_PER_PASS == 0 || first_station + 46 < NR_STATIONS) {
-	  sample = _local.samples[46][t][pol];
-	  sum += weight_46.xx * sample;
-	  sum += weight_46.yy * (float2) (-sample.y, sample.x);
-	}
+        if (NR_STATIONS % NR_STATIONS_PER_PASS == 0 || first_station + 46 < NR_STATIONS) {
+          sample = _local.samples[46][t][pol];
+          sum += weight_46.xx * sample;
+          sum += weight_46.yy * (float2) (-sample.y, sample.x);
+        }
 #endif
 
 #if NR_STATIONS_PER_PASS >= 48
-	if (NR_STATIONS % NR_STATIONS_PER_PASS == 0 || first_station + 47 < NR_STATIONS) {
-	  sample = _local.samples[47][t][pol];
-	  sum += weight_47.xx * sample;
-	  sum += weight_47.yy * (float2) (-sample.y, sample.x);
-	}
+        if (NR_STATIONS % NR_STATIONS_PER_PASS == 0 || first_station + 47 < NR_STATIONS) {
+          sample = _local.samples[47][t][pol];
+          sum += weight_47.xx * sample;
+          sum += weight_47.yy * (float2) (-sample.y, sample.x);
+        }
 #endif
 
-	(*complexVoltages)[subband][time + t][tab][pol] = sum;
+        (*complexVoltages)[subband][time + t][tab][pol] = sum;
       }
     }
   }
diff --git a/RTCP/Cobalt/GPUProc/src/UHEP/BeamFormer.cl.4groups b/RTCP/Cobalt/GPUProc/src/UHEP/BeamFormer.cl.4groups
index d6f2e81bf035e401d11f645d14df6a99e3eb7321..7e7b84c9c3f2edb6662d89debec49d04bacdb9c7 100644
--- a/RTCP/Cobalt/GPUProc/src/UHEP/BeamFormer.cl.4groups
+++ b/RTCP/Cobalt/GPUProc/src/UHEP/BeamFormer.cl.4groups
@@ -1,4 +1,4 @@
-#define NR_THREADS_PER_GROUP	4
+#define NR_THREADS_PER_GROUP    4
 #define NR_STATIONS_PER_GROUP ((NR_STATIONS + NR_THREADS_PER_GROUP - 1) / NR_THREADS_PER_GROUP)
 
 #if NR_BITS_PER_SAMPLE == 8
@@ -18,52 +18,52 @@ typedef __global float2 (*WeightsType)[NR_STATIONS][NR_SUBBANDS][NR_TABS];
 
 
 __kernel void complexVoltages(__global void *complexVoltagesPtr,
-			      __global const void *samplesPtr,
-			      __global const void *weightsPtr)
+                              __global const void *samplesPtr,
+                              __global const void *weightsPtr)
 {
   ComplexVoltagesType complexVoltages = (ComplexVoltagesType) complexVoltagesPtr;
-  SamplesType samples   = (SamplesType) samplesPtr;
-  WeightsType weights	= (WeightsType) weightsPtr;
+  SamplesType samples = (SamplesType) samplesPtr;
+  WeightsType weights = (WeightsType) weightsPtr;
 
-  uint pol		= get_local_id(0) & 1;
-  uint group		= get_local_id(0) >> 1;
-  uint tab		= get_local_id(1);
-  uint subband		= get_global_id(2);
-  uint first_station	= group * NR_STATIONS_PER_GROUP;
+  uint pol = get_local_id(0) & 1;
+  uint group = get_local_id(0) >> 1;
+  uint tab = get_local_id(1);
+  uint subband = get_global_id(2);
+  uint first_station = group * NR_STATIONS_PER_GROUP;
 
   float2 sample;
   __local float2 local_samples[16][NR_STATIONS + 1][NR_POLARIZATIONS];
   __local float2 local_sum[NR_TABS][NR_THREADS_PER_GROUP / 2][NR_POLARIZATIONS];
 
 #if NR_STATIONS_PER_GROUP >= 1
-  float2 weight_00 = (*weights)[first_station +  0][subband][tab];
+  float2 weight_00 = (*weights)[first_station + 0][subband][tab];
 #endif
 #if NR_STATIONS_PER_GROUP >= 2
-  float2 weight_01 = (*weights)[first_station +  1][subband][tab];
+  float2 weight_01 = (*weights)[first_station + 1][subband][tab];
 #endif
 #if NR_STATIONS_PER_GROUP >= 3
-  float2 weight_02 = (*weights)[first_station +  2][subband][tab];
+  float2 weight_02 = (*weights)[first_station + 2][subband][tab];
 #endif
 #if NR_STATIONS_PER_GROUP >= 4
-  float2 weight_03 = (*weights)[first_station +  3][subband][tab];
+  float2 weight_03 = (*weights)[first_station + 3][subband][tab];
 #endif
 #if NR_STATIONS_PER_GROUP >= 5
-  float2 weight_04 = (*weights)[first_station +  4][subband][tab];
+  float2 weight_04 = (*weights)[first_station + 4][subband][tab];
 #endif
 #if NR_STATIONS_PER_GROUP >= 6
-  float2 weight_05 = (*weights)[first_station +  5][subband][tab];
+  float2 weight_05 = (*weights)[first_station + 5][subband][tab];
 #endif
 #if NR_STATIONS_PER_GROUP >= 7
-  float2 weight_06 = (*weights)[first_station +  6][subband][tab];
+  float2 weight_06 = (*weights)[first_station + 6][subband][tab];
 #endif
 #if NR_STATIONS_PER_GROUP >= 8
-  float2 weight_07 = (*weights)[first_station +  7][subband][tab];
+  float2 weight_07 = (*weights)[first_station + 7][subband][tab];
 #endif
 #if NR_STATIONS_PER_GROUP >= 9
-  float2 weight_08 = (*weights)[first_station +  8][subband][tab];
+  float2 weight_08 = (*weights)[first_station + 8][subband][tab];
 #endif
 #if NR_STATIONS_PER_GROUP >= 10
-  float2 weight_09 = (*weights)[first_station +  9][subband][tab];
+  float2 weight_09 = (*weights)[first_station + 9][subband][tab];
 #endif
 #if NR_STATIONS_PER_GROUP >= 11
   float2 weight_10 = (*weights)[first_station + 10][subband][tab];
@@ -91,70 +91,70 @@ __kernel void complexVoltages(__global void *complexVoltagesPtr,
       uint s = i / NR_POLARIZATIONS / 16;
 
       if (time + t < NR_TIMES_PER_BLOCK + NR_STATION_FILTER_TAPS - 1)
-	local_samples[t][s][p] = convert_float2((*samples)[s][subband][time + t][p]);
+        local_samples[t][s][p] = convert_float2((*samples)[s][subband][time + t][p]);
     }
 
     barrier(CLK_LOCAL_MEM_FENCE);
 
-    for (uint t = 0; t < min(16U, (NR_TIMES_PER_BLOCK + NR_STATION_FILTER_TAPS - 1 - time)); t ++) {
+    for (uint t = 0; t < min(16U, (NR_TIMES_PER_BLOCK + NR_STATION_FILTER_TAPS - 1 - time)); t++) {
       float2 sum;
 
 #if NR_STATIONS_PER_GROUP >= 1
-      sample = local_samples[t][first_station +  0][pol];
-      sum  = weight_00.xx * sample;
+      sample = local_samples[t][first_station + 0][pol];
+      sum = weight_00.xx * sample;
       sum += weight_00.yy * (float2) (-sample.y, sample.x);
 #endif
 
 #if NR_STATIONS_PER_GROUP >= 2
-      sample = local_samples[t][first_station +  1][pol];
+      sample = local_samples[t][first_station + 1][pol];
       sum += weight_01.xx * sample;
       sum += weight_01.yy * (float2) (-sample.y, sample.x);
 #endif
 
 #if NR_STATIONS_PER_GROUP >= 3
-      sample = local_samples[t][first_station +  2][pol];
+      sample = local_samples[t][first_station + 2][pol];
       sum += weight_02.xx * sample;
       sum += weight_02.yy * (float2) (-sample.y, sample.x);
 #endif
 
 #if NR_STATIONS_PER_GROUP >= 4
-      sample = local_samples[t][first_station +  3][pol];
+      sample = local_samples[t][first_station + 3][pol];
       sum += weight_03.xx * sample;
       sum += weight_03.yy * (float2) (-sample.y, sample.x);
 #endif
 
 #if NR_STATIONS_PER_GROUP >= 5
-      sample = local_samples[t][first_station +  4][pol];
+      sample = local_samples[t][first_station + 4][pol];
       sum += weight_04.xx * sample;
       sum += weight_04.yy * (float2) (-sample.y, sample.x);
 #endif
 
 #if NR_STATIONS_PER_GROUP >= 6
-      sample = local_samples[t][first_station +  5][pol];
+      sample = local_samples[t][first_station + 5][pol];
       sum += weight_05.xx * sample;
       sum += weight_05.yy * (float2) (-sample.y, sample.x);
 #endif
 
 #if NR_STATIONS_PER_GROUP >= 7
-      sample = local_samples[t][first_station +  6][pol];
+      sample = local_samples[t][first_station + 6][pol];
       sum += weight_06.xx * sample;
       sum += weight_06.yy * (float2) (-sample.y, sample.x);
 #endif
 
 #if NR_STATIONS_PER_GROUP >= 8
-      sample = local_samples[t][first_station +  7][pol];
+      sample = local_samples[t][first_station + 7][pol];
       sum += weight_07.xx * sample;
       sum += weight_07.yy * (float2) (-sample.y, sample.x);
 #endif
 
 #if NR_STATIONS_PER_GROUP >= 9
-      sample = local_samples[t][first_station +  8][pol];
+      sample = local_samples[t][first_station + 8][pol];
       sum += weight_08.xx * sample;
       sum += weight_08.yy * (float2) (-sample.y, sample.x);
 #endif
 
 #if NR_STATIONS_PER_GROUP >= 10
-      sample = local_samples[t][first_station +  9][pol];
+      sample = local_samples[t][first_station + 9][pol];
       sum += weight_09.xx * sample;
       sum += weight_09.yy * (float2) (-sample.y, sample.x);
 #endif
@@ -197,26 +197,26 @@ __kernel void complexVoltages(__global void *complexVoltagesPtr,
 
 #if 1
       if ((group & 1) != 0)
-	local_sum[tab][group >> 1][pol] = sum;
+        local_sum[tab][group >> 1][pol] = sum;
 
       if ((group & 1) == 0)
-	sum += local_sum[tab][group >> 1][pol];
+        sum += local_sum[tab][group >> 1][pol];
 
       if (group == 2)
-	local_sum[tab][0][pol] = sum;
+        local_sum[tab][0][pol] = sum;
 
       if (group == 0)
-	(*complexVoltages)[subband][time + t][tab][pol] = sum + local_sum[tab][0][pol];
+        (*complexVoltages)[subband][time + t][tab][pol] = sum + local_sum[tab][0][pol];
 #else
       float2 other_sum;
-      asm("shfl.down.b32 %0, %1, 1, 0x1F;" : "=r" (other_sum.x) : "r" (sum.x));
-      asm("shfl.down.b32 %0, %1, 1, 0x1F;" : "=r" (other_sum.y) : "r" (sum.y));
+      asm ("shfl.down.b32 %0, %1, 1, 0x1F;" : "=r" (other_sum.x) : "r" (sum.x));
+      asm ("shfl.down.b32 %0, %1, 1, 0x1F;" : "=r" (other_sum.y) : "r" (sum.y));
       sum += other_sum;
-      asm("shfl.down.b32 %0, %1, 2, 0x1F;" : "=r" (other_sum.x) : "r" (sum.x));
-      asm("shfl.down.b32 %0, %1, 2, 0x1F;" : "=r" (other_sum.y) : "r" (sum.y));
+      asm ("shfl.down.b32 %0, %1, 2, 0x1F;" : "=r" (other_sum.x) : "r" (sum.x));
+      asm ("shfl.down.b32 %0, %1, 2, 0x1F;" : "=r" (other_sum.y) : "r" (sum.y));
 
       if (first_station == 0)
-	(*complexVoltages)[subband][time + t][tab][pol] = sum + other_sum;
+        (*complexVoltages)[subband][time + t][tab][pol] = sum + other_sum;
 #endif
     }
 
diff --git a/RTCP/Cobalt/GPUProc/src/UHEP/BeamFormer.cl.hop b/RTCP/Cobalt/GPUProc/src/UHEP/BeamFormer.cl.hop
index 7308ca0b52155afbccbb3b8c6f0274f32036f61f..65f87cb7a2bd1e5d9ef60713c6a23057c5125731 100644
--- a/RTCP/Cobalt/GPUProc/src/UHEP/BeamFormer.cl.hop
+++ b/RTCP/Cobalt/GPUProc/src/UHEP/BeamFormer.cl.hop
@@ -18,24 +18,24 @@ float2 cmul(float2 a, float2 b)
 
 
 __kernel void complexVoltages(__global void *complexVoltagesPtr,
-			      __global const void *samplesPtr,
-			      __global const void *weightsPtr)
+                              __global const void *samplesPtr,
+                              __global const void *weightsPtr)
 {
   ComplexVoltagesType complexVoltages = (ComplexVoltagesType) complexVoltagesPtr;
-  SamplesType samples   = (SamplesType) samplesPtr;
-  WeightsType weights	= (WeightsType) weightsPtr;
+  SamplesType samples = (SamplesType) samplesPtr;
+  WeightsType weights = (WeightsType) weightsPtr;
 
 #if defined USE_WARP_SHUFFLE_INSN
-  uint first_tab	= 3 * get_local_id(1);
-  uint first_station	= 6 * get_local_id(0);
+  uint first_tab = 3 * get_local_id(1);
+  uint first_station = 6 * get_local_id(0);
 #else
-  uint pol		= get_local_id(0) & 1;
-  uint tab_group	= (get_local_id(0) >> 1) % (NR_TABS / 3);
-  uint station_group	= (get_local_id(0) >> 1) / (NR_TABS / 3);
-  uint first_tab	= 3 * tab_group;
-  uint first_station	= 6 * station_group;
+  uint pol = get_local_id(0) & 1;
+  uint tab_group = (get_local_id(0) >> 1) % (NR_TABS / 3);
+  uint station_group = (get_local_id(0) >> 1) / (NR_TABS / 3);
+  uint first_tab = 3 * tab_group;
+  uint first_station = 6 * station_group;
 #endif
-  uint subband		= get_global_id(1);
+  uint subband = get_global_id(1);
 
   bool lastGroupOfStations = first_station + 6 == NR_STATIONS;
 
@@ -73,7 +73,7 @@ __kernel void complexVoltages(__global void *complexVoltagesPtr,
   }
 #endif
 
-  for (int time = 0 - station_group; time < (int) (NR_SAMPLES_PER_SUBBAND + NR_STATION_FILTER_TAPS - 1 + NR_STATIONS / 6 - 1 - station_group); time ++) {
+  for (int time = 0 - station_group; time < (int) (NR_SAMPLES_PER_SUBBAND + NR_STATION_FILTER_TAPS - 1 + NR_STATIONS / 6 - 1 - station_group); time++) {
     bool validTime = time >= 0 && time < NR_SAMPLES_PER_SUBBAND + NR_STATION_FILTER_TAPS - 1;
 
     if (validTime) {
@@ -96,18 +96,18 @@ __kernel void complexVoltages(__global void *complexVoltagesPtr,
       sum_1 = local_sums[1][station_group][tab_group][pol];
       sum_2 = local_sums[2][station_group][tab_group][pol];
 #else
-      asm("shfl.up.b32 %0, %0, 1, 0x00;" : "=r" (sum_0.x) : "0" (sum_0.x));
-      asm("shfl.up.b32 %0, %0, 1, 0x00;" : "=r" (sum_0.y) : "0" (sum_0.y));
-      asm("shfl.up.b32 %0, %0, 1, 0x00;" : "=r" (sum_0.z) : "0" (sum_0.z));
-      asm("shfl.up.b32 %0, %0, 1, 0x00;" : "=r" (sum_0.w) : "0" (sum_0.w));
-      asm("shfl.up.b32 %0, %0, 1, 0x00;" : "=r" (sum_1.x) : "0" (sum_1.x));
-      asm("shfl.up.b32 %0, %0, 1, 0x00;" : "=r" (sum_1.y) : "0" (sum_1.y));
-      asm("shfl.up.b32 %0, %0, 1, 0x00;" : "=r" (sum_1.z) : "0" (sum_1.z));
-      asm("shfl.up.b32 %0, %0, 1, 0x00;" : "=r" (sum_1.w) : "0" (sum_1.w));
-      asm("shfl.up.b32 %0, %0, 1, 0x00;" : "=r" (sum_2.x) : "0" (sum_2.x));
-      asm("shfl.up.b32 %0, %0, 1, 0x00;" : "=r" (sum_2.y) : "0" (sum_2.y));
-      asm("shfl.up.b32 %0, %0, 1, 0x00;" : "=r" (sum_2.z) : "0" (sum_2.z));
-      asm("shfl.up.b32 %0, %0, 1, 0x00;" : "=r" (sum_2.w) : "0" (sum_2.w));
+      asm ("shfl.up.b32 %0, %0, 1, 0x00;" : "=r" (sum_0.x) : "0" (sum_0.x));
+      asm ("shfl.up.b32 %0, %0, 1, 0x00;" : "=r" (sum_0.y) : "0" (sum_0.y));
+      asm ("shfl.up.b32 %0, %0, 1, 0x00;" : "=r" (sum_0.z) : "0" (sum_0.z));
+      asm ("shfl.up.b32 %0, %0, 1, 0x00;" : "=r" (sum_0.w) : "0" (sum_0.w));
+      asm ("shfl.up.b32 %0, %0, 1, 0x00;" : "=r" (sum_1.x) : "0" (sum_1.x));
+      asm ("shfl.up.b32 %0, %0, 1, 0x00;" : "=r" (sum_1.y) : "0" (sum_1.y));
+      asm ("shfl.up.b32 %0, %0, 1, 0x00;" : "=r" (sum_1.z) : "0" (sum_1.z));
+      asm ("shfl.up.b32 %0, %0, 1, 0x00;" : "=r" (sum_1.w) : "0" (sum_1.w));
+      asm ("shfl.up.b32 %0, %0, 1, 0x00;" : "=r" (sum_2.x) : "0" (sum_2.x));
+      asm ("shfl.up.b32 %0, %0, 1, 0x00;" : "=r" (sum_2.y) : "0" (sum_2.y));
+      asm ("shfl.up.b32 %0, %0, 1, 0x00;" : "=r" (sum_2.z) : "0" (sum_2.z));
+      asm ("shfl.up.b32 %0, %0, 1, 0x00;" : "=r" (sum_2.w) : "0" (sum_2.w));
 #endif
 
       sum_0 += weight_0_0.xx * sample_0;
@@ -165,14 +165,14 @@ __kernel void complexVoltages(__global void *complexVoltagesPtr,
     if (validTime) {
 #endif
       if (lastGroupOfStations) {
-	(*complexVoltages)[subband][time][first_tab + 0][pol] = sum_0;
-	(*complexVoltages)[subband][time][first_tab + 1][pol] = sum_1;
-	(*complexVoltages)[subband][time][first_tab + 2][pol] = sum_2;
+        (*complexVoltages)[subband][time][first_tab + 0][pol] = sum_0;
+        (*complexVoltages)[subband][time][first_tab + 1][pol] = sum_1;
+        (*complexVoltages)[subband][time][first_tab + 2][pol] = sum_2;
 #if !defined USE_WARP_SHUFFLE_INSN
       } else {
-	local_sums[0][station_group + 1][tab_group][pol] = sum_0;
-	local_sums[1][station_group + 1][tab_group][pol] = sum_1;
-	local_sums[2][station_group + 1][tab_group][pol] = sum_2;
+        local_sums[0][station_group + 1][tab_group][pol] = sum_0;
+        local_sums[1][station_group + 1][tab_group][pol] = sum_1;
+        local_sums[2][station_group + 1][tab_group][pol] = sum_2;
 #endif
       }
     }
diff --git a/RTCP/Cobalt/GPUProc/src/UHEP/BeamFormer.cl.not b/RTCP/Cobalt/GPUProc/src/UHEP/BeamFormer.cl.not
index a0934a2e0bcc673c2c5cbae69ab54a45cc56a27d..30fe130f42810ba63b0a7da8fe605d8a9f921d3d 100644
--- a/RTCP/Cobalt/GPUProc/src/UHEP/BeamFormer.cl.not
+++ b/RTCP/Cobalt/GPUProc/src/UHEP/BeamFormer.cl.not
@@ -15,17 +15,17 @@ typedef __global float (*WeightsType)[NR_STATIONS][NR_SUBBANDS][NR_TABS][2];
 
 
 __kernel void complexVoltages(__global void *complexVoltagesPtr,
-			      __global const void *samplesPtr,
-			      __global const void *weightsPtr)
+                              __global const void *samplesPtr,
+                              __global const void *weightsPtr)
 {
   ComplexVoltagesType complexVoltages = (ComplexVoltagesType) complexVoltagesPtr;
-  SamplesType samples   = (SamplesType) samplesPtr;
-  WeightsType weights	= (WeightsType) weightsPtr;
+  SamplesType samples = (SamplesType) samplesPtr;
+  WeightsType weights = (WeightsType) weightsPtr;
 
-  uint ri		= get_local_id(0) & 1;
-  uint pol		= get_local_id(0) >> 1;
-  uint tab		= get_local_id(1);
-  uint subband		= get_global_id(2);
+  uint ri = get_local_id(0) & 1;
+  uint pol = get_local_id(0) >> 1;
+  uint tab = get_local_id(1);
+  uint subband = get_global_id(2);
 
   float2 sample;
   __local float2 local_samples[NR_STATIONS][8][NR_POLARIZATIONS];
@@ -185,12 +185,12 @@ __kernel void complexVoltages(__global void *complexVoltagesPtr,
       uint s = i / NR_POLARIZATIONS / 8;
 
       if (time + t < NR_TIMES_PER_BLOCK + NR_STATION_FILTER_TAPS - 1)
-	local_samples[0][0][i] = convert_float2((*samples)[s][subband][time + t][p]);
+        local_samples[0][0][i] = convert_float2((*samples)[s][subband][time + t][p]);
     }
 
     barrier(CLK_LOCAL_MEM_FENCE);
 
-    for (uint t = 0; t < min(8U, (NR_TIMES_PER_BLOCK + NR_STATION_FILTER_TAPS - 1 - time)); t ++) {
+    for (uint t = 0; t < min(8U, (NR_TIMES_PER_BLOCK + NR_STATION_FILTER_TAPS - 1 - time)); t++) {
       float2 sum = 0;
 
 #if NR_STATIONS >= 1
@@ -433,16 +433,16 @@ __kernel void complexVoltages(__global void *complexVoltagesPtr,
 
 #if 0
       if (ri != 0)
-	local_tmp[tab][pol] = (float2) (-sum.y, sum.x);
+        local_tmp[tab][pol] = (float2) (-sum.y, sum.x);
 
       if (ri == 0)
-	(*complexVoltages)[subband][time + t][tab][pol] = sum + local_tmp[tab][pol];
+        (*complexVoltages)[subband][time + t][tab][pol] = sum + local_tmp[tab][pol];
 #else
       float2 other_sum;
-      asm("shfl.down.b32 %0, %1, 1, 0x1F;" : "=r" (other_sum.x) : "r" (sum.x));
-      asm("shfl.down.b32 %0, %1, 1, 0x1F;" : "=r" (other_sum.y) : "r" (sum.y));
+      asm ("shfl.down.b32 %0, %1, 1, 0x1F;" : "=r" (other_sum.x) : "r" (sum.x));
+      asm ("shfl.down.b32 %0, %1, 1, 0x1F;" : "=r" (other_sum.y) : "r" (sum.y));
       if (ri == 0)
-	(*complexVoltages)[subband][time + t][tab][pol] = sum + (float2) (-other_sum.y, other_sum.x);
+        (*complexVoltages)[subband][time + t][tab][pol] = sum + (float2) (-other_sum.y, other_sum.x);
 #endif
     }
 
diff --git a/RTCP/Cobalt/GPUProc/src/UHEP/BeamFormer.cl.ok b/RTCP/Cobalt/GPUProc/src/UHEP/BeamFormer.cl.ok
index 3858ce5772104a39d61a32a4372e308563a37b1f..74e67c0abc55c053ac68fa1b574d61d8d6d6ebc6 100644
--- a/RTCP/Cobalt/GPUProc/src/UHEP/BeamFormer.cl.ok
+++ b/RTCP/Cobalt/GPUProc/src/UHEP/BeamFormer.cl.ok
@@ -15,16 +15,16 @@ typedef __global float2 (*WeightsType)[NR_STATIONS][NR_SUBBANDS][NR_TABS];
 
 
 __kernel void complexVoltages(__global void *complexVoltagesPtr,
-			      __global const void *samplesPtr,
-			      __global const void *weightsPtr)
+                              __global const void *samplesPtr,
+                              __global const void *weightsPtr)
 {
   ComplexVoltagesType complexVoltages = (ComplexVoltagesType) complexVoltagesPtr;
-  SamplesType samples   = (SamplesType) samplesPtr;
-  WeightsType weights	= (WeightsType) weightsPtr;
+  SamplesType samples = (SamplesType) samplesPtr;
+  WeightsType weights = (WeightsType) weightsPtr;
 
-  uint pol		= get_local_id(0);
-  uint tab		= get_local_id(1);
-  uint subband		= get_global_id(2);
+  uint pol = get_local_id(0);
+  uint tab = get_local_id(1);
+  uint subband = get_global_id(2);
 
   float2 sample;
   __local float2 local_samples[NR_STATIONS >= 24 ? 24 : NR_STATIONS][16][NR_POLARIZATIONS];
@@ -109,12 +109,12 @@ __kernel void complexVoltages(__global void *complexVoltagesPtr,
       uint s = i / NR_POLARIZATIONS / 16;
 
       if (time + t < NR_TIMES_PER_BLOCK + NR_STATION_FILTER_TAPS - 1)
-	local_samples[0][0][i] = convert_float2((*samples)[s][subband][time + t][p]);
+        local_samples[0][0][i] = convert_float2((*samples)[s][subband][time + t][p]);
     }
 
     barrier(CLK_LOCAL_MEM_FENCE);
 
-    for (uint t = 0; t < min(16U, (NR_TIMES_PER_BLOCK + NR_STATION_FILTER_TAPS - 1 - time)); t ++) {
+    for (uint t = 0; t < min(16U, (NR_TIMES_PER_BLOCK + NR_STATION_FILTER_TAPS - 1 - time)); t++) {
       float2 sum = 0;
 
 #if NR_STATIONS >= 1
@@ -348,12 +348,12 @@ __kernel void complexVoltages(__global void *complexVoltagesPtr,
       uint s = i / NR_POLARIZATIONS / 16;
 
       if (time + t < NR_TIMES_PER_BLOCK + NR_STATION_FILTER_TAPS - 1)
-	local_samples[0][0][i] = convert_float2((*samples)[24 + s][subband][time + t][p]);
+        local_samples[0][0][i] = convert_float2((*samples)[24 + s][subband][time + t][p]);
     }
 
     barrier(CLK_LOCAL_MEM_FENCE);
 
-    for (uint t = 0; t < min(16U, (NR_TIMES_PER_BLOCK + NR_STATION_FILTER_TAPS - 1 - time)); t ++) {
+    for (uint t = 0; t < min(16U, (NR_TIMES_PER_BLOCK + NR_STATION_FILTER_TAPS - 1 - time)); t++) {
       float2 sum = (*complexVoltages)[subband][time + t][tab][pol];
 
 #if NR_STATIONS >= 25
diff --git a/RTCP/Cobalt/GPUProc/src/UHEP/InvFFT.cl b/RTCP/Cobalt/GPUProc/src/UHEP/InvFFT.cl
index 350953c55b3df035477a3873079ad707410c74f6..709e05046782696d97605ad0c2f85c36915e1475 100644
--- a/RTCP/Cobalt/GPUProc/src/UHEP/InvFFT.cl
+++ b/RTCP/Cobalt/GPUProc/src/UHEP/InvFFT.cl
@@ -1,6 +1,6 @@
 #include "math.cl"
 
- 
+
 typedef __global float (*InvFFTedDataType)[NR_TABS][NR_POLARIZATIONS][NR_SAMPLES_PER_SUBBAND + NR_STATION_FILTER_TAPS - 1][1024];
 typedef __global float2 (*TransposedDataType)[NR_TABS][NR_POLARIZATIONS][NR_SAMPLES_PER_SUBBAND + NR_STATION_FILTER_TAPS - 1][512];
 
@@ -14,13 +14,15 @@ float2 inv(float2 a)
 void inv4(float2 *R0, float2 *R1, float2 *R2, float2 *R3)
 {
   float2 T0, T1, T2, T3;
-	
-  T1 = (*R1); (*R1) = (*R2); (*R2) = T1;
 
-  T0 = (*R0), T1 =    (*R1), (*R0) = T0 + T1, (*R1) = T0 - T1;
-  T2 = (*R2), T3 =    (*R3), (*R2) = T2 + T3, (*R3) = T2 - T3;
+  T1 = (*R1);
+  (*R1) = (*R2);
+  (*R2) = T1;
+
+  T0 = (*R0), T1 = (*R1), (*R0) = T0 + T1, (*R1) = T0 - T1;
+  T2 = (*R2), T3 = (*R3), (*R2) = T2 + T3, (*R3) = T2 - T3;
 
-  T0 = (*R0), T2 =    (*R2), (*R0) = T0 + T2, (*R2) = T0 - T2;
+  T0 = (*R0), T2 = (*R2), (*R0) = T0 + T2, (*R2) = T0 - T2;
   T1 = (*R1), T3 = inv(*R3), (*R1) = T1 + T3, (*R3) = T1 - T3;
 }
 
@@ -30,22 +32,26 @@ void inv8(float2 *R0, float2 *R1, float2 *R2, float2 *R3, float2 *R4, float2 *R5
   const float HSQR2 = .70710678118654752440f;
   float2 T0, T1, T2, T3, T4, T5, T6, T7;
 
-  T1 = (*R1); (*R1) = (*R4); (*R4) = T1;
-  T3 = (*R3); (*R3) = (*R6); (*R6) = T3;
+  T1 = (*R1);
+  (*R1) = (*R4);
+  (*R4) = T1;
+  T3 = (*R3);
+  (*R3) = (*R6);
+  (*R6) = T3;
 
-  T0 = (*R0), T1 =             (*R1)         , (*R0) = T0 + T1, (*R1) = T0 - T1;
-  T2 = (*R2), T3 =             (*R3)         , (*R2) = T2 + T3, (*R3) = T2 - T3;
-  T4 = (*R4), T5 =             (*R5)         , (*R4) = T4 + T5, (*R5) = T4 - T5;
-  T6 = (*R6), T7 =             (*R7)         , (*R6) = T6 + T7, (*R7) = T6 - T7;
+  T0 = (*R0), T1 = (*R1), (*R0) = T0 + T1, (*R1) = T0 - T1;
+  T2 = (*R2), T3 = (*R3), (*R2) = T2 + T3, (*R3) = T2 - T3;
+  T4 = (*R4), T5 = (*R5), (*R4) = T4 + T5, (*R5) = T4 - T5;
+  T6 = (*R6), T7 = (*R7), (*R6) = T6 + T7, (*R7) = T6 - T7;
 
-  T0 = (*R0), T2 =             (*R2)         , (*R0) = T0 + T2, (*R2) = T0 - T2;
-  T1 = (*R1), T3 =          inv(*R3)         , (*R1) = T1 + T3, (*R3) = T1 - T3;
-  T4 = (*R4), T6 =             (*R6)         , (*R4) = T4 + T6, (*R6) = T4 - T6;
-  T5 = (*R5), T7 =          inv(*R7)         , (*R5) = T5 + T7, (*R7) = T5 - T7;
+  T0 = (*R0), T2 = (*R2), (*R0) = T0 + T2, (*R2) = T0 - T2;
+  T1 = (*R1), T3 = inv(*R3), (*R1) = T1 + T3, (*R3) = T1 - T3;
+  T4 = (*R4), T6 = (*R6), (*R4) = T4 + T6, (*R6) = T4 - T6;
+  T5 = (*R5), T7 = inv(*R7), (*R5) = T5 + T7, (*R7) = T5 - T7;
 
-  T0 = (*R0), T4 =             (*R4)         , (*R0) = T0 + T4, (*R4) = T0 - T4;
+  T0 = (*R0), T4 = (*R4), (*R0) = T0 + T4, (*R4) = T0 - T4;
   T1 = (*R1), T5 = HSQR2 * (inv(*R5) + (*R5)), (*R1) = T1 + T5, (*R5) = T1 - T5;
-  T2 = (*R2), T6 =          inv(*R6)         , (*R2) = T2 + T6, (*R6) = T2 - T6;
+  T2 = (*R2), T6 = inv(*R6), (*R2) = T2 + T6, (*R6) = T2 - T6;
   T3 = (*R3), T7 = HSQR2 * (inv(*R7) - (*R7)), (*R3) = T3 + T7, (*R7) = T3 - T7;
 }
 
@@ -53,20 +59,20 @@ void inv8(float2 *R0, float2 *R1, float2 *R2, float2 *R3, float2 *R4, float2 *R5
 __kernel __attribute__((reqd_work_group_size(128, 1, 1)))
 void inv_fft(__global float2 *outputPtr, __global const float *inputPtr)
 {
-  InvFFTedDataType   invFFTedData   = (InvFFTedDataType) outputPtr;
+  InvFFTedDataType invFFTedData = (InvFFTedDataType) outputPtr;
   TransposedDataType transposedData = (TransposedDataType) inputPtr;
 
   const float PI = 3.14159265358979323844f;
 
   __local union {
-    float  f1[1024];
+    float f1[1024];
     float2 f2[512];
     float4 f4[256];
     float8 f8[128];
   } lds;
 
-  uint   windex;
-  float  ang;
+  uint windex;
+  float ang;
   float2 R0, R1, R2, R3, R4, R5, R6, R7;
   float2 W0, W1, W2, W3;
 
@@ -79,13 +85,13 @@ void inv_fft(__global float2 *outputPtr, __global const float *inputPtr)
   R2 = bufIn[get_local_id(0) + 256];
   R3 = bufIn[get_local_id(0) + 384];
 #else
-  R0 = (*transposedData)[0][0][get_global_id(1)][get_local_id(0) +   0];
+  R0 = (*transposedData)[0][0][get_global_id(1)][get_local_id(0) + 0];
   R1 = (*transposedData)[0][0][get_global_id(1)][get_local_id(0) + 128];
   R2 = (*transposedData)[0][0][get_global_id(1)][get_local_id(0) + 256];
   R3 = (*transposedData)[0][0][get_global_id(1)][get_local_id(0) + 384];
 #endif
 
-  lds.f2[get_local_id(0) +   0] = R0;
+  lds.f2[get_local_id(0) + 0] = R0;
   lds.f2[get_local_id(0) + 128] = R1;
   lds.f2[get_local_id(0) + 256] = R2;
   lds.f2[get_local_id(0) + 384] = R3;
@@ -116,7 +122,7 @@ void inv_fft(__global float2 *outputPtr, __global const float *inputPtr)
 
   barrier(CLK_LOCAL_MEM_FENCE);
 
-  R0.x = lds.f1[get_local_id(0) +   0];
+  R0.x = lds.f1[get_local_id(0) + 0];
   R1.x = lds.f1[get_local_id(0) + 128];
   R2.x = lds.f1[get_local_id(0) + 256];
   R3.x = lds.f1[get_local_id(0) + 384];
@@ -131,7 +137,7 @@ void inv_fft(__global float2 *outputPtr, __global const float *inputPtr)
 
   barrier(CLK_LOCAL_MEM_FENCE);
 
-  R0.y = lds.f1[get_local_id(0) +   0];
+  R0.y = lds.f1[get_local_id(0) + 0];
   R1.y = lds.f1[get_local_id(0) + 128];
   R2.y = lds.f1[get_local_id(0) + 256];
   R3.y = lds.f1[get_local_id(0) + 384];
@@ -154,8 +160,8 @@ void inv_fft(__global float2 *outputPtr, __global const float *inputPtr)
   inv8(&R0, &R1, &R2, &R3, &R4, &R5, &R6, &R7);
 
   windex = 64 * (get_local_id(0) / 8) + get_local_id(0) % 8;
-  lds.f1[windex +  0] = R0.x;
-  lds.f1[windex +  8] = R1.x;
+  lds.f1[windex + 0] = R0.x;
+  lds.f1[windex + 8] = R1.x;
   lds.f1[windex + 16] = R2.x;
   lds.f1[windex + 24] = R3.x;
   lds.f1[windex + 32] = R4.x;
@@ -165,7 +171,7 @@ void inv_fft(__global float2 *outputPtr, __global const float *inputPtr)
 
   barrier(CLK_LOCAL_MEM_FENCE);
 
-  W0 = lds.f2[get_local_id(0) +   0];
+  W0 = lds.f2[get_local_id(0) + 0];
   W1 = lds.f2[get_local_id(0) + 128];
   W2 = lds.f2[get_local_id(0) + 256];
   W3 = lds.f2[get_local_id(0) + 384];
@@ -180,8 +186,8 @@ void inv_fft(__global float2 *outputPtr, __global const float *inputPtr)
 
   barrier(CLK_LOCAL_MEM_FENCE);
 
-  lds.f1[windex +  0] = R0.y;
-  lds.f1[windex +  8] = R1.y;
+  lds.f1[windex + 0] = R0.y;
+  lds.f1[windex + 8] = R1.y;
   lds.f1[windex + 16] = R2.y;
   lds.f1[windex + 24] = R3.y;
   lds.f1[windex + 32] = R4.y;
@@ -191,7 +197,7 @@ void inv_fft(__global float2 *outputPtr, __global const float *inputPtr)
 
   barrier(CLK_LOCAL_MEM_FENCE);
 
-  W0 = lds.f2[get_local_id(0) +   0];
+  W0 = lds.f2[get_local_id(0) + 0];
   W1 = lds.f2[get_local_id(0) + 128];
   W2 = lds.f2[get_local_id(0) + 256];
   W3 = lds.f2[get_local_id(0) + 384];
@@ -219,14 +225,14 @@ void inv_fft(__global float2 *outputPtr, __global const float *inputPtr)
   inv4(&R4, &R5, &R6, &R7);
 
   windex = 128 * (get_local_id(0) / 32) + get_local_id(0) % 32;
-  lds.f2[windex +  0] = (float2) (R0.x, R4.x);
+  lds.f2[windex + 0] = (float2) (R0.x, R4.x);
   lds.f2[windex + 32] = (float2) (R1.x, R5.x);
   lds.f2[windex + 64] = (float2) (R2.x, R6.x);
   lds.f2[windex + 96] = (float2) (R3.x, R7.x);
 
   barrier(CLK_LOCAL_MEM_FENCE);
 
-  W0 = lds.f2[get_local_id(0) +   0];
+  W0 = lds.f2[get_local_id(0) + 0];
   W1 = lds.f2[get_local_id(0) + 128];
   W2 = lds.f2[get_local_id(0) + 256];
   W3 = lds.f2[get_local_id(0) + 384];
@@ -239,14 +245,14 @@ void inv_fft(__global float2 *outputPtr, __global const float *inputPtr)
   R6.x = W2.y;
   R7.x = W3.y;
 
-  lds.f2[get_local_id(0) +   0] = (float2) (R0.y, R4.y);
+  lds.f2[get_local_id(0) + 0] = (float2) (R0.y, R4.y);
   lds.f2[get_local_id(0) + 128] = (float2) (R1.y, R5.y);
   lds.f2[get_local_id(0) + 256] = (float2) (R2.y, R6.y);
   lds.f2[get_local_id(0) + 384] = (float2) (R3.y, R7.y);
 
   barrier(CLK_LOCAL_MEM_FENCE);
 
-  W0 = lds.f2[windex +  0];
+  W0 = lds.f2[windex + 0];
   W1 = lds.f2[windex + 32];
   W2 = lds.f2[windex + 64];
   W3 = lds.f2[windex + 96];
@@ -273,7 +279,7 @@ void inv_fft(__global float2 *outputPtr, __global const float *inputPtr)
 
 #if 0
   __global float2 *out = (__global float2 *) bufOut;
-  out[get_local_id(0) +   0] = 9.765625e-04f * (float2) (R0.x, R4.x);
+  out[get_local_id(0) + 0] = 9.765625e-04f * (float2) (R0.x, R4.x);
   out[get_local_id(0) + 128] = 9.765625e-04f * (float2) (R1.x, R5.x);
   out[get_local_id(0) + 256] = 9.765625e-04f * (float2) (R2.x, R6.x);
   out[get_local_id(0) + 384] = 9.765625e-04f * (float2) (R3.x, R7.x);
diff --git a/RTCP/Cobalt/GPUProc/src/UHEP/InvFIR.cl b/RTCP/Cobalt/GPUProc/src/UHEP/InvFIR.cl
index 1bcaaf72790a9e3b9334b40397ec4e64a84e40e4..b1161f24ef8db7ae626ecc4d235146e0552527f8 100644
--- a/RTCP/Cobalt/GPUProc/src/UHEP/InvFIR.cl
+++ b/RTCP/Cobalt/GPUProc/src/UHEP/InvFIR.cl
@@ -4,18 +4,18 @@ typedef __global const float16 (*WeightsType)[1024];
 
 
 __kernel void invFIRfilter(__global void *invFIRredDataPtr,
-			   __global const void *invFFTedDataPtr,
-			   __global const void *weightsPtr)
+                           __global const void *invFFTedDataPtr,
+                           __global const void *weightsPtr)
 {
   InvFIRredDataType invFIRredData = (InvFIRredDataType) invFIRredDataPtr;
-  InvFFTedDataType  invFFTedData  = (InvFFTedDataType) invFFTedDataPtr;
-  WeightsType       weightsData   = (WeightsType) weightsPtr;
+  InvFFTedDataType invFFTedData = (InvFFTedDataType) invFFTedDataPtr;
+  WeightsType weightsData = (WeightsType) weightsPtr;
 
   uint sub_time = get_global_id(0);
-  uint pol	= get_global_id(1);
-  uint tab	= get_global_id(2);
+  uint pol = get_global_id(1);
+  uint tab = get_global_id(2);
 
-//#pragma OPENCL EXTENSION cl_amd_printf : enable
+  //#pragma OPENCL EXTENSION cl_amd_printf : enable
 
   const float16 weights = (*weightsData)[sub_time];
   float16 delayLine;
@@ -39,7 +39,7 @@ __kernel void invFIRfilter(__global void *invFIRredDataPtr,
 
   for (uint time = 0; time < NR_SAMPLES_PER_SUBBAND; time += NR_STATION_FILTER_TAPS) {
     delayLine.sF = (*invFFTedData)[tab][pol][time + NR_STATION_FILTER_TAPS - 1 + 0][sub_time];
-    sum.s0  = weights.sF * delayLine.s0;
+    sum.s0 = weights.sF * delayLine.s0;
     delayLine.sF = (*invFFTedData)[tab][pol][time + NR_STATION_FILTER_TAPS - 1 + 1][sub_time];
     sum.s0 += weights.sE * delayLine.s1;
     sum.s0 += weights.sD * delayLine.s2;
@@ -58,7 +58,7 @@ __kernel void invFIRfilter(__global void *invFIRredDataPtr,
     sum.s0 += weights.s0 * delayLine.sF;
     (*invFIRredData)[tab][pol][time + 0][sub_time] = sum.s0;
 
-    sum.s1  = weights.sF * delayLine.s1;
+    sum.s1 = weights.sF * delayLine.s1;
     delayLine.sF = (*invFFTedData)[tab][pol][time + NR_STATION_FILTER_TAPS - 1 + 2][sub_time];
     sum.s1 += weights.sE * delayLine.s2;
     sum.s1 += weights.sD * delayLine.s3;
@@ -77,7 +77,7 @@ __kernel void invFIRfilter(__global void *invFIRredDataPtr,
     sum.s1 += weights.s0 * delayLine.s0;
     (*invFIRredData)[tab][pol][time + 1][sub_time] = sum.s1;
 
-    sum.s2  = weights.sF * delayLine.s2;
+    sum.s2 = weights.sF * delayLine.s2;
     delayLine.sF = (*invFFTedData)[tab][pol][time + NR_STATION_FILTER_TAPS - 1 + 3][sub_time];
     sum.s2 += weights.sE * delayLine.s3;
     sum.s2 += weights.sD * delayLine.s4;
@@ -96,7 +96,7 @@ __kernel void invFIRfilter(__global void *invFIRredDataPtr,
     sum.s2 += weights.s0 * delayLine.s1;
     (*invFIRredData)[tab][pol][time + 2][sub_time] = sum.s2;
 
-    sum.s3  = weights.sF * delayLine.s3;
+    sum.s3 = weights.sF * delayLine.s3;
     delayLine.sF = (*invFFTedData)[tab][pol][time + NR_STATION_FILTER_TAPS - 1 + 4][sub_time];
     sum.s3 += weights.sE * delayLine.s4;
     sum.s3 += weights.sD * delayLine.s5;
@@ -115,7 +115,7 @@ __kernel void invFIRfilter(__global void *invFIRredDataPtr,
     sum.s3 += weights.s0 * delayLine.s2;
     (*invFIRredData)[tab][pol][time + 3][sub_time] = sum.s3;
 
-    sum.s4  = weights.sF * delayLine.s4;
+    sum.s4 = weights.sF * delayLine.s4;
     delayLine.sF = (*invFFTedData)[tab][pol][time + NR_STATION_FILTER_TAPS - 1 + 5][sub_time];
     sum.s4 += weights.sE * delayLine.s5;
     sum.s4 += weights.sD * delayLine.s6;
@@ -134,7 +134,7 @@ __kernel void invFIRfilter(__global void *invFIRredDataPtr,
     sum.s4 += weights.s0 * delayLine.s3;
     (*invFIRredData)[tab][pol][time + 4][sub_time] = sum.s4;
 
-    sum.s5  = weights.sF * delayLine.s5;
+    sum.s5 = weights.sF * delayLine.s5;
     delayLine.sF = (*invFFTedData)[tab][pol][time + NR_STATION_FILTER_TAPS - 1 + 6][sub_time];
     sum.s5 += weights.sE * delayLine.s6;
     sum.s5 += weights.sD * delayLine.s7;
@@ -153,7 +153,7 @@ __kernel void invFIRfilter(__global void *invFIRredDataPtr,
     sum.s5 += weights.s0 * delayLine.s4;
     (*invFIRredData)[tab][pol][time + 5][sub_time] = sum.s5;
 
-    sum.s6  = weights.sF * delayLine.s6;
+    sum.s6 = weights.sF * delayLine.s6;
     delayLine.sF = (*invFFTedData)[tab][pol][time + NR_STATION_FILTER_TAPS - 1 + 7][sub_time];
     sum.s6 += weights.sE * delayLine.s7;
     sum.s6 += weights.sD * delayLine.s8;
@@ -172,7 +172,7 @@ __kernel void invFIRfilter(__global void *invFIRredDataPtr,
     sum.s6 += weights.s0 * delayLine.s5;
     (*invFIRredData)[tab][pol][time + 6][sub_time] = sum.s6;
 
-    sum.s7  = weights.sF * delayLine.s7;
+    sum.s7 = weights.sF * delayLine.s7;
     delayLine.sF = (*invFFTedData)[tab][pol][time + NR_STATION_FILTER_TAPS - 1 + 8][sub_time];
     sum.s7 += weights.sE * delayLine.s8;
     sum.s7 += weights.sD * delayLine.s9;
@@ -191,7 +191,7 @@ __kernel void invFIRfilter(__global void *invFIRredDataPtr,
     sum.s7 += weights.s0 * delayLine.s6;
     (*invFIRredData)[tab][pol][time + 7][sub_time] = sum.s7;
 
-    sum.s8  = weights.sF * delayLine.s8;
+    sum.s8 = weights.sF * delayLine.s8;
     delayLine.sF = (*invFFTedData)[tab][pol][time + NR_STATION_FILTER_TAPS - 1 + 9][sub_time];
     sum.s8 += weights.sE * delayLine.s9;
     sum.s8 += weights.sD * delayLine.sA;
@@ -210,7 +210,7 @@ __kernel void invFIRfilter(__global void *invFIRredDataPtr,
     sum.s8 += weights.s0 * delayLine.s7;
     (*invFIRredData)[tab][pol][time + 8][sub_time] = sum.s8;
 
-    sum.s9  = weights.sF * delayLine.s9;
+    sum.s9 = weights.sF * delayLine.s9;
     delayLine.sF = (*invFFTedData)[tab][pol][time + NR_STATION_FILTER_TAPS - 1 + 10][sub_time];
     sum.s9 += weights.sE * delayLine.sA;
     sum.s9 += weights.sD * delayLine.sB;
@@ -229,7 +229,7 @@ __kernel void invFIRfilter(__global void *invFIRredDataPtr,
     sum.s9 += weights.s0 * delayLine.s8;
     (*invFIRredData)[tab][pol][time + 9][sub_time] = sum.s9;
 
-    sum.sA  = weights.sF * delayLine.sA;
+    sum.sA = weights.sF * delayLine.sA;
     delayLine.sF = (*invFFTedData)[tab][pol][time + NR_STATION_FILTER_TAPS - 1 + 11][sub_time];
     sum.sA += weights.sE * delayLine.sB;
     sum.sA += weights.sD * delayLine.sC;
@@ -248,7 +248,7 @@ __kernel void invFIRfilter(__global void *invFIRredDataPtr,
     sum.sA += weights.s0 * delayLine.s9;
     (*invFIRredData)[tab][pol][time + 10][sub_time] = sum.sA;
 
-    sum.sB  = weights.sF * delayLine.sB;
+    sum.sB = weights.sF * delayLine.sB;
     delayLine.sF = (*invFFTedData)[tab][pol][time + NR_STATION_FILTER_TAPS - 1 + 12][sub_time];
     sum.sB += weights.sE * delayLine.sC;
     sum.sB += weights.sD * delayLine.sD;
@@ -267,7 +267,7 @@ __kernel void invFIRfilter(__global void *invFIRredDataPtr,
     sum.sB += weights.s0 * delayLine.sA;
     (*invFIRredData)[tab][pol][time + 11][sub_time] = sum.sB;
 
-    sum.sC  = weights.sF * delayLine.sC;
+    sum.sC = weights.sF * delayLine.sC;
     delayLine.sF = (*invFFTedData)[tab][pol][time + NR_STATION_FILTER_TAPS - 1 + 13][sub_time];
     sum.sC += weights.sE * delayLine.sD;
     sum.sC += weights.sD * delayLine.sE;
@@ -286,7 +286,7 @@ __kernel void invFIRfilter(__global void *invFIRredDataPtr,
     sum.sC += weights.s0 * delayLine.sB;
     (*invFIRredData)[tab][pol][time + 12][sub_time] = sum.sC;
 
-    sum.sD  = weights.sF * delayLine.sD;
+    sum.sD = weights.sF * delayLine.sD;
     delayLine.sF = (*invFFTedData)[tab][pol][time + NR_STATION_FILTER_TAPS - 1 + 14][sub_time];
     sum.sD += weights.sE * delayLine.sE;
     sum.sD += weights.sD * delayLine.sF;
@@ -305,7 +305,7 @@ __kernel void invFIRfilter(__global void *invFIRredDataPtr,
     sum.sD += weights.s0 * delayLine.sC;
     (*invFIRredData)[tab][pol][time + 13][sub_time] = sum.sD;
 
-    sum.sE  = weights.sF * delayLine.sE;
+    sum.sE = weights.sF * delayLine.sE;
     delayLine.sF = (*invFFTedData)[tab][pol][time + NR_STATION_FILTER_TAPS - 1 + 15][sub_time];
     sum.sE += weights.sE * delayLine.sF;
     sum.sE += weights.sD * delayLine.s0;
@@ -324,7 +324,7 @@ __kernel void invFIRfilter(__global void *invFIRredDataPtr,
     sum.sE += weights.s0 * delayLine.sD;
     (*invFIRredData)[tab][pol][time + 14][sub_time] = sum.sE;
 
-    sum.sF  = weights.sF * delayLine.sF;
+    sum.sF = weights.sF * delayLine.sF;
     sum.sF += weights.sE * delayLine.s0;
     sum.sF += weights.sD * delayLine.s1;
     sum.sF += weights.sC * delayLine.s2;
diff --git a/RTCP/Cobalt/GPUProc/src/UHEP/InvertedStationPPFWeights.cc b/RTCP/Cobalt/GPUProc/src/UHEP/InvertedStationPPFWeights.cc
index 8dd949ce2b73470c5de20cdcbc25469f1808bea0..d70b78ca887780810105b078f812979983c16fe7 100644
--- a/RTCP/Cobalt/GPUProc/src/UHEP/InvertedStationPPFWeights.cc
+++ b/RTCP/Cobalt/GPUProc/src/UHEP/InvertedStationPPFWeights.cc
@@ -1,19 +1,19 @@
 int reverseSubbandMapping[512] = {
-   -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
-   -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
-   -1,  -1,  -1,  -1,   0,   1,   2,   3,
-    4,   5,   6,   7,   8,   9,  10,  11,
-   12,  13,  14,  15,  16,  17,  18,  19,
-   20,  21,  22,  23,  24,  25,  26,  27,
-   28,  29,  30,  31,  32,  33,  34,  35,
-   36,  37,  38,  39,  40,  41,  42,  43,
-   44,  45,  46,  47,  48,  49,  50,  51,
-   52,  53,  54,  55,  56,  57,  58,  59,
-   60,  61,  62,  63,  64,  65,  66,  67,
-   68,  69,  70,  71,  72,  73,  74,  75,
-   76,  77,  78,  79,  80,  81,  82,  83,
-   84,  85,  86,  87,  88,  89,  90,  91,
-   92,  93,  94,  95,  96,  97,  98,  99,
+  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
+  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
+  -1,  -1,  -1,  -1,   0,   1,   2,   3,
+  4,   5,   6,   7,   8,   9,  10,  11,
+  12,  13,  14,  15,  16,  17,  18,  19,
+  20,  21,  22,  23,  24,  25,  26,  27,
+  28,  29,  30,  31,  32,  33,  34,  35,
+  36,  37,  38,  39,  40,  41,  42,  43,
+  44,  45,  46,  47,  48,  49,  50,  51,
+  52,  53,  54,  55,  56,  57,  58,  59,
+  60,  61,  62,  63,  64,  65,  66,  67,
+  68,  69,  70,  71,  72,  73,  74,  75,
+  76,  77,  78,  79,  80,  81,  82,  83,
+  84,  85,  86,  87,  88,  89,  90,  91,
+  92,  93,  94,  95,  96,  97,  98,  99,
   100, 101, 102, 103, 104, 105, 106, 107,
   108, 109, 110, 111, 112, 113, 114, 115,
   116, 117, 118, 119, 120, 121, 122, 123,
@@ -61,4106 +61,4106 @@ int reverseSubbandMapping[512] = {
   452, 453, 454, 455, 456, 457, 458, 459,
   460, 461, 462, 463, 464, 465, 466, 467,
   468, 469, 470, 471,  -1,  -1,  -1,  -1,
-   -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
-   -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
+  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
+  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
 };
 
 
 extern const float invertedStationPPFWeights[1024][16] __attribute__ ((aligned(32))) = {
   { -0.000179151700, -0.003308169600,  0.003168136400, -0.001402398400,
     -0.000353662500,  0.001927602200, -0.003163333400,  0.004012019600,
-     0.305533321300,  0.003717851500, -0.003038205600,  0.001856478200,
+    0.305533321300,  0.003717851500, -0.003038205600,  0.001856478200,
     -0.000314280200, -0.001413956600,  0.003176999800, -0.003309959200},
   { -0.000188174200, -0.003292642400,  0.003165263500, -0.001388720100,
     -0.000384077600,  0.001988112900, -0.003285234700,  0.004303401100,
-     0.305532062500,  0.003427783000, -0.002906671400,  0.001795892300,
+    0.305532062500,  0.003427783000, -0.002906671400,  0.001795892300,
     -0.000283721000, -0.001437413900,  0.003189613400, -0.003326162500},
   { -0.000196877000, -0.003287185700,  0.003153111900, -0.001365477700,
     -0.000414183100,  0.002048118400, -0.003406922200,  0.004585797400,
-     0.305529242100,  0.003148416400, -0.002784621900,  0.001725095700,
+    0.305529242100,  0.003148416400, -0.002784621900,  0.001725095700,
     -0.000252375300, -0.001452058900,  0.003202823300, -0.003332926300},
   { -0.000205837900, -0.003272003200,  0.003141260600, -0.001352471400,
     -0.000443644700,  0.002116848800, -0.003537488300,  0.004878336100,
-     0.305525209100,  0.002859642300, -0.002662171400,  0.001663994200,
+    0.305525209100,  0.002859642300, -0.002662171400,  0.001663994200,
     -0.000211731900, -0.001466550800,  0.003206380900, -0.003349458000},
   { -0.000214552200, -0.003266806700,  0.003129659400, -0.001339690600,
     -0.000482746700,  0.002176562700, -0.003658974500,  0.005162307100,
-     0.305528831700,  0.002572382100, -0.002530584900,  0.001602837600,
+    0.305528831700,  0.002572382100, -0.002530584900,  0.001602837600,
     -0.000180271600, -0.001491017200,  0.003220032300, -0.003356689400},
   { -0.000223661700, -0.003260822600,  0.003127233900, -0.001326570100,
     -0.000512158000,  0.002235803700, -0.003780111100,  0.005456280000,
-     0.305521935800,  0.002275511400, -0.002407952000,  0.001531547700,
+    0.305521935800,  0.002275511400, -0.002407952000,  0.001531547700,
     -0.000148571000, -0.001505753800,  0.003233233200, -0.003373394500},
   { -0.000231910300, -0.003246569900,  0.003116275100, -0.001304684500,
     -0.000541061900,  0.002304368000, -0.003901387700,  0.005741703600,
-     0.305522735200,  0.001989240500, -0.002285243100,  0.001469413800,
+    0.305522735200,  0.001989240500, -0.002285243100,  0.001469413800,
     -0.000116373400, -0.001521319900,  0.003247258700, -0.003380795000},
   { -0.000240501100, -0.003241453500,  0.003104789400, -0.001292085400,
     -0.000569919800,  0.002362991000, -0.004022334800,  0.006027997600,
-     0.305521780500,  0.001704243000, -0.002153295800,  0.001397822300,
+    0.305521780500,  0.001704243000, -0.002153295800,  0.001397822300,
     -0.000074381800, -0.001537100900,  0.003251864100, -0.003388377600},
   { -0.000248796500, -0.003226864100,  0.003093528500, -0.001279946600,
     -0.000607985400,  0.002421344900, -0.004142487600,  0.006323528600,
-     0.305510887600,  0.001418764600, -0.002029953100,  0.001335330400,
+    0.305510887600,  0.001418764600, -0.002029953100,  0.001335330400,
     -0.000042083300, -0.001561789400,  0.003265175300, -0.003404731400},
   { -0.000257636700, -0.003221504300,  0.003091948000, -0.001267872500,
     -0.000636159800,  0.002489119800, -0.004263249000,  0.006610834100,
-     0.305507531700,  0.001124928200, -0.001906951100,  0.001263167800,
+    0.305507531700,  0.001124928200, -0.001906951100,  0.001263167800,
     -0.000009313800, -0.001577770500,  0.003279564200, -0.003412490900},
   { -0.000265507200, -0.003207541700,  0.003081283900, -0.001246591800,
     -0.000664350300,  0.002546976200, -0.004383683600,  0.006898956800,
-     0.305502674600,  0.000841583200, -0.001774239400,  0.001200242700,
-     0.000033135500, -0.001593584100,  0.003293434500, -0.003429250800},
+    0.305502674600,  0.000841583200, -0.001774239400,  0.001200242700,
+    0.000033135500, -0.001593584100,  0.003293434500, -0.003429250800},
   { -0.000273917600, -0.003202910800,  0.003070451600, -0.001234554400,
     -0.000692451500,  0.002604895500, -0.004503987800,  0.007187871700,
-     0.305505931400,  0.000558741700, -0.001650952000,  0.001127390700,
-     0.000066556300, -0.001619778200,  0.003298773100, -0.003437037600},
+    0.305505931400,  0.000558741700, -0.001650952000,  0.001127390700,
+    0.000066556300, -0.001619778200,  0.003298773100, -0.003437037600},
   { -0.000281862900, -0.003188993500,  0.003060168000, -0.001223831900,
     -0.000729004800,  0.002671831100, -0.004624290900,  0.007477414500,
-     0.305498083700,  0.000267125500, -0.001517720800,  0.001063982400,
-     0.000099881700, -0.001636003800,  0.003313035200, -0.003454137100},
+    0.305498083700,  0.000267125500, -0.001517720800,  0.001063982400,
+    0.000099881700, -0.001636003800,  0.003313035200, -0.003454137100},
   { -0.000289997500, -0.003184579100,  0.003050026400, -0.001202902100,
     -0.000756520300,  0.002728774500, -0.004744017700,  0.007767318900,
-     0.305488765700, -0.000023525100, -0.001394377600,  0.000990953800,
-     0.000143244500, -0.001652648300,  0.003327682700, -0.003461774600},
+    0.305488765700, -0.000023525100, -0.001394377600,  0.000990953800,
+    0.000143244500, -0.001652648300,  0.003327682700, -0.003461774600},
   { -0.000297868500, -0.003170531700,  0.003048908400, -0.001191632000,
     -0.000784087900,  0.002786310700, -0.004864404400,  0.008048797600,
-     0.305487970600, -0.000304469600, -0.001260861000,  0.000926754800,
-     0.000177135000, -0.001679160000,  0.003343036000, -0.003469765900},
+    0.305487970600, -0.000304469600, -0.001260861000,  0.000926754800,
+    0.000177135000, -0.001679160000,  0.003343036000, -0.003469765900},
   { -0.000306075200, -0.003165955700,  0.003038511100, -0.001180375200,
     -0.000811096700,  0.002842935600, -0.004983911700,  0.008340196300,
-     0.305476029500, -0.000594272800, -0.001136564500,  0.000852586500,
-     0.000211810600, -0.001696380900,  0.003348178400, -0.003486840300},
+    0.305476029500, -0.000594272800, -0.001136564500,  0.000852586500,
+    0.000211810600, -0.001696380900,  0.003348178400, -0.003486840300},
   { -0.000313813200, -0.003152349500,  0.003028499400, -0.001169925400,
     -0.000837361100,  0.002908698000, -0.005103588900,  0.008632676200,
-     0.305471690900, -0.000882964600, -0.001002806300,  0.000788301700,
-     0.000255669300, -0.001713789300,  0.003363569600, -0.003495167000},
+    0.305471690900, -0.000882964600, -0.001002806300,  0.000788301700,
+    0.000255669300, -0.001713789300,  0.003363569600, -0.003495167000},
   { -0.000321551300, -0.003148759600,  0.003019394800, -0.001150412500,
     -0.000873315500,  0.002965177700, -0.005223260400,  0.008916237200,
-     0.305466205000, -0.001170623500, -0.000869571200,  0.000714234800,
-     0.000290089600, -0.001740435500,  0.003378711000, -0.003512573100},
+    0.305466205000, -0.001170623500, -0.000869571200,  0.000714234800,
+    0.000290089600, -0.001740435500,  0.003378711000, -0.003512573100},
   { -0.000329970400, -0.003144017200,  0.003018842400, -0.001139831400,
     -0.000899901500,  0.003021134300, -0.005342285700,  0.009209557400,
-     0.305459744400, -0.001458744900, -0.000744677800,  0.000649268300,
-     0.000334721100, -0.001758288700,  0.003394346200, -0.003520921500},
+    0.305459744400, -0.001458744900, -0.000744677800,  0.000649268300,
+    0.000334721100, -0.001758288700,  0.003394346200, -0.003520921500},
   { -0.000337260000, -0.003130746200,  0.003009011500, -0.001129494000,
     -0.000925937200,  0.003077019500, -0.005461903400,  0.009494961400,
-     0.305451127000, -0.001745336100, -0.000610465300,  0.000573925900,
-     0.000370535700, -0.001776549100,  0.003400302700, -0.003538373300},
+    0.305451127000, -0.001745336100, -0.000610465300,  0.000573925900,
+    0.000370535700, -0.001776549100,  0.003400302700, -0.003538373300},
   { -0.000345274700, -0.003126683700,  0.002999325200, -0.001119130300,
     -0.000951776200,  0.003132334500, -0.005580569300,  0.009789706100,
-     0.305441562500, -0.002031776000, -0.000485477300,  0.000498512700,
-     0.000406472900, -0.001794658100,  0.003416172000, -0.003546870600},
+    0.305441562500, -0.002031776000, -0.000485477300,  0.000498512700,
+    0.000406472900, -0.001794658100,  0.003416172000, -0.003546870600},
   { -0.000352248700, -0.003113898000,  0.002990283900, -0.001099777400,
     -0.000977716300,  0.003187647900, -0.005699440100,  0.010075840400,
-     0.305430485400, -0.002316996000, -0.000351097200,  0.000433003700,
-     0.000451135800, -0.001822254600,  0.003431922800, -0.003564774200},
+    0.305430485400, -0.002316996000, -0.000351097200,  0.000433003700,
+    0.000451135800, -0.001822254600,  0.003431922800, -0.003564774200},
   { -0.000360263700, -0.003109808600,  0.002990478200, -0.001090243800,
     -0.001002860000,  0.003252789700, -0.005809448800,  0.010362986600,
-     0.305427509700, -0.002601772700, -0.000216601600,  0.000357013800,
-     0.000487681400, -0.001841238600,  0.003448505600, -0.003573744000},
+    0.305427509700, -0.002601772700, -0.000216601600,  0.000357013800,
+    0.000487681400, -0.001841238600,  0.003448505600, -0.003573744000},
   { -0.000367260100, -0.003096989400,  0.002981370000, -0.001081004600,
     -0.001037636700,  0.003307938500, -0.005928189500,  0.010650492300,
-     0.305413750100, -0.002886387300, -0.000090648300,  0.000290078700,
-     0.000524745900, -0.001860858600,  0.003455849400, -0.003582656500},
+    0.305413750100, -0.002886387300, -0.000090648300,  0.000290078700,
+    0.000524745900, -0.001860858600,  0.003455849400, -0.003582656500},
   { -0.000375146000, -0.003093318200,  0.002972423700, -0.001071720100,
     -0.001062345400,  0.003362096800, -0.006046137200,  0.010948594500,
-     0.305407159000, -0.003178921900,  0.000043993500,  0.000214496100,
-     0.000570197700, -0.001888981300,  0.003472094500, -0.003601269100},
+    0.305407159000, -0.003178921900,  0.000043993500,  0.000214496100,
+    0.000570197700, -0.001888981300,  0.003472094500, -0.003601269100},
   { -0.000381874300, -0.003080805300,  0.002963790800, -0.001053001800,
     -0.001087365200,  0.003416433800, -0.006164483000,  0.011237344100,
-     0.305390383500, -0.003461481100,  0.000179544400,  0.000146785300,
-     0.000607413700, -0.001908316200,  0.003489057800, -0.003610639600},
+    0.305390383500, -0.003461481100,  0.000179544400,  0.000146785300,
+    0.000607413700, -0.001908316200,  0.003489057800, -0.003610639600},
   { -0.000389669200, -0.003076842200,  0.002964194700, -0.001043813600,
     -0.001112218000,  0.003470974700, -0.006273264800,  0.011526826700,
-     0.305382025700, -0.003743576500,  0.000314498600,  0.000070163400,
-     0.000654411200, -0.001927947000,  0.003505495000, -0.003629223000},
+    0.305382025700, -0.003743576500,  0.000314498600,  0.000070163400,
+    0.000654411200, -0.001927947000,  0.003505495000, -0.003629223000},
   { -0.000396332400, -0.003064410600,  0.002955492900, -0.001034693000,
     -0.001136761300,  0.003525266500, -0.006392102100,  0.011808326800,
-     0.305371538600, -0.004034754500,  0.000440667500, -0.000007068200,
-     0.000692151600, -0.001958085100,  0.003514164000, -0.003638938800},
+    0.305371538600, -0.004034754500,  0.000440667500, -0.000007068200,
+    0.000692151600, -0.001958085100,  0.003514164000, -0.003638938800},
   { -0.000403882200, -0.003061151700,  0.002947019900, -0.001026023300,
     -0.001160855500,  0.003578931400, -0.006510233800,  0.012099735200,
-     0.305359759100, -0.004325205000,  0.000577290600, -0.000075620500,
-     0.000729983100, -0.001977775600,  0.003531138400, -0.003658356000},
+    0.305359759100, -0.004325205000,  0.000577290600, -0.000075620500,
+    0.000729983100, -0.001977775600,  0.003531138400, -0.003658356000},
   { -0.000410416700, -0.003048768800,  0.002938122000, -0.001017024400,
     -0.001185043200,  0.003632680800, -0.006618462800,  0.012391231100,
-     0.305346710600, -0.004604878800,  0.000712646300, -0.000153154100,
-     0.000778065700, -0.001998535200,  0.003548917800, -0.003668399300},
+    0.305346710600, -0.004604878800,  0.000712646300, -0.000153154100,
+    0.000778065700, -0.001998535200,  0.003548917800, -0.003668399300},
   { -0.000418160500, -0.003045285600,  0.002940099300, -0.000999989700,
     -0.001207958100,  0.003694939000, -0.006736106600,  0.012683638900,
-     0.305331925800, -0.004893293600,  0.000848238100, -0.000231056700,
-     0.000815922500, -0.002028355600,  0.003567216600, -0.003678810800},
+    0.305331925800, -0.004893293600,  0.000848238100, -0.000231056700,
+    0.000815922500, -0.002028355600,  0.003567216600, -0.003678810800},
   { -0.000424402600, -0.003033543100,  0.002932209100, -0.000992319500,
     -0.001241358200,  0.003749292200, -0.006845375400,  0.012968326800,
-     0.305325129100, -0.005181636100,  0.000984943000, -0.000299850300,
-     0.000864607400, -0.002050276300,  0.003575779100, -0.003698495600},
+    0.305325129100, -0.005181636100,  0.000984943000, -0.000299850300,
+    0.000864607400, -0.002050276300,  0.003575779100, -0.003698495600},
   { -0.000431795400, -0.003030515100,  0.002924143600, -0.000984066100,
     -0.001264499500,  0.003801673700, -0.006962423800,  0.013261923500,
-     0.305307792800, -0.005469551400,  0.001112105700, -0.000378641900,
-     0.000903979800, -0.002071214100,  0.003594054000, -0.003708956400},
+    0.305307792800, -0.005469551400,  0.001112105700, -0.000378641900,
+    0.000903979800, -0.002071214100,  0.003594054000, -0.003708956400},
   { -0.000438154800, -0.003018644300,  0.002915881100, -0.000975892700,
     -0.001287607700,  0.003854346300, -0.007080269600,  0.013547492500,
-     0.305299153300, -0.005747166800,  0.001248307000, -0.000457538900,
-     0.000942775500, -0.002101520100,  0.003612350900, -0.003729050600},
+    0.305299153300, -0.005747166800,  0.001248307000, -0.000457538900,
+    0.000942775500, -0.002101520100,  0.003612350900, -0.003729050600},
   { -0.000445068000, -0.003016231600,  0.002908760100, -0.000958623000,
     -0.001311089600,  0.003906976500, -0.007187486600,  0.013842019100,
-     0.305278786000, -0.006032900700,  0.001385321000, -0.000527217900,
-     0.000991980200, -0.002123501700,  0.003631277700, -0.003740453600},
+    0.305278786000, -0.006032900700,  0.001385321000, -0.000527217900,
+    0.000991980200, -0.002123501700,  0.003631277700, -0.003740453600},
   { -0.000451769900, -0.003003554800,  0.002910117000, -0.000951286800,
     -0.001333568200,  0.003959036100, -0.007305163600,  0.014129397200,
-     0.305266353700, -0.006318495400,  0.001522406400, -0.000607494800,
-     0.001032856600, -0.002146282400,  0.003641224700, -0.003751272400},
+    0.305266353700, -0.006318495400,  0.001522406400, -0.000607494800,
+    0.001032856600, -0.002146282400,  0.003641224700, -0.003751272400},
   { -0.000458704700, -0.003001127800,  0.002902744400, -0.000943766600,
     -0.001356286200,  0.004011606300, -0.007413160700,  0.014416934300,
-     0.305252141100, -0.006612456400,  0.001659411900, -0.000686657100,
-     0.001082013300, -0.002177942800,  0.003660354300, -0.003772222700},
+    0.305252141100, -0.006612456400,  0.001659411900, -0.000686657100,
+    0.001082013300, -0.002177942800,  0.003660354300, -0.003772222700},
   { -0.000464860200, -0.002989337500,  0.002894831400, -0.000936224300,
     -0.001378788100,  0.004063782200, -0.007520350800,  0.014714266400,
-     0.305236860000, -0.006896906600,  0.001797689700, -0.000758115600,
-     0.001122795500, -0.002200335400,  0.003679910900, -0.003784248300},
+    0.305236860000, -0.006896906600,  0.001797689700, -0.000758115600,
+    0.001122795500, -0.002200335400,  0.003679910900, -0.003784248300},
   { -0.000471906600, -0.002986971300,  0.002887514500, -0.000929037200,
     -0.001400660100,  0.004114765900, -0.007637074700,  0.015003290600,
-     0.305220409100, -0.007180134300,  0.001934852000, -0.000838292300,
-     0.001173609200, -0.002223798900,  0.003689540000, -0.003804721500},
+    0.305220409100, -0.007180134300,  0.001934852000, -0.000838292300,
+    0.001173609200, -0.002223798900,  0.003689540000, -0.003804721500},
   { -0.000478005400, -0.002974973900,  0.002890024200, -0.000912804200,
     -0.001423103300,  0.004166752200, -0.007744430700,  0.015292286200,
-     0.305202709200, -0.007462776200,  0.002072061100, -0.000919168800,
-     0.001214479000, -0.002256106400,  0.003709864100, -0.003816509300},
+    0.305202709200, -0.007462776200,  0.002072061100, -0.000919168800,
+    0.001214479000, -0.002256106400,  0.003709864100, -0.003816509300},
   { -0.000485004200, -0.002972661400,  0.002883075100, -0.000906121000,
     -0.001444400500,  0.004217388300, -0.007861128300,  0.015582827100,
-     0.305182829200, -0.007754203600,  0.002210354400, -0.001000782800,
-     0.001256255000, -0.002278849600,  0.003729366300, -0.003838542900},
+    0.305182829200, -0.007754203600,  0.002210354400, -0.001000782800,
+    0.001256255000, -0.002278849600,  0.003729366300, -0.003838542900},
   { -0.000491739700, -0.002970642300,  0.002875940200, -0.000898797900,
     -0.001467267200,  0.004259593600, -0.007967928800,  0.015873669900,
-     0.305171969300, -0.008036267100,  0.002349092100, -0.001072739500,
-     0.001307766700, -0.002302777900,  0.003749888800, -0.003850712800},
+    0.305171969300, -0.008036267100,  0.002349092100, -0.001072739500,
+    0.001307766700, -0.002302777900,  0.003749888800, -0.003850712800},
   { -0.000497291200, -0.002959470700,  0.002868512700, -0.000891753800,
     -0.001488975800,  0.004311149200, -0.008075516000,  0.016155288200,
-     0.305150388000, -0.008316860100,  0.002487086200, -0.001154788900,
-     0.001350046400, -0.002336945300,  0.003761723500, -0.003862439200},
+    0.305150388000, -0.008316860100,  0.002487086200, -0.001154788900,
+    0.001350046400, -0.002336945300,  0.003761723500, -0.003862439200},
   { -0.000504731900, -0.002956450800,  0.002871262500, -0.000886061100,
     -0.001509538700,  0.004360886000, -0.008191697200,  0.016448378400,
-     0.305135746300, -0.008606633700,  0.002625496200, -0.001236297400,
-     0.001401956000, -0.002360832800,  0.003781771800, -0.003884434400},
+    0.305135746300, -0.008606633700,  0.002625496200, -0.001236297400,
+    0.001401956000, -0.002360832800,  0.003781771800, -0.003884434400},
   { -0.000510187200, -0.002945799600,  0.002865288500, -0.000870352000,
     -0.001531072000,  0.004411842900, -0.008298811000,  0.016741989300,
-     0.305119193600, -0.008895401800,  0.002764325800, -0.001319345500,
-     0.001445432500, -0.002385302500,  0.003803145000, -0.003898001300},
+    0.305119193600, -0.008895401800,  0.002764325800, -0.001319345500,
+    0.001445432500, -0.002385302500,  0.003803145000, -0.003898001300},
   { -0.000516831700, -0.002943863500,  0.002858545300, -0.000863995200,
     -0.001552015500,  0.004462029400, -0.008404468200,  0.017034066400,
-     0.305093771700, -0.009174192300,  0.002903186600, -0.001391517800,
-     0.001496396500, -0.002418783000,  0.003823612700, -0.003919897700},
+    0.305093771700, -0.009174192300,  0.002903186600, -0.001391517800,
+    0.001496396500, -0.002418783000,  0.003823612700, -0.003919897700},
   { -0.000522254800, -0.002933011700,  0.002851744600, -0.000857749800,
     -0.001572829300,  0.004512760300, -0.008512038500,  0.017319625600,
-     0.305074913300, -0.009461842200,  0.003042687600, -0.001475450400,
-     0.001541005000, -0.002444849800,  0.003836006300, -0.003932401200},
+    0.305074913300, -0.009461842200,  0.003042687600, -0.001475450400,
+    0.001541005000, -0.002444849800,  0.003836006300, -0.003932401200},
   { -0.000529601300, -0.002930099600,  0.002854820400, -0.000852704600,
     -0.001592429500,  0.004561274000, -0.008627194900,  0.017615006900,
-     0.305054496900, -0.009748599800,  0.003181615900, -0.001558137300,
-     0.001594324200, -0.002470181000,  0.003857769000, -0.003945651400},
+    0.305054496900, -0.009748599800,  0.003181615900, -0.001558137300,
+    0.001594324200, -0.002470181000,  0.003857769000, -0.003945651400},
   { -0.000534931600, -0.002919339300,  0.002848150100, -0.000846731600,
     -0.001612810100,  0.004611510300, -0.008734196000,  0.017901410200,
-     0.305033298300, -0.010034991200,  0.003321126400, -0.001641796500,
-     0.001637657900, -0.002504378200,  0.003879253900, -0.003968435100},
+    0.305033298300, -0.010034991200,  0.003321126400, -0.001641796500,
+    0.001637657900, -0.002504378200,  0.003879253900, -0.003968435100},
   { -0.000541059600, -0.002918541200,  0.002843043800, -0.000831250300,
     -0.001634950600,  0.004652450700, -0.008840558000,  0.018188790800,
-     0.305021093200, -0.010312015500,  0.003461182700, -0.001716342200,
-     0.001692059700, -0.002531656000,  0.003892381100, -0.003981307700},
+    0.305021093200, -0.010312015500,  0.003461182700, -0.001716342200,
+    0.001692059700, -0.002531656000,  0.003892381100, -0.003981307700},
   { -0.000546470300, -0.002907704700,  0.002836444100, -0.000825608000,
     -0.001654657700,  0.004701589700, -0.008946113900,  0.018485752400,
-     0.304996474100, -0.010596860500,  0.003601134500, -0.001801009400,
-     0.001736945200, -0.002556816600,  0.003913332400, -0.004004119100},
+    0.304996474100, -0.010596860500,  0.003601134500, -0.001801009400,
+    0.001736945200, -0.002556816600,  0.003913332400, -0.004004119100},
   { -0.000553421000, -0.002905324000,  0.002840026900, -0.000820954500,
     -0.001674129700,  0.004751033800, -0.009052649800,  0.018774565100,
-     0.304980747200, -0.010881885600,  0.003741264500, -0.001885730400,
-     0.001781462400, -0.002592340800,  0.003936717300, -0.004018305800},
+    0.304980747200, -0.010881885600,  0.003741264500, -0.001885730400,
+    0.001781462400, -0.002592340800,  0.003936717300, -0.004018305800},
   { -0.000558583500, -0.002894695900,  0.002833775600, -0.000815677100,
     -0.001693616200,  0.004800033700, -0.009158923400,  0.019063780300,
-     0.304952581400, -0.011174339100,  0.003881652600, -0.001970197900,
-     0.001836677600, -0.002619434800,  0.003959785900, -0.004032488300},
+    0.304952581400, -0.011174339100,  0.003881652600, -0.001970197900,
+    0.001836677600, -0.002619434800,  0.003959785900, -0.004032488300},
   { -0.000564955500, -0.002893561300,  0.002828266400, -0.000810671500,
     -0.001712856100,  0.004849033400, -0.009265048200,  0.019354083600,
-     0.304933847400, -0.011457786400,  0.004022181900, -0.002055659400,
-     0.001882018300, -0.002656075600,  0.003973130000, -0.004055549600},
+    0.304933847400, -0.011457786400,  0.004022181900, -0.002055659400,
+    0.001882018300, -0.002656075600,  0.003973130000, -0.004055549600},
   { -0.000569990700, -0.002883172300,  0.002821862700, -0.000805210900,
     -0.001733255400,  0.004888539700, -0.009370571700,  0.019645015200,
-     0.304913195700, -0.011739650400,  0.004173020900, -0.002132234200,
-     0.001937624600, -0.002683625100,  0.003996648800, -0.004070086100},
+    0.304913195700, -0.011739650400,  0.004173020900, -0.002132234200,
+    0.001937624600, -0.002683625100,  0.003996648800, -0.004070086100},
   { -0.000576816700, -0.002880712200,  0.002825556300, -0.000801110200,
     -0.001751710900,  0.004936537800, -0.009475750900,  0.019935070200,
-     0.304882818800, -0.012021363400,  0.004313763100, -0.002218448800,
-     0.001984116400, -0.002710135300,  0.004018650800, -0.004093587400},
+    0.304882818800, -0.012021363400,  0.004313763100, -0.002218448800,
+    0.001984116400, -0.002710135300,  0.004018650800, -0.004093587400},
   { -0.000581575700, -0.002871029700,  0.002820817600, -0.000787003500,
     -0.001771208200,  0.004984922000, -0.009581223300,  0.020227247700,
-     0.304859324200, -0.012301966200,  0.004453794800, -0.002303557800,
-     0.002039760600, -0.002748740500,  0.004034016500, -0.004107894100},
+    0.304859324200, -0.012301966200,  0.004453794800, -0.002303557800,
+    0.002039760600, -0.002748740500,  0.004034016500, -0.004107894100},
   { -0.000587752000, -0.002870343700,  0.002816043200, -0.000782738000,
     -0.001789823800,  0.005033655500, -0.009688643500,  0.020512328500,
-     0.304843748500, -0.012592772900,  0.004596104100, -0.002391051400,
-     0.002087605700, -0.002776914700,  0.004058501200, -0.004123192100},
+    0.304843748500, -0.012592772900,  0.004596104100, -0.002391051400,
+    0.002087605700, -0.002776914700,  0.004058501200, -0.004123192100},
   { -0.000592610900, -0.002860138800,  0.002809924700, -0.000777559700,
     -0.001809457700,  0.005071968700, -0.009792977800,  0.020805308800,
-     0.304818061900, -0.012872591200,  0.004737013500, -0.002477149500,
-     0.002144535400, -0.002805006000,  0.004081504200, -0.004147500100},
+    0.304818061900, -0.012872591200,  0.004737013500, -0.002477149500,
+    0.002144535400, -0.002805006000,  0.004081504200, -0.004147500100},
   { -0.000598855700, -0.002859183800,  0.002804989100, -0.000773711900,
     -0.001827130700,  0.005119292900, -0.009897966800,  0.021099553600,
-     0.304789228200, -0.013159535100,  0.004888119300, -0.002565148700,
-     0.002191690700, -0.002842615100,  0.004106712900, -0.004163246800},
+    0.304789228200, -0.013159535100,  0.004888119300, -0.002565148700,
+    0.002191690700, -0.002842615100,  0.004106712900, -0.004163246800},
   { -0.000604129100, -0.002847973400,  0.002808540700, -0.000770115000,
     -0.001845151700,  0.005166831300, -0.010003738700,  0.021384603000,
-     0.304761759800, -0.013438827400,  0.005030699900, -0.002642744000,
-     0.002248900100, -0.002872462400,  0.004120956700, -0.004186959300},
+    0.304761759800, -0.013438827400,  0.005030699900, -0.002642744000,
+    0.002248900100, -0.002872462400,  0.004120956700, -0.004186959300},
   { -0.000610304100, -0.002847187000,  0.002803718400, -0.000765887200,
     -0.001863954900,  0.005204656900, -0.010108070800,  0.021680873600,
-     0.304740017400, -0.013726605300,  0.005173599700, -0.002731549500,
-     0.002298070200, -0.002901375100,  0.004145912600, -0.004202808100},
+    0.304740017400, -0.013726605300,  0.005173599700, -0.002731549500,
+    0.002298070200, -0.002901375100,  0.004145912600, -0.004202808100},
   { -0.000614775300, -0.002837812200,  0.002799287100, -0.000751378700,
     -0.001873340800,  0.005251545400, -0.010213985000,  0.021968758500,
-     0.304717226400, -0.014013384600,  0.005315723700, -0.002818772700,
-     0.002355245100, -0.002940735300,  0.004172433300, -0.004219310800},
+    0.304717226400, -0.014013384600,  0.005315723700, -0.002818772700,
+    0.002355245100, -0.002940735300,  0.004172433300, -0.004219310800},
   { -0.000620567900, -0.002837320300,  0.002794490100, -0.000747532900,
     -0.001891056000,  0.005299546400, -0.010309931700,  0.022254934400,
-     0.304685251500, -0.014288738100,  0.005467214000, -0.002908733500,
-     0.002405494900, -0.002971287100,  0.004187192800, -0.004243542100},
+    0.304685251500, -0.014288738100,  0.005467214000, -0.002908733500,
+    0.002405494900, -0.002971287100,  0.004187192800, -0.004243542100},
   { -0.000625856800, -0.002826051900,  0.002798242800, -0.000744164300,
     -0.001909172200,  0.005336339900, -0.010413292700,  0.022552838800,
-     0.304659243200, -0.014574287100,  0.005609909000, -0.002997005100,
-     0.002464760300, -0.003001761400,  0.004213047800, -0.004260008200},
+    0.304659243200, -0.014574287100,  0.005609909000, -0.002997005100,
+    0.002464760300, -0.003001761400,  0.004213047800, -0.004260008200},
   { -0.000631862500, -0.002825655200,  0.002794055000, -0.000740960500,
     -0.001926054500,  0.005382887800, -0.010518612100,  0.022842239000,
-     0.304632697600, -0.014859275700,  0.005753037200, -0.003086221600,
-     0.002513598800, -0.003041041300,  0.004239878600, -0.004276818000},
+    0.304632697600, -0.014859275700,  0.005753037200, -0.003086221600,
+    0.002513598800, -0.003041041300,  0.004239878600, -0.004276818000},
   { -0.000636395600, -0.002816103900,  0.002789011800, -0.000737686400,
     -0.001942767200,  0.005429023200, -0.010623938900,  0.023132882500,
-     0.304603952900, -0.015142040300,  0.005905217400, -0.003175720900,
-     0.002573489500, -0.003072014700,  0.004265540900, -0.004304236600},
+    0.304603952900, -0.015142040300,  0.005905217400, -0.003175720900,
+    0.002573489500, -0.003072014700,  0.004265540900, -0.004304236600},
   { -0.000642092900, -0.002815797600,  0.002784613800, -0.000733852000,
     -0.001961254600,  0.005467201200, -0.010718772800,  0.023422456600,
-     0.304574941900, -0.015425894300,  0.006049293000, -0.003266869300,
-     0.002625535200, -0.003104379700,  0.004282770700, -0.004320158000},
+    0.304574941900, -0.015425894300,  0.006049293000, -0.003266869300,
+    0.002625535200, -0.003104379700,  0.004282770700, -0.004320158000},
   { -0.000647228100, -0.002805014900,  0.002789105500, -0.000731700400,
     -0.001977598200,  0.005513183700, -0.010823907600,  0.023714956500,
-     0.304553789700, -0.015710304400,  0.006194068900, -0.003346361400,
-     0.002683321200, -0.003144467600,  0.004309182300, -0.004346993300},
+    0.304553789700, -0.015710304400,  0.006194068900, -0.003346361400,
+    0.002683321200, -0.003144467600,  0.004309182300, -0.004346993300},
   { -0.000653083600, -0.002804663400,  0.002784856700, -0.000728568200,
     -0.001994892300,  0.005549280000, -0.010927513200,  0.024006627800,
-     0.304521224900, -0.015991075000,  0.006347319100, -0.003438518800,
-     0.002735447600, -0.003175763900,  0.004336078200, -0.004364270700},
+    0.304521224900, -0.015991075000,  0.006347319100, -0.003438518800,
+    0.002735447600, -0.003175763900,  0.004336078200, -0.004364270700},
   { -0.000657344200, -0.002795073400,  0.002779372400, -0.000723818600,
     -0.002002390300,  0.005594924600, -0.011022085400,  0.024298095100,
-     0.304487711300, -0.016272419800,  0.006491186300, -0.003529018000,
-     0.002797300300, -0.003209814400,  0.004354269100, -0.004380801100},
+    0.304487711300, -0.016272419800,  0.006491186300, -0.003529018000,
+    0.002797300300, -0.003209814400,  0.004354269100, -0.004380801100},
   { -0.000662778500, -0.002795722300,  0.002777270600, -0.000711766400,
     -0.002020750200,  0.005631997300, -0.011127576100,  0.024583535100,
-     0.304461685600, -0.016563520800,  0.006636493100, -0.003620768300,
-     0.002848323700, -0.003250508600,  0.004381556100, -0.004408351500},
+    0.304461685600, -0.016563520800,  0.006636493100, -0.003620768300,
+    0.002848323700, -0.003250508600,  0.004381556100, -0.004408351500},
   { -0.000667608000, -0.002785075900,  0.002781813700, -0.000709968500,
     -0.002036501400,  0.005678048700, -0.011222628000,  0.024877740200,
-     0.304434316000, -0.016843034600,  0.006789868500, -0.003712463600,
-     0.002910777700, -0.003284178700,  0.004410227500, -0.004427971200},
+    0.304434316000, -0.016843034600,  0.006789868500, -0.003712463600,
+    0.002910777700, -0.003284178700,  0.004410227500, -0.004427971200},
   { -0.000673385900, -0.002784864800,  0.002777897100, -0.000707171500,
     -0.002053187900,  0.005713078000, -0.011324954000,  0.025171340700,
-     0.304396703900, -0.017122233300,  0.006934475400, -0.003805137400,
-     0.002964408100, -0.003317850200,  0.004428620600, -0.004444717000},
+    0.304396703900, -0.017122233300,  0.006934475400, -0.003805137400,
+    0.002964408100, -0.003317850200,  0.004428620600, -0.004444717000},
   { -0.000677353300, -0.002775967700,  0.002773610300, -0.000704737500,
     -0.002069178100,  0.005759636500, -0.011421394400,  0.025458149700,
-     0.304365892000, -0.017409498600,  0.007088896400, -0.003897094200,
-     0.003025836900, -0.003360743400,  0.004457105300, -0.004473209500},
+    0.304365892000, -0.017409498600,  0.007088896400, -0.003897094200,
+    0.003025836900, -0.003360743400,  0.004457105300, -0.004473209500},
   { -0.000683225000, -0.002775689300,  0.002769352400, -0.000700635700,
     -0.002076469800,  0.005793241800, -0.011523237400,  0.025753901000,
-     0.304334966200, -0.017688142300,  0.007233613500, -0.003988893700,
-     0.003088733700, -0.003394540900,  0.004485759300, -0.004491807700},
+    0.304334966200, -0.017688142300,  0.007233613500, -0.003988893700,
+    0.003088733700, -0.003394540900,  0.004485759300, -0.004491807700},
   { -0.000687773900, -0.002765299300,  0.002774214900, -0.000699143000,
     -0.002091778900,  0.005839096700, -0.011618952200,  0.026040879100,
-     0.304303942000, -0.017967050900,  0.007379100700, -0.004082281200,
-     0.003142614000, -0.003427404600,  0.004512855100, -0.004519537900},
+    0.304303942000, -0.017967050900,  0.007379100700, -0.004082281200,
+    0.003142614000, -0.003427404600,  0.004512855100, -0.004519537900},
   { -0.000693472400, -0.002765610600,  0.002771073600, -0.000697223600,
     -0.002107933500,  0.005874142700, -0.011723107400,  0.026331338900,
-     0.304277893000, -0.018252857000,  0.007534408900, -0.004175833600,
-     0.003206136100, -0.003473370900,  0.004534730300, -0.004538643100},
+    0.304277893000, -0.018252857000,  0.007534408900, -0.004175833600,
+    0.003206136100, -0.003473370900,  0.004534730300, -0.004538643100},
   { -0.000697463600, -0.002756676800,  0.002766964300, -0.000695192900,
     -0.002122896500,  0.005919133800, -0.011817129000,  0.026629304300,
-     0.304240989200, -0.018538518600,  0.007680828300, -0.004270140400,
-     0.003260984500, -0.003507314200,  0.004563753700, -0.004557731900},
+    0.304240989200, -0.018538518600,  0.007680828300, -0.004270140400,
+    0.003260984500, -0.003507314200,  0.004563753700, -0.004557731900},
   { -0.000703804500, -0.002754968200,  0.002772071700, -0.000692658900,
     -0.002129046300,  0.005951839900, -0.011919323000,  0.026918136600,
-     0.304205403100, -0.018813366000,  0.007835360000, -0.004364128800,
-     0.003325426100, -0.003542025400,  0.004592039500, -0.004586402700},
+    0.304205403100, -0.018813366000,  0.007835360000, -0.004364128800,
+    0.003325426100, -0.003542025400,  0.004592039500, -0.004586402700},
   { -0.000707548200, -0.002746360600,  0.002768039100, -0.000690246800,
     -0.002145830400,  0.005988351400, -0.012013907400,  0.027209072700,
-     0.304176499000, -0.019099860600,  0.007984496700, -0.004450296100,
-     0.003379587100, -0.003587618200,  0.004614320900, -0.004606892100},
+    0.304176499000, -0.019099860600,  0.007984496700, -0.004450296100,
+    0.003379587100, -0.003587618200,  0.004614320900, -0.004606892100},
   { -0.000713093800, -0.002746934500,  0.002765358600, -0.000689188800,
     -0.002160148400,  0.006033055000, -0.012109150300,  0.027501099300,
-     0.304145203000, -0.019382840700,  0.008140437800, -0.004545293600,
-     0.003445318600, -0.003624168800,  0.004645205500, -0.004627325000},
+    0.304145203000, -0.019382840700,  0.008140437800, -0.004545293600,
+    0.003445318600, -0.003624168800,  0.004645205500, -0.004627325000},
   { -0.000716707400, -0.002738242600,  0.002761221600, -0.000686846600,
     -0.002176335900,  0.006068547500, -0.012202678300,  0.027791528800,
-     0.304104283300, -0.019666250900,  0.008287779500, -0.004641076300,
-     0.003501561200, -0.003658751600,  0.004673640000, -0.004656297500},
+    0.304104283300, -0.019666250900,  0.008287779500, -0.004641076300,
+    0.003501561200, -0.003658751600,  0.004673640000, -0.004656297500},
   { -0.000722876700, -0.002737400900,  0.002768917300, -0.000676615300,
     -0.002181080700,  0.006110074200, -0.012305860200,  0.028085420100,
-     0.304069875300, -0.019947475400,  0.008443532900, -0.004736314300,
-     0.003566616300, -0.003706438500,  0.004696952300, -0.004676431900},
+    0.304069875300, -0.019947475400,  0.008443532900, -0.004736314300,
+    0.003566616300, -0.003706438500,  0.004696952300, -0.004676431900},
   { -0.000726338700, -0.002729093500,  0.002765145400, -0.000674502100,
     -0.002197280000,  0.006146021300, -0.012401276400,  0.028369440400,
-     0.304036328200, -0.020230886000,  0.008591834800, -0.004833255700,
-     0.003624215600, -0.003742729000,  0.004728140600, -0.004696972400},
+    0.304036328200, -0.020230886000,  0.008591834800, -0.004833255700,
+    0.003624215600, -0.003742729000,  0.004728140600, -0.004696972400},
   { -0.000731741100, -0.002729709100,  0.002762428000, -0.000673225600,
     -0.002212588700,  0.006180633900, -0.012494169800,  0.028662906200,
-     0.304000013700, -0.020511012600,  0.008748066500, -0.004928785800,
-     0.003689348800, -0.003788813700,  0.004759315900, -0.004727789800},
+    0.304000013700, -0.020511012600,  0.008748066500, -0.004928785800,
+    0.003689348800, -0.003788813700,  0.004759315900, -0.004727789800},
   { -0.000735386100, -0.002721352900,  0.002758959300, -0.000672109200,
     -0.002226292500,  0.006224450200, -0.012588365800,  0.028957720600,
-     0.303962072700, -0.020792099600,  0.008896179300, -0.005026132300,
-     0.003747768000, -0.003827110500,  0.004781502000, -0.004747416400},
+    0.303962072700, -0.020792099600,  0.008896179300, -0.005026132300,
+    0.003747768000, -0.003827110500,  0.004781502000, -0.004747416400},
   { -0.000741467200, -0.002720193100,  0.002764997300, -0.000670457700,
     -0.002231939800,  0.006257946300, -0.012682582100,  0.029244511900,
-     0.303933574300, -0.021072898700,  0.009054063500, -0.005123937600,
-     0.003816203000, -0.003865951000,  0.004814396600, -0.004769350200},
+    0.303933574300, -0.021072898700,  0.009054063500, -0.005123937600,
+    0.003816203000, -0.003865951000,  0.004814396600, -0.004769350200},
   { -0.000745150400, -0.002711729700,  0.002761387900, -0.000669147800,
     -0.002246404800,  0.006290380500, -0.012784037700,  0.029540755700,
-     0.303893044500, -0.021352478200,  0.009201932100, -0.005220680700,
-     0.003872318000, -0.003911010800,  0.004845423900, -0.004800157600},
+    0.303893044500, -0.021352478200,  0.009201932100, -0.005220680700,
+    0.003872318000, -0.003911010800,  0.004845423900, -0.004800157600},
   { -0.000748453500, -0.002703558700,  0.002757747500, -0.000667691900,
     -0.002261575500,  0.006324791000, -0.012877926700,  0.029827673100,
-     0.303851724000, -0.021629843300,  0.009359170900, -0.005318693300,
-     0.003941798300, -0.003952016200,  0.004869373400, -0.004820883700},
+    0.303851724000, -0.021629843300,  0.009359170900, -0.005318693300,
+    0.003941798300, -0.003952016200,  0.004869373400, -0.004820883700},
   { -0.000753869400, -0.002704376900,  0.002755157700, -0.000665839200,
     -0.002265346200,  0.006366843000, -0.012972784600,  0.030116858700,
-     0.303818672700, -0.021907914800,  0.009517056100, -0.005416881700,
-     0.004010497500, -0.003990905800,  0.004901022400, -0.004852436300},
+    0.303818672700, -0.021907914800,  0.009517056100, -0.005416881700,
+    0.004010497500, -0.003990905800,  0.004901022400, -0.004852436300},
   { -0.000758084800, -0.002694258700,  0.002760975500, -0.000666054000,
     -0.002279366500,  0.006400355600, -0.013065059600,  0.030415689700,
-     0.303781885400, -0.022195988700,  0.009667243000, -0.005515687900,
-     0.004068687500, -0.004038259800,  0.004935181400, -0.004875341600},
+    0.303781885400, -0.022195988700,  0.009667243000, -0.005515687900,
+    0.004068687500, -0.004038259800,  0.004935181400, -0.004875341600},
   { -0.000763249100, -0.002695207900,  0.002758724400, -0.000665508700,
     -0.002293624700,  0.006433708500, -0.013157852400,  0.030703785700,
-     0.303736794400, -0.022471040100,  0.009824735600, -0.005614528900,
-     0.004139136400, -0.004080198200,  0.004959857600, -0.004896598000},
+    0.303736794400, -0.022471040100,  0.009824735600, -0.005614528900,
+    0.004139136400, -0.004080198200,  0.004959857600, -0.004896598000},
   { -0.000766591100, -0.002686928900,  0.002754921900, -0.000662665200,
     -0.002299129500,  0.006466426100, -0.013251271900,  0.030994692400,
-     0.303698508100, -0.022758266200,  0.009976047300, -0.005715080300,
-     0.004199827500, -0.004118619000,  0.004991603200, -0.004928421800},
+    0.303698508100, -0.022758266200,  0.009976047300, -0.005715080300,
+    0.004199827500, -0.004118619000,  0.004991603200, -0.004928421800},
   { -0.000771897700, -0.002688143900,  0.002753279200, -0.000663161200,
     -0.002311137900,  0.006508681700, -0.013345456800,  0.031285977700,
-     0.303659766600, -0.023032853100,  0.010133649800, -0.005813434400,
-     0.004268203300, -0.004168660700,  0.005027973800, -0.004954054600},
+    0.303659766600, -0.023032853100,  0.010133649800, -0.005813434400,
+    0.004268203300, -0.004168660700,  0.005027973800, -0.004954054600},
   { -0.000775874300, -0.002678215700,  0.002759243400, -0.000663934100,
     -0.002324484400,  0.006541662700, -0.013438640200,  0.031578389200,
-     0.303617696900, -0.023316437000,  0.010294044300, -0.005916048600,
-     0.004331218000, -0.004210712400,  0.005053314100, -0.004976115300},
+    0.303617696900, -0.023316437000,  0.010294044300, -0.005916048600,
+    0.004331218000, -0.004210712400,  0.005053314100, -0.004976115300},
   { -0.000781019600, -0.002679339200,  0.002756838700, -0.000661553700,
     -0.002330048900,  0.006575368200, -0.013522135600,  0.031870307600,
-     0.303587200300, -0.023593760200,  0.010444472000, -0.006015436800,
-     0.004402065400, -0.004251580600,  0.005086442900, -0.005008967600},
+    0.303587200300, -0.023593760200,  0.010444472000, -0.006015436800,
+    0.004402065400, -0.004251580600,  0.005086442900, -0.005008967600},
   { -0.000784186200, -0.002671460600,  0.002753849700, -0.000661193300,
     -0.002343698500,  0.006608303400, -0.013614934700,  0.032163622800,
-     0.303542329100, -0.023875417200,  0.010604498100, -0.006117430000,
-     0.004462875900, -0.004301162100,  0.005122582000, -0.005033354700},
+    0.303542329100, -0.023875417200,  0.010604498100, -0.006117430000,
+    0.004462875900, -0.004301162100,  0.005122582000, -0.005033354700},
   { -0.000790060900, -0.002670435300,  0.002760669100, -0.000660699900,
     -0.002347647400,  0.006639524200, -0.013708092900,  0.032447376800,
-     0.303498774900, -0.024159306200,  0.010756094800, -0.006218141400,
-     0.004535552600, -0.004345436200,  0.005149409700, -0.005056179700},
+    0.303498774900, -0.024159306200,  0.010756094800, -0.006218141400,
+    0.004535552600, -0.004345436200,  0.005149409700, -0.005056179700},
   { -0.000793256200, -0.002662733600,  0.002757935000, -0.000660639200,
     -0.002360988600,  0.006672169900, -0.013801224500,  0.032743987500,
-     0.303460194300, -0.024440923300,  0.010917290800, -0.006321772900,
-     0.004598983100, -0.004386048500,  0.005182927100, -0.005089678500},
+    0.303460194300, -0.024440923300,  0.010917290800, -0.006321772900,
+    0.004598983100, -0.004386048500,  0.005182927100, -0.005089678500},
   { -0.000798421400, -0.002663989900,  0.002756297000, -0.000661054500,
     -0.002373851700,  0.006703786000, -0.013892349300,  0.033037596300,
-     0.303413510200, -0.024710885300,  0.011075401800, -0.006421881700,
-     0.004669293700, -0.004437547500,  0.005220209500, -0.005114783000},
+    0.303413510200, -0.024710885300,  0.011075401800, -0.006421881700,
+    0.004669293700, -0.004437547500,  0.005220209500, -0.005114783000},
   { -0.000801279400, -0.002656330700,  0.002752971400, -0.000658573800,
     -0.002379104500,  0.006737428400, -0.013977140000,  0.033324125700,
-     0.303374972100, -0.024994140700,  0.011228843600, -0.006526058700,
-     0.004734510300, -0.004481928500,  0.005247478500, -0.005138134800},
+    0.303374972100, -0.024994140700,  0.011228843600, -0.006526058700,
+    0.004734510300, -0.004481928500,  0.005247478500, -0.005138134800},
   { -0.000807307300, -0.002655561700,  0.002760752200, -0.000660917000,
     -0.002390857100,  0.006768397200, -0.014068603800,  0.033621534300,
-     0.303332931800, -0.025273538400,  0.011389660100, -0.006628580100,
-     0.004808058900, -0.004525112200,  0.005283024100, -0.005174599300},
+    0.303332931800, -0.025273538400,  0.011389660100, -0.006628580100,
+    0.004808058900, -0.004525112200,  0.005283024100, -0.005174599300},
   { -0.000810410400, -0.002647879500,  0.002757788100, -0.000659822800,
     -0.002392746100,  0.006808149800, -0.014163218900,  0.033911264900,
-     0.303289891500, -0.025552150000,  0.011550770700, -0.006731633300,
-     0.004882070200, -0.004569322900,  0.005320551900, -0.005200360700},
+    0.303289891500, -0.025552150000,  0.011550770700, -0.006731633300,
+    0.004882070200, -0.004569322900,  0.005320551900, -0.005200360700},
   { -0.000815493900, -0.002649463500,  0.002756849600, -0.000660759200,
     -0.002405245800,  0.006840045300, -0.014256420100,  0.034200612800,
-     0.303246711500, -0.025832407000,  0.011703557800, -0.006835218200,
-     0.004945699400, -0.004623184600,  0.005349893100, -0.005224926800},
+    0.303246711500, -0.025832407000,  0.011703557800, -0.006835218200,
+    0.004945699400, -0.004623184600,  0.005349893100, -0.005224926800},
   { -0.000818255300, -0.002641882000,  0.002753575300, -0.000658712000,
     -0.002409717000,  0.006872439200, -0.014340074900,  0.034489243800,
-     0.303202188800, -0.026110236100,  0.011865377600, -0.006939263300,
-     0.005020650000, -0.004667616900,  0.005385875600, -0.005260165300},
+    0.303202188800, -0.026110236100,  0.011865377600, -0.006939263300,
+    0.005020650000, -0.004667616900,  0.005385875600, -0.005260165300},
   { -0.000824295400, -0.002641015800,  0.002761659300, -0.000661736600,
     -0.002420492700,  0.006902452300, -0.014430720500,  0.034789552300,
-     0.303152032300, -0.026395378600,  0.012028731400, -0.007046166400,
-     0.005088017800, -0.004713545300,  0.005414457900, -0.005284879700},
+    0.303152032300, -0.026395378600,  0.012028731400, -0.007046166400,
+    0.005088017800, -0.004713545300,  0.005414457900, -0.005284879700},
   { -0.000827077700, -0.002633626200,  0.002758707300, -0.000659803100,
     -0.002424890300,  0.006934810400, -0.014514347800,  0.035080728500,
-     0.303114481500, -0.026675115000,  0.012182095400, -0.007148973700,
-     0.005161314600, -0.004768172600,  0.005454664900, -0.005312372600},
+    0.303114481500, -0.026675115000,  0.012182095400, -0.007148973700,
+    0.005161314600, -0.004768172600,  0.005454664900, -0.005312372600},
   { -0.000832149000, -0.002635253900,  0.002757890500, -0.000661304500,
     -0.002436456100,  0.006965471700, -0.014606652200,  0.035372382500,
-     0.303065098100, -0.026950110700,  0.012344296500, -0.007255591100,
-     0.005228310500, -0.004812448700,  0.005492759000, -0.005338761500},
+    0.303065098100, -0.026950110700,  0.012344296500, -0.007255591100,
+    0.005228310500, -0.004812448700,  0.005492759000, -0.005338761500},
   { -0.000835595400, -0.002625576200,  0.002763550700, -0.000660398000,
     -0.002441798600,  0.006987700700, -0.014687960800,  0.035664170800,
-     0.303024793500, -0.027226932800,  0.012507686500, -0.007362011400,
-     0.005306264800, -0.004861076400,  0.005521878400, -0.005375829600},
+    0.303024793500, -0.027226932800,  0.012507686500, -0.007362011400,
+    0.005306264800, -0.004861076400,  0.005521878400, -0.005375829600},
   { -0.000840529300, -0.002627331400,  0.002763058500, -0.000662228600,
     -0.002453253700,  0.007018769500, -0.014782113000,  0.035948446100,
-     0.302972042600, -0.027509888900,  0.012671612300, -0.007469387600,
-     0.005372340600, -0.004915494200,  0.005562631500, -0.005403790100},
+    0.302972042600, -0.027509888900,  0.012671612300, -0.007469387600,
+    0.005372340600, -0.004915494200,  0.005562631500, -0.005403790100},
   { -0.000843220100, -0.002620023800,  0.002760230300, -0.000660605900,
     -0.002456982100,  0.007050007700, -0.014864692500,  0.036241695300,
-     0.302928958400, -0.027786579600,  0.012825587300, -0.007574066800,
-     0.005449141300, -0.004962376800,  0.005602376800, -0.005431440200},
+    0.302928958400, -0.027786579600,  0.012825587300, -0.007574066800,
+    0.005449141300, -0.004962376800,  0.005602376800, -0.005431440200},
   { -0.000848374500, -0.002621758400,  0.002759921300, -0.000662808200,
     -0.002467783200,  0.007079958900, -0.014956855300,  0.036538564300,
-     0.302880652200, -0.028068772200,  0.012990451100, -0.007683264800,
-     0.005518700600, -0.005009907900,  0.005630853800, -0.005466715000},
+    0.302880652200, -0.028068772200,  0.012990451100, -0.007683264800,
+    0.005518700600, -0.005009907900,  0.005630853800, -0.005466715000},
   { -0.000851700900, -0.002612329100,  0.002766079600, -0.000662984200,
     -0.002470535200,  0.007110968900, -0.015040742100,  0.036823681900,
-     0.302836038100, -0.028342627700,  0.013153651000, -0.007789506200,
-     0.005594863000, -0.005067111000,  0.005673345500, -0.005495962500},
+    0.302836038100, -0.028342627700,  0.013153651000, -0.007789506200,
+    0.005594863000, -0.005067111000,  0.005673345500, -0.005495962500},
   { -0.000856978400, -0.002613369900,  0.002763436900, -0.000673963700,
     -0.002480246400,  0.007141770500, -0.015122696500,  0.037119392900,
-     0.302785848400, -0.028623546600,  0.013318487200, -0.007897426600,
-     0.005674706600, -0.005118090200,  0.005705570200, -0.005523266400},
+    0.302785848400, -0.028623546600,  0.013318487200, -0.007897426600,
+    0.005674706600, -0.005118090200,  0.005705570200, -0.005523266400},
   { -0.000859635800, -0.002606209100,  0.002760875300, -0.000672918600,
     -0.002482718300,  0.007170544900, -0.015215522800,  0.037407381800,
-     0.302738295200, -0.028897800000,  0.013473662100, -0.008005370600,
-     0.005743489200, -0.005163726600,  0.005743450200, -0.005560237100},
+    0.302738295200, -0.028897800000,  0.013473662100, -0.008005370600,
+    0.005743489200, -0.005163726600,  0.005743450200, -0.005560237100},
   { -0.000863002200, -0.002596834100,  0.002767923100, -0.000675974400,
     -0.002493386100,  0.007201598200, -0.015297293000,  0.037704094600,
-     0.302685277400, -0.029176984600,  0.013637747600, -0.008112433600,
-     0.005820627000, -0.005221758100,  0.005786648100, -0.005590368200},
+    0.302685277400, -0.029176984600,  0.013637747600, -0.008112433600,
+    0.005820627000, -0.005221758100,  0.005786648100, -0.005590368200},
   { -0.000867828800, -0.002598670200,  0.002766900000, -0.000675186800,
     -0.002497981300,  0.007223193600, -0.015379756300,  0.037993797900,
-     0.302642069200, -0.029458517200,  0.013805185000, -0.008225058800,
-     0.005893724000, -0.005272906200,  0.005819685000, -0.005618333200},
+    0.302642069200, -0.029458517200,  0.013805185000, -0.008225058800,
+    0.005893724000, -0.005272906200,  0.005819685000, -0.005618333200},
   { -0.000870433100, -0.002591465700,  0.002764455200, -0.000674653700,
     -0.002499759200,  0.007250951700, -0.015471874400,  0.038284268000,
-     0.302587106700, -0.029736435400,  0.013970133000, -0.008333790400,
-     0.005973581100, -0.005321845400,  0.005859684300, -0.005657037700},
+    0.302587106700, -0.029736435400,  0.013970133000, -0.008333790400,
+    0.005973581100, -0.005321845400,  0.005859684300, -0.005657037700},
   { -0.000875301600, -0.002593729700,  0.002764759200, -0.000677160100,
     -0.002510659300,  0.007282648600, -0.015556232000,  0.038575785600,
-     0.302541430200, -0.030018298000,  0.014128120100, -0.008444322900,
-     0.006045352000, -0.005370854200,  0.005902462900, -0.005689051600},
+    0.302541430200, -0.030018298000,  0.014128120100, -0.008444322900,
+    0.006045352000, -0.005370854200,  0.005902462900, -0.005689051600},
   { -0.000878577700, -0.002584426900,  0.002771222400, -0.000678044400,
     -0.002512230800,  0.007312074800, -0.015638780000,  0.038866667200,
-     0.302496054000, -0.030288050400,  0.014292583100, -0.008553225900,
-     0.006124864000, -0.005432964900,  0.005938417900, -0.005718682200},
+    0.302496054000, -0.030288050400,  0.014292583100, -0.008553225900,
+    0.006124864000, -0.005432964900,  0.005938417900, -0.005718682200},
   { -0.000883371200, -0.002586549000,  0.002771330800, -0.000680774600,
     -0.002522537800,  0.007342861000, -0.015721824200,  0.039157112000,
-     0.302437909100, -0.030564097400,  0.014458560600, -0.008665183400,
-     0.006197183700, -0.005481519600,  0.005978394700, -0.005757587300},
+    0.302437909100, -0.030564097400,  0.014458560600, -0.008665183400,
+    0.006197183700, -0.005481519600,  0.005978394700, -0.005757587300},
   { -0.000885670100, -0.002579613300,  0.002768808300, -0.000679473400,
     -0.002527024400,  0.007363441100, -0.015802899000,  0.039449376300,
-     0.302387399600, -0.030841085500,  0.014625338400, -0.008776679900,
-     0.006280742400, -0.005535923100,  0.006013604000, -0.005787145500},
+    0.302387399600, -0.030841085500,  0.014625338400, -0.008776679900,
+    0.006280742400, -0.005535923100,  0.006013604000, -0.005787145500},
   { -0.000891447000, -0.002579042300,  0.002777178000, -0.000681709200,
     -0.002527331400,  0.007391840300, -0.015884752000,  0.039742056100,
-     0.302336098600, -0.031117719900,  0.014792369000, -0.008889397700,
-     0.006352081900, -0.005595185800,  0.006058727200, -0.005818964100},
+    0.302336098600, -0.031117719900,  0.014792369000, -0.008889397700,
+    0.006352081900, -0.005595185800,  0.006058727200, -0.005818964100},
   { -0.000893764400, -0.002572520300,  0.002775953500, -0.000683794500,
     -0.002538011700,  0.007422582300, -0.015967839100,  0.040036207000,
-     0.302282936600, -0.031394934700,  0.014949546000, -0.008998513600,
-     0.006433987600, -0.005646959300,  0.006102867800, -0.005850311400},
+    0.302282936600, -0.031394934700,  0.014949546000, -0.008998513600,
+    0.006433987600, -0.005646959300,  0.006102867800, -0.005850311400},
   { -0.000899005400, -0.002573622600,  0.002772999400, -0.000692720800,
     -0.002539675700,  0.007441443200, -0.016048205900,  0.040332527300,
-     0.302235443400, -0.031680564700,  0.015119563200, -0.009112249200,
-     0.006519185100, -0.005702277700,  0.006137124600, -0.005890136500},
+    0.302235443400, -0.031680564700,  0.015119563200, -0.009112249200,
+    0.006519185100, -0.005702277700,  0.006137124600, -0.005890136500},
   { -0.000902066000, -0.002564399000,  0.002779793900, -0.000694252800,
     -0.002540354300,  0.007470292100, -0.016132038300,  0.040618118300,
-     0.302181358200, -0.031955488100,  0.015287200700, -0.009226118300,
-     0.006591765300, -0.005762778500,  0.006183472900, -0.005922781400},
+    0.302181358200, -0.031955488100,  0.015287200700, -0.009226118300,
+    0.006591765300, -0.005762778500,  0.006183472900, -0.005922781400},
   { -0.000906938700, -0.002566684400,  0.002780297700, -0.000697575600,
     -0.002549585000,  0.007499502500, -0.016213682700,  0.040913759200,
-     0.302123085100, -0.032226770800,  0.015450858700, -0.009346907400,
-     0.006678209600, -0.005819558300,  0.006220559900, -0.005953802600},
+    0.302123085100, -0.032226770800,  0.015450858700, -0.009346907400,
+    0.006678209600, -0.005819558300,  0.006220559900, -0.005953802600},
   { -0.000909073800, -0.002560158500,  0.002778219800, -0.000696753300,
     -0.002553495700,  0.007519854200, -0.016296539100,  0.041202514700,
-     0.302075447000, -0.032502060800,  0.015620155600, -0.009463128500,
-     0.006754676200, -0.005871819500,  0.006264360200, -0.005997784800},
+    0.302075447000, -0.032502060800,  0.015620155600, -0.009463128500,
+    0.006754676200, -0.005871819500,  0.006264360200, -0.005997784800},
   { -0.000914005100, -0.002562081100,  0.002778180000, -0.000697783700,
     -0.002553821800,  0.007547123000, -0.016377089100,  0.041498813500,
-     0.302013593200, -0.032784352400,  0.015779698800, -0.009574791300,
-     0.006838885700, -0.005925655500,  0.006310258300, -0.006030707600},
+    0.302013593200, -0.032784352400,  0.015779698800, -0.009574791300,
+    0.006838885700, -0.005925655500,  0.006310258300, -0.006030707600},
   { -0.000917048000, -0.002553292100,  0.002786094000, -0.000702405400,
     -0.002562617900,  0.007576990700, -0.016461435000,  0.041789551900,
-     0.301962237800, -0.033057262400,  0.015948108300, -0.009690267000,
-     0.006913942100, -0.005990311300,  0.006349328800, -0.006062933900},
+    0.301962237800, -0.033057262400,  0.015948108300, -0.009690267000,
+    0.006913942100, -0.005990311300,  0.006349328800, -0.006062933900},
   { -0.000921807000, -0.002555562000,  0.002785897700, -0.000702731900,
     -0.002565562900,  0.007595979900, -0.016542771000,  0.042079113900,
-     0.301910604800, -0.033329631800,  0.016116562300, -0.009804671800,
-     0.007000329800, -0.006045818500,  0.006396695800, -0.006096934600},
+    0.301910604800, -0.033329631800,  0.016116562300, -0.009804671800,
+    0.007000329800, -0.006045818500,  0.006396695800, -0.006096934600},
   { -0.000924334400, -0.002548160800,  0.002781648600, -0.000711981100,
     -0.002564257200,  0.007623115300, -0.016625851600,  0.042371265900,
-     0.301854227800, -0.033610088700,  0.016287909800, -0.009922951400,
-     0.007079130900, -0.006101996500,  0.006432255400, -0.006137812800},
+    0.301854227800, -0.033610088700,  0.016287909800, -0.009922951400,
+    0.007079130900, -0.006101996500,  0.006432255400, -0.006137812800},
   { -0.000927029000, -0.002539353500,  0.002789348200, -0.000715860200,
     -0.002576064600,  0.007646012100, -0.016699057600,  0.042661393000,
-     0.301797671500, -0.033890060300,  0.016458330300, -0.010038799500,
-     0.007167086900, -0.006158957400,  0.006480627500, -0.006172693900},
+    0.301797671500, -0.033890060300,  0.016458330300, -0.010038799500,
+    0.007167086900, -0.006158957400,  0.006480627500, -0.006172693900},
   { -0.000931902700, -0.002541677100,  0.002789556600, -0.000717300000,
     -0.002575750000,  0.007673144100, -0.016781259600,  0.042953309700,
-     0.301741305700, -0.034159645200,  0.016627163700, -0.010155742500,
-     0.007243536900, -0.006224969100,  0.006520927200, -0.006205898400},
+    0.301741305700, -0.034159645200,  0.016627163700, -0.010155742500,
+    0.007243536900, -0.006224969100,  0.006520927200, -0.006205898400},
   { -0.000933911800, -0.002535183000,  0.002787827800, -0.000716968300,
     -0.002578831000,  0.007691723300, -0.016861993700,  0.043245651300,
-     0.301682214200, -0.034440183200,  0.016788863600, -0.010270201400,
-     0.007330632700, -0.006281032900,  0.006567502700, -0.006252289300},
+    0.301682214200, -0.034440183200,  0.016788863600, -0.010270201400,
+    0.007330632700, -0.006281032900,  0.006567502700, -0.006252289300},
   { -0.000939577700, -0.002534998100,  0.002796975700, -0.000720236600,
     -0.002578087200,  0.007720653400, -0.016935463200,  0.043538995400,
-     0.301633352100, -0.034711193400,  0.016959520500, -0.010389329800,
-     0.007410503600, -0.006337047100,  0.006615790600, -0.006287412000},
+    0.301633352100, -0.034711193400,  0.016959520500, -0.010389329800,
+    0.007410503600, -0.006337047100,  0.006615790600, -0.006287412000},
   { -0.000941518100, -0.002528823500,  0.002796070900, -0.000722919300,
     -0.002589426200,  0.007740582000, -0.017016393700,  0.043833061900,
-     0.301569791200, -0.034986501900,  0.017129209400, -0.010505114500,
-     0.007497394200, -0.006406316800,  0.006658344700, -0.006322346100},
+    0.301569791200, -0.034986501900,  0.017129209400, -0.010505114500,
+    0.007497394200, -0.006406316800,  0.006658344700, -0.006322346100},
   { -0.000946421000, -0.002531073000,  0.002796544700, -0.000724851500,
     -0.002588324800,  0.007766585900, -0.017097850700,  0.044127692000,
-     0.301505220000, -0.035261474700,  0.017300143900, -0.010624650100,
-     0.007577627400, -0.006462535400,  0.006707002900, -0.006357778700},
+    0.301505220000, -0.035261474700,  0.017300143900, -0.010624650100,
+    0.007577627400, -0.006462535400,  0.006707002900, -0.006357778700},
   { -0.000949359500, -0.002521316700,  0.002800927700, -0.000735266600,
     -0.002588925400,  0.007786312500, -0.017171090300,  0.044413545900,
-     0.301451854500, -0.035540053600,  0.017473398600, -0.010743983400,
-     0.007669196200, -0.006524338300,  0.006746574400, -0.006401639200},
+    0.301451854500, -0.035540053600,  0.017473398600, -0.010743983400,
+    0.007669196200, -0.006524338300,  0.006746574400, -0.006401639200},
   { -0.000954362300, -0.002523680400,  0.002801635500, -0.000737454900,
     -0.002587518900,  0.007812074200, -0.017252787500,  0.044711874800,
-     0.301393202700, -0.035815202400,  0.017645387000, -0.010864711900,
-     0.007750585800, -0.006581589800,  0.006796203400, -0.006438009700},
+    0.301393202700, -0.035815202400,  0.017645387000, -0.010864711900,
+    0.007750585800, -0.006581589800,  0.006796203400, -0.006438009700},
   { -0.000956035500, -0.002517691400,  0.002800277200, -0.000737232300,
     -0.002591035300,  0.007833242200, -0.017326384300,  0.044998869000,
-     0.301337182700, -0.036093943200,  0.017809064300, -0.010981524900,
-     0.007839125400, -0.006652924700,  0.006840684600, -0.006474304300},
+    0.301337182700, -0.036093943200,  0.017809064300, -0.010981524900,
+    0.007839125400, -0.006652924700,  0.006840684600, -0.006474304300},
   { -0.000961768900, -0.002517572500,  0.002810197300, -0.000743330300,
     -0.002599865500,  0.007850982300, -0.017405665400,  0.045296336600,
-     0.301279455500, -0.036359405400,  0.017979361500, -0.011101909300,
-     0.007921089700, -0.006710841700,  0.006891483500, -0.006513718100},
+    0.301279455500, -0.036359405400,  0.017979361500, -0.011101909300,
+    0.007921089700, -0.006710841700,  0.006891483500, -0.006513718100},
   { -0.000963551800, -0.002511606900,  0.002809097600, -0.000744270100,
     -0.002600023100,  0.007880162200, -0.017480905500,  0.045585787000,
-     0.301219274700, -0.036633262700,  0.018151488300, -0.011221145500,
-     0.008012401600, -0.006770837100,  0.006940658100, -0.006560412300},
+    0.301219274700, -0.036633262700,  0.018151488300, -0.011221145500,
+    0.008012401600, -0.006770837100,  0.006940658100, -0.006560412300},
   { -0.000968652300, -0.002513137500,  0.002806943500, -0.000754654000,
     -0.002599054600,  0.007895994400, -0.017561716500,  0.045876647100,
-     0.301155082000, -0.036915500100,  0.018327200500, -0.011345476800,
-     0.008097770300, -0.006833460100,  0.006983825400, -0.006596465200},
+    0.301155082000, -0.036915500100,  0.018327200500, -0.011345476800,
+    0.008097770300, -0.006833460100,  0.006983825400, -0.006596465200},
   { -0.000970271500, -0.002507180900,  0.002805563000, -0.000754783900,
     -0.002601855100,  0.007916113200, -0.017634207100,  0.046165570800,
-     0.301092874000, -0.037187988000,  0.018499388000, -0.011464768800,
-     0.008187619300, -0.006903834600,  0.007038598500, -0.006636191300},
+    0.301092874000, -0.037187988000,  0.018499388000, -0.011464768800,
+    0.008187619300, -0.006903834600,  0.007038598500, -0.006636191300},
   { -0.000975884100, -0.002506921900,  0.002815167300, -0.000759066900,
     -0.002599558300,  0.007943302900, -0.017707594600,  0.046455528400,
-     0.301029284000, -0.037460064500,  0.018672889900, -0.011588469400,
-     0.008272917200, -0.006966950500,  0.007082025300, -0.006672404900},
+    0.301029284000, -0.037460064500,  0.018672889900, -0.011588469400,
+    0.008272917200, -0.006966950500,  0.007082025300, -0.006672404900},
   { -0.000977775800, -0.002500954000,  0.002814043200, -0.000759764200,
     -0.002601193300,  0.007960205400, -0.017789132800,  0.046750583700,
-     0.300971836600, -0.037732212300,  0.018846008900, -0.011709400800,
-     0.008366076000, -0.007028371700,  0.007132703000, -0.006720561000},
+    0.300971836600, -0.037732212300,  0.018846008900, -0.011709400800,
+    0.008366076000, -0.007028371700,  0.007132703000, -0.006720561000},
   { -0.000982640700, -0.002503047600,  0.002812783500, -0.000772729700,
     -0.002609428000,  0.007980042300, -0.017860728900,  0.047040567000,
-     0.300906624700, -0.038005599900,  0.019011206000, -0.011831617600,
-     0.008451307000, -0.007091540900,  0.007176317300, -0.006756891400},
+    0.300906624700, -0.038005599900,  0.019011206000, -0.011831617600,
+    0.008451307000, -0.007091540900,  0.007176317300, -0.006756891400},
   { -0.000985371100, -0.002494154700,  0.002820679000, -0.000776398500,
     -0.002607418500,  0.008007388400, -0.017934700400,  0.047335766700,
-     0.300844278100, -0.038285177900,  0.019186232700, -0.011953311100,
-     0.008543197100, -0.007164042200,  0.007233149500, -0.006798540800},
+    0.300844278100, -0.038285177900,  0.019186232700, -0.011953311100,
+    0.008543197100, -0.007164042200,  0.007233149500, -0.006798540800},
   { -0.000987006200, -0.002488366700,  0.002819585000, -0.000777006200,
     -0.002609399200,  0.008026572200, -0.018006655200,  0.047630120500,
-     0.300783801700, -0.038555831700,  0.019361129300, -0.012079179200,
-     0.008630964100, -0.007229475600,  0.007279247200, -0.006839293900},
+    0.300783801700, -0.038555831700,  0.019361129300, -0.012079179200,
+    0.008630964100, -0.007229475600,  0.007279247200, -0.006839293900},
   { -0.000991790800, -0.002490903500,  0.002820404900, -0.000778976000,
     -0.002609670800,  0.008041528500, -0.018085444700,  0.047923413800,
-     0.300712721600, -0.038822537300,  0.019533132300, -0.012200346800,
-     0.008724921800, -0.007291803100,  0.007330615400, -0.006888043700},
+    0.300712721600, -0.038822537300,  0.019533132300, -0.012200346800,
+    0.008724921800, -0.007291803100,  0.007330615400, -0.006888043700},
   { -0.000994223400, -0.002482150700,  0.002828146400, -0.000781936000,
     -0.002610430800,  0.008060409500, -0.018159587600,  0.048210544400,
-     0.300648793200, -0.039101469100,  0.019710850400, -0.012328366300,
-     0.008814417700, -0.007358544200,  0.007377316500, -0.006926866100},
+    0.300648793200, -0.039101469100,  0.019710850400, -0.012328366300,
+    0.008814417700, -0.007358544200,  0.007377316500, -0.006926866100},
   { -0.000999231800, -0.002484009500,  0.002826100200, -0.000792419400,
     -0.002609247300,  0.008077029200, -0.018229228000,  0.048504934800,
-     0.300585104500, -0.039369675200,  0.019885022200, -0.012451522700,
-     0.008910574100, -0.007423567800,  0.007433072000, -0.006968240600},
+    0.300585104500, -0.039369675200,  0.019885022200, -0.012451522700,
+    0.008910574100, -0.007423567800,  0.007433072000, -0.006968240600},
   { -0.001000945500, -0.002478474500,  0.002825789700, -0.000794439900,
     -0.002607855100,  0.008105184800, -0.018306252700,  0.048797495500,
-     0.300525821900, -0.039647806700,  0.020062891600, -0.012579180400,
-     0.008997547100, -0.007499733800,  0.007482806700, -0.007009147900},
+    0.300525821900, -0.039647806700,  0.020062891600, -0.012579180400,
+    0.008997547100, -0.007499733800,  0.007482806700, -0.007009147900},
   { -0.001006580300, -0.002478145100,  0.002835512200, -0.000798497500,
     -0.002607487200,  0.008121814200, -0.018375427900,  0.049092597200,
-     0.300460428800, -0.039917450300,  0.020228151600, -0.012700466400,
-     0.009092708900, -0.007563628700,  0.007535511600, -0.007059152000},
+    0.300460428800, -0.039917450300,  0.020228151600, -0.012700466400,
+    0.009092708900, -0.007563628700,  0.007535511600, -0.007059152000},
   { -0.001008355200, -0.002471553400,  0.002831584800, -0.000808105100,
     -0.002606745200,  0.008139326600, -0.018448182600,  0.049381202700,
-     0.300391149900, -0.040192877300,  0.020406004000, -0.012829151000,
-     0.009182604800, -0.007628580400,  0.007591957300, -0.007101149600},
+    0.300391149900, -0.040192877300,  0.020406004000, -0.012829151000,
+    0.009182604800, -0.007628580400,  0.007591957300, -0.007101149600},
   { -0.001013982200, -0.002471464900,  0.002841559200, -0.000812553500,
     -0.002606187400,  0.008156499100, -0.018520619000,  0.049672014200,
-     0.300332528600, -0.040460854200,  0.020581902400, -0.012954925100,
-     0.009282076700, -0.007699103200,  0.007641451600, -0.007142203300},
+    0.300332528600, -0.040460854200,  0.020581902400, -0.012954925100,
+    0.009282076700, -0.007699103200,  0.007641451600, -0.007142203300},
   { -0.001015410900, -0.002465827800,  0.002840812400, -0.000813752200,
     -0.002607328400,  0.008174805900, -0.018593391800,  0.049961784800,
-     0.300260370700, -0.040734108300,  0.020758957600, -0.013083002200,
-     0.009369503200, -0.007773543100,  0.007701593500, -0.007189132600},
+    0.300260370700, -0.040734108300,  0.020758957600, -0.013083002200,
+    0.009369503200, -0.007773543100,  0.007701593500, -0.007189132600},
   { -0.001020138600, -0.002468794900,  0.002842431500, -0.000816356100,
     -0.002607611600,  0.008192356500, -0.018666130300,  0.050254997100,
-     0.300195390400, -0.041008289300,  0.020936736300, -0.013210161600,
-     0.009469910200, -0.007844275500,  0.007748911800, -0.007239595400},
+    0.300195390400, -0.041008289300,  0.020936736300, -0.013210161600,
+    0.009469910200, -0.007844275500,  0.007748911800, -0.007239595400},
   { -0.001022805800, -0.002458999000,  0.002846963800, -0.000828329300,
     -0.002605038900,  0.008207999600, -0.018736947600,  0.050544717400,
-     0.300121126000, -0.041280619200,  0.021114682600, -0.013339966800,
-     0.009561255200, -0.007910621800,  0.007806632000, -0.007282763500},
+    0.300121126000, -0.041280619200,  0.021114682600, -0.013339966800,
+    0.009561255200, -0.007910621800,  0.007806632000, -0.007282763500},
   { -0.001027526900, -0.002462055200,  0.002848515400, -0.000830876200,
     -0.002605154700,  0.008224995500, -0.018808660100,  0.050837682400,
-     0.300056546100, -0.041544493000,  0.021290236500, -0.013466505100,
-     0.009661947700, -0.007982526900,  0.007857386900, -0.007324914900},
+    0.300056546100, -0.041544493000,  0.021290236500, -0.013466505100,
+    0.009661947700, -0.007982526900,  0.007857386900, -0.007324914900},
   { -0.001029015400, -0.002456559500,  0.002848095500, -0.000832295700,
     -0.002605985800,  0.008242689200, -0.018881182900,  0.051132245200,
-     0.299987943200, -0.041819414400,  0.021460165700, -0.013595099000,
-     0.009753117800, -0.008049069000,  0.007915606500, -0.007368637400},
+    0.299987943200, -0.041819414400,  0.021460165700, -0.013595099000,
+    0.009753117800, -0.008049069000,  0.007915606500, -0.007368637400},
   { -0.001034829400, -0.002455432800,  0.002854963900, -0.000845516700,
     -0.002603155800,  0.008260465800, -0.018942531200,  0.051423553400,
-     0.299919862100, -0.042091828500,  0.021638799100, -0.013722881700,
-     0.009852191300, -0.008130314500,  0.007966615900, -0.007421596100},
+    0.299919862100, -0.042091828500,  0.021638799100, -0.013722881700,
+    0.009852191300, -0.008130314500,  0.007966615900, -0.007421596100},
   { -0.001036184000, -0.002450114700,  0.002854590200, -0.000847135700,
     -0.002603834000,  0.008278482500, -0.019017700500,  0.051710800600,
-     0.299849767900, -0.042362922600,  0.021817938400, -0.013854742200,
-     0.009945759200, -0.008198836000,  0.008026496300, -0.007466532300},
+    0.299849767900, -0.042362922600,  0.021817938400, -0.013854742200,
+    0.009945759200, -0.008198836000,  0.008026496300, -0.007466532300},
   { -0.001037730800, -0.002444743300,  0.002854305800, -0.000848986600,
     -0.002604044700,  0.008295552500, -0.019090033000,  0.052010247800,
-     0.299784559000, -0.042634176100,  0.021997806500, -0.013987692600,
-     0.010041094600, -0.008271562400,  0.008079345200, -0.007513280300},
+    0.299784559000, -0.042634176100,  0.021997806500, -0.013987692600,
+    0.010041094600, -0.008271562400,  0.008079345200, -0.007513280300},
   { -0.001043455200, -0.002444344500,  0.002864501800, -0.000854285500,
     -0.002602041500,  0.008310446500, -0.019159837900,  0.052305586800,
-     0.299710502400, -0.042902559300,  0.022175330800, -0.014116237900,
-     0.010143265600, -0.008342511600,  0.008140629300, -0.007559512700},
+    0.299710502400, -0.042902559300,  0.022175330800, -0.014116237900,
+    0.010143265600, -0.008342511600,  0.008140629300, -0.007559512700},
   { -0.001044875200, -0.002438248600,  0.002860802800, -0.000864181800,
     -0.002600981100,  0.008329727400, -0.019224621200,  0.052591247500,
-     0.299637947900, -0.043172229900,  0.022355720200, -0.014249993700,
-     0.010239585900, -0.008416132400,  0.008193382200, -0.007603296800},
+    0.299637947900, -0.043172229900,  0.022355720200, -0.014249993700,
+    0.010239585900, -0.008416132400,  0.008193382200, -0.007603296800},
   { -0.001049660900, -0.002441463500,  0.002862933200, -0.000867444000,
     -0.002600374000,  0.008346423900, -0.019298671600,  0.052882824900,
-     0.299571471100, -0.043441724600,  0.022534686200, -0.014379049200,
-     0.010339539800, -0.008496004600,  0.008255099600, -0.007660450500},
+    0.299571471100, -0.043441724600,  0.022534686200, -0.014379049200,
+    0.010339539800, -0.008496004600,  0.008255099600, -0.007660450500},
   { -0.001051839000, -0.002432661800,  0.002871064200, -0.000871418100,
     -0.002599735200,  0.008364846400, -0.019359975400,  0.053178429700,
-     0.299491463500, -0.043720040800,  0.022707641400, -0.014511589100,
-     0.010435528000, -0.008569545100,  0.008307898100, -0.007704528800},
+    0.299491463500, -0.043720040800,  0.022707641400, -0.014511589100,
+    0.010435528000, -0.008569545100,  0.008307898100, -0.007704528800},
   { -0.001056944400, -0.002434904100,  0.002869839900, -0.000883216200,
     -0.002596486400,  0.008379552700, -0.019432499100,  0.053470206400,
-     0.299422575400, -0.043988296500,  0.022887494700, -0.014642563600,
-     0.010540183700, -0.008642947600,  0.008371567300, -0.007752716200},
+    0.299422575400, -0.043988296500,  0.022887494700, -0.014642563600,
+    0.010540183700, -0.008642947600,  0.008371567300, -0.007752716200},
   { -0.001059278600, -0.002426308700,  0.002878112600, -0.000887696700,
     -0.002594827000,  0.008395133400, -0.019505511500,  0.053763206500,
-     0.299351847700, -0.044255915700,  0.023068158700, -0.014777689900,
-     0.010638181300, -0.008718424600,  0.008427026200, -0.007801564500},
+    0.299351847700, -0.044255915700,  0.023068158700, -0.014777689900,
+    0.010638181300, -0.008718424600,  0.008427026200, -0.007801564500},
   { -0.001063908000, -0.002429340400,  0.002879382200, -0.000887586200,
     -0.002586331800,  0.008411993400, -0.019568733800,  0.054053355000,
-     0.299282071600, -0.044524238300,  0.023251997700, -0.014901532300,
-     0.010741407000, -0.008790859100,  0.008487210700, -0.007858185900},
+    0.299282071600, -0.044524238300,  0.023251997700, -0.014901532300,
+    0.010741407000, -0.008790859100,  0.008487210700, -0.007858185900},
   { -0.001065244000, -0.002423263600,  0.002875630100, -0.000897083200,
     -0.002587760600,  0.008421815400, -0.019630506300,  0.054344370000,
-     0.299207159000, -0.044799707800,  0.023436300800, -0.015039485700,
-     0.010841905100, -0.008868051200,  0.008543139300, -0.007904789100},
+    0.299207159000, -0.044799707800,  0.023436300800, -0.015039485700,
+    0.010841905100, -0.008868051200,  0.008543139300, -0.007904789100},
   { -0.001071045600, -0.002422944100,  0.002886222600, -0.000903092500,
     -0.002584785900,  0.008436057700, -0.019701857900,  0.054637916200,
-     0.299132742800, -0.045064497900,  0.023616380100, -0.015174084700,
-     0.010937108800, -0.008952392000,  0.008600802500, -0.007952339000},
+    0.299132742800, -0.045064497900,  0.023616380100, -0.015174084700,
+    0.010937108800, -0.008952392000,  0.008600802500, -0.007952339000},
   { -0.001072495600, -0.002416975800,  0.002882721100, -0.000913301400,
     -0.002582942100,  0.008453838100, -0.019764945900,  0.054929607400,
-     0.299058734900, -0.045332341000,  0.023788158500, -0.015304227600,
-     0.011042483200, -0.009027145700,  0.008665715200, -0.008001667100},
+    0.299058734900, -0.045332341000,  0.023788158500, -0.015304227600,
+    0.011042483200, -0.009027145700,  0.008665715200, -0.008001667100},
   { -0.001077376400, -0.002420012800,  0.002885109500, -0.000917271300,
     -0.002580907300,  0.008468413700, -0.019836708300,  0.055225670900,
-     0.298977325900, -0.045602981800,  0.023970548200, -0.015441580200,
-     0.011142744200, -0.009104537200,  0.008722251100, -0.008048876900},
+    0.298977325900, -0.045602981800,  0.023970548200, -0.015441580200,
+    0.011142744200, -0.009104537200,  0.008722251100, -0.008048876900},
   { -0.001079321400, -0.002411773500,  0.002893394800, -0.000920943200,
     -0.002583378800,  0.008478936300, -0.019901475900,  0.055512440700,
-     0.298911585300, -0.045870162900,  0.024153171400, -0.015576602500,
-     0.011251768000, -0.009181661000,  0.008787159000, -0.008112103700},
+    0.298911585300, -0.045870162900,  0.024153171400, -0.015576602500,
+    0.011251768000, -0.009181661000,  0.008787159000, -0.008112103700},
   { -0.001084311600, -0.002413690800,  0.002891307200, -0.000929480500,
     -0.002571357000,  0.008492748700, -0.019961847400,  0.055805182500,
-     0.298830136900, -0.046141044500,  0.024337335900, -0.015715846500,
-     0.011353693700, -0.009260656400,  0.008844778800, -0.008160197200},
+    0.298830136900, -0.046141044500,  0.024337335900, -0.015715846500,
+    0.011353693700, -0.009260656400,  0.008844778800, -0.008160197200},
   { -0.001085440200, -0.002408972300,  0.002891576300, -0.000931811500,
     -0.002571374100,  0.008512218400, -0.020029308800,  0.056094866900,
-     0.298759763600, -0.046405144200,  0.024519846800, -0.015854163900,
-     0.011454721200, -0.009336453400,  0.008911303700, -0.008211115400},
+    0.298759763600, -0.046405144200,  0.024519846800, -0.015854163900,
+    0.011454721200, -0.009336453400,  0.008911303700, -0.008211115400},
   { -0.001087840400, -0.002400214400,  0.002900157200, -0.000936969600,
     -0.002568721700,  0.008526039100, -0.020100315900,  0.056395501800,
-     0.298682066000, -0.046677919500,  0.024693755800, -0.015986171300,
-     0.011560009200, -0.009425383800,  0.008972850800, -0.008261904500},
+    0.298682066000, -0.046677919500,  0.024693755800, -0.015986171300,
+    0.011560009200, -0.009425383800,  0.008972850800, -0.008261904500},
   { -0.001092599200, -0.002402600100,  0.002898882600, -0.000948207200,
     -0.002568479900,  0.008534249200, -0.020162388700,  0.056680564700,
-     0.298599300000, -0.046947568800,  0.024878475500, -0.016126306100,
-     0.011662794000, -0.009502392800,  0.009040315200, -0.008313510700},
+    0.298599300000, -0.046947568800,  0.024878475500, -0.016126306100,
+    0.011662794000, -0.009502392800,  0.009040315200, -0.008313510700},
   { -0.001094674000, -0.002394239600,  0.002907384900, -0.000953100600,
     -0.002566762900,  0.008551918400, -0.020227896300,  0.056970953100,
-     0.298525257700, -0.047209041900,  0.025060099400, -0.016261962900,
-     0.011773596800, -0.009584221800,  0.009097353100, -0.008372136900},
+    0.298525257700, -0.047209041900,  0.025060099400, -0.016261962900,
+    0.011773596800, -0.009584221800,  0.009097353100, -0.008372136900},
   { -0.001099661700, -0.002396213700,  0.002905172800, -0.000960917900,
     -0.002557753000,  0.008556551400, -0.020285138500,  0.057267599400,
-     0.298446320200, -0.047478375000,  0.025245702300, -0.016403414400,
-     0.011877441200, -0.009662092200,  0.009165535000, -0.008424799700},
+    0.298446320200, -0.047478375000,  0.025245702300, -0.016403414400,
+    0.011877441200, -0.009662092200,  0.009165535000, -0.008424799700},
   { -0.001100755900, -0.002391414300,  0.002905602300, -0.000963826400,
     -0.002557026600,  0.008574970900, -0.020351243300,  0.057560244000,
-     0.298365825000, -0.047747110700,  0.025434302500, -0.016536709400,
-     0.011980096900, -0.009743311000,  0.009226377800, -0.008478483800},
+    0.298365825000, -0.047747110700,  0.025434302500, -0.016536709400,
+    0.011980096900, -0.009743311000,  0.009226377800, -0.008478483800},
   { -0.001106899300, -0.002390253900,  0.002913287000, -0.000978876700,
     -0.002551352000,  0.008590004000, -0.020415253900,  0.057854601300,
-     0.298294423300, -0.048021033600,  0.025612282700, -0.016673561700,
-     0.012092889000, -0.009827928200,  0.009288917500, -0.008530542400},
+    0.298294423300, -0.048021033600,  0.025612282700, -0.016673561700,
+    0.012092889000, -0.009827928200,  0.009288917500, -0.008530542400},
   { -0.001107825500, -0.002385153400,  0.002912420300, -0.000977036900,
     -0.002545865100,  0.008597199400, -0.020476810000,  0.058145551600,
-     0.298212478700, -0.048288066300,  0.025797833300, -0.016816027500,
-     0.012198085900, -0.009907251900,  0.009358594600, -0.008584316600},
+    0.298212478700, -0.048288066300,  0.025797833300, -0.016816027500,
+    0.012198085900, -0.009907251900,  0.009358594600, -0.008584316600},
   { -0.001113605200, -0.002384780000,  0.002923485400, -0.000983932400,
     -0.002542224400,  0.008612798400, -0.020540206700,  0.058438067100,
-     0.298128451900, -0.048553232900,  0.025981636800, -0.016954362300,
-     0.012312002500, -0.009992841500,  0.009421764400, -0.008636872000},
+    0.298128451900, -0.048553232900,  0.025981636800, -0.016954362300,
+    0.012312002500, -0.009992841500,  0.009421764400, -0.008636872000},
   { -0.001114931100, -0.002379174400,  0.002919927800, -0.000993979200,
     -0.002542420300,  0.008620998100, -0.020602200500,  0.058732787100,
-     0.298055673800, -0.048812541600,  0.026165585800, -0.017095016200,
-     0.012413140100, -0.010079579700,  0.009490588100, -0.008700892600},
+    0.298055673800, -0.048812541600,  0.026165585800, -0.017095016200,
+    0.012413140100, -0.010079579700,  0.009490588100, -0.008700892600},
   { -0.001119665800, -0.002382694100,  0.002922998700, -0.000998529900,
     -0.002540198000,  0.008638257800, -0.020669669800,  0.059018701600,
-     0.297970747600, -0.049076921100,  0.026350960600, -0.017238147400,
-     0.012520217600, -0.010164038100,  0.009553595700, -0.008753278600},
+    0.297970747600, -0.049076921100,  0.026350960600, -0.017238147400,
+    0.012520217600, -0.010164038100,  0.009553595700, -0.008753278600},
   { -0.001121930300, -0.002372946000,  0.002926808400, -0.001007501500,
     -0.002530568000,  0.008642272200, -0.020728754500,  0.059312998000,
-     0.297893741900, -0.049347375400,  0.026529402400, -0.017376589500,
-     0.012634266200, -0.010246944100,  0.009626161500, -0.008809499600},
+    0.297893741900, -0.049347375400,  0.026529402400, -0.017376589500,
+    0.012634266200, -0.010246944100,  0.009626161500, -0.008809499600},
   { -0.001126794900, -0.002376553600,  0.002930143500, -0.001012468200,
     -0.002528098100,  0.008659451000, -0.020796619900,  0.059603377300,
-     0.297814833400, -0.049613614700,  0.026720176000, -0.017513336800,
-     0.012740654600, -0.010331978800,  0.009690722000, -0.008866407500},
+    0.297814833400, -0.049613614700,  0.026720176000, -0.017513336800,
+    0.012740654600, -0.010331978800,  0.009690722000, -0.008866407500},
   { -0.001128974000, -0.002366817000,  0.002934650000, -0.001025446300,
     -0.002525885700,  0.008665084700, -0.020855847900,  0.059897161500,
-     0.297721129900, -0.049883464500,  0.026908098600, -0.017658755900,
-     0.012849997300, -0.010418098600,  0.009755024700, -0.008920174300},
+    0.297721129900, -0.049883464500,  0.026908098600, -0.017658755900,
+    0.012849997300, -0.010418098600,  0.009755024700, -0.008920174300},
   { -0.001129829700, -0.002362132000,  0.002934410200, -0.001024611700,
     -0.002517293800,  0.008683823800, -0.020914048900,  0.060185287000,
-     0.297640606500, -0.050147624100,  0.027094554000, -0.017800540400,
-     0.012966752800, -0.010503877000,  0.009829858100, -0.008978175500},
+    0.297640606500, -0.050147624100,  0.027094554000, -0.017800540400,
+    0.012966752800, -0.010503877000,  0.009829858100, -0.008978175500},
   { -0.001134965700, -0.002364533600,  0.002933528900, -0.001036539700,
     -0.002515641700,  0.008689737800, -0.020973444000,  0.060482529200,
-     0.297557115100, -0.050413365200,  0.027273058500, -0.017943142100,
-     0.013074472100, -0.010588375400,  0.009890164700, -0.009040073800},
+    0.297557115100, -0.050413365200,  0.027273058500, -0.017943142100,
+    0.013074472100, -0.010588375400,  0.009890164700, -0.009040073800},
   { -0.001136940000, -0.002355925500,  0.002941289900, -0.001037794300,
     -0.002507997500,  0.008695284800, -0.021036808600,  0.060775711600,
-     0.297482132700, -0.050678910500,  0.027462057700, -0.018090535100,
-     0.013184994200, -0.010672807300,  0.009964812300, -0.009098345900},
+    0.297482132700, -0.050678910500,  0.027462057700, -0.018090535100,
+    0.013184994200, -0.010672807300,  0.009964812300, -0.009098345900},
   { -0.001142165600, -0.002358437400,  0.002940699400, -0.001050877900,
     -0.002502402100,  0.008709501200, -0.021101691400,  0.061067211800,
-     0.297396279600, -0.050939241800,  0.027647756700, -0.018232338700,
-     0.013303147900, -0.010762989400,  0.010032437200, -0.009154686400},
+    0.297396279600, -0.050939241800,  0.027647756700, -0.018232338700,
+    0.013303147900, -0.010762989400,  0.010032437200, -0.009154686400},
   { -0.001143817000, -0.002350196200,  0.002949420200, -0.001055769400,
     -0.002503786900,  0.008721014300, -0.021156852500,  0.061355453400,
-     0.297312718800, -0.051205897900,  0.027831555500, -0.018369198800,
-     0.013411298100, -0.010850127500,  0.010098901500, -0.009213325600},
+    0.297312718800, -0.051205897900,  0.027831555500, -0.018369198800,
+    0.013411298100, -0.010850127500,  0.010098901500, -0.009213325600},
   { -0.001149066000, -0.002352278400,  0.002947918700, -0.001065202900,
     -0.002489611700,  0.008732236600, -0.021220051600,  0.061647632000,
-     0.297221172300, -0.051473353600,  0.028021068000, -0.018517173300,
-     0.013522491900, -0.010935538100,  0.010174446400, -0.009272360200},
+    0.297221172300, -0.051473353600,  0.028021068000, -0.018517173300,
+    0.013522491900, -0.010935538100,  0.010174446400, -0.009272360200},
   { -0.001149887200, -0.002347967100,  0.002948573300, -0.001067597300,
     -0.002492352100,  0.008744611200, -0.021276152500,  0.061941420000,
-     0.297140614200, -0.051734216700,  0.028208189500, -0.018660250400,
-     0.013639306600, -0.011036161100,  0.010246624400, -0.009332105500},
+    0.297140614200, -0.051734216700,  0.028208189500, -0.018660250400,
+    0.013639306600, -0.011036161100,  0.010246624400, -0.009332105500},
   { -0.001156099600, -0.002346166500,  0.002954987600, -0.001078834400,
     -0.002480260300,  0.008746430300, -0.021336172300,  0.062236110400,
-     0.297056151300, -0.052003778300,  0.028400005500, -0.018810443800,
-     0.013752383900, -0.011122203700,  0.010319669900, -0.009400556800},
+    0.297056151300, -0.052003778300,  0.028400005500, -0.018810443800,
+    0.013752383900, -0.011122203700,  0.010319669900, -0.009400556800},
   { -0.001156792500, -0.002341776700,  0.002955577100, -0.001081090900,
     -0.002482874600,  0.008758231200, -0.021390879000,  0.062526684700,
-     0.296965665500, -0.052264429900,  0.028578727400, -0.018955461900,
-     0.013863735500, -0.011211408300,  0.010387174600, -0.009457035400},
+    0.296965665500, -0.052264429900,  0.028578727400, -0.018955461900,
+    0.013863735500, -0.011211408300,  0.010387174600, -0.009457035400},
   { -0.001163170100, -0.002339996800,  0.002962141700, -0.001093302800,
     -0.002466860000,  0.008767593500, -0.021452275300,  0.062822494300,
-     0.296881395600, -0.052523860000,  0.028770277400, -0.019092348700,
-     0.013982426200, -0.011303346500,  0.010456770600, -0.009515365500},
+    0.296881395600, -0.052523860000,  0.028770277400, -0.019092348700,
+    0.013982426200, -0.011303346500,  0.010456770600, -0.009515365500},
   { -0.001163895700, -0.002335754800,  0.002963079500, -0.001096137300,
     -0.002469118700,  0.008780017100, -0.021511634200,  0.063110931400,
-     0.296794244500, -0.052791038800,  0.028962045800, -0.019243677500,
-     0.014097865300, -0.011393027300,  0.010536858700, -0.009581441000},
+    0.296794244500, -0.052791038800,  0.028962045800, -0.019243677500,
+    0.014097865300, -0.011393027300,  0.010536858700, -0.009581441000},
   { -0.001170125300, -0.002333956200,  0.002969450300, -0.001107234800,
     -0.002456863700,  0.008780917600, -0.021569686100,  0.063405648500,
-     0.296709109200, -0.053052763700,  0.029143138800, -0.019391070400,
-     0.014211122400, -0.011483842100,  0.010606181300, -0.009639674100},
+    0.296709109200, -0.053052763700,  0.029143138800, -0.019391070400,
+    0.014211122400, -0.011483842100,  0.010606181300, -0.009639674100},
   { -0.001170874500, -0.002329660800,  0.002970330900, -0.001110081400,
     -0.002459004700,  0.008793030100, -0.021628522100,  0.063695013000,
-     0.296618745800, -0.053317589600,  0.029334344500, -0.019542481200,
-     0.014326849900, -0.011573598100,  0.010685674300, -0.009702145300},
+    0.296618745800, -0.053317589600,  0.029334344500, -0.019542481200,
+    0.014326849900, -0.011573598100,  0.010685674300, -0.009702145300},
   { -0.001171914500, -0.002323961500,  0.002966009600, -0.001116909400,
     -0.002450355900,  0.008799692100, -0.021679886200,  0.063990447900,
-     0.296526171200, -0.053581877800,  0.029529044900, -0.019682702400,
-     0.014449006700, -0.011668677900,  0.010757748000, -0.009762586000},
+    0.296526171200, -0.053581877800,  0.029529044900, -0.019682702400,
+    0.014449006700, -0.011668677900,  0.010757748000, -0.009762586000},
   { -0.001178072500, -0.002323403700,  0.002977740500, -0.001125189300,
     -0.002444614700,  0.008813206900, -0.021746613300,  0.064282383100,
-     0.296436562600, -0.053839700800,  0.029708485400, -0.019829369800,
-     0.014562038800, -0.011759300000,  0.010824029000, -0.009829464000},
+    0.296436562600, -0.053839700800,  0.029708485400, -0.019829369800,
+    0.014562038800, -0.011759300000,  0.010824029000, -0.009829464000},
   { -0.001179124900, -0.002317979100,  0.002973757000, -0.001132168000,
     -0.002435747100,  0.008820504400, -0.021802440100,  0.064574678500,
-     0.296352017200, -0.054105959400,  0.029902690900, -0.019983871100,
-     0.014680546000, -0.011851836600,  0.010906814900, -0.009898260300},
+    0.296352017200, -0.054105959400,  0.029902690900, -0.019983871100,
+    0.014680546000, -0.011851836600,  0.010906814900, -0.009898260300},
   { -0.001185031900, -0.002317376800,  0.002984984200, -0.001139351300,
     -0.002434510900,  0.008828516100, -0.021853498100,  0.064870816200,
-     0.296258886800, -0.054357841800,  0.030089125800, -0.020129945500,
-     0.014804636400, -0.011948361700,  0.010980172100, -0.009959891000},
+    0.296258886800, -0.054357841800,  0.030089125800, -0.020129945500,
+    0.014804636400, -0.011948361700,  0.010980172100, -0.009959891000},
   { -0.001186088400, -0.002311933800,  0.002981060500, -0.001146354300,
     -0.002425750100,  0.008835761000, -0.021908764800,  0.065163770900,
-     0.296172290700, -0.054626925700,  0.030279417600, -0.020274570600,
-     0.014920355400, -0.012042691300,  0.011052809300, -0.010020900500},
+    0.296172290700, -0.054626925700,  0.030279417600, -0.020274570600,
+    0.014920355400, -0.012042691300,  0.011052809300, -0.010020900500},
   { -0.001192214700, -0.002310334400,  0.002988338000, -0.001161750800,
     -0.002421544800,  0.008842662600, -0.021962597300,  0.065452832100,
-     0.296075847400, -0.054887446700,  0.030471019600, -0.020427698700,
-     0.015038441400, -0.012134860100,  0.011134601100, -0.010085579200},
+    0.296075847400, -0.054887446700,  0.030471019600, -0.020427698700,
+    0.015038441400, -0.012134860100,  0.011134601100, -0.010085579200},
   { -0.001193029800, -0.002305832600,  0.002988510300, -0.001160745800,
     -0.002415287100,  0.008851064800, -0.022018328800,  0.065747514100,
-     0.295985303100, -0.055152663300,  0.030655950200, -0.020580030600,
-     0.015157088900, -0.012231165800,  0.011208895700, -0.010148001100},
+    0.295985303100, -0.055152663300,  0.030655950200, -0.020580030600,
+    0.015157088900, -0.012231165800,  0.011208895700, -0.010148001100},
   { -0.001199255200, -0.002303988400,  0.002994947800, -0.001172180300,
     -0.002403060700,  0.008854931500, -0.022070359700,  0.066040074000,
-     0.295894792100, -0.055414282300,  0.030848876200, -0.020731638800,
-     0.015285837100, -0.012331974000,  0.011286215600, -0.010212808300},
+    0.295894792100, -0.055414282300,  0.030848876200, -0.020731638800,
+    0.015285837100, -0.012331974000,  0.011286215600, -0.010212808300},
   { -0.001200034300, -0.002300011200,  0.002996071300, -0.001175466100,
     -0.002404798200,  0.008866742900, -0.022131427200,  0.066328312100,
-     0.295807177000, -0.055667568800,  0.031043216800, -0.020877200500,
-     0.015401999100, -0.012423245400,  0.011365248300, -0.010290103500},
+    0.295807177000, -0.055667568800,  0.031043216800, -0.020877200500,
+    0.015401999100, -0.012423245400,  0.011365248300, -0.010290103500},
   { -0.001205321400, -0.002302348400,  0.002994763100, -0.001184119100,
     -0.002394208300,  0.008871703300, -0.022183982500,  0.066622310400,
-     0.295714067400, -0.055930893500,  0.031228731500, -0.021030519400,
-     0.015521915600, -0.012520884000,  0.011440787900, -0.010353664500},
+    0.295714067400, -0.055930893500,  0.031228731500, -0.021030519400,
+    0.015521915600, -0.012520884000,  0.011440787900, -0.010353664500},
   { -0.001207424300, -0.002292788000,  0.002999278000, -0.001198036500,
     -0.002390705100,  0.008878791700, -0.022237804200,  0.066918218000,
-     0.295617466000, -0.056188447800,  0.031421091300, -0.021185866100,
-     0.015643456400, -0.012619826700,  0.011517277400, -0.010418126800},
+    0.295617466000, -0.056188447800,  0.031421091300, -0.021185866100,
+    0.015643456400, -0.012619826700,  0.011517277400, -0.010418126800},
   { -0.001212436700, -0.002296230600,  0.003002379300, -0.001199058000,
     -0.002383054500,  0.008886317900, -0.022295584100,  0.067206178800,
-     0.295523834300, -0.056451724100,  0.031610777900, -0.021331865900,
-     0.015760653300, -0.012712731400,  0.011600637200, -0.010484290500},
+    0.295523834300, -0.056451724100,  0.031610777900, -0.021331865900,
+    0.015760653300, -0.012712731400,  0.011600637200, -0.010484290500},
   { -0.001214616000, -0.002286436600,  0.003006011700, -0.001208867400,
     -0.002371663200,  0.008890402300, -0.022347745200,  0.067505660900,
-     0.295433201300, -0.056710441700,  0.031804218000, -0.021485136600,
-     0.015891596000, -0.012815991100,  0.011680400300, -0.010551509800},
+    0.295433201300, -0.056710441700,  0.031804218000, -0.021485136600,
+    0.015891596000, -0.012815991100,  0.011680400300, -0.010551509800},
   { -0.001219729000, -0.002290053700,  0.003010061800, -0.001214114500,
     -0.002371512600,  0.008900068000, -0.022406367600,  0.067795719500,
-     0.295335292700, -0.056969680800,  0.031988588100, -0.021638667600,
-     0.016012759800, -0.012915294700,  0.011757803200, -0.010616490000},
+    0.295335292700, -0.056969680800,  0.031988588100, -0.021638667600,
+    0.016012759800, -0.012915294700,  0.011757803200, -0.010616490000},
   { -0.001221768100, -0.002280163100,  0.003013484800, -0.001223949400,
     -0.002359880400,  0.008903658200, -0.022457194700,  0.068091568200,
-     0.295234898600, -0.057225248100,  0.032185366300, -0.021787511700,
-     0.016132334200, -0.013010433300,  0.011843615700, -0.010688812000},
+    0.295234898600, -0.057225248100,  0.032185366300, -0.021787511700,
+    0.016132334200, -0.013010433300,  0.011843615700, -0.010688812000},
   { -0.001222885000, -0.002274839200,  0.003009550000, -0.001230956100,
     -0.002350338500,  0.008909637200, -0.022513896200,  0.068385169700,
-     0.295142943400, -0.057486437700,  0.032372518000, -0.021943625600,
-     0.016255565900, -0.013111568500,  0.011922721200, -0.010755431700},
+    0.295142943400, -0.057486437700,  0.032372518000, -0.021943625600,
+    0.016255565900, -0.013111568500,  0.011922721200, -0.010755431700},
   { -0.001228791200, -0.002274200700,  0.003021279300, -0.001238353400,
     -0.002352971000,  0.008913972000, -0.022561101300,  0.068676416600,
-     0.295047141500, -0.057751817000,  0.032570797200, -0.022105269700,
-     0.016383459600, -0.013216314100,  0.012004282000, -0.010824042300},
+    0.295047141500, -0.057751817000,  0.032570797200, -0.022105269700,
+    0.016383459600, -0.013216314100,  0.012004282000, -0.010824042300},
   { -0.001229834600, -0.002268726500,  0.003017029900, -0.001245178500,
     -0.002343674400,  0.008919626500, -0.022616489300,  0.068966542100,
-     0.294944915100, -0.058008634000,  0.032758671600, -0.022247384700,
-     0.016509174100, -0.013312472500,  0.012086623000, -0.010900887700},
+    0.294944915100, -0.058008634000,  0.032758671600, -0.022247384700,
+    0.016509174100, -0.013312472500,  0.012086623000, -0.010900887700},
   { -0.001236321600, -0.002266647300,  0.003023412200, -0.001256945700,
     -0.002330427000,  0.008922281200, -0.022670102300,  0.069259760100,
-     0.294849437700, -0.058263509000,  0.032953544400, -0.022407065400,
-     0.016635331800, -0.013416137200,  0.012167754700, -0.010969358900},
+    0.294849437700, -0.058263509000,  0.032953544400, -0.022407065400,
+    0.016635331800, -0.013416137200,  0.012167754700, -0.010969358900},
   { -0.001237037300, -0.002262428500,  0.003023848100, -0.001256128400,
     -0.002324464800,  0.008933910800, -0.022719357000,  0.069553175900,
-     0.294752983200, -0.058521997300,  0.033144550900, -0.022556496100,
-     0.016757477900, -0.013517704400,  0.012247285200, -0.011036494600},
+    0.294752983200, -0.058521997300,  0.033144550900, -0.022556496100,
+    0.016757477900, -0.013517704400,  0.012247285200, -0.011036494600},
   { -0.001243631400, -0.002260491700,  0.003031143500, -0.001272367300,
     -0.002318660300,  0.008938942400, -0.022774221100,  0.069848353600,
-     0.294654140800, -0.058774188400,  0.033338099000, -0.022715294600,
-     0.016882921900, -0.013617730300,  0.012337731100, -0.011112979600},
+    0.294654140800, -0.058774188400,  0.033338099000, -0.022715294600,
+    0.016882921900, -0.013617730300,  0.012337731100, -0.011112979600},
   { -0.001244616700, -0.002255007200,  0.003026834400, -0.001278495600,
     -0.002312971700,  0.008936004500, -0.022826323700,  0.070143346800,
-     0.294550501800, -0.059037642400,  0.033527611400, -0.022874644300,
-     0.017009920100, -0.013722251500,  0.012419958100, -0.011182377900},
+    0.294550501800, -0.059037642400,  0.033527611400, -0.022874644300,
+    0.017009920100, -0.013722251500,  0.012419958100, -0.011182377900},
   { -0.001249868500, -0.002258640400,  0.003030359000, -0.001279931900,
     -0.002305315700,  0.008946945700, -0.022879051900,  0.070434097200,
-     0.294460157000, -0.059293518700,  0.033729073000, -0.023029828700,
-     0.017136721300, -0.013827892600,  0.012503092200, -0.011252540100},
+    0.294460157000, -0.059293518700,  0.033729073000, -0.023029828700,
+    0.017136721300, -0.013827892600,  0.012503092200, -0.011252540100},
   { -0.001252011800, -0.002248666800,  0.003033725600, -0.001289637300,
     -0.002293460500,  0.008949854300, -0.022931857800,  0.070729691900,
-     0.294357625700, -0.059546703200,  0.033913734300, -0.023182283200,
-     0.017269467600, -0.013934406600,  0.012586727200, -0.011323121700},
+    0.294357625700, -0.059546703200,  0.033913734300, -0.023182283200,
+    0.017269467600, -0.013934406600,  0.012586727200, -0.011323121700},
   { -0.001257327400, -0.002251340000,  0.003033306900, -0.001302187900,
     -0.002294842900,  0.008953591700, -0.022981051800,  0.071016115000,
-     0.294253594500, -0.059806163900,  0.034116321500, -0.023338009400,
-     0.017396575200, -0.014036439400,  0.012678155200, -0.011396549400},
+    0.294253594500, -0.059806163900,  0.034116321500, -0.023338009400,
+    0.017396575200, -0.014036439400,  0.012678155200, -0.011396549400},
   { -0.001259366100, -0.002242376300,  0.003041364800, -0.001304581400,
     -0.002285404200,  0.008958134900, -0.023035573000,  0.071318036600,
-     0.294155332000, -0.060059835200,  0.034302863600, -0.023496551600,
-     0.017523724800, -0.014142299300,  0.012762833200, -0.011472239700},
+    0.294155332000, -0.060059835200,  0.034302863600, -0.023496551600,
+    0.017523724800, -0.014142299300,  0.012762833200, -0.011472239700},
   { -0.001264793200, -0.002244873300,  0.003040255700, -0.001313420800,
     -0.002274742400,  0.008966178100, -0.023084721700,  0.071604519400,
-     0.294053570900, -0.060314068800,  0.034495386400, -0.023649793700,
-     0.017653808300, -0.014239964400,  0.012843156400, -0.011540516700},
+    0.294053570900, -0.060314068800,  0.034495386400, -0.023649793700,
+    0.017653808300, -0.014239964400,  0.012843156400, -0.011540516700},
   { -0.001266776300, -0.002234895800,  0.003043324900, -0.001322245300,
     -0.002267675400,  0.008965455900, -0.023127290700,  0.071902922400,
-     0.293950616300, -0.060571265600,  0.034693878200, -0.023814273900,
-     0.017784544000, -0.014343601700,  0.012932068300, -0.011623815900},
+    0.293950616300, -0.060571265600,  0.034693878200, -0.023814273900,
+    0.017784544000, -0.014343601700,  0.012932068300, -0.011623815900},
   { -0.001272408000, -0.002238111400,  0.003046799700, -0.001323837000,
     -0.002258841200,  0.008970913900, -0.023185828700,  0.072198731500,
-     0.293850684700, -0.060823698800,  0.034885265900, -0.023966290300,
-     0.017910112100, -0.014448925000,  0.013015910500, -0.011694882200},
+    0.293850684700, -0.060823698800,  0.034885265900, -0.023966290300,
+    0.017910112100, -0.014448925000,  0.013015910500, -0.011694882200},
   { -0.001274483600, -0.002228201400,  0.003050212200, -0.001333772300,
     -0.002247134700,  0.008978152700, -0.023234912400,  0.072492005600,
-     0.293746271400, -0.061079622500,  0.035084175400, -0.024131925000,
-     0.018043115400, -0.014559744600,  0.013103666900, -0.011769115200},
+    0.293746271400, -0.061079622500,  0.035084175400, -0.024131925000,
+    0.018043115400, -0.014559744600,  0.013103666900, -0.011769115200},
   { -0.001275293500, -0.002223339400,  0.003046802300, -0.001344236100,
     -0.002249832100,  0.008982191000, -0.023282772800,  0.072780111500,
-     0.293638750200, -0.061329463600,  0.035275317400, -0.024284154200,
-     0.018169987600, -0.014666643200,  0.013189357000, -0.011845461600},
+    0.293638750200, -0.061329463600,  0.035275317400, -0.024284154200,
+    0.018169987600, -0.014666643200,  0.013189357000, -0.011845461600},
   { -0.001282008300, -0.002220878800,  0.003053154500, -0.001356054900,
     -0.002236664600,  0.008988073400, -0.023330451200,  0.073072951600,
-     0.293533527800, -0.061588331200,  0.035466290700, -0.024446846900,
-     0.018300582900, -0.014771995300,  0.013284279500, -0.011922344800},
+    0.293533527800, -0.061588331200,  0.035466290700, -0.024446846900,
+    0.018300582900, -0.014771995300,  0.013284279500, -0.011922344800},
   { -0.001282913700, -0.002216603000,  0.003053533900, -0.001354819600,
     -0.002234495000,  0.008991178300, -0.023379395200,  0.073372194300,
-     0.293431988400, -0.061843667600,  0.035669418700, -0.024601980400,
-     0.018440114900, -0.014885760000,  0.013374412100, -0.011998777300},
+    0.293431988400, -0.061843667600,  0.035669418700, -0.024601980400,
+    0.018440114900, -0.014885760000,  0.013374412100, -0.011998777300},
   { -0.001289852900, -0.002213970900,  0.003059661400, -0.001366666100,
     -0.002220358400,  0.008991998000, -0.023433472500,  0.073667719600,
-     0.293326498300, -0.062091368600,  0.035856112000, -0.024762400200,
-     0.018570057000, -0.014994590500,  0.013461432300, -0.012072689000},
+    0.293326498300, -0.062091368600,  0.035856112000, -0.024762400200,
+    0.018570057000, -0.014994590500,  0.013461432300, -0.012072689000},
   { -0.001290828100, -0.002208668300,  0.003055268400, -0.001372665000,
     -0.002215250000,  0.008992759700, -0.023479470700,  0.073961694600,
-     0.293216599600, -0.062347556700,  0.036051519300, -0.024918766800,
-     0.018700312600, -0.015104288800,  0.013548919900, -0.012146903000},
+    0.293216599600, -0.062347556700,  0.036051519300, -0.024918766800,
+    0.018700312600, -0.015104288800,  0.013548919900, -0.012146903000},
   { -0.001297565000, -0.002206188900,  0.003061515200, -0.001384640400,
     -0.002201711800,  0.008998523600, -0.023530332000,  0.074248575600,
-     0.293108050300, -0.062599496300,  0.036250520900, -0.025085987100,
-     0.018835062100, -0.015213765300,  0.013648384700, -0.012231594800},
+    0.293108050300, -0.062599496300,  0.036250520900, -0.025085987100,
+    0.018835062100, -0.015213765300,  0.013648384700, -0.012231594800},
   { -0.001298486200, -0.002201990500,  0.003061911500, -0.001383193600,
     -0.002199540200,  0.009001070400, -0.023577987000,  0.074548400000,
-     0.293006277700, -0.062848029800,  0.036443834300, -0.025242884300,
-     0.018970177400, -0.015316494200,  0.013733603800, -0.012304800000},
+    0.293006277700, -0.062848029800,  0.036443834300, -0.025242884300,
+    0.018970177400, -0.015316494200,  0.013733603800, -0.012304800000},
   { -0.001305173000, -0.002199287800,  0.003067771800, -0.001393998700,
     -0.002190657800,  0.008998337100, -0.023620522900,  0.074841359700,
-     0.292893802300, -0.063101285300,  0.036634397500, -0.025407276700,
-     0.019104315500, -0.015429059800,  0.013823584100, -0.012381206600},
+    0.292893802300, -0.063101285300,  0.036634397500, -0.025407276700,
+    0.019104315500, -0.015429059800,  0.013823584100, -0.012381206600},
   { -0.001306486000, -0.002193998000,  0.003063717500, -0.001401081300,
     -0.002180765400,  0.009007040500, -0.023673990600,  0.075136252200,
-     0.292786821600, -0.063356530800,  0.036831074500, -0.025565504100,
-     0.019236546600, -0.015541317500,  0.013913853300, -0.012457823800},
+    0.292786821600, -0.063356530800,  0.036831074500, -0.025565504100,
+    0.019236546600, -0.015541317500,  0.013913853300, -0.012457823800},
   { -0.001313321900, -0.002191380800,  0.003069674600, -0.001412157700,
     -0.002171714300,  0.009004937300, -0.023721555300,  0.075427591700,
-     0.292680753800, -0.063607547900,  0.037031767000, -0.025735481500,
-     0.019375159900, -0.015657767200,  0.014007257400, -0.012537078000},
+    0.292680753800, -0.063607547900,  0.037031767000, -0.025735481500,
+    0.019375159900, -0.015657767200,  0.014007257400, -0.012537078000},
   { -0.001314354900, -0.002186268300,  0.003065150800, -0.001417698000,
     -0.002167557500,  0.009010001600, -0.023759323400,  0.075724712100,
-     0.292576319400, -0.063853917500,  0.037225319700, -0.025892093800,
-     0.019506037600, -0.015764904400,  0.014104155900, -0.012616476800},
+    0.292576319400, -0.063853917500,  0.037225319700, -0.025892093800,
+    0.019506037600, -0.015764904400,  0.014104155900, -0.012616476800},
   { -0.001321218400, -0.002184458600,  0.003076233500, -0.001422547300,
     -0.002156670200,  0.009017151300, -0.023810871100,  0.076019700600,
-     0.292466530500, -0.064106762900,  0.037421391100, -0.026050975100,
-     0.019639469300, -0.015878862800,  0.014196955700, -0.012699499300},
+    0.292466530500, -0.064106762900,  0.037421391100, -0.026050975100,
+    0.019639469300, -0.015878862800,  0.014196955700, -0.012699499300},
   { -0.001322405100, -0.002179145600,  0.003071783900, -0.001428408900,
     -0.002151344500,  0.009017528200, -0.023860018100,  0.076314227000,
-     0.292354833000, -0.064357589600,  0.037613307800, -0.026218842900,
-     0.019781456700, -0.015987370400,  0.014287400700, -0.012776898100},
+    0.292354833000, -0.064357589600,  0.037613307800, -0.026218842900,
+    0.019781456700, -0.015987370400,  0.014287400700, -0.012776898100},
   { -0.001329411400, -0.002176246500,  0.003077588100, -0.001439416300,
     -0.002142422000,  0.009015226300, -0.023906702500,  0.076607212500,
-     0.292243989500, -0.064609585900,  0.037810235300, -0.026378597000,
-     0.019915634000, -0.016100609100,  0.014374613700, -0.012862479300},
+    0.292243989500, -0.064609585900,  0.037810235300, -0.026378597000,
+    0.019915634000, -0.016100609100,  0.014374613700, -0.012862479300},
   { -0.001331821400, -0.002165817700,  0.003080409800, -0.001449188900,
     -0.002130265600,  0.009021448800, -0.023957398700,  0.076903557900,
-     0.292129090700, -0.064858733100,  0.038005130000, -0.026536730800,
-     0.020047933100, -0.016209483700,  0.014473806100, -0.012943770500},
+    0.292129090700, -0.064858733100,  0.038005130000, -0.026536730800,
+    0.020047933100, -0.016209483700,  0.014473806100, -0.012943770500},
   { -0.001332912300, -0.002160549700,  0.003075666900, -0.001454699900,
     -0.002125747900,  0.009026360900, -0.023998381000,  0.077196425000,
-     0.292014040700, -0.065102449400,  0.038203933500, -0.026707041800,
-     0.020188140300, -0.016328233200,  0.014569262800, -0.013025077600},
+    0.292014040700, -0.065102449400,  0.038203933500, -0.026707041800,
+    0.020188140300, -0.016328233200,  0.014569262800, -0.013025077600},
   { -0.001339767200, -0.002158494200,  0.003086316400, -0.001458535300,
     -0.002119522600,  0.009025408000, -0.024045414700,  0.077491289100,
-     0.291898436700, -0.065350608700,  0.038399388600, -0.026866946500,
-     0.020323488600, -0.016444050200,  0.014663919000, -0.013110011800},
+    0.291898436700, -0.065350608700,  0.038399388600, -0.026866946500,
+    0.020323488600, -0.016444050200,  0.014663919000, -0.013110011800},
   { -0.001341225900, -0.002153019500,  0.003081710900, -0.001464447200,
     -0.002114130700,  0.009025651700, -0.024094239400,  0.077792721000,
-     0.291786795400, -0.065599338300,  0.038596149400, -0.027027766200,
-     0.020459538900, -0.016560228700,  0.014758176300, -0.013190641200},
+    0.291786795400, -0.065599338300,  0.038596149400, -0.027027766200,
+    0.020459538900, -0.016560228700,  0.014758176300, -0.013190641200},
   { -0.001348116400, -0.002150215500,  0.003087524600, -0.001475208500,
     -0.002105937200,  0.009027973200, -0.024136747400,  0.078077054200,
-     0.291673553600, -0.065848400700,  0.038789809200, -0.027198631300,
-     0.020605326600, -0.016672927800,  0.014852276800, -0.013270943900},
+    0.291673553600, -0.065848400700,  0.038789809200, -0.027198631300,
+    0.020605326600, -0.016672927800,  0.014852276800, -0.013270943900},
   { -0.001349842500, -0.002144524900,  0.003082911700, -0.001481921800,
     -0.002095570400,  0.009035188200, -0.024188073400,  0.078381474100,
-     0.291557196100, -0.066093324400,  0.038984672800, -0.027358305900,
-     0.020740566100, -0.016789045200,  0.014946715800, -0.013351892900},
+    0.291557196100, -0.066093324400,  0.038984672800, -0.027358305900,
+    0.020740566100, -0.016789045200,  0.014946715800, -0.013351892900},
   { -0.001357082800, -0.002141367000,  0.003088470800, -0.001492702300,
     -0.002087255200,  0.009036993800, -0.024226476800,  0.078678890800,
-     0.291445410400, -0.066341740000,  0.039182293600, -0.027520351800,
-     0.020877384400, -0.016902143900,  0.015049535100, -0.013436720300},
+    0.291445410400, -0.066341740000,  0.039182293600, -0.027520351800,
+    0.020877384400, -0.016902143900,  0.015049535100, -0.013436720300},
   { -0.001358430400, -0.002135814900,  0.003082938500, -0.001493462900,
     -0.002074639200,  0.009034254800, -0.024276630700,  0.078972791400,
-     0.291332516600, -0.066588317200,  0.039375542700, -0.027690881700,
-     0.021019023100, -0.017023199600,  0.015149195700, -0.013526024300},
+    0.291332516600, -0.066588317200,  0.039375542700, -0.027690881700,
+    0.021019023100, -0.017023199600,  0.015149195700, -0.013526024300},
   { -0.001365518600, -0.002132688700,  0.003088416900, -0.001504139700,
     -0.002066451500,  0.009036431600, -0.024318259900,  0.079258669800,
-     0.291213669600, -0.066833494600,  0.039572395400, -0.027853162500,
-     0.021157264500, -0.017142104300,  0.015245837400, -0.013608286800},
+    0.291213669600, -0.066833494600,  0.039572395400, -0.027853162500,
+    0.021157264500, -0.017142104300,  0.015245837400, -0.013608286800},
   { -0.001366787300, -0.002128108700,  0.003088564100, -0.001502425900,
     -0.002064956100,  0.009042893100, -0.024359858000,  0.079560972200,
-     0.291093788100, -0.067075438600,  0.039767446600, -0.028015676300,
-     0.021300179900, -0.017253688600,  0.015339335300, -0.013689059900},
+    0.291093788100, -0.067075438600,  0.039767446600, -0.028015676300,
+    0.021300179900, -0.017253688600,  0.015339335300, -0.013689059900},
   { -0.001374342300, -0.002124476100,  0.003093955600, -0.001513509600,
     -0.002055553100,  0.009039889200, -0.024409237700,  0.079856769100,
-     0.290971758300, -0.067326482200,  0.039967168700, -0.028180320800,
-     0.021440417100, -0.017374226900,  0.015437926100, -0.013773229200},
+    0.290971758300, -0.067326482200,  0.039967168700, -0.028180320800,
+    0.021440417100, -0.017374226900,  0.015437926100, -0.013773229200},
   { -0.001376849300, -0.002113994500,  0.003096377800, -0.001522077700,
     -0.002048697200,  0.009043386000, -0.024453193600,  0.080155270500,
-     0.290861113600, -0.067572563200,  0.040162405000, -0.028357551400,
-     0.021577567700, -0.017494757400,  0.015536744300, -0.013857978600},
+    0.290861113600, -0.067572563200,  0.040162405000, -0.028357551400,
+    0.021577567700, -0.017494757400,  0.015536744300, -0.013857978600},
   { -0.001383359700, -0.002115681000,  0.003094623000, -0.001529706600,
     -0.002042499600,  0.009046978300, -0.024496193000,  0.080448884900,
-     0.290742857900, -0.067815030400,  0.040359106100, -0.028520619600,
-     0.021716480000, -0.017610720400,  0.015643569600, -0.013950756900},
+    0.290742857900, -0.067815030400,  0.040359106100, -0.028520619600,
+    0.021716480000, -0.017610720400,  0.015643569600, -0.013950756900},
   { -0.001385829000, -0.002104702000,  0.003095698800, -0.001533174400,
     -0.002027861900,  0.009041815800, -0.024543547500,  0.080744453800,
-     0.290621547300, -0.068055928700,  0.040555731500, -0.028685336800,
-     0.021861411400, -0.017724211200,  0.015739387800, -0.014033359700},
+    0.290621547300, -0.068055928700,  0.040555731500, -0.028685336800,
+    0.021861411400, -0.017724211200,  0.015739387800, -0.014033359700},
   { -0.001392505100, -0.002106039500,  0.003093740800, -0.001540744900,
     -0.002021575300,  0.009045183800, -0.024586190700,  0.081040072300,
-     0.290494347700, -0.068302308800,  0.040754474000, -0.028850387900,
-     0.022002842700, -0.017846481100,  0.015839406100, -0.014118938600},
+    0.290494347700, -0.068302308800,  0.040754474000, -0.028850387900,
+    0.022002842700, -0.017846481100,  0.015839406100, -0.014118938600},
   { -0.001395190900, -0.002095226400,  0.003095699600, -0.001548946600,
     -0.002014963700,  0.009048347000, -0.024629081800,  0.081340267800,
-     0.290377478100, -0.068542945900,  0.040946718000, -0.029021815100,
-     0.022146976500, -0.017970542200,  0.015941116300, -0.014206281900},
+    0.290377478100, -0.068542945900,  0.040946718000, -0.029021815100,
+    0.022146976500, -0.017970542200,  0.015941116300, -0.014206281900},
   { -0.001401882300, -0.002096680100,  0.003093691000, -0.001556387000,
     -0.002008669700,  0.009051397000, -0.024670766100,  0.081635398000,
-     0.290253164200, -0.068780397800,  0.041142095700, -0.029185104300,
-     0.022287585300, -0.018092816300,  0.016042263500, -0.014297586900},
+    0.290253164200, -0.068780397800,  0.041142095700, -0.029185104300,
+    0.022287585300, -0.018092816300,  0.016042263500, -0.014297586900},
   { -0.001404564500, -0.002085806300,  0.003095765300, -0.001564993600,
     -0.002001893100,  0.009055027000, -0.024718526100,  0.081930443400,
-     0.290131292800, -0.069028755000,  0.041343948500, -0.029354488900,
-     0.022437490000, -0.018211358000,  0.016142525900, -0.014383790400},
+    0.290131292800, -0.069028755000,  0.041343948500, -0.029354488900,
+    0.022437490000, -0.018211358000,  0.016142525900, -0.014383790400},
   { -0.001411478900, -0.002086898100,  0.003092724100, -0.001567128600,
     -0.001988704700,  0.009055155500, -0.024758694700,  0.082230235800,
-     0.290011569200, -0.069267292000,  0.041541189800, -0.029519935000,
-     0.022579662500, -0.018334760000,  0.016243913500, -0.014471061400},
+    0.290011569200, -0.069267292000,  0.041541189800, -0.029519935000,
+    0.022579662500, -0.018334760000,  0.016243913500, -0.014471061400},
   { -0.001414337900, -0.002075770200,  0.003094262100, -0.001575159300,
     -0.001982046700,  0.009058174200, -0.024801087800,  0.082532448100,
-     0.289888685100, -0.069503998900,  0.041737590700, -0.029689051900,
-     0.022713561300, -0.018449559000,  0.016349891900, -0.014559627800},
+    0.289888685100, -0.069503998900,  0.041737590700, -0.029689051900,
+    0.022713561300, -0.018449559000,  0.016349891900, -0.014559627800},
   { -0.001416907600, -0.002064831500,  0.003096053600, -0.001582625700,
     -0.001980678900,  0.009054717400, -0.024845070000,  0.082826383600,
-     0.289764874500, -0.069755255200,  0.041932542200, -0.029856412200,
-     0.022863023200, -0.018567891400,  0.016450370300, -0.014646034300},
+    0.289764874500, -0.069755255200,  0.041932542200, -0.029856412200,
+    0.022863023200, -0.018567891400,  0.016450370300, -0.014646034300},
   { -0.001423747700, -0.002066861800,  0.003098336700, -0.001577810900,
     -0.001970699600,  0.009057517500, -0.024891262300,  0.083121682100,
-     0.289643060400, -0.069991474400,  0.042129344000, -0.030022736600,
-     0.023006696000, -0.018693430700,  0.016554974400, -0.014740487700},
+    0.289643060400, -0.069991474400,  0.042129344000, -0.030022736600,
+    0.023006696000, -0.018693430700,  0.016554974400, -0.014740487700},
   { -0.001426747600, -0.002055331700,  0.003099557300, -0.001585752700,
     -0.001964069200,  0.009060147700, -0.024932767200,  0.083425985400,
-     0.289510095600, -0.070230755300,  0.042326526200, -0.030188546200,
-     0.023150063400, -0.018818329000,  0.016657963500, -0.014829329300},
+    0.289510095600, -0.070230755300,  0.042326526200, -0.030188546200,
+    0.023150063400, -0.018818329000,  0.016657963500, -0.014829329300},
   { -0.001434061400, -0.002056302800,  0.003097143300, -0.001592655700,
     -0.001958070000,  0.009063562600, -0.024979066000,  0.083722905800,
-     0.289383840200, -0.070462608200,  0.042516727200, -0.030361552500,
-     0.023301552900, -0.018938392400,  0.016759937100, -0.014917519700},
+    0.289383840200, -0.070462608200,  0.042516727200, -0.030361552500,
+    0.023301552900, -0.018938392400,  0.016759937100, -0.014917519700},
   { -0.001436913900, -0.002044866400,  0.003097508000, -0.001595199500,
     -0.001944654100,  0.009063774800, -0.025022964500,  0.084018453400,
-     0.289257793800, -0.070696301300,  0.042714039500, -0.030533338900,
-     0.023439043400, -0.019061283500,  0.016861988700, -0.015005498900},
+    0.289257793800, -0.070696301300,  0.042714039500, -0.030533338900,
+    0.023439043400, -0.019061283500,  0.016861988700, -0.015005498900},
   { -0.001445044100, -0.002040355800,  0.003101858000, -0.001604479400,
     -0.001941756600,  0.009058701400, -0.025064553400,  0.084313384800,
-     0.289127389400, -0.070941485100,  0.042906585900, -0.030698827600,
-     0.023583328300, -0.019187203800,  0.016966497900, -0.015095192700},
+    0.289127389400, -0.070941485100,  0.042906585900, -0.030698827600,
+    0.023583328300, -0.019187203800,  0.016966497900, -0.015095192700},
   { -0.001447330000, -0.002034312100,  0.003096284800, -0.001609315800,
     -0.001937412700,  0.009063501400, -0.025112304400,  0.084617972200,
-     0.289002944200, -0.071173336500,  0.043102902900, -0.030866540700,
-     0.023733865500, -0.019307909900,  0.017070271400, -0.015190068200},
+    0.289002944200, -0.071173336500,  0.043102902900, -0.030866540700,
+    0.023733865500, -0.019307909900,  0.017070271400, -0.015190068200},
   { -0.001455518600, -0.002029502500,  0.003099574200, -0.001613820700,
     -0.001923185400,  0.009067220900, -0.025147413900,  0.084911325500,
-     0.288870320800, -0.071411887600,  0.043302468300, -0.031035919800,
-     0.023880818700, -0.019436707600,  0.017176704600, -0.015281581500},
+    0.288870320800, -0.071411887600,  0.043302468300, -0.031035919800,
+    0.023880818700, -0.019436707600,  0.017176704600, -0.015281581500},
   { -0.001457861300, -0.002023130000,  0.003093622800, -0.001617413500,
     -0.001924642300,  0.009065729600, -0.025192315000,  0.085215783300,
-     0.288739140200, -0.071653858800,  0.043494252000, -0.031201529400,
-     0.024025743900, -0.019563622700,  0.017282467800, -0.015372811900},
+    0.288739140200, -0.071653858800,  0.043494252000, -0.031201529400,
+    0.024025743900, -0.019563622700,  0.017282467800, -0.015372811900},
   { -0.001466497000, -0.002018075200,  0.003096710200, -0.001621883700,
     -0.001909503200,  0.009063993200, -0.025234780000,  0.085517904200,
-     0.288613216300, -0.071884560100,  0.043691563100, -0.031375546100,
-     0.024169673500, -0.019676404700,  0.017390367400, -0.015464035900},
+    0.288613216300, -0.071884560100,  0.043691563100, -0.031375546100,
+    0.024169673500, -0.019676404700,  0.017390367400, -0.015464035900},
   { -0.001469685300, -0.002006309300,  0.003097408700, -0.001629128000,
     -0.001904355000,  0.009073340000, -0.025278532500,  0.085809125600,
-     0.288475887700, -0.072118967800,  0.043889313200, -0.031543979900,
-     0.024316777100, -0.019805930700,  0.017497985500, -0.015556426100},
+    0.288475887700, -0.072118967800,  0.043889313200, -0.031543979900,
+    0.024316777100, -0.019805930700,  0.017497985500, -0.015556426100},
   { -0.001477449400, -0.002006818100,  0.003094518400, -0.001634855100,
     -0.001903992100,  0.009069894600, -0.025320844800,  0.086112304400,
-     0.288347603800, -0.072351635400,  0.044077625700, -0.031707875300,
-     0.024461035300, -0.019933041100,  0.017605115800, -0.015654004700},
+    0.288347603800, -0.072351635400,  0.044077625700, -0.031707875300,
+    0.024461035300, -0.019933041100,  0.017605115800, -0.015654004700},
   { -0.001480767400, -0.001994653500,  0.003094108300, -0.001636592700,
     -0.001891836000,  0.009074959300, -0.025357212300,  0.086414765800,
-     0.288212217900, -0.072585572700,  0.044276425800, -0.031879037500,
-     0.024614982500, -0.020057087700,  0.017710651600, -0.015745786000},
+    0.288212217900, -0.072585572700,  0.044276425800, -0.031879037500,
+    0.024614982500, -0.020057087700,  0.017710651600, -0.015745786000},
   { -0.001488858500, -0.001993991000,  0.003085609100, -0.001648979900,
     -0.001888369000,  0.009070080400, -0.025403194900,  0.086711998100,
-     0.288078851000, -0.072825294900,  0.044470365700, -0.032052144100,
-     0.024755980300, -0.020183755000,  0.017817156300, -0.015837646000},
+    0.288078851000, -0.072825294900,  0.044470365700, -0.032052144100,
+    0.024755980300, -0.020183755000,  0.017817156300, -0.015837646000},
   { -0.001492305300, -0.001981877500,  0.003085015800, -0.001650306000,
     -0.001876815400,  0.009076396600, -0.025444714700,  0.087007865500,
-     0.287948850700, -0.073051883700,  0.044666232000, -0.032220613500,
-     0.024903471000, -0.020314095600,  0.017925901000, -0.015931594800},
+    0.287948850700, -0.073051883700,  0.044666232000, -0.032220613500,
+    0.024903471000, -0.020314095600,  0.017925901000, -0.015931594800},
   { -0.001501262300, -0.001976310900,  0.003088203600, -0.001658952100,
     -0.001873996900,  0.009070381000, -0.025484515600,  0.087312662900,
-     0.287808844900, -0.073281372400,  0.044862930000, -0.032390709200,
-     0.025057752300, -0.020438589400,  0.018033299200, -0.016030164800},
+    0.287808844900, -0.073281372400,  0.044862930000, -0.032390709200,
+    0.025057752300, -0.020438589400,  0.018033299200, -0.016030164800},
   { -0.001503969900, -0.001969379300,  0.003080858100, -0.001657013000,
     -0.001864713500,  0.009078560600, -0.025527589100,  0.087611730400,
-     0.287669639200, -0.073516228400,  0.045054475300, -0.032563221800,
-     0.025198358100, -0.020565897500,  0.018140302000, -0.016122658700},
+    0.287669639200, -0.073516228400,  0.045054475300, -0.032563221800,
+    0.025198358100, -0.020565897500,  0.018140302000, -0.016122658700},
   { -0.001513327100, -0.001963597200,  0.003083968700, -0.001665725900,
     -0.001862252200,  0.009073875600, -0.025573878100,  0.087916911500,
-     0.287535419700, -0.073748515200,  0.045259152900, -0.032729171400,
-     0.025351871200, -0.020690412400,  0.018247246600, -0.016215838300},
+    0.287535419700, -0.073748515200,  0.045259152900, -0.032729171400,
+    0.025351871200, -0.020690412400,  0.018247246600, -0.016215838300},
   { -0.001516114100, -0.001956698100,  0.003076434500, -0.001663416900,
     -0.001853404200,  0.009082036700, -0.025616230100,  0.088215611900,
-     0.287398826600, -0.073974168600,  0.045445650100, -0.032893481400,
-     0.025497283800, -0.020820608400,  0.018361514000, -0.016303461100},
+    0.287398826600, -0.073974168600,  0.045445650100, -0.032893481400,
+    0.025497283800, -0.020820608400,  0.018361514000, -0.016303461100},
   { -0.001525545100, -0.001950784000,  0.003079287600, -0.001671519700,
     -0.001851968500,  0.009083077500, -0.025655699800,  0.088518791800,
-     0.287263294400, -0.074204448300,  0.045645401700, -0.033070898400,
-     0.025642665600, -0.020951717000,  0.018471685500, -0.016399128000},
+    0.287263294400, -0.074204448300,  0.045645401700, -0.033070898400,
+    0.025642665600, -0.020951717000,  0.018471685500, -0.016399128000},
   { -0.001529263800, -0.001938044200,  0.003078214900, -0.001672419000,
     -0.001840528300,  0.009088750200, -0.025695953100,  0.088817903900,
-     0.287119707900, -0.074435467900,  0.045835202700, -0.033239161900,
-     0.025796245500, -0.021077164200,  0.018580469200, -0.016498716200},
+    0.287119707900, -0.074435467900,  0.045835202700, -0.033239161900,
+    0.025796245500, -0.021077164200,  0.018580469200, -0.016498716200},
   { -0.001538275800, -0.001937151500,  0.003074065100, -0.001676983800,
     -0.001841296500,  0.009086549100, -0.025743532000,  0.089126683900,
-     0.286977836300, -0.074664683000,  0.046023517900, -0.033404937000,
-     0.025943420100, -0.021207672000,  0.018690756000, -0.016594569100},
+    0.286977836300, -0.074664683000,  0.046023517900, -0.033404937000,
+    0.025943420100, -0.021207672000,  0.018690756000, -0.016594569100},
   { -0.001542197500, -0.001924344300,  0.003072425300, -0.001676580800,
     -0.001835675000,  0.009085971800, -0.025781349400,  0.089429913200,
-     0.286843179800, -0.074884840400,  0.046219477100, -0.033581867500,
-     0.026093533900, -0.021331826000,  0.018797704300, -0.016688282800},
+    0.286843179800, -0.074884840400,  0.046219477100, -0.033581867500,
+    0.026093533900, -0.021331826000,  0.018797704300, -0.016688282800},
   { -0.001546377000, -0.001910937800,  0.003070488600, -0.001676528000,
     -0.001825134600,  0.009092452800, -0.025821879500,  0.089731283500,
-     0.286693376000, -0.075110245000,  0.046405855900, -0.033746731200,
-     0.026239733700, -0.021462324800,  0.018907663300, -0.016783704800},
+    0.286693376000, -0.075110245000,  0.046405855900, -0.033746731200,
+    0.026239733700, -0.021462324800,  0.018907663300, -0.016783704800},
   { -0.001555232200, -0.001910366600,  0.003066530900, -0.001681411600,
     -0.001826242300,  0.009095852900, -0.025867448300,  0.090031502000,
-     0.286552421600, -0.075335881700,  0.046610354100, -0.033919719800,
-     0.026389844800, -0.021587898200,  0.019017118400, -0.016884247400},
+    0.286552421600, -0.075335881700,  0.046610354100, -0.033919719800,
+    0.026389844800, -0.021587898200,  0.019017118400, -0.016884247400},
   { -0.001559561500, -0.001896839700,  0.003064309200, -0.001680332600,
     -0.001821529400,  0.009096027200, -0.025905423200,  0.090337279400,
-     0.286407594900, -0.075562967900,  0.046799004200, -0.034087052200,
-     0.026538690300, -0.021720457700,  0.019128983200, -0.016981596000},
+    0.286407594900, -0.075562967900,  0.046799004200, -0.034087052200,
+    0.026538690300, -0.021720457700,  0.019128983200, -0.016981596000},
   { -0.001569153000, -0.001894703800,  0.003054176700, -0.001691600600,
     -0.001814795900,  0.009104248700, -0.025952532400,  0.090639789400,
-     0.286262228400, -0.075788745300,  0.046987841400, -0.034255105000,
-     0.026693327400, -0.021847402400,  0.019238909500, -0.017077386900},
+    0.286262228400, -0.075788745300,  0.046987841400, -0.034255105000,
+    0.026693327400, -0.021847402400,  0.019238909500, -0.017077386900},
   { -0.001573670100, -0.001880890400,  0.003051424200, -0.001690153500,
     -0.001810064900,  0.009104300700, -0.025990224500,  0.090946916500,
-     0.286112971700, -0.076007137400,  0.047182370700, -0.034430712700,
-     0.026838198900, -0.021978862300,  0.019350009900, -0.017174506000},
+    0.286112971700, -0.076007137400,  0.047182370700, -0.034430712700,
+    0.026838198900, -0.021978862300,  0.019350009900, -0.017174506000},
   { -0.001583828300, -0.001873935800,  0.003052700600, -0.001692015100,
     -0.001803039800,  0.009103004000, -0.026032138000,  0.091251439600,
-     0.285975563800, -0.076238222500,  0.047381154500, -0.034597273100,
-     0.026994361100, -0.022107866200,  0.019462639700, -0.017278016500},
+    0.285975563800, -0.076238222500,  0.047381154500, -0.034597273100,
+    0.026994361100, -0.022107866200,  0.019462639700, -0.017278016500},
   { -0.001587867000, -0.001865780400,  0.003044301800, -0.001692821000,
     -0.001807759500,  0.009109488100, -0.026079677000,  0.091556728800,
-     0.285823700200, -0.076458633000,  0.047567511000, -0.034768617100,
-     0.027136848800, -0.022237957200,  0.019573449500, -0.017374543300},
+    0.285823700200, -0.076458633000,  0.047567511000, -0.034768617100,
+    0.027136848800, -0.022237957200,  0.019573449500, -0.017374543300},
   { -0.001598323500, -0.001858063000,  0.003044500800, -0.001693384100,
     -0.001801618700,  0.009107820400, -0.026115241800,  0.091863686900,
-     0.285671811500, -0.076679031600,  0.047753629900, -0.034936118500,
-     0.027291613500, -0.022364869500,  0.019683203200, -0.017470863500},
+    0.285671811500, -0.076679031600,  0.047753629900, -0.034936118500,
+    0.027291613500, -0.022364869500,  0.019683203200, -0.017470863500},
   { -0.001603558400, -0.001843678200,  0.003041601400, -0.001692544800,
     -0.001791780100,  0.009115656500, -0.026162495500,  0.092174773000,
-     0.285524247500, -0.076901860200,  0.047947719600, -0.035103343800,
-     0.027432475300, -0.022494731800,  0.019794038100, -0.017567749800},
+    0.285524247500, -0.076901860200,  0.047947719600, -0.035103343800,
+    0.027432475300, -0.022494731800,  0.019794038100, -0.017567749800},
   { -0.001613422400, -0.001841112200,  0.003030366000, -0.001701864700,
     -0.001792125700,  0.009123179000, -0.026199049700,  0.092474868600,
-     0.285372738700, -0.077116537300,  0.048141797500, -0.035275280700,
-     0.027591688900, -0.022626375700,  0.019908421800, -0.017673081200},
+    0.285372738700, -0.077116537300,  0.048141797500, -0.035275280700,
+    0.027591688900, -0.022626375700,  0.019908421800, -0.017673081200},
   { -0.001618684700, -0.001826555800,  0.003026957800, -0.001699564500,
     -0.001788644700,  0.009124739900, -0.026242686200,  0.092784329800,
-     0.285223614300, -0.077336969100,  0.048328815000, -0.035443127000,
-     0.027742539400, -0.022762632500,  0.020029767800, -0.017767797800},
+    0.285223614300, -0.077336969100,  0.048328815000, -0.035443127000,
+    0.027742539400, -0.022762632500,  0.020029767800, -0.017767797800},
   { -0.001629703000, -0.001818503700,  0.003027010500, -0.001700124000,
     -0.001782837800,  0.009124974400, -0.026290376100,  0.093086772800,
-     0.285077698000, -0.077560338000,  0.048525355700, -0.035614488000,
-     0.027892719100, -0.022889140600,  0.020140353900, -0.017864500900},
+    0.285077698000, -0.077560338000,  0.048525355700, -0.035614488000,
+    0.027892719100, -0.022889140600,  0.020140353900, -0.017864500900},
   { -0.001634392700, -0.001809252200,  0.003016455700, -0.001693615300,
     -0.001782780900,  0.009129169500, -0.026335334700,  0.093393907400,
-     0.284916529600, -0.077771874700,  0.048706755700, -0.035778114400,
-     0.028040064200, -0.023021819100,  0.020253539400, -0.017963440300},
+    0.284916529600, -0.077771874700,  0.048706755700, -0.035778114400,
+    0.028040064200, -0.023021819100,  0.020253539400, -0.017963440300},
   { -0.001645793200, -0.001800824700,  0.003016678700, -0.001699031600,
     -0.001784607900,  0.009137987500, -0.026373328800,  0.093702911100,
-     0.284764041400, -0.077988760200,  0.048893523500, -0.035952564600,
-     0.028191490700, -0.023149218600,  0.020364436200, -0.018061008600},
+    0.284764041400, -0.077988760200,  0.048893523500, -0.035952564600,
+    0.028191490700, -0.023149218600,  0.020364436200, -0.018061008600},
   { -0.001651378600, -0.001785770200,  0.003012636900, -0.001696266500,
     -0.001781460200,  0.009139701600, -0.026416553200,  0.094014760000,
-     0.284608657200, -0.078204266000,  0.049084885500, -0.036119295000,
-     0.028333282800, -0.023280404100,  0.020477739000, -0.018165847100},
+    0.284608657200, -0.078204266000,  0.049084885500, -0.036119295000,
+    0.028333282800, -0.023280404100,  0.020477739000, -0.018165847100},
   { -0.001662265200, -0.001781999900,  0.002999487700, -0.001698314300,
     -0.001777143500,  0.009146283300, -0.026457830700,  0.094316696700,
-     0.284457324700, -0.078421164800,  0.049272679100, -0.036289687800,
-     0.028492007500, -0.023412213700,  0.020592415900, -0.018266186600},
+    0.284457324700, -0.078421164800,  0.049272679100, -0.036289687800,
+    0.028492007500, -0.023412213700,  0.020592415900, -0.018266186600},
   { -0.001668313800, -0.001766316400,  0.002994642500, -0.001694643800,
     -0.001774906500,  0.009148770700, -0.026501577500,  0.094630560000,
-     0.284297024000, -0.078632258000,  0.049461377000, -0.036454574300,
-     0.028632330500, -0.023541974700,  0.020703740000, -0.018364139000},
+    0.284297024000, -0.078632258000,  0.049461377000, -0.036454574300,
+    0.028632330500, -0.023541974700,  0.020703740000, -0.018364139000},
   { -0.001680418200, -0.001756770400,  0.002992954400, -0.001693172900,
     -0.001771057900,  0.009150120900, -0.026549370400,  0.094937302500,
-     0.284139414500, -0.078843755900,  0.049644890900, -0.036622085000,
-     0.028788840800, -0.023671874000,  0.020817422100, -0.018463951300},
+    0.284139414500, -0.078843755900,  0.049644890900, -0.036622085000,
+    0.028788840800, -0.023671874000,  0.020817422100, -0.018463951300},
   { -0.001686115500, -0.001746931600,  0.002982552200, -0.001691727400,
     -0.001778570200,  0.009164052800, -0.026591723800,  0.095258665900,
-     0.283981176300, -0.079052887900,  0.049827569900, -0.036793287300,
-     0.028933443100, -0.023805663500,  0.020933121700, -0.018571534300},
+    0.283981176300, -0.079052887900,  0.049827569900, -0.036793287300,
+    0.028933443100, -0.023805663500,  0.020933121700, -0.018571534300},
   { -0.001698209200, -0.001736659300,  0.002974894800, -0.001696435000,
     -0.001772231300,  0.009168743300, -0.026630607200,  0.095561100700,
-     0.283824708400, -0.079266196800,  0.050019918900, -0.036957408700,
-     0.029090435800, -0.023942524200,  0.021041132500, -0.018668595300},
+    0.283824708400, -0.079266196800,  0.050019918900, -0.036957408700,
+    0.029090435800, -0.023942524200,  0.021041132500, -0.018668595300},
   { -0.001704658800, -0.001720493300,  0.002969448100, -0.001691965100,
     -0.001770702400,  0.009171925300, -0.026679621900,  0.095870802000,
-     0.283660491100, -0.079472717100,  0.050201664600, -0.037129754000,
-     0.029241121700, -0.024070689600,  0.021159356200, -0.018761561600},
+    0.283660491100, -0.079472717100,  0.050201664600, -0.037129754000,
+    0.029241121700, -0.024070689600,  0.021159356200, -0.018761561600},
   { -0.001717442700, -0.001710235900,  0.002967018600, -0.001689724600,
     -0.001768308200,  0.009180232100, -0.026722407800,  0.096183264500,
-     0.283504106100, -0.079683587600,  0.050392415300, -0.037297550600,
-     0.029384739600, -0.024204158900,  0.021274150600, -0.018862478100},
+    0.283504106100, -0.079683587600,  0.050392415300, -0.037297550600,
+    0.029384739600, -0.024204158900,  0.021274150600, -0.018862478100},
   { -0.001723295500, -0.001699869700,  0.002955079600, -0.001681516300,
     -0.001770832400,  0.009192163800, -0.026767354800,  0.096492955100,
-     0.283337590700, -0.079887593500,  0.050578218900, -0.037457346700,
-     0.029538083300, -0.024333413500,  0.021388132400, -0.018968488000},
+    0.283337590700, -0.079887593500,  0.050578218900, -0.037457346700,
+    0.029538083300, -0.024333413500,  0.021388132400, -0.018968488000},
   { -0.001736577200, -0.001687977400,  0.002945624400, -0.001683731000,
     -0.001771162500,  0.009186304800, -0.026811221400,  0.096806832700,
-     0.283171957600, -0.080100778400,  0.050764840500, -0.037632549500,
-     0.029686120900, -0.024469290200,  0.021505473200, -0.019071619200},
+    0.283171957600, -0.080100778400,  0.050764840500, -0.037632549500,
+    0.029686120900, -0.024469290200,  0.021505473200, -0.019071619200},
   { -0.001743866400, -0.001670904800,  0.002939243500, -0.001678044700,
     -0.001772074700,  0.009197158400, -0.026855831200,  0.097122904600,
-     0.283008922400, -0.080311308100,  0.050945404700, -0.037790101700,
-     0.029837934200, -0.024597228000,  0.021617945900, -0.019170951200},
+    0.283008922400, -0.080311308100,  0.050945404700, -0.037790101700,
+    0.029837934200, -0.024597228000,  0.021617945900, -0.019170951200},
   { -0.001756624600, -0.001665754600,  0.002930209300, -0.001677015500,
     -0.001779605600,  0.009211401200, -0.026902305100,  0.097436064800,
-     0.282834989500, -0.080507440900,  0.051121120600, -0.037958156200,
-     0.029986133000, -0.024723351000,  0.021728932000, -0.019269257400},
+    0.282834989500, -0.080507440900,  0.051121120600, -0.037958156200,
+    0.029986133000, -0.024723351000,  0.021728932000, -0.019269257400},
   { -0.001764156100, -0.001648349000,  0.002923256000, -0.001670895300,
     -0.001780604500,  0.009222427700, -0.026946759500,  0.097753369800,
-     0.282668132600, -0.080708954700,  0.051306676900, -0.038122909500,
-     0.030128070300, -0.024856282600,  0.021844654800, -0.019377155600},
+    0.282668132600, -0.080708954700,  0.051306676900, -0.038122909500,
+    0.030128070300, -0.024856282600,  0.021844654800, -0.019377155600},
   { -0.001778008400, -0.001635839700,  0.002912741900, -0.001671632200,
     -0.001783286000,  0.009223573800, -0.026984567000,  0.098066057000,
-     0.282503350600, -0.080910856000,  0.051487224000, -0.038289759200,
-     0.030286004000, -0.024988398200,  0.021960407900, -0.019479635100},
+    0.282503350600, -0.080910856000,  0.051487224000, -0.038289759200,
+    0.030286004000, -0.024988398200,  0.021960407900, -0.019479635100},
   { -0.001785075000, -0.001624082400,  0.002899683900, -0.001662356200,
     -0.001786186700,  0.009231168400, -0.027042545900,  0.098383808800,
-     0.282326299200, -0.081120147400,  0.051668545300, -0.038454440300,
-     0.030434707800, -0.025122240000,  0.022073795700, -0.019570606700},
+    0.282326299200, -0.081120147400,  0.051668545300, -0.038454440300,
+    0.030434707800, -0.025122240000,  0.022073795700, -0.019570606700},
   { -0.001799471600, -0.001611646700,  0.002894723100, -0.001657398400,
     -0.001786417100,  0.009241521900, -0.027086143300,  0.098702548800,
-     0.282153907600, -0.081315971000,  0.051850662000, -0.038616812900,
-     0.030574773900, -0.025253455800,  0.022187350300, -0.019671249500},
+    0.282153907600, -0.081315971000,  0.051850662000, -0.038616812900,
+    0.030574773900, -0.025253455800,  0.022187350300, -0.019671249500},
   { -0.001808127200, -0.001592362400,  0.002880377400, -0.001655707600,
     -0.001785903000,  0.009251959300, -0.027135898100,  0.099021663300,
-     0.281989192800, -0.081515568600,  0.052030462600, -0.038783583100,
-     0.030733042100, -0.025387269800,  0.022306311600, -0.019782364100},
+    0.281989192800, -0.081515568600,  0.052030462600, -0.038783583100,
+    0.030733042100, -0.025387269800,  0.022306311600, -0.019782364100},
   { -0.001822507700, -0.001579820600,  0.002875237500, -0.001649711300,
     -0.001792635900,  0.009256393500, -0.027175974500,  0.099338786400,
-     0.281816351400, -0.081716496200,  0.052207335300, -0.038945254600,
-     0.030878936400, -0.025512202200,  0.022416781800, -0.019880568400},
+    0.281816351400, -0.081716496200,  0.052207335300, -0.038945254600,
+    0.030878936400, -0.025512202200,  0.022416781800, -0.019880568400},
   { -0.001830818000, -0.001566710200,  0.002860056400, -0.001637727000,
     -0.001799068700,  0.009272886300, -0.027230252500,  0.099657892600,
-     0.281637176300, -0.081905722200,  0.052385802800, -0.039105374000,
-     0.031017613200, -0.025642740200,  0.022530400400, -0.019981165400},
+    0.281637176300, -0.081905722200,  0.052385802800, -0.039105374000,
+    0.031017613200, -0.025642740200,  0.022530400400, -0.019981165400},
   { -0.001845760100, -0.001552740800,  0.002847881000, -0.001636760100,
     -0.001804192200,  0.009282507800, -0.027269207300,  0.099967050900,
-     0.281460005200, -0.082107814900,  0.052574179500, -0.039274706000,
-     0.031169977600, -0.025773553200,  0.022645343300, -0.020082641400},
+    0.281460005200, -0.082107814900,  0.052574179500, -0.039274706000,
+    0.031169977600, -0.025773553200,  0.022645343300, -0.020082641400},
   { -0.001855192900, -0.001533110500,  0.002838490600, -0.001627660100,
     -0.001808517000,  0.009296869200, -0.027321921500,  0.100291413500,
-     0.281286138200, -0.082304345000,  0.052741885600, -0.039434316600,
-     0.031323202100, -0.025903756400,  0.022761936700, -0.020192073400},
+    0.281286138200, -0.082304345000,  0.052741885600, -0.039434316600,
+    0.031323202100, -0.025903756400,  0.022761936700, -0.020192073400},
   { -0.001869926500, -0.001525588000,  0.002826213600, -0.001617884900,
     -0.001812957700,  0.009311303900, -0.027373640000,  0.100609916000,
-     0.281103932300, -0.082490397700,  0.052919415400, -0.039594468800,
-     0.031463335700, -0.026042393200,  0.022877455000, -0.020285435000},
+    0.281103932300, -0.082490397700,  0.052919415400, -0.039594468800,
+    0.031463335700, -0.026042393200,  0.022877455000, -0.020285435000},
   { -0.001879711300, -0.001504548000,  0.002809677500, -0.001613216100,
     -0.001820868000,  0.009318026600, -0.027421788700,  0.100932867600,
-     0.280922614500, -0.082692676700,  0.053098254300, -0.039758154000,
-     0.031611536400, -0.026169842500,  0.022990763600, -0.020386038100},
+    0.280922614500, -0.082692676700,  0.053098254300, -0.039758154000,
+    0.031611536400, -0.026169842500,  0.022990763600, -0.020386038100},
   { -0.001896148500, -0.001489715900,  0.002802122100, -0.001605491000,
     -0.001823983800,  0.009331442300, -0.027473598000,  0.101258880600,
-     0.280742505700, -0.082878251100,  0.053275619900, -0.039919465700,
-     0.031757335000, -0.026295748600,  0.023102669400, -0.020486105200},
+    0.280742505700, -0.082878251100,  0.053275619900, -0.039919465700,
+    0.031757335000, -0.026295748600,  0.023102669400, -0.020486105200},
   { -0.001906217800, -0.001469185600,  0.002791306400, -0.001593896400,
     -0.001837111200,  0.009347882600, -0.027518324200,  0.101581276800,
-     0.280564653200, -0.083070602600,  0.053441716200, -0.040078628800,
-     0.031911263600, -0.026426870800,  0.023219719400, -0.020596163500},
+    0.280564653200, -0.083070602600,  0.053441716200, -0.040078628800,
+    0.031911263600, -0.026426870800,  0.023219719400, -0.020596163500},
   { -0.001922140900, -0.001459273400,  0.002770198900, -0.001581275300,
     -0.001835136600,  0.009358983900, -0.027567373500,  0.101900357800,
-     0.280377353300, -0.083256870000,  0.053610471900, -0.040233651400,
-     0.032046118400, -0.026554662000,  0.023331738800, -0.020695687800},
+    0.280377353300, -0.083256870000,  0.053610471900, -0.040233651400,
+    0.032046118400, -0.026554662000,  0.023331738800, -0.020695687800},
   { -0.001933077600, -0.001437420100,  0.002757857900, -0.001568643300,
     -0.001848435300,  0.009370146400, -0.027619025000,  0.102229591200,
-     0.280184129200, -0.083442004400,  0.053787235200, -0.040395032300,
-     0.032192706400, -0.026681026200,  0.023444081100, -0.020796180800},
+    0.280184129200, -0.083442004400,  0.053787235200, -0.040395032300,
+    0.032192706400, -0.026681026200,  0.023444081100, -0.020796180800},
   { -0.001950196300, -0.001421126700,  0.002743236000, -0.001565501700,
     -0.001850389700,  0.009389127400, -0.027669483100,  0.102547554800,
-     0.280004451900, -0.083632987700,  0.053961014100, -0.040555637300,
-     0.032339646100, -0.026814717500,  0.023552023700, -0.020894037400},
+    0.280004451900, -0.083632987700,  0.053961014100, -0.040555637300,
+    0.032339646100, -0.026814717500,  0.023552023700, -0.020894037400},
   { -0.001960990100, -0.001399562800,  0.002731039900, -0.001552949300,
     -0.001863555500,  0.009399847000, -0.027719967200,  0.102875847200,
-     0.279815921900, -0.083810986900,  0.054134314800, -0.040714985700,
-     0.032485359700, -0.026941818000,  0.023672059200, -0.020996580900},
+    0.279815921900, -0.083810986900,  0.054134314800, -0.040714985700,
+    0.032485359700, -0.026941818000,  0.023672059200, -0.020996580900},
   { -0.001978335000, -0.001388824500,  0.002715202100, -0.001538161700,
     -0.001879709700,  0.009419594300, -0.027767473800,  0.103205041100,
-     0.279619234800, -0.083997214900,  0.054302452500, -0.040870290800,
-     0.032621932300, -0.027071437200,  0.023785545000, -0.021097697500},
+    0.279619234800, -0.083997214900,  0.054302452500, -0.040870290800,
+    0.032621932300, -0.027071437200,  0.023785545000, -0.021097697500},
   { -0.001990835900, -0.001364801200,  0.002695060500, -0.001530065500,
     -0.001885898300,  0.009436950100, -0.027828661600,  0.103538923200,
-     0.279432441200, -0.084179631800,  0.054468678800, -0.041018806300,
-     0.032768596100, -0.027197497600,  0.023898644100, -0.021198957800},
+    0.279432441200, -0.084179631800,  0.054468678800, -0.041018806300,
+    0.032768596100, -0.027197497600,  0.023898644100, -0.021198957800},
   { -0.002009220500, -0.001347505300,  0.002684579000, -0.001518047500,
     -0.001900093500,  0.009455425900, -0.027880462700,  0.103861290100,
-     0.279243346600, -0.084361255500,  0.054635449300, -0.041174711300,
-     0.032911712700, -0.027321991400,  0.024009912800, -0.021298248700},
+    0.279243346600, -0.084361255500,  0.054635449300, -0.041174711300,
+    0.032911712700, -0.027321991400,  0.024009912800, -0.021298248700},
   { -0.002021097800, -0.001323447400,  0.002663196100, -0.001502518600,
     -0.001906698600,  0.009462422300, -0.027927521300,  0.104190543900,
-     0.279042526200, -0.084538637100,  0.054809534600, -0.041335183200,
-     0.033058704200, -0.027455391500,  0.024118477100, -0.021403770100},
+    0.279042526200, -0.084538637100,  0.054809534600, -0.041335183200,
+    0.033058704200, -0.027455391500,  0.024118477100, -0.021403770100},
   { -0.002040050600, -0.001311257700,  0.002645934000, -0.001486507400,
     -0.001918547800,  0.009490451500, -0.027986541700,  0.104526215400,
-     0.278849784900, -0.084713840400,  0.054965250700, -0.041491644800,
-     0.033194974400, -0.027586029200,  0.024240038400, -0.021501456000},
+    0.278849784900, -0.084713840400,  0.054965250700, -0.041491644800,
+    0.033194974400, -0.027586029200,  0.024240038400, -0.021501456000},
   { -0.002053034800, -0.001286367400,  0.002624167700, -0.001475643600,
     -0.001933711100,  0.009510206500, -0.028039339300,  0.104851735700,
-     0.278653475900, -0.084889121800,  0.055128391400, -0.041644581200,
-     0.033335865400, -0.027708847400,  0.024350066900, -0.021599986800},
+    0.278653475900, -0.084889121800,  0.055128391400, -0.041644581200,
+    0.033335865400, -0.027708847400,  0.024350066900, -0.021599986800},
   { -0.002073264900, -0.001266673600,  0.002611261800, -0.001461338600,
     -0.001949621100,  0.009524686500, -0.028099508700,  0.105189430300,
-     0.278450786400, -0.085067297700,  0.055292010700, -0.041798158600,
-     0.033477267300, -0.027831832100,  0.024460899000, -0.021699539700},
+    0.278450786400, -0.085067297700,  0.055292010700, -0.041798158600,
+    0.033477267300, -0.027831832100,  0.024460899000, -0.021699539700},
   { -0.002086264900, -0.001241753500,  0.002589582900, -0.001451556400,
     -0.001957811700,  0.009549327200, -0.028154247100,  0.105517476900,
-     0.278250526200, -0.085239563600,  0.055460095600, -0.041944857600,
-     0.033615404000, -0.027960051300,  0.024565652100, -0.021801611400},
+    0.278250526200, -0.085239563600,  0.055460095600, -0.041944857600,
+    0.033615404000, -0.027960051300,  0.024565652100, -0.021801611400},
   { -0.002106926400, -0.001221321700,  0.002575063400, -0.001429511100,
     -0.001970246700,  0.009568367500, -0.028207292800,  0.105852072900,
-     0.278047516100, -0.085416983300,  0.055624216900, -0.042099685900,
-     0.033757782300, -0.028084273300,  0.024677037500, -0.021901583000},
+    0.278047516100, -0.085416983300,  0.055624216900, -0.042099685900,
+    0.033757782300, -0.028084273300,  0.024677037500, -0.021901583000},
   { -0.002120617500, -0.001202056000,  0.002552535400, -0.001408007500,
     -0.001993279700,  0.009595095600, -0.028266589600,  0.106192034600,
-     0.277843916500, -0.085583072500,  0.055780937400, -0.042248483600,
-     0.033896113600, -0.028206269200,  0.024793027300, -0.021995201800},
+    0.277843916500, -0.085583072500,  0.055780937400, -0.042248483600,
+    0.033896113600, -0.028206269200,  0.024793027300, -0.021995201800},
   { -0.002142396800, -0.001179865400,  0.002530754500, -0.001396393300,
     -0.002009028700,  0.009610046500, -0.028326674100,  0.106531925400,
-     0.277639650500, -0.085747792700,  0.055936365900, -0.042394273800,
-     0.034025320000, -0.028330041100,  0.024903208900, -0.022094548100},
+    0.277639650500, -0.085747792700,  0.055936365900, -0.042394273800,
+    0.034025320000, -0.028330041100,  0.024903208900, -0.022094548100},
   { -0.002157159200, -0.001153285000,  0.002512274500, -0.001370844300,
     -0.002024860800,  0.009632664400, -0.028388245500,  0.106864987700,
-     0.277432448700, -0.085921130000,  0.056098971500, -0.042548622300,
-     0.034168711000, -0.028462099000,  0.025011964800, -0.022199944300},
+    0.277432448700, -0.085921130000,  0.056098971500, -0.042548622300,
+    0.034168711000, -0.028462099000,  0.025011964800, -0.022199944300},
   { -0.002179375900, -0.001130552500,  0.002489758900, -0.001358263800,
     -0.002042234800,  0.009654833100, -0.028443348800,  0.107203619900,
-     0.277226300200, -0.086083834300,  0.056253954500, -0.042695656200,
-     0.034305305000, -0.028581781400,  0.025119808500, -0.022297564100},
+    0.277226300200, -0.086083834300,  0.056253954500, -0.042695656200,
+    0.034305305000, -0.028581781400,  0.025119808500, -0.022297564100},
   { -0.002195061100, -0.001108669600,  0.002464213000, -0.001333423100,
     -0.002068874300,  0.009685232500, -0.028506052900,  0.107550806200,
-     0.277004327300, -0.086243310500,  0.056405162700, -0.042840028100,
-     0.034439922500, -0.028700012900,  0.025226614100, -0.022394383100},
+    0.277004327300, -0.086243310500,  0.056405162700, -0.042840028100,
+    0.034439922500, -0.028700012900,  0.025226614100, -0.022394383100},
   { -0.002217436800, -0.001085689500,  0.002440979000, -0.001314845000,
     -0.002074387600,  0.009710099800, -0.028567755500,  0.107884769000,
-     0.276798805200, -0.086406171500,  0.056561115200, -0.042988680400,
-     0.034577788700, -0.028822677500,  0.025344724600, -0.022496001600},
+    0.276798805200, -0.086406171500,  0.056561115200, -0.042988680400,
+    0.034577788700, -0.028822677500,  0.025344724600, -0.022496001600},
   { -0.002234052300, -0.001056977600,  0.002420334600, -0.001292564500,
     -0.002099057700,  0.009738656200, -0.028628118700,  0.108230473600,
-     0.276581678800, -0.086558899300,  0.056708946400, -0.043130672100,
-     0.034711343700, -0.028946376900,  0.025445511400, -0.022589602700},
+    0.276581678800, -0.086558899300,  0.056708946400, -0.043130672100,
+    0.034711343700, -0.028946376900,  0.025445511400, -0.022589602700},
   { -0.002257986500, -0.001032008700,  0.002395334200, -0.001277542100,
     -0.002119185700,  0.009764314400, -0.028692402200,  0.108569779600,
-     0.276361694700, -0.086719885800,  0.056868813300, -0.043271529100,
-     0.034844676000, -0.029064307100,  0.025552190100, -0.022685765900},
+    0.276361694700, -0.086719885800,  0.056868813300, -0.043271529100,
+    0.034844676000, -0.029064307100,  0.025552190100, -0.022685765900},
   { -0.002275798800, -0.001001252000,  0.002366059500, -0.001252260400,
     -0.002137523800,  0.009790138000, -0.028757551100,  0.108916066600,
-     0.276151572300, -0.086882727400,  0.057015156000, -0.043413931200,
-     0.034977723200, -0.029181547900,  0.025659050200, -0.022782491400},
+    0.276151572300, -0.086882727400,  0.057015156000, -0.043413931200,
+    0.034977723200, -0.029181547900,  0.025659050200, -0.022782491400},
   { -0.002299519300, -0.000983084300,  0.002341848700, -0.001227918200,
     -0.002164204600,  0.009821204200, -0.028826112600,  0.109260641300,
-     0.275924294400, -0.087035380900,  0.057163011400, -0.043556341700,
-     0.035112146900, -0.029306783100,  0.025762575100, -0.022884324300},
+    0.275924294400, -0.087035380900,  0.057163011400, -0.043556341700,
+    0.035112146900, -0.029306783100,  0.025762575100, -0.022884324300},
   { -0.002318342500, -0.000951184900,  0.002311491600, -0.001207356700,
     -0.002190231800,  0.009858208200, -0.028883563000,  0.109614224000,
-     0.275705340200, -0.087183966300,  0.057307956100, -0.043694747100,
-     0.035236477300, -0.029428661900,  0.025877315200, -0.022977857000},
+    0.275705340200, -0.087183966300,  0.057307956100, -0.043694747100,
+    0.035236477300, -0.029428661900,  0.025877315200, -0.022977857000},
   { -0.002343785600, -0.000924936400,  0.002290080300, -0.001177431500,
     -0.002211532800,  0.009886431100, -0.028949989000,  0.109957830700,
-     0.275481985700, -0.087329639600,  0.057457528900, -0.043828523400,
-     0.035363736500, -0.029541639900,  0.025980032600, -0.023071295000},
+    0.275481985700, -0.087329639600,  0.057457528900, -0.043828523400,
+    0.035363736500, -0.029541639900,  0.025980032600, -0.023071295000},
   { -0.002363396600, -0.000891896000,  0.002258762900, -0.001155997700,
     -0.002237980900,  0.009918196800, -0.029019980500,  0.110312292600,
-     0.275252475700, -0.087485388500,  0.057598214300, -0.043965976300,
-     0.035494092700, -0.029663348400,  0.026080272800, -0.023164098500},
+    0.275252475700, -0.087485388500,  0.057598214300, -0.043965976300,
+    0.035494092700, -0.029663348400,  0.026080272800, -0.023164098500},
   { -0.002389152800, -0.000865190200,  0.002236651900, -0.001124397300,
     -0.002266843400,  0.009941856300, -0.029083534200,  0.110654857700,
-     0.275027780000, -0.087628679600,  0.057741079400, -0.044111852100,
-     0.035620616000, -0.029776226200,  0.026184102500, -0.023265168600},
+    0.275027780000, -0.087628679600,  0.057741079400, -0.044111852100,
+    0.035620616000, -0.029776226200,  0.026184102500, -0.023265168600},
   { -0.002409751900, -0.000831096900,  0.002203852900, -0.001101449700,
     -0.002295711000,  0.009982935500, -0.029157146400,  0.111004330000,
-     0.274797647300, -0.087777694100,  0.057893310100, -0.044247467300,
-     0.035750612400, -0.029893238400,  0.026296883500, -0.023356224600},
+    0.274797647300, -0.087777694100,  0.057893310100, -0.044247467300,
+    0.035750612400, -0.029893238400,  0.026296883500, -0.023356224600},
   { -0.002436583600, -0.000809275400,  0.002174932100, -0.001065376500,
     -0.002322951600,  0.010016783300, -0.029228839400,  0.111361951300,
-     0.274567466000, -0.087919930200,  0.058025057300, -0.044378805200,
-     0.035875683000, -0.030010656200,  0.026393710400, -0.023446642300},
+    0.274567466000, -0.087919930200,  0.058025057300, -0.044378805200,
+    0.035875683000, -0.030010656200,  0.026393710400, -0.023446642300},
   { -0.002458072800, -0.000774072300,  0.002140548500, -0.001040420000,
     -0.002353097400,  0.010052135800, -0.029301943900,  0.111721745400,
-     0.274333594900, -0.088052895500,  0.058159209800, -0.044509951300,
-     0.036000215000, -0.030121514300,  0.026496227300, -0.023547531800},
+    0.274333594900, -0.088052895500,  0.058159209800, -0.044509951300,
+    0.036000215000, -0.030121514300,  0.026496227300, -0.023547531800},
   { -0.002486798400, -0.000743082100,  0.002107901300, -0.001010435600,
     -0.002377569500,  0.010090405600, -0.029366888100,  0.112076957700,
-     0.274096422800, -0.088200445900,  0.058300810100, -0.044638462800,
-     0.036123651800, -0.030232021100,  0.026596958900, -0.023639414500},
+    0.274096422800, -0.088200445900,  0.058300810100, -0.044638462800,
+    0.036123651800, -0.030232021100,  0.026596958900, -0.023639414500},
   { -0.002509178900, -0.000707489700,  0.002079209800, -0.000979178500,
     -0.002412292800,  0.010130406600, -0.029450197300,  0.112436237300,
-     0.273857995500, -0.088329074400,  0.058431854000, -0.044767731000,
-     0.036247749400, -0.030349857900,  0.026701008800, -0.023725485500},
+    0.273857995500, -0.088329074400,  0.058431854000, -0.044767731000,
+    0.036247749400, -0.030349857900,  0.026701008800, -0.023725485500},
   { -0.002538546200, -0.000675641700,  0.002045354700, -0.000947146600,
     -0.002444944300,  0.010165016900, -0.029513195500,  0.112791388300,
-     0.273618006800, -0.088473828000,  0.058572790800, -0.044902786100,
-     0.036367072300, -0.030457501700,  0.026799344000, -0.023815374100},
+    0.273618006800, -0.088473828000,  0.058572790800, -0.044902786100,
+    0.036367072300, -0.030457501700,  0.026799344000, -0.023815374100},
   { -0.002562081700, -0.000638597900,  0.002015094700, -0.000913965300,
     -0.002481943700,  0.010207398600, -0.029598886400,  0.113154412600,
-     0.273374591600, -0.088603102200,  0.058693934100, -0.045025119300,
-     0.036484791400, -0.030563119800,  0.026898455900, -0.023913083300},
+    0.273374591600, -0.088603102200,  0.058693934100, -0.045025119300,
+    0.036484791400, -0.030563119800,  0.026898455900, -0.023913083300},
   { -0.002592531600, -0.000611735800,  0.001974049600, -0.000877067200,
     -0.002513122700,  0.010252711500, -0.029676327000,  0.113513193200,
-     0.273125908800, -0.088732072900,  0.058832779800, -0.045150554000,
-     0.036606443900, -0.030679000400,  0.026993402700, -0.024001590900},
+    0.273125908800, -0.088732072900,  0.058832779800, -0.045150554000,
+    0.036606443900, -0.030679000400,  0.026993402700, -0.024001590900},
   { -0.002617432700, -0.000572476600,  0.001934940900, -0.000846562800,
     -0.002549947700,  0.010301351000, -0.029750846500,  0.113886584200,
-     0.272881898500, -0.088859686000,  0.058953274300, -0.045271977200,
-     0.036723589400, -0.030784892400,  0.027097712600, -0.024087333600},
+    0.272881898500, -0.088859686000,  0.058953274300, -0.045271977200,
+    0.036723589400, -0.030784892400,  0.027097712600, -0.024087333600},
   { -0.002648556200, -0.000539287700,  0.001905685000, -0.000806920200,
     -0.002588198100,  0.010335223100, -0.029830210100,  0.114246195000,
-     0.272637989000, -0.088988209700,  0.059082508900, -0.045398291800,
-     0.036835959600, -0.030886948300,  0.027193422300, -0.024182088200},
+    0.272637989000, -0.088988209700,  0.059082508900, -0.045398291800,
+    0.036835959600, -0.030886948300,  0.027193422300, -0.024182088200},
   { -0.002675426700, -0.000497529300,  0.001863568800, -0.000773306300,
     -0.002628339500,  0.010387943600, -0.029915068400,  0.114620841300,
-     0.272380972500, -0.089107334300,  0.059206370700, -0.045521223000,
-     0.036954725600, -0.031000132500,  0.027286742200, -0.024270058800},
+    0.272380972500, -0.089107334300,  0.059206370700, -0.045521223000,
+    0.036954725600, -0.031000132500,  0.027286742200, -0.024270058800},
   { -0.002708812100, -0.000461001300,  0.001824188800, -0.000735439500,
     -0.002661448300,  0.010435538400, -0.029994677500,  0.114983831800,
-     0.272129953900, -0.089228688900,  0.059329528700, -0.045634938700,
-     0.037065976700, -0.031100796100,  0.027379891900, -0.024355993600},
+    0.272129953900, -0.089228688900,  0.059329528700, -0.045634938700,
+    0.037065976700, -0.031100796100,  0.027379891900, -0.024355993600},
   { -0.002735490700, -0.000419849000,  0.001788462900, -0.000689215900,
     -0.002707124200,  0.010482924400, -0.030075860600,  0.115356267200,
-     0.271872904900, -0.089354351300,  0.059449185200, -0.045758252600,
-     0.037192230500, -0.031210219100,  0.027478273400, -0.024437594700},
+    0.271872904900, -0.089354351300,  0.059449185200, -0.045758252600,
+    0.037192230500, -0.031210219100,  0.027478273400, -0.024437594700},
   { -0.002768719300, -0.000389873200,  0.001744376300, -0.000654868000,
     -0.002747163000,  0.010528906800, -0.030164681700,  0.115727569700,
-     0.271612337400, -0.089466219000,  0.059565965700, -0.045873231900,
-     0.037295135500, -0.031304965400,  0.027568162200, -0.024528121700},
+    0.271612337400, -0.089466219000,  0.059565965700, -0.045873231900,
+    0.037295135500, -0.031304965400,  0.027568162200, -0.024528121700},
   { -0.002798079400, -0.000344868200,  0.001697477500, -0.000608943300,
     -0.002794808000,  0.010579370800, -0.030249393200,  0.116105596800,
-     0.271346326500, -0.089576437400,  0.059689822100, -0.045986571500,
-     0.037406419500, -0.031405176100,  0.027660621000, -0.024614179100},
+    0.271346326500, -0.089576437400,  0.059689822100, -0.045986571500,
+    0.037406419500, -0.031405176100,  0.027660621000, -0.024614179100},
   { -0.002834574300, -0.000305400500,  0.001661742100, -0.000568717900,
     -0.002840569000,  0.010637555700, -0.030338939200,  0.116487577100,
-     0.271082832700, -0.089682984500,  0.059794346400, -0.046095149100,
-     0.037513479000, -0.031508865800,  0.027746587900, -0.024696294000},
+    0.271082832700, -0.089682984500,  0.059794346400, -0.046095149100,
+    0.037513479000, -0.031508865800,  0.027746587900, -0.024696294000},
   { -0.002863090600, -0.000261546500,  0.001616196800, -0.000524060200,
     -0.002886726400,  0.010686302700, -0.030421218200,  0.116863187300,
-     0.270824597700, -0.089796024200,  0.059912731300, -0.046212603400,
-     0.037619046000, -0.031606514800,  0.027845171900, -0.024784044100},
+    0.270824597700, -0.089796024200,  0.059912731300, -0.046212603400,
+    0.037619046000, -0.031606514800,  0.027845171900, -0.024784044100},
   { -0.002900989400, -0.000219487800,  0.001570599400, -0.000479303700,
     -0.002927315300,  0.010742257600, -0.030515733500,  0.117240864200,
-     0.270554278500, -0.089907403100,  0.060028342200, -0.046320155000,
-     0.037725963100, -0.031710668200,  0.027931517600, -0.024865514300},
+    0.270554278500, -0.089907403100,  0.060028342200, -0.046320155000,
+    0.037725963100, -0.031710668200,  0.027931517600, -0.024865514300},
   { -0.002939110000, -0.000177806100,  0.001531519200, -0.000428383200,
     -0.002978759900,  0.010796286200, -0.030603272900,  0.117623618000,
-     0.270285855600, -0.090009416000,  0.060137232300, -0.046429802200,
-     0.037824453100, -0.031801130600,  0.028016349500, -0.024945375600},
+    0.270285855600, -0.090009416000,  0.060137232300, -0.046429802200,
+    0.037824453100, -0.031801130600,  0.028016349500, -0.024945375600},
   { -0.002971404300, -0.000129367200,  0.001481455800, -0.000385645100,
     -0.003028924400,  0.010859951400, -0.030704739700,  0.118009163200,
-     0.270004747300, -0.090110535200,  0.060237393200, -0.046534338000,
-     0.037928400600, -0.031903279600,  0.028108476700, -0.025021832500},
+    0.270004747300, -0.090110535200,  0.060237393200, -0.046534338000,
+    0.037928400600, -0.031903279600,  0.028108476700, -0.025021832500},
   { -0.003010799000, -0.000085506800,  0.001433304900, -0.000337127500,
     -0.003080051000,  0.010914101700, -0.030792208700,  0.118393292300,
-     0.269732724800, -0.090208244500,  0.060342765300, -0.046633690800,
-     0.038028249000, -0.031994340000,  0.028194618000, -0.025109965600},
+    0.269732724800, -0.090208244500,  0.060342765300, -0.046633690800,
+    0.038028249000, -0.031994340000,  0.028194618000, -0.025109965600},
   { -0.003043352800, -0.000043286100,  0.001376710400, -0.000282666000,
     -0.003129872000,  0.010978749000, -0.030894968100,  0.118781343500,
-     0.269453183200, -0.090299385000,  0.060444527700, -0.046738202500,
-     0.038128681100, -0.032076686500,  0.028274348700, -0.025185554200},
+    0.269453183200, -0.090299385000,  0.060444527700, -0.046738202500,
+    0.038128681100, -0.032076686500,  0.028274348700, -0.025185554200},
   { -0.003084097600,  0.000001652200,  0.001334856800, -0.000235221900,
     -0.003190341200,  0.011040895200, -0.030996156800,  0.119168850700,
-     0.269167050700, -0.090401757000,  0.060542535700, -0.046832398400,
-     0.038225851900, -0.032173379200,  0.028361984300, -0.025257897700},
+    0.269167050700, -0.090401757000,  0.060542535700, -0.046832398400,
+    0.038225851900, -0.032173379200,  0.028361984300, -0.025257897700},
   { -0.003118681600,  0.000052969800,  0.001280388200, -0.000180668100,
     -0.003240720400,  0.011105920600, -0.031092550300,  0.119563660200,
-     0.268880111900, -0.090484913100,  0.060629970500, -0.046933803100,
-     0.038315834400, -0.032256880200,  0.028442350400, -0.025341820300},
+    0.268880111900, -0.090484913100,  0.060629970500, -0.046933803100,
+    0.038315834400, -0.032256880200,  0.028442350400, -0.025341820300},
   { -0.003162561900,  0.000102202900,  0.001226211900, -0.000125395300,
     -0.003299906800,  0.011175918200, -0.031191167100,  0.119959312000,
-     0.268593285800, -0.090577351800,  0.060731151800, -0.047029530200,
-     0.038413339800, -0.032353226800,  0.028521763200, -0.025418085200},
+    0.268593285800, -0.090577351800,  0.060731151800, -0.047029530200,
+    0.038413339800, -0.032353226800,  0.028521763200, -0.025418085200},
   { -0.003199268400,  0.000156014300,  0.001168676900, -0.000066919400,
     -0.003361438800,  0.011241308700, -0.031296168100,  0.120353034900,
-     0.268302409700, -0.090656855500,  0.060822958600, -0.047124517500,
-     0.038499397300, -0.032433214400,  0.028598264500, -0.025491004800},
+    0.268302409700, -0.090656855500,  0.060822958600, -0.047124517500,
+    0.038499397300, -0.032433214400,  0.028598264500, -0.025491004800},
   { -0.003242762700,  0.000204180800,  0.001122626500, -0.000008679700,
     -0.003414828400,  0.011309574900, -0.031402432600,  0.120754514200,
-     0.268015321100, -0.090745034900,  0.060911299100, -0.047212175500,
-     0.038596766500, -0.032520166800,  0.028679119400, -0.025558748500},
+    0.268015321100, -0.090745034900,  0.060911299100, -0.047212175500,
+    0.038596766500, -0.032520166800,  0.028679119400, -0.025558748500},
   { -0.003280931700,  0.000259812600,  0.001063521800,  0.000044884500,
     -0.003483800400,  0.011387738000, -0.031508074100,  0.121152150800,
-     0.267711413800, -0.090822485700,  0.061000604600, -0.047304659400,
-     0.038681603800, -0.032600073600,  0.028755960800, -0.025638962100},
+    0.267711413800, -0.090822485700,  0.061000604600, -0.047304659400,
+    0.038681603800, -0.032600073600,  0.028755960800, -0.025638962100},
   { -0.003327797000,  0.000312623600,  0.001004973300,  0.000105206400,
     -0.003548028100,  0.011456238300, -0.031616336600,  0.121558234900,
-     0.267415888400, -0.090894622700,  0.061086213100, -0.047387160100,
-     0.038767569400, -0.032686245400,  0.028827467700, -0.025709333200},
+    0.267415888400, -0.090894622700,  0.061086213100, -0.047387160100,
+    0.038767569400, -0.032686245400,  0.028827467700, -0.025709333200},
   { -0.003367277200,  0.000369742900,  0.000943784400,  0.000167921300,
     -0.003614337200,  0.011526657700, -0.031726469200,  0.121966313400,
-     0.267117532200, -0.090972059800,  0.061166435400, -0.047473566900,
-     0.038846825400, -0.032761339500,  0.028907556300, -0.025775412400},
+    0.267117532200, -0.090972059800,  0.061166435400, -0.047473566900,
+    0.038846825400, -0.032761339500,  0.028907556300, -0.025775412400},
   { -0.003415490600,  0.000424433200,  0.000883119400,  0.000230091300,
     -0.003674451700,  0.011609993400, -0.031842624600,  0.122364892800,
-     0.266807297400, -0.091041565400,  0.061249320900, -0.047553631700,
-     0.038930581400, -0.032847149600,  0.028979555600, -0.025852313500},
+    0.266807297400, -0.091041565400,  0.061249320900, -0.047553631700,
+    0.038930581400, -0.032847149600,  0.028979555600, -0.025852313500},
   { -0.003456266600,  0.000475867100,  0.000822340300,  0.000303040600,
     -0.003749535300,  0.011688497100, -0.031960441800,  0.122782327100,
-     0.266496871700, -0.091106317700,  0.061319593900, -0.047633284300,
-     0.039010819600, -0.032912027100,  0.029044984700, -0.025916736900},
+    0.266496871700, -0.091106317700,  0.061319593900, -0.047633284300,
+    0.039010819600, -0.032912027100,  0.029044984700, -0.025916736900},
   { -0.003505638300,  0.000531731300,  0.000760093900,  0.000367747300,
     -0.003818881300,  0.011769073200, -0.032068754900,  0.123192522800,
-     0.266191486300, -0.091168632300,  0.061398326100, -0.047717396700,
-     0.039088687600, -0.032993298700,  0.029119110500, -0.025979190500},
+    0.266191486300, -0.091168632300,  0.061398326100, -0.047717396700,
+    0.039088687600, -0.032993298700,  0.029119110500, -0.025979190500},
   { -0.003550040600,  0.000594828700,  0.000692495800,  0.000430866400,
     -0.003898279700,  0.011852192100, -0.032198029300,  0.123611901100,
-     0.265868569100, -0.091231578000,  0.061464903000, -0.047784155800,
-     0.039161387400, -0.033061913700,  0.029187959100, -0.026053040700},
+    0.265868569100, -0.091231578000,  0.061464903000, -0.047784155800,
+    0.039161387400, -0.033061913700,  0.029187959100, -0.026053040700},
   { -0.003602065500,  0.000653931700,  0.000626385600,  0.000499981800,
     -0.003972488800,  0.011937971200, -0.032311531400,  0.124029148500,
-     0.265553269700, -0.091283444100,  0.061535070700, -0.047860778200,
-     0.039232475500, -0.033136595000,  0.029249328200, -0.026115105800},
+    0.265553269700, -0.091283444100,  0.061535070700, -0.047860778200,
+    0.039232475500, -0.033136595000,  0.029249328200, -0.026115105800},
   { -0.003647327300,  0.000718027400,  0.000556866100,  0.000572266200,
     -0.004049722900,  0.012020034000, -0.032439785200,  0.124448392000,
-     0.265233959000, -0.091339033000,  0.061597170100, -0.047925510600,
-     0.039309873100, -0.033199111900,  0.029320278800, -0.026173704500},
+    0.265233959000, -0.091339033000,  0.061597170100, -0.047925510600,
+    0.039309873100, -0.033199111900,  0.029320278800, -0.026173704500},
   { -0.003702105200,  0.000780101600,  0.000494443100,  0.000649052900,
     -0.004123793300,  0.012117690200, -0.032570746200,  0.124873224300,
-     0.264900163300, -0.091383468500,  0.061659588400, -0.047995635500,
-     0.039375017600, -0.033269511800,  0.029378736300, -0.026232862100},
+    0.264900163300, -0.091383468500,  0.061659588400, -0.047995635500,
+    0.039375017600, -0.033269511800,  0.029378736300, -0.026232862100},
   { -0.003755895200,  0.000841447500,  0.000425856500,  0.000720904000,
     -0.004201204700,  0.012206896600, -0.032687548300,  0.125295550200,
-     0.264577145700, -0.091434512400,  0.061726016900, -0.048060026200,
-     0.039436382500, -0.033329672000,  0.029438925700, -0.026300063600},
+    0.264577145700, -0.091434512400,  0.061726016900, -0.048060026200,
+    0.039436382500, -0.033329672000,  0.029438925700, -0.026300063600},
   { -0.003803350600,  0.000908270600,  0.000353021900,  0.000796996500,
     -0.004282623500,  0.012293251100, -0.032819571200,  0.125720795200,
-     0.264247652100, -0.091479732400,  0.061780340600, -0.048117964600,
-     0.039508550400, -0.033394973500,  0.029502101900, -0.026353317400},
+    0.264247652100, -0.091479732400,  0.061780340600, -0.048117964600,
+    0.039508550400, -0.033394973500,  0.029502101900, -0.026353317400},
   { -0.003861457500,  0.000974841200,  0.000278697700,  0.000875358500,
     -0.004367158600,  0.012390643600, -0.032952152900,  0.126156834400,
-     0.263910245800, -0.091525806900,  0.061834912800, -0.048182001300,
-     0.039568933000, -0.033460776600,  0.029556965600, -0.026409434000},
+    0.263910245800, -0.091525806900,  0.061834912800, -0.048182001300,
+    0.039568933000, -0.033460776600,  0.029556965600, -0.026409434000},
   { -0.003912507000,  0.001045891900,  0.000200514600,  0.000957623400,
     -0.004455578400,  0.012491700600, -0.033087770300,  0.126588986000,
-     0.263570751000, -0.091552786700,  0.061883959100, -0.048240646500,
-     0.039624070900, -0.033515051500,  0.029612627700, -0.026473220500},
+    0.263570751000, -0.091552786700,  0.061883959100, -0.048240646500,
+    0.039624070900, -0.033515051500,  0.029612627700, -0.026473220500},
   { -0.003970051000,  0.001111797200,  0.000126628900,  0.001035742900,
     -0.004539881200,  0.012588312500, -0.033218503400,  0.127016546500,
-     0.263234790300, -0.091590421200,  0.061932964300, -0.048301375000,
-     0.039688914300, -0.033575106100,  0.029670790800, -0.026522150600},
+    0.263234790300, -0.091590421200,  0.061932964300, -0.048301375000,
+    0.039688914300, -0.033575106100,  0.029670790800, -0.026522150600},
   { -0.004024302800,  0.001186615500,  0.000044341700,  0.001122432500,
     -0.004633631600,  0.012695304100, -0.033360614900,  0.127463754300,
-     0.262888924200, -0.091617477500,  0.061978479200, -0.048340055700,
-     0.039737596900, -0.033623583100,  0.029720893300, -0.026573902300},
+    0.262888924200, -0.091617477500,  0.061978479200, -0.048340055700,
+    0.039737596900, -0.033623583100,  0.029720893300, -0.026573902300},
   { -0.004085082700,  0.001256538900, -0.000034034800,  0.001205478700,
     -0.004723290400,  0.012797985100, -0.033498033100,  0.127907136500,
-     0.262539269000, -0.091650848600,  0.062022592400, -0.048395229300,
-     0.039790688300, -0.033684178100,  0.029779644500, -0.026631089400},
+    0.262539269000, -0.091650848600,  0.062022592400, -0.048395229300,
+    0.039790688300, -0.033684178100,  0.029779644500, -0.026631089400},
   { -0.004139947900,  0.001331802200, -0.000110045000,  0.001297966400,
     -0.004821497300,  0.012908660300, -0.033643014900,  0.128351507600,
-     0.262181947100, -0.091667171300,  0.062052525700, -0.048439828000,
-     0.039840829600, -0.033723634100,  0.029823200100, -0.026677369100},
+    0.262181947100, -0.091667171300,  0.062052525700, -0.048439828000,
+    0.039840829600, -0.033723634100,  0.029823200100, -0.026677369100},
   { -0.004204208100,  0.001405618600, -0.000193120700,  0.001386785000,
     -0.004924853700,  0.013014623800, -0.033792097000,  0.128796851700,
-     0.261832669700, -0.091689502800,  0.062095944700, -0.048484357900,
-     0.039885777900, -0.033776306400,  0.029866954600, -0.026723942900},
+    0.261832669700, -0.091689502800,  0.062095944700, -0.048484357900,
+    0.039885777900, -0.033776306400,  0.029866954600, -0.026723942900},
   { -0.004260417800,  0.001483063100, -0.000278806000,  0.001477736900,
     -0.005023257700,  0.013125955200, -0.033937289100,  0.129242600400,
-     0.261471099700, -0.091701578900,  0.062122650400, -0.048518010200,
-     0.039936894900, -0.033824115200,  0.029914914700, -0.026764892400},
+    0.261471099700, -0.091701578900,  0.062122650400, -0.048518010200,
+    0.039936894900, -0.033824115200,  0.029914914700, -0.026764892400},
   { -0.004327008900,  0.001552956500, -0.000370001900,  0.001573784600,
     -0.005126787000,  0.013243154600, -0.034089428900,  0.129704208100,
-     0.261097309800, -0.091709577400,  0.062145158100, -0.048554302300,
-     0.039972655000, -0.033861618500,  0.029956756400, -0.026817551300},
+    0.261097309800, -0.091709577400,  0.062145158100, -0.048554302300,
+    0.039972655000, -0.033861618500,  0.029956756400, -0.026817551300},
   { -0.004387061400,  0.001634796200, -0.000460660800,  0.001670082700,
     -0.005230956800,  0.013361670100, -0.034249709200,  0.130162737200,
-     0.260730415900, -0.091714875900,  0.062174189600, -0.048586130300,
-     0.040006010900, -0.033904910800,  0.029992822400, -0.026858101400},
+    0.260730415900, -0.091714875900,  0.062174189600, -0.048586130300,
+    0.040006010900, -0.033904910800,  0.029992822400, -0.026858101400},
   { -0.004454372600,  0.001712493000, -0.000548375700,  0.001763978200,
     -0.005332669200,  0.013476831400, -0.034399268600,  0.130622438100,
-     0.260362390800, -0.091718251200,  0.062194230500, -0.048621392100,
-     0.040048640600, -0.033945864700,  0.030035043200, -0.026894698800},
+    0.260362390800, -0.091718251200,  0.062194230500, -0.048621392100,
+    0.040048640600, -0.033945864700,  0.030035043200, -0.026894698800},
   { -0.004523786800,  0.001792774700, -0.000639267000,  0.001868519600,
     -0.005434268500,  0.013594098000, -0.034558763500,  0.131081652600,
-     0.259993523100, -0.091727265200,  0.062216113000, -0.048648464400,
-     0.040076906100, -0.033977399000,  0.030072123900, -0.026942508300},
+    0.259993523100, -0.091727265200,  0.062216113000, -0.048648464400,
+    0.040076906100, -0.033977399000,  0.030072123900, -0.026942508300},
   { -0.004586585500,  0.001877974400, -0.000734060100,  0.001970438800,
     -0.005551787400,  0.013714416500, -0.034721796900,  0.131545261000,
-     0.259617106900, -0.091722403400,  0.062229403200, -0.048678076000,
-     0.040115213700, -0.034014280800,  0.030111284500, -0.026976072400},
+    0.259617106900, -0.091722403400,  0.062229403200, -0.048678076000,
+    0.040115213700, -0.034014280800,  0.030111284500, -0.026976072400},
   { -0.004659557800,  0.001962511100, -0.000829862900,  0.002073337300,
     -0.005663538600,  0.013840666600, -0.034882878100,  0.132019240400,
-     0.259230513500, -0.091706871400,  0.062239873700, -0.048693489400,
-     0.040133308800, -0.034036485500,  0.030138847000, -0.027009514400},
+    0.259230513500, -0.091706871400,  0.062239873700, -0.048693489400,
+    0.040133308800, -0.034036485500,  0.030138847000, -0.027009514400},
   { -0.004725695500,  0.002051981700, -0.000929347100,  0.002180035700,
     -0.005779960100,  0.013979073500, -0.035051605900,  0.132491612100,
-     0.258836019600, -0.091701376100,  0.062241192800, -0.048705371900,
-     0.040165553900, -0.034068442600,  0.030166932700, -0.027050861400},
+    0.258836019600, -0.091701376100,  0.062241192800, -0.048705371900,
+    0.040165553900, -0.034068442600,  0.030166932700, -0.027050861400},
   { -0.004799901300,  0.002138024300, -0.001026848500,  0.002284840400,
     -0.005893861400,  0.014108040800, -0.035222237300,  0.132964854500,
-     0.258446283900, -0.091682539100,  0.062249560500, -0.048718972600,
-     0.040182871900, -0.034098388500,  0.030199249900, -0.027078741500},
+    0.258446283900, -0.091682539100,  0.062249560500, -0.048718972600,
+    0.040182871900, -0.034098388500,  0.030199249900, -0.027078741500},
   { -0.004870595400,  0.002232582100, -0.001132590800,  0.002399200400,
     -0.006025214200,  0.014243272400, -0.035401209000,  0.133455517400,
-     0.258048229900, -0.091653939600,  0.062241715900, -0.048729769800,
-     0.040203792100, -0.034111888100,  0.030220920600, -0.027107457100},
+    0.258048229900, -0.091653939600,  0.062241715900, -0.048729769800,
+    0.040203792100, -0.034111888100,  0.030220920600, -0.027107457100},
   { -0.004947156000,  0.002321555700, -0.001233847400,  0.002515774700,
     -0.006140611400,  0.014382400400, -0.035570772900,  0.133930500000,
-     0.257654713000, -0.091637493400,  0.062242822500, -0.048738434100,
-     0.040216442600, -0.034137799500,  0.030242570200, -0.027143371600},
+    0.257654713000, -0.091637493400,  0.062242822500, -0.048738434100,
+    0.040216442600, -0.034137799500,  0.030242570200, -0.027143371600},
   { -0.005016493400,  0.002414767800, -0.001338252600,  0.002627935400,
     -0.006262314300,  0.014519076200, -0.035748887100,  0.134413490000,
-     0.257250575700, -0.091604648700,  0.062239840100, -0.048743282000,
-     0.040233396200, -0.034157300200,  0.030266800800, -0.027164826500},
+    0.257250575700, -0.091604648700,  0.062239840100, -0.048743282000,
+    0.040233396200, -0.034157300200,  0.030266800800, -0.027164826500},
   { -0.005099278600,  0.002511020600, -0.001447380500,  0.002746842300,
     -0.006399204100,  0.014660767100, -0.035934332400,  0.134912928100,
-     0.256840267600, -0.091570002800,  0.062216233800, -0.048739644700,
-     0.040234336300, -0.034163561400,  0.030281865200, -0.027187650100},
+    0.256840267600, -0.091570002800,  0.062216233800, -0.048739644700,
+    0.040234336300, -0.034163561400,  0.030281865200, -0.027187650100},
   { -0.005170558100,  0.002606541400, -0.001554671000,  0.002862380100,
     -0.006525103100,  0.014809292700, -0.036112846200,  0.135398740700,
-     0.256430891500, -0.091531009000,  0.062208163600, -0.048740138000,
-     0.040247773900, -0.034180802400,  0.030304366300, -0.027215455700},
+    0.256430891500, -0.091531009000,  0.062208163600, -0.048740138000,
+    0.040247773900, -0.034180802400,  0.030304366300, -0.027215455700},
   { -0.005254922300,  0.002704732600, -0.001666038900,  0.002983502200,
     -0.006664576800,  0.014954266000, -0.036308554600,  0.135898611300,
-     0.256016406700, -0.091492283600,  0.062189717900, -0.048730903800,
-     0.040245240000, -0.034192418000,  0.030314184400, -0.027233909600},
+    0.256016406700, -0.091492283600,  0.062189717900, -0.048730903800,
+    0.040245240000, -0.034192418000,  0.030314184400, -0.027233909600},
   { -0.005330421900,  0.002805447300, -0.001779622200,  0.003113745000,
     -0.006794821100,  0.015108636900, -0.036493663300,  0.136392728600,
-     0.255595532100, -0.091449297700,  0.062167723200, -0.048720314000,
-     0.040247715100, -0.034191966500,  0.030331001200, -0.027248039400},
+    0.255595532100, -0.091449297700,  0.062167723200, -0.048720314000,
+    0.040247715100, -0.034191966500,  0.030331001200, -0.027248039400},
   { -0.005418047900,  0.002907510500, -0.001896019300,  0.003240948000,
     -0.006941296500,  0.015268001700, -0.036685011500,  0.136902218400,
-     0.255169264700, -0.091390047400,  0.062133585500, -0.048706450000,
-     0.040240217600, -0.034199174200,  0.030336692900, -0.027272064200},
+    0.255169264700, -0.091390047400,  0.062133585500, -0.048706450000,
+    0.040240217600, -0.034199174200,  0.030336692900, -0.027272064200},
   { -0.005505373600,  0.003009395700, -0.002011695700,  0.003366480500,
     -0.007078261400,  0.015421720100, -0.036888380700,  0.137411927200,
-     0.254740700000, -0.091336957100,  0.062103176600, -0.048687487200,
-     0.040235929700, -0.034199682900,  0.030337810300, -0.027283556600},
+    0.254740700000, -0.091336957100,  0.062103176600, -0.048687487200,
+    0.040235929700, -0.034199682900,  0.030337810300, -0.027283556600},
   { -0.005585382500,  0.003115541600, -0.002131832000,  0.003504827500,
     -0.007224968800,  0.015582215100, -0.037080250800,  0.137915259700,
-     0.254306086800, -0.091279630400,  0.062069083500, -0.048665013800,
-     0.040221399100, -0.034201654500,  0.030346034000, -0.027291156400},
+    0.254306086800, -0.091279630400,  0.062069083500, -0.048665013800,
+    0.040221399100, -0.034201654500,  0.030346034000, -0.027291156400},
   { -0.005674994900,  0.003220173800, -0.002250865900,  0.003634318300,
     -0.007366427500,  0.015748179900, -0.037284933600,  0.138428727000,
-     0.253871405000, -0.091219627900,  0.062033003000, -0.048649242600,
-     0.040210075200, -0.034189299100,  0.030346059500, -0.027308900300},
+    0.253871405000, -0.091219627900,  0.062033003000, -0.048649242600,
+    0.040210075200, -0.034189299100,  0.030346059500, -0.027308900300},
   { -0.005758700400,  0.003330548600, -0.002375530200,  0.003770118000,
     -0.007521879300,  0.015909567200, -0.037496867100,  0.138949385400,
-     0.253426570300, -0.091143115000,  0.061992180000, -0.048620522900,
-     0.040197728000, -0.034182788700,  0.030348556000, -0.027312476200},
+    0.253426570300, -0.091143115000,  0.061992180000, -0.048620522900,
+    0.040197728000, -0.034182788700,  0.030348556000, -0.027312476200},
   { -0.005852674900,  0.003440460400, -0.002500886900,  0.003906772800,
     -0.007671474500,  0.016084224600, -0.037702515700,  0.139476737000,
-     0.252975093200, -0.091066456400,  0.061940861800, -0.048581744400,
-     0.040168382200, -0.034171796400,  0.030338133100, -0.027314851900},
+    0.252975093200, -0.091066456400,  0.061940861800, -0.048581744400,
+    0.040168382200, -0.034171796400,  0.030338133100, -0.027314851900},
   { -0.005940171600,  0.003555441000, -0.002631162900,  0.004057015800,
     -0.007831507500,  0.016259063300, -0.037917269600,  0.140002708200,
-     0.252522799200, -0.090988640700,  0.061880613500, -0.048547165800,
-     0.040149371300, -0.034151729900,  0.030339624000, -0.027324602000},
+    0.252522799200, -0.090988640700,  0.061880613500, -0.048547165800,
+    0.040149371300, -0.034151729900,  0.030339624000, -0.027324602000},
   { -0.006038006300,  0.003669989500, -0.002761828800,  0.004199685000,
     -0.007987803500,  0.016441338600, -0.038138344000,  0.140535980000,
-     0.252061541300, -0.090901636600,  0.061820252000, -0.048500250500,
-     0.040112744100, -0.034134470700,  0.030324310800, -0.027322408700},
+    0.252061541300, -0.090901636600,  0.061820252000, -0.048500250500,
+    0.040112744100, -0.034134470700,  0.030324310800, -0.027322408700},
   { -0.006128817400,  0.003788978800, -0.002896910300,  0.004355118400,
     -0.008153648900,  0.016622514100, -0.038359180300,  0.141069989900,
-     0.251597538600, -0.090812420800,  0.061758888600, -0.048454321900,
-     0.040084569400, -0.034113893000,  0.030306458400, -0.027317970100},
+    0.251597538600, -0.090812420800,  0.061758888600, -0.048454321900,
+    0.040084569400, -0.034113893000,  0.030306458400, -0.027317970100},
   { -0.006227186400,  0.003904318200, -0.003028595200,  0.004499540800,
     -0.008319159800,  0.016794826900, -0.038581990000,  0.141605434000,
-     0.251131429100, -0.090720594500,  0.061694722300, -0.048405249700,
-     0.040054114300, -0.034091543000,  0.030295722900, -0.027310222200},
+    0.251131429100, -0.090720594500,  0.061694722300, -0.048405249700,
+    0.040054114300, -0.034091543000,  0.030295722900, -0.027310222200},
   { -0.006328397300,  0.004031158500, -0.003168595500,  0.004641928300,
     -0.008476386900,  0.016978639900, -0.038804959500,  0.142142757000,
-     0.250662990700, -0.090633704900,  0.061624954700, -0.048358207200,
-     0.040007213300, -0.034057656100,  0.030276666600, -0.027311829700},
+    0.250662990700, -0.090633704900,  0.061624954700, -0.048358207200,
+    0.040007213300, -0.034057656100,  0.030276666600, -0.027311829700},
   { -0.006423738600,  0.004155528900, -0.003309959300,  0.004804548400,
     -0.008650250700,  0.017168425100, -0.039034846100,  0.142695621300,
-     0.250186846500, -0.090531292600,  0.061551769900, -0.048301646800,
-     0.039969736100, -0.034029532000,  0.030260492100, -0.027299867000},
+    0.250186846500, -0.090531292600,  0.061551769900, -0.048301646800,
+    0.039969736100, -0.034029532000,  0.030260492100, -0.027299867000},
   { -0.006528665100,  0.004278722600, -0.003450970500,  0.004959568700,
     -0.008827892900,  0.017361477800, -0.039267480800,  0.143244619700,
-     0.249702348700, -0.090420060400,  0.061470769900, -0.048237360200,
-     0.039925613200, -0.033995062800,  0.030230693900, -0.027285607600},
+    0.249702348700, -0.090420060400,  0.061470769900, -0.048237360200,
+    0.039925613200, -0.033995062800,  0.030230693900, -0.027285607600},
   { -0.006624732800,  0.004404173000, -0.003593946300,  0.005123920600,
     -0.009003806900,  0.017553760300, -0.039499198000,  0.143792799000,
-     0.249217705300, -0.090309454700,  0.061398382500, -0.048170611400,
-     0.039872247300, -0.033963765200,  0.030211452200, -0.027278748100},
+    0.249217705300, -0.090309454700,  0.061398382500, -0.048170611400,
+    0.039872247300, -0.033963765200,  0.030211452200, -0.027278748100},
   { -0.006733019100,  0.004530986400, -0.003739016800,  0.005283093400,
     -0.009178450500,  0.017763535800, -0.039744969800,  0.144353453000,
-     0.248736735600, -0.090189496400,  0.061311021700, -0.048108842000,
-     0.039820545400, -0.033924139600,  0.030177475500, -0.027261029400},
+    0.248736735600, -0.090189496400,  0.061311021700, -0.048108842000,
+    0.039820545400, -0.033924139600,  0.030177475500, -0.027261029400},
   { -0.006833632200,  0.004661933300, -0.003888052900,  0.005454760700,
     -0.009362610000,  0.017964244700, -0.039985659800,  0.144912324100,
-     0.248238004700, -0.090072272700,  0.061214521700, -0.048032095800,
-     0.039764687300, -0.033871892800,  0.030150552400, -0.027238906300},
+    0.248238004700, -0.090072272700,  0.061214521700, -0.048032095800,
+    0.039764687300, -0.033871892800,  0.030150552400, -0.027238906300},
   { -0.006944808900,  0.004792587900, -0.004037760400,  0.005619673100,
     -0.009551266900,  0.018169204500, -0.040230608100,  0.145484672100,
-     0.247735896000, -0.089941342900,  0.061116139800, -0.047952151500,
-     0.039706664600, -0.033825489900,  0.030111200300, -0.027225498800},
+    0.247735896000, -0.089941342900,  0.061116139800, -0.047952151500,
+    0.039706664600, -0.033825489900,  0.030111200300, -0.027225498800},
   { -0.007048709900,  0.004927883500, -0.004199654100,  0.005793881200,
     -0.009738964200,  0.018374848700, -0.040483849800,  0.146046598800,
-     0.247230365400, -0.089816950200,  0.061014854400, -0.047877574700,
-     0.039635751800, -0.033778171100,  0.030078686000, -0.027198514200},
+    0.247230365400, -0.089816950200,  0.061014854400, -0.047877574700,
+    0.039635751800, -0.033778171100,  0.030078686000, -0.027198514200},
   { -0.007165536600,  0.005065305500, -0.004357110300,  0.005967529800,
     -0.009937335800,  0.018590642800, -0.040747877600,  0.146628884600,
-     0.246713790300, -0.089671417900,  0.060903432100, -0.047785728000,
-     0.039566909200, -0.033722116600,  0.030030861700, -0.027169252500},
+    0.246713790300, -0.089671417900,  0.060903432100, -0.047785728000,
+    0.039566909200, -0.033722116600,  0.030030861700, -0.027169252500},
   { -0.007276776700,  0.005196186900, -0.004507476500,  0.006140611400,
     -0.010115702100,  0.018796926000, -0.040992574000,  0.147194377100,
-     0.246211745800, -0.089538068000,  0.060802547900, -0.047694806200,
-     0.039498877900, -0.033667952600,  0.029984769900, -0.027149571000},
+    0.246211745800, -0.089538068000,  0.060802547900, -0.047694806200,
+    0.039498877900, -0.033667952600,  0.029984769900, -0.027149571000},
   { -0.007387874000,  0.005339424900, -0.004670815200,  0.006320666200,
     -0.010320954700,  0.019027766500, -0.041261046500,  0.147782948500,
-     0.245685443800, -0.089383414100,  0.060683139900, -0.047604443400,
-     0.039421896500, -0.033597878400,  0.029942169700, -0.027114750800},
+    0.245685443800, -0.089383414100,  0.060683139900, -0.047604443400,
+    0.039421896500, -0.033597878400,  0.029942169700, -0.027114750800},
   { -0.007510337800,  0.005483782700, -0.004836420600,  0.006511584900,
     -0.010526788500,  0.019252707100, -0.041534516600,  0.148377088500,
-     0.245152841500, -0.089229128400,  0.060553978800, -0.047496635400,
-     0.039330446700, -0.033531679300,  0.029885352000, -0.027077485500},
+    0.245152841500, -0.089229128400,  0.060553978800, -0.047496635400,
+    0.039330446700, -0.033531679300,  0.029885352000, -0.027077485500},
   { -0.007617681800,  0.005622426600, -0.004994838300,  0.006686063700,
     -0.010725673400,  0.019468467400, -0.041789645200,  0.148963171000,
-     0.244635866200, -0.089072585900,  0.060442764900, -0.047403936100,
-     0.039252529900, -0.033469077500,  0.029839930100, -0.027050084400},
+    0.244635866200, -0.089072585900,  0.060442764900, -0.047403936100,
+    0.039252529900, -0.033469077500,  0.029839930100, -0.027050084400},
   { -0.007743458100,  0.005771106400, -0.005173633200,  0.006879940500,
     -0.010936112200,  0.019706338200, -0.042065049900,  0.149561525700,
-     0.244095869900, -0.088910561500,  0.060307776300, -0.047291253700,
-     0.039164455700, -0.033396349900,  0.029777209800, -0.027007624400},
+    0.244095869900, -0.088910561500,  0.060307776300, -0.047291253700,
+    0.039164455700, -0.033396349900,  0.029777209800, -0.027007624400},
   { -0.007858967200,  0.005919845900, -0.005343167000,  0.007067136200,
     -0.011149489200,  0.019938097200, -0.042344891600,  0.150163766200,
-     0.243550330900, -0.088743758000,  0.060167864400, -0.047174313100,
-     0.039073486100, -0.033321568100,  0.029721987600, -0.026962754000},
+    0.243550330900, -0.088743758000,  0.060167864400, -0.047174313100,
+    0.039073486100, -0.033321568100,  0.029721987600, -0.026962754000},
   { -0.007983157300,  0.006074179500, -0.005508592100,  0.007258796500,
     -0.011356666000,  0.020172218500, -0.042616124600,  0.150758631000,
-     0.243020071900, -0.088580561000,  0.060040729000, -0.047067967200,
-     0.038982593900, -0.033247283000,  0.029658101500, -0.026927788900},
+    0.243020071900, -0.088580561000,  0.060040729000, -0.047067967200,
+    0.038982593900, -0.033247283000,  0.029658101500, -0.026927788900},
   { -0.008105130300,  0.006230560200, -0.005687757500,  0.007464989300,
     -0.011579317500,  0.020414981800, -0.042907551700,  0.151374476700,
-     0.242457316000, -0.088387814400,  0.059887026200, -0.046937384600,
-     0.038870631000, -0.033163420100,  0.029594120700, -0.026875984700},
+    0.242457316000, -0.088387814400,  0.059887026200, -0.046937384600,
+    0.038870631000, -0.033163420100,  0.029594120700, -0.026875984700},
   { -0.008233810500,  0.006382559600, -0.005862421100,  0.007658087800,
     -0.011799401200,  0.020662084900, -0.043192258600,  0.151985072700,
-     0.241899935800, -0.088207332900,  0.059743644400, -0.046816052000,
-     0.038766487900, -0.033069335600,  0.029522772700, -0.026834459500},
+    0.241899935800, -0.088207332900,  0.059743644400, -0.046816052000,
+    0.038766487900, -0.033069335600,  0.029522772700, -0.026834459500},
   { -0.008365745600,  0.006538532000, -0.006049746700,  0.007862043900,
     -0.012020887000,  0.020904026300, -0.043490655700,  0.152598080900,
-     0.241345587100, -0.088019183800,  0.059585807800, -0.046682659300,
-     0.038659818300, -0.032980362900,  0.029455506100, -0.026779041200},
+    0.241345587100, -0.088019183800,  0.059585807800, -0.046682659300,
+    0.038659818300, -0.032980362900,  0.029455506100, -0.026779041200},
   { -0.008488941000,  0.006696553400, -0.006230594800,  0.008061850300,
     -0.012248204100,  0.021158865900, -0.043782741400,  0.153217488200,
-     0.240775110200, -0.087826286000,  0.059432200300, -0.046551952900,
-     0.038547619600, -0.032887333800,  0.029375054800, -0.026721976200},
+    0.240775110200, -0.087826286000,  0.059432200300, -0.046551952900,
+    0.038547619600, -0.032887333800,  0.029375054800, -0.026721976200},
   { -0.008621850700,  0.006853393800, -0.006411265100,  0.008270409100,
     -0.012474342700,  0.021413239200, -0.044074457000,  0.153836655200,
-     0.240212813600, -0.087629196300,  0.059265982800, -0.046411553600,
-     0.038435074500, -0.032793916400,  0.029303599100, -0.026672135800},
+    0.240212813600, -0.087629196300,  0.059265982800, -0.046411553600,
+    0.038435074500, -0.032793916400,  0.029303599100, -0.026672135800},
   { -0.008749942500,  0.007017378200, -0.006599218000,  0.008486986700,
     -0.012716522600,  0.021665336500, -0.044383621100,  0.154463623000,
-     0.239631193600, -0.087424514000,  0.059102015300, -0.046272077200,
-     0.038314783100, -0.032692580400,  0.029216641900, -0.026609057300},
+    0.239631193600, -0.087424514000,  0.059102015300, -0.046272077200,
+    0.038314783100, -0.032692580400,  0.029216641900, -0.026609057300},
   { -0.008886221300,  0.007178451900, -0.006792714500,  0.008689620600,
     -0.012948009400,  0.021925282500, -0.044681119300,  0.155098325200,
-     0.239060508500, -0.087219020100,  0.058937803200, -0.046131179100,
-     0.038193255500, -0.032591551900,  0.029137687900, -0.026544650500},
+    0.239060508500, -0.087219020100,  0.058937803200, -0.046131179100,
+    0.038193255500, -0.032591551900,  0.029137687900, -0.026544650500},
   { -0.009017719800,  0.007346605300, -0.006985204400,  0.008911224900,
     -0.013188518400,  0.022195302800, -0.044997006400,  0.155734052300,
-     0.238467918900, -0.087010194700,  0.058751361600, -0.045972814900,
-     0.038064564500, -0.032483676700,  0.029046121000, -0.026486139900},
+    0.238467918900, -0.087010194700,  0.058751361600, -0.045972814900,
+    0.038064564500, -0.032483676700,  0.029046121000, -0.026486139900},
   { -0.009157733600,  0.007511909600, -0.007175647500,  0.009130702800,
     -0.013426053000,  0.022454091700, -0.045304400400,  0.156379869500,
-     0.237883048800, -0.086789838900,  0.058573065700, -0.045819242800,
-     0.037922966700, -0.032373937700,  0.028959823600, -0.026415860100},
+    0.237883048800, -0.086789838900,  0.058573065700, -0.045819242800,
+    0.037922966700, -0.032373937700,  0.028959823600, -0.026415860100},
   { -0.009301621700,  0.007690545500, -0.007377781200,  0.009352140300,
     -0.013667509600,  0.022725762800, -0.045622167700,  0.157018351900,
-     0.237292774000, -0.086564748300,  0.058390364400, -0.045653170900,
-     0.037787266600, -0.032260085200,  0.028870030600, -0.026341359100},
+    0.237292774000, -0.086564748300,  0.058390364400, -0.045653170900,
+    0.037787266600, -0.032260085200,  0.028870030600, -0.026341359100},
   { -0.009438250700,  0.007864516400, -0.007577424400,  0.009574249500,
     -0.013927827700,  0.023004845600, -0.045939676500,  0.157677386600,
-     0.236683031800, -0.086329249600,  0.058190028400, -0.045489825900,
-     0.037645625200, -0.032140124600,  0.028767035600, -0.026274692700},
+    0.236683031800, -0.086329249600,  0.058190028400, -0.045489825900,
+    0.037645625200, -0.032140124600,  0.028767035600, -0.026274692700},
   { -0.009580872000,  0.008033410300, -0.007771917200,  0.009798419700,
     -0.014171124700,  0.023277932300, -0.046258378200,  0.158318052700,
-     0.236087895800, -0.086106607600,  0.058000802500, -0.045327782600,
-     0.037504763700, -0.032022055600,  0.028674126500, -0.026197380900},
+    0.236087895800, -0.086106607600,  0.058000802500, -0.045327782600,
+    0.037504763700, -0.032022055600,  0.028674126500, -0.026197380900},
   { -0.009721894700,  0.008212777900, -0.007978032900,  0.010035312500,
     -0.014428158400,  0.023565684300, -0.046592644400,  0.158984686900,
-     0.235466308600, -0.085859387000,  0.057798739800, -0.045153519300,
-     0.037352645400, -0.031893498200,  0.028563276700, -0.026114821800},
+    0.235466308600, -0.085859387000,  0.057798739800, -0.045153519300,
+    0.037352645400, -0.031893498200,  0.028563276700, -0.026114821800},
   { -0.009871323400,  0.008389875100, -0.008190788700,  0.010268343100,
     -0.014682289800,  0.023850713300, -0.046924112000,  0.159640235100,
-     0.234853461000, -0.085609536100,  0.057593857200, -0.044967652300,
-     0.037198907100, -0.031755365000,  0.028462385300, -0.026039689900},
+    0.234853461000, -0.085609536100,  0.057593857200, -0.044967652300,
+    0.037198907100, -0.031755365000,  0.028462385300, -0.026039689900},
   { -0.010014352200,  0.008571352800, -0.008398761300,  0.010499975700,
     -0.014953382600,  0.024141775800, -0.047261891500,  0.160311566300,
-     0.234232816700, -0.085360140300,  0.057372021900, -0.044785182900,
-     0.037040075600, -0.031620187000,  0.028346554700, -0.025952967800},
+    0.234232816700, -0.085360140300,  0.057372021900, -0.044785182900,
+    0.037040075600, -0.031620187000,  0.028346554700, -0.025952967800},
   { -0.010166260400,  0.008751093900, -0.008606212500,  0.010738923200,
     -0.015213032100,  0.024432461700, -0.047598975500,  0.160982608100,
-     0.233611368900, -0.085101130000,  0.057159516400, -0.044601390800,
-     0.036879378400, -0.031484316000,  0.028237949300, -0.025863505900},
+    0.233611368900, -0.085101130000,  0.057159516400, -0.044601390800,
+    0.036879378400, -0.031484316000,  0.028237949300, -0.025863505900},
   { -0.010321897600,  0.008936015200, -0.008827674600,  0.010981773200,
     -0.015478042100,  0.024729320900, -0.047942312100,  0.161661569100,
-     0.232972740300, -0.084843025700,  0.056938084300, -0.044400455400,
-     0.036712214700, -0.031342439100,  0.028116156900, -0.025780065800},
+    0.232972740300, -0.084843025700,  0.056938084300, -0.044400455400,
+    0.036712214700, -0.031342439100,  0.028116156900, -0.025780065800},
   { -0.010466289100,  0.009127889900, -0.009036452200,  0.011223231400,
     -0.015749030400,  0.025020862500, -0.048280259200,  0.162326124500,
-     0.232344053400, -0.084586151300,  0.056717963000, -0.044210265700,
-     0.036546321900, -0.031201495400,  0.028003222400, -0.025686033500},
+    0.232344053400, -0.084586151300,  0.056717963000, -0.044210265700,
+    0.036546321900, -0.031201495400,  0.028003222400, -0.025686033500},
   { -0.010624282400,  0.009314904500, -0.009252420500,  0.011471920900,
     -0.016019505400,  0.025323118600, -0.048628982800,  0.163011748400,
-     0.231703178600, -0.084306442100,  0.056487091900, -0.044009688500,
-     0.036370261500, -0.031051508400,  0.027873625100, -0.025587973900},
+    0.231703178600, -0.084306442100,  0.056487091900, -0.044009688500,
+    0.036370261500, -0.031051508400,  0.027873625100, -0.025587973900},
   { -0.010770500300,  0.009500718600, -0.009474642200,  0.011715943000,
     -0.016285463700,  0.025620788400, -0.048972602300,  0.163692118500,
-     0.231066748100, -0.084039975100,  0.056259353500, -0.043812102400,
-     0.036197201000, -0.030904859500,  0.027756477200, -0.025499892900},
+    0.231066748100, -0.084039975100,  0.056259353500, -0.043812102400,
+    0.036197201000, -0.030904859500,  0.027756477200, -0.025499892900},
   { -0.010931246800,  0.009691737700, -0.009694581800,  0.011960978000,
     -0.016571687400,  0.025928666900, -0.049336013900,  0.164383311000,
-     0.230408652300, -0.083761749100,  0.056019673100, -0.043603445300,
-     0.036015066800, -0.030749714100,  0.027631903700, -0.025396035700},
+    0.230408652300, -0.083761749100,  0.056019673100, -0.043603445300,
+    0.036015066800, -0.030749714100,  0.027631903700, -0.025396035700},
   { -0.011083143100,  0.009884244000, -0.009924855700,  0.012214065900,
     -0.016847826800,  0.026245793300, -0.049688721100,  0.165075323300,
-     0.229757192500, -0.083479360500,  0.055777843800, -0.043392967400,
-     0.035830313000, -0.030592744600,  0.027496482800, -0.025301408600},
+    0.229757192500, -0.083479360500,  0.055777843800, -0.043392967400,
+    0.035830313000, -0.030592744600,  0.027496482800, -0.025301408600},
   { -0.011247937000,  0.010079726100, -0.010150237400,  0.012473832200,
     -0.017139617800,  0.026560090900, -0.050058620700,  0.165774369800,
-     0.229096722700, -0.083187562800,  0.055525970000, -0.043164809800,
-     0.035639110100, -0.030429438500,  0.027364856000, -0.025191900900},
+    0.229096722700, -0.083187562800,  0.055525970000, -0.043164809800,
+    0.035639110100, -0.030429438500,  0.027364856000, -0.025191900900},
   { -0.011414156900,  0.010285088600, -0.010375664800,  0.012733949200,
     -0.017423150000,  0.026876050100, -0.050421461700,  0.166486654000,
-     0.228431981400, -0.082882457600,  0.055272032600, -0.042943711600,
-     0.035452683100, -0.030260595300,  0.027218999400, -0.025080573500},
+    0.228431981400, -0.082882457600,  0.055272032600, -0.042943711600,
+    0.035452683100, -0.030260595300,  0.027218999400, -0.025080573500},
   { -0.011569876800,  0.010482366800, -0.010611428200,  0.012993995900,
     -0.017715404200,  0.027190997300, -0.050791534100,  0.167187177600,
-     0.227767190600, -0.082585986900,  0.055017316200, -0.042721547900,
-     0.035257818300, -0.030094081500,  0.027084885600, -0.024977875100},
+    0.227767190600, -0.082585986900,  0.055017316200, -0.042721547900,
+    0.035257818300, -0.030094081500,  0.027084885600, -0.024977875100},
   { -0.011735641200,  0.010679052100, -0.010838874100,  0.013255461800,
     -0.018000408400,  0.027517442600, -0.051153628100,  0.167891670700,
-     0.227096876100, -0.082283304900,  0.054765605000, -0.042492896400,
-     0.035056918500, -0.029922928500,  0.026936217500, -0.024863147800},
+    0.227096876100, -0.082283304900,  0.054765605000, -0.042492896400,
+    0.035056918500, -0.029922928500,  0.026936217500, -0.024863147800},
   { -0.011895524600,  0.010881222400, -0.011080393900,  0.013522101400,
     -0.018299976100,  0.027840232000, -0.051531646700,  0.168601698400,
-     0.226418695900, -0.081973147300,  0.054498561600, -0.042259399400,
-     0.034851636500, -0.029746913300,  0.026793421400, -0.024744283000},
+    0.226418695900, -0.081973147300,  0.054498561600, -0.042259399400,
+    0.034851636500, -0.029746913300,  0.026793421400, -0.024744283000},
   { -0.012061741600,  0.011078958400, -0.011308563500,  0.013785401700,
     -0.018595879900,  0.028167737000, -0.051903321700,  0.169306244900,
-     0.225746079600, -0.081675879800,  0.054233890700, -0.042028641800,
-     0.034649470800, -0.029583320700,  0.026652632600, -0.024635779800},
+    0.225746079600, -0.081675879800,  0.054233890700, -0.042028641800,
+    0.034649470800, -0.029583320700,  0.026652632600, -0.024635779800},
   { -0.012233380000,  0.011282444600, -0.011543470000,  0.014055945900,
     -0.018890880000,  0.028496294000, -0.052278354600,  0.170034645100,
-     0.225057382600, -0.081353165500,  0.053955054200, -0.041784523800,
-     0.034433929800, -0.029398158700,  0.026492726700, -0.024512416500},
+    0.225057382600, -0.081353165500,  0.053955054200, -0.041784523800,
+    0.034433929800, -0.029398158700,  0.026492726700, -0.024512416500},
   { -0.012397906100,  0.011498850800, -0.011789873100,  0.014328734600,
     -0.019197522300,  0.028826801200, -0.052664294200,  0.170754821100,
-     0.224364465600, -0.081027646800,  0.053673705700, -0.041537691400,
-     0.034216344400, -0.029211010100,  0.026340154100, -0.024385306400},
+    0.224364465600, -0.081027646800,  0.053673705700, -0.041537691400,
+    0.034216344400, -0.029211010100,  0.026340154100, -0.024385306400},
   { -0.012569967700,  0.011703276500, -0.012026289200,  0.014600559700,
     -0.019494308900,  0.029165749700, -0.053047725600,  0.171482978400,
-     0.223673445000, -0.080701758400,  0.053401535600, -0.041291105000,
-     0.034007728400, -0.029023858700,  0.026178649300, -0.024268830700},
+    0.223673445000, -0.080701758400,  0.053401535600, -0.041291105000,
+    0.034007728400, -0.029023858700,  0.026178649300, -0.024268830700},
   { -0.012733999200,  0.011910640700, -0.012273784000,  0.014874303900,
     -0.019802025600,  0.029497290200, -0.053434105100,  0.172204980000,
-     0.222975700000, -0.080378906900,  0.053114037000, -0.041039151900,
-     0.033785715200, -0.028832942600,  0.026023212900, -0.024139101200},
+    0.222975700000, -0.080378906900,  0.053114037000, -0.041039151900,
+    0.033785715200, -0.028832942600,  0.026023212900, -0.024139101200},
   { -0.012909827000,  0.012119093100, -0.012514786800,  0.015152338700,
     -0.020114351000,  0.029842400300, -0.053824260500,  0.172940887300,
-     0.222282695500, -0.080040051200,  0.052820808400, -0.040782083200,
-     0.033559250100, -0.028638659800,  0.025864605000, -0.024016696400},
+    0.222282695500, -0.080040051200,  0.052820808400, -0.040782083200,
+    0.033559250100, -0.028638659800,  0.025864605000, -0.024016696400},
   { -0.013077694700,  0.012330804800, -0.012768208900,  0.015431882400,
     -0.020419854900,  0.030191368700, -0.054217452300,  0.173672040800,
-     0.221572261900, -0.079694814600,  0.052531679400, -0.040518864300,
-     0.033326721800, -0.028439265300,  0.025691724900, -0.023881218600},
+    0.221572261900, -0.079694814600,  0.052531679400, -0.040518864300,
+    0.033326721800, -0.028439265300,  0.025691724900, -0.023881218600},
   { -0.013256584600,  0.012552301800, -0.013011940600,  0.015713408100,
     -0.020736060900,  0.030531916300, -0.054613554100,  0.174415121200,
-     0.220859647000, -0.079355588500,  0.052228216400, -0.040252363400,
-     0.033091335800, -0.028236227500,  0.025525720700, -0.023743015900},
+    0.220859647000, -0.079355588500,  0.052228216400, -0.040252363400,
+    0.033091335800, -0.028236227500,  0.025525720700, -0.023743015900},
   { -0.013434190200,  0.012763748700, -0.013265795800,  0.015994241000,
     -0.021052047100,  0.030880792200, -0.055006606000,  0.175147783700,
-     0.220145965700, -0.079005398700,  0.051934897400, -0.039986031200,
-     0.032865074900, -0.028032712000,  0.025349395400, -0.023613527100},
+    0.220145965700, -0.079005398700,  0.051934897400, -0.039986031200,
+    0.032865074900, -0.028032712000,  0.025349395400, -0.023613527100},
   { -0.013607326700,  0.012981847200, -0.013517060900,  0.016283677300,
     -0.021377016200,  0.031239628300, -0.055419411200,  0.175899125500,
-     0.219420925700, -0.078653073000,  0.051620280600, -0.039709589400,
-     0.032621025300, -0.027822778600,  0.025177627600, -0.023470126900},
+    0.219420925700, -0.078653073000,  0.051620280600, -0.039709589400,
+    0.032621025300, -0.027822778600,  0.025177627600, -0.023470126900},
   { -0.013782589000,  0.013190197300, -0.013766570600,  0.016559610500,
     -0.021678237600,  0.031575100900, -0.055808854800,  0.176637181300,
-     0.218717601900, -0.078311440600,  0.051325946300, -0.039451087500,
-     0.032383743600, -0.027618613700,  0.025010333400, -0.023331058700},
+    0.218717601900, -0.078311440600,  0.051325946300, -0.039451087500,
+    0.032383743600, -0.027618613700,  0.025010333400, -0.023331058700},
   { -0.013957302500,  0.013409708800, -0.014020295800,  0.016852102000,
     -0.022006668200,  0.031937517200, -0.056216071400,  0.177395411400,
-     0.217982956500, -0.077938975900,  0.051002551300, -0.039166330500,
-     0.032131961500, -0.027401344200,  0.024822499400, -0.023192767000},
+    0.217982956500, -0.077938975900,  0.051002551300, -0.039166330500,
+    0.032131961500, -0.027401344200,  0.024822499400, -0.023192767000},
   { -0.014137826400,  0.013634160600, -0.014277189300,  0.017136805900,
     -0.022327273100,  0.032291873400, -0.056623155700,  0.178133731400,
-     0.217257004100, -0.077584995300,  0.050696728900, -0.038888338700,
-     0.031895218300, -0.027197775400,  0.024646690200, -0.023045282800},
+    0.217257004100, -0.077584995300,  0.050696728900, -0.038888338700,
+    0.031895218300, -0.027197775400,  0.024646690200, -0.023045282800},
   { -0.014322369000,  0.013853217500, -0.014530205800,  0.017428585500,
     -0.022655062900,  0.032653627200, -0.057029286500,  0.178891911700,
-     0.216528434500, -0.077216471400,  0.050368084700, -0.038598885400,
-     0.031639043700, -0.026976449100,  0.024455251600, -0.022894485700},
+    0.216528434500, -0.077216471400,  0.050368084700, -0.038598885400,
+    0.031639043700, -0.026976449100,  0.024455251600, -0.022894485700},
   { -0.014497130900,  0.014073600400, -0.014793724500,  0.017720424400,
     -0.022983229400,  0.033016325000, -0.057445269000,  0.179650074100,
-     0.215789443000, -0.076847958800,  0.050048943000, -0.038308589100,
-     0.031382426000, -0.026755494400,  0.024273618900, -0.022751911400},
+    0.215789443000, -0.076847958800,  0.050048943000, -0.038308589100,
+    0.031382426000, -0.026755494400,  0.024273618900, -0.022751911400},
   { -0.014682624600,  0.014293733300, -0.015048990300,  0.018023602800,
     -0.023312864800,  0.033380176500, -0.057853443800,  0.180411228100,
-     0.215054814200, -0.076463911600,  0.049724541400, -0.038014094400,
-     0.031121419200, -0.026530109300,  0.024086993000, -0.022596809400},
+    0.215054814200, -0.076463911600,  0.049724541400, -0.038014094400,
+    0.031121419200, -0.026530109300,  0.024086993000, -0.022596809400},
   { -0.014859695200,  0.014525847700, -0.015314517000,  0.018318827500,
     -0.023644693500,  0.033746221600, -0.058272616300,  0.181174383300,
-     0.214307631900, -0.076086492000,  0.049388587800, -0.037727262100,
-     0.030867454500, -0.026301452600,  0.023889634600, -0.022449489700},
+    0.214307631900, -0.076086492000,  0.049388587800, -0.037727262100,
+    0.030867454500, -0.026301452600,  0.023889634600, -0.022449489700},
   { -0.015043628800,  0.014744644300, -0.015567389200,  0.018609777000,
     -0.023962891000,  0.034108731100, -0.058687999000,  0.181933910400,
-     0.213571477500, -0.075708968100,  0.049061183200, -0.037429622300,
-     0.030603552000, -0.026074188000,  0.023702400300, -0.022293365600},
+    0.213571477500, -0.075708968100,  0.049061183200, -0.037429622300,
+    0.030603552000, -0.026074188000,  0.023702400300, -0.022293365600},
   { -0.015230621700,  0.014967722500, -0.015834525700,  0.018906008200,
     -0.024296112800,  0.034477126200, -0.059108931600,  0.182699826000,
-     0.212818269000, -0.075324331700,  0.048728034800, -0.037126070200,
-     0.030334649300, -0.025851070600,  0.023509696000, -0.022132339300},
+    0.212818269000, -0.075324331700,  0.048728034800, -0.037126070200,
+    0.030334649300, -0.025851070600,  0.023509696000, -0.022132339300},
   { -0.015403239200,  0.015184755300, -0.016085532200,  0.019196261600,
     -0.024622369200,  0.034836693200, -0.059511496600,  0.183458281900,
-     0.212080113800, -0.074943583300,  0.048389608700, -0.036837633800,
-     0.030079543400, -0.025621473000,  0.023311149400, -0.021984907000},
+    0.212080113800, -0.074943583300,  0.048389608700, -0.036837633800,
+    0.030079543400, -0.025621473000,  0.023311149400, -0.021984907000},
   { -0.015590979000,  0.015408947400, -0.016353520500,  0.019493453600,
     -0.024956657000,  0.035205975300, -0.059933451000,  0.184226621300,
-     0.211321394300, -0.074561582900,  0.048049643100, -0.036528248900,
-     0.029805219600, -0.025384306000,  0.023115206300, -0.021820726800},
+    0.211321394300, -0.074561582900,  0.048049643100, -0.036528248900,
+    0.029805219600, -0.025384306000,  0.023115206300, -0.021820726800},
   { -0.015774153200,  0.015647568900, -0.016617815600,  0.019807043400,
     -0.025298080600,  0.035582464000, -0.060363020600,  0.185012756300,
-     0.210561671700, -0.074159545200,  0.047700175200, -0.036210874300,
-     0.029523208500, -0.025139945600,  0.022903521200, -0.021652637100},
+    0.210561671700, -0.074159545200,  0.047700175200, -0.036210874300,
+    0.029523208500, -0.025139945600,  0.022903521200, -0.021652637100},
   { -0.015957718800,  0.015866363900, -0.016880438900,  0.020098938000,
     -0.025626490200,  0.035944852300, -0.060777269100,  0.185774583200,
-     0.209816210000, -0.073770259000,  0.047363636300, -0.035914525800,
-     0.029260937100, -0.024904284200,  0.022708784900, -0.021499355400},
+    0.209816210000, -0.073770259000,  0.047363636300, -0.035914525800,
+    0.029260937100, -0.024904284200,  0.022708784900, -0.021499355400},
   { -0.016146341100,  0.016091423300, -0.017150197200,  0.020398479100,
     -0.025963577000,  0.036317429100, -0.061201713700,  0.186547463400,
-     0.209047984700, -0.073368078300,  0.047014992300, -0.035596734200,
-     0.028978835200, -0.024669258800,  0.022505698100, -0.021329645000},
+    0.209047984700, -0.073368078300,  0.047014992300, -0.035596734200,
+    0.028978835200, -0.024669258800,  0.022505698100, -0.021329645000},
   { -0.016320272300,  0.016310576200, -0.017403342300,  0.020690491600,
     -0.026292446400,  0.036679979100, -0.061615606400,  0.187310565800,
-     0.208297289900, -0.072981740600,  0.046672091800, -0.035285782400,
-     0.028712202900, -0.024430026800,  0.022298988100, -0.021174596000},
+    0.208297289900, -0.072981740600,  0.046672091800, -0.035285782400,
+    0.028712202900, -0.024430026800,  0.022298988100, -0.021174596000},
   { -0.016517713700,  0.016555097200, -0.017684359000,  0.021012495700,
     -0.026652137000,  0.037074921500, -0.062062849200,  0.188107078200,
-     0.207521739000, -0.072562306900,  0.046307362400, -0.034963432800,
-     0.028417277400, -0.024173926100,  0.022085993400, -0.020996166200},
+    0.207521739000, -0.072562306900,  0.046307362400, -0.034963432800,
+    0.028417277400, -0.024173926100,  0.022085993400, -0.020996166200},
   { -0.016693369200,  0.016775967300, -0.017940069300,  0.021307570300,
     -0.026984503800,  0.037441286100, -0.062480664600,  0.188874906800,
-     0.206762441600, -0.072157646700,  0.045956576300, -0.034644987500,
-     0.028143706400, -0.023928413000,  0.021882650000, -0.020826571400},
+    0.206762441600, -0.072157646700,  0.045956576300, -0.034644987500,
+    0.028143706400, -0.023928413000,  0.021882650000, -0.020826571400},
   { -0.016880502600,  0.016999617900, -0.018208006800,  0.021605481800,
     -0.027319373500,  0.037811009900, -0.062901579400,  0.189647520400,
-     0.205988741400, -0.071756528600,  0.045600627200, -0.034330459400,
-     0.027855743300, -0.023678399200,  0.021665948800, -0.020662712500},
+    0.205988741400, -0.071756528600,  0.045600627200, -0.034330459400,
+    0.027855743300, -0.023678399200,  0.021665948800, -0.020662712500},
   { -0.017068318000,  0.017223435000, -0.018475976000,  0.021903230800,
     -0.027654693700,  0.038181666300, -0.063323023000,  0.190429725400,
-     0.205222534800, -0.071353119600,  0.045242727900, -0.034004343600,
-     0.027565877300, -0.023436396900,  0.021457189000, -0.020488542500},
+    0.205222534800, -0.071353119600,  0.045242727900, -0.034004343600,
+    0.027565877300, -0.023436396900,  0.021457189000, -0.020488542500},
   { -0.017246917900,  0.017457669100, -0.018736272400,  0.022213168000,
     -0.027992598200,  0.038563100600, -0.063755422100,  0.191204356500,
-     0.204452658100, -0.070936826400,  0.044881428000, -0.033686094400,
-     0.027283488000, -0.023183090400,  0.021246949000, -0.020321895500},
+    0.204452658100, -0.070936826400,  0.044881428000, -0.033686094400,
+    0.027283488000, -0.023183090400,  0.021246949000, -0.020321895500},
   { -0.017437502400,  0.017684574800, -0.019007749200,  0.022514818900,
     -0.028332071700,  0.038937772100, -0.064180906300,  0.191992723900,
-     0.203676829800, -0.070522535200,  0.044513642200, -0.033351129700,
-     0.026985379900, -0.022924089100,  0.021022365800, -0.020142555600},
+    0.203676829800, -0.070522535200,  0.044513642200, -0.033351129700,
+    0.026985379900, -0.022924089100,  0.021022365800, -0.020142555600},
   { -0.017612607500,  0.017905551400, -0.019263469700,  0.022810027000,
     -0.028664228600,  0.039313071700, -0.064606182200,  0.192761249200,
-     0.202909086600, -0.070116301600,  0.044153394600, -0.033033628600,
-     0.026704131700, -0.022671934000,  0.020813349900, -0.019967342300},
+    0.202909086600, -0.070116301600,  0.044153394600, -0.033033628600,
+    0.026704131700, -0.022671934000,  0.020813349900, -0.019967342300},
   { -0.017804156200,  0.018142992400, -0.019536907100,  0.023124244000,
     -0.029016668700,  0.039691471800, -0.065035304900,  0.193554029900,
-     0.202126709100, -0.069685647800,  0.043779368600, -0.032692955500,
-     0.026400789300, -0.022417171100,  0.020592971000, -0.019792949400},
+    0.202126709100, -0.069685647800,  0.043779368600, -0.032692955500,
+    0.026400789300, -0.022417171100,  0.020592971000, -0.019792949400},
   { -0.017992718700,  0.018368200800, -0.019806941800,  0.023424641100,
     -0.029354657000,  0.040073376700, -0.065467078100,  0.194340183400,
-     0.201348610200, -0.069267933600,  0.043409003500, -0.032365611400,
-     0.026110304900, -0.022156493800,  0.020376369200, -0.019611597000},
+    0.201348610200, -0.069267933600,  0.043409003500, -0.032365611400,
+    0.026110304900, -0.022156493800,  0.020376369200, -0.019611597000},
   { -0.018169389900,  0.018590771100, -0.020064391100,  0.023730685800,
     -0.029688570400,  0.040441389700, -0.065894130000,  0.195112977600,
-     0.200571593400, -0.068850504200,  0.043048431400, -0.032029425400,
-     0.025810897300, -0.021896568900,  0.020150932200, -0.019430720600},
+    0.200571593400, -0.068850504200,  0.043048431400, -0.032029425400,
+    0.025810897300, -0.021896568900,  0.020150932200, -0.019430720600},
   { -0.018352128100,  0.018808952700, -0.020326930300,  0.024023078900,
     -0.030018101100,  0.040814643600, -0.066306546900,  0.195890653300,
-     0.199799462500, -0.068437128700,  0.042682739700, -0.031706143000,
-     0.025524084500, -0.021648572900,  0.019936501000, -0.019261187000},
+    0.199799462500, -0.068437128700,  0.042682739700, -0.031706143000,
+    0.025524084500, -0.021648572900,  0.019936501000, -0.019261187000},
   { -0.018529692600,  0.019042047700, -0.020594876900,  0.024321965700,
     -0.030363853100,  0.041184957000, -0.066735945800,  0.196675804800,
-     0.199017015900, -0.068014184700,  0.042307739300, -0.031374606800,
-     0.025230096300, -0.021383827800,  0.019716451300, -0.019076980100},
+    0.199017015900, -0.068014184700,  0.042307739300, -0.031374606800,
+    0.025230096300, -0.021383827800,  0.019716451300, -0.019076980100},
   { -0.018717857800,  0.019266724700, -0.020855153600,  0.024631079300,
     -0.030701275000,  0.041566227500, -0.067166371900,  0.197464077100,
-     0.198230805200, -0.067585453700,  0.041936966700, -0.031028914900,
-     0.024921902400, -0.021116319300,  0.019483967100, -0.018899947900},
+    0.198230805200, -0.067585453700,  0.041936966700, -0.031028914900,
+    0.024921902400, -0.021116319300,  0.019483967100, -0.018899947900},
   { -0.018899947900,  0.019483967100, -0.021116319300,  0.024921902400,
     -0.031028914900,  0.041936966700, -0.067585453700,  0.198230805200,
-     0.197464077100, -0.067166371900,  0.041566227500, -0.030701275000,
-     0.024631079300, -0.020855153600,  0.019266724700, -0.018717857800},
+    0.197464077100, -0.067166371900,  0.041566227500, -0.030701275000,
+    0.024631079300, -0.020855153600,  0.019266724700, -0.018717857800},
   { -0.019076980100,  0.019716451300, -0.021383827800,  0.025230096300,
     -0.031374606800,  0.042307739300, -0.068014184700,  0.199017015900,
-     0.196675804800, -0.066735945800,  0.041184957000, -0.030363853100,
-     0.024321965700, -0.020594876900,  0.019042047700, -0.018529692600},
+    0.196675804800, -0.066735945800,  0.041184957000, -0.030363853100,
+    0.024321965700, -0.020594876900,  0.019042047700, -0.018529692600},
   { -0.019261187000,  0.019936501000, -0.021648572900,  0.025524084500,
     -0.031706143000,  0.042682739700, -0.068437128700,  0.199799462500,
-     0.195890653300, -0.066306546900,  0.040814643600, -0.030018101100,
-     0.024023078900, -0.020326930300,  0.018808952700, -0.018352128100},
+    0.195890653300, -0.066306546900,  0.040814643600, -0.030018101100,
+    0.024023078900, -0.020326930300,  0.018808952700, -0.018352128100},
   { -0.019430720600,  0.020150932200, -0.021896568900,  0.025810897300,
     -0.032029425400,  0.043048431400, -0.068850504200,  0.200571593400,
-     0.195112977600, -0.065894130000,  0.040441389700, -0.029688570400,
-     0.023730685800, -0.020064391100,  0.018590771100, -0.018169389900},
+    0.195112977600, -0.065894130000,  0.040441389700, -0.029688570400,
+    0.023730685800, -0.020064391100,  0.018590771100, -0.018169389900},
   { -0.019611597000,  0.020376369200, -0.022156493800,  0.026110304900,
     -0.032365611400,  0.043409003500, -0.069267933600,  0.201348610200,
-     0.194340183400, -0.065467078100,  0.040073376700, -0.029354657000,
-     0.023424641100, -0.019806941800,  0.018368200800, -0.017992718700},
+    0.194340183400, -0.065467078100,  0.040073376700, -0.029354657000,
+    0.023424641100, -0.019806941800,  0.018368200800, -0.017992718700},
   { -0.019792949400,  0.020592971000, -0.022417171100,  0.026400789300,
     -0.032692955500,  0.043779368600, -0.069685647800,  0.202126709100,
-     0.193554029900, -0.065035304900,  0.039691471800, -0.029016668700,
-     0.023124244000, -0.019536907100,  0.018142992400, -0.017804156200},
+    0.193554029900, -0.065035304900,  0.039691471800, -0.029016668700,
+    0.023124244000, -0.019536907100,  0.018142992400, -0.017804156200},
   { -0.019967342300,  0.020813349900, -0.022671934000,  0.026704131700,
     -0.033033628600,  0.044153394600, -0.070116301600,  0.202909086600,
-     0.192761249200, -0.064606182200,  0.039313071700, -0.028664228600,
-     0.022810027000, -0.019263469700,  0.017905551400, -0.017612607500},
+    0.192761249200, -0.064606182200,  0.039313071700, -0.028664228600,
+    0.022810027000, -0.019263469700,  0.017905551400, -0.017612607500},
   { -0.020142555600,  0.021022365800, -0.022924089100,  0.026985379900,
     -0.033351129700,  0.044513642200, -0.070522535200,  0.203676829800,
-     0.191992723900, -0.064180906300,  0.038937772100, -0.028332071700,
-     0.022514818900, -0.019007749200,  0.017684574800, -0.017437502400},
+    0.191992723900, -0.064180906300,  0.038937772100, -0.028332071700,
+    0.022514818900, -0.019007749200,  0.017684574800, -0.017437502400},
   { -0.020321895500,  0.021246949000, -0.023183090400,  0.027283488000,
     -0.033686094400,  0.044881428000, -0.070936826400,  0.204452658100,
-     0.191204356500, -0.063755422100,  0.038563100600, -0.027992598200,
-     0.022213168000, -0.018736272400,  0.017457669100, -0.017246917900},
+    0.191204356500, -0.063755422100,  0.038563100600, -0.027992598200,
+    0.022213168000, -0.018736272400,  0.017457669100, -0.017246917900},
   { -0.020488542500,  0.021457189000, -0.023436396900,  0.027565877300,
     -0.034004343600,  0.045242727900, -0.071353119600,  0.205222534800,
-     0.190429725400, -0.063323023000,  0.038181666300, -0.027654693700,
-     0.021903230800, -0.018475976000,  0.017223435000, -0.017068318000},
+    0.190429725400, -0.063323023000,  0.038181666300, -0.027654693700,
+    0.021903230800, -0.018475976000,  0.017223435000, -0.017068318000},
   { -0.020662712500,  0.021665948800, -0.023678399200,  0.027855743300,
     -0.034330459400,  0.045600627200, -0.071756528600,  0.205988741400,
-     0.189647520400, -0.062901579400,  0.037811009900, -0.027319373500,
-     0.021605481800, -0.018208006800,  0.016999617900, -0.016880502600},
+    0.189647520400, -0.062901579400,  0.037811009900, -0.027319373500,
+    0.021605481800, -0.018208006800,  0.016999617900, -0.016880502600},
   { -0.020826571400,  0.021882650000, -0.023928413000,  0.028143706400,
     -0.034644987500,  0.045956576300, -0.072157646700,  0.206762441600,
-     0.188874906800, -0.062480664600,  0.037441286100, -0.026984503800,
-     0.021307570300, -0.017940069300,  0.016775967300, -0.016693369200},
+    0.188874906800, -0.062480664600,  0.037441286100, -0.026984503800,
+    0.021307570300, -0.017940069300,  0.016775967300, -0.016693369200},
   { -0.020996166200,  0.022085993400, -0.024173926100,  0.028417277400,
     -0.034963432800,  0.046307362400, -0.072562306900,  0.207521739000,
-     0.188107078200, -0.062062849200,  0.037074921500, -0.026652137000,
-     0.021012495700, -0.017684359000,  0.016555097200, -0.016517713700},
+    0.188107078200, -0.062062849200,  0.037074921500, -0.026652137000,
+    0.021012495700, -0.017684359000,  0.016555097200, -0.016517713700},
   { -0.021174596000,  0.022298988100, -0.024430026800,  0.028712202900,
     -0.035285782400,  0.046672091800, -0.072981740600,  0.208297289900,
-     0.187310565800, -0.061615606400,  0.036679979100, -0.026292446400,
-     0.020690491600, -0.017403342300,  0.016310576200, -0.016320272300},
+    0.187310565800, -0.061615606400,  0.036679979100, -0.026292446400,
+    0.020690491600, -0.017403342300,  0.016310576200, -0.016320272300},
   { -0.021329645000,  0.022505698100, -0.024669258800,  0.028978835200,
     -0.035596734200,  0.047014992300, -0.073368078300,  0.209047984700,
-     0.186547463400, -0.061201713700,  0.036317429100, -0.025963577000,
-     0.020398479100, -0.017150197200,  0.016091423300, -0.016146341100},
+    0.186547463400, -0.061201713700,  0.036317429100, -0.025963577000,
+    0.020398479100, -0.017150197200,  0.016091423300, -0.016146341100},
   { -0.021499355400,  0.022708784900, -0.024904284200,  0.029260937100,
     -0.035914525800,  0.047363636300, -0.073770259000,  0.209816210000,
-     0.185774583200, -0.060777269100,  0.035944852300, -0.025626490200,
-     0.020098938000, -0.016880438900,  0.015866363900, -0.015957718800},
+    0.185774583200, -0.060777269100,  0.035944852300, -0.025626490200,
+    0.020098938000, -0.016880438900,  0.015866363900, -0.015957718800},
   { -0.021652637100,  0.022903521200, -0.025139945600,  0.029523208500,
     -0.036210874300,  0.047700175200, -0.074159545200,  0.210561671700,
-     0.185012756300, -0.060363020600,  0.035582464000, -0.025298080600,
-     0.019807043400, -0.016617815600,  0.015647568900, -0.015774153200},
+    0.185012756300, -0.060363020600,  0.035582464000, -0.025298080600,
+    0.019807043400, -0.016617815600,  0.015647568900, -0.015774153200},
   { -0.021820726800,  0.023115206300, -0.025384306000,  0.029805219600,
     -0.036528248900,  0.048049643100, -0.074561582900,  0.211321394300,
-     0.184226621300, -0.059933451000,  0.035205975300, -0.024956657000,
-     0.019493453600, -0.016353520500,  0.015408947400, -0.015590979000},
+    0.184226621300, -0.059933451000,  0.035205975300, -0.024956657000,
+    0.019493453600, -0.016353520500,  0.015408947400, -0.015590979000},
   { -0.021984907000,  0.023311149400, -0.025621473000,  0.030079543400,
     -0.036837633800,  0.048389608700, -0.074943583300,  0.212080113800,
-     0.183458281900, -0.059511496600,  0.034836693200, -0.024622369200,
-     0.019196261600, -0.016085532200,  0.015184755300, -0.015403239200},
+    0.183458281900, -0.059511496600,  0.034836693200, -0.024622369200,
+    0.019196261600, -0.016085532200,  0.015184755300, -0.015403239200},
   { -0.022132339300,  0.023509696000, -0.025851070600,  0.030334649300,
     -0.037126070200,  0.048728034800, -0.075324331700,  0.212818269000,
-     0.182699826000, -0.059108931600,  0.034477126200, -0.024296112800,
-     0.018906008200, -0.015834525700,  0.014967722500, -0.015230621700},
+    0.182699826000, -0.059108931600,  0.034477126200, -0.024296112800,
+    0.018906008200, -0.015834525700,  0.014967722500, -0.015230621700},
   { -0.022293365600,  0.023702400300, -0.026074188000,  0.030603552000,
     -0.037429622300,  0.049061183200, -0.075708968100,  0.213571477500,
-     0.181933910400, -0.058687999000,  0.034108731100, -0.023962891000,
-     0.018609777000, -0.015567389200,  0.014744644300, -0.015043628800},
+    0.181933910400, -0.058687999000,  0.034108731100, -0.023962891000,
+    0.018609777000, -0.015567389200,  0.014744644300, -0.015043628800},
   { -0.022449489700,  0.023889634600, -0.026301452600,  0.030867454500,
     -0.037727262100,  0.049388587800, -0.076086492000,  0.214307631900,
-     0.181174383300, -0.058272616300,  0.033746221600, -0.023644693500,
-     0.018318827500, -0.015314517000,  0.014525847700, -0.014859695200},
+    0.181174383300, -0.058272616300,  0.033746221600, -0.023644693500,
+    0.018318827500, -0.015314517000,  0.014525847700, -0.014859695200},
   { -0.022596809400,  0.024086993000, -0.026530109300,  0.031121419200,
     -0.038014094400,  0.049724541400, -0.076463911600,  0.215054814200,
-     0.180411228100, -0.057853443800,  0.033380176500, -0.023312864800,
-     0.018023602800, -0.015048990300,  0.014293733300, -0.014682624600},
+    0.180411228100, -0.057853443800,  0.033380176500, -0.023312864800,
+    0.018023602800, -0.015048990300,  0.014293733300, -0.014682624600},
   { -0.022751911400,  0.024273618900, -0.026755494400,  0.031382426000,
     -0.038308589100,  0.050048943000, -0.076847958800,  0.215789443000,
-     0.179650074100, -0.057445269000,  0.033016325000, -0.022983229400,
-     0.017720424400, -0.014793724500,  0.014073600400, -0.014497130900},
+    0.179650074100, -0.057445269000,  0.033016325000, -0.022983229400,
+    0.017720424400, -0.014793724500,  0.014073600400, -0.014497130900},
   { -0.022894485700,  0.024455251600, -0.026976449100,  0.031639043700,
     -0.038598885400,  0.050368084700, -0.077216471400,  0.216528434500,
-     0.178891911700, -0.057029286500,  0.032653627200, -0.022655062900,
-     0.017428585500, -0.014530205800,  0.013853217500, -0.014322369000},
+    0.178891911700, -0.057029286500,  0.032653627200, -0.022655062900,
+    0.017428585500, -0.014530205800,  0.013853217500, -0.014322369000},
   { -0.023045282800,  0.024646690200, -0.027197775400,  0.031895218300,
     -0.038888338700,  0.050696728900, -0.077584995300,  0.217257004100,
-     0.178133731400, -0.056623155700,  0.032291873400, -0.022327273100,
-     0.017136805900, -0.014277189300,  0.013634160600, -0.014137826400},
+    0.178133731400, -0.056623155700,  0.032291873400, -0.022327273100,
+    0.017136805900, -0.014277189300,  0.013634160600, -0.014137826400},
   { -0.023192767000,  0.024822499400, -0.027401344200,  0.032131961500,
     -0.039166330500,  0.051002551300, -0.077938975900,  0.217982956500,
-     0.177395411400, -0.056216071400,  0.031937517200, -0.022006668200,
-     0.016852102000, -0.014020295800,  0.013409708800, -0.013957302500},
+    0.177395411400, -0.056216071400,  0.031937517200, -0.022006668200,
+    0.016852102000, -0.014020295800,  0.013409708800, -0.013957302500},
   { -0.023331058700,  0.025010333400, -0.027618613700,  0.032383743600,
     -0.039451087500,  0.051325946300, -0.078311440600,  0.218717601900,
-     0.176637181300, -0.055808854800,  0.031575100900, -0.021678237600,
-     0.016559610500, -0.013766570600,  0.013190197300, -0.013782589000},
+    0.176637181300, -0.055808854800,  0.031575100900, -0.021678237600,
+    0.016559610500, -0.013766570600,  0.013190197300, -0.013782589000},
   { -0.023470126900,  0.025177627600, -0.027822778600,  0.032621025300,
     -0.039709589400,  0.051620280600, -0.078653073000,  0.219420925700,
-     0.175899125500, -0.055419411200,  0.031239628300, -0.021377016200,
-     0.016283677300, -0.013517060900,  0.012981847200, -0.013607326700},
+    0.175899125500, -0.055419411200,  0.031239628300, -0.021377016200,
+    0.016283677300, -0.013517060900,  0.012981847200, -0.013607326700},
   { -0.023613527100,  0.025349395400, -0.028032712000,  0.032865074900,
     -0.039986031200,  0.051934897400, -0.079005398700,  0.220145965700,
-     0.175147783700, -0.055006606000,  0.030880792200, -0.021052047100,
-     0.015994241000, -0.013265795800,  0.012763748700, -0.013434190200},
+    0.175147783700, -0.055006606000,  0.030880792200, -0.021052047100,
+    0.015994241000, -0.013265795800,  0.012763748700, -0.013434190200},
   { -0.023743015900,  0.025525720700, -0.028236227500,  0.033091335800,
     -0.040252363400,  0.052228216400, -0.079355588500,  0.220859647000,
-     0.174415121200, -0.054613554100,  0.030531916300, -0.020736060900,
-     0.015713408100, -0.013011940600,  0.012552301800, -0.013256584600},
+    0.174415121200, -0.054613554100,  0.030531916300, -0.020736060900,
+    0.015713408100, -0.013011940600,  0.012552301800, -0.013256584600},
   { -0.023881218600,  0.025691724900, -0.028439265300,  0.033326721800,
     -0.040518864300,  0.052531679400, -0.079694814600,  0.221572261900,
-     0.173672040800, -0.054217452300,  0.030191368700, -0.020419854900,
-     0.015431882400, -0.012768208900,  0.012330804800, -0.013077694700},
+    0.173672040800, -0.054217452300,  0.030191368700, -0.020419854900,
+    0.015431882400, -0.012768208900,  0.012330804800, -0.013077694700},
   { -0.024016696400,  0.025864605000, -0.028638659800,  0.033559250100,
     -0.040782083200,  0.052820808400, -0.080040051200,  0.222282695500,
-     0.172940887300, -0.053824260500,  0.029842400300, -0.020114351000,
-     0.015152338700, -0.012514786800,  0.012119093100, -0.012909827000},
+    0.172940887300, -0.053824260500,  0.029842400300, -0.020114351000,
+    0.015152338700, -0.012514786800,  0.012119093100, -0.012909827000},
   { -0.024139101200,  0.026023212900, -0.028832942600,  0.033785715200,
     -0.041039151900,  0.053114037000, -0.080378906900,  0.222975700000,
-     0.172204980000, -0.053434105100,  0.029497290200, -0.019802025600,
-     0.014874303900, -0.012273784000,  0.011910640700, -0.012733999200},
+    0.172204980000, -0.053434105100,  0.029497290200, -0.019802025600,
+    0.014874303900, -0.012273784000,  0.011910640700, -0.012733999200},
   { -0.024268830700,  0.026178649300, -0.029023858700,  0.034007728400,
     -0.041291105000,  0.053401535600, -0.080701758400,  0.223673445000,
-     0.171482978400, -0.053047725600,  0.029165749700, -0.019494308900,
-     0.014600559700, -0.012026289200,  0.011703276500, -0.012569967700},
+    0.171482978400, -0.053047725600,  0.029165749700, -0.019494308900,
+    0.014600559700, -0.012026289200,  0.011703276500, -0.012569967700},
   { -0.024385306400,  0.026340154100, -0.029211010100,  0.034216344400,
     -0.041537691400,  0.053673705700, -0.081027646800,  0.224364465600,
-     0.170754821100, -0.052664294200,  0.028826801200, -0.019197522300,
-     0.014328734600, -0.011789873100,  0.011498850800, -0.012397906100},
+    0.170754821100, -0.052664294200,  0.028826801200, -0.019197522300,
+    0.014328734600, -0.011789873100,  0.011498850800, -0.012397906100},
   { -0.024512416500,  0.026492726700, -0.029398158700,  0.034433929800,
     -0.041784523800,  0.053955054200, -0.081353165500,  0.225057382600,
-     0.170034645100, -0.052278354600,  0.028496294000, -0.018890880000,
-     0.014055945900, -0.011543470000,  0.011282444600, -0.012233380000},
+    0.170034645100, -0.052278354600,  0.028496294000, -0.018890880000,
+    0.014055945900, -0.011543470000,  0.011282444600, -0.012233380000},
   { -0.024635779800,  0.026652632600, -0.029583320700,  0.034649470800,
     -0.042028641800,  0.054233890700, -0.081675879800,  0.225746079600,
-     0.169306244900, -0.051903321700,  0.028167737000, -0.018595879900,
-     0.013785401700, -0.011308563500,  0.011078958400, -0.012061741600},
+    0.169306244900, -0.051903321700,  0.028167737000, -0.018595879900,
+    0.013785401700, -0.011308563500,  0.011078958400, -0.012061741600},
   { -0.024744283000,  0.026793421400, -0.029746913300,  0.034851636500,
     -0.042259399400,  0.054498561600, -0.081973147300,  0.226418695900,
-     0.168601698400, -0.051531646700,  0.027840232000, -0.018299976100,
-     0.013522101400, -0.011080393900,  0.010881222400, -0.011895524600},
+    0.168601698400, -0.051531646700,  0.027840232000, -0.018299976100,
+    0.013522101400, -0.011080393900,  0.010881222400, -0.011895524600},
   { -0.024863147800,  0.026936217500, -0.029922928500,  0.035056918500,
     -0.042492896400,  0.054765605000, -0.082283304900,  0.227096876100,
-     0.167891670700, -0.051153628100,  0.027517442600, -0.018000408400,
-     0.013255461800, -0.010838874100,  0.010679052100, -0.011735641200},
+    0.167891670700, -0.051153628100,  0.027517442600, -0.018000408400,
+    0.013255461800, -0.010838874100,  0.010679052100, -0.011735641200},
   { -0.024977875100,  0.027084885600, -0.030094081500,  0.035257818300,
     -0.042721547900,  0.055017316200, -0.082585986900,  0.227767190600,
-     0.167187177600, -0.050791534100,  0.027190997300, -0.017715404200,
-     0.012993995900, -0.010611428200,  0.010482366800, -0.011569876800},
+    0.167187177600, -0.050791534100,  0.027190997300, -0.017715404200,
+    0.012993995900, -0.010611428200,  0.010482366800, -0.011569876800},
   { -0.025080573500,  0.027218999400, -0.030260595300,  0.035452683100,
     -0.042943711600,  0.055272032600, -0.082882457600,  0.228431981400,
-     0.166486654000, -0.050421461700,  0.026876050100, -0.017423150000,
-     0.012733949200, -0.010375664800,  0.010285088600, -0.011414156900},
+    0.166486654000, -0.050421461700,  0.026876050100, -0.017423150000,
+    0.012733949200, -0.010375664800,  0.010285088600, -0.011414156900},
   { -0.025191900900,  0.027364856000, -0.030429438500,  0.035639110100,
     -0.043164809800,  0.055525970000, -0.083187562800,  0.229096722700,
-     0.165774369800, -0.050058620700,  0.026560090900, -0.017139617800,
-     0.012473832200, -0.010150237400,  0.010079726100, -0.011247937000},
+    0.165774369800, -0.050058620700,  0.026560090900, -0.017139617800,
+    0.012473832200, -0.010150237400,  0.010079726100, -0.011247937000},
   { -0.025301408600,  0.027496482800, -0.030592744600,  0.035830313000,
     -0.043392967400,  0.055777843800, -0.083479360500,  0.229757192500,
-     0.165075323300, -0.049688721100,  0.026245793300, -0.016847826800,
-     0.012214065900, -0.009924855700,  0.009884244000, -0.011083143100},
+    0.165075323300, -0.049688721100,  0.026245793300, -0.016847826800,
+    0.012214065900, -0.009924855700,  0.009884244000, -0.011083143100},
   { -0.025396035700,  0.027631903700, -0.030749714100,  0.036015066800,
     -0.043603445300,  0.056019673100, -0.083761749100,  0.230408652300,
-     0.164383311000, -0.049336013900,  0.025928666900, -0.016571687400,
-     0.011960978000, -0.009694581800,  0.009691737700, -0.010931246800},
+    0.164383311000, -0.049336013900,  0.025928666900, -0.016571687400,
+    0.011960978000, -0.009694581800,  0.009691737700, -0.010931246800},
   { -0.025499892900,  0.027756477200, -0.030904859500,  0.036197201000,
     -0.043812102400,  0.056259353500, -0.084039975100,  0.231066748100,
-     0.163692118500, -0.048972602300,  0.025620788400, -0.016285463700,
-     0.011715943000, -0.009474642200,  0.009500718600, -0.010770500300},
+    0.163692118500, -0.048972602300,  0.025620788400, -0.016285463700,
+    0.011715943000, -0.009474642200,  0.009500718600, -0.010770500300},
   { -0.025587973900,  0.027873625100, -0.031051508400,  0.036370261500,
     -0.044009688500,  0.056487091900, -0.084306442100,  0.231703178600,
-     0.163011748400, -0.048628982800,  0.025323118600, -0.016019505400,
-     0.011471920900, -0.009252420500,  0.009314904500, -0.010624282400},
+    0.163011748400, -0.048628982800,  0.025323118600, -0.016019505400,
+    0.011471920900, -0.009252420500,  0.009314904500, -0.010624282400},
   { -0.025686033500,  0.028003222400, -0.031201495400,  0.036546321900,
     -0.044210265700,  0.056717963000, -0.084586151300,  0.232344053400,
-     0.162326124500, -0.048280259200,  0.025020862500, -0.015749030400,
-     0.011223231400, -0.009036452200,  0.009127889900, -0.010466289100},
+    0.162326124500, -0.048280259200,  0.025020862500, -0.015749030400,
+    0.011223231400, -0.009036452200,  0.009127889900, -0.010466289100},
   { -0.025780065800,  0.028116156900, -0.031342439100,  0.036712214700,
     -0.044400455400,  0.056938084300, -0.084843025700,  0.232972740300,
-     0.161661569100, -0.047942312100,  0.024729320900, -0.015478042100,
-     0.010981773200, -0.008827674600,  0.008936015200, -0.010321897600},
+    0.161661569100, -0.047942312100,  0.024729320900, -0.015478042100,
+    0.010981773200, -0.008827674600,  0.008936015200, -0.010321897600},
   { -0.025863505900,  0.028237949300, -0.031484316000,  0.036879378400,
     -0.044601390800,  0.057159516400, -0.085101130000,  0.233611368900,
-     0.160982608100, -0.047598975500,  0.024432461700, -0.015213032100,
-     0.010738923200, -0.008606212500,  0.008751093900, -0.010166260400},
+    0.160982608100, -0.047598975500,  0.024432461700, -0.015213032100,
+    0.010738923200, -0.008606212500,  0.008751093900, -0.010166260400},
   { -0.025952967800,  0.028346554700, -0.031620187000,  0.037040075600,
     -0.044785182900,  0.057372021900, -0.085360140300,  0.234232816700,
-     0.160311566300, -0.047261891500,  0.024141775800, -0.014953382600,
-     0.010499975700, -0.008398761300,  0.008571352800, -0.010014352200},
+    0.160311566300, -0.047261891500,  0.024141775800, -0.014953382600,
+    0.010499975700, -0.008398761300,  0.008571352800, -0.010014352200},
   { -0.026039689900,  0.028462385300, -0.031755365000,  0.037198907100,
     -0.044967652300,  0.057593857200, -0.085609536100,  0.234853461000,
-     0.159640235100, -0.046924112000,  0.023850713300, -0.014682289800,
-     0.010268343100, -0.008190788700,  0.008389875100, -0.009871323400},
+    0.159640235100, -0.046924112000,  0.023850713300, -0.014682289800,
+    0.010268343100, -0.008190788700,  0.008389875100, -0.009871323400},
   { -0.026114821800,  0.028563276700, -0.031893498200,  0.037352645400,
     -0.045153519300,  0.057798739800, -0.085859387000,  0.235466308600,
-     0.158984686900, -0.046592644400,  0.023565684300, -0.014428158400,
-     0.010035312500, -0.007978032900,  0.008212777900, -0.009721894700},
+    0.158984686900, -0.046592644400,  0.023565684300, -0.014428158400,
+    0.010035312500, -0.007978032900,  0.008212777900, -0.009721894700},
   { -0.026197380900,  0.028674126500, -0.032022055600,  0.037504763700,
     -0.045327782600,  0.058000802500, -0.086106607600,  0.236087895800,
-     0.158318052700, -0.046258378200,  0.023277932300, -0.014171124700,
-     0.009798419700, -0.007771917200,  0.008033410300, -0.009580872000},
+    0.158318052700, -0.046258378200,  0.023277932300, -0.014171124700,
+    0.009798419700, -0.007771917200,  0.008033410300, -0.009580872000},
   { -0.026274692700,  0.028767035600, -0.032140124600,  0.037645625200,
     -0.045489825900,  0.058190028400, -0.086329249600,  0.236683031800,
-     0.157677386600, -0.045939676500,  0.023004845600, -0.013927827700,
-     0.009574249500, -0.007577424400,  0.007864516400, -0.009438250700},
+    0.157677386600, -0.045939676500,  0.023004845600, -0.013927827700,
+    0.009574249500, -0.007577424400,  0.007864516400, -0.009438250700},
   { -0.026341359100,  0.028870030600, -0.032260085200,  0.037787266600,
     -0.045653170900,  0.058390364400, -0.086564748300,  0.237292774000,
-     0.157018351900, -0.045622167700,  0.022725762800, -0.013667509600,
-     0.009352140300, -0.007377781200,  0.007690545500, -0.009301621700},
+    0.157018351900, -0.045622167700,  0.022725762800, -0.013667509600,
+    0.009352140300, -0.007377781200,  0.007690545500, -0.009301621700},
   { -0.026415860100,  0.028959823600, -0.032373937700,  0.037922966700,
     -0.045819242800,  0.058573065700, -0.086789838900,  0.237883048800,
-     0.156379869500, -0.045304400400,  0.022454091700, -0.013426053000,
-     0.009130702800, -0.007175647500,  0.007511909600, -0.009157733600},
+    0.156379869500, -0.045304400400,  0.022454091700, -0.013426053000,
+    0.009130702800, -0.007175647500,  0.007511909600, -0.009157733600},
   { -0.026486139900,  0.029046121000, -0.032483676700,  0.038064564500,
     -0.045972814900,  0.058751361600, -0.087010194700,  0.238467918900,
-     0.155734052300, -0.044997006400,  0.022195302800, -0.013188518400,
-     0.008911224900, -0.006985204400,  0.007346605300, -0.009017719800},
+    0.155734052300, -0.044997006400,  0.022195302800, -0.013188518400,
+    0.008911224900, -0.006985204400,  0.007346605300, -0.009017719800},
   { -0.026544650500,  0.029137687900, -0.032591551900,  0.038193255500,
     -0.046131179100,  0.058937803200, -0.087219020100,  0.239060508500,
-     0.155098325200, -0.044681119300,  0.021925282500, -0.012948009400,
-     0.008689620600, -0.006792714500,  0.007178451900, -0.008886221300},
+    0.155098325200, -0.044681119300,  0.021925282500, -0.012948009400,
+    0.008689620600, -0.006792714500,  0.007178451900, -0.008886221300},
   { -0.026609057300,  0.029216641900, -0.032692580400,  0.038314783100,
     -0.046272077200,  0.059102015300, -0.087424514000,  0.239631193600,
-     0.154463623000, -0.044383621100,  0.021665336500, -0.012716522600,
-     0.008486986700, -0.006599218000,  0.007017378200, -0.008749942500},
+    0.154463623000, -0.044383621100,  0.021665336500, -0.012716522600,
+    0.008486986700, -0.006599218000,  0.007017378200, -0.008749942500},
   { -0.026672135800,  0.029303599100, -0.032793916400,  0.038435074500,
     -0.046411553600,  0.059265982800, -0.087629196300,  0.240212813600,
-     0.153836655200, -0.044074457000,  0.021413239200, -0.012474342700,
-     0.008270409100, -0.006411265100,  0.006853393800, -0.008621850700},
+    0.153836655200, -0.044074457000,  0.021413239200, -0.012474342700,
+    0.008270409100, -0.006411265100,  0.006853393800, -0.008621850700},
   { -0.026721976200,  0.029375054800, -0.032887333800,  0.038547619600,
     -0.046551952900,  0.059432200300, -0.087826286000,  0.240775110200,
-     0.153217488200, -0.043782741400,  0.021158865900, -0.012248204100,
-     0.008061850300, -0.006230594800,  0.006696553400, -0.008488941000},
+    0.153217488200, -0.043782741400,  0.021158865900, -0.012248204100,
+    0.008061850300, -0.006230594800,  0.006696553400, -0.008488941000},
   { -0.026779041200,  0.029455506100, -0.032980362900,  0.038659818300,
     -0.046682659300,  0.059585807800, -0.088019183800,  0.241345587100,
-     0.152598080900, -0.043490655700,  0.020904026300, -0.012020887000,
-     0.007862043900, -0.006049746700,  0.006538532000, -0.008365745600},
+    0.152598080900, -0.043490655700,  0.020904026300, -0.012020887000,
+    0.007862043900, -0.006049746700,  0.006538532000, -0.008365745600},
   { -0.026834459500,  0.029522772700, -0.033069335600,  0.038766487900,
     -0.046816052000,  0.059743644400, -0.088207332900,  0.241899935800,
-     0.151985072700, -0.043192258600,  0.020662084900, -0.011799401200,
-     0.007658087800, -0.005862421100,  0.006382559600, -0.008233810500},
+    0.151985072700, -0.043192258600,  0.020662084900, -0.011799401200,
+    0.007658087800, -0.005862421100,  0.006382559600, -0.008233810500},
   { -0.026875984700,  0.029594120700, -0.033163420100,  0.038870631000,
     -0.046937384600,  0.059887026200, -0.088387814400,  0.242457316000,
-     0.151374476700, -0.042907551700,  0.020414981800, -0.011579317500,
-     0.007464989300, -0.005687757500,  0.006230560200, -0.008105130300},
+    0.151374476700, -0.042907551700,  0.020414981800, -0.011579317500,
+    0.007464989300, -0.005687757500,  0.006230560200, -0.008105130300},
   { -0.026927788900,  0.029658101500, -0.033247283000,  0.038982593900,
     -0.047067967200,  0.060040729000, -0.088580561000,  0.243020071900,
-     0.150758631000, -0.042616124600,  0.020172218500, -0.011356666000,
-     0.007258796500, -0.005508592100,  0.006074179500, -0.007983157300},
+    0.150758631000, -0.042616124600,  0.020172218500, -0.011356666000,
+    0.007258796500, -0.005508592100,  0.006074179500, -0.007983157300},
   { -0.026962754000,  0.029721987600, -0.033321568100,  0.039073486100,
     -0.047174313100,  0.060167864400, -0.088743758000,  0.243550330900,
-     0.150163766200, -0.042344891600,  0.019938097200, -0.011149489200,
-     0.007067136200, -0.005343167000,  0.005919845900, -0.007858967200},
+    0.150163766200, -0.042344891600,  0.019938097200, -0.011149489200,
+    0.007067136200, -0.005343167000,  0.005919845900, -0.007858967200},
   { -0.027007624400,  0.029777209800, -0.033396349900,  0.039164455700,
     -0.047291253700,  0.060307776300, -0.088910561500,  0.244095869900,
-     0.149561525700, -0.042065049900,  0.019706338200, -0.010936112200,
-     0.006879940500, -0.005173633200,  0.005771106400, -0.007743458100},
+    0.149561525700, -0.042065049900,  0.019706338200, -0.010936112200,
+    0.006879940500, -0.005173633200,  0.005771106400, -0.007743458100},
   { -0.027050084400,  0.029839930100, -0.033469077500,  0.039252529900,
     -0.047403936100,  0.060442764900, -0.089072585900,  0.244635866200,
-     0.148963171000, -0.041789645200,  0.019468467400, -0.010725673400,
-     0.006686063700, -0.004994838300,  0.005622426600, -0.007617681800},
+    0.148963171000, -0.041789645200,  0.019468467400, -0.010725673400,
+    0.006686063700, -0.004994838300,  0.005622426600, -0.007617681800},
   { -0.027077485500,  0.029885352000, -0.033531679300,  0.039330446700,
     -0.047496635400,  0.060553978800, -0.089229128400,  0.245152841500,
-     0.148377088500, -0.041534516600,  0.019252707100, -0.010526788500,
-     0.006511584900, -0.004836420600,  0.005483782700, -0.007510337800},
+    0.148377088500, -0.041534516600,  0.019252707100, -0.010526788500,
+    0.006511584900, -0.004836420600,  0.005483782700, -0.007510337800},
   { -0.027114750800,  0.029942169700, -0.033597878400,  0.039421896500,
     -0.047604443400,  0.060683139900, -0.089383414100,  0.245685443800,
-     0.147782948500, -0.041261046500,  0.019027766500, -0.010320954700,
-     0.006320666200, -0.004670815200,  0.005339424900, -0.007387874000},
+    0.147782948500, -0.041261046500,  0.019027766500, -0.010320954700,
+    0.006320666200, -0.004670815200,  0.005339424900, -0.007387874000},
   { -0.027149571000,  0.029984769900, -0.033667952600,  0.039498877900,
     -0.047694806200,  0.060802547900, -0.089538068000,  0.246211745800,
-     0.147194377100, -0.040992574000,  0.018796926000, -0.010115702100,
-     0.006140611400, -0.004507476500,  0.005196186900, -0.007276776700},
+    0.147194377100, -0.040992574000,  0.018796926000, -0.010115702100,
+    0.006140611400, -0.004507476500,  0.005196186900, -0.007276776700},
   { -0.027169252500,  0.030030861700, -0.033722116600,  0.039566909200,
     -0.047785728000,  0.060903432100, -0.089671417900,  0.246713790300,
-     0.146628884600, -0.040747877600,  0.018590642800, -0.009937335800,
-     0.005967529800, -0.004357110300,  0.005065305500, -0.007165536600},
+    0.146628884600, -0.040747877600,  0.018590642800, -0.009937335800,
+    0.005967529800, -0.004357110300,  0.005065305500, -0.007165536600},
   { -0.027198514200,  0.030078686000, -0.033778171100,  0.039635751800,
     -0.047877574700,  0.061014854400, -0.089816950200,  0.247230365400,
-     0.146046598800, -0.040483849800,  0.018374848700, -0.009738964200,
-     0.005793881200, -0.004199654100,  0.004927883500, -0.007048709900},
+    0.146046598800, -0.040483849800,  0.018374848700, -0.009738964200,
+    0.005793881200, -0.004199654100,  0.004927883500, -0.007048709900},
   { -0.027225498800,  0.030111200300, -0.033825489900,  0.039706664600,
     -0.047952151500,  0.061116139800, -0.089941342900,  0.247735896000,
-     0.145484672100, -0.040230608100,  0.018169204500, -0.009551266900,
-     0.005619673100, -0.004037760400,  0.004792587900, -0.006944808900},
+    0.145484672100, -0.040230608100,  0.018169204500, -0.009551266900,
+    0.005619673100, -0.004037760400,  0.004792587900, -0.006944808900},
   { -0.027238906300,  0.030150552400, -0.033871892800,  0.039764687300,
     -0.048032095800,  0.061214521700, -0.090072272700,  0.248238004700,
-     0.144912324100, -0.039985659800,  0.017964244700, -0.009362610000,
-     0.005454760700, -0.003888052900,  0.004661933300, -0.006833632200},
+    0.144912324100, -0.039985659800,  0.017964244700, -0.009362610000,
+    0.005454760700, -0.003888052900,  0.004661933300, -0.006833632200},
   { -0.027261029400,  0.030177475500, -0.033924139600,  0.039820545400,
     -0.048108842000,  0.061311021700, -0.090189496400,  0.248736735600,
-     0.144353453000, -0.039744969800,  0.017763535800, -0.009178450500,
-     0.005283093400, -0.003739016800,  0.004530986400, -0.006733019100},
+    0.144353453000, -0.039744969800,  0.017763535800, -0.009178450500,
+    0.005283093400, -0.003739016800,  0.004530986400, -0.006733019100},
   { -0.027278748100,  0.030211452200, -0.033963765200,  0.039872247300,
     -0.048170611400,  0.061398382500, -0.090309454700,  0.249217705300,
-     0.143792799000, -0.039499198000,  0.017553760300, -0.009003806900,
-     0.005123920600, -0.003593946300,  0.004404173000, -0.006624732800},
+    0.143792799000, -0.039499198000,  0.017553760300, -0.009003806900,
+    0.005123920600, -0.003593946300,  0.004404173000, -0.006624732800},
   { -0.027285607600,  0.030230693900, -0.033995062800,  0.039925613200,
     -0.048237360200,  0.061470769900, -0.090420060400,  0.249702348700,
-     0.143244619700, -0.039267480800,  0.017361477800, -0.008827892900,
-     0.004959568700, -0.003450970500,  0.004278722600, -0.006528665100},
+    0.143244619700, -0.039267480800,  0.017361477800, -0.008827892900,
+    0.004959568700, -0.003450970500,  0.004278722600, -0.006528665100},
   { -0.027299867000,  0.030260492100, -0.034029532000,  0.039969736100,
     -0.048301646800,  0.061551769900, -0.090531292600,  0.250186846500,
-     0.142695621300, -0.039034846100,  0.017168425100, -0.008650250700,
-     0.004804548400, -0.003309959300,  0.004155528900, -0.006423738600},
+    0.142695621300, -0.039034846100,  0.017168425100, -0.008650250700,
+    0.004804548400, -0.003309959300,  0.004155528900, -0.006423738600},
   { -0.027311829700,  0.030276666600, -0.034057656100,  0.040007213300,
     -0.048358207200,  0.061624954700, -0.090633704900,  0.250662990700,
-     0.142142757000, -0.038804959500,  0.016978639900, -0.008476386900,
-     0.004641928300, -0.003168595500,  0.004031158500, -0.006328397300},
+    0.142142757000, -0.038804959500,  0.016978639900, -0.008476386900,
+    0.004641928300, -0.003168595500,  0.004031158500, -0.006328397300},
   { -0.027310222200,  0.030295722900, -0.034091543000,  0.040054114300,
     -0.048405249700,  0.061694722300, -0.090720594500,  0.251131429100,
-     0.141605434000, -0.038581990000,  0.016794826900, -0.008319159800,
-     0.004499540800, -0.003028595200,  0.003904318200, -0.006227186400},
+    0.141605434000, -0.038581990000,  0.016794826900, -0.008319159800,
+    0.004499540800, -0.003028595200,  0.003904318200, -0.006227186400},
   { -0.027317970100,  0.030306458400, -0.034113893000,  0.040084569400,
     -0.048454321900,  0.061758888600, -0.090812420800,  0.251597538600,
-     0.141069989900, -0.038359180300,  0.016622514100, -0.008153648900,
-     0.004355118400, -0.002896910300,  0.003788978800, -0.006128817400},
+    0.141069989900, -0.038359180300,  0.016622514100, -0.008153648900,
+    0.004355118400, -0.002896910300,  0.003788978800, -0.006128817400},
   { -0.027322408700,  0.030324310800, -0.034134470700,  0.040112744100,
     -0.048500250500,  0.061820252000, -0.090901636600,  0.252061541300,
-     0.140535980000, -0.038138344000,  0.016441338600, -0.007987803500,
-     0.004199685000, -0.002761828800,  0.003669989500, -0.006038006300},
+    0.140535980000, -0.038138344000,  0.016441338600, -0.007987803500,
+    0.004199685000, -0.002761828800,  0.003669989500, -0.006038006300},
   { -0.027324602000,  0.030339624000, -0.034151729900,  0.040149371300,
     -0.048547165800,  0.061880613500, -0.090988640700,  0.252522799200,
-     0.140002708200, -0.037917269600,  0.016259063300, -0.007831507500,
-     0.004057015800, -0.002631162900,  0.003555441000, -0.005940171600},
+    0.140002708200, -0.037917269600,  0.016259063300, -0.007831507500,
+    0.004057015800, -0.002631162900,  0.003555441000, -0.005940171600},
   { -0.027314851900,  0.030338133100, -0.034171796400,  0.040168382200,
     -0.048581744400,  0.061940861800, -0.091066456400,  0.252975093200,
-     0.139476737000, -0.037702515700,  0.016084224600, -0.007671474500,
-     0.003906772800, -0.002500886900,  0.003440460400, -0.005852674900},
+    0.139476737000, -0.037702515700,  0.016084224600, -0.007671474500,
+    0.003906772800, -0.002500886900,  0.003440460400, -0.005852674900},
   { -0.027312476200,  0.030348556000, -0.034182788700,  0.040197728000,
     -0.048620522900,  0.061992180000, -0.091143115000,  0.253426570300,
-     0.138949385400, -0.037496867100,  0.015909567200, -0.007521879300,
-     0.003770118000, -0.002375530200,  0.003330548600, -0.005758700400},
+    0.138949385400, -0.037496867100,  0.015909567200, -0.007521879300,
+    0.003770118000, -0.002375530200,  0.003330548600, -0.005758700400},
   { -0.027308900300,  0.030346059500, -0.034189299100,  0.040210075200,
     -0.048649242600,  0.062033003000, -0.091219627900,  0.253871405000,
-     0.138428727000, -0.037284933600,  0.015748179900, -0.007366427500,
-     0.003634318300, -0.002250865900,  0.003220173800, -0.005674994900},
+    0.138428727000, -0.037284933600,  0.015748179900, -0.007366427500,
+    0.003634318300, -0.002250865900,  0.003220173800, -0.005674994900},
   { -0.027291156400,  0.030346034000, -0.034201654500,  0.040221399100,
     -0.048665013800,  0.062069083500, -0.091279630400,  0.254306086800,
-     0.137915259700, -0.037080250800,  0.015582215100, -0.007224968800,
-     0.003504827500, -0.002131832000,  0.003115541600, -0.005585382500},
+    0.137915259700, -0.037080250800,  0.015582215100, -0.007224968800,
+    0.003504827500, -0.002131832000,  0.003115541600, -0.005585382500},
   { -0.027283556600,  0.030337810300, -0.034199682900,  0.040235929700,
     -0.048687487200,  0.062103176600, -0.091336957100,  0.254740700000,
-     0.137411927200, -0.036888380700,  0.015421720100, -0.007078261400,
-     0.003366480500, -0.002011695700,  0.003009395700, -0.005505373600},
+    0.137411927200, -0.036888380700,  0.015421720100, -0.007078261400,
+    0.003366480500, -0.002011695700,  0.003009395700, -0.005505373600},
   { -0.027272064200,  0.030336692900, -0.034199174200,  0.040240217600,
     -0.048706450000,  0.062133585500, -0.091390047400,  0.255169264700,
-     0.136902218400, -0.036685011500,  0.015268001700, -0.006941296500,
-     0.003240948000, -0.001896019300,  0.002907510500, -0.005418047900},
+    0.136902218400, -0.036685011500,  0.015268001700, -0.006941296500,
+    0.003240948000, -0.001896019300,  0.002907510500, -0.005418047900},
   { -0.027248039400,  0.030331001200, -0.034191966500,  0.040247715100,
     -0.048720314000,  0.062167723200, -0.091449297700,  0.255595532100,
-     0.136392728600, -0.036493663300,  0.015108636900, -0.006794821100,
-     0.003113745000, -0.001779622200,  0.002805447300, -0.005330421900},
+    0.136392728600, -0.036493663300,  0.015108636900, -0.006794821100,
+    0.003113745000, -0.001779622200,  0.002805447300, -0.005330421900},
   { -0.027233909600,  0.030314184400, -0.034192418000,  0.040245240000,
     -0.048730903800,  0.062189717900, -0.091492283600,  0.256016406700,
-     0.135898611300, -0.036308554600,  0.014954266000, -0.006664576800,
-     0.002983502200, -0.001666038900,  0.002704732600, -0.005254922300},
+    0.135898611300, -0.036308554600,  0.014954266000, -0.006664576800,
+    0.002983502200, -0.001666038900,  0.002704732600, -0.005254922300},
   { -0.027215455700,  0.030304366300, -0.034180802400,  0.040247773900,
     -0.048740138000,  0.062208163600, -0.091531009000,  0.256430891500,
-     0.135398740700, -0.036112846200,  0.014809292700, -0.006525103100,
-     0.002862380100, -0.001554671000,  0.002606541400, -0.005170558100},
+    0.135398740700, -0.036112846200,  0.014809292700, -0.006525103100,
+    0.002862380100, -0.001554671000,  0.002606541400, -0.005170558100},
   { -0.027187650100,  0.030281865200, -0.034163561400,  0.040234336300,
     -0.048739644700,  0.062216233800, -0.091570002800,  0.256840267600,
-     0.134912928100, -0.035934332400,  0.014660767100, -0.006399204100,
-     0.002746842300, -0.001447380500,  0.002511020600, -0.005099278600},
+    0.134912928100, -0.035934332400,  0.014660767100, -0.006399204100,
+    0.002746842300, -0.001447380500,  0.002511020600, -0.005099278600},
   { -0.027164826500,  0.030266800800, -0.034157300200,  0.040233396200,
     -0.048743282000,  0.062239840100, -0.091604648700,  0.257250575700,
-     0.134413490000, -0.035748887100,  0.014519076200, -0.006262314300,
-     0.002627935400, -0.001338252600,  0.002414767800, -0.005016493400},
+    0.134413490000, -0.035748887100,  0.014519076200, -0.006262314300,
+    0.002627935400, -0.001338252600,  0.002414767800, -0.005016493400},
   { -0.027143371600,  0.030242570200, -0.034137799500,  0.040216442600,
     -0.048738434100,  0.062242822500, -0.091637493400,  0.257654713000,
-     0.133930500000, -0.035570772900,  0.014382400400, -0.006140611400,
-     0.002515774700, -0.001233847400,  0.002321555700, -0.004947156000},
+    0.133930500000, -0.035570772900,  0.014382400400, -0.006140611400,
+    0.002515774700, -0.001233847400,  0.002321555700, -0.004947156000},
   { -0.027107457100,  0.030220920600, -0.034111888100,  0.040203792100,
     -0.048729769800,  0.062241715900, -0.091653939600,  0.258048229900,
-     0.133455517400, -0.035401209000,  0.014243272400, -0.006025214200,
-     0.002399200400, -0.001132590800,  0.002232582100, -0.004870595400},
+    0.133455517400, -0.035401209000,  0.014243272400, -0.006025214200,
+    0.002399200400, -0.001132590800,  0.002232582100, -0.004870595400},
   { -0.027078741500,  0.030199249900, -0.034098388500,  0.040182871900,
     -0.048718972600,  0.062249560500, -0.091682539100,  0.258446283900,
-     0.132964854500, -0.035222237300,  0.014108040800, -0.005893861400,
-     0.002284840400, -0.001026848500,  0.002138024300, -0.004799901300},
+    0.132964854500, -0.035222237300,  0.014108040800, -0.005893861400,
+    0.002284840400, -0.001026848500,  0.002138024300, -0.004799901300},
   { -0.027050861400,  0.030166932700, -0.034068442600,  0.040165553900,
     -0.048705371900,  0.062241192800, -0.091701376100,  0.258836019600,
-     0.132491612100, -0.035051605900,  0.013979073500, -0.005779960100,
-     0.002180035700, -0.000929347100,  0.002051981700, -0.004725695500},
+    0.132491612100, -0.035051605900,  0.013979073500, -0.005779960100,
+    0.002180035700, -0.000929347100,  0.002051981700, -0.004725695500},
   { -0.027009514400,  0.030138847000, -0.034036485500,  0.040133308800,
     -0.048693489400,  0.062239873700, -0.091706871400,  0.259230513500,
-     0.132019240400, -0.034882878100,  0.013840666600, -0.005663538600,
-     0.002073337300, -0.000829862900,  0.001962511100, -0.004659557800},
+    0.132019240400, -0.034882878100,  0.013840666600, -0.005663538600,
+    0.002073337300, -0.000829862900,  0.001962511100, -0.004659557800},
   { -0.026976072400,  0.030111284500, -0.034014280800,  0.040115213700,
     -0.048678076000,  0.062229403200, -0.091722403400,  0.259617106900,
-     0.131545261000, -0.034721796900,  0.013714416500, -0.005551787400,
-     0.001970438800, -0.000734060100,  0.001877974400, -0.004586585500},
+    0.131545261000, -0.034721796900,  0.013714416500, -0.005551787400,
+    0.001970438800, -0.000734060100,  0.001877974400, -0.004586585500},
   { -0.026942508300,  0.030072123900, -0.033977399000,  0.040076906100,
     -0.048648464400,  0.062216113000, -0.091727265200,  0.259993523100,
-     0.131081652600, -0.034558763500,  0.013594098000, -0.005434268500,
-     0.001868519600, -0.000639267000,  0.001792774700, -0.004523786800},
+    0.131081652600, -0.034558763500,  0.013594098000, -0.005434268500,
+    0.001868519600, -0.000639267000,  0.001792774700, -0.004523786800},
   { -0.026894698800,  0.030035043200, -0.033945864700,  0.040048640600,
     -0.048621392100,  0.062194230500, -0.091718251200,  0.260362390800,
-     0.130622438100, -0.034399268600,  0.013476831400, -0.005332669200,
-     0.001763978200, -0.000548375700,  0.001712493000, -0.004454372600},
+    0.130622438100, -0.034399268600,  0.013476831400, -0.005332669200,
+    0.001763978200, -0.000548375700,  0.001712493000, -0.004454372600},
   { -0.026858101400,  0.029992822400, -0.033904910800,  0.040006010900,
     -0.048586130300,  0.062174189600, -0.091714875900,  0.260730415900,
-     0.130162737200, -0.034249709200,  0.013361670100, -0.005230956800,
-     0.001670082700, -0.000460660800,  0.001634796200, -0.004387061400},
+    0.130162737200, -0.034249709200,  0.013361670100, -0.005230956800,
+    0.001670082700, -0.000460660800,  0.001634796200, -0.004387061400},
   { -0.026817551300,  0.029956756400, -0.033861618500,  0.039972655000,
     -0.048554302300,  0.062145158100, -0.091709577400,  0.261097309800,
-     0.129704208100, -0.034089428900,  0.013243154600, -0.005126787000,
-     0.001573784600, -0.000370001900,  0.001552956500, -0.004327008900},
+    0.129704208100, -0.034089428900,  0.013243154600, -0.005126787000,
+    0.001573784600, -0.000370001900,  0.001552956500, -0.004327008900},
   { -0.026764892400,  0.029914914700, -0.033824115200,  0.039936894900,
     -0.048518010200,  0.062122650400, -0.091701578900,  0.261471099700,
-     0.129242600400, -0.033937289100,  0.013125955200, -0.005023257700,
-     0.001477736900, -0.000278806000,  0.001483063100, -0.004260417800},
+    0.129242600400, -0.033937289100,  0.013125955200, -0.005023257700,
+    0.001477736900, -0.000278806000,  0.001483063100, -0.004260417800},
   { -0.026723942900,  0.029866954600, -0.033776306400,  0.039885777900,
     -0.048484357900,  0.062095944700, -0.091689502800,  0.261832669700,
-     0.128796851700, -0.033792097000,  0.013014623800, -0.004924853700,
-     0.001386785000, -0.000193120700,  0.001405618600, -0.004204208100},
+    0.128796851700, -0.033792097000,  0.013014623800, -0.004924853700,
+    0.001386785000, -0.000193120700,  0.001405618600, -0.004204208100},
   { -0.026677369100,  0.029823200100, -0.033723634100,  0.039840829600,
     -0.048439828000,  0.062052525700, -0.091667171300,  0.262181947100,
-     0.128351507600, -0.033643014900,  0.012908660300, -0.004821497300,
-     0.001297966400, -0.000110045000,  0.001331802200, -0.004139947900},
+    0.128351507600, -0.033643014900,  0.012908660300, -0.004821497300,
+    0.001297966400, -0.000110045000,  0.001331802200, -0.004139947900},
   { -0.026631089400,  0.029779644500, -0.033684178100,  0.039790688300,
     -0.048395229300,  0.062022592400, -0.091650848600,  0.262539269000,
-     0.127907136500, -0.033498033100,  0.012797985100, -0.004723290400,
-     0.001205478700, -0.000034034800,  0.001256538900, -0.004085082700},
+    0.127907136500, -0.033498033100,  0.012797985100, -0.004723290400,
+    0.001205478700, -0.000034034800,  0.001256538900, -0.004085082700},
   { -0.026573902300,  0.029720893300, -0.033623583100,  0.039737596900,
     -0.048340055700,  0.061978479200, -0.091617477500,  0.262888924200,
-     0.127463754300, -0.033360614900,  0.012695304100, -0.004633631600,
-     0.001122432500,  0.000044341700,  0.001186615500, -0.004024302800},
+    0.127463754300, -0.033360614900,  0.012695304100, -0.004633631600,
+    0.001122432500,  0.000044341700,  0.001186615500, -0.004024302800},
   { -0.026522150600,  0.029670790800, -0.033575106100,  0.039688914300,
     -0.048301375000,  0.061932964300, -0.091590421200,  0.263234790300,
-     0.127016546500, -0.033218503400,  0.012588312500, -0.004539881200,
-     0.001035742900,  0.000126628900,  0.001111797200, -0.003970051000},
+    0.127016546500, -0.033218503400,  0.012588312500, -0.004539881200,
+    0.001035742900,  0.000126628900,  0.001111797200, -0.003970051000},
   { -0.026473220500,  0.029612627700, -0.033515051500,  0.039624070900,
     -0.048240646500,  0.061883959100, -0.091552786700,  0.263570751000,
-     0.126588986000, -0.033087770300,  0.012491700600, -0.004455578400,
-     0.000957623400,  0.000200514600,  0.001045891900, -0.003912507000},
+    0.126588986000, -0.033087770300,  0.012491700600, -0.004455578400,
+    0.000957623400,  0.000200514600,  0.001045891900, -0.003912507000},
   { -0.026409434000,  0.029556965600, -0.033460776600,  0.039568933000,
     -0.048182001300,  0.061834912800, -0.091525806900,  0.263910245800,
-     0.126156834400, -0.032952152900,  0.012390643600, -0.004367158600,
-     0.000875358500,  0.000278697700,  0.000974841200, -0.003861457500},
+    0.126156834400, -0.032952152900,  0.012390643600, -0.004367158600,
+    0.000875358500,  0.000278697700,  0.000974841200, -0.003861457500},
   { -0.026353317400,  0.029502101900, -0.033394973500,  0.039508550400,
     -0.048117964600,  0.061780340600, -0.091479732400,  0.264247652100,
-     0.125720795200, -0.032819571200,  0.012293251100, -0.004282623500,
-     0.000796996500,  0.000353021900,  0.000908270600, -0.003803350600},
+    0.125720795200, -0.032819571200,  0.012293251100, -0.004282623500,
+    0.000796996500,  0.000353021900,  0.000908270600, -0.003803350600},
   { -0.026300063600,  0.029438925700, -0.033329672000,  0.039436382500,
     -0.048060026200,  0.061726016900, -0.091434512400,  0.264577145700,
-     0.125295550200, -0.032687548300,  0.012206896600, -0.004201204700,
-     0.000720904000,  0.000425856500,  0.000841447500, -0.003755895200},
+    0.125295550200, -0.032687548300,  0.012206896600, -0.004201204700,
+    0.000720904000,  0.000425856500,  0.000841447500, -0.003755895200},
   { -0.026232862100,  0.029378736300, -0.033269511800,  0.039375017600,
     -0.047995635500,  0.061659588400, -0.091383468500,  0.264900163300,
-     0.124873224300, -0.032570746200,  0.012117690200, -0.004123793300,
-     0.000649052900,  0.000494443100,  0.000780101600, -0.003702105200},
+    0.124873224300, -0.032570746200,  0.012117690200, -0.004123793300,
+    0.000649052900,  0.000494443100,  0.000780101600, -0.003702105200},
   { -0.026173704500,  0.029320278800, -0.033199111900,  0.039309873100,
     -0.047925510600,  0.061597170100, -0.091339033000,  0.265233959000,
-     0.124448392000, -0.032439785200,  0.012020034000, -0.004049722900,
-     0.000572266200,  0.000556866100,  0.000718027400, -0.003647327300},
+    0.124448392000, -0.032439785200,  0.012020034000, -0.004049722900,
+    0.000572266200,  0.000556866100,  0.000718027400, -0.003647327300},
   { -0.026115105800,  0.029249328200, -0.033136595000,  0.039232475500,
     -0.047860778200,  0.061535070700, -0.091283444100,  0.265553269700,
-     0.124029148500, -0.032311531400,  0.011937971200, -0.003972488800,
-     0.000499981800,  0.000626385600,  0.000653931700, -0.003602065500},
+    0.124029148500, -0.032311531400,  0.011937971200, -0.003972488800,
+    0.000499981800,  0.000626385600,  0.000653931700, -0.003602065500},
   { -0.026053040700,  0.029187959100, -0.033061913700,  0.039161387400,
     -0.047784155800,  0.061464903000, -0.091231578000,  0.265868569100,
-     0.123611901100, -0.032198029300,  0.011852192100, -0.003898279700,
-     0.000430866400,  0.000692495800,  0.000594828700, -0.003550040600},
+    0.123611901100, -0.032198029300,  0.011852192100, -0.003898279700,
+    0.000430866400,  0.000692495800,  0.000594828700, -0.003550040600},
   { -0.025979190500,  0.029119110500, -0.032993298700,  0.039088687600,
     -0.047717396700,  0.061398326100, -0.091168632300,  0.266191486300,
-     0.123192522800, -0.032068754900,  0.011769073200, -0.003818881300,
-     0.000367747300,  0.000760093900,  0.000531731300, -0.003505638300},
+    0.123192522800, -0.032068754900,  0.011769073200, -0.003818881300,
+    0.000367747300,  0.000760093900,  0.000531731300, -0.003505638300},
   { -0.025916736900,  0.029044984700, -0.032912027100,  0.039010819600,
     -0.047633284300,  0.061319593900, -0.091106317700,  0.266496871700,
-     0.122782327100, -0.031960441800,  0.011688497100, -0.003749535300,
-     0.000303040600,  0.000822340300,  0.000475867100, -0.003456266600},
+    0.122782327100, -0.031960441800,  0.011688497100, -0.003749535300,
+    0.000303040600,  0.000822340300,  0.000475867100, -0.003456266600},
   { -0.025852313500,  0.028979555600, -0.032847149600,  0.038930581400,
     -0.047553631700,  0.061249320900, -0.091041565400,  0.266807297400,
-     0.122364892800, -0.031842624600,  0.011609993400, -0.003674451700,
-     0.000230091300,  0.000883119400,  0.000424433200, -0.003415490600},
+    0.122364892800, -0.031842624600,  0.011609993400, -0.003674451700,
+    0.000230091300,  0.000883119400,  0.000424433200, -0.003415490600},
   { -0.025775412400,  0.028907556300, -0.032761339500,  0.038846825400,
     -0.047473566900,  0.061166435400, -0.090972059800,  0.267117532200,
-     0.121966313400, -0.031726469200,  0.011526657700, -0.003614337200,
-     0.000167921300,  0.000943784400,  0.000369742900, -0.003367277200},
+    0.121966313400, -0.031726469200,  0.011526657700, -0.003614337200,
+    0.000167921300,  0.000943784400,  0.000369742900, -0.003367277200},
   { -0.025709333200,  0.028827467700, -0.032686245400,  0.038767569400,
     -0.047387160100,  0.061086213100, -0.090894622700,  0.267415888400,
-     0.121558234900, -0.031616336600,  0.011456238300, -0.003548028100,
-     0.000105206400,  0.001004973300,  0.000312623600, -0.003327797000},
+    0.121558234900, -0.031616336600,  0.011456238300, -0.003548028100,
+    0.000105206400,  0.001004973300,  0.000312623600, -0.003327797000},
   { -0.025638962100,  0.028755960800, -0.032600073600,  0.038681603800,
     -0.047304659400,  0.061000604600, -0.090822485700,  0.267711413800,
-     0.121152150800, -0.031508074100,  0.011387738000, -0.003483800400,
-     0.000044884500,  0.001063521800,  0.000259812600, -0.003280931700},
+    0.121152150800, -0.031508074100,  0.011387738000, -0.003483800400,
+    0.000044884500,  0.001063521800,  0.000259812600, -0.003280931700},
   { -0.025558748500,  0.028679119400, -0.032520166800,  0.038596766500,
     -0.047212175500,  0.060911299100, -0.090745034900,  0.268015321100,
-     0.120754514200, -0.031402432600,  0.011309574900, -0.003414828400,
+    0.120754514200, -0.031402432600,  0.011309574900, -0.003414828400,
     -0.000008679700,  0.001122626500,  0.000204180800, -0.003242762700},
   { -0.025491004800,  0.028598264500, -0.032433214400,  0.038499397300,
     -0.047124517500,  0.060822958600, -0.090656855500,  0.268302409700,
-     0.120353034900, -0.031296168100,  0.011241308700, -0.003361438800,
+    0.120353034900, -0.031296168100,  0.011241308700, -0.003361438800,
     -0.000066919400,  0.001168676900,  0.000156014300, -0.003199268400},
   { -0.025418085200,  0.028521763200, -0.032353226800,  0.038413339800,
     -0.047029530200,  0.060731151800, -0.090577351800,  0.268593285800,
-     0.119959312000, -0.031191167100,  0.011175918200, -0.003299906800,
+    0.119959312000, -0.031191167100,  0.011175918200, -0.003299906800,
     -0.000125395300,  0.001226211900,  0.000102202900, -0.003162561900},
   { -0.025341820300,  0.028442350400, -0.032256880200,  0.038315834400,
     -0.046933803100,  0.060629970500, -0.090484913100,  0.268880111900,
-     0.119563660200, -0.031092550300,  0.011105920600, -0.003240720400,
+    0.119563660200, -0.031092550300,  0.011105920600, -0.003240720400,
     -0.000180668100,  0.001280388200,  0.000052969800, -0.003118681600},
   { -0.025257897700,  0.028361984300, -0.032173379200,  0.038225851900,
     -0.046832398400,  0.060542535700, -0.090401757000,  0.269167050700,
-     0.119168850700, -0.030996156800,  0.011040895200, -0.003190341200,
+    0.119168850700, -0.030996156800,  0.011040895200, -0.003190341200,
     -0.000235221900,  0.001334856800,  0.000001652200, -0.003084097600},
   { -0.025185554200,  0.028274348700, -0.032076686500,  0.038128681100,
     -0.046738202500,  0.060444527700, -0.090299385000,  0.269453183200,
-     0.118781343500, -0.030894968100,  0.010978749000, -0.003129872000,
+    0.118781343500, -0.030894968100,  0.010978749000, -0.003129872000,
     -0.000282666000,  0.001376710400, -0.000043286100, -0.003043352800},
   { -0.025109965600,  0.028194618000, -0.031994340000,  0.038028249000,
     -0.046633690800,  0.060342765300, -0.090208244500,  0.269732724800,
-     0.118393292300, -0.030792208700,  0.010914101700, -0.003080051000,
+    0.118393292300, -0.030792208700,  0.010914101700, -0.003080051000,
     -0.000337127500,  0.001433304900, -0.000085506800, -0.003010799000},
   { -0.025021832500,  0.028108476700, -0.031903279600,  0.037928400600,
     -0.046534338000,  0.060237393200, -0.090110535200,  0.270004747300,
-     0.118009163200, -0.030704739700,  0.010859951400, -0.003028924400,
+    0.118009163200, -0.030704739700,  0.010859951400, -0.003028924400,
     -0.000385645100,  0.001481455800, -0.000129367200, -0.002971404300},
   { -0.024945375600,  0.028016349500, -0.031801130600,  0.037824453100,
     -0.046429802200,  0.060137232300, -0.090009416000,  0.270285855600,
-     0.117623618000, -0.030603272900,  0.010796286200, -0.002978759900,
+    0.117623618000, -0.030603272900,  0.010796286200, -0.002978759900,
     -0.000428383200,  0.001531519200, -0.000177806100, -0.002939110000},
   { -0.024865514300,  0.027931517600, -0.031710668200,  0.037725963100,
     -0.046320155000,  0.060028342200, -0.089907403100,  0.270554278500,
-     0.117240864200, -0.030515733500,  0.010742257600, -0.002927315300,
+    0.117240864200, -0.030515733500,  0.010742257600, -0.002927315300,
     -0.000479303700,  0.001570599400, -0.000219487800, -0.002900989400},
   { -0.024784044100,  0.027845171900, -0.031606514800,  0.037619046000,
     -0.046212603400,  0.059912731300, -0.089796024200,  0.270824597700,
-     0.116863187300, -0.030421218200,  0.010686302700, -0.002886726400,
+    0.116863187300, -0.030421218200,  0.010686302700, -0.002886726400,
     -0.000524060200,  0.001616196800, -0.000261546500, -0.002863090600},
   { -0.024696294000,  0.027746587900, -0.031508865800,  0.037513479000,
     -0.046095149100,  0.059794346400, -0.089682984500,  0.271082832700,
-     0.116487577100, -0.030338939200,  0.010637555700, -0.002840569000,
+    0.116487577100, -0.030338939200,  0.010637555700, -0.002840569000,
     -0.000568717900,  0.001661742100, -0.000305400500, -0.002834574300},
   { -0.024614179100,  0.027660621000, -0.031405176100,  0.037406419500,
     -0.045986571500,  0.059689822100, -0.089576437400,  0.271346326500,
-     0.116105596800, -0.030249393200,  0.010579370800, -0.002794808000,
+    0.116105596800, -0.030249393200,  0.010579370800, -0.002794808000,
     -0.000608943300,  0.001697477500, -0.000344868200, -0.002798079400},
   { -0.024528121700,  0.027568162200, -0.031304965400,  0.037295135500,
     -0.045873231900,  0.059565965700, -0.089466219000,  0.271612337400,
-     0.115727569700, -0.030164681700,  0.010528906800, -0.002747163000,
+    0.115727569700, -0.030164681700,  0.010528906800, -0.002747163000,
     -0.000654868000,  0.001744376300, -0.000389873200, -0.002768719300},
   { -0.024437594700,  0.027478273400, -0.031210219100,  0.037192230500,
     -0.045758252600,  0.059449185200, -0.089354351300,  0.271872904900,
-     0.115356267200, -0.030075860600,  0.010482924400, -0.002707124200,
+    0.115356267200, -0.030075860600,  0.010482924400, -0.002707124200,
     -0.000689215900,  0.001788462900, -0.000419849000, -0.002735490700},
   { -0.024355993600,  0.027379891900, -0.031100796100,  0.037065976700,
     -0.045634938700,  0.059329528700, -0.089228688900,  0.272129953900,
-     0.114983831800, -0.029994677500,  0.010435538400, -0.002661448300,
+    0.114983831800, -0.029994677500,  0.010435538400, -0.002661448300,
     -0.000735439500,  0.001824188800, -0.000461001300, -0.002708812100},
   { -0.024270058800,  0.027286742200, -0.031000132500,  0.036954725600,
     -0.045521223000,  0.059206370700, -0.089107334300,  0.272380972500,
-     0.114620841300, -0.029915068400,  0.010387943600, -0.002628339500,
+    0.114620841300, -0.029915068400,  0.010387943600, -0.002628339500,
     -0.000773306300,  0.001863568800, -0.000497529300, -0.002675426700},
   { -0.024182088200,  0.027193422300, -0.030886948300,  0.036835959600,
     -0.045398291800,  0.059082508900, -0.088988209700,  0.272637989000,
-     0.114246195000, -0.029830210100,  0.010335223100, -0.002588198100,
+    0.114246195000, -0.029830210100,  0.010335223100, -0.002588198100,
     -0.000806920200,  0.001905685000, -0.000539287700, -0.002648556200},
   { -0.024087333600,  0.027097712600, -0.030784892400,  0.036723589400,
     -0.045271977200,  0.058953274300, -0.088859686000,  0.272881898500,
-     0.113886584200, -0.029750846500,  0.010301351000, -0.002549947700,
+    0.113886584200, -0.029750846500,  0.010301351000, -0.002549947700,
     -0.000846562800,  0.001934940900, -0.000572476600, -0.002617432700},
   { -0.024001590900,  0.026993402700, -0.030679000400,  0.036606443900,
     -0.045150554000,  0.058832779800, -0.088732072900,  0.273125908800,
-     0.113513193200, -0.029676327000,  0.010252711500, -0.002513122700,
+    0.113513193200, -0.029676327000,  0.010252711500, -0.002513122700,
     -0.000877067200,  0.001974049600, -0.000611735800, -0.002592531600},
   { -0.023913083300,  0.026898455900, -0.030563119800,  0.036484791400,
     -0.045025119300,  0.058693934100, -0.088603102200,  0.273374591600,
-     0.113154412600, -0.029598886400,  0.010207398600, -0.002481943700,
+    0.113154412600, -0.029598886400,  0.010207398600, -0.002481943700,
     -0.000913965300,  0.002015094700, -0.000638597900, -0.002562081700},
   { -0.023815374100,  0.026799344000, -0.030457501700,  0.036367072300,
     -0.044902786100,  0.058572790800, -0.088473828000,  0.273618006800,
-     0.112791388300, -0.029513195500,  0.010165016900, -0.002444944300,
+    0.112791388300, -0.029513195500,  0.010165016900, -0.002444944300,
     -0.000947146600,  0.002045354700, -0.000675641700, -0.002538546200},
   { -0.023725485500,  0.026701008800, -0.030349857900,  0.036247749400,
     -0.044767731000,  0.058431854000, -0.088329074400,  0.273857995500,
-     0.112436237300, -0.029450197300,  0.010130406600, -0.002412292800,
+    0.112436237300, -0.029450197300,  0.010130406600, -0.002412292800,
     -0.000979178500,  0.002079209800, -0.000707489700, -0.002509178900},
   { -0.023639414500,  0.026596958900, -0.030232021100,  0.036123651800,
     -0.044638462800,  0.058300810100, -0.088200445900,  0.274096422800,
-     0.112076957700, -0.029366888100,  0.010090405600, -0.002377569500,
+    0.112076957700, -0.029366888100,  0.010090405600, -0.002377569500,
     -0.001010435600,  0.002107901300, -0.000743082100, -0.002486798400},
   { -0.023547531800,  0.026496227300, -0.030121514300,  0.036000215000,
     -0.044509951300,  0.058159209800, -0.088052895500,  0.274333594900,
-     0.111721745400, -0.029301943900,  0.010052135800, -0.002353097400,
+    0.111721745400, -0.029301943900,  0.010052135800, -0.002353097400,
     -0.001040420000,  0.002140548500, -0.000774072300, -0.002458072800},
   { -0.023446642300,  0.026393710400, -0.030010656200,  0.035875683000,
     -0.044378805200,  0.058025057300, -0.087919930200,  0.274567466000,
-     0.111361951300, -0.029228839400,  0.010016783300, -0.002322951600,
+    0.111361951300, -0.029228839400,  0.010016783300, -0.002322951600,
     -0.001065376500,  0.002174932100, -0.000809275400, -0.002436583600},
   { -0.023356224600,  0.026296883500, -0.029893238400,  0.035750612400,
     -0.044247467300,  0.057893310100, -0.087777694100,  0.274797647300,
-     0.111004330000, -0.029157146400,  0.009982935500, -0.002295711000,
+    0.111004330000, -0.029157146400,  0.009982935500, -0.002295711000,
     -0.001101449700,  0.002203852900, -0.000831096900, -0.002409751900},
   { -0.023265168600,  0.026184102500, -0.029776226200,  0.035620616000,
     -0.044111852100,  0.057741079400, -0.087628679600,  0.275027780000,
-     0.110654857700, -0.029083534200,  0.009941856300, -0.002266843400,
+    0.110654857700, -0.029083534200,  0.009941856300, -0.002266843400,
     -0.001124397300,  0.002236651900, -0.000865190200, -0.002389152800},
   { -0.023164098500,  0.026080272800, -0.029663348400,  0.035494092700,
     -0.043965976300,  0.057598214300, -0.087485388500,  0.275252475700,
-     0.110312292600, -0.029019980500,  0.009918196800, -0.002237980900,
+    0.110312292600, -0.029019980500,  0.009918196800, -0.002237980900,
     -0.001155997700,  0.002258762900, -0.000891896000, -0.002363396600},
   { -0.023071295000,  0.025980032600, -0.029541639900,  0.035363736500,
     -0.043828523400,  0.057457528900, -0.087329639600,  0.275481985700,
-     0.109957830700, -0.028949989000,  0.009886431100, -0.002211532800,
+    0.109957830700, -0.028949989000,  0.009886431100, -0.002211532800,
     -0.001177431500,  0.002290080300, -0.000924936400, -0.002343785600},
   { -0.022977857000,  0.025877315200, -0.029428661900,  0.035236477300,
     -0.043694747100,  0.057307956100, -0.087183966300,  0.275705340200,
-     0.109614224000, -0.028883563000,  0.009858208200, -0.002190231800,
+    0.109614224000, -0.028883563000,  0.009858208200, -0.002190231800,
     -0.001207356700,  0.002311491600, -0.000951184900, -0.002318342500},
   { -0.022884324300,  0.025762575100, -0.029306783100,  0.035112146900,
     -0.043556341700,  0.057163011400, -0.087035380900,  0.275924294400,
-     0.109260641300, -0.028826112600,  0.009821204200, -0.002164204600,
+    0.109260641300, -0.028826112600,  0.009821204200, -0.002164204600,
     -0.001227918200,  0.002341848700, -0.000983084300, -0.002299519300},
   { -0.022782491400,  0.025659050200, -0.029181547900,  0.034977723200,
     -0.043413931200,  0.057015156000, -0.086882727400,  0.276151572300,
-     0.108916066600, -0.028757551100,  0.009790138000, -0.002137523800,
+    0.108916066600, -0.028757551100,  0.009790138000, -0.002137523800,
     -0.001252260400,  0.002366059500, -0.001001252000, -0.002275798800},
   { -0.022685765900,  0.025552190100, -0.029064307100,  0.034844676000,
     -0.043271529100,  0.056868813300, -0.086719885800,  0.276361694700,
-     0.108569779600, -0.028692402200,  0.009764314400, -0.002119185700,
+    0.108569779600, -0.028692402200,  0.009764314400, -0.002119185700,
     -0.001277542100,  0.002395334200, -0.001032008700, -0.002257986500},
   { -0.022589602700,  0.025445511400, -0.028946376900,  0.034711343700,
     -0.043130672100,  0.056708946400, -0.086558899300,  0.276581678800,
-     0.108230473600, -0.028628118700,  0.009738656200, -0.002099057700,
+    0.108230473600, -0.028628118700,  0.009738656200, -0.002099057700,
     -0.001292564500,  0.002420334600, -0.001056977600, -0.002234052300},
   { -0.022496001600,  0.025344724600, -0.028822677500,  0.034577788700,
     -0.042988680400,  0.056561115200, -0.086406171500,  0.276798805200,
-     0.107884769000, -0.028567755500,  0.009710099800, -0.002074387600,
+    0.107884769000, -0.028567755500,  0.009710099800, -0.002074387600,
     -0.001314845000,  0.002440979000, -0.001085689500, -0.002217436800},
   { -0.022394383100,  0.025226614100, -0.028700012900,  0.034439922500,
     -0.042840028100,  0.056405162700, -0.086243310500,  0.277004327300,
-     0.107550806200, -0.028506052900,  0.009685232500, -0.002068874300,
+    0.107550806200, -0.028506052900,  0.009685232500, -0.002068874300,
     -0.001333423100,  0.002464213000, -0.001108669600, -0.002195061100},
   { -0.022297564100,  0.025119808500, -0.028581781400,  0.034305305000,
     -0.042695656200,  0.056253954500, -0.086083834300,  0.277226300200,
-     0.107203619900, -0.028443348800,  0.009654833100, -0.002042234800,
+    0.107203619900, -0.028443348800,  0.009654833100, -0.002042234800,
     -0.001358263800,  0.002489758900, -0.001130552500, -0.002179375900},
   { -0.022199944300,  0.025011964800, -0.028462099000,  0.034168711000,
     -0.042548622300,  0.056098971500, -0.085921130000,  0.277432448700,
-     0.106864987700, -0.028388245500,  0.009632664400, -0.002024860800,
+    0.106864987700, -0.028388245500,  0.009632664400, -0.002024860800,
     -0.001370844300,  0.002512274500, -0.001153285000, -0.002157159200},
   { -0.022094548100,  0.024903208900, -0.028330041100,  0.034025320000,
     -0.042394273800,  0.055936365900, -0.085747792700,  0.277639650500,
-     0.106531925400, -0.028326674100,  0.009610046500, -0.002009028700,
+    0.106531925400, -0.028326674100,  0.009610046500, -0.002009028700,
     -0.001396393300,  0.002530754500, -0.001179865400, -0.002142396800},
   { -0.021995201800,  0.024793027300, -0.028206269200,  0.033896113600,
     -0.042248483600,  0.055780937400, -0.085583072500,  0.277843916500,
-     0.106192034600, -0.028266589600,  0.009595095600, -0.001993279700,
+    0.106192034600, -0.028266589600,  0.009595095600, -0.001993279700,
     -0.001408007500,  0.002552535400, -0.001202056000, -0.002120617500},
   { -0.021901583000,  0.024677037500, -0.028084273300,  0.033757782300,
     -0.042099685900,  0.055624216900, -0.085416983300,  0.278047516100,
-     0.105852072900, -0.028207292800,  0.009568367500, -0.001970246700,
+    0.105852072900, -0.028207292800,  0.009568367500, -0.001970246700,
     -0.001429511100,  0.002575063400, -0.001221321700, -0.002106926400},
   { -0.021801611400,  0.024565652100, -0.027960051300,  0.033615404000,
     -0.041944857600,  0.055460095600, -0.085239563600,  0.278250526200,
-     0.105517476900, -0.028154247100,  0.009549327200, -0.001957811700,
+    0.105517476900, -0.028154247100,  0.009549327200, -0.001957811700,
     -0.001451556400,  0.002589582900, -0.001241753500, -0.002086264900},
   { -0.021699539700,  0.024460899000, -0.027831832100,  0.033477267300,
     -0.041798158600,  0.055292010700, -0.085067297700,  0.278450786400,
-     0.105189430300, -0.028099508700,  0.009524686500, -0.001949621100,
+    0.105189430300, -0.028099508700,  0.009524686500, -0.001949621100,
     -0.001461338600,  0.002611261800, -0.001266673600, -0.002073264900},
   { -0.021599986800,  0.024350066900, -0.027708847400,  0.033335865400,
     -0.041644581200,  0.055128391400, -0.084889121800,  0.278653475900,
-     0.104851735700, -0.028039339300,  0.009510206500, -0.001933711100,
+    0.104851735700, -0.028039339300,  0.009510206500, -0.001933711100,
     -0.001475643600,  0.002624167700, -0.001286367400, -0.002053034800},
   { -0.021501456000,  0.024240038400, -0.027586029200,  0.033194974400,
     -0.041491644800,  0.054965250700, -0.084713840400,  0.278849784900,
-     0.104526215400, -0.027986541700,  0.009490451500, -0.001918547800,
+    0.104526215400, -0.027986541700,  0.009490451500, -0.001918547800,
     -0.001486507400,  0.002645934000, -0.001311257700, -0.002040050600},
   { -0.021403770100,  0.024118477100, -0.027455391500,  0.033058704200,
     -0.041335183200,  0.054809534600, -0.084538637100,  0.279042526200,
-     0.104190543900, -0.027927521300,  0.009462422300, -0.001906698600,
+    0.104190543900, -0.027927521300,  0.009462422300, -0.001906698600,
     -0.001502518600,  0.002663196100, -0.001323447400, -0.002021097800},
   { -0.021298248700,  0.024009912800, -0.027321991400,  0.032911712700,
     -0.041174711300,  0.054635449300, -0.084361255500,  0.279243346600,
-     0.103861290100, -0.027880462700,  0.009455425900, -0.001900093500,
+    0.103861290100, -0.027880462700,  0.009455425900, -0.001900093500,
     -0.001518047500,  0.002684579000, -0.001347505300, -0.002009220500},
   { -0.021198957800,  0.023898644100, -0.027197497600,  0.032768596100,
     -0.041018806300,  0.054468678800, -0.084179631800,  0.279432441200,
-     0.103538923200, -0.027828661600,  0.009436950100, -0.001885898300,
+    0.103538923200, -0.027828661600,  0.009436950100, -0.001885898300,
     -0.001530065500,  0.002695060500, -0.001364801200, -0.001990835900},
   { -0.021097697500,  0.023785545000, -0.027071437200,  0.032621932300,
     -0.040870290800,  0.054302452500, -0.083997214900,  0.279619234800,
-     0.103205041100, -0.027767473800,  0.009419594300, -0.001879709700,
+    0.103205041100, -0.027767473800,  0.009419594300, -0.001879709700,
     -0.001538161700,  0.002715202100, -0.001388824500, -0.001978335000},
   { -0.020996580900,  0.023672059200, -0.026941818000,  0.032485359700,
     -0.040714985700,  0.054134314800, -0.083810986900,  0.279815921900,
-     0.102875847200, -0.027719967200,  0.009399847000, -0.001863555500,
+    0.102875847200, -0.027719967200,  0.009399847000, -0.001863555500,
     -0.001552949300,  0.002731039900, -0.001399562800, -0.001960990100},
   { -0.020894037400,  0.023552023700, -0.026814717500,  0.032339646100,
     -0.040555637300,  0.053961014100, -0.083632987700,  0.280004451900,
-     0.102547554800, -0.027669483100,  0.009389127400, -0.001850389700,
+    0.102547554800, -0.027669483100,  0.009389127400, -0.001850389700,
     -0.001565501700,  0.002743236000, -0.001421126700, -0.001950196300},
   { -0.020796180800,  0.023444081100, -0.026681026200,  0.032192706400,
     -0.040395032300,  0.053787235200, -0.083442004400,  0.280184129200,
-     0.102229591200, -0.027619025000,  0.009370146400, -0.001848435300,
+    0.102229591200, -0.027619025000,  0.009370146400, -0.001848435300,
     -0.001568643300,  0.002757857900, -0.001437420100, -0.001933077600},
   { -0.020695687800,  0.023331738800, -0.026554662000,  0.032046118400,
     -0.040233651400,  0.053610471900, -0.083256870000,  0.280377353300,
-     0.101900357800, -0.027567373500,  0.009358983900, -0.001835136600,
+    0.101900357800, -0.027567373500,  0.009358983900, -0.001835136600,
     -0.001581275300,  0.002770198900, -0.001459273400, -0.001922140900},
   { -0.020596163500,  0.023219719400, -0.026426870800,  0.031911263600,
     -0.040078628800,  0.053441716200, -0.083070602600,  0.280564653200,
-     0.101581276800, -0.027518324200,  0.009347882600, -0.001837111200,
+    0.101581276800, -0.027518324200,  0.009347882600, -0.001837111200,
     -0.001593896400,  0.002791306400, -0.001469185600, -0.001906217800},
   { -0.020486105200,  0.023102669400, -0.026295748600,  0.031757335000,
     -0.039919465700,  0.053275619900, -0.082878251100,  0.280742505700,
-     0.101258880600, -0.027473598000,  0.009331442300, -0.001823983800,
+    0.101258880600, -0.027473598000,  0.009331442300, -0.001823983800,
     -0.001605491000,  0.002802122100, -0.001489715900, -0.001896148500},
   { -0.020386038100,  0.022990763600, -0.026169842500,  0.031611536400,
     -0.039758154000,  0.053098254300, -0.082692676700,  0.280922614500,
-     0.100932867600, -0.027421788700,  0.009318026600, -0.001820868000,
+    0.100932867600, -0.027421788700,  0.009318026600, -0.001820868000,
     -0.001613216100,  0.002809677500, -0.001504548000, -0.001879711300},
   { -0.020285435000,  0.022877455000, -0.026042393200,  0.031463335700,
     -0.039594468800,  0.052919415400, -0.082490397700,  0.281103932300,
-     0.100609916000, -0.027373640000,  0.009311303900, -0.001812957700,
+    0.100609916000, -0.027373640000,  0.009311303900, -0.001812957700,
     -0.001617884900,  0.002826213600, -0.001525588000, -0.001869926500},
   { -0.020192073400,  0.022761936700, -0.025903756400,  0.031323202100,
     -0.039434316600,  0.052741885600, -0.082304345000,  0.281286138200,
-     0.100291413500, -0.027321921500,  0.009296869200, -0.001808517000,
+    0.100291413500, -0.027321921500,  0.009296869200, -0.001808517000,
     -0.001627660100,  0.002838490600, -0.001533110500, -0.001855192900},
   { -0.020082641400,  0.022645343300, -0.025773553200,  0.031169977600,
     -0.039274706000,  0.052574179500, -0.082107814900,  0.281460005200,
-     0.099967050900, -0.027269207300,  0.009282507800, -0.001804192200,
+    0.099967050900, -0.027269207300,  0.009282507800, -0.001804192200,
     -0.001636760100,  0.002847881000, -0.001552740800, -0.001845760100},
   { -0.019981165400,  0.022530400400, -0.025642740200,  0.031017613200,
     -0.039105374000,  0.052385802800, -0.081905722200,  0.281637176300,
-     0.099657892600, -0.027230252500,  0.009272886300, -0.001799068700,
+    0.099657892600, -0.027230252500,  0.009272886300, -0.001799068700,
     -0.001637727000,  0.002860056400, -0.001566710200, -0.001830818000},
   { -0.019880568400,  0.022416781800, -0.025512202200,  0.030878936400,
     -0.038945254600,  0.052207335300, -0.081716496200,  0.281816351400,
-     0.099338786400, -0.027175974500,  0.009256393500, -0.001792635900,
+    0.099338786400, -0.027175974500,  0.009256393500, -0.001792635900,
     -0.001649711300,  0.002875237500, -0.001579820600, -0.001822507700},
   { -0.019782364100,  0.022306311600, -0.025387269800,  0.030733042100,
     -0.038783583100,  0.052030462600, -0.081515568600,  0.281989192800,
-     0.099021663300, -0.027135898100,  0.009251959300, -0.001785903000,
+    0.099021663300, -0.027135898100,  0.009251959300, -0.001785903000,
     -0.001655707600,  0.002880377400, -0.001592362400, -0.001808127200},
   { -0.019671249500,  0.022187350300, -0.025253455800,  0.030574773900,
     -0.038616812900,  0.051850662000, -0.081315971000,  0.282153907600,
-     0.098702548800, -0.027086143300,  0.009241521900, -0.001786417100,
+    0.098702548800, -0.027086143300,  0.009241521900, -0.001786417100,
     -0.001657398400,  0.002894723100, -0.001611646700, -0.001799471600},
   { -0.019570606700,  0.022073795700, -0.025122240000,  0.030434707800,
     -0.038454440300,  0.051668545300, -0.081120147400,  0.282326299200,
-     0.098383808800, -0.027042545900,  0.009231168400, -0.001786186700,
+    0.098383808800, -0.027042545900,  0.009231168400, -0.001786186700,
     -0.001662356200,  0.002899683900, -0.001624082400, -0.001785075000},
   { -0.019479635100,  0.021960407900, -0.024988398200,  0.030286004000,
     -0.038289759200,  0.051487224000, -0.080910856000,  0.282503350600,
-     0.098066057000, -0.026984567000,  0.009223573800, -0.001783286000,
+    0.098066057000, -0.026984567000,  0.009223573800, -0.001783286000,
     -0.001671632200,  0.002912741900, -0.001635839700, -0.001778008400},
   { -0.019377155600,  0.021844654800, -0.024856282600,  0.030128070300,
     -0.038122909500,  0.051306676900, -0.080708954700,  0.282668132600,
-     0.097753369800, -0.026946759500,  0.009222427700, -0.001780604500,
+    0.097753369800, -0.026946759500,  0.009222427700, -0.001780604500,
     -0.001670895300,  0.002923256000, -0.001648349000, -0.001764156100},
   { -0.019269257400,  0.021728932000, -0.024723351000,  0.029986133000,
     -0.037958156200,  0.051121120600, -0.080507440900,  0.282834989500,
-     0.097436064800, -0.026902305100,  0.009211401200, -0.001779605600,
+    0.097436064800, -0.026902305100,  0.009211401200, -0.001779605600,
     -0.001677015500,  0.002930209300, -0.001665754600, -0.001756624600},
   { -0.019170951200,  0.021617945900, -0.024597228000,  0.029837934200,
     -0.037790101700,  0.050945404700, -0.080311308100,  0.283008922400,
-     0.097122904600, -0.026855831200,  0.009197158400, -0.001772074700,
+    0.097122904600, -0.026855831200,  0.009197158400, -0.001772074700,
     -0.001678044700,  0.002939243500, -0.001670904800, -0.001743866400},
   { -0.019071619200,  0.021505473200, -0.024469290200,  0.029686120900,
     -0.037632549500,  0.050764840500, -0.080100778400,  0.283171957600,
-     0.096806832700, -0.026811221400,  0.009186304800, -0.001771162500,
+    0.096806832700, -0.026811221400,  0.009186304800, -0.001771162500,
     -0.001683731000,  0.002945624400, -0.001687977400, -0.001736577200},
   { -0.018968488000,  0.021388132400, -0.024333413500,  0.029538083300,
     -0.037457346700,  0.050578218900, -0.079887593500,  0.283337590700,
-     0.096492955100, -0.026767354800,  0.009192163800, -0.001770832400,
+    0.096492955100, -0.026767354800,  0.009192163800, -0.001770832400,
     -0.001681516300,  0.002955079600, -0.001699869700, -0.001723295500},
   { -0.018862478100,  0.021274150600, -0.024204158900,  0.029384739600,
     -0.037297550600,  0.050392415300, -0.079683587600,  0.283504106100,
-     0.096183264500, -0.026722407800,  0.009180232100, -0.001768308200,
+    0.096183264500, -0.026722407800,  0.009180232100, -0.001768308200,
     -0.001689724600,  0.002967018600, -0.001710235900, -0.001717442700},
   { -0.018761561600,  0.021159356200, -0.024070689600,  0.029241121700,
     -0.037129754000,  0.050201664600, -0.079472717100,  0.283660491100,
-     0.095870802000, -0.026679621900,  0.009171925300, -0.001770702400,
+    0.095870802000, -0.026679621900,  0.009171925300, -0.001770702400,
     -0.001691965100,  0.002969448100, -0.001720493300, -0.001704658800},
   { -0.018668595300,  0.021041132500, -0.023942524200,  0.029090435800,
     -0.036957408700,  0.050019918900, -0.079266196800,  0.283824708400,
-     0.095561100700, -0.026630607200,  0.009168743300, -0.001772231300,
+    0.095561100700, -0.026630607200,  0.009168743300, -0.001772231300,
     -0.001696435000,  0.002974894800, -0.001736659300, -0.001698209200},
   { -0.018571534300,  0.020933121700, -0.023805663500,  0.028933443100,
     -0.036793287300,  0.049827569900, -0.079052887900,  0.283981176300,
-     0.095258665900, -0.026591723800,  0.009164052800, -0.001778570200,
+    0.095258665900, -0.026591723800,  0.009164052800, -0.001778570200,
     -0.001691727400,  0.002982552200, -0.001746931600, -0.001686115500},
   { -0.018463951300,  0.020817422100, -0.023671874000,  0.028788840800,
     -0.036622085000,  0.049644890900, -0.078843755900,  0.284139414500,
-     0.094937302500, -0.026549370400,  0.009150120900, -0.001771057900,
+    0.094937302500, -0.026549370400,  0.009150120900, -0.001771057900,
     -0.001693172900,  0.002992954400, -0.001756770400, -0.001680418200},
   { -0.018364139000,  0.020703740000, -0.023541974700,  0.028632330500,
     -0.036454574300,  0.049461377000, -0.078632258000,  0.284297024000,
-     0.094630560000, -0.026501577500,  0.009148770700, -0.001774906500,
+    0.094630560000, -0.026501577500,  0.009148770700, -0.001774906500,
     -0.001694643800,  0.002994642500, -0.001766316400, -0.001668313800},
   { -0.018266186600,  0.020592415900, -0.023412213700,  0.028492007500,
     -0.036289687800,  0.049272679100, -0.078421164800,  0.284457324700,
-     0.094316696700, -0.026457830700,  0.009146283300, -0.001777143500,
+    0.094316696700, -0.026457830700,  0.009146283300, -0.001777143500,
     -0.001698314300,  0.002999487700, -0.001781999900, -0.001662265200},
   { -0.018165847100,  0.020477739000, -0.023280404100,  0.028333282800,
     -0.036119295000,  0.049084885500, -0.078204266000,  0.284608657200,
-     0.094014760000, -0.026416553200,  0.009139701600, -0.001781460200,
+    0.094014760000, -0.026416553200,  0.009139701600, -0.001781460200,
     -0.001696266500,  0.003012636900, -0.001785770200, -0.001651378600},
   { -0.018061008600,  0.020364436200, -0.023149218600,  0.028191490700,
     -0.035952564600,  0.048893523500, -0.077988760200,  0.284764041400,
-     0.093702911100, -0.026373328800,  0.009137987500, -0.001784607900,
+    0.093702911100, -0.026373328800,  0.009137987500, -0.001784607900,
     -0.001699031600,  0.003016678700, -0.001800824700, -0.001645793200},
   { -0.017963440300,  0.020253539400, -0.023021819100,  0.028040064200,
     -0.035778114400,  0.048706755700, -0.077771874700,  0.284916529600,
-     0.093393907400, -0.026335334700,  0.009129169500, -0.001782780900,
+    0.093393907400, -0.026335334700,  0.009129169500, -0.001782780900,
     -0.001693615300,  0.003016455700, -0.001809252200, -0.001634392700},
   { -0.017864500900,  0.020140353900, -0.022889140600,  0.027892719100,
     -0.035614488000,  0.048525355700, -0.077560338000,  0.285077698000,
-     0.093086772800, -0.026290376100,  0.009124974400, -0.001782837800,
+    0.093086772800, -0.026290376100,  0.009124974400, -0.001782837800,
     -0.001700124000,  0.003027010500, -0.001818503700, -0.001629703000},
   { -0.017767797800,  0.020029767800, -0.022762632500,  0.027742539400,
     -0.035443127000,  0.048328815000, -0.077336969100,  0.285223614300,
-     0.092784329800, -0.026242686200,  0.009124739900, -0.001788644700,
+    0.092784329800, -0.026242686200,  0.009124739900, -0.001788644700,
     -0.001699564500,  0.003026957800, -0.001826555800, -0.001618684700},
   { -0.017673081200,  0.019908421800, -0.022626375700,  0.027591688900,
     -0.035275280700,  0.048141797500, -0.077116537300,  0.285372738700,
-     0.092474868600, -0.026199049700,  0.009123179000, -0.001792125700,
+    0.092474868600, -0.026199049700,  0.009123179000, -0.001792125700,
     -0.001701864700,  0.003030366000, -0.001841112200, -0.001613422400},
   { -0.017567749800,  0.019794038100, -0.022494731800,  0.027432475300,
     -0.035103343800,  0.047947719600, -0.076901860200,  0.285524247500,
-     0.092174773000, -0.026162495500,  0.009115656500, -0.001791780100,
+    0.092174773000, -0.026162495500,  0.009115656500, -0.001791780100,
     -0.001692544800,  0.003041601400, -0.001843678200, -0.001603558400},
   { -0.017470863500,  0.019683203200, -0.022364869500,  0.027291613500,
     -0.034936118500,  0.047753629900, -0.076679031600,  0.285671811500,
-     0.091863686900, -0.026115241800,  0.009107820400, -0.001801618700,
+    0.091863686900, -0.026115241800,  0.009107820400, -0.001801618700,
     -0.001693384100,  0.003044500800, -0.001858063000, -0.001598323500},
   { -0.017374543300,  0.019573449500, -0.022237957200,  0.027136848800,
     -0.034768617100,  0.047567511000, -0.076458633000,  0.285823700200,
-     0.091556728800, -0.026079677000,  0.009109488100, -0.001807759500,
+    0.091556728800, -0.026079677000,  0.009109488100, -0.001807759500,
     -0.001692821000,  0.003044301800, -0.001865780400, -0.001587867000},
   { -0.017278016500,  0.019462639700, -0.022107866200,  0.026994361100,
     -0.034597273100,  0.047381154500, -0.076238222500,  0.285975563800,
-     0.091251439600, -0.026032138000,  0.009103004000, -0.001803039800,
+    0.091251439600, -0.026032138000,  0.009103004000, -0.001803039800,
     -0.001692015100,  0.003052700600, -0.001873935800, -0.001583828300},
   { -0.017174506000,  0.019350009900, -0.021978862300,  0.026838198900,
     -0.034430712700,  0.047182370700, -0.076007137400,  0.286112971700,
-     0.090946916500, -0.025990224500,  0.009104300700, -0.001810064900,
+    0.090946916500, -0.025990224500,  0.009104300700, -0.001810064900,
     -0.001690153500,  0.003051424200, -0.001880890400, -0.001573670100},
   { -0.017077386900,  0.019238909500, -0.021847402400,  0.026693327400,
     -0.034255105000,  0.046987841400, -0.075788745300,  0.286262228400,
-     0.090639789400, -0.025952532400,  0.009104248700, -0.001814795900,
+    0.090639789400, -0.025952532400,  0.009104248700, -0.001814795900,
     -0.001691600600,  0.003054176700, -0.001894703800, -0.001569153000},
   { -0.016981596000,  0.019128983200, -0.021720457700,  0.026538690300,
     -0.034087052200,  0.046799004200, -0.075562967900,  0.286407594900,
-     0.090337279400, -0.025905423200,  0.009096027200, -0.001821529400,
+    0.090337279400, -0.025905423200,  0.009096027200, -0.001821529400,
     -0.001680332600,  0.003064309200, -0.001896839700, -0.001559561500},
   { -0.016884247400,  0.019017118400, -0.021587898200,  0.026389844800,
     -0.033919719800,  0.046610354100, -0.075335881700,  0.286552421600,
-     0.090031502000, -0.025867448300,  0.009095852900, -0.001826242300,
+    0.090031502000, -0.025867448300,  0.009095852900, -0.001826242300,
     -0.001681411600,  0.003066530900, -0.001910366600, -0.001555232200},
   { -0.016783704800,  0.018907663300, -0.021462324800,  0.026239733700,
     -0.033746731200,  0.046405855900, -0.075110245000,  0.286693376000,
-     0.089731283500, -0.025821879500,  0.009092452800, -0.001825134600,
+    0.089731283500, -0.025821879500,  0.009092452800, -0.001825134600,
     -0.001676528000,  0.003070488600, -0.001910937800, -0.001546377000},
   { -0.016688282800,  0.018797704300, -0.021331826000,  0.026093533900,
     -0.033581867500,  0.046219477100, -0.074884840400,  0.286843179800,
-     0.089429913200, -0.025781349400,  0.009085971800, -0.001835675000,
+    0.089429913200, -0.025781349400,  0.009085971800, -0.001835675000,
     -0.001676580800,  0.003072425300, -0.001924344300, -0.001542197500},
   { -0.016594569100,  0.018690756000, -0.021207672000,  0.025943420100,
     -0.033404937000,  0.046023517900, -0.074664683000,  0.286977836300,
-     0.089126683900, -0.025743532000,  0.009086549100, -0.001841296500,
+    0.089126683900, -0.025743532000,  0.009086549100, -0.001841296500,
     -0.001676983800,  0.003074065100, -0.001937151500, -0.001538275800},
   { -0.016498716200,  0.018580469200, -0.021077164200,  0.025796245500,
     -0.033239161900,  0.045835202700, -0.074435467900,  0.287119707900,
-     0.088817903900, -0.025695953100,  0.009088750200, -0.001840528300,
+    0.088817903900, -0.025695953100,  0.009088750200, -0.001840528300,
     -0.001672419000,  0.003078214900, -0.001938044200, -0.001529263800},
   { -0.016399128000,  0.018471685500, -0.020951717000,  0.025642665600,
     -0.033070898400,  0.045645401700, -0.074204448300,  0.287263294400,
-     0.088518791800, -0.025655699800,  0.009083077500, -0.001851968500,
+    0.088518791800, -0.025655699800,  0.009083077500, -0.001851968500,
     -0.001671519700,  0.003079287600, -0.001950784000, -0.001525545100},
   { -0.016303461100,  0.018361514000, -0.020820608400,  0.025497283800,
     -0.032893481400,  0.045445650100, -0.073974168600,  0.287398826600,
-     0.088215611900, -0.025616230100,  0.009082036700, -0.001853404200,
+    0.088215611900, -0.025616230100,  0.009082036700, -0.001853404200,
     -0.001663416900,  0.003076434500, -0.001956698100, -0.001516114100},
   { -0.016215838300,  0.018247246600, -0.020690412400,  0.025351871200,
     -0.032729171400,  0.045259152900, -0.073748515200,  0.287535419700,
-     0.087916911500, -0.025573878100,  0.009073875600, -0.001862252200,
+    0.087916911500, -0.025573878100,  0.009073875600, -0.001862252200,
     -0.001665725900,  0.003083968700, -0.001963597200, -0.001513327100},
   { -0.016122658700,  0.018140302000, -0.020565897500,  0.025198358100,
     -0.032563221800,  0.045054475300, -0.073516228400,  0.287669639200,
-     0.087611730400, -0.025527589100,  0.009078560600, -0.001864713500,
+    0.087611730400, -0.025527589100,  0.009078560600, -0.001864713500,
     -0.001657013000,  0.003080858100, -0.001969379300, -0.001503969900},
   { -0.016030164800,  0.018033299200, -0.020438589400,  0.025057752300,
     -0.032390709200,  0.044862930000, -0.073281372400,  0.287808844900,
-     0.087312662900, -0.025484515600,  0.009070381000, -0.001873996900,
+    0.087312662900, -0.025484515600,  0.009070381000, -0.001873996900,
     -0.001658952100,  0.003088203600, -0.001976310900, -0.001501262300},
   { -0.015931594800,  0.017925901000, -0.020314095600,  0.024903471000,
     -0.032220613500,  0.044666232000, -0.073051883700,  0.287948850700,
-     0.087007865500, -0.025444714700,  0.009076396600, -0.001876815400,
+    0.087007865500, -0.025444714700,  0.009076396600, -0.001876815400,
     -0.001650306000,  0.003085015800, -0.001981877500, -0.001492305300},
   { -0.015837646000,  0.017817156300, -0.020183755000,  0.024755980300,
     -0.032052144100,  0.044470365700, -0.072825294900,  0.288078851000,
-     0.086711998100, -0.025403194900,  0.009070080400, -0.001888369000,
+    0.086711998100, -0.025403194900,  0.009070080400, -0.001888369000,
     -0.001648979900,  0.003085609100, -0.001993991000, -0.001488858500},
   { -0.015745786000,  0.017710651600, -0.020057087700,  0.024614982500,
     -0.031879037500,  0.044276425800, -0.072585572700,  0.288212217900,
-     0.086414765800, -0.025357212300,  0.009074959300, -0.001891836000,
+    0.086414765800, -0.025357212300,  0.009074959300, -0.001891836000,
     -0.001636592700,  0.003094108300, -0.001994653500, -0.001480767400},
   { -0.015654004700,  0.017605115800, -0.019933041100,  0.024461035300,
     -0.031707875300,  0.044077625700, -0.072351635400,  0.288347603800,
-     0.086112304400, -0.025320844800,  0.009069894600, -0.001903992100,
+    0.086112304400, -0.025320844800,  0.009069894600, -0.001903992100,
     -0.001634855100,  0.003094518400, -0.002006818100, -0.001477449400},
   { -0.015556426100,  0.017497985500, -0.019805930700,  0.024316777100,
     -0.031543979900,  0.043889313200, -0.072118967800,  0.288475887700,
-     0.085809125600, -0.025278532500,  0.009073340000, -0.001904355000,
+    0.085809125600, -0.025278532500,  0.009073340000, -0.001904355000,
     -0.001629128000,  0.003097408700, -0.002006309300, -0.001469685300},
   { -0.015464035900,  0.017390367400, -0.019676404700,  0.024169673500,
     -0.031375546100,  0.043691563100, -0.071884560100,  0.288613216300,
-     0.085517904200, -0.025234780000,  0.009063993200, -0.001909503200,
+    0.085517904200, -0.025234780000,  0.009063993200, -0.001909503200,
     -0.001621883700,  0.003096710200, -0.002018075200, -0.001466497000},
   { -0.015372811900,  0.017282467800, -0.019563622700,  0.024025743900,
     -0.031201529400,  0.043494252000, -0.071653858800,  0.288739140200,
-     0.085215783300, -0.025192315000,  0.009065729600, -0.001924642300,
+    0.085215783300, -0.025192315000,  0.009065729600, -0.001924642300,
     -0.001617413500,  0.003093622800, -0.002023130000, -0.001457861300},
   { -0.015281581500,  0.017176704600, -0.019436707600,  0.023880818700,
     -0.031035919800,  0.043302468300, -0.071411887600,  0.288870320800,
-     0.084911325500, -0.025147413900,  0.009067220900, -0.001923185400,
+    0.084911325500, -0.025147413900,  0.009067220900, -0.001923185400,
     -0.001613820700,  0.003099574200, -0.002029502500, -0.001455518600},
   { -0.015190068200,  0.017070271400, -0.019307909900,  0.023733865500,
     -0.030866540700,  0.043102902900, -0.071173336500,  0.289002944200,
-     0.084617972200, -0.025112304400,  0.009063501400, -0.001937412700,
+    0.084617972200, -0.025112304400,  0.009063501400, -0.001937412700,
     -0.001609315800,  0.003096284800, -0.002034312100, -0.001447330000},
   { -0.015095192700,  0.016966497900, -0.019187203800,  0.023583328300,
     -0.030698827600,  0.042906585900, -0.070941485100,  0.289127389400,
-     0.084313384800, -0.025064553400,  0.009058701400, -0.001941756600,
+    0.084313384800, -0.025064553400,  0.009058701400, -0.001941756600,
     -0.001604479400,  0.003101858000, -0.002040355800, -0.001445044100},
   { -0.015005498900,  0.016861988700, -0.019061283500,  0.023439043400,
     -0.030533338900,  0.042714039500, -0.070696301300,  0.289257793800,
-     0.084018453400, -0.025022964500,  0.009063774800, -0.001944654100,
+    0.084018453400, -0.025022964500,  0.009063774800, -0.001944654100,
     -0.001595199500,  0.003097508000, -0.002044866400, -0.001436913900},
   { -0.014917519700,  0.016759937100, -0.018938392400,  0.023301552900,
     -0.030361552500,  0.042516727200, -0.070462608200,  0.289383840200,
-     0.083722905800, -0.024979066000,  0.009063562600, -0.001958070000,
+    0.083722905800, -0.024979066000,  0.009063562600, -0.001958070000,
     -0.001592655700,  0.003097143300, -0.002056302800, -0.001434061400},
   { -0.014829329300,  0.016657963500, -0.018818329000,  0.023150063400,
     -0.030188546200,  0.042326526200, -0.070230755300,  0.289510095600,
-     0.083425985400, -0.024932767200,  0.009060147700, -0.001964069200,
+    0.083425985400, -0.024932767200,  0.009060147700, -0.001964069200,
     -0.001585752700,  0.003099557300, -0.002055331700, -0.001426747600},
   { -0.014740487700,  0.016554974400, -0.018693430700,  0.023006696000,
     -0.030022736600,  0.042129344000, -0.069991474400,  0.289643060400,
-     0.083121682100, -0.024891262300,  0.009057517500, -0.001970699600,
+    0.083121682100, -0.024891262300,  0.009057517500, -0.001970699600,
     -0.001577810900,  0.003098336700, -0.002066861800, -0.001423747700},
   { -0.014646034300,  0.016450370300, -0.018567891400,  0.022863023200,
     -0.029856412200,  0.041932542200, -0.069755255200,  0.289764874500,
-     0.082826383600, -0.024845070000,  0.009054717400, -0.001980678900,
+    0.082826383600, -0.024845070000,  0.009054717400, -0.001980678900,
     -0.001582625700,  0.003096053600, -0.002064831500, -0.001416907600},
   { -0.014559627800,  0.016349891900, -0.018449559000,  0.022713561300,
     -0.029689051900,  0.041737590700, -0.069503998900,  0.289888685100,
-     0.082532448100, -0.024801087800,  0.009058174200, -0.001982046700,
+    0.082532448100, -0.024801087800,  0.009058174200, -0.001982046700,
     -0.001575159300,  0.003094262100, -0.002075770200, -0.001414337900},
   { -0.014471061400,  0.016243913500, -0.018334760000,  0.022579662500,
     -0.029519935000,  0.041541189800, -0.069267292000,  0.290011569200,
-     0.082230235800, -0.024758694700,  0.009055155500, -0.001988704700,
+    0.082230235800, -0.024758694700,  0.009055155500, -0.001988704700,
     -0.001567128600,  0.003092724100, -0.002086898100, -0.001411478900},
   { -0.014383790400,  0.016142525900, -0.018211358000,  0.022437490000,
     -0.029354488900,  0.041343948500, -0.069028755000,  0.290131292800,
-     0.081930443400, -0.024718526100,  0.009055027000, -0.002001893100,
+    0.081930443400, -0.024718526100,  0.009055027000, -0.002001893100,
     -0.001564993600,  0.003095765300, -0.002085806300, -0.001404564500},
   { -0.014297586900,  0.016042263500, -0.018092816300,  0.022287585300,
     -0.029185104300,  0.041142095700, -0.068780397800,  0.290253164200,
-     0.081635398000, -0.024670766100,  0.009051397000, -0.002008669700,
+    0.081635398000, -0.024670766100,  0.009051397000, -0.002008669700,
     -0.001556387000,  0.003093691000, -0.002096680100, -0.001401882300},
   { -0.014206281900,  0.015941116300, -0.017970542200,  0.022146976500,
     -0.029021815100,  0.040946718000, -0.068542945900,  0.290377478100,
-     0.081340267800, -0.024629081800,  0.009048347000, -0.002014963700,
+    0.081340267800, -0.024629081800,  0.009048347000, -0.002014963700,
     -0.001548946600,  0.003095699600, -0.002095226400, -0.001395190900},
   { -0.014118938600,  0.015839406100, -0.017846481100,  0.022002842700,
     -0.028850387900,  0.040754474000, -0.068302308800,  0.290494347700,
-     0.081040072300, -0.024586190700,  0.009045183800, -0.002021575300,
+    0.081040072300, -0.024586190700,  0.009045183800, -0.002021575300,
     -0.001540744900,  0.003093740800, -0.002106039500, -0.001392505100},
   { -0.014033359700,  0.015739387800, -0.017724211200,  0.021861411400,
     -0.028685336800,  0.040555731500, -0.068055928700,  0.290621547300,
-     0.080744453800, -0.024543547500,  0.009041815800, -0.002027861900,
+    0.080744453800, -0.024543547500,  0.009041815800, -0.002027861900,
     -0.001533174400,  0.003095698800, -0.002104702000, -0.001385829000},
   { -0.013950756900,  0.015643569600, -0.017610720400,  0.021716480000,
     -0.028520619600,  0.040359106100, -0.067815030400,  0.290742857900,
-     0.080448884900, -0.024496193000,  0.009046978300, -0.002042499600,
+    0.080448884900, -0.024496193000,  0.009046978300, -0.002042499600,
     -0.001529706600,  0.003094623000, -0.002115681000, -0.001383359700},
   { -0.013857978600,  0.015536744300, -0.017494757400,  0.021577567700,
     -0.028357551400,  0.040162405000, -0.067572563200,  0.290861113600,
-     0.080155270500, -0.024453193600,  0.009043386000, -0.002048697200,
+    0.080155270500, -0.024453193600,  0.009043386000, -0.002048697200,
     -0.001522077700,  0.003096377800, -0.002113994500, -0.001376849300},
   { -0.013773229200,  0.015437926100, -0.017374226900,  0.021440417100,
     -0.028180320800,  0.039967168700, -0.067326482200,  0.290971758300,
-     0.079856769100, -0.024409237700,  0.009039889200, -0.002055553100,
+    0.079856769100, -0.024409237700,  0.009039889200, -0.002055553100,
     -0.001513509600,  0.003093955600, -0.002124476100, -0.001374342300},
   { -0.013689059900,  0.015339335300, -0.017253688600,  0.021300179900,
     -0.028015676300,  0.039767446600, -0.067075438600,  0.291093788100,
-     0.079560972200, -0.024359858000,  0.009042893100, -0.002064956100,
+    0.079560972200, -0.024359858000,  0.009042893100, -0.002064956100,
     -0.001502425900,  0.003088564100, -0.002128108700, -0.001366787300},
   { -0.013608286800,  0.015245837400, -0.017142104300,  0.021157264500,
     -0.027853162500,  0.039572395400, -0.066833494600,  0.291213669600,
-     0.079258669800, -0.024318259900,  0.009036431600, -0.002066451500,
+    0.079258669800, -0.024318259900,  0.009036431600, -0.002066451500,
     -0.001504139700,  0.003088416900, -0.002132688700, -0.001365518600},
   { -0.013526024300,  0.015149195700, -0.017023199600,  0.021019023100,
     -0.027690881700,  0.039375542700, -0.066588317200,  0.291332516600,
-     0.078972791400, -0.024276630700,  0.009034254800, -0.002074639200,
+    0.078972791400, -0.024276630700,  0.009034254800, -0.002074639200,
     -0.001493462900,  0.003082938500, -0.002135814900, -0.001358430400},
   { -0.013436720300,  0.015049535100, -0.016902143900,  0.020877384400,
     -0.027520351800,  0.039182293600, -0.066341740000,  0.291445410400,
-     0.078678890800, -0.024226476800,  0.009036993800, -0.002087255200,
+    0.078678890800, -0.024226476800,  0.009036993800, -0.002087255200,
     -0.001492702300,  0.003088470800, -0.002141367000, -0.001357082800},
   { -0.013351892900,  0.014946715800, -0.016789045200,  0.020740566100,
     -0.027358305900,  0.038984672800, -0.066093324400,  0.291557196100,
-     0.078381474100, -0.024188073400,  0.009035188200, -0.002095570400,
+    0.078381474100, -0.024188073400,  0.009035188200, -0.002095570400,
     -0.001481921800,  0.003082911700, -0.002144524900, -0.001349842500},
   { -0.013270943900,  0.014852276800, -0.016672927800,  0.020605326600,
     -0.027198631300,  0.038789809200, -0.065848400700,  0.291673553600,
-     0.078077054200, -0.024136747400,  0.009027973200, -0.002105937200,
+    0.078077054200, -0.024136747400,  0.009027973200, -0.002105937200,
     -0.001475208500,  0.003087524600, -0.002150215500, -0.001348116400},
   { -0.013190641200,  0.014758176300, -0.016560228700,  0.020459538900,
     -0.027027766200,  0.038596149400, -0.065599338300,  0.291786795400,
-     0.077792721000, -0.024094239400,  0.009025651700, -0.002114130700,
+    0.077792721000, -0.024094239400,  0.009025651700, -0.002114130700,
     -0.001464447200,  0.003081710900, -0.002153019500, -0.001341225900},
   { -0.013110011800,  0.014663919000, -0.016444050200,  0.020323488600,
     -0.026866946500,  0.038399388600, -0.065350608700,  0.291898436700,
-     0.077491289100, -0.024045414700,  0.009025408000, -0.002119522600,
+    0.077491289100, -0.024045414700,  0.009025408000, -0.002119522600,
     -0.001458535300,  0.003086316400, -0.002158494200, -0.001339767200},
   { -0.013025077600,  0.014569262800, -0.016328233200,  0.020188140300,
     -0.026707041800,  0.038203933500, -0.065102449400,  0.292014040700,
-     0.077196425000, -0.023998381000,  0.009026360900, -0.002125747900,
+    0.077196425000, -0.023998381000,  0.009026360900, -0.002125747900,
     -0.001454699900,  0.003075666900, -0.002160549700, -0.001332912300},
   { -0.012943770500,  0.014473806100, -0.016209483700,  0.020047933100,
     -0.026536730800,  0.038005130000, -0.064858733100,  0.292129090700,
-     0.076903557900, -0.023957398700,  0.009021448800, -0.002130265600,
+    0.076903557900, -0.023957398700,  0.009021448800, -0.002130265600,
     -0.001449188900,  0.003080409800, -0.002165817700, -0.001331821400},
   { -0.012862479300,  0.014374613700, -0.016100609100,  0.019915634000,
     -0.026378597000,  0.037810235300, -0.064609585900,  0.292243989500,
-     0.076607212500, -0.023906702500,  0.009015226300, -0.002142422000,
+    0.076607212500, -0.023906702500,  0.009015226300, -0.002142422000,
     -0.001439416300,  0.003077588100, -0.002176246500, -0.001329411400},
   { -0.012776898100,  0.014287400700, -0.015987370400,  0.019781456700,
     -0.026218842900,  0.037613307800, -0.064357589600,  0.292354833000,
-     0.076314227000, -0.023860018100,  0.009017528200, -0.002151344500,
+    0.076314227000, -0.023860018100,  0.009017528200, -0.002151344500,
     -0.001428408900,  0.003071783900, -0.002179145600, -0.001322405100},
   { -0.012699499300,  0.014196955700, -0.015878862800,  0.019639469300,
     -0.026050975100,  0.037421391100, -0.064106762900,  0.292466530500,
-     0.076019700600, -0.023810871100,  0.009017151300, -0.002156670200,
+    0.076019700600, -0.023810871100,  0.009017151300, -0.002156670200,
     -0.001422547300,  0.003076233500, -0.002184458600, -0.001321218400},
   { -0.012616476800,  0.014104155900, -0.015764904400,  0.019506037600,
     -0.025892093800,  0.037225319700, -0.063853917500,  0.292576319400,
-     0.075724712100, -0.023759323400,  0.009010001600, -0.002167557500,
+    0.075724712100, -0.023759323400,  0.009010001600, -0.002167557500,
     -0.001417698000,  0.003065150800, -0.002186268300, -0.001314354900},
   { -0.012537078000,  0.014007257400, -0.015657767200,  0.019375159900,
     -0.025735481500,  0.037031767000, -0.063607547900,  0.292680753800,
-     0.075427591700, -0.023721555300,  0.009004937300, -0.002171714300,
+    0.075427591700, -0.023721555300,  0.009004937300, -0.002171714300,
     -0.001412157700,  0.003069674600, -0.002191380800, -0.001313321900},
   { -0.012457823800,  0.013913853300, -0.015541317500,  0.019236546600,
     -0.025565504100,  0.036831074500, -0.063356530800,  0.292786821600,
-     0.075136252200, -0.023673990600,  0.009007040500, -0.002180765400,
+    0.075136252200, -0.023673990600,  0.009007040500, -0.002180765400,
     -0.001401081300,  0.003063717500, -0.002193998000, -0.001306486000},
   { -0.012381206600,  0.013823584100, -0.015429059800,  0.019104315500,
     -0.025407276700,  0.036634397500, -0.063101285300,  0.292893802300,
-     0.074841359700, -0.023620522900,  0.008998337100, -0.002190657800,
+    0.074841359700, -0.023620522900,  0.008998337100, -0.002190657800,
     -0.001393998700,  0.003067771800, -0.002199287800, -0.001305173000},
   { -0.012304800000,  0.013733603800, -0.015316494200,  0.018970177400,
     -0.025242884300,  0.036443834300, -0.062848029800,  0.293006277700,
-     0.074548400000, -0.023577987000,  0.009001070400, -0.002199540200,
+    0.074548400000, -0.023577987000,  0.009001070400, -0.002199540200,
     -0.001383193600,  0.003061911500, -0.002201990500, -0.001298486200},
   { -0.012231594800,  0.013648384700, -0.015213765300,  0.018835062100,
     -0.025085987100,  0.036250520900, -0.062599496300,  0.293108050300,
-     0.074248575600, -0.023530332000,  0.008998523600, -0.002201711800,
+    0.074248575600, -0.023530332000,  0.008998523600, -0.002201711800,
     -0.001384640400,  0.003061515200, -0.002206188900, -0.001297565000},
   { -0.012146903000,  0.013548919900, -0.015104288800,  0.018700312600,
     -0.024918766800,  0.036051519300, -0.062347556700,  0.293216599600,
-     0.073961694600, -0.023479470700,  0.008992759700, -0.002215250000,
+    0.073961694600, -0.023479470700,  0.008992759700, -0.002215250000,
     -0.001372665000,  0.003055268400, -0.002208668300, -0.001290828100},
   { -0.012072689000,  0.013461432300, -0.014994590500,  0.018570057000,
     -0.024762400200,  0.035856112000, -0.062091368600,  0.293326498300,
-     0.073667719600, -0.023433472500,  0.008991998000, -0.002220358400,
+    0.073667719600, -0.023433472500,  0.008991998000, -0.002220358400,
     -0.001366666100,  0.003059661400, -0.002213970900, -0.001289852900},
   { -0.011998777300,  0.013374412100, -0.014885760000,  0.018440114900,
     -0.024601980400,  0.035669418700, -0.061843667600,  0.293431988400,
-     0.073372194300, -0.023379395200,  0.008991178300, -0.002234495000,
+    0.073372194300, -0.023379395200,  0.008991178300, -0.002234495000,
     -0.001354819600,  0.003053533900, -0.002216603000, -0.001282913700},
   { -0.011922344800,  0.013284279500, -0.014771995300,  0.018300582900,
     -0.024446846900,  0.035466290700, -0.061588331200,  0.293533527800,
-     0.073072951600, -0.023330451200,  0.008988073400, -0.002236664600,
+    0.073072951600, -0.023330451200,  0.008988073400, -0.002236664600,
     -0.001356054900,  0.003053154500, -0.002220878800, -0.001282008300},
   { -0.011845461600,  0.013189357000, -0.014666643200,  0.018169987600,
     -0.024284154200,  0.035275317400, -0.061329463600,  0.293638750200,
-     0.072780111500, -0.023282772800,  0.008982191000, -0.002249832100,
+    0.072780111500, -0.023282772800,  0.008982191000, -0.002249832100,
     -0.001344236100,  0.003046802300, -0.002223339400, -0.001275293500},
   { -0.011769115200,  0.013103666900, -0.014559744600,  0.018043115400,
     -0.024131925000,  0.035084175400, -0.061079622500,  0.293746271400,
-     0.072492005600, -0.023234912400,  0.008978152700, -0.002247134700,
+    0.072492005600, -0.023234912400,  0.008978152700, -0.002247134700,
     -0.001333772300,  0.003050212200, -0.002228201400, -0.001274483600},
   { -0.011694882200,  0.013015910500, -0.014448925000,  0.017910112100,
     -0.023966290300,  0.034885265900, -0.060823698800,  0.293850684700,
-     0.072198731500, -0.023185828700,  0.008970913900, -0.002258841200,
+    0.072198731500, -0.023185828700,  0.008970913900, -0.002258841200,
     -0.001323837000,  0.003046799700, -0.002238111400, -0.001272408000},
   { -0.011623815900,  0.012932068300, -0.014343601700,  0.017784544000,
     -0.023814273900,  0.034693878200, -0.060571265600,  0.293950616300,
-     0.071902922400, -0.023127290700,  0.008965455900, -0.002267675400,
+    0.071902922400, -0.023127290700,  0.008965455900, -0.002267675400,
     -0.001322245300,  0.003043324900, -0.002234895800, -0.001266776300},
   { -0.011540516700,  0.012843156400, -0.014239964400,  0.017653808300,
     -0.023649793700,  0.034495386400, -0.060314068800,  0.294053570900,
-     0.071604519400, -0.023084721700,  0.008966178100, -0.002274742400,
+    0.071604519400, -0.023084721700,  0.008966178100, -0.002274742400,
     -0.001313420800,  0.003040255700, -0.002244873300, -0.001264793200},
   { -0.011472239700,  0.012762833200, -0.014142299300,  0.017523724800,
     -0.023496551600,  0.034302863600, -0.060059835200,  0.294155332000,
-     0.071318036600, -0.023035573000,  0.008958134900, -0.002285404200,
+    0.071318036600, -0.023035573000,  0.008958134900, -0.002285404200,
     -0.001304581400,  0.003041364800, -0.002242376300, -0.001259366100},
   { -0.011396549400,  0.012678155200, -0.014036439400,  0.017396575200,
     -0.023338009400,  0.034116321500, -0.059806163900,  0.294253594500,
-     0.071016115000, -0.022981051800,  0.008953591700, -0.002294842900,
+    0.071016115000, -0.022981051800,  0.008953591700, -0.002294842900,
     -0.001302187900,  0.003033306900, -0.002251340000, -0.001257327400},
   { -0.011323121700,  0.012586727200, -0.013934406600,  0.017269467600,
     -0.023182283200,  0.033913734300, -0.059546703200,  0.294357625700,
-     0.070729691900, -0.022931857800,  0.008949854300, -0.002293460500,
+    0.070729691900, -0.022931857800,  0.008949854300, -0.002293460500,
     -0.001289637300,  0.003033725600, -0.002248666800, -0.001252011800},
   { -0.011252540100,  0.012503092200, -0.013827892600,  0.017136721300,
     -0.023029828700,  0.033729073000, -0.059293518700,  0.294460157000,
-     0.070434097200, -0.022879051900,  0.008946945700, -0.002305315700,
+    0.070434097200, -0.022879051900,  0.008946945700, -0.002305315700,
     -0.001279931900,  0.003030359000, -0.002258640400, -0.001249868500},
   { -0.011182377900,  0.012419958100, -0.013722251500,  0.017009920100,
     -0.022874644300,  0.033527611400, -0.059037642400,  0.294550501800,
-     0.070143346800, -0.022826323700,  0.008936004500, -0.002312971700,
+    0.070143346800, -0.022826323700,  0.008936004500, -0.002312971700,
     -0.001278495600,  0.003026834400, -0.002255007200, -0.001244616700},
   { -0.011112979600,  0.012337731100, -0.013617730300,  0.016882921900,
     -0.022715294600,  0.033338099000, -0.058774188400,  0.294654140800,
-     0.069848353600, -0.022774221100,  0.008938942400, -0.002318660300,
+    0.069848353600, -0.022774221100,  0.008938942400, -0.002318660300,
     -0.001272367300,  0.003031143500, -0.002260491700, -0.001243631400},
   { -0.011036494600,  0.012247285200, -0.013517704400,  0.016757477900,
     -0.022556496100,  0.033144550900, -0.058521997300,  0.294752983200,
-     0.069553175900, -0.022719357000,  0.008933910800, -0.002324464800,
+    0.069553175900, -0.022719357000,  0.008933910800, -0.002324464800,
     -0.001256128400,  0.003023848100, -0.002262428500, -0.001237037300},
   { -0.010969358900,  0.012167754700, -0.013416137200,  0.016635331800,
     -0.022407065400,  0.032953544400, -0.058263509000,  0.294849437700,
-     0.069259760100, -0.022670102300,  0.008922281200, -0.002330427000,
+    0.069259760100, -0.022670102300,  0.008922281200, -0.002330427000,
     -0.001256945700,  0.003023412200, -0.002266647300, -0.001236321600},
   { -0.010900887700,  0.012086623000, -0.013312472500,  0.016509174100,
     -0.022247384700,  0.032758671600, -0.058008634000,  0.294944915100,
-     0.068966542100, -0.022616489300,  0.008919626500, -0.002343674400,
+    0.068966542100, -0.022616489300,  0.008919626500, -0.002343674400,
     -0.001245178500,  0.003017029900, -0.002268726500, -0.001229834600},
   { -0.010824042300,  0.012004282000, -0.013216314100,  0.016383459600,
     -0.022105269700,  0.032570797200, -0.057751817000,  0.295047141500,
-     0.068676416600, -0.022561101300,  0.008913972000, -0.002352971000,
+    0.068676416600, -0.022561101300,  0.008913972000, -0.002352971000,
     -0.001238353400,  0.003021279300, -0.002274200700, -0.001228791200},
   { -0.010755431700,  0.011922721200, -0.013111568500,  0.016255565900,
     -0.021943625600,  0.032372518000, -0.057486437700,  0.295142943400,
-     0.068385169700, -0.022513896200,  0.008909637200, -0.002350338500,
+    0.068385169700, -0.022513896200,  0.008909637200, -0.002350338500,
     -0.001230956100,  0.003009550000, -0.002274839200, -0.001222885000},
   { -0.010688812000,  0.011843615700, -0.013010433300,  0.016132334200,
     -0.021787511700,  0.032185366300, -0.057225248100,  0.295234898600,
-     0.068091568200, -0.022457194700,  0.008903658200, -0.002359880400,
+    0.068091568200, -0.022457194700,  0.008903658200, -0.002359880400,
     -0.001223949400,  0.003013484800, -0.002280163100, -0.001221768100},
   { -0.010616490000,  0.011757803200, -0.012915294700,  0.016012759800,
     -0.021638667600,  0.031988588100, -0.056969680800,  0.295335292700,
-     0.067795719500, -0.022406367600,  0.008900068000, -0.002371512600,
+    0.067795719500, -0.022406367600,  0.008900068000, -0.002371512600,
     -0.001214114500,  0.003010061800, -0.002290053700, -0.001219729000},
   { -0.010551509800,  0.011680400300, -0.012815991100,  0.015891596000,
     -0.021485136600,  0.031804218000, -0.056710441700,  0.295433201300,
-     0.067505660900, -0.022347745200,  0.008890402300, -0.002371663200,
+    0.067505660900, -0.022347745200,  0.008890402300, -0.002371663200,
     -0.001208867400,  0.003006011700, -0.002286436600, -0.001214616000},
   { -0.010484290500,  0.011600637200, -0.012712731400,  0.015760653300,
     -0.021331865900,  0.031610777900, -0.056451724100,  0.295523834300,
-     0.067206178800, -0.022295584100,  0.008886317900, -0.002383054500,
+    0.067206178800, -0.022295584100,  0.008886317900, -0.002383054500,
     -0.001199058000,  0.003002379300, -0.002296230600, -0.001212436700},
   { -0.010418126800,  0.011517277400, -0.012619826700,  0.015643456400,
     -0.021185866100,  0.031421091300, -0.056188447800,  0.295617466000,
-     0.066918218000, -0.022237804200,  0.008878791700, -0.002390705100,
+    0.066918218000, -0.022237804200,  0.008878791700, -0.002390705100,
     -0.001198036500,  0.002999278000, -0.002292788000, -0.001207424300},
   { -0.010353664500,  0.011440787900, -0.012520884000,  0.015521915600,
     -0.021030519400,  0.031228731500, -0.055930893500,  0.295714067400,
-     0.066622310400, -0.022183982500,  0.008871703300, -0.002394208300,
+    0.066622310400, -0.022183982500,  0.008871703300, -0.002394208300,
     -0.001184119100,  0.002994763100, -0.002302348400, -0.001205321400},
   { -0.010290103500,  0.011365248300, -0.012423245400,  0.015401999100,
     -0.020877200500,  0.031043216800, -0.055667568800,  0.295807177000,
-     0.066328312100, -0.022131427200,  0.008866742900, -0.002404798200,
+    0.066328312100, -0.022131427200,  0.008866742900, -0.002404798200,
     -0.001175466100,  0.002996071300, -0.002300011200, -0.001200034300},
   { -0.010212808300,  0.011286215600, -0.012331974000,  0.015285837100,
     -0.020731638800,  0.030848876200, -0.055414282300,  0.295894792100,
-     0.066040074000, -0.022070359700,  0.008854931500, -0.002403060700,
+    0.066040074000, -0.022070359700,  0.008854931500, -0.002403060700,
     -0.001172180300,  0.002994947800, -0.002303988400, -0.001199255200},
   { -0.010148001100,  0.011208895700, -0.012231165800,  0.015157088900,
     -0.020580030600,  0.030655950200, -0.055152663300,  0.295985303100,
-     0.065747514100, -0.022018328800,  0.008851064800, -0.002415287100,
+    0.065747514100, -0.022018328800,  0.008851064800, -0.002415287100,
     -0.001160745800,  0.002988510300, -0.002305832600, -0.001193029800},
   { -0.010085579200,  0.011134601100, -0.012134860100,  0.015038441400,
     -0.020427698700,  0.030471019600, -0.054887446700,  0.296075847400,
-     0.065452832100, -0.021962597300,  0.008842662600, -0.002421544800,
+    0.065452832100, -0.021962597300,  0.008842662600, -0.002421544800,
     -0.001161750800,  0.002988338000, -0.002310334400, -0.001192214700},
   { -0.010020900500,  0.011052809300, -0.012042691300,  0.014920355400,
     -0.020274570600,  0.030279417600, -0.054626925700,  0.296172290700,
-     0.065163770900, -0.021908764800,  0.008835761000, -0.002425750100,
+    0.065163770900, -0.021908764800,  0.008835761000, -0.002425750100,
     -0.001146354300,  0.002981060500, -0.002311933800, -0.001186088400},
   { -0.009959891000,  0.010980172100, -0.011948361700,  0.014804636400,
     -0.020129945500,  0.030089125800, -0.054357841800,  0.296258886800,
-     0.064870816200, -0.021853498100,  0.008828516100, -0.002434510900,
+    0.064870816200, -0.021853498100,  0.008828516100, -0.002434510900,
     -0.001139351300,  0.002984984200, -0.002317376800, -0.001185031900},
   { -0.009898260300,  0.010906814900, -0.011851836600,  0.014680546000,
     -0.019983871100,  0.029902690900, -0.054105959400,  0.296352017200,
-     0.064574678500, -0.021802440100,  0.008820504400, -0.002435747100,
+    0.064574678500, -0.021802440100,  0.008820504400, -0.002435747100,
     -0.001132168000,  0.002973757000, -0.002317979100, -0.001179124900},
   { -0.009829464000,  0.010824029000, -0.011759300000,  0.014562038800,
     -0.019829369800,  0.029708485400, -0.053839700800,  0.296436562600,
-     0.064282383100, -0.021746613300,  0.008813206900, -0.002444614700,
+    0.064282383100, -0.021746613300,  0.008813206900, -0.002444614700,
     -0.001125189300,  0.002977740500, -0.002323403700, -0.001178072500},
   { -0.009762586000,  0.010757748000, -0.011668677900,  0.014449006700,
     -0.019682702400,  0.029529044900, -0.053581877800,  0.296526171200,
-     0.063990447900, -0.021679886200,  0.008799692100, -0.002450355900,
+    0.063990447900, -0.021679886200,  0.008799692100, -0.002450355900,
     -0.001116909400,  0.002966009600, -0.002323961500, -0.001171914500},
   { -0.009702145300,  0.010685674300, -0.011573598100,  0.014326849900,
     -0.019542481200,  0.029334344500, -0.053317589600,  0.296618745800,
-     0.063695013000, -0.021628522100,  0.008793030100, -0.002459004700,
+    0.063695013000, -0.021628522100,  0.008793030100, -0.002459004700,
     -0.001110081400,  0.002970330900, -0.002329660800, -0.001170874500},
   { -0.009639674100,  0.010606181300, -0.011483842100,  0.014211122400,
     -0.019391070400,  0.029143138800, -0.053052763700,  0.296709109200,
-     0.063405648500, -0.021569686100,  0.008780917600, -0.002456863700,
+    0.063405648500, -0.021569686100,  0.008780917600, -0.002456863700,
     -0.001107234800,  0.002969450300, -0.002333956200, -0.001170125300},
   { -0.009581441000,  0.010536858700, -0.011393027300,  0.014097865300,
     -0.019243677500,  0.028962045800, -0.052791038800,  0.296794244500,
-     0.063110931400, -0.021511634200,  0.008780017100, -0.002469118700,
+    0.063110931400, -0.021511634200,  0.008780017100, -0.002469118700,
     -0.001096137300,  0.002963079500, -0.002335754800, -0.001163895700},
   { -0.009515365500,  0.010456770600, -0.011303346500,  0.013982426200,
     -0.019092348700,  0.028770277400, -0.052523860000,  0.296881395600,
-     0.062822494300, -0.021452275300,  0.008767593500, -0.002466860000,
+    0.062822494300, -0.021452275300,  0.008767593500, -0.002466860000,
     -0.001093302800,  0.002962141700, -0.002339996800, -0.001163170100},
   { -0.009457035400,  0.010387174600, -0.011211408300,  0.013863735500,
     -0.018955461900,  0.028578727400, -0.052264429900,  0.296965665500,
-     0.062526684700, -0.021390879000,  0.008758231200, -0.002482874600,
+    0.062526684700, -0.021390879000,  0.008758231200, -0.002482874600,
     -0.001081090900,  0.002955577100, -0.002341776700, -0.001156792500},
   { -0.009400556800,  0.010319669900, -0.011122203700,  0.013752383900,
     -0.018810443800,  0.028400005500, -0.052003778300,  0.297056151300,
-     0.062236110400, -0.021336172300,  0.008746430300, -0.002480260300,
+    0.062236110400, -0.021336172300,  0.008746430300, -0.002480260300,
     -0.001078834400,  0.002954987600, -0.002346166500, -0.001156099600},
   { -0.009332105500,  0.010246624400, -0.011036161100,  0.013639306600,
     -0.018660250400,  0.028208189500, -0.051734216700,  0.297140614200,
-     0.061941420000, -0.021276152500,  0.008744611200, -0.002492352100,
+    0.061941420000, -0.021276152500,  0.008744611200, -0.002492352100,
     -0.001067597300,  0.002948573300, -0.002347967100, -0.001149887200},
   { -0.009272360200,  0.010174446400, -0.010935538100,  0.013522491900,
     -0.018517173300,  0.028021068000, -0.051473353600,  0.297221172300,
-     0.061647632000, -0.021220051600,  0.008732236600, -0.002489611700,
+    0.061647632000, -0.021220051600,  0.008732236600, -0.002489611700,
     -0.001065202900,  0.002947918700, -0.002352278400, -0.001149066000},
   { -0.009213325600,  0.010098901500, -0.010850127500,  0.013411298100,
     -0.018369198800,  0.027831555500, -0.051205897900,  0.297312718800,
-     0.061355453400, -0.021156852500,  0.008721014300, -0.002503786900,
+    0.061355453400, -0.021156852500,  0.008721014300, -0.002503786900,
     -0.001055769400,  0.002949420200, -0.002350196200, -0.001143817000},
   { -0.009154686400,  0.010032437200, -0.010762989400,  0.013303147900,
     -0.018232338700,  0.027647756700, -0.050939241800,  0.297396279600,
-     0.061067211800, -0.021101691400,  0.008709501200, -0.002502402100,
+    0.061067211800, -0.021101691400,  0.008709501200, -0.002502402100,
     -0.001050877900,  0.002940699400, -0.002358437400, -0.001142165600},
   { -0.009098345900,  0.009964812300, -0.010672807300,  0.013184994200,
     -0.018090535100,  0.027462057700, -0.050678910500,  0.297482132700,
-     0.060775711600, -0.021036808600,  0.008695284800, -0.002507997500,
+    0.060775711600, -0.021036808600,  0.008695284800, -0.002507997500,
     -0.001037794300,  0.002941289900, -0.002355925500, -0.001136940000},
   { -0.009040073800,  0.009890164700, -0.010588375400,  0.013074472100,
     -0.017943142100,  0.027273058500, -0.050413365200,  0.297557115100,
-     0.060482529200, -0.020973444000,  0.008689737800, -0.002515641700,
+    0.060482529200, -0.020973444000,  0.008689737800, -0.002515641700,
     -0.001036539700,  0.002933528900, -0.002364533600, -0.001134965700},
   { -0.008978175500,  0.009829858100, -0.010503877000,  0.012966752800,
     -0.017800540400,  0.027094554000, -0.050147624100,  0.297640606500,
-     0.060185287000, -0.020914048900,  0.008683823800, -0.002517293800,
+    0.060185287000, -0.020914048900,  0.008683823800, -0.002517293800,
     -0.001024611700,  0.002934410200, -0.002362132000, -0.001129829700},
   { -0.008920174300,  0.009755024700, -0.010418098600,  0.012849997300,
     -0.017658755900,  0.026908098600, -0.049883464500,  0.297721129900,
-     0.059897161500, -0.020855847900,  0.008665084700, -0.002525885700,
+    0.059897161500, -0.020855847900,  0.008665084700, -0.002525885700,
     -0.001025446300,  0.002934650000, -0.002366817000, -0.001128974000},
   { -0.008866407500,  0.009690722000, -0.010331978800,  0.012740654600,
     -0.017513336800,  0.026720176000, -0.049613614700,  0.297814833400,
-     0.059603377300, -0.020796619900,  0.008659451000, -0.002528098100,
+    0.059603377300, -0.020796619900,  0.008659451000, -0.002528098100,
     -0.001012468200,  0.002930143500, -0.002376553600, -0.001126794900},
   { -0.008809499600,  0.009626161500, -0.010246944100,  0.012634266200,
     -0.017376589500,  0.026529402400, -0.049347375400,  0.297893741900,
-     0.059312998000, -0.020728754500,  0.008642272200, -0.002530568000,
+    0.059312998000, -0.020728754500,  0.008642272200, -0.002530568000,
     -0.001007501500,  0.002926808400, -0.002372946000, -0.001121930300},
   { -0.008753278600,  0.009553595700, -0.010164038100,  0.012520217600,
     -0.017238147400,  0.026350960600, -0.049076921100,  0.297970747600,
-     0.059018701600, -0.020669669800,  0.008638257800, -0.002540198000,
+    0.059018701600, -0.020669669800,  0.008638257800, -0.002540198000,
     -0.000998529900,  0.002922998700, -0.002382694100, -0.001119665800},
   { -0.008700892600,  0.009490588100, -0.010079579700,  0.012413140100,
     -0.017095016200,  0.026165585800, -0.048812541600,  0.298055673800,
-     0.058732787100, -0.020602200500,  0.008620998100, -0.002542420300,
+    0.058732787100, -0.020602200500,  0.008620998100, -0.002542420300,
     -0.000993979200,  0.002919927800, -0.002379174400, -0.001114931100},
   { -0.008636872000,  0.009421764400, -0.009992841500,  0.012312002500,
     -0.016954362300,  0.025981636800, -0.048553232900,  0.298128451900,
-     0.058438067100, -0.020540206700,  0.008612798400, -0.002542224400,
+    0.058438067100, -0.020540206700,  0.008612798400, -0.002542224400,
     -0.000983932400,  0.002923485400, -0.002384780000, -0.001113605200},
   { -0.008584316600,  0.009358594600, -0.009907251900,  0.012198085900,
     -0.016816027500,  0.025797833300, -0.048288066300,  0.298212478700,
-     0.058145551600, -0.020476810000,  0.008597199400, -0.002545865100,
+    0.058145551600, -0.020476810000,  0.008597199400, -0.002545865100,
     -0.000977036900,  0.002912420300, -0.002385153400, -0.001107825500},
   { -0.008530542400,  0.009288917500, -0.009827928200,  0.012092889000,
     -0.016673561700,  0.025612282700, -0.048021033600,  0.298294423300,
-     0.057854601300, -0.020415253900,  0.008590004000, -0.002551352000,
+    0.057854601300, -0.020415253900,  0.008590004000, -0.002551352000,
     -0.000978876700,  0.002913287000, -0.002390253900, -0.001106899300},
   { -0.008478483800,  0.009226377800, -0.009743311000,  0.011980096900,
     -0.016536709400,  0.025434302500, -0.047747110700,  0.298365825000,
-     0.057560244000, -0.020351243300,  0.008574970900, -0.002557026600,
+    0.057560244000, -0.020351243300,  0.008574970900, -0.002557026600,
     -0.000963826400,  0.002905602300, -0.002391414300, -0.001100755900},
   { -0.008424799700,  0.009165535000, -0.009662092200,  0.011877441200,
     -0.016403414400,  0.025245702300, -0.047478375000,  0.298446320200,
-     0.057267599400, -0.020285138500,  0.008556551400, -0.002557753000,
+    0.057267599400, -0.020285138500,  0.008556551400, -0.002557753000,
     -0.000960917900,  0.002905172800, -0.002396213700, -0.001099661700},
   { -0.008372136900,  0.009097353100, -0.009584221800,  0.011773596800,
     -0.016261962900,  0.025060099400, -0.047209041900,  0.298525257700,
-     0.056970953100, -0.020227896300,  0.008551918400, -0.002566762900,
+    0.056970953100, -0.020227896300,  0.008551918400, -0.002566762900,
     -0.000953100600,  0.002907384900, -0.002394239600, -0.001094674000},
   { -0.008313510700,  0.009040315200, -0.009502392800,  0.011662794000,
     -0.016126306100,  0.024878475500, -0.046947568800,  0.298599300000,
-     0.056680564700, -0.020162388700,  0.008534249200, -0.002568479900,
+    0.056680564700, -0.020162388700,  0.008534249200, -0.002568479900,
     -0.000948207200,  0.002898882600, -0.002402600100, -0.001092599200},
   { -0.008261904500,  0.008972850800, -0.009425383800,  0.011560009200,
     -0.015986171300,  0.024693755800, -0.046677919500,  0.298682066000,
-     0.056395501800, -0.020100315900,  0.008526039100, -0.002568721700,
+    0.056395501800, -0.020100315900,  0.008526039100, -0.002568721700,
     -0.000936969600,  0.002900157200, -0.002400214400, -0.001087840400},
   { -0.008211115400,  0.008911303700, -0.009336453400,  0.011454721200,
     -0.015854163900,  0.024519846800, -0.046405144200,  0.298759763600,
-     0.056094866900, -0.020029308800,  0.008512218400, -0.002571374100,
+    0.056094866900, -0.020029308800,  0.008512218400, -0.002571374100,
     -0.000931811500,  0.002891576300, -0.002408972300, -0.001085440200},
   { -0.008160197200,  0.008844778800, -0.009260656400,  0.011353693700,
     -0.015715846500,  0.024337335900, -0.046141044500,  0.298830136900,
-     0.055805182500, -0.019961847400,  0.008492748700, -0.002571357000,
+    0.055805182500, -0.019961847400,  0.008492748700, -0.002571357000,
     -0.000929480500,  0.002891307200, -0.002413690800, -0.001084311600},
   { -0.008112103700,  0.008787159000, -0.009181661000,  0.011251768000,
     -0.015576602500,  0.024153171400, -0.045870162900,  0.298911585300,
-     0.055512440700, -0.019901475900,  0.008478936300, -0.002583378800,
+    0.055512440700, -0.019901475900,  0.008478936300, -0.002583378800,
     -0.000920943200,  0.002893394800, -0.002411773500, -0.001079321400},
   { -0.008048876900,  0.008722251100, -0.009104537200,  0.011142744200,
     -0.015441580200,  0.023970548200, -0.045602981800,  0.298977325900,
-     0.055225670900, -0.019836708300,  0.008468413700, -0.002580907300,
+    0.055225670900, -0.019836708300,  0.008468413700, -0.002580907300,
     -0.000917271300,  0.002885109500, -0.002420012800, -0.001077376400},
   { -0.008001667100,  0.008665715200, -0.009027145700,  0.011042483200,
     -0.015304227600,  0.023788158500, -0.045332341000,  0.299058734900,
-     0.054929607400, -0.019764945900,  0.008453838100, -0.002582942100,
+    0.054929607400, -0.019764945900,  0.008453838100, -0.002582942100,
     -0.000913301400,  0.002882721100, -0.002416975800, -0.001072495600},
   { -0.007952339000,  0.008600802500, -0.008952392000,  0.010937108800,
     -0.015174084700,  0.023616380100, -0.045064497900,  0.299132742800,
-     0.054637916200, -0.019701857900,  0.008436057700, -0.002584785900,
+    0.054637916200, -0.019701857900,  0.008436057700, -0.002584785900,
     -0.000903092500,  0.002886222600, -0.002422944100, -0.001071045600},
   { -0.007904789100,  0.008543139300, -0.008868051200,  0.010841905100,
     -0.015039485700,  0.023436300800, -0.044799707800,  0.299207159000,
-     0.054344370000, -0.019630506300,  0.008421815400, -0.002587760600,
+    0.054344370000, -0.019630506300,  0.008421815400, -0.002587760600,
     -0.000897083200,  0.002875630100, -0.002423263600, -0.001065244000},
   { -0.007858185900,  0.008487210700, -0.008790859100,  0.010741407000,
     -0.014901532300,  0.023251997700, -0.044524238300,  0.299282071600,
-     0.054053355000, -0.019568733800,  0.008411993400, -0.002586331800,
+    0.054053355000, -0.019568733800,  0.008411993400, -0.002586331800,
     -0.000887586200,  0.002879382200, -0.002429340400, -0.001063908000},
   { -0.007801564500,  0.008427026200, -0.008718424600,  0.010638181300,
     -0.014777689900,  0.023068158700, -0.044255915700,  0.299351847700,
-     0.053763206500, -0.019505511500,  0.008395133400, -0.002594827000,
+    0.053763206500, -0.019505511500,  0.008395133400, -0.002594827000,
     -0.000887696700,  0.002878112600, -0.002426308700, -0.001059278600},
   { -0.007752716200,  0.008371567300, -0.008642947600,  0.010540183700,
     -0.014642563600,  0.022887494700, -0.043988296500,  0.299422575400,
-     0.053470206400, -0.019432499100,  0.008379552700, -0.002596486400,
+    0.053470206400, -0.019432499100,  0.008379552700, -0.002596486400,
     -0.000883216200,  0.002869839900, -0.002434904100, -0.001056944400},
   { -0.007704528800,  0.008307898100, -0.008569545100,  0.010435528000,
     -0.014511589100,  0.022707641400, -0.043720040800,  0.299491463500,
-     0.053178429700, -0.019359975400,  0.008364846400, -0.002599735200,
+    0.053178429700, -0.019359975400,  0.008364846400, -0.002599735200,
     -0.000871418100,  0.002871064200, -0.002432661800, -0.001051839000},
   { -0.007660450500,  0.008255099600, -0.008496004600,  0.010339539800,
     -0.014379049200,  0.022534686200, -0.043441724600,  0.299571471100,
-     0.052882824900, -0.019298671600,  0.008346423900, -0.002600374000,
+    0.052882824900, -0.019298671600,  0.008346423900, -0.002600374000,
     -0.000867444000,  0.002862933200, -0.002441463500, -0.001049660900},
   { -0.007603296800,  0.008193382200, -0.008416132400,  0.010239585900,
     -0.014249993700,  0.022355720200, -0.043172229900,  0.299637947900,
-     0.052591247500, -0.019224621200,  0.008329727400, -0.002600981100,
+    0.052591247500, -0.019224621200,  0.008329727400, -0.002600981100,
     -0.000864181800,  0.002860802800, -0.002438248600, -0.001044875200},
   { -0.007559512700,  0.008140629300, -0.008342511600,  0.010143265600,
     -0.014116237900,  0.022175330800, -0.042902559300,  0.299710502400,
-     0.052305586800, -0.019159837900,  0.008310446500, -0.002602041500,
+    0.052305586800, -0.019159837900,  0.008310446500, -0.002602041500,
     -0.000854285500,  0.002864501800, -0.002444344500, -0.001043455200},
   { -0.007513280300,  0.008079345200, -0.008271562400,  0.010041094600,
     -0.013987692600,  0.021997806500, -0.042634176100,  0.299784559000,
-     0.052010247800, -0.019090033000,  0.008295552500, -0.002604044700,
+    0.052010247800, -0.019090033000,  0.008295552500, -0.002604044700,
     -0.000848986600,  0.002854305800, -0.002444743300, -0.001037730800},
   { -0.007466532300,  0.008026496300, -0.008198836000,  0.009945759200,
     -0.013854742200,  0.021817938400, -0.042362922600,  0.299849767900,
-     0.051710800600, -0.019017700500,  0.008278482500, -0.002603834000,
+    0.051710800600, -0.019017700500,  0.008278482500, -0.002603834000,
     -0.000847135700,  0.002854590200, -0.002450114700, -0.001036184000},
   { -0.007421596100,  0.007966615900, -0.008130314500,  0.009852191300,
     -0.013722881700,  0.021638799100, -0.042091828500,  0.299919862100,
-     0.051423553400, -0.018942531200,  0.008260465800, -0.002603155800,
+    0.051423553400, -0.018942531200,  0.008260465800, -0.002603155800,
     -0.000845516700,  0.002854963900, -0.002455432800, -0.001034829400},
   { -0.007368637400,  0.007915606500, -0.008049069000,  0.009753117800,
     -0.013595099000,  0.021460165700, -0.041819414400,  0.299987943200,
-     0.051132245200, -0.018881182900,  0.008242689200, -0.002605985800,
+    0.051132245200, -0.018881182900,  0.008242689200, -0.002605985800,
     -0.000832295700,  0.002848095500, -0.002456559500, -0.001029015400},
   { -0.007324914900,  0.007857386900, -0.007982526900,  0.009661947700,
     -0.013466505100,  0.021290236500, -0.041544493000,  0.300056546100,
-     0.050837682400, -0.018808660100,  0.008224995500, -0.002605154700,
+    0.050837682400, -0.018808660100,  0.008224995500, -0.002605154700,
     -0.000830876200,  0.002848515400, -0.002462055200, -0.001027526900},
   { -0.007282763500,  0.007806632000, -0.007910621800,  0.009561255200,
     -0.013339966800,  0.021114682600, -0.041280619200,  0.300121126000,
-     0.050544717400, -0.018736947600,  0.008207999600, -0.002605038900,
+    0.050544717400, -0.018736947600,  0.008207999600, -0.002605038900,
     -0.000828329300,  0.002846963800, -0.002458999000, -0.001022805800},
   { -0.007239595400,  0.007748911800, -0.007844275500,  0.009469910200,
     -0.013210161600,  0.020936736300, -0.041008289300,  0.300195390400,
-     0.050254997100, -0.018666130300,  0.008192356500, -0.002607611600,
+    0.050254997100, -0.018666130300,  0.008192356500, -0.002607611600,
     -0.000816356100,  0.002842431500, -0.002468794900, -0.001020138600},
   { -0.007189132600,  0.007701593500, -0.007773543100,  0.009369503200,
     -0.013083002200,  0.020758957600, -0.040734108300,  0.300260370700,
-     0.049961784800, -0.018593391800,  0.008174805900, -0.002607328400,
+    0.049961784800, -0.018593391800,  0.008174805900, -0.002607328400,
     -0.000813752200,  0.002840812400, -0.002465827800, -0.001015410900},
   { -0.007142203300,  0.007641451600, -0.007699103200,  0.009282076700,
     -0.012954925100,  0.020581902400, -0.040460854200,  0.300332528600,
-     0.049672014200, -0.018520619000,  0.008156499100, -0.002606187400,
+    0.049672014200, -0.018520619000,  0.008156499100, -0.002606187400,
     -0.000812553500,  0.002841559200, -0.002471464900, -0.001013982200},
   { -0.007101149600,  0.007591957300, -0.007628580400,  0.009182604800,
     -0.012829151000,  0.020406004000, -0.040192877300,  0.300391149900,
-     0.049381202700, -0.018448182600,  0.008139326600, -0.002606745200,
+    0.049381202700, -0.018448182600,  0.008139326600, -0.002606745200,
     -0.000808105100,  0.002831584800, -0.002471553400, -0.001008355200},
   { -0.007059152000,  0.007535511600, -0.007563628700,  0.009092708900,
     -0.012700466400,  0.020228151600, -0.039917450300,  0.300460428800,
-     0.049092597200, -0.018375427900,  0.008121814200, -0.002607487200,
+    0.049092597200, -0.018375427900,  0.008121814200, -0.002607487200,
     -0.000798497500,  0.002835512200, -0.002478145100, -0.001006580300},
   { -0.007009147900,  0.007482806700, -0.007499733800,  0.008997547100,
     -0.012579180400,  0.020062891600, -0.039647806700,  0.300525821900,
-     0.048797495500, -0.018306252700,  0.008105184800, -0.002607855100,
+    0.048797495500, -0.018306252700,  0.008105184800, -0.002607855100,
     -0.000794439900,  0.002825789700, -0.002478474500, -0.001000945500},
   { -0.006968240600,  0.007433072000, -0.007423567800,  0.008910574100,
     -0.012451522700,  0.019885022200, -0.039369675200,  0.300585104500,
-     0.048504934800, -0.018229228000,  0.008077029200, -0.002609247300,
+    0.048504934800, -0.018229228000,  0.008077029200, -0.002609247300,
     -0.000792419400,  0.002826100200, -0.002484009500, -0.000999231800},
   { -0.006926866100,  0.007377316500, -0.007358544200,  0.008814417700,
     -0.012328366300,  0.019710850400, -0.039101469100,  0.300648793200,
-     0.048210544400, -0.018159587600,  0.008060409500, -0.002610430800,
+    0.048210544400, -0.018159587600,  0.008060409500, -0.002610430800,
     -0.000781936000,  0.002828146400, -0.002482150700, -0.000994223400},
   { -0.006888043700,  0.007330615400, -0.007291803100,  0.008724921800,
     -0.012200346800,  0.019533132300, -0.038822537300,  0.300712721600,
-     0.047923413800, -0.018085444700,  0.008041528500, -0.002609670800,
+    0.047923413800, -0.018085444700,  0.008041528500, -0.002609670800,
     -0.000778976000,  0.002820404900, -0.002490903500, -0.000991790800},
   { -0.006839293900,  0.007279247200, -0.007229475600,  0.008630964100,
     -0.012079179200,  0.019361129300, -0.038555831700,  0.300783801700,
-     0.047630120500, -0.018006655200,  0.008026572200, -0.002609399200,
+    0.047630120500, -0.018006655200,  0.008026572200, -0.002609399200,
     -0.000777006200,  0.002819585000, -0.002488366700, -0.000987006200},
   { -0.006798540800,  0.007233149500, -0.007164042200,  0.008543197100,
     -0.011953311100,  0.019186232700, -0.038285177900,  0.300844278100,
-     0.047335766700, -0.017934700400,  0.008007388400, -0.002607418500,
+    0.047335766700, -0.017934700400,  0.008007388400, -0.002607418500,
     -0.000776398500,  0.002820679000, -0.002494154700, -0.000985371100},
   { -0.006756891400,  0.007176317300, -0.007091540900,  0.008451307000,
     -0.011831617600,  0.019011206000, -0.038005599900,  0.300906624700,
-     0.047040567000, -0.017860728900,  0.007980042300, -0.002609428000,
+    0.047040567000, -0.017860728900,  0.007980042300, -0.002609428000,
     -0.000772729700,  0.002812783500, -0.002503047600, -0.000982640700},
   { -0.006720561000,  0.007132703000, -0.007028371700,  0.008366076000,
     -0.011709400800,  0.018846008900, -0.037732212300,  0.300971836600,
-     0.046750583700, -0.017789132800,  0.007960205400, -0.002601193300,
+    0.046750583700, -0.017789132800,  0.007960205400, -0.002601193300,
     -0.000759764200,  0.002814043200, -0.002500954000, -0.000977775800},
   { -0.006672404900,  0.007082025300, -0.006966950500,  0.008272917200,
     -0.011588469400,  0.018672889900, -0.037460064500,  0.301029284000,
-     0.046455528400, -0.017707594600,  0.007943302900, -0.002599558300,
+    0.046455528400, -0.017707594600,  0.007943302900, -0.002599558300,
     -0.000759066900,  0.002815167300, -0.002506921900, -0.000975884100},
   { -0.006636191300,  0.007038598500, -0.006903834600,  0.008187619300,
     -0.011464768800,  0.018499388000, -0.037187988000,  0.301092874000,
-     0.046165570800, -0.017634207100,  0.007916113200, -0.002601855100,
+    0.046165570800, -0.017634207100,  0.007916113200, -0.002601855100,
     -0.000754783900,  0.002805563000, -0.002507180900, -0.000970271500},
   { -0.006596465200,  0.006983825400, -0.006833460100,  0.008097770300,
     -0.011345476800,  0.018327200500, -0.036915500100,  0.301155082000,
-     0.045876647100, -0.017561716500,  0.007895994400, -0.002599054600,
+    0.045876647100, -0.017561716500,  0.007895994400, -0.002599054600,
     -0.000754654000,  0.002806943500, -0.002513137500, -0.000968652300},
   { -0.006560412300,  0.006940658100, -0.006770837100,  0.008012401600,
     -0.011221145500,  0.018151488300, -0.036633262700,  0.301219274700,
-     0.045585787000, -0.017480905500,  0.007880162200, -0.002600023100,
+    0.045585787000, -0.017480905500,  0.007880162200, -0.002600023100,
     -0.000744270100,  0.002809097600, -0.002511606900, -0.000963551800},
   { -0.006513718100,  0.006891483500, -0.006710841700,  0.007921089700,
     -0.011101909300,  0.017979361500, -0.036359405400,  0.301279455500,
-     0.045296336600, -0.017405665400,  0.007850982300, -0.002599865500,
+    0.045296336600, -0.017405665400,  0.007850982300, -0.002599865500,
     -0.000743330300,  0.002810197300, -0.002517572500, -0.000961768900},
   { -0.006474304300,  0.006840684600, -0.006652924700,  0.007839125400,
     -0.010981524900,  0.017809064300, -0.036093943200,  0.301337182700,
-     0.044998869000, -0.017326384300,  0.007833242200, -0.002591035300,
+    0.044998869000, -0.017326384300,  0.007833242200, -0.002591035300,
     -0.000737232300,  0.002800277200, -0.002517691400, -0.000956035500},
   { -0.006438009700,  0.006796203400, -0.006581589800,  0.007750585800,
     -0.010864711900,  0.017645387000, -0.035815202400,  0.301393202700,
-     0.044711874800, -0.017252787500,  0.007812074200, -0.002587518900,
+    0.044711874800, -0.017252787500,  0.007812074200, -0.002587518900,
     -0.000737454900,  0.002801635500, -0.002523680400, -0.000954362300},
   { -0.006401639200,  0.006746574400, -0.006524338300,  0.007669196200,
     -0.010743983400,  0.017473398600, -0.035540053600,  0.301451854500,
-     0.044413545900, -0.017171090300,  0.007786312500, -0.002588925400,
+    0.044413545900, -0.017171090300,  0.007786312500, -0.002588925400,
     -0.000735266600,  0.002800927700, -0.002521316700, -0.000949359500},
   { -0.006357778700,  0.006707002900, -0.006462535400,  0.007577627400,
     -0.010624650100,  0.017300143900, -0.035261474700,  0.301505220000,
-     0.044127692000, -0.017097850700,  0.007766585900, -0.002588324800,
+    0.044127692000, -0.017097850700,  0.007766585900, -0.002588324800,
     -0.000724851500,  0.002796544700, -0.002531073000, -0.000946421000},
   { -0.006322346100,  0.006658344700, -0.006406316800,  0.007497394200,
     -0.010505114500,  0.017129209400, -0.034986501900,  0.301569791200,
-     0.043833061900, -0.017016393700,  0.007740582000, -0.002589426200,
+    0.043833061900, -0.017016393700,  0.007740582000, -0.002589426200,
     -0.000722919300,  0.002796070900, -0.002528823500, -0.000941518100},
   { -0.006287412000,  0.006615790600, -0.006337047100,  0.007410503600,
     -0.010389329800,  0.016959520500, -0.034711193400,  0.301633352100,
-     0.043538995400, -0.016935463200,  0.007720653400, -0.002578087200,
+    0.043538995400, -0.016935463200,  0.007720653400, -0.002578087200,
     -0.000720236600,  0.002796975700, -0.002534998100, -0.000939577700},
   { -0.006252289300,  0.006567502700, -0.006281032900,  0.007330632700,
     -0.010270201400,  0.016788863600, -0.034440183200,  0.301682214200,
-     0.043245651300, -0.016861993700,  0.007691723300, -0.002578831000,
+    0.043245651300, -0.016861993700,  0.007691723300, -0.002578831000,
     -0.000716968300,  0.002787827800, -0.002535183000, -0.000933911800},
   { -0.006205898400,  0.006520927200, -0.006224969100,  0.007243536900,
     -0.010155742500,  0.016627163700, -0.034159645200,  0.301741305700,
-     0.042953309700, -0.016781259600,  0.007673144100, -0.002575750000,
+    0.042953309700, -0.016781259600,  0.007673144100, -0.002575750000,
     -0.000717300000,  0.002789556600, -0.002541677100, -0.000931902700},
   { -0.006172693900,  0.006480627500, -0.006158957400,  0.007167086900,
     -0.010038799500,  0.016458330300, -0.033890060300,  0.301797671500,
-     0.042661393000, -0.016699057600,  0.007646012100, -0.002576064600,
+    0.042661393000, -0.016699057600,  0.007646012100, -0.002576064600,
     -0.000715860200,  0.002789348200, -0.002539353500, -0.000927029000},
   { -0.006137812800,  0.006432255400, -0.006101996500,  0.007079130900,
     -0.009922951400,  0.016287909800, -0.033610088700,  0.301854227800,
-     0.042371265900, -0.016625851600,  0.007623115300, -0.002564257200,
+    0.042371265900, -0.016625851600,  0.007623115300, -0.002564257200,
     -0.000711981100,  0.002781648600, -0.002548160800, -0.000924334400},
   { -0.006096934600,  0.006396695800, -0.006045818500,  0.007000329800,
     -0.009804671800,  0.016116562300, -0.033329631800,  0.301910604800,
-     0.042079113900, -0.016542771000,  0.007595979900, -0.002565562900,
+    0.042079113900, -0.016542771000,  0.007595979900, -0.002565562900,
     -0.000702731900,  0.002785897700, -0.002555562000, -0.000921807000},
   { -0.006062933900,  0.006349328800, -0.005990311300,  0.006913942100,
     -0.009690267000,  0.015948108300, -0.033057262400,  0.301962237800,
-     0.041789551900, -0.016461435000,  0.007576990700, -0.002562617900,
+    0.041789551900, -0.016461435000,  0.007576990700, -0.002562617900,
     -0.000702405400,  0.002786094000, -0.002553292100, -0.000917048000},
   { -0.006030707600,  0.006310258300, -0.005925655500,  0.006838885700,
     -0.009574791300,  0.015779698800, -0.032784352400,  0.302013593200,
-     0.041498813500, -0.016377089100,  0.007547123000, -0.002553821800,
+    0.041498813500, -0.016377089100,  0.007547123000, -0.002553821800,
     -0.000697783700,  0.002778180000, -0.002562081100, -0.000914005100},
   { -0.005997784800,  0.006264360200, -0.005871819500,  0.006754676200,
     -0.009463128500,  0.015620155600, -0.032502060800,  0.302075447000,
-     0.041202514700, -0.016296539100,  0.007519854200, -0.002553495700,
+    0.041202514700, -0.016296539100,  0.007519854200, -0.002553495700,
     -0.000696753300,  0.002778219800, -0.002560158500, -0.000909073800},
   { -0.005953802600,  0.006220559900, -0.005819558300,  0.006678209600,
     -0.009346907400,  0.015450858700, -0.032226770800,  0.302123085100,
-     0.040913759200, -0.016213682700,  0.007499502500, -0.002549585000,
+    0.040913759200, -0.016213682700,  0.007499502500, -0.002549585000,
     -0.000697575600,  0.002780297700, -0.002566684400, -0.000906938700},
   { -0.005922781400,  0.006183472900, -0.005762778500,  0.006591765300,
     -0.009226118300,  0.015287200700, -0.031955488100,  0.302181358200,
-     0.040618118300, -0.016132038300,  0.007470292100, -0.002540354300,
+    0.040618118300, -0.016132038300,  0.007470292100, -0.002540354300,
     -0.000694252800,  0.002779793900, -0.002564399000, -0.000902066000},
   { -0.005890136500,  0.006137124600, -0.005702277700,  0.006519185100,
     -0.009112249200,  0.015119563200, -0.031680564700,  0.302235443400,
-     0.040332527300, -0.016048205900,  0.007441443200, -0.002539675700,
+    0.040332527300, -0.016048205900,  0.007441443200, -0.002539675700,
     -0.000692720800,  0.002772999400, -0.002573622600, -0.000899005400},
   { -0.005850311400,  0.006102867800, -0.005646959300,  0.006433987600,
     -0.008998513600,  0.014949546000, -0.031394934700,  0.302282936600,
-     0.040036207000, -0.015967839100,  0.007422582300, -0.002538011700,
+    0.040036207000, -0.015967839100,  0.007422582300, -0.002538011700,
     -0.000683794500,  0.002775953500, -0.002572520300, -0.000893764400},
   { -0.005818964100,  0.006058727200, -0.005595185800,  0.006352081900,
     -0.008889397700,  0.014792369000, -0.031117719900,  0.302336098600,
-     0.039742056100, -0.015884752000,  0.007391840300, -0.002527331400,
+    0.039742056100, -0.015884752000,  0.007391840300, -0.002527331400,
     -0.000681709200,  0.002777178000, -0.002579042300, -0.000891447000},
   { -0.005787145500,  0.006013604000, -0.005535923100,  0.006280742400,
     -0.008776679900,  0.014625338400, -0.030841085500,  0.302387399600,
-     0.039449376300, -0.015802899000,  0.007363441100, -0.002527024400,
+    0.039449376300, -0.015802899000,  0.007363441100, -0.002527024400,
     -0.000679473400,  0.002768808300, -0.002579613300, -0.000885670100},
   { -0.005757587300,  0.005978394700, -0.005481519600,  0.006197183700,
     -0.008665183400,  0.014458560600, -0.030564097400,  0.302437909100,
-     0.039157112000, -0.015721824200,  0.007342861000, -0.002522537800,
+    0.039157112000, -0.015721824200,  0.007342861000, -0.002522537800,
     -0.000680774600,  0.002771330800, -0.002586549000, -0.000883371200},
   { -0.005718682200,  0.005938417900, -0.005432964900,  0.006124864000,
     -0.008553225900,  0.014292583100, -0.030288050400,  0.302496054000,
-     0.038866667200, -0.015638780000,  0.007312074800, -0.002512230800,
+    0.038866667200, -0.015638780000,  0.007312074800, -0.002512230800,
     -0.000678044400,  0.002771222400, -0.002584426900, -0.000878577700},
   { -0.005689051600,  0.005902462900, -0.005370854200,  0.006045352000,
     -0.008444322900,  0.014128120100, -0.030018298000,  0.302541430200,
-     0.038575785600, -0.015556232000,  0.007282648600, -0.002510659300,
+    0.038575785600, -0.015556232000,  0.007282648600, -0.002510659300,
     -0.000677160100,  0.002764759200, -0.002593729700, -0.000875301600},
   { -0.005657037700,  0.005859684300, -0.005321845400,  0.005973581100,
     -0.008333790400,  0.013970133000, -0.029736435400,  0.302587106700,
-     0.038284268000, -0.015471874400,  0.007250951700, -0.002499759200,
+    0.038284268000, -0.015471874400,  0.007250951700, -0.002499759200,
     -0.000674653700,  0.002764455200, -0.002591465700, -0.000870433100},
   { -0.005618333200,  0.005819685000, -0.005272906200,  0.005893724000,
     -0.008225058800,  0.013805185000, -0.029458517200,  0.302642069200,
-     0.037993797900, -0.015379756300,  0.007223193600, -0.002497981300,
+    0.037993797900, -0.015379756300,  0.007223193600, -0.002497981300,
     -0.000675186800,  0.002766900000, -0.002598670200, -0.000867828800},
   { -0.005590368200,  0.005786648100, -0.005221758100,  0.005820627000,
     -0.008112433600,  0.013637747600, -0.029176984600,  0.302685277400,
-     0.037704094600, -0.015297293000,  0.007201598200, -0.002493386100,
+    0.037704094600, -0.015297293000,  0.007201598200, -0.002493386100,
     -0.000675974400,  0.002767923100, -0.002596834100, -0.000863002200},
   { -0.005560237100,  0.005743450200, -0.005163726600,  0.005743489200,
     -0.008005370600,  0.013473662100, -0.028897800000,  0.302738295200,
-     0.037407381800, -0.015215522800,  0.007170544900, -0.002482718300,
+    0.037407381800, -0.015215522800,  0.007170544900, -0.002482718300,
     -0.000672918600,  0.002760875300, -0.002606209100, -0.000859635800},
   { -0.005523266400,  0.005705570200, -0.005118090200,  0.005674706600,
     -0.007897426600,  0.013318487200, -0.028623546600,  0.302785848400,
-     0.037119392900, -0.015122696500,  0.007141770500, -0.002480246400,
+    0.037119392900, -0.015122696500,  0.007141770500, -0.002480246400,
     -0.000673963700,  0.002763436900, -0.002613369900, -0.000856978400},
   { -0.005495962500,  0.005673345500, -0.005067111000,  0.005594863000,
     -0.007789506200,  0.013153651000, -0.028342627700,  0.302836038100,
-     0.036823681900, -0.015040742100,  0.007110968900, -0.002470535200,
+    0.036823681900, -0.015040742100,  0.007110968900, -0.002470535200,
     -0.000662984200,  0.002766079600, -0.002612329100, -0.000851700900},
   { -0.005466715000,  0.005630853800, -0.005009907900,  0.005518700600,
     -0.007683264800,  0.012990451100, -0.028068772200,  0.302880652200,
-     0.036538564300, -0.014956855300,  0.007079958900, -0.002467783200,
+    0.036538564300, -0.014956855300,  0.007079958900, -0.002467783200,
     -0.000662808200,  0.002759921300, -0.002621758400, -0.000848374500},
   { -0.005431440200,  0.005602376800, -0.004962376800,  0.005449141300,
     -0.007574066800,  0.012825587300, -0.027786579600,  0.302928958400,
-     0.036241695300, -0.014864692500,  0.007050007700, -0.002456982100,
+    0.036241695300, -0.014864692500,  0.007050007700, -0.002456982100,
     -0.000660605900,  0.002760230300, -0.002620023800, -0.000843220100},
   { -0.005403790100,  0.005562631500, -0.004915494200,  0.005372340600,
     -0.007469387600,  0.012671612300, -0.027509888900,  0.302972042600,
-     0.035948446100, -0.014782113000,  0.007018769500, -0.002453253700,
+    0.035948446100, -0.014782113000,  0.007018769500, -0.002453253700,
     -0.000662228600,  0.002763058500, -0.002627331400, -0.000840529300},
   { -0.005375829600,  0.005521878400, -0.004861076400,  0.005306264800,
     -0.007362011400,  0.012507686500, -0.027226932800,  0.303024793500,
-     0.035664170800, -0.014687960800,  0.006987700700, -0.002441798600,
+    0.035664170800, -0.014687960800,  0.006987700700, -0.002441798600,
     -0.000660398000,  0.002763550700, -0.002625576200, -0.000835595400},
   { -0.005338761500,  0.005492759000, -0.004812448700,  0.005228310500,
     -0.007255591100,  0.012344296500, -0.026950110700,  0.303065098100,
-     0.035372382500, -0.014606652200,  0.006965471700, -0.002436456100,
+    0.035372382500, -0.014606652200,  0.006965471700, -0.002436456100,
     -0.000661304500,  0.002757890500, -0.002635253900, -0.000832149000},
   { -0.005312372600,  0.005454664900, -0.004768172600,  0.005161314600,
     -0.007148973700,  0.012182095400, -0.026675115000,  0.303114481500,
-     0.035080728500, -0.014514347800,  0.006934810400, -0.002424890300,
+    0.035080728500, -0.014514347800,  0.006934810400, -0.002424890300,
     -0.000659803100,  0.002758707300, -0.002633626200, -0.000827077700},
   { -0.005284879700,  0.005414457900, -0.004713545300,  0.005088017800,
     -0.007046166400,  0.012028731400, -0.026395378600,  0.303152032300,
-     0.034789552300, -0.014430720500,  0.006902452300, -0.002420492700,
+    0.034789552300, -0.014430720500,  0.006902452300, -0.002420492700,
     -0.000661736600,  0.002761659300, -0.002641015800, -0.000824295400},
   { -0.005260165300,  0.005385875600, -0.004667616900,  0.005020650000,
     -0.006939263300,  0.011865377600, -0.026110236100,  0.303202188800,
-     0.034489243800, -0.014340074900,  0.006872439200, -0.002409717000,
+    0.034489243800, -0.014340074900,  0.006872439200, -0.002409717000,
     -0.000658712000,  0.002753575300, -0.002641882000, -0.000818255300},
   { -0.005224926800,  0.005349893100, -0.004623184600,  0.004945699400,
     -0.006835218200,  0.011703557800, -0.025832407000,  0.303246711500,
-     0.034200612800, -0.014256420100,  0.006840045300, -0.002405245800,
+    0.034200612800, -0.014256420100,  0.006840045300, -0.002405245800,
     -0.000660759200,  0.002756849600, -0.002649463500, -0.000815493900},
   { -0.005200360700,  0.005320551900, -0.004569322900,  0.004882070200,
     -0.006731633300,  0.011550770700, -0.025552150000,  0.303289891500,
-     0.033911264900, -0.014163218900,  0.006808149800, -0.002392746100,
+    0.033911264900, -0.014163218900,  0.006808149800, -0.002392746100,
     -0.000659822800,  0.002757788100, -0.002647879500, -0.000810410400},
   { -0.005174599300,  0.005283024100, -0.004525112200,  0.004808058900,
     -0.006628580100,  0.011389660100, -0.025273538400,  0.303332931800,
-     0.033621534300, -0.014068603800,  0.006768397200, -0.002390857100,
+    0.033621534300, -0.014068603800,  0.006768397200, -0.002390857100,
     -0.000660917000,  0.002760752200, -0.002655561700, -0.000807307300},
   { -0.005138134800,  0.005247478500, -0.004481928500,  0.004734510300,
     -0.006526058700,  0.011228843600, -0.024994140700,  0.303374972100,
-     0.033324125700, -0.013977140000,  0.006737428400, -0.002379104500,
+    0.033324125700, -0.013977140000,  0.006737428400, -0.002379104500,
     -0.000658573800,  0.002752971400, -0.002656330700, -0.000801279400},
   { -0.005114783000,  0.005220209500, -0.004437547500,  0.004669293700,
     -0.006421881700,  0.011075401800, -0.024710885300,  0.303413510200,
-     0.033037596300, -0.013892349300,  0.006703786000, -0.002373851700,
+    0.033037596300, -0.013892349300,  0.006703786000, -0.002373851700,
     -0.000661054500,  0.002756297000, -0.002663989900, -0.000798421400},
   { -0.005089678500,  0.005182927100, -0.004386048500,  0.004598983100,
     -0.006321772900,  0.010917290800, -0.024440923300,  0.303460194300,
-     0.032743987500, -0.013801224500,  0.006672169900, -0.002360988600,
+    0.032743987500, -0.013801224500,  0.006672169900, -0.002360988600,
     -0.000660639200,  0.002757935000, -0.002662733600, -0.000793256200},
   { -0.005056179700,  0.005149409700, -0.004345436200,  0.004535552600,
     -0.006218141400,  0.010756094800, -0.024159306200,  0.303498774900,
-     0.032447376800, -0.013708092900,  0.006639524200, -0.002347647400,
+    0.032447376800, -0.013708092900,  0.006639524200, -0.002347647400,
     -0.000660699900,  0.002760669100, -0.002670435300, -0.000790060900},
   { -0.005033354700,  0.005122582000, -0.004301162100,  0.004462875900,
     -0.006117430000,  0.010604498100, -0.023875417200,  0.303542329100,
-     0.032163622800, -0.013614934700,  0.006608303400, -0.002343698500,
+    0.032163622800, -0.013614934700,  0.006608303400, -0.002343698500,
     -0.000661193300,  0.002753849700, -0.002671460600, -0.000784186200},
   { -0.005008967600,  0.005086442900, -0.004251580600,  0.004402065400,
     -0.006015436800,  0.010444472000, -0.023593760200,  0.303587200300,
-     0.031870307600, -0.013522135600,  0.006575368200, -0.002330048900,
+    0.031870307600, -0.013522135600,  0.006575368200, -0.002330048900,
     -0.000661553700,  0.002756838700, -0.002679339200, -0.000781019600},
   { -0.004976115300,  0.005053314100, -0.004210712400,  0.004331218000,
     -0.005916048600,  0.010294044300, -0.023316437000,  0.303617696900,
-     0.031578389200, -0.013438640200,  0.006541662700, -0.002324484400,
+    0.031578389200, -0.013438640200,  0.006541662700, -0.002324484400,
     -0.000663934100,  0.002759243400, -0.002678215700, -0.000775874300},
   { -0.004954054600,  0.005027973800, -0.004168660700,  0.004268203300,
     -0.005813434400,  0.010133649800, -0.023032853100,  0.303659766600,
-     0.031285977700, -0.013345456800,  0.006508681700, -0.002311137900,
+    0.031285977700, -0.013345456800,  0.006508681700, -0.002311137900,
     -0.000663161200,  0.002753279200, -0.002688143900, -0.000771897700},
   { -0.004928421800,  0.004991603200, -0.004118619000,  0.004199827500,
     -0.005715080300,  0.009976047300, -0.022758266200,  0.303698508100,
-     0.030994692400, -0.013251271900,  0.006466426100, -0.002299129500,
+    0.030994692400, -0.013251271900,  0.006466426100, -0.002299129500,
     -0.000662665200,  0.002754921900, -0.002686928900, -0.000766591100},
   { -0.004896598000,  0.004959857600, -0.004080198200,  0.004139136400,
     -0.005614528900,  0.009824735600, -0.022471040100,  0.303736794400,
-     0.030703785700, -0.013157852400,  0.006433708500, -0.002293624700,
+    0.030703785700, -0.013157852400,  0.006433708500, -0.002293624700,
     -0.000665508700,  0.002758724400, -0.002695207900, -0.000763249100},
   { -0.004875341600,  0.004935181400, -0.004038259800,  0.004068687500,
     -0.005515687900,  0.009667243000, -0.022195988700,  0.303781885400,
-     0.030415689700, -0.013065059600,  0.006400355600, -0.002279366500,
+    0.030415689700, -0.013065059600,  0.006400355600, -0.002279366500,
     -0.000666054000,  0.002760975500, -0.002694258700, -0.000758084800},
   { -0.004852436300,  0.004901022400, -0.003990905800,  0.004010497500,
     -0.005416881700,  0.009517056100, -0.021907914800,  0.303818672700,
-     0.030116858700, -0.012972784600,  0.006366843000, -0.002265346200,
+    0.030116858700, -0.012972784600,  0.006366843000, -0.002265346200,
     -0.000665839200,  0.002755157700, -0.002704376900, -0.000753869400},
   { -0.004820883700,  0.004869373400, -0.003952016200,  0.003941798300,
     -0.005318693300,  0.009359170900, -0.021629843300,  0.303851724000,
-     0.029827673100, -0.012877926700,  0.006324791000, -0.002261575500,
+    0.029827673100, -0.012877926700,  0.006324791000, -0.002261575500,
     -0.000667691900,  0.002757747500, -0.002703558700, -0.000748453500},
   { -0.004800157600,  0.004845423900, -0.003911010800,  0.003872318000,
     -0.005220680700,  0.009201932100, -0.021352478200,  0.303893044500,
-     0.029540755700, -0.012784037700,  0.006290380500, -0.002246404800,
+    0.029540755700, -0.012784037700,  0.006290380500, -0.002246404800,
     -0.000669147800,  0.002761387900, -0.002711729700, -0.000745150400},
   { -0.004769350200,  0.004814396600, -0.003865951000,  0.003816203000,
     -0.005123937600,  0.009054063500, -0.021072898700,  0.303933574300,
-     0.029244511900, -0.012682582100,  0.006257946300, -0.002231939800,
+    0.029244511900, -0.012682582100,  0.006257946300, -0.002231939800,
     -0.000670457700,  0.002764997300, -0.002720193100, -0.000741467200},
   { -0.004747416400,  0.004781502000, -0.003827110500,  0.003747768000,
     -0.005026132300,  0.008896179300, -0.020792099600,  0.303962072700,
-     0.028957720600, -0.012588365800,  0.006224450200, -0.002226292500,
+    0.028957720600, -0.012588365800,  0.006224450200, -0.002226292500,
     -0.000672109200,  0.002758959300, -0.002721352900, -0.000735386100},
   { -0.004727789800,  0.004759315900, -0.003788813700,  0.003689348800,
     -0.004928785800,  0.008748066500, -0.020511012600,  0.304000013700,
-     0.028662906200, -0.012494169800,  0.006180633900, -0.002212588700,
+    0.028662906200, -0.012494169800,  0.006180633900, -0.002212588700,
     -0.000673225600,  0.002762428000, -0.002729709100, -0.000731741100},
   { -0.004696972400,  0.004728140600, -0.003742729000,  0.003624215600,
     -0.004833255700,  0.008591834800, -0.020230886000,  0.304036328200,
-     0.028369440400, -0.012401276400,  0.006146021300, -0.002197280000,
+    0.028369440400, -0.012401276400,  0.006146021300, -0.002197280000,
     -0.000674502100,  0.002765145400, -0.002729093500, -0.000726338700},
   { -0.004676431900,  0.004696952300, -0.003706438500,  0.003566616300,
     -0.004736314300,  0.008443532900, -0.019947475400,  0.304069875300,
-     0.028085420100, -0.012305860200,  0.006110074200, -0.002181080700,
+    0.028085420100, -0.012305860200,  0.006110074200, -0.002181080700,
     -0.000676615300,  0.002768917300, -0.002737400900, -0.000722876700},
   { -0.004656297500,  0.004673640000, -0.003658751600,  0.003501561200,
     -0.004641076300,  0.008287779500, -0.019666250900,  0.304104283300,
-     0.027791528800, -0.012202678300,  0.006068547500, -0.002176335900,
+    0.027791528800, -0.012202678300,  0.006068547500, -0.002176335900,
     -0.000686846600,  0.002761221600, -0.002738242600, -0.000716707400},
   { -0.004627325000,  0.004645205500, -0.003624168800,  0.003445318600,
     -0.004545293600,  0.008140437800, -0.019382840700,  0.304145203000,
-     0.027501099300, -0.012109150300,  0.006033055000, -0.002160148400,
+    0.027501099300, -0.012109150300,  0.006033055000, -0.002160148400,
     -0.000689188800,  0.002765358600, -0.002746934500, -0.000713093800},
   { -0.004606892100,  0.004614320900, -0.003587618200,  0.003379587100,
     -0.004450296100,  0.007984496700, -0.019099860600,  0.304176499000,
-     0.027209072700, -0.012013907400,  0.005988351400, -0.002145830400,
+    0.027209072700, -0.012013907400,  0.005988351400, -0.002145830400,
     -0.000690246800,  0.002768039100, -0.002746360600, -0.000707548200},
   { -0.004586402700,  0.004592039500, -0.003542025400,  0.003325426100,
     -0.004364128800,  0.007835360000, -0.018813366000,  0.304205403100,
-     0.026918136600, -0.011919323000,  0.005951839900, -0.002129046300,
+    0.026918136600, -0.011919323000,  0.005951839900, -0.002129046300,
     -0.000692658900,  0.002772071700, -0.002754968200, -0.000703804500},
   { -0.004557731900,  0.004563753700, -0.003507314200,  0.003260984500,
     -0.004270140400,  0.007680828300, -0.018538518600,  0.304240989200,
-     0.026629304300, -0.011817129000,  0.005919133800, -0.002122896500,
+    0.026629304300, -0.011817129000,  0.005919133800, -0.002122896500,
     -0.000695192900,  0.002766964300, -0.002756676800, -0.000697463600},
   { -0.004538643100,  0.004534730300, -0.003473370900,  0.003206136100,
     -0.004175833600,  0.007534408900, -0.018252857000,  0.304277893000,
-     0.026331338900, -0.011723107400,  0.005874142700, -0.002107933500,
+    0.026331338900, -0.011723107400,  0.005874142700, -0.002107933500,
     -0.000697223600,  0.002771073600, -0.002765610600, -0.000693472400},
   { -0.004519537900,  0.004512855100, -0.003427404600,  0.003142614000,
     -0.004082281200,  0.007379100700, -0.017967050900,  0.304303942000,
-     0.026040879100, -0.011618952200,  0.005839096700, -0.002091778900,
+    0.026040879100, -0.011618952200,  0.005839096700, -0.002091778900,
     -0.000699143000,  0.002774214900, -0.002765299300, -0.000687773900},
   { -0.004491807700,  0.004485759300, -0.003394540900,  0.003088733700,
     -0.003988893700,  0.007233613500, -0.017688142300,  0.304334966200,
-     0.025753901000, -0.011523237400,  0.005793241800, -0.002076469800,
+    0.025753901000, -0.011523237400,  0.005793241800, -0.002076469800,
     -0.000700635700,  0.002769352400, -0.002775689300, -0.000683225000},
   { -0.004473209500,  0.004457105300, -0.003360743400,  0.003025836900,
     -0.003897094200,  0.007088896400, -0.017409498600,  0.304365892000,
-     0.025458149700, -0.011421394400,  0.005759636500, -0.002069178100,
+    0.025458149700, -0.011421394400,  0.005759636500, -0.002069178100,
     -0.000704737500,  0.002773610300, -0.002775967700, -0.000677353300},
   { -0.004444717000,  0.004428620600, -0.003317850200,  0.002964408100,
     -0.003805137400,  0.006934475400, -0.017122233300,  0.304396703900,
-     0.025171340700, -0.011324954000,  0.005713078000, -0.002053187900,
+    0.025171340700, -0.011324954000,  0.005713078000, -0.002053187900,
     -0.000707171500,  0.002777897100, -0.002784864800, -0.000673385900},
   { -0.004427971200,  0.004410227500, -0.003284178700,  0.002910777700,
     -0.003712463600,  0.006789868500, -0.016843034600,  0.304434316000,
-     0.024877740200, -0.011222628000,  0.005678048700, -0.002036501400,
+    0.024877740200, -0.011222628000,  0.005678048700, -0.002036501400,
     -0.000709968500,  0.002781813700, -0.002785075900, -0.000667608000},
   { -0.004408351500,  0.004381556100, -0.003250508600,  0.002848323700,
     -0.003620768300,  0.006636493100, -0.016563520800,  0.304461685600,
-     0.024583535100, -0.011127576100,  0.005631997300, -0.002020750200,
+    0.024583535100, -0.011127576100,  0.005631997300, -0.002020750200,
     -0.000711766400,  0.002777270600, -0.002795722300, -0.000662778500},
   { -0.004380801100,  0.004354269100, -0.003209814400,  0.002797300300,
     -0.003529018000,  0.006491186300, -0.016272419800,  0.304487711300,
-     0.024298095100, -0.011022085400,  0.005594924600, -0.002002390300,
+    0.024298095100, -0.011022085400,  0.005594924600, -0.002002390300,
     -0.000723818600,  0.002779372400, -0.002795073400, -0.000657344200},
   { -0.004364270700,  0.004336078200, -0.003175763900,  0.002735447600,
     -0.003438518800,  0.006347319100, -0.015991075000,  0.304521224900,
-     0.024006627800, -0.010927513200,  0.005549280000, -0.001994892300,
+    0.024006627800, -0.010927513200,  0.005549280000, -0.001994892300,
     -0.000728568200,  0.002784856700, -0.002804663400, -0.000653083600},
   { -0.004346993300,  0.004309182300, -0.003144467600,  0.002683321200,
     -0.003346361400,  0.006194068900, -0.015710304400,  0.304553789700,
-     0.023714956500, -0.010823907600,  0.005513183700, -0.001977598200,
+    0.023714956500, -0.010823907600,  0.005513183700, -0.001977598200,
     -0.000731700400,  0.002789105500, -0.002805014900, -0.000647228100},
   { -0.004320158000,  0.004282770700, -0.003104379700,  0.002625535200,
     -0.003266869300,  0.006049293000, -0.015425894300,  0.304574941900,
-     0.023422456600, -0.010718772800,  0.005467201200, -0.001961254600,
+    0.023422456600, -0.010718772800,  0.005467201200, -0.001961254600,
     -0.000733852000,  0.002784613800, -0.002815797600, -0.000642092900},
   { -0.004304236600,  0.004265540900, -0.003072014700,  0.002573489500,
     -0.003175720900,  0.005905217400, -0.015142040300,  0.304603952900,
-     0.023132882500, -0.010623938900,  0.005429023200, -0.001942767200,
+    0.023132882500, -0.010623938900,  0.005429023200, -0.001942767200,
     -0.000737686400,  0.002789011800, -0.002816103900, -0.000636395600},
   { -0.004276818000,  0.004239878600, -0.003041041300,  0.002513598800,
     -0.003086221600,  0.005753037200, -0.014859275700,  0.304632697600,
-     0.022842239000, -0.010518612100,  0.005382887800, -0.001926054500,
+    0.022842239000, -0.010518612100,  0.005382887800, -0.001926054500,
     -0.000740960500,  0.002794055000, -0.002825655200, -0.000631862500},
   { -0.004260008200,  0.004213047800, -0.003001761400,  0.002464760300,
     -0.002997005100,  0.005609909000, -0.014574287100,  0.304659243200,
-     0.022552838800, -0.010413292700,  0.005336339900, -0.001909172200,
+    0.022552838800, -0.010413292700,  0.005336339900, -0.001909172200,
     -0.000744164300,  0.002798242800, -0.002826051900, -0.000625856800},
   { -0.004243542100,  0.004187192800, -0.002971287100,  0.002405494900,
     -0.002908733500,  0.005467214000, -0.014288738100,  0.304685251500,
-     0.022254934400, -0.010309931700,  0.005299546400, -0.001891056000,
+    0.022254934400, -0.010309931700,  0.005299546400, -0.001891056000,
     -0.000747532900,  0.002794490100, -0.002837320300, -0.000620567900},
   { -0.004219310800,  0.004172433300, -0.002940735300,  0.002355245100,
     -0.002818772700,  0.005315723700, -0.014013384600,  0.304717226400,
-     0.021968758500, -0.010213985000,  0.005251545400, -0.001873340800,
+    0.021968758500, -0.010213985000,  0.005251545400, -0.001873340800,
     -0.000751378700,  0.002799287100, -0.002837812200, -0.000614775300},
   { -0.004202808100,  0.004145912600, -0.002901375100,  0.002298070200,
     -0.002731549500,  0.005173599700, -0.013726605300,  0.304740017400,
-     0.021680873600, -0.010108070800,  0.005204656900, -0.001863954900,
+    0.021680873600, -0.010108070800,  0.005204656900, -0.001863954900,
     -0.000765887200,  0.002803718400, -0.002847187000, -0.000610304100},
   { -0.004186959300,  0.004120956700, -0.002872462400,  0.002248900100,
     -0.002642744000,  0.005030699900, -0.013438827400,  0.304761759800,
-     0.021384603000, -0.010003738700,  0.005166831300, -0.001845151700,
+    0.021384603000, -0.010003738700,  0.005166831300, -0.001845151700,
     -0.000770115000,  0.002808540700, -0.002847973400, -0.000604129100},
   { -0.004163246800,  0.004106712900, -0.002842615100,  0.002191690700,
     -0.002565148700,  0.004888119300, -0.013159535100,  0.304789228200,
-     0.021099553600, -0.009897966800,  0.005119292900, -0.001827130700,
+    0.021099553600, -0.009897966800,  0.005119292900, -0.001827130700,
     -0.000773711900,  0.002804989100, -0.002859183800, -0.000598855700},
   { -0.004147500100,  0.004081504200, -0.002805006000,  0.002144535400,
     -0.002477149500,  0.004737013500, -0.012872591200,  0.304818061900,
-     0.020805308800, -0.009792977800,  0.005071968700, -0.001809457700,
+    0.020805308800, -0.009792977800,  0.005071968700, -0.001809457700,
     -0.000777559700,  0.002809924700, -0.002860138800, -0.000592610900},
   { -0.004123192100,  0.004058501200, -0.002776914700,  0.002087605700,
     -0.002391051400,  0.004596104100, -0.012592772900,  0.304843748500,
-     0.020512328500, -0.009688643500,  0.005033655500, -0.001789823800,
+    0.020512328500, -0.009688643500,  0.005033655500, -0.001789823800,
     -0.000782738000,  0.002816043200, -0.002870343700, -0.000587752000},
   { -0.004107894100,  0.004034016500, -0.002748740500,  0.002039760600,
     -0.002303557800,  0.004453794800, -0.012301966200,  0.304859324200,
-     0.020227247700, -0.009581223300,  0.004984922000, -0.001771208200,
+    0.020227247700, -0.009581223300,  0.004984922000, -0.001771208200,
     -0.000787003500,  0.002820817600, -0.002871029700, -0.000581575700},
   { -0.004093587400,  0.004018650800, -0.002710135300,  0.001984116400,
     -0.002218448800,  0.004313763100, -0.012021363400,  0.304882818800,
-     0.019935070200, -0.009475750900,  0.004936537800, -0.001751710900,
+    0.019935070200, -0.009475750900,  0.004936537800, -0.001751710900,
     -0.000801110200,  0.002825556300, -0.002880712200, -0.000576816700},
   { -0.004070086100,  0.003996648800, -0.002683625100,  0.001937624600,
     -0.002132234200,  0.004173020900, -0.011739650400,  0.304913195700,
-     0.019645015200, -0.009370571700,  0.004888539700, -0.001733255400,
+    0.019645015200, -0.009370571700,  0.004888539700, -0.001733255400,
     -0.000805210900,  0.002821862700, -0.002883172300, -0.000569990700},
   { -0.004055549600,  0.003973130000, -0.002656075600,  0.001882018300,
     -0.002055659400,  0.004022181900, -0.011457786400,  0.304933847400,
-     0.019354083600, -0.009265048200,  0.004849033400, -0.001712856100,
+    0.019354083600, -0.009265048200,  0.004849033400, -0.001712856100,
     -0.000810671500,  0.002828266400, -0.002893561300, -0.000564955500},
   { -0.004032488300,  0.003959785900, -0.002619434800,  0.001836677600,
     -0.001970197900,  0.003881652600, -0.011174339100,  0.304952581400,
-     0.019063780300, -0.009158923400,  0.004800033700, -0.001693616200,
+    0.019063780300, -0.009158923400,  0.004800033700, -0.001693616200,
     -0.000815677100,  0.002833775600, -0.002894695900, -0.000558583500},
   { -0.004018305800,  0.003936717300, -0.002592340800,  0.001781462400,
     -0.001885730400,  0.003741264500, -0.010881885600,  0.304980747200,
-     0.018774565100, -0.009052649800,  0.004751033800, -0.001674129700,
+    0.018774565100, -0.009052649800,  0.004751033800, -0.001674129700,
     -0.000820954500,  0.002840026900, -0.002905324000, -0.000553421000},
   { -0.004004119100,  0.003913332400, -0.002556816600,  0.001736945200,
     -0.001801009400,  0.003601134500, -0.010596860500,  0.304996474100,
-     0.018485752400, -0.008946113900,  0.004701589700, -0.001654657700,
+    0.018485752400, -0.008946113900,  0.004701589700, -0.001654657700,
     -0.000825608000,  0.002836444100, -0.002907704700, -0.000546470300},
   { -0.003981307700,  0.003892381100, -0.002531656000,  0.001692059700,
     -0.001716342200,  0.003461182700, -0.010312015500,  0.305021093200,
-     0.018188790800, -0.008840558000,  0.004652450700, -0.001634950600,
+    0.018188790800, -0.008840558000,  0.004652450700, -0.001634950600,
     -0.000831250300,  0.002843043800, -0.002918541200, -0.000541059600},
   { -0.003968435100,  0.003879253900, -0.002504378200,  0.001637657900,
     -0.001641796500,  0.003321126400, -0.010034991200,  0.305033298300,
-     0.017901410200, -0.008734196000,  0.004611510300, -0.001612810100,
+    0.017901410200, -0.008734196000,  0.004611510300, -0.001612810100,
     -0.000846731600,  0.002848150100, -0.002919339300, -0.000534931600},
   { -0.003945651400,  0.003857769000, -0.002470181000,  0.001594324200,
     -0.001558137300,  0.003181615900, -0.009748599800,  0.305054496900,
-     0.017615006900, -0.008627194900,  0.004561274000, -0.001592429500,
+    0.017615006900, -0.008627194900,  0.004561274000, -0.001592429500,
     -0.000852704600,  0.002854820400, -0.002930099600, -0.000529601300},
   { -0.003932401200,  0.003836006300, -0.002444849800,  0.001541005000,
     -0.001475450400,  0.003042687600, -0.009461842200,  0.305074913300,
-     0.017319625600, -0.008512038500,  0.004512760300, -0.001572829300,
+    0.017319625600, -0.008512038500,  0.004512760300, -0.001572829300,
     -0.000857749800,  0.002851744600, -0.002933011700, -0.000522254800},
   { -0.003919897700,  0.003823612700, -0.002418783000,  0.001496396500,
     -0.001391517800,  0.002903186600, -0.009174192300,  0.305093771700,
-     0.017034066400, -0.008404468200,  0.004462029400, -0.001552015500,
+    0.017034066400, -0.008404468200,  0.004462029400, -0.001552015500,
     -0.000863995200,  0.002858545300, -0.002943863500, -0.000516831700},
   { -0.003898001300,  0.003803145000, -0.002385302500,  0.001445432500,
     -0.001319345500,  0.002764325800, -0.008895401800,  0.305119193600,
-     0.016741989300, -0.008298811000,  0.004411842900, -0.001531072000,
+    0.016741989300, -0.008298811000,  0.004411842900, -0.001531072000,
     -0.000870352000,  0.002865288500, -0.002945799600, -0.000510187200},
   { -0.003884434400,  0.003781771800, -0.002360832800,  0.001401956000,
     -0.001236297400,  0.002625496200, -0.008606633700,  0.305135746300,
-     0.016448378400, -0.008191697200,  0.004360886000, -0.001509538700,
+    0.016448378400, -0.008191697200,  0.004360886000, -0.001509538700,
     -0.000886061100,  0.002871262500, -0.002956450800, -0.000504731900},
   { -0.003862439200,  0.003761723500, -0.002336945300,  0.001350046400,
     -0.001154788900,  0.002487086200, -0.008316860100,  0.305150388000,
-     0.016155288200, -0.008075516000,  0.004311149200, -0.001488975800,
+    0.016155288200, -0.008075516000,  0.004311149200, -0.001488975800,
     -0.000891753800,  0.002868512700, -0.002959470700, -0.000497291200},
   { -0.003850712800,  0.003749888800, -0.002302777900,  0.001307766700,
     -0.001072739500,  0.002349092100, -0.008036267100,  0.305171969300,
-     0.015873669900, -0.007967928800,  0.004259593600, -0.001467267200,
+    0.015873669900, -0.007967928800,  0.004259593600, -0.001467267200,
     -0.000898797900,  0.002875940200, -0.002970642300, -0.000491739700},
   { -0.003838542900,  0.003729366300, -0.002278849600,  0.001256255000,
     -0.001000782800,  0.002210354400, -0.007754203600,  0.305182829200,
-     0.015582827100, -0.007861128300,  0.004217388300, -0.001444400500,
+    0.015582827100, -0.007861128300,  0.004217388300, -0.001444400500,
     -0.000906121000,  0.002883075100, -0.002972661400, -0.000485004200},
   { -0.003816509300,  0.003709864100, -0.002256106400,  0.001214479000,
     -0.000919168800,  0.002072061100, -0.007462776200,  0.305202709200,
-     0.015292286200, -0.007744430700,  0.004166752200, -0.001423103300,
+    0.015292286200, -0.007744430700,  0.004166752200, -0.001423103300,
     -0.000912804200,  0.002890024200, -0.002974973900, -0.000478005400},
   { -0.003804721500,  0.003689540000, -0.002223798900,  0.001173609200,
     -0.000838292300,  0.001934852000, -0.007180134300,  0.305220409100,
-     0.015003290600, -0.007637074700,  0.004114765900, -0.001400660100,
+    0.015003290600, -0.007637074700,  0.004114765900, -0.001400660100,
     -0.000929037200,  0.002887514500, -0.002986971300, -0.000471906600},
   { -0.003784248300,  0.003679910900, -0.002200335400,  0.001122795500,
     -0.000758115600,  0.001797689700, -0.006896906600,  0.305236860000,
-     0.014714266400, -0.007520350800,  0.004063782200, -0.001378788100,
+    0.014714266400, -0.007520350800,  0.004063782200, -0.001378788100,
     -0.000936224300,  0.002894831400, -0.002989337500, -0.000464860200},
   { -0.003772222700,  0.003660354300, -0.002177942800,  0.001082013300,
     -0.000686657100,  0.001659411900, -0.006612456400,  0.305252141100,
-     0.014416934300, -0.007413160700,  0.004011606300, -0.001356286200,
+    0.014416934300, -0.007413160700,  0.004011606300, -0.001356286200,
     -0.000943766600,  0.002902744400, -0.003001127800, -0.000458704700},
   { -0.003751272400,  0.003641224700, -0.002146282400,  0.001032856600,
     -0.000607494800,  0.001522406400, -0.006318495400,  0.305266353700,
-     0.014129397200, -0.007305163600,  0.003959036100, -0.001333568200,
+    0.014129397200, -0.007305163600,  0.003959036100, -0.001333568200,
     -0.000951286800,  0.002910117000, -0.003003554800, -0.000451769900},
   { -0.003740453600,  0.003631277700, -0.002123501700,  0.000991980200,
     -0.000527217900,  0.001385321000, -0.006032900700,  0.305278786000,
-     0.013842019100, -0.007187486600,  0.003906976500, -0.001311089600,
+    0.013842019100, -0.007187486600,  0.003906976500, -0.001311089600,
     -0.000958623000,  0.002908760100, -0.003016231600, -0.000445068000},
   { -0.003729050600,  0.003612350900, -0.002101520100,  0.000942775500,
     -0.000457538900,  0.001248307000, -0.005747166800,  0.305299153300,
-     0.013547492500, -0.007080269600,  0.003854346300, -0.001287607700,
+    0.013547492500, -0.007080269600,  0.003854346300, -0.001287607700,
     -0.000975892700,  0.002915881100, -0.003018644300, -0.000438154800},
   { -0.003708956400,  0.003594054000, -0.002071214100,  0.000903979800,
     -0.000378641900,  0.001112105700, -0.005469551400,  0.305307792800,
-     0.013261923500, -0.006962423800,  0.003801673700, -0.001264499500,
+    0.013261923500, -0.006962423800,  0.003801673700, -0.001264499500,
     -0.000984066100,  0.002924143600, -0.003030515100, -0.000431795400},
   { -0.003698495600,  0.003575779100, -0.002050276300,  0.000864607400,
     -0.000299850300,  0.000984943000, -0.005181636100,  0.305325129100,
-     0.012968326800, -0.006845375400,  0.003749292200, -0.001241358200,
+    0.012968326800, -0.006845375400,  0.003749292200, -0.001241358200,
     -0.000992319500,  0.002932209100, -0.003033543100, -0.000424402600},
   { -0.003678810800,  0.003567216600, -0.002028355600,  0.000815922500,
     -0.000231056700,  0.000848238100, -0.004893293600,  0.305331925800,
-     0.012683638900, -0.006736106600,  0.003694939000, -0.001207958100,
+    0.012683638900, -0.006736106600,  0.003694939000, -0.001207958100,
     -0.000999989700,  0.002940099300, -0.003045285600, -0.000418160500},
   { -0.003668399300,  0.003548917800, -0.001998535200,  0.000778065700,
     -0.000153154100,  0.000712646300, -0.004604878800,  0.305346710600,
-     0.012391231100, -0.006618462800,  0.003632680800, -0.001185043200,
+    0.012391231100, -0.006618462800,  0.003632680800, -0.001185043200,
     -0.001017024400,  0.002938122000, -0.003048768800, -0.000410416700},
   { -0.003658356000,  0.003531138400, -0.001977775600,  0.000729983100,
     -0.000075620500,  0.000577290600, -0.004325205000,  0.305359759100,
-     0.012099735200, -0.006510233800,  0.003578931400, -0.001160855500,
+    0.012099735200, -0.006510233800,  0.003578931400, -0.001160855500,
     -0.001026023300,  0.002947019900, -0.003061151700, -0.000403882200},
   { -0.003638938800,  0.003514164000, -0.001958085100,  0.000692151600,
     -0.000007068200,  0.000440667500, -0.004034754500,  0.305371538600,
-     0.011808326800, -0.006392102100,  0.003525266500, -0.001136761300,
+    0.011808326800, -0.006392102100,  0.003525266500, -0.001136761300,
     -0.001034693000,  0.002955492900, -0.003064410600, -0.000396332400},
   { -0.003629223000,  0.003505495000, -0.001927947000,  0.000654411200,
-     0.000070163400,  0.000314498600, -0.003743576500,  0.305382025700,
-     0.011526826700, -0.006273264800,  0.003470974700, -0.001112218000,
+    0.000070163400,  0.000314498600, -0.003743576500,  0.305382025700,
+    0.011526826700, -0.006273264800,  0.003470974700, -0.001112218000,
     -0.001043813600,  0.002964194700, -0.003076842200, -0.000389669200},
   { -0.003610639600,  0.003489057800, -0.001908316200,  0.000607413700,
-     0.000146785300,  0.000179544400, -0.003461481100,  0.305390383500,
-     0.011237344100, -0.006164483000,  0.003416433800, -0.001087365200,
+    0.000146785300,  0.000179544400, -0.003461481100,  0.305390383500,
+    0.011237344100, -0.006164483000,  0.003416433800, -0.001087365200,
     -0.001053001800,  0.002963790800, -0.003080805300, -0.000381874300},
   { -0.003601269100,  0.003472094500, -0.001888981300,  0.000570197700,
-     0.000214496100,  0.000043993500, -0.003178921900,  0.305407159000,
-     0.010948594500, -0.006046137200,  0.003362096800, -0.001062345400,
+    0.000214496100,  0.000043993500, -0.003178921900,  0.305407159000,
+    0.010948594500, -0.006046137200,  0.003362096800, -0.001062345400,
     -0.001071720100,  0.002972423700, -0.003093318200, -0.000375146000},
   { -0.003582656500,  0.003455849400, -0.001860858600,  0.000524745900,
-     0.000290078700, -0.000090648300, -0.002886387300,  0.305413750100,
-     0.010650492300, -0.005928189500,  0.003307938500, -0.001037636700,
+    0.000290078700, -0.000090648300, -0.002886387300,  0.305413750100,
+    0.010650492300, -0.005928189500,  0.003307938500, -0.001037636700,
     -0.001081004600,  0.002981370000, -0.003096989400, -0.000367260100},
   { -0.003573744000,  0.003448505600, -0.001841238600,  0.000487681400,
-     0.000357013800, -0.000216601600, -0.002601772700,  0.305427509700,
-     0.010362986600, -0.005809448800,  0.003252789700, -0.001002860000,
+    0.000357013800, -0.000216601600, -0.002601772700,  0.305427509700,
+    0.010362986600, -0.005809448800,  0.003252789700, -0.001002860000,
     -0.001090243800,  0.002990478200, -0.003109808600, -0.000360263700},
   { -0.003564774200,  0.003431922800, -0.001822254600,  0.000451135800,
-     0.000433003700, -0.000351097200, -0.002316996000,  0.305430485400,
-     0.010075840400, -0.005699440100,  0.003187647900, -0.000977716300,
+    0.000433003700, -0.000351097200, -0.002316996000,  0.305430485400,
+    0.010075840400, -0.005699440100,  0.003187647900, -0.000977716300,
     -0.001099777400,  0.002990283900, -0.003113898000, -0.000352248700},
   { -0.003546870600,  0.003416172000, -0.001794658100,  0.000406472900,
-     0.000498512700, -0.000485477300, -0.002031776000,  0.305441562500,
-     0.009789706100, -0.005580569300,  0.003132334500, -0.000951776200,
+    0.000498512700, -0.000485477300, -0.002031776000,  0.305441562500,
+    0.009789706100, -0.005580569300,  0.003132334500, -0.000951776200,
     -0.001119130300,  0.002999325200, -0.003126683700, -0.000345274700},
   { -0.003538373300,  0.003400302700, -0.001776549100,  0.000370535700,
-     0.000573925900, -0.000610465300, -0.001745336100,  0.305451127000,
-     0.009494961400, -0.005461903400,  0.003077019500, -0.000925937200,
+    0.000573925900, -0.000610465300, -0.001745336100,  0.305451127000,
+    0.009494961400, -0.005461903400,  0.003077019500, -0.000925937200,
     -0.001129494000,  0.003009011500, -0.003130746200, -0.000337260000},
   { -0.003520921500,  0.003394346200, -0.001758288700,  0.000334721100,
-     0.000649268300, -0.000744677800, -0.001458744900,  0.305459744400,
-     0.009209557400, -0.005342285700,  0.003021134300, -0.000899901500,
+    0.000649268300, -0.000744677800, -0.001458744900,  0.305459744400,
+    0.009209557400, -0.005342285700,  0.003021134300, -0.000899901500,
     -0.001139831400,  0.003018842400, -0.003144017200, -0.000329970400},
   { -0.003512573100,  0.003378711000, -0.001740435500,  0.000290089600,
-     0.000714234800, -0.000869571200, -0.001170623500,  0.305466205000,
-     0.008916237200, -0.005223260400,  0.002965177700, -0.000873315500,
+    0.000714234800, -0.000869571200, -0.001170623500,  0.305466205000,
+    0.008916237200, -0.005223260400,  0.002965177700, -0.000873315500,
     -0.001150412500,  0.003019394800, -0.003148759600, -0.000321551300},
   { -0.003495167000,  0.003363569600, -0.001713789300,  0.000255669300,
-     0.000788301700, -0.001002806300, -0.000882964600,  0.305471690900,
-     0.008632676200, -0.005103588900,  0.002908698000, -0.000837361100,
+    0.000788301700, -0.001002806300, -0.000882964600,  0.305471690900,
+    0.008632676200, -0.005103588900,  0.002908698000, -0.000837361100,
     -0.001169925400,  0.003028499400, -0.003152349500, -0.000313813200},
   { -0.003486840300,  0.003348178400, -0.001696380900,  0.000211810600,
-     0.000852586500, -0.001136564500, -0.000594272800,  0.305476029500,
-     0.008340196300, -0.004983911700,  0.002842935600, -0.000811096700,
+    0.000852586500, -0.001136564500, -0.000594272800,  0.305476029500,
+    0.008340196300, -0.004983911700,  0.002842935600, -0.000811096700,
     -0.001180375200,  0.003038511100, -0.003165955700, -0.000306075200},
   { -0.003469765900,  0.003343036000, -0.001679160000,  0.000177135000,
-     0.000926754800, -0.001260861000, -0.000304469600,  0.305487970600,
-     0.008048797600, -0.004864404400,  0.002786310700, -0.000784087900,
+    0.000926754800, -0.001260861000, -0.000304469600,  0.305487970600,
+    0.008048797600, -0.004864404400,  0.002786310700, -0.000784087900,
     -0.001191632000,  0.003048908400, -0.003170531700, -0.000297868500},
   { -0.003461774600,  0.003327682700, -0.001652648300,  0.000143244500,
-     0.000990953800, -0.001394377600, -0.000023525100,  0.305488765700,
-     0.007767318900, -0.004744017700,  0.002728774500, -0.000756520300,
+    0.000990953800, -0.001394377600, -0.000023525100,  0.305488765700,
+    0.007767318900, -0.004744017700,  0.002728774500, -0.000756520300,
     -0.001202902100,  0.003050026400, -0.003184579100, -0.000289997500},
   { -0.003454137100,  0.003313035200, -0.001636003800,  0.000099881700,
-     0.001063982400, -0.001517720800,  0.000267125500,  0.305498083700,
-     0.007477414500, -0.004624290900,  0.002671831100, -0.000729004800,
+    0.001063982400, -0.001517720800,  0.000267125500,  0.305498083700,
+    0.007477414500, -0.004624290900,  0.002671831100, -0.000729004800,
     -0.001223831900,  0.003060168000, -0.003188993500, -0.000281862900},
   { -0.003437037600,  0.003298773100, -0.001619778200,  0.000066556300,
-     0.001127390700, -0.001650952000,  0.000558741700,  0.305505931400,
-     0.007187871700, -0.004503987800,  0.002604895500, -0.000692451500,
+    0.001127390700, -0.001650952000,  0.000558741700,  0.305505931400,
+    0.007187871700, -0.004503987800,  0.002604895500, -0.000692451500,
     -0.001234554400,  0.003070451600, -0.003202910800, -0.000273917600},
   { -0.003429250800,  0.003293434500, -0.001593584100,  0.000033135500,
-     0.001200242700, -0.001774239400,  0.000841583200,  0.305502674600,
-     0.006898956800, -0.004383683600,  0.002546976200, -0.000664350300,
+    0.001200242700, -0.001774239400,  0.000841583200,  0.305502674600,
+    0.006898956800, -0.004383683600,  0.002546976200, -0.000664350300,
     -0.001246591800,  0.003081283900, -0.003207541700, -0.000265507200},
   { -0.003412490900,  0.003279564200, -0.001577770500, -0.000009313800,
-     0.001263167800, -0.001906951100,  0.001124928200,  0.305507531700,
-     0.006610834100, -0.004263249000,  0.002489119800, -0.000636159800,
+    0.001263167800, -0.001906951100,  0.001124928200,  0.305507531700,
+    0.006610834100, -0.004263249000,  0.002489119800, -0.000636159800,
     -0.001267872500,  0.003091948000, -0.003221504300, -0.000257636700},
   { -0.003404731400,  0.003265175300, -0.001561789400, -0.000042083300,
-     0.001335330400, -0.002029953100,  0.001418764600,  0.305510887600,
-     0.006323528600, -0.004142487600,  0.002421344900, -0.000607985400,
+    0.001335330400, -0.002029953100,  0.001418764600,  0.305510887600,
+    0.006323528600, -0.004142487600,  0.002421344900, -0.000607985400,
     -0.001279946600,  0.003093528500, -0.003226864100, -0.000248796500},
   { -0.003388377600,  0.003251864100, -0.001537100900, -0.000074381800,
-     0.001397822300, -0.002153295800,  0.001704243000,  0.305521780500,
-     0.006027997600, -0.004022334800,  0.002362991000, -0.000569919800,
+    0.001397822300, -0.002153295800,  0.001704243000,  0.305521780500,
+    0.006027997600, -0.004022334800,  0.002362991000, -0.000569919800,
     -0.001292085400,  0.003104789400, -0.003241453500, -0.000240501100},
   { -0.003380795000,  0.003247258700, -0.001521319900, -0.000116373400,
-     0.001469413800, -0.002285243100,  0.001989240500,  0.305522735200,
-     0.005741703600, -0.003901387700,  0.002304368000, -0.000541061900,
+    0.001469413800, -0.002285243100,  0.001989240500,  0.305522735200,
+    0.005741703600, -0.003901387700,  0.002304368000, -0.000541061900,
     -0.001304684500,  0.003116275100, -0.003246569900, -0.000231910300},
   { -0.003373394500,  0.003233233200, -0.001505753800, -0.000148571000,
-     0.001531547700, -0.002407952000,  0.002275511400,  0.305521935800,
-     0.005456280000, -0.003780111100,  0.002235803700, -0.000512158000,
+    0.001531547700, -0.002407952000,  0.002275511400,  0.305521935800,
+    0.005456280000, -0.003780111100,  0.002235803700, -0.000512158000,
     -0.001326570100,  0.003127233900, -0.003260822600, -0.000223661700},
   { -0.003356689400,  0.003220032300, -0.001491017200, -0.000180271600,
-     0.001602837600, -0.002530584900,  0.002572382100,  0.305528831700,
-     0.005162307100, -0.003658974500,  0.002176562700, -0.000482746700,
+    0.001602837600, -0.002530584900,  0.002572382100,  0.305528831700,
+    0.005162307100, -0.003658974500,  0.002176562700, -0.000482746700,
     -0.001339690600,  0.003129659400, -0.003266806700, -0.000214552200},
   { -0.003349458000,  0.003206380900, -0.001466550800, -0.000211731900,
-     0.001663994200, -0.002662171400,  0.002859642300,  0.305525209100,
-     0.004878336100, -0.003537488300,  0.002116848800, -0.000443644700,
+    0.001663994200, -0.002662171400,  0.002859642300,  0.305525209100,
+    0.004878336100, -0.003537488300,  0.002116848800, -0.000443644700,
     -0.001352471400,  0.003141260600, -0.003272003200, -0.000205837900},
   { -0.003332926300,  0.003202823300, -0.001452058900, -0.000252375300,
-     0.001725095700, -0.002784621900,  0.003148416400,  0.305529242100,
-     0.004585797400, -0.003406922200,  0.002048118400, -0.000414183100,
+    0.001725095700, -0.002784621900,  0.003148416400,  0.305529242100,
+    0.004585797400, -0.003406922200,  0.002048118400, -0.000414183100,
     -0.001365477700,  0.003153111900, -0.003287185700, -0.000196877000},
   { -0.003326162500,  0.003189613400, -0.001437413900, -0.000283721000,
-     0.001795892300, -0.002906671400,  0.003427783000,  0.305532062500,
-     0.004303401100, -0.003285234700,  0.001988112900, -0.000384077600,
+    0.001795892300, -0.002906671400,  0.003427783000,  0.305532062500,
+    0.004303401100, -0.003285234700,  0.001988112900, -0.000384077600,
     -0.001388720100,  0.003165263500, -0.003292642400, -0.000188174200},
   { -0.003309959200,  0.003176999800, -0.001413956600, -0.000314280200,
-     0.001856478200, -0.003038205600,  0.003717851500,  0.305533321300,
-     0.004012019600, -0.003163333400,  0.001927602200, -0.000353662500,
+    0.001856478200, -0.003038205600,  0.003717851500,  0.305533321300,
+    0.004012019600, -0.003163333400,  0.001927602200, -0.000353662500,
     -0.001402398400,  0.003168136400, -0.003308169600, -0.000179151700}
 };
diff --git a/RTCP/Cobalt/GPUProc/src/UHEP/InvertedStationPPFWeights.h b/RTCP/Cobalt/GPUProc/src/UHEP/InvertedStationPPFWeights.h
index 6eb2287e7930d40674538a55b7720f45d930e886..34eb4633fa2491291508a1534fe67befe41432d6 100644
--- a/RTCP/Cobalt/GPUProc/src/UHEP/InvertedStationPPFWeights.h
+++ b/RTCP/Cobalt/GPUProc/src/UHEP/InvertedStationPPFWeights.h
@@ -1,7 +1,7 @@
 #if !defined INVERTED_STATION_PPF_WEIGHTS_H
 #define INVERTED_STATION_PPF_WEIGHTS_H
 
-extern int	   reverseSubbandMapping[512];
+extern int reverseSubbandMapping[512];
 extern const float invertedStationPPFWeights[1024][16] __attribute__ ((aligned(32)));
 
 #endif
diff --git a/RTCP/Cobalt/GPUProc/src/UHEP/Transpose.cl b/RTCP/Cobalt/GPUProc/src/UHEP/Transpose.cl
index 6d3dae722fe3084a9ea569f775a38691ebbdad94..0843f2a95441a2f471c88291ccc269649156da6a 100644
--- a/RTCP/Cobalt/GPUProc/src/UHEP/Transpose.cl
+++ b/RTCP/Cobalt/GPUProc/src/UHEP/Transpose.cl
@@ -2,31 +2,31 @@ typedef __global float2 (*TransposedDataType)[NR_TABS][NR_POLARIZATIONS][NR_SAMP
 typedef __global float4 (*ComplexVoltagesType)[NR_SUBBANDS][NR_SAMPLES_PER_SUBBAND + NR_STATION_FILTER_TAPS - 1][NR_TABS];
 
 
-__kernel void UHEP_Transpose(__global void *restrict transposedDataPtr, 
-			     __global const void *restrict complexVoltagesPtr,
-			     __global int reverseSubbandMapping[512])
+__kernel void UHEP_Transpose(__global void *restrict transposedDataPtr,
+                             __global const void *restrict complexVoltagesPtr,
+                             __global int reverseSubbandMapping[512])
 {
-  TransposedDataType  transposedData  = (TransposedDataType) transposedDataPtr;
+  TransposedDataType transposedData = (TransposedDataType) transposedDataPtr;
   ComplexVoltagesType complexVoltages = (ComplexVoltagesType) complexVoltagesPtr;
 
   __local float4 tmp[16][17];
 
   uint tabBase = 16 * get_global_id(1);
-  uint sbBase  = 16 * get_global_id(2);
+  uint sbBase = 16 * get_global_id(2);
 
   uint tabOffsetR = get_local_id(0) & 15;
-  uint tabR	  = tabBase + tabOffsetR;
+  uint tabR = tabBase + tabOffsetR;
   uint sbOffsetR = get_local_id(0) >> 4;
   int sbSourceR = reverseSubbandMapping[sbBase + sbOffsetR];
-  bool doR	= (NR_TABS % 16 == 0 || tabR < NR_TABS) && sbSourceR >= 0;
+  bool doR = (NR_TABS % 16 == 0 || tabR < NR_TABS) && sbSourceR >= 0;
 
   uint tabOffsetW = get_local_id(0) >> 4;
-  uint tabW	  = tabBase + tabOffsetW;
+  uint tabW = tabBase + tabOffsetW;
   uint sbOffsetW = get_local_id(0) & 15;
   int sbSourceW = reverseSubbandMapping[sbBase + sbOffsetW];
-  bool doW	= NR_TABS % 16 == 0 || tabW < NR_TABS;
+  bool doW = NR_TABS % 16 == 0 || tabW < NR_TABS;
 
-  for (int time = 0; time < NR_SAMPLES_PER_SUBBAND + NR_STATION_FILTER_TAPS - 1; time ++) {
+  for (int time = 0; time < NR_SAMPLES_PER_SUBBAND + NR_STATION_FILTER_TAPS - 1; time++) {
     if (doR)
       tmp[tabOffsetR][sbOffsetR] = (*complexVoltages)[sbSourceR][time][tabR];
 
diff --git a/RTCP/Cobalt/GPUProc/src/UHEP/Transpose.cl.ok b/RTCP/Cobalt/GPUProc/src/UHEP/Transpose.cl.ok
index 9a0813f5c61f5d8d47bc77f0f80fd56a8ff504fd..ee69f40aa438d01e9a8007cb22c4aff8768d93c5 100644
--- a/RTCP/Cobalt/GPUProc/src/UHEP/Transpose.cl.ok
+++ b/RTCP/Cobalt/GPUProc/src/UHEP/Transpose.cl.ok
@@ -2,27 +2,27 @@ typedef __global float2 (*TransposedDataType)[NR_TABS][NR_POLARIZATIONS][NR_TIME
 typedef __global float2 (*ComplexVoltagesType)[NR_SUBBANDS][NR_TIMES_PER_BLOCK + NR_STATION_FILTER_TAPS - 1][NR_TABS][NR_POLARIZATIONS];
 
 
-__kernel void UHEP_Transpose(__global void *restrict transposedDataPtr, 
-			     __global const void *restrict complexVoltagesPtr,
-			     __global int reverseSubbandMapping[512])
+__kernel void UHEP_Transpose(__global void *restrict transposedDataPtr,
+                             __global const void *restrict complexVoltagesPtr,
+                             __global int reverseSubbandMapping[512])
 {
-  TransposedDataType  transposedData  = (TransposedDataType) transposedDataPtr;
+  TransposedDataType transposedData = (TransposedDataType) transposedDataPtr;
   ComplexVoltagesType complexVoltages = (ComplexVoltagesType) complexVoltagesPtr;
 
   __local float2 tmp[16][17][2];
 
   uint base_tab = 16 * get_group_id(1);
-  uint base_sb  = 16 * get_group_id(2);
-  uint pol	= get_global_id(0);
-  uint id_1	= get_local_id(1);
-  uint id_2	= get_local_id(2);
+  uint base_sb = 16 * get_group_id(2);
+  uint pol = get_global_id(0);
+  uint id_1 = get_local_id(1);
+  uint id_2 = get_local_id(2);
   int source_sb_1 = reverseSubbandMapping[base_sb + id_1];
   int source_sb_2 = reverseSubbandMapping[base_sb + id_2];
 
-  for (int time = 0; time < NR_TIMES_PER_BLOCK + NR_STATION_FILTER_TAPS - 1; time ++) {
+  for (int time = 0; time < NR_TIMES_PER_BLOCK + NR_STATION_FILTER_TAPS - 1; time++) {
     if (NR_TABS % 16 == 0 || base_tab + id_1 < NR_TABS)
       if (source_sb_2 >= 0)
-	tmp[id_2][id_1][pol] = (*complexVoltages)[source_sb_2][time][base_tab + id_1][pol];
+        tmp[id_2][id_1][pol] = (*complexVoltages)[source_sb_2][time][base_tab + id_1][pol];
 
     barrier(CLK_LOCAL_MEM_FENCE);
 
diff --git a/RTCP/Cobalt/GPUProc/src/UHEP/Trigger.cl b/RTCP/Cobalt/GPUProc/src/UHEP/Trigger.cl
index 4f261307e8416e0aaccaedecd3172c4069839697..914edd7431be75e63034874b9b796300b281a08a 100644
--- a/RTCP/Cobalt/GPUProc/src/UHEP/Trigger.cl
+++ b/RTCP/Cobalt/GPUProc/src/UHEP/Trigger.cl
@@ -1,6 +1,6 @@
 typedef __global struct {
   float mean, variance, bestValue;
-  uint  bestApproxIndex;
+  uint bestApproxIndex;
 } (*TriggerInfoType)[NR_TABS];
 
 typedef __global float (*InvFIRfilteredDataType)[NR_TABS][NR_POLARIZATIONS][16][16][NR_SAMPLES_PER_SUBBAND / 4][16];
@@ -10,10 +10,10 @@ typedef __global float (*InvFIRfilteredDataType)[NR_TABS][NR_POLARIZATIONS][16][
 float2 computeThreshold(__global const float *invFIRfilteredDataPtr)
 {
   float M = 0, S = 0;
-  uint  count = 0;
+  uint count = 0;
 
   for (uint i = get_local_id(0); i < sizeof(InvFIRfilteredDataType) / sizeof(float); i += get_local_size(0)) {
-    ++ count;
+    ++count;
     float sample = invFIRfilteredDataPtr[i];
     float t = sample - M;
     M += t / count;
@@ -26,7 +26,7 @@ float2 computeThreshold(__global const float *invFIRfilteredDataPtr)
 
   local_MS[get_local_id(0)] = (float2) (M, S);
 
-  for (uint i = get_local_size(0); (i >>= 1) != 0;) {
+  for (uint i = get_local_size(0); (i >>= 1) != 0; ) {
     barrier(CLK_LOCAL_MEM_FENCE);
 
     if (get_local_id(0) < i)
@@ -43,15 +43,15 @@ float2 computeThreshold(__global const float *invFIRfilteredDataPtr)
 
 
 __kernel void trigger(__global const void *triggerInfoPtr,
-		      __global const float *invFIRfilteredDataPtr)
+                      __global const float *invFIRfilteredDataPtr)
 {
-  TriggerInfoType	 triggerInfo = (TriggerInfoType) triggerInfoPtr;
+  TriggerInfoType triggerInfo = (TriggerInfoType) triggerInfoPtr;
   InvFIRfilteredDataType invFIRfilteredData = (InvFIRfilteredDataType) invFIRfilteredDataPtr;
 
   uint minor = get_local_id(0);
   uint major = get_local_id(1);
-  uint me    = 16 * major + minor;
-  uint tab   = get_global_id(2);
+  uint me = 16 * major + minor;
+  uint tab = get_global_id(2);
 
   float mean = 0, sumsqdiff = 0;
   float count = 0;
@@ -61,7 +61,7 @@ __kernel void trigger(__global const void *triggerInfoPtr,
     float16 f16[16][16];
     struct {
       float means[256], sumsqdiffs[256], values[256];
-      uint  approxIndices[256];
+      uint approxIndices[256];
     } best;
   } tmp;
 
@@ -71,11 +71,11 @@ __kernel void trigger(__global const void *triggerInfoPtr,
   float bestValue = 0;
   uint bestApproxIndex = 0;
 
-  for (uint time = 0; time < 1024 * NR_SAMPLES_PER_SUBBAND / 4096; time ++) {
-    for (uint i = 0; i < 16; i ++) {
+  for (uint time = 0; time < 1024 * NR_SAMPLES_PER_SUBBAND / 4096; time++) {
+    for (uint i = 0; i < 16; i++) {
       float sampleX = (*invFIRfilteredData)[tab][0][i][major][time][minor];
       float sampleY = (*invFIRfilteredData)[tab][1][i][major][time][minor];
-      float power   = sampleX * sampleX + sampleY * sampleY;
+      float power = sampleX * sampleX + sampleY * sampleY;
       tmp.f[i][major][minor] = power;
 
       count += 1.0f;
@@ -126,7 +126,7 @@ __kernel void trigger(__global const void *triggerInfoPtr,
   tmp.best.values[me] = bestValue;
   tmp.best.approxIndices[me] = bestApproxIndex;
 
-  for (uint i = 256; (i >>= 1) != 0;) {
+  for (uint i = 256; (i >>= 1) != 0; ) {
     if (me < i) {
       float meanA = tmp.best.means[me], meanB = tmp.best.means[me + i];
       float sumsqdiffA = tmp.best.sumsqdiffs[me], sumsqdiffB = tmp.best.sumsqdiffs[me + i];
@@ -136,8 +136,8 @@ __kernel void trigger(__global const void *triggerInfoPtr,
       count *= 2;
 
       if (tmp.best.values[me] < tmp.best.values[me + i]) {
-	tmp.best.values[me] = tmp.best.values[me + i];
-	tmp.best.approxIndices[me] = tmp.best.approxIndices[me + i];
+        tmp.best.values[me] = tmp.best.values[me + i];
+        tmp.best.approxIndices[me] = tmp.best.approxIndices[me + i];
       }
     }
 
diff --git a/RTCP/Cobalt/GPUProc/src/UHEP/Trigger.cl.8 b/RTCP/Cobalt/GPUProc/src/UHEP/Trigger.cl.8
index c8215451c60c437dd359baa29d00cea9ebb0ad21..c0503a6eda5481cf12f4db098f1ac124f7d180a8 100644
--- a/RTCP/Cobalt/GPUProc/src/UHEP/Trigger.cl.8
+++ b/RTCP/Cobalt/GPUProc/src/UHEP/Trigger.cl.8
@@ -1,6 +1,6 @@
 typedef __global struct {
   float bestValue;
-  uint  bestApproxIndex;
+  uint bestApproxIndex;
 } (*TriggerInfoType)[NR_TABS];
 
 typedef __global float (*InvFIRfilteredDataType)[NR_TABS][NR_POLARIZATIONS][8][32][NR_TIMES_PER_BLOCK / 2][8];
@@ -9,10 +9,10 @@ typedef __global float (*InvFIRfilteredDataType)[NR_TABS][NR_POLARIZATIONS][8][3
 float2 computeThreshold(__global const float *invFIRfilteredDataPtr)
 {
   float M = 0, S = 0;
-  uint  count = 0;
+  uint count = 0;
 
   for (uint i = get_local_id(0); i < sizeof(InvFIRfilteredDataType) / sizeof(float); i += get_local_size(0)) {
-    ++ count;
+    ++count;
     float sample = invFIRfilteredDataPtr[i];
     float t = sample - M;
     M += t / count;
@@ -25,7 +25,7 @@ float2 computeThreshold(__global const float *invFIRfilteredDataPtr)
 
   local_MS[get_local_id(0)] = (float2) (M, S);
 
-  for (uint i = get_local_size(0); (i >>= 1) != 0;) {
+  for (uint i = get_local_size(0); (i >>= 1) != 0; ) {
     barrier(CLK_LOCAL_MEM_FENCE);
 
     if (get_local_id(0) < i)
@@ -41,22 +41,22 @@ float2 computeThreshold(__global const float *invFIRfilteredDataPtr)
 
 
 __kernel void trigger(__global const void *triggerInfoPtr,
-		      __global const float *invFIRfilteredDataPtr)
+                      __global const float *invFIRfilteredDataPtr)
 {
-  TriggerInfoType	 triggerInfo = (TriggerInfoType) triggerInfoPtr;
+  TriggerInfoType triggerInfo = (TriggerInfoType) triggerInfoPtr;
   InvFIRfilteredDataType invFIRfilteredData = (InvFIRfilteredDataType) invFIRfilteredDataPtr;
 
   uint minor = get_local_id(0);
   uint major = get_local_id(1);
-  uint me    = 8 * major + minor;
-  uint tab   = get_global_id(2);
+  uint me = 8 * major + minor;
+  uint tab = get_global_id(2);
 
   __local union {
     float f[8][32][8];
     float8 f8[32][8];
     struct {
       float values[256];
-      uint  approxIndices[256];
+      uint approxIndices[256];
     } best;
   } tmp;
 
@@ -67,11 +67,11 @@ __kernel void trigger(__global const void *triggerInfoPtr,
   float bestValue = 0;
   uint bestApproxIndex = 0;
 
-  for (uint time = 0; time < 1024 * NR_TIMES_PER_BLOCK / 2048; time ++) {
-    for (uint i = 0; i < 8; i ++) {
+  for (uint time = 0; time < 1024 * NR_TIMES_PER_BLOCK / 2048; time++) {
+    for (uint i = 0; i < 8; i++) {
       float sampleX = (*invFIRfilteredData)[tab][0][i][major][time][minor];
       float sampleY = (*invFIRfilteredData)[tab][1][i][major][time][minor];
-      float power   = sampleX * sampleX + sampleY * sampleY;
+      float power = sampleX * sampleX + sampleY * sampleY;
       tmp.f[i][major][minor] = power;
     }
 
@@ -107,11 +107,11 @@ __kernel void trigger(__global const void *triggerInfoPtr,
   tmp.best.values[me] = bestValue;
   tmp.best.approxIndices[me] = bestApproxIndex;
 
-  for (uint i = 256; (i >>= 1) != 0;) {
+  for (uint i = 256; (i >>= 1) != 0; ) {
     if (me < i) {
       if (tmp.best.values[me] < tmp.best.values[me + i]) {
-	tmp.best.values[me] = tmp.best.values[me + i];
-	tmp.best.approxIndices[me] = tmp.best.approxIndices[me + i];
+        tmp.best.values[me] = tmp.best.values[me + i];
+        tmp.best.approxIndices[me] = tmp.best.approxIndices[me + i];
       }
     }
 
diff --git a/RTCP/Cobalt/GPUProc/src/UHEP/Trigger.cl.ok b/RTCP/Cobalt/GPUProc/src/UHEP/Trigger.cl.ok
index dc6d7a3aff7c6a437edb0fb743e1d53f5f95bdce..9d15d28152f6d9cb448b5cc7005c1d7defa91e03 100644
--- a/RTCP/Cobalt/GPUProc/src/UHEP/Trigger.cl.ok
+++ b/RTCP/Cobalt/GPUProc/src/UHEP/Trigger.cl.ok
@@ -1,6 +1,6 @@
 typedef __global struct {
   float bestValue;
-  uint  bestApproxIndex;
+  uint bestApproxIndex;
 } (*TriggerInfoType)[NR_TABS];
 
 typedef __global float (*InvFIRfilteredDataType)[NR_TABS][NR_POLARIZATIONS][16][16][NR_TIMES_PER_BLOCK / 4][16];
@@ -9,10 +9,10 @@ typedef __global float (*InvFIRfilteredDataType)[NR_TABS][NR_POLARIZATIONS][16][
 float2 computeThreshold(__global const float *invFIRfilteredDataPtr)
 {
   float M = 0, S = 0;
-  uint  count = 0;
+  uint count = 0;
 
   for (uint i = get_local_id(0); i < sizeof(InvFIRfilteredDataType) / sizeof(float); i += get_local_size(0)) {
-    ++ count;
+    ++count;
     float sample = invFIRfilteredDataPtr[i];
     float t = sample - M;
     M += t / count;
@@ -25,7 +25,7 @@ float2 computeThreshold(__global const float *invFIRfilteredDataPtr)
 
   local_MS[get_local_id(0)] = (float2) (M, S);
 
-  for (uint i = get_local_size(0); (i >>= 1) != 0;) {
+  for (uint i = get_local_size(0); (i >>= 1) != 0; ) {
     barrier(CLK_LOCAL_MEM_FENCE);
 
     if (get_local_id(0) < i)
@@ -41,22 +41,22 @@ float2 computeThreshold(__global const float *invFIRfilteredDataPtr)
 
 
 __kernel void trigger(__global const void *triggerInfoPtr,
-		      __global const float *invFIRfilteredDataPtr)
+                      __global const float *invFIRfilteredDataPtr)
 {
-  TriggerInfoType	 triggerInfo = (TriggerInfoType) triggerInfoPtr;
+  TriggerInfoType triggerInfo = (TriggerInfoType) triggerInfoPtr;
   InvFIRfilteredDataType invFIRfilteredData = (InvFIRfilteredDataType) invFIRfilteredDataPtr;
 
   uint minor = get_local_id(0);
   uint major = get_local_id(1);
-  uint me    = 16 * major + minor;
-  uint tab   = get_global_id(2);
+  uint me = 16 * major + minor;
+  uint tab = get_global_id(2);
 
   __local union {
     float f[16][16][16];
     float16 f16[16][16];
     struct {
       float values[256];
-      uint  approxIndices[256];
+      uint approxIndices[256];
     } best;
   } tmp;
 
@@ -66,11 +66,11 @@ __kernel void trigger(__global const void *triggerInfoPtr,
   float bestValue = 0;
   uint bestApproxIndex = 0;
 
-  for (uint time = 0; time < 1024 * NR_TIMES_PER_BLOCK / 4096; time ++) {
-    for (uint i = 0; i < 16; i ++) {
+  for (uint time = 0; time < 1024 * NR_TIMES_PER_BLOCK / 4096; time++) {
+    for (uint i = 0; i < 16; i++) {
       float sampleX = (*invFIRfilteredData)[tab][0][i][major][time][minor];
       float sampleY = (*invFIRfilteredData)[tab][1][i][major][time][minor];
-      float power   = sampleX * sampleX + sampleY * sampleY;
+      float power = sampleX * sampleX + sampleY * sampleY;
       tmp.f[i][major][minor] = power;
     }
 
@@ -115,11 +115,11 @@ __kernel void trigger(__global const void *triggerInfoPtr,
   tmp.best.values[me] = bestValue;
   tmp.best.approxIndices[me] = bestApproxIndex;
 
-  for (uint i = 256; (i >>= 1) != 0;) {
+  for (uint i = 256; (i >>= 1) != 0; ) {
     if (me < i) {
       if (tmp.best.values[me] < tmp.best.values[me + i]) {
-	tmp.best.values[me] = tmp.best.values[me + i];
-	tmp.best.approxIndices[me] = tmp.best.approxIndices[me + i];
+        tmp.best.values[me] = tmp.best.values[me + i];
+        tmp.best.approxIndices[me] = tmp.best.approxIndices[me + i];
       }
     }
 
diff --git a/RTCP/Cobalt/GPUProc/src/UnitTest.cc b/RTCP/Cobalt/GPUProc/src/UnitTest.cc
index 6d1f2a5139b690170a68e87b4613c6c2acc1171f..bce30d683777bdb86ff613b51b30de928973a90c 100644
--- a/RTCP/Cobalt/GPUProc/src/UnitTest.cc
+++ b/RTCP/Cobalt/GPUProc/src/UnitTest.cc
@@ -10,32 +10,34 @@
 
 namespace LOFAR
 {
-    namespace RTCP 
-    {
+  namespace RTCP
+  {
 
-        UnitTest::UnitTest(const Parset &ps, const char *programName)
-            :
-        counter(programName != 0 ? programName : "test", profiling)
-        {
-            createContext(context, devices);
-            queue = cl::CommandQueue(context, devices[0], CL_QUEUE_PROFILING_ENABLE);
+    UnitTest::UnitTest(const Parset &ps, const char *programName)
+      :
+      counter(programName != 0 ? programName : "test", profiling)
+    {
+      createContext(context, devices);
+      queue = cl::CommandQueue(context, devices[0], CL_QUEUE_PROFILING_ENABLE);
 
-            if (programName != 0)
-                program = createProgram(ps, context, devices, programName);
-        }
+      if (programName != 0)
+        program = createProgram(ps, context, devices, programName);
+    }
 
 
-        bool UnitTest::fpEquals(double val, double ref, double epsilon) const {
-            double err = std::abs(val - ref);
-            if (ref >= 1.0e-1) {
-                err /= ref; // prefer relative error cmp iff away from 0.0
-            }
-            return err < epsilon;
-        }
+    bool UnitTest::fpEquals(double val, double ref, double epsilon) const
+    {
+      double err = std::abs(val - ref);
+      if (ref >= 1.0e-1) {
+        err /= ref;         // prefer relative error cmp iff away from 0.0
+      }
+      return err < epsilon;
+    }
 
-        bool UnitTest::cfpEquals(std::complex<double> val, std::complex<double> ref, double epsilon) const {
-            return fpEquals(val.real(), ref.real(), epsilon) &&
-                   fpEquals(val.imag(), ref.imag(), epsilon);
-        }
+    bool UnitTest::cfpEquals(std::complex<double> val, std::complex<double> ref, double epsilon) const
+    {
+      return fpEquals(val.real(), ref.real(), epsilon) &&
+             fpEquals(val.imag(), ref.imag(), epsilon);
     }
+  }
 }
diff --git a/RTCP/Cobalt/GPUProc/src/UnitTest.h b/RTCP/Cobalt/GPUProc/src/UnitTest.h
index 17df4f4b0038230631d44c8ddaefd958d6d25aa1..b18ba0f3c773aabb95f428cb0927a50d92879432 100644
--- a/RTCP/Cobalt/GPUProc/src/UnitTest.h
+++ b/RTCP/Cobalt/GPUProc/src/UnitTest.h
@@ -8,50 +8,51 @@
 
 namespace LOFAR
 {
-    namespace RTCP 
+  namespace RTCP
+  {
+    class UnitTest
     {
-        class UnitTest
-        {
-        protected:
-            UnitTest(const Parset &ps, const char *programName = 0);
-
-            template <typename T> void check(T actual, T expected)
-            {
-                if (expected != actual) {
-                    std::cerr << "Test FAILED: expected " << expected << ", computed " << actual << std::endl;
-                    exit(1);
-                } else {
-                    std::cout << "Test OK" << std::endl;
-                }
-            }
-
-            cl::Context context;
-            std::vector<cl::Device> devices;
-            cl::Program program;
-            cl::CommandQueue queue;
-
-            PerformanceCounter counter;
-
-
-            /**
-             * Fuzzy compare of floating point value val with ref.
-             * Use absolute error around 0.0 (ref within epsilon), otherwise use relative error.
-             *
-             * \param[in] val          value to test
-             * \param[in] ref          reference value to test against
-             * \param[in] epsilon      max absolute difference. Must be positive.
-             *
-             * A good epsilon depends on the computation, but pick something reasonable for our single precision tests and allow override.
-             *
-             * Return true if val is close enough to ref, false otherwise (including if val or ref is NaN).
-             */
-            bool fpEquals(double val, double ref, double epsilon = 1.0e-5) const;
-
-            /**
-             * See fpEquals(), but for complex values.
-             */
-            bool cfpEquals(std::complex<double> val, std::complex<double> ref, double epsilon = 1.0e-5) const;
-        };
-    }
+    protected:
+      UnitTest(const Parset &ps, const char *programName = 0);
+
+      template <typename T>
+      void check(T actual, T expected)
+      {
+        if (expected != actual) {
+          std::cerr << "Test FAILED: expected " << expected << ", computed " << actual << std::endl;
+          exit(1);
+        } else {
+          std::cout << "Test OK" << std::endl;
+        }
+      }
+
+      cl::Context context;
+      std::vector<cl::Device> devices;
+      cl::Program program;
+      cl::CommandQueue queue;
+
+      PerformanceCounter counter;
+
+
+      /**
+       * Fuzzy compare of floating point value val with ref.
+       * Use absolute error around 0.0 (ref within epsilon), otherwise use relative error.
+       *
+       * \param[in] val          value to test
+       * \param[in] ref          reference value to test against
+       * \param[in] epsilon      max absolute difference. Must be positive.
+       *
+       * A good epsilon depends on the computation, but pick something reasonable for our single precision tests and allow override.
+       *
+       * Return true if val is close enough to ref, false otherwise (including if val or ref is NaN).
+       */
+      bool fpEquals(double val, double ref, double epsilon = 1.0e-5) const;
+
+      /**
+       * See fpEquals(), but for complex values.
+       */
+      bool cfpEquals(std::complex<double> val, std::complex<double> ref, double epsilon = 1.0e-5) const;
+    };
+  }
 }
 #endif
diff --git a/RTCP/Cobalt/GPUProc/src/UnitTests/AMD_FFT_Test.h b/RTCP/Cobalt/GPUProc/src/UnitTests/AMD_FFT_Test.h
index 56c08c0a1218cc83276baf8e91cd9d61ca7e0136..338f1ce9798cc78d2f5caf8ab03a30f59aba44fc 100644
--- a/RTCP/Cobalt/GPUProc/src/UnitTests/AMD_FFT_Test.h
+++ b/RTCP/Cobalt/GPUProc/src/UnitTests/AMD_FFT_Test.h
@@ -12,56 +12,56 @@
 
 namespace LOFAR
 {
-    namespace RTCP 
-    {   
-        struct AMD_FFT_Test : public UnitTest
-        {
+  namespace RTCP
+  {
+    struct AMD_FFT_Test : public UnitTest
+    {
 #if 0
-            AMD_FFT_Test(const Parset &ps)
-                : UnitTest(ps, "fft2.cl")
-            {
-                MultiArraySharedBuffer<std::complex<float>, 1> in(boost::extents[8], queue, CL_MEM_WRITE_ONLY, CL_MEM_READ_ONLY);
-                MultiArraySharedBuffer<std::complex<float>, 1> out(boost::extents[8], queue, CL_MEM_READ_ONLY, CL_MEM_WRITE_ONLY);
+      AMD_FFT_Test(const Parset &ps)
+        : UnitTest(ps, "fft2.cl")
+      {
+        MultiArraySharedBuffer<std::complex<float>, 1> in(boost::extents[8], queue, CL_MEM_WRITE_ONLY, CL_MEM_READ_ONLY);
+        MultiArraySharedBuffer<std::complex<float>, 1> out(boost::extents[8], queue, CL_MEM_READ_ONLY, CL_MEM_WRITE_ONLY);
 
-                std::cout << "AMD FFT Test" << std::endl;
+        std::cout << "AMD FFT Test" << std::endl;
 
-                for (unsigned i = 0; i < 8; i ++)
-                    in[i] = std::complex<float>(2 * i + 1, 2 * i + 2);
+        for (unsigned i = 0; i < 8; i++)
+          in[i] = std::complex<float>(2 * i + 1, 2 * i + 2);
 
-                clAmdFftSetupData setupData;
-                cl::detail::errHandler(clAmdFftInitSetupData(&setupData), "clAmdFftInitSetupData");
-                setupData.debugFlags = CLFFT_DUMP_PROGRAMS;
-                cl::detail::errHandler(clAmdFftSetup(&setupData), "clAmdFftSetup");
+        clAmdFftSetupData setupData;
+        cl::detail::errHandler(clAmdFftInitSetupData(&setupData), "clAmdFftInitSetupData");
+        setupData.debugFlags = CLFFT_DUMP_PROGRAMS;
+        cl::detail::errHandler(clAmdFftSetup(&setupData), "clAmdFftSetup");
 
-                clAmdFftPlanHandle plan;
-                size_t dim[1] = { 8 };
+        clAmdFftPlanHandle plan;
+        size_t dim[1] = { 8 };
 
-                cl::detail::errHandler(clAmdFftCreateDefaultPlan(&plan, context(), CLFFT_1D, dim), "clAmdFftCreateDefaultPlan");
-                cl::detail::errHandler(clAmdFftSetResultLocation(plan, CLFFT_OUTOFPLACE), "clAmdFftSetResultLocation");
-                cl::detail::errHandler(clAmdFftSetPlanBatchSize(plan, 1), "clAmdFftSetPlanBatchSize");
-                cl::detail::errHandler(clAmdFftBakePlan(plan, 1, &queue(), 0, 0), "clAmdFftBakePlan");
+        cl::detail::errHandler(clAmdFftCreateDefaultPlan(&plan, context(), CLFFT_1D, dim), "clAmdFftCreateDefaultPlan");
+        cl::detail::errHandler(clAmdFftSetResultLocation(plan, CLFFT_OUTOFPLACE), "clAmdFftSetResultLocation");
+        cl::detail::errHandler(clAmdFftSetPlanBatchSize(plan, 1), "clAmdFftSetPlanBatchSize");
+        cl::detail::errHandler(clAmdFftBakePlan(plan, 1, &queue(), 0, 0), "clAmdFftBakePlan");
 
-                in.hostToDevice(CL_FALSE);
-                cl_mem ins[1] = { ((cl::Buffer) in)() };
-                cl_mem outs[1] = { ((cl::Buffer) out)() };
+        in.hostToDevice(CL_FALSE);
+        cl_mem ins[1] = { ((cl::Buffer) in)() };
+        cl_mem outs[1] = { ((cl::Buffer) out)() };
 #if 1
-                cl::detail::errHandler(clAmdFftEnqueueTransform(plan, CLFFT_FORWARD, 1, &queue(), 0, 0, 0, ins, outs, 0), "clAmdFftEnqueueTransform");
+        cl::detail::errHandler(clAmdFftEnqueueTransform(plan, CLFFT_FORWARD, 1, &queue(), 0, 0, 0, ins, outs, 0), "clAmdFftEnqueueTransform");
 #else
-                cl::Kernel kernel(program, "fft_fwd");
-                kernel.setArg(0, (cl::Buffer) in);
-                kernel.setArg(1, (cl::Buffer) out);
-                queue.enqueueNDRangeKernel(kernel, cl::NullRange, cl::NDRange(64, 1, 1), cl::NDRange(64, 1, 1));
+        cl::Kernel kernel(program, "fft_fwd");
+        kernel.setArg(0, (cl::Buffer) in);
+        kernel.setArg(1, (cl::Buffer) out);
+        queue.enqueueNDRangeKernel(kernel, cl::NullRange, cl::NDRange(64, 1, 1), cl::NDRange(64, 1, 1));
 #endif
-                out.deviceToHost(CL_TRUE);
+        out.deviceToHost(CL_TRUE);
 
-                for (unsigned i = 0; i < 8; i ++)
-                    std::cout << out[i] << std::endl;
+        for (unsigned i = 0; i < 8; i++)
+          std::cout << out[i] << std::endl;
 
-                cl::detail::errHandler(clAmdFftDestroyPlan(&plan), "clAmdFftDestroyPlan");
-                cl::detail::errHandler(clAmdFftTeardown(), "clAmdFftTeardown");
-            }
+        cl::detail::errHandler(clAmdFftDestroyPlan(&plan), "clAmdFftDestroyPlan");
+        cl::detail::errHandler(clAmdFftTeardown(), "clAmdFftTeardown");
+      }
 #endif
-        };
-    }
+    };
+  }
 }
 #endif
diff --git a/RTCP/Cobalt/GPUProc/src/UnitTests/BeamFormerTest.h b/RTCP/Cobalt/GPUProc/src/UnitTests/BeamFormerTest.h
index 397fa7f5c66ded2afdd86123fa0eb51735e8fc32..5eedcefdd95902a3ff78ed0c3536991689768d89 100644
--- a/RTCP/Cobalt/GPUProc/src/UnitTests/BeamFormerTest.h
+++ b/RTCP/Cobalt/GPUProc/src/UnitTests/BeamFormerTest.h
@@ -10,41 +10,41 @@
 
 namespace LOFAR
 {
-    namespace RTCP 
-    {  
-        struct BeamFormerTest : public UnitTest
-        {
-            BeamFormerTest(const Parset &ps)
-                :
-            UnitTest(ps, "BeamFormer/BeamFormer.cl")
-            {
-                if (ps.nrStations() >= 5 && ps.nrSamplesPerChannel() >= 13 && ps.nrChannelsPerSubband() >= 7 && ps.nrTABs(0) >= 6) {
-                    MultiArraySharedBuffer<std::complex<float>, 4> inputData(boost::extents[ps.nrStations()][ps.nrChannelsPerSubband()][ps.nrSamplesPerChannel()][NR_POLARIZATIONS], queue, CL_MEM_WRITE_ONLY, CL_MEM_READ_ONLY);
-                    MultiArraySharedBuffer<std::complex<float>, 3> beamFormerWeights(boost::extents[ps.nrStations()][ps.nrChannelsPerSubband()][ps.nrTABs(0)], queue, CL_MEM_WRITE_ONLY, CL_MEM_READ_ONLY);
-                    MultiArraySharedBuffer<std::complex<float>, 4> complexVoltages(boost::extents[ps.nrChannelsPerSubband()][ps.nrSamplesPerChannel()][ps.nrTABs(0)][NR_POLARIZATIONS], queue, CL_MEM_READ_ONLY, CL_MEM_READ_WRITE);
-                    BeamFormerKernel beamFormer(ps, program, complexVoltages, inputData, beamFormerWeights);
+  namespace RTCP
+  {
+    struct BeamFormerTest : public UnitTest
+    {
+      BeamFormerTest(const Parset &ps)
+        :
+        UnitTest(ps, "BeamFormer/BeamFormer.cl")
+      {
+        if (ps.nrStations() >= 5 && ps.nrSamplesPerChannel() >= 13 && ps.nrChannelsPerSubband() >= 7 && ps.nrTABs(0) >= 6) {
+          MultiArraySharedBuffer<std::complex<float>, 4> inputData(boost::extents[ps.nrStations()][ps.nrChannelsPerSubband()][ps.nrSamplesPerChannel()][NR_POLARIZATIONS], queue, CL_MEM_WRITE_ONLY, CL_MEM_READ_ONLY);
+          MultiArraySharedBuffer<std::complex<float>, 3> beamFormerWeights(boost::extents[ps.nrStations()][ps.nrChannelsPerSubband()][ps.nrTABs(0)], queue, CL_MEM_WRITE_ONLY, CL_MEM_READ_ONLY);
+          MultiArraySharedBuffer<std::complex<float>, 4> complexVoltages(boost::extents[ps.nrChannelsPerSubband()][ps.nrSamplesPerChannel()][ps.nrTABs(0)][NR_POLARIZATIONS], queue, CL_MEM_READ_ONLY, CL_MEM_READ_WRITE);
+          BeamFormerKernel beamFormer(ps, program, complexVoltages, inputData, beamFormerWeights);
 
-                    inputData[4][6][12][1] = std::complex<float>(2.2, 3);
-                    beamFormerWeights[4][6][5] = std::complex<float>(4, 5);
+          inputData[4][6][12][1] = std::complex<float>(2.2, 3);
+          beamFormerWeights[4][6][5] = std::complex<float>(4, 5);
 
-                    inputData.hostToDevice(CL_FALSE);
-                    beamFormerWeights.hostToDevice(CL_FALSE);
-                    beamFormer.enqueue(queue, counter);
-                    complexVoltages.deviceToHost(CL_TRUE);
+          inputData.hostToDevice(CL_FALSE);
+          beamFormerWeights.hostToDevice(CL_FALSE);
+          beamFormer.enqueue(queue, counter);
+          complexVoltages.deviceToHost(CL_TRUE);
 
-                    check(complexVoltages[6][12][5][1], std::complex<float>(-6.2, 23));
+          check(complexVoltages[6][12][5][1], std::complex<float>(-6.2, 23));
 
 #if 0
-                    for (unsigned tab = 0; tab < ps.nrTABs(0); tab ++)
-                        for (unsigned pol = 0; pol < NR_POLARIZATIONS; pol ++)
-                            for (unsigned ch = 0; ch < ps.nrChannelsPerSubband(); ch ++)
-                                for (unsigned t = 0; t < ps.nrSamplesPerChannel(); t ++)
-                                    if (complexVoltages[tab][pol][ch][t] != std::complex<float>(0, 0))
-                                        std::cout << "complexVoltages[" << tab << "][" << pol << "][" << ch << "][" << t << "] = " << complexVoltages[tab][pol][ch][t] << std::endl;
+          for (unsigned tab = 0; tab < ps.nrTABs(0); tab++)
+            for (unsigned pol = 0; pol < NR_POLARIZATIONS; pol++)
+              for (unsigned ch = 0; ch < ps.nrChannelsPerSubband(); ch++)
+                for (unsigned t = 0; t < ps.nrSamplesPerChannel(); t++)
+                  if (complexVoltages[tab][pol][ch][t] != std::complex<float>(0, 0))
+                    std::cout << "complexVoltages[" << tab << "][" << pol << "][" << ch << "][" << t << "] = " << complexVoltages[tab][pol][ch][t] << std::endl;
 #endif
-                }
-            }
-        };
-    }
+        }
+      }
+    };
+  }
 }
 #endif
\ No newline at end of file
diff --git a/RTCP/Cobalt/GPUProc/src/UnitTests/BeamFormerTransposeTest.h b/RTCP/Cobalt/GPUProc/src/UnitTests/BeamFormerTransposeTest.h
index b65d63daaba1cb95ff8019a31258b190cf683822..4e73c58af6408ab6774094a47b70ce0fdf6d9519 100644
--- a/RTCP/Cobalt/GPUProc/src/UnitTests/BeamFormerTransposeTest.h
+++ b/RTCP/Cobalt/GPUProc/src/UnitTests/BeamFormerTransposeTest.h
@@ -10,29 +10,29 @@
 
 namespace LOFAR
 {
-    namespace RTCP 
-    {  
-        struct BeamFormerTransposeTest : public UnitTest
-        {
-            BeamFormerTransposeTest(const Parset &ps)
-                :
-            UnitTest(ps, "BeamFormer/Transpose.cl")
-            {
-                if (ps.nrChannelsPerSubband() >= 19 && ps.nrSamplesPerChannel() >= 175 && ps.nrTABs(0) >= 5) {
-                    MultiArraySharedBuffer<std::complex<float>, 4> transposedData(boost::extents[ps.nrTABs(0)][NR_POLARIZATIONS][ps.nrSamplesPerChannel()][ps.nrChannelsPerSubband()], queue, CL_MEM_READ_ONLY, CL_MEM_WRITE_ONLY);
-                    MultiArraySharedBuffer<std::complex<float>, 4> complexVoltages(boost::extents[ps.nrChannelsPerSubband()][ps.nrSamplesPerChannel()][ps.nrTABs(0)][NR_POLARIZATIONS], queue, CL_MEM_READ_WRITE, CL_MEM_READ_ONLY);
-                    BeamFormerTransposeKernel transpose(ps, program, transposedData, complexVoltages);
+  namespace RTCP
+  {
+    struct BeamFormerTransposeTest : public UnitTest
+    {
+      BeamFormerTransposeTest(const Parset &ps)
+        :
+        UnitTest(ps, "BeamFormer/Transpose.cl")
+      {
+        if (ps.nrChannelsPerSubband() >= 19 && ps.nrSamplesPerChannel() >= 175 && ps.nrTABs(0) >= 5) {
+          MultiArraySharedBuffer<std::complex<float>, 4> transposedData(boost::extents[ps.nrTABs(0)][NR_POLARIZATIONS][ps.nrSamplesPerChannel()][ps.nrChannelsPerSubband()], queue, CL_MEM_READ_ONLY, CL_MEM_WRITE_ONLY);
+          MultiArraySharedBuffer<std::complex<float>, 4> complexVoltages(boost::extents[ps.nrChannelsPerSubband()][ps.nrSamplesPerChannel()][ps.nrTABs(0)][NR_POLARIZATIONS], queue, CL_MEM_READ_WRITE, CL_MEM_READ_ONLY);
+          BeamFormerTransposeKernel transpose(ps, program, transposedData, complexVoltages);
 
-                    complexVoltages[18][174][4][1] = std::complex<float>(24, 42);
+          complexVoltages[18][174][4][1] = std::complex<float>(24, 42);
 
-                    complexVoltages.hostToDevice(CL_FALSE);
-                    transpose.enqueue(queue, counter);
-                    transposedData.deviceToHost(CL_TRUE);
+          complexVoltages.hostToDevice(CL_FALSE);
+          transpose.enqueue(queue, counter);
+          transposedData.deviceToHost(CL_TRUE);
 
-                    check(transposedData[4][1][174][18], std::complex<float>(24, 42));
-                }
-            }
-        };
-    }
+          check(transposedData[4][1][174][18], std::complex<float>(24, 42));
+        }
+      }
+    };
+  }
 }
 #endif
diff --git a/RTCP/Cobalt/GPUProc/src/UnitTests/CoherentStokesTest.h b/RTCP/Cobalt/GPUProc/src/UnitTests/CoherentStokesTest.h
index 0e3f18e424986e7daa8dbd1c6272834394a2f324..5e586f65eaeb768cb4b21532a944be4cee766fed 100644
--- a/RTCP/Cobalt/GPUProc/src/UnitTests/CoherentStokesTest.h
+++ b/RTCP/Cobalt/GPUProc/src/UnitTests/CoherentStokesTest.h
@@ -10,40 +10,40 @@
 
 namespace LOFAR
 {
-    namespace RTCP 
-    {  
-        struct CoherentStokesTest : public UnitTest
-        {
-            CoherentStokesTest(const Parset &ps)
-                :
-            UnitTest(ps, "BeamFormer/CoherentStokes.cl")
-            {
-                if (ps.nrChannelsPerSubband() >= 19 && ps.nrSamplesPerChannel() >= 175 && ps.nrTABs(0) >= 5) {
-                    MultiArraySharedBuffer<float, 4> stokesData(boost::extents[ps.nrTABs(0)][ps.nrCoherentStokes()][ps.nrSamplesPerChannel() / ps.coherentStokesTimeIntegrationFactor()][ps.nrChannelsPerSubband()], queue, CL_MEM_READ_ONLY, CL_MEM_WRITE_ONLY);
+  namespace RTCP
+  {
+    struct CoherentStokesTest : public UnitTest
+    {
+      CoherentStokesTest(const Parset &ps)
+        :
+        UnitTest(ps, "BeamFormer/CoherentStokes.cl")
+      {
+        if (ps.nrChannelsPerSubband() >= 19 && ps.nrSamplesPerChannel() >= 175 && ps.nrTABs(0) >= 5) {
+          MultiArraySharedBuffer<float, 4> stokesData(boost::extents[ps.nrTABs(0)][ps.nrCoherentStokes()][ps.nrSamplesPerChannel() / ps.coherentStokesTimeIntegrationFactor()][ps.nrChannelsPerSubband()], queue, CL_MEM_READ_ONLY, CL_MEM_WRITE_ONLY);
 #if 1
-                    MultiArraySharedBuffer<std::complex<float>, 4> complexVoltages(boost::extents[ps.nrChannelsPerSubband()][ps.nrSamplesPerChannel()][ps.nrTABs(0)][NR_POLARIZATIONS], queue, CL_MEM_READ_WRITE, CL_MEM_READ_ONLY);
-                    CoherentStokesKernel stokesKernel(ps, program, stokesData, complexVoltages);
+          MultiArraySharedBuffer<std::complex<float>, 4> complexVoltages(boost::extents[ps.nrChannelsPerSubband()][ps.nrSamplesPerChannel()][ps.nrTABs(0)][NR_POLARIZATIONS], queue, CL_MEM_READ_WRITE, CL_MEM_READ_ONLY);
+          CoherentStokesKernel stokesKernel(ps, program, stokesData, complexVoltages);
 
-                    complexVoltages[18][174][4][0] = std::complex<float>(2, 3);
-                    complexVoltages[18][174][4][1] = std::complex<float>(4, 5);
+          complexVoltages[18][174][4][0] = std::complex<float>(2, 3);
+          complexVoltages[18][174][4][1] = std::complex<float>(4, 5);
 #else
-                    MultiArraySharedBuffer<std::complex<float>, 4> complexVoltages(boost::extents[ps.nrTABs(0)][NR_POLARIZATIONS][ps.nrSamplesPerChannel()][ps.nrChannelsPerSubband()], queue, CL_MEM_READ_WRITE, CL_MEM_READ_ONLY);
-                    CoherentStokesKernel stokesKernel(ps, program, stokesData, complexVoltages);
+          MultiArraySharedBuffer<std::complex<float>, 4> complexVoltages(boost::extents[ps.nrTABs(0)][NR_POLARIZATIONS][ps.nrSamplesPerChannel()][ps.nrChannelsPerSubband()], queue, CL_MEM_READ_WRITE, CL_MEM_READ_ONLY);
+          CoherentStokesKernel stokesKernel(ps, program, stokesData, complexVoltages);
 
-                    complexVoltages[18][174][4][0] = std::complex<float>(2, 3);
-                    complexVoltages[18][174][4][1] = std::complex<float>(4, 5);
+          complexVoltages[18][174][4][0] = std::complex<float>(2, 3);
+          complexVoltages[18][174][4][1] = std::complex<float>(4, 5);
 #endif
 
-                    complexVoltages.hostToDevice(CL_FALSE);
-                    stokesKernel.enqueue(queue, counter);
-                    stokesData.deviceToHost(CL_TRUE);
+          complexVoltages.hostToDevice(CL_FALSE);
+          stokesKernel.enqueue(queue, counter);
+          stokesData.deviceToHost(CL_TRUE);
 
-                    for (unsigned stokes = 0; stokes < ps.nrCoherentStokes(); stokes ++)
-                        std::cout << stokesData[4][stokes][174 / ps.coherentStokesTimeIntegrationFactor()][18] << std::endl;
-                }
-            }
-        };
+          for (unsigned stokes = 0; stokes < ps.nrCoherentStokes(); stokes++)
+            std::cout << stokesData[4][stokes][174 / ps.coherentStokesTimeIntegrationFactor()][18] << std::endl;
+        }
+      }
+    };
 
-    }
+  }
 }
 #endif
diff --git a/RTCP/Cobalt/GPUProc/src/UnitTests/CorrelateRectangleTest.h b/RTCP/Cobalt/GPUProc/src/UnitTests/CorrelateRectangleTest.h
index feafeb6e6640264f9138ebb8f34f2a14ffc6709a..d8fd52ec7ce14cb337cc684e40473903ab04edc6 100644
--- a/RTCP/Cobalt/GPUProc/src/UnitTests/CorrelateRectangleTest.h
+++ b/RTCP/Cobalt/GPUProc/src/UnitTests/CorrelateRectangleTest.h
@@ -11,43 +11,43 @@
 
 namespace LOFAR
 {
-    namespace RTCP 
-    {   
+  namespace RTCP
+  {
 
 #if defined USE_NEW_CORRELATOR
 
-        struct CorrelateRectangleTest : public UnitTest
-        {
-            CorrelateRectangleTest(const Parset &ps)
-                :
-            //UnitTest(ps, "Correlator.cl")
-            UnitTest(ps, "NewCorrelator.cl")
-            {
-                if (ps.nrStations() >= 5 && ps.nrChannelsPerSubband() >= 6 && ps.nrSamplesPerChannel() >= 100) {
-                    MultiArraySharedBuffer<std::complex<float>, 4> visibilities(boost::extents[ps.nrBaselines()][ps.nrChannelsPerSubband()][NR_POLARIZATIONS][NR_POLARIZATIONS], queue, CL_MEM_READ_ONLY, CL_MEM_WRITE_ONLY);
-                    MultiArraySharedBuffer<std::complex<float>, 4> inputData(boost::extents[ps.nrStations()][ps.nrChannelsPerSubband()][ps.nrSamplesPerChannel()][NR_POLARIZATIONS], queue, CL_MEM_WRITE_ONLY, CL_MEM_READ_ONLY);
-                    CorrelateRectangleKernel correlator(ps, queue, program, visibilities, inputData);
+    struct CorrelateRectangleTest : public UnitTest
+    {
+      CorrelateRectangleTest(const Parset &ps)
+        :
+        //UnitTest(ps, "Correlator.cl")
+        UnitTest(ps, "NewCorrelator.cl")
+      {
+        if (ps.nrStations() >= 5 && ps.nrChannelsPerSubband() >= 6 && ps.nrSamplesPerChannel() >= 100) {
+          MultiArraySharedBuffer<std::complex<float>, 4> visibilities(boost::extents[ps.nrBaselines()][ps.nrChannelsPerSubband()][NR_POLARIZATIONS][NR_POLARIZATIONS], queue, CL_MEM_READ_ONLY, CL_MEM_WRITE_ONLY);
+          MultiArraySharedBuffer<std::complex<float>, 4> inputData(boost::extents[ps.nrStations()][ps.nrChannelsPerSubband()][ps.nrSamplesPerChannel()][NR_POLARIZATIONS], queue, CL_MEM_WRITE_ONLY, CL_MEM_READ_ONLY);
+          CorrelateRectangleKernel correlator(ps, queue, program, visibilities, inputData);
 
-                    inputData[27][5][99][1] = std::complex<float>(3, 4);
-                    inputData[68][5][99][1] = std::complex<float>(5, 6);
+          inputData[27][5][99][1] = std::complex<float>(3, 4);
+          inputData[68][5][99][1] = std::complex<float>(5, 6);
 
-                    visibilities.hostToDevice(CL_FALSE);
-                    inputData.hostToDevice(CL_FALSE);
-                    correlator.enqueue(queue, counter);
-                    visibilities.deviceToHost(CL_TRUE);
+          visibilities.hostToDevice(CL_FALSE);
+          inputData.hostToDevice(CL_FALSE);
+          correlator.enqueue(queue, counter);
+          visibilities.deviceToHost(CL_TRUE);
 
-                    //check(visibilities[5463][5][1][1], std::complex<float>(39, 2));
-                    for (unsigned bl = 0; bl < ps.nrBaselines(); bl ++)
-                        if (visibilities[bl][5][1][1] != std::complex<float>(0, 0))
-                            std::cout << "bl = " << bl << ", visibility = " << visibilities[bl][5][1][1] << std::endl;
-                }
-            }
-        };
+          //check(visibilities[5463][5][1][1], std::complex<float>(39, 2));
+          for (unsigned bl = 0; bl < ps.nrBaselines(); bl++)
+            if (visibilities[bl][5][1][1] != std::complex<float>(0, 0))
+              std::cout << "bl = " << bl << ", visibility = " << visibilities[bl][5][1][1] << std::endl;
+        }
+      }
+    };
 
 
 
 #endif
 
-    }
+  }
 }
 #endif
diff --git a/RTCP/Cobalt/GPUProc/src/UnitTests/CorrelateTriangleTest.h b/RTCP/Cobalt/GPUProc/src/UnitTests/CorrelateTriangleTest.h
index b7005bde0d1a4739db035fc892470cf8acdd28a7..9096648904d97f318d8cd4b713c69d4657a26c39 100644
--- a/RTCP/Cobalt/GPUProc/src/UnitTests/CorrelateTriangleTest.h
+++ b/RTCP/Cobalt/GPUProc/src/UnitTests/CorrelateTriangleTest.h
@@ -10,38 +10,38 @@
 
 namespace LOFAR
 {
-    namespace RTCP 
-    {   
-        struct CorrelateTriangleTest : public UnitTest
-        {
-            CorrelateTriangleTest(const Parset &ps)
-                :
-            //UnitTest(ps, "Correlator.cl")
-            UnitTest(ps, "NewCorrelator.cl")
-            {
-                if (ps.nrStations() >= 5 && ps.nrChannelsPerSubband() >= 6 && ps.nrSamplesPerChannel() >= 100) {
-                    MultiArraySharedBuffer<std::complex<float>, 4> visibilities(boost::extents[ps.nrBaselines()][ps.nrChannelsPerSubband()][NR_POLARIZATIONS][NR_POLARIZATIONS], queue, CL_MEM_READ_ONLY, CL_MEM_WRITE_ONLY);
-                    MultiArraySharedBuffer<std::complex<float>, 4> inputData(boost::extents[ps.nrStations()][ps.nrChannelsPerSubband()][ps.nrSamplesPerChannel()][NR_POLARIZATIONS], queue, CL_MEM_WRITE_ONLY, CL_MEM_READ_ONLY);
-                    CorrelateTriangleKernel correlator(ps, queue, program, visibilities, inputData);
+  namespace RTCP
+  {
+    struct CorrelateTriangleTest : public UnitTest
+    {
+      CorrelateTriangleTest(const Parset &ps)
+        :
+        //UnitTest(ps, "Correlator.cl")
+        UnitTest(ps, "NewCorrelator.cl")
+      {
+        if (ps.nrStations() >= 5 && ps.nrChannelsPerSubband() >= 6 && ps.nrSamplesPerChannel() >= 100) {
+          MultiArraySharedBuffer<std::complex<float>, 4> visibilities(boost::extents[ps.nrBaselines()][ps.nrChannelsPerSubband()][NR_POLARIZATIONS][NR_POLARIZATIONS], queue, CL_MEM_READ_ONLY, CL_MEM_WRITE_ONLY);
+          MultiArraySharedBuffer<std::complex<float>, 4> inputData(boost::extents[ps.nrStations()][ps.nrChannelsPerSubband()][ps.nrSamplesPerChannel()][NR_POLARIZATIONS], queue, CL_MEM_WRITE_ONLY, CL_MEM_READ_ONLY);
+          CorrelateTriangleKernel correlator(ps, queue, program, visibilities, inputData);
 
-                    //inputData[3][5][99][1] = std::complex<float>(3, 4);
-                    //inputData[4][5][99][1] = std::complex<float>(5, 6);
-                    inputData[0][5][99][1] = std::complex<float>(3, 4);
-                    inputData[2][5][99][1] = std::complex<float>(5, 6);
+          //inputData[3][5][99][1] = std::complex<float>(3, 4);
+          //inputData[4][5][99][1] = std::complex<float>(5, 6);
+          inputData[0][5][99][1] = std::complex<float>(3, 4);
+          inputData[2][5][99][1] = std::complex<float>(5, 6);
 
-                    visibilities.hostToDevice(CL_FALSE);
-                    inputData.hostToDevice(CL_FALSE);
-                    correlator.enqueue(queue, counter);
-                    visibilities.deviceToHost(CL_TRUE);
+          visibilities.hostToDevice(CL_FALSE);
+          inputData.hostToDevice(CL_FALSE);
+          correlator.enqueue(queue, counter);
+          visibilities.deviceToHost(CL_TRUE);
 
-                    //check(visibilities[13][5][1][1], std::complex<float>(39, 2));
-                    for (unsigned bl = 0; bl < ps.nrBaselines(); bl ++)
-                        if (visibilities[bl][5][1][1] != std::complex<float>(0, 0))
-                            std::cout << "bl = " << bl << ", visibility = " << visibilities[bl][5][1][1] << std::endl;
-                }
-            }
-        };
-    }
+          //check(visibilities[13][5][1][1], std::complex<float>(39, 2));
+          for (unsigned bl = 0; bl < ps.nrBaselines(); bl++)
+            if (visibilities[bl][5][1][1] != std::complex<float>(0, 0))
+              std::cout << "bl = " << bl << ", visibility = " << visibilities[bl][5][1][1] << std::endl;
+        }
+      }
+    };
+  }
 }
 #endif
 
diff --git a/RTCP/Cobalt/GPUProc/src/UnitTests/CorrelatorTest.h b/RTCP/Cobalt/GPUProc/src/UnitTests/CorrelatorTest.h
index cecaac99579bf58b6220df417ac863ac53398ef7..f15bc6ba159d852a552048e1ad3024c1c7d6ea68 100644
--- a/RTCP/Cobalt/GPUProc/src/UnitTests/CorrelatorTest.h
+++ b/RTCP/Cobalt/GPUProc/src/UnitTests/CorrelatorTest.h
@@ -11,44 +11,44 @@
 
 namespace LOFAR
 {
-    namespace RTCP 
-    {   
-        struct CorrelatorTest : public UnitTest
-        {
-            CorrelatorTest(const Parset &ps)
-                :
+  namespace RTCP
+  {
+    struct CorrelatorTest : public UnitTest
+    {
+      CorrelatorTest(const Parset &ps)
+        :
 #if defined USE_NEW_CORRELATOR
-            UnitTest(ps, "NewCorrelator.cl")
+        UnitTest(ps, "NewCorrelator.cl")
 #else
-            UnitTest(ps, "Correlator.cl")
+        UnitTest(ps, "Correlator.cl")
 #endif
-            {
-                if (ps.nrStations() >= 5 && ps.nrChannelsPerSubband() >= 6 && ps.nrSamplesPerChannel() >= 100) {
-                    MultiArraySharedBuffer<std::complex<float>, 4> visibilities(boost::extents[ps.nrBaselines()][ps.nrChannelsPerSubband()][NR_POLARIZATIONS][NR_POLARIZATIONS], queue, CL_MEM_READ_ONLY, CL_MEM_WRITE_ONLY);
-                    MultiArraySharedBuffer<std::complex<float>, 4> inputData(boost::extents[ps.nrStations()][ps.nrChannelsPerSubband()][ps.nrSamplesPerChannel()][NR_POLARIZATIONS], queue, CL_MEM_WRITE_ONLY, CL_MEM_READ_ONLY);
-                    CorrelatorKernel correlator(ps, queue, program, visibilities, inputData);
+      {
+        if (ps.nrStations() >= 5 && ps.nrChannelsPerSubband() >= 6 && ps.nrSamplesPerChannel() >= 100) {
+          MultiArraySharedBuffer<std::complex<float>, 4> visibilities(boost::extents[ps.nrBaselines()][ps.nrChannelsPerSubband()][NR_POLARIZATIONS][NR_POLARIZATIONS], queue, CL_MEM_READ_ONLY, CL_MEM_WRITE_ONLY);
+          MultiArraySharedBuffer<std::complex<float>, 4> inputData(boost::extents[ps.nrStations()][ps.nrChannelsPerSubband()][ps.nrSamplesPerChannel()][NR_POLARIZATIONS], queue, CL_MEM_WRITE_ONLY, CL_MEM_READ_ONLY);
+          CorrelatorKernel correlator(ps, queue, program, visibilities, inputData);
 
-                    //inputData[3][5][99][1] = std::complex<float>(3, 4);
-                    //inputData[4][5][99][1] = std::complex<float>(5, 6);
-                    inputData[0][5][99][1] = std::complex<float>(3, 4);
-                    inputData[2][5][99][1] = std::complex<float>(5, 6);
+          //inputData[3][5][99][1] = std::complex<float>(3, 4);
+          //inputData[4][5][99][1] = std::complex<float>(5, 6);
+          inputData[0][5][99][1] = std::complex<float>(3, 4);
+          inputData[2][5][99][1] = std::complex<float>(5, 6);
 
-                    visibilities.hostToDevice(CL_FALSE);
-                    inputData.hostToDevice(CL_FALSE);
-                    correlator.enqueue(queue, counter);
-                    visibilities.deviceToHost(CL_TRUE);
+          visibilities.hostToDevice(CL_FALSE);
+          inputData.hostToDevice(CL_FALSE);
+          correlator.enqueue(queue, counter);
+          visibilities.deviceToHost(CL_TRUE);
 
-                    //check(visibilities[13][5][1][1], std::complex<float>(39, 2));
-                    //check(visibilities[5463][5][1][1], std::complex<float>(39, 2));
-                    for (unsigned bl = 0; bl < ps.nrBaselines(); bl ++)
-                        if (visibilities[bl][5][1][1] != std::complex<float>(0, 0))
-                            std::cout << "bl = " << bl << ", visibility = " << visibilities[bl][5][1][1] << std::endl;
-                }
-            }
-        };
+          //check(visibilities[13][5][1][1], std::complex<float>(39, 2));
+          //check(visibilities[5463][5][1][1], std::complex<float>(39, 2));
+          for (unsigned bl = 0; bl < ps.nrBaselines(); bl++)
+            if (visibilities[bl][5][1][1] != std::complex<float>(0, 0))
+              std::cout << "bl = " << bl << ", visibility = " << visibilities[bl][5][1][1] << std::endl;
+        }
+      }
+    };
 
 
 
-    }
+  }
 }
 #endif
\ No newline at end of file
diff --git a/RTCP/Cobalt/GPUProc/src/UnitTests/DedispersionChirpTest.h b/RTCP/Cobalt/GPUProc/src/UnitTests/DedispersionChirpTest.h
index a5f8ce825087de083a957bcb822f74b3ba902b95..03296553e0fe1156ed87b529ea8a71cd3aa5aff6 100644
--- a/RTCP/Cobalt/GPUProc/src/UnitTests/DedispersionChirpTest.h
+++ b/RTCP/Cobalt/GPUProc/src/UnitTests/DedispersionChirpTest.h
@@ -10,32 +10,32 @@
 
 namespace LOFAR
 {
-    namespace RTCP 
-    {  
+  namespace RTCP
+  {
 
-        struct DedispersionChirpTest : public UnitTest
-        {
-            DedispersionChirpTest(const Parset &ps)
-                :
-            UnitTest(ps, "BeamFormer/Dedispersion.cl")
-            {
-                if (ps.nrTABs(0) > 3 && ps.nrChannelsPerSubband() > 13 && ps.nrSamplesPerChannel() / ps.dedispersionFFTsize() > 1 && ps.dedispersionFFTsize() > 77) {
-                    MultiArraySharedBuffer<std::complex<float>, 5> data(boost::extents[ps.nrTABs(0)][NR_POLARIZATIONS][ps.nrChannelsPerSubband()][ps.nrSamplesPerChannel() / ps.dedispersionFFTsize()][ps.dedispersionFFTsize()], queue, CL_MEM_READ_WRITE, CL_MEM_READ_WRITE);
-                    MultiArraySharedBuffer<float, 1> DMs(boost::extents[ps.nrTABs(0)], queue, CL_MEM_READ_ONLY, CL_MEM_WRITE_ONLY);
-                    DedispersionChirpKernel dedispersionChirpKernel(ps, program, queue, data, DMs);
+    struct DedispersionChirpTest : public UnitTest
+    {
+      DedispersionChirpTest(const Parset &ps)
+        :
+        UnitTest(ps, "BeamFormer/Dedispersion.cl")
+      {
+        if (ps.nrTABs(0) > 3 && ps.nrChannelsPerSubband() > 13 && ps.nrSamplesPerChannel() / ps.dedispersionFFTsize() > 1 && ps.dedispersionFFTsize() > 77) {
+          MultiArraySharedBuffer<std::complex<float>, 5> data(boost::extents[ps.nrTABs(0)][NR_POLARIZATIONS][ps.nrChannelsPerSubband()][ps.nrSamplesPerChannel() / ps.dedispersionFFTsize()][ps.dedispersionFFTsize()], queue, CL_MEM_READ_WRITE, CL_MEM_READ_WRITE);
+          MultiArraySharedBuffer<float, 1> DMs(boost::extents[ps.nrTABs(0)], queue, CL_MEM_READ_ONLY, CL_MEM_WRITE_ONLY);
+          DedispersionChirpKernel dedispersionChirpKernel(ps, program, queue, data, DMs);
 
-                    data[3][1][13][1][77] = std::complex<float>(2, 3);
-                    DMs[3] = 2;
+          data[3][1][13][1][77] = std::complex<float>(2, 3);
+          DMs[3] = 2;
 
-                    DMs.hostToDevice(CL_FALSE);
-                    data.hostToDevice(CL_FALSE);
-                    dedispersionChirpKernel.enqueue(queue, counter, 60e6);
-                    data.deviceToHost(CL_TRUE);
+          DMs.hostToDevice(CL_FALSE);
+          data.hostToDevice(CL_FALSE);
+          dedispersionChirpKernel.enqueue(queue, counter, 60e6);
+          data.deviceToHost(CL_TRUE);
 
-                    std::cout << data[3][1][13][1][77] << std::endl;
-                }
-            }
-        };
-    }
+          std::cout << data[3][1][13][1][77] << std::endl;
+        }
+      }
+    };
+  }
 }
 #endif
diff --git a/RTCP/Cobalt/GPUProc/src/UnitTests/FFT_Test.h b/RTCP/Cobalt/GPUProc/src/UnitTests/FFT_Test.h
index 8dcab714e1b8d3d447e2c251a48421f7a66db9dc..b1a28d98a8e9ee0c8504223ddefbd9271494a847 100644
--- a/RTCP/Cobalt/GPUProc/src/UnitTests/FFT_Test.h
+++ b/RTCP/Cobalt/GPUProc/src/UnitTests/FFT_Test.h
@@ -15,285 +15,287 @@
 
 namespace LOFAR
 {
-    namespace RTCP
+  namespace RTCP
+  {
+    struct FFT_Test : public UnitTest
     {
-        struct FFT_Test : public UnitTest
-        {
-            FFT_Test(const Parset &ps)
-                : UnitTest(ps, "FFT.cl")
-            {
-                bool testOk = true;
-                unsigned nrErrors;
-
-                const unsigned fftSize = 256;
-                const unsigned nrFFTs = 1;
-                MultiArraySharedBuffer<std::complex<float>, 1> inout(boost::extents[fftSize], queue, CL_MEM_READ_WRITE, CL_MEM_READ_WRITE);
-
-                std::cout << "FFT Test" << std::endl;
+      FFT_Test(const Parset &ps)
+        : UnitTest(ps, "FFT.cl")
+      {
+        bool testOk = true;
+        unsigned nrErrors;
 
-                FFT_Kernel fftFwdKernel(context, fftSize, nrFFTs, true, inout);
-                FFT_Kernel fftBwdKernel(context, fftSize, nrFFTs, false, inout);
+        const unsigned fftSize = 256;
+        const unsigned nrFFTs = 1;
+        MultiArraySharedBuffer<std::complex<float>, 1> inout(boost::extents[fftSize], queue, CL_MEM_READ_WRITE, CL_MEM_READ_WRITE);
 
+        std::cout << "FFT Test" << std::endl;
 
-            // First run two very basic tests, then a third test with many transforms with FFTW output as reference.
-            // All tests run complex-to-complex float, in-place.
+        FFT_Kernel fftFwdKernel(context, fftSize, nrFFTs, true, inout);
+        FFT_Kernel fftBwdKernel(context, fftSize, nrFFTs, false, inout);
 
-            // Test 1: Impulse at origin
-            {
-                nrErrors = 0;
 
-                inout[0] = 1.0f;
+        // First run two very basic tests, then a third test with many transforms with FFTW output as reference.
+        // All tests run complex-to-complex float, in-place.
 
-                inout.hostToDevice(CL_FALSE);
-                fftFwdKernel.enqueue(queue, counter);
-                inout.deviceToHost(CL_TRUE);
+        // Test 1: Impulse at origin
+        {
+          nrErrors = 0;
 
-                // Check for constant function in transfer domain. All real values 1.0 (like fftw, scaled). All imag must be 0.0.
-                for (unsigned i = 0; i < fftSize; i++) {
-                    if (inout[i] != 1.0f) {
-                        if (++nrErrors < 100) { // limit spam
-                            std::cerr << "fwd: " << i << ':' << inout[i] << std::endl;
-                        }
-                    }
-                }
+          inout[0] = 1.0f;
 
-                // Backward
-                fftBwdKernel.enqueue(queue, counter);
-                inout.deviceToHost(CL_TRUE);
+          inout.hostToDevice(CL_FALSE);
+          fftFwdKernel.enqueue(queue, counter);
+          inout.deviceToHost(CL_TRUE);
 
-                // See if we got only our scaled impuls back.
-                if (inout[0] != (float)fftSize) {
-                    nrErrors += 1;
-                    std::cerr << "bwd: " << inout[0] << " at idx 0 should have been " << (std::complex<float>)fftSize << std::endl;
-                }
-                for (unsigned i = 1; i < fftSize; i++) {
-                    if (inout[i] != 0.0f) {
-                        if (++nrErrors < 100) {
-                            std::cerr << "bwd: " << i << ':' << inout[i] << std::endl;
-                        }
-                    }
-                }
-
-                if (nrErrors == 0) {
-                    std::cout << "FFT_Test 1: test OK" << std::endl;
-                } else {
-                    std::cerr << "FFT_Test 1: failed with " << nrErrors << " unexpected values" << std::endl;
-                    testOk = false;
-                }
+          // Check for constant function in transfer domain. All real values 1.0 (like fftw, scaled). All imag must be 0.0.
+          for (unsigned i = 0; i < fftSize; i++) {
+            if (inout[i] != 1.0f) {
+              if (++nrErrors < 100) {           // limit spam
+                std::cerr << "fwd: " << i << ':' << inout[i] << std::endl;
+              }
             }
-
-
-            // Test 2: Shifted impulse
-            {
-                nrErrors = 0;
-                const double epsilon = 1.0e-4; // bigger epsilon than default for test 2
-                memset(inout.origin(), 0, inout.num_elements() * sizeof(std::complex<float>));
-
-                inout[1] = 1.0f;
-
-                inout.hostToDevice(CL_FALSE);
-                fftFwdKernel.enqueue(queue, counter);
-                inout.deviceToHost(CL_TRUE);
-
-                // Check for (scaled) cosine real vals, and minus (scaled) sine imag vals.
-                // (One could also roughly check that each complex val is of constant (scaled) magnitude (sin^2(x) + cos^2(x) = 1).)
-                for (unsigned i = 0; i < fftSize; i++) {
-                    std::complex<float> ref = std::complex<float>((float) std::cos(2.0 * M_PI * i / fftSize),
-                                                                  (float)-std::sin(2.0 * M_PI * i / fftSize));
-                    if (!cfpEquals(inout[i], ref, epsilon)) {
-                        if (++nrErrors < 100) {
-                            std::cerr << "fwd: " << inout[i] << " at idx " << i << " should have been " << inout[i] << std::endl;
-                        }
-                    }
-                }
-
-                // Backward
-                fftBwdKernel.enqueue(queue, counter);
-                inout.deviceToHost(CL_TRUE);
-
-                // See if we got only our scaled, shifted impuls back.
-                if (!cfpEquals(inout[0], 0.0f, epsilon)) {
-                    nrErrors += 1;
-                    std::cerr << "bwd: " << inout[0] << " at idx 0 should have been (0.0, 0.0)" << std::endl;
-                }
-                if (!cfpEquals(inout[1], (float)fftSize, epsilon)) {
-                    nrErrors += 1;
-                    std::cerr << "bwd: " << inout[1] << " at idx 1 should have been " << (std::complex<float>)fftSize << std::endl;
-                }
-                for (unsigned i = 2; i < fftSize; i++) {
-                    if (!cfpEquals(inout[i], 0.0f, epsilon)) {
-                        if (++nrErrors < 100) {
-                            std::cerr << "bwd: " << i << ':' << inout[i] << std::endl;
-                        }
-                    }
-                }
-
-                if (nrErrors == 0) {
-                    std::cout << "FFT_Test 2: test OK" << std::endl;
-                } else {
-                    std::cerr << "FFT_Test 2: failed with " << nrErrors << " unexpected values" << std::endl;
-                    testOk = false;
-                }
+          }
+
+          // Backward
+          fftBwdKernel.enqueue(queue, counter);
+          inout.deviceToHost(CL_TRUE);
+
+          // See if we got only our scaled impuls back.
+          if (inout[0] != (float)fftSize) {
+            nrErrors += 1;
+            std::cerr << "bwd: " << inout[0] << " at idx 0 should have been " << (std::complex<float>)fftSize << std::endl;
+          }
+          for (unsigned i = 1; i < fftSize; i++) {
+            if (inout[i] != 0.0f) {
+              if (++nrErrors < 100) {
+                std::cerr << "bwd: " << i << ':' << inout[i] << std::endl;
+              }
             }
+          }
 
+          if (nrErrors == 0) {
+            std::cout << "FFT_Test 1: test OK" << std::endl;
+          } else {
+            std::cerr << "FFT_Test 1: failed with " << nrErrors << " unexpected values" << std::endl;
+            testOk = false;
+          }
+        }
 
-            // Test 3: Pseudo-random input ([0.0f, 2*pi]) on parset specified sizes. Compare output against FFTW double precision.
-            {
-                nrErrors = 0;
-
-                const double epsilon = 1.0e-3; // much bigger epsilon for test 3
-
-                struct timeval tv = {0, 0};
-                gettimeofday(&tv, NULL);
-                const unsigned int seed = (unsigned int)tv.tv_sec;
-                std::srand(seed);
 
-                const unsigned fftSize = ps.nrChannelsPerSubband();
-                const unsigned nrFFTs = ps.nrStations() * NR_POLARIZATIONS * ps.nrSamplesPerChannel();
-                MultiArraySharedBuffer<std::complex<float>, 2> inout3(boost::extents[nrFFTs][fftSize], queue, CL_MEM_READ_WRITE, CL_MEM_READ_WRITE);
-
-                FFT_Kernel fftFwdKernel3(context, fftSize, nrFFTs, true, inout3);
-                FFT_Kernel fftBwdKernel3(context, fftSize, nrFFTs, false, inout3);
-
-                fftw_plan fwdPlan;
-                fftw_plan bwdPlan;
-                fftw_complex* refInout3;
-
-                bool fftwOk = fftwInit(&fwdPlan, &bwdPlan, &refInout3, fftSize, nrFFTs);
-                assert(fftwOk);
-
-                for (unsigned i = 0; i < inout3.num_elements(); i++) {
-                    double real = (std::rand() * 2.0 * M_PI / RAND_MAX);
-                    double imag = (std::rand() * 2.0 * M_PI / RAND_MAX);
-                    refInout3[i][0] = real;
-                    refInout3[i][1] = imag;
-                    inout3.origin()[i].real() = (float)real;
-                    inout3.origin()[i].imag() = (float)imag;
-                }
-
-                inout3.hostToDevice(CL_FALSE);
-                fftFwdKernel3.enqueue(queue, counter);
-                inout3.deviceToHost(CL_TRUE);
-
-                fftw_execute(fwdPlan);
-
-                float maxDiff = 0.0f;
-                for (unsigned i = 0; i < nrFFTs; i++) {
-                    for (unsigned j = 0; j < fftSize; j++) {
-                        std::complex<float> fref;
-                        fref.real() = (float)refInout3[i*fftSize + j][0];
-                        fref.imag() = (float)refInout3[i*fftSize + j][1];
-                        if (!cfpEquals(inout3[i][j], fref, epsilon)) {
-                            if (++nrErrors < 100) {
-                                std::cerr << "fwd: " << inout3[i][j] << " at transform " << i << " pos " << j
-                                          << " should have been " << fref << std::endl;
-                            }
-                        }
-
-                        float diffReal = std::abs(inout3[i][j].real() - fref.real());
-                        if (diffReal > maxDiff)
-                            maxDiff = diffReal;
-                        float diffImag = std::abs(inout3[i][j].imag() - fref.imag());
-                        if (diffImag > maxDiff)
-                            maxDiff = diffImag;
-                    }
-                }
-                std::cout << "FFT_Test 3: Max abs error (fwd) compared to fftw complex double (w/ FFTW_ESTIMATE plans) is: " << maxDiff << std::endl;
-
-                // Backward
-                fftBwdKernel3.enqueue(queue, counter);
-                inout3.deviceToHost(CL_TRUE);
-
-                fftw_execute(bwdPlan);
-
-                maxDiff = 0.0f;
-                // Compare again vs fftw complex double. The original input has been overwritten.
-                for (unsigned i = 0; i < nrFFTs; i++) {
-                    for (unsigned j = 0; j < fftSize; j++) {
-                        std::complex<float> fref;
-                        fref.real() = (float)refInout3[i*fftSize + j][0];
-                        fref.imag() = (float)refInout3[i*fftSize + j][1];
-                        if (!cfpEquals(inout3[i][j], fref, epsilon)) {
-                            if (++nrErrors < 100) {
-                                std::cerr << "bwd: " << inout3[i][j] << " at transform " << i << " pos " << j
-                                          << " should have been " << fref << std::endl;
-                            }
-                        }
-
-                        float diffReal = std::abs(inout3[i][j].real() - fref.real());
-                        if (diffReal > maxDiff)
-                            maxDiff = diffReal;
-                        float diffImag = std::abs(inout3[i][j].imag() - fref.imag());
-                        if (diffImag > maxDiff)
-                            maxDiff = diffImag;
-                    }
-                }
-                std::cout << "FFT_Test 3: Max abs error (fwd+bwd) compared to fftw complex double (w/ FFTW_ESTIMATE plans) is: " << maxDiff << std::endl;
-
-                fftwDeinit(fwdPlan, bwdPlan, refInout3);
-
-                if (nrErrors == 0) {
-                    std::cout << "FFT_Test 3: test OK" << std::endl;
-                } else {
-                    std::cerr << "FFT_Test 3: failed with " << nrErrors << " unexpected values" << std::endl;
-                    testOk = false;
-                }
+        // Test 2: Shifted impulse
+        {
+          nrErrors = 0;
+          const double epsilon = 1.0e-4;       // bigger epsilon than default for test 2
+          memset(inout.origin(), 0, inout.num_elements() * sizeof(std::complex<float>));
+
+          inout[1] = 1.0f;
+
+          inout.hostToDevice(CL_FALSE);
+          fftFwdKernel.enqueue(queue, counter);
+          inout.deviceToHost(CL_TRUE);
+
+          // Check for (scaled) cosine real vals, and minus (scaled) sine imag vals.
+          // (One could also roughly check that each complex val is of constant (scaled) magnitude (sin^2(x) + cos^2(x) = 1).)
+          for (unsigned i = 0; i < fftSize; i++) {
+            std::complex<float> ref = std::complex<float>((float) std::cos(2.0 * M_PI * i / fftSize),
+                                                          (float)-std::sin(2.0 * M_PI * i / fftSize));
+            if (!cfpEquals(inout[i], ref, epsilon)) {
+              if (++nrErrors < 100) {
+                std::cerr << "fwd: " << inout[i] << " at idx " << i << " should have been " << inout[i] << std::endl;
+              }
             }
-
-
-                check(testOk, true);
+          }
+
+          // Backward
+          fftBwdKernel.enqueue(queue, counter);
+          inout.deviceToHost(CL_TRUE);
+
+          // See if we got only our scaled, shifted impuls back.
+          if (!cfpEquals(inout[0], 0.0f, epsilon)) {
+            nrErrors += 1;
+            std::cerr << "bwd: " << inout[0] << " at idx 0 should have been (0.0, 0.0)" << std::endl;
+          }
+          if (!cfpEquals(inout[1], (float)fftSize, epsilon)) {
+            nrErrors += 1;
+            std::cerr << "bwd: " << inout[1] << " at idx 1 should have been " << (std::complex<float>)fftSize << std::endl;
+          }
+          for (unsigned i = 2; i < fftSize; i++) {
+            if (!cfpEquals(inout[i], 0.0f, epsilon)) {
+              if (++nrErrors < 100) {
+                std::cerr << "bwd: " << i << ':' << inout[i] << std::endl;
+              }
             }
+          }
 
- 
-            bool fftwInit(fftw_plan* fwdPlan, fftw_plan* bwdPlan, fftw_complex** inout, int fftSize, int nrFFTs) {
-                if (fftw_init_threads() == 0) {
-                    std::cerr << "failed to init fftw threads" << std::endl;
-                    return false;
-                }
+          if (nrErrors == 0) {
+            std::cout << "FFT_Test 2: test OK" << std::endl;
+          } else {
+            std::cerr << "FFT_Test 2: failed with " << nrErrors << " unexpected values" << std::endl;
+            testOk = false;
+          }
+        }
 
-                *inout = (fftw_complex*)fftw_malloc(fftSize * nrFFTs * sizeof(fftw_complex));
-                if (*inout == NULL) {
-                    std::cerr << "failed to fftw malloc buffer" << std::endl;
-                    fftw_cleanup_threads();
-                    return false;
-                }
 
-                fftw_plan_with_nthreads(4); // use up to 4 threads (don't care about test performance, but be impatient anyway...)
-
-                // Use FFTW_ESTIMATE: we need reference output, so don't care about runtime speed.
-                *fwdPlan = fftw_plan_many_dft(1, &fftSize, nrFFTs, // int rank, const int *n (=dims), int howmany,
-                               *inout, NULL, 1, fftSize,           // fftw_complex *in, const int *inembed, int istride, int idist,
-                               *inout, NULL, 1, fftSize,           // fftw_complex *out, const int *onembed, int ostride, int odist,
-                               FFTW_FORWARD, FFTW_ESTIMATE);       // int sign, unsigned flags
-                if (*fwdPlan == NULL) {
-                    std::cerr << "failed to create fftw fwd plan" << std::endl;
-                    fftw_free(*inout);
-                    fftw_cleanup_threads();
-                    return false;
-                }
-                *bwdPlan = fftw_plan_many_dft(1, &fftSize, nrFFTs, // int rank, const int *n (=dims), int howmany,
-                               *inout, NULL, 1, fftSize,           // fftw_complex *in, const int *inembed, int istride, int idist,
-                               *inout, NULL, 1, fftSize,           // fftw_complex *out, const int *onembed, int ostride, int odist,
-                               FFTW_BACKWARD, FFTW_ESTIMATE);      // int sign, unsigned flags
-                if (*bwdPlan == NULL) {
-                    std::cerr << "failed to create fftw bwd plan" << std::endl;
-                    fftw_destroy_plan(*fwdPlan);
-                    fftw_free(*inout);
-                    fftw_cleanup_threads();
-                    return false;
+        // Test 3: Pseudo-random input ([0.0f, 2*pi]) on parset specified sizes. Compare output against FFTW double precision.
+        {
+          nrErrors = 0;
+
+          const double epsilon = 1.0e-3;       // much bigger epsilon for test 3
+
+          struct timeval tv = {0, 0};
+          gettimeofday(&tv, NULL);
+          const unsigned int seed = (unsigned int)tv.tv_sec;
+          std::srand(seed);
+
+          const unsigned fftSize = ps.nrChannelsPerSubband();
+          const unsigned nrFFTs = ps.nrStations() * NR_POLARIZATIONS * ps.nrSamplesPerChannel();
+          MultiArraySharedBuffer<std::complex<float>, 2> inout3(boost::extents[nrFFTs][fftSize], queue, CL_MEM_READ_WRITE, CL_MEM_READ_WRITE);
+
+          FFT_Kernel fftFwdKernel3(context, fftSize, nrFFTs, true, inout3);
+          FFT_Kernel fftBwdKernel3(context, fftSize, nrFFTs, false, inout3);
+
+          fftw_plan fwdPlan;
+          fftw_plan bwdPlan;
+          fftw_complex* refInout3;
+
+          bool fftwOk = fftwInit(&fwdPlan, &bwdPlan, &refInout3, fftSize, nrFFTs);
+          assert(fftwOk);
+
+          for (unsigned i = 0; i < inout3.num_elements(); i++) {
+            double real = (std::rand() * 2.0 * M_PI / RAND_MAX);
+            double imag = (std::rand() * 2.0 * M_PI / RAND_MAX);
+            refInout3[i][0] = real;
+            refInout3[i][1] = imag;
+            inout3.origin()[i].real() = (float)real;
+            inout3.origin()[i].imag() = (float)imag;
+          }
+
+          inout3.hostToDevice(CL_FALSE);
+          fftFwdKernel3.enqueue(queue, counter);
+          inout3.deviceToHost(CL_TRUE);
+
+          fftw_execute(fwdPlan);
+
+          float maxDiff = 0.0f;
+          for (unsigned i = 0; i < nrFFTs; i++) {
+            for (unsigned j = 0; j < fftSize; j++) {
+              std::complex<float> fref;
+              fref.real() = (float)refInout3[i * fftSize + j][0];
+              fref.imag() = (float)refInout3[i * fftSize + j][1];
+              if (!cfpEquals(inout3[i][j], fref, epsilon)) {
+                if (++nrErrors < 100) {
+                  std::cerr << "fwd: " << inout3[i][j] << " at transform " << i << " pos " << j
+                            << " should have been " << fref << std::endl;
                 }
-
-                return true;
+              }
+
+              float diffReal = std::abs(inout3[i][j].real() - fref.real());
+              if (diffReal > maxDiff)
+                maxDiff = diffReal;
+              float diffImag = std::abs(inout3[i][j].imag() - fref.imag());
+              if (diffImag > maxDiff)
+                maxDiff = diffImag;
             }
-
-            void fftwDeinit(fftw_plan fwdPlan, fftw_plan bwdPlan, fftw_complex* inout) {
-                fftw_destroy_plan(bwdPlan);
-                fftw_destroy_plan(fwdPlan);
-                fftw_free(inout);
-                fftw_cleanup_threads();
+          }
+          std::cout << "FFT_Test 3: Max abs error (fwd) compared to fftw complex double (w/ FFTW_ESTIMATE plans) is: " << maxDiff << std::endl;
+
+          // Backward
+          fftBwdKernel3.enqueue(queue, counter);
+          inout3.deviceToHost(CL_TRUE);
+
+          fftw_execute(bwdPlan);
+
+          maxDiff = 0.0f;
+          // Compare again vs fftw complex double. The original input has been overwritten.
+          for (unsigned i = 0; i < nrFFTs; i++) {
+            for (unsigned j = 0; j < fftSize; j++) {
+              std::complex<float> fref;
+              fref.real() = (float)refInout3[i * fftSize + j][0];
+              fref.imag() = (float)refInout3[i * fftSize + j][1];
+              if (!cfpEquals(inout3[i][j], fref, epsilon)) {
+                if (++nrErrors < 100) {
+                  std::cerr << "bwd: " << inout3[i][j] << " at transform " << i << " pos " << j
+                            << " should have been " << fref << std::endl;
+                }
+              }
+
+              float diffReal = std::abs(inout3[i][j].real() - fref.real());
+              if (diffReal > maxDiff)
+                maxDiff = diffReal;
+              float diffImag = std::abs(inout3[i][j].imag() - fref.imag());
+              if (diffImag > maxDiff)
+                maxDiff = diffImag;
             }
-        };
-    }
+          }
+          std::cout << "FFT_Test 3: Max abs error (fwd+bwd) compared to fftw complex double (w/ FFTW_ESTIMATE plans) is: " << maxDiff << std::endl;
+
+          fftwDeinit(fwdPlan, bwdPlan, refInout3);
+
+          if (nrErrors == 0) {
+            std::cout << "FFT_Test 3: test OK" << std::endl;
+          } else {
+            std::cerr << "FFT_Test 3: failed with " << nrErrors << " unexpected values" << std::endl;
+            testOk = false;
+          }
+        }
+
+
+        check(testOk, true);
+      }
+
+
+      bool fftwInit(fftw_plan* fwdPlan, fftw_plan* bwdPlan, fftw_complex** inout, int fftSize, int nrFFTs)
+      {
+        if (fftw_init_threads() == 0) {
+          std::cerr << "failed to init fftw threads" << std::endl;
+          return false;
+        }
+
+        *inout = (fftw_complex*)fftw_malloc(fftSize * nrFFTs * sizeof(fftw_complex));
+        if (*inout == NULL) {
+          std::cerr << "failed to fftw malloc buffer" << std::endl;
+          fftw_cleanup_threads();
+          return false;
+        }
+
+        fftw_plan_with_nthreads(4);         // use up to 4 threads (don't care about test performance, but be impatient anyway...)
+
+        // Use FFTW_ESTIMATE: we need reference output, so don't care about runtime speed.
+        *fwdPlan = fftw_plan_many_dft(1, &fftSize, nrFFTs,         // int rank, const int *n (=dims), int howmany,
+                                      *inout, NULL, 1, fftSize,    // fftw_complex *in, const int *inembed, int istride, int idist,
+                                      *inout, NULL, 1, fftSize,    // fftw_complex *out, const int *onembed, int ostride, int odist,
+                                      FFTW_FORWARD, FFTW_ESTIMATE); // int sign, unsigned flags
+        if (*fwdPlan == NULL) {
+          std::cerr << "failed to create fftw fwd plan" << std::endl;
+          fftw_free(*inout);
+          fftw_cleanup_threads();
+          return false;
+        }
+        *bwdPlan = fftw_plan_many_dft(1, &fftSize, nrFFTs,         // int rank, const int *n (=dims), int howmany,
+                                      *inout, NULL, 1, fftSize,    // fftw_complex *in, const int *inembed, int istride, int idist,
+                                      *inout, NULL, 1, fftSize,    // fftw_complex *out, const int *onembed, int ostride, int odist,
+                                      FFTW_BACKWARD, FFTW_ESTIMATE); // int sign, unsigned flags
+        if (*bwdPlan == NULL) {
+          std::cerr << "failed to create fftw bwd plan" << std::endl;
+          fftw_destroy_plan(*fwdPlan);
+          fftw_free(*inout);
+          fftw_cleanup_threads();
+          return false;
+        }
+
+        return true;
+      }
+
+      void fftwDeinit(fftw_plan fwdPlan, fftw_plan bwdPlan, fftw_complex* inout)
+      {
+        fftw_destroy_plan(bwdPlan);
+        fftw_destroy_plan(fwdPlan);
+        fftw_free(inout);
+        fftw_cleanup_threads();
+      }
+    };
+  }
 }
 #endif
 
diff --git a/RTCP/Cobalt/GPUProc/src/UnitTests/FIR_FilterTest.h b/RTCP/Cobalt/GPUProc/src/UnitTests/FIR_FilterTest.h
index 2162c5bb0d8ddc882a666cdbcee2dd700581e862..5bac5cde20ba2fb7bf1bffb72b2bfb689bc03b79 100644
--- a/RTCP/Cobalt/GPUProc/src/UnitTests/FIR_FilterTest.h
+++ b/RTCP/Cobalt/GPUProc/src/UnitTests/FIR_FilterTest.h
@@ -11,194 +11,194 @@
 
 namespace LOFAR
 {
-    namespace RTCP
+  namespace RTCP
+  {
+    struct FIR_FilterTest : public UnitTest
     {
-        struct FIR_FilterTest : public UnitTest
-        {
-            FIR_FilterTest(const Parset &ps)
-                : UnitTest(ps, "FIR.cl")
-            {
-            	bool testOk = true;
-
-                MultiArraySharedBuffer<float, 5> filteredData(
-                    boost::extents[ps.nrStations()][NR_POLARIZATIONS][ps.nrSamplesPerChannel()][ps.nrChannelsPerSubband()][ps.nrBytesPerComplexSample()],
-                    queue, CL_MEM_READ_ONLY, CL_MEM_WRITE_ONLY);
-                MultiArraySharedBuffer<signed char, 5> inputSamples(
-                    boost::extents[ps.nrStations()][ps.nrPPFTaps() - 1 + ps.nrSamplesPerChannel()][ps.nrChannelsPerSubband()][NR_POLARIZATIONS][ps.nrBytesPerComplexSample()],
-                    queue, CL_MEM_WRITE_ONLY, CL_MEM_READ_ONLY);
-                MultiArraySharedBuffer<float, 2> firWeights(
-                    boost::extents[ps.nrChannelsPerSubband()][ps.nrPPFTaps()],
-                    queue, CL_MEM_WRITE_ONLY, CL_MEM_READ_ONLY);
-                FIR_FilterKernel firFilterKernel(ps, queue, program, filteredData, inputSamples, firWeights);
-
-                std::cout << "FIR_FilterTest: total num_el: firWeight=" << firWeights.num_elements() << " input="
-                          << inputSamples.num_elements() << " output=" << filteredData.num_elements() << std::endl;
-
-                unsigned station, sample, ch, pol;
-
-                // Test 1: Single impulse test on single non-zero weight
-                station = ch = pol = 0;
-                sample = ps.nrPPFTaps() - 1; // skip FIR init samples
-                firWeights.origin()[0] = 2.0f;
-                inputSamples[station][sample][ch][pol][0] = 3;
-
-                firWeights.hostToDevice(CL_FALSE);
-                inputSamples.hostToDevice(CL_FALSE);
-                firFilterKernel.enqueue(queue, counter);
-                filteredData.deviceToHost(CL_TRUE);
-
-                // Expected output: St0, pol0, ch0, sampl0: 6. The rest all 0.
-                if (filteredData.origin()[0] != 6.0f) {
-                    std::cerr << "FIR_FilterTest 1: Expected at idx 0: 6; got: " << filteredData.origin()[0] << std::endl;
-                    testOk = false;
-                }
-                const unsigned nrExpectedZeros = filteredData.num_elements() - 1;
-                unsigned nrZeros = 0;
-                for (unsigned i = 1; i < filteredData.num_elements(); i++) {
-                    if (filteredData.origin()[i] == 0.0f) {
-                        nrZeros += 1;
-                    }
-                }
-                if (nrZeros == nrExpectedZeros) {
-                    std::cout << "FIR_FilterTest 1: test OK" << std::endl;
-                } else {
-                    std::cerr << "FIR_FilterTest 1: Unexpected non-zero(s). Only " << nrZeros << " zeros out of " << nrExpectedZeros << std::endl;
-                    testOk = false;
-                }
-
-
-                // Test 2: Impulse train 2*NR_TAPS apart. All st, all ch, all pol.
+      FIR_FilterTest(const Parset &ps)
+        : UnitTest(ps, "FIR.cl")
+      {
+        bool testOk = true;
+
+        MultiArraySharedBuffer<float, 5> filteredData(
+          boost::extents[ps.nrStations()][NR_POLARIZATIONS][ps.nrSamplesPerChannel()][ps.nrChannelsPerSubband()][ps.nrBytesPerComplexSample()],
+          queue, CL_MEM_READ_ONLY, CL_MEM_WRITE_ONLY);
+        MultiArraySharedBuffer<signed char, 5> inputSamples(
+          boost::extents[ps.nrStations()][ps.nrPPFTaps() - 1 + ps.nrSamplesPerChannel()][ps.nrChannelsPerSubband()][NR_POLARIZATIONS][ps.nrBytesPerComplexSample()],
+          queue, CL_MEM_WRITE_ONLY, CL_MEM_READ_ONLY);
+        MultiArraySharedBuffer<float, 2> firWeights(
+          boost::extents[ps.nrChannelsPerSubband()][ps.nrPPFTaps()],
+          queue, CL_MEM_WRITE_ONLY, CL_MEM_READ_ONLY);
+        FIR_FilterKernel firFilterKernel(ps, queue, program, filteredData, inputSamples, firWeights);
+
+        std::cout << "FIR_FilterTest: total num_el: firWeight=" << firWeights.num_elements() << " input="
+                  << inputSamples.num_elements() << " output=" << filteredData.num_elements() << std::endl;
+
+        unsigned station, sample, ch, pol;
+
+        // Test 1: Single impulse test on single non-zero weight
+        station = ch = pol = 0;
+        sample = ps.nrPPFTaps() - 1;         // skip FIR init samples
+        firWeights.origin()[0] = 2.0f;
+        inputSamples[station][sample][ch][pol][0] = 3;
+
+        firWeights.hostToDevice(CL_FALSE);
+        inputSamples.hostToDevice(CL_FALSE);
+        firFilterKernel.enqueue(queue, counter);
+        filteredData.deviceToHost(CL_TRUE);
+
+        // Expected output: St0, pol0, ch0, sampl0: 6. The rest all 0.
+        if (filteredData.origin()[0] != 6.0f) {
+          std::cerr << "FIR_FilterTest 1: Expected at idx 0: 6; got: " << filteredData.origin()[0] << std::endl;
+          testOk = false;
+        }
+        const unsigned nrExpectedZeros = filteredData.num_elements() - 1;
+        unsigned nrZeros = 0;
+        for (unsigned i = 1; i < filteredData.num_elements(); i++) {
+          if (filteredData.origin()[i] == 0.0f) {
+            nrZeros += 1;
+          }
+        }
+        if (nrZeros == nrExpectedZeros) {
+          std::cout << "FIR_FilterTest 1: test OK" << std::endl;
+        } else {
+          std::cerr << "FIR_FilterTest 1: Unexpected non-zero(s). Only " << nrZeros << " zeros out of " << nrExpectedZeros << std::endl;
+          testOk = false;
+        }
+
+
+        // Test 2: Impulse train 2*NR_TAPS apart. All st, all ch, all pol.
+        for (ch = 0; ch < ps.nrChannelsPerSubband(); ch++) {
+          for (unsigned tap = 0; tap < ps.nrPPFTaps(); tap++) {
+            firWeights[ch][tap] = ch + tap;
+          }
+        }
+
+        for (station = 0; station < ps.nrStations(); station++) {
+          for (sample = ps.nrPPFTaps() - 1; sample < ps.nrPPFTaps() - 1 + ps.nrSamplesPerChannel(); sample += 2 * ps.nrPPFTaps()) {
+            for (ch = 0; ch < ps.nrChannelsPerSubband(); ch++) {
+              for (pol = 0; pol < NR_POLARIZATIONS; pol++) {
+                inputSamples[station][sample][ch][pol][0] = station;
+              }
+            }
+          }
+        }
+
+        firWeights.hostToDevice(CL_FALSE);
+        inputSamples.hostToDevice(CL_FALSE);
+        firFilterKernel.enqueue(queue, counter);
+        filteredData.deviceToHost(CL_TRUE);
+
+        // Expected output: sequences of (filterbank scaled by station nr, NR_TAPS zeros)
+        unsigned nrErrors = 0;
+        for (station = 0; station < ps.nrStations(); station++) {
+          for (pol = 0; pol < NR_POLARIZATIONS; pol++) {
+            unsigned s;
+            for (sample = 0; sample < ps.nrSamplesPerChannel() / (2 * ps.nrPPFTaps()); sample += s) {
+              for (s = 0; s < ps.nrPPFTaps(); s++) {
                 for (ch = 0; ch < ps.nrChannelsPerSubband(); ch++) {
-                    for (unsigned tap = 0; tap < ps.nrPPFTaps(); tap++) {
-                        firWeights[ch][tap] = ch + tap;
-                    }
-                }
-
-                for (station = 0; station < ps.nrStations(); station++) {
-                    for (sample = ps.nrPPFTaps() - 1; sample < ps.nrPPFTaps() - 1 + ps.nrSamplesPerChannel(); sample += 2 * ps.nrPPFTaps()) {
-                        for (ch = 0; ch < ps.nrChannelsPerSubband(); ch++) {
-                            for (pol = 0; pol < NR_POLARIZATIONS; pol++) {
-                                inputSamples[station][sample][ch][pol][0] = station;
-                            }
-                        }
+                  if (filteredData[station][pol][sample + s][ch][0] != station * firWeights[ch][s]) {
+                    if (++nrErrors < 100) {                     // limit spam
+                      std::cerr << "2a.filtered[" << station << "][" << pol << "][" << sample + s << "][" << ch <<
+                      "][0] (sample=" << sample << " s=" << s << ") = " << filteredData[station][pol][sample + s][ch][0] << std::endl;
                     }
-                }
-
-                firWeights.hostToDevice(CL_FALSE);
-                inputSamples.hostToDevice(CL_FALSE);
-                firFilterKernel.enqueue(queue, counter);
-                filteredData.deviceToHost(CL_TRUE);
-
-                // Expected output: sequences of (filterbank scaled by station nr, NR_TAPS zeros)
-                unsigned nrErrors = 0;
-				for (station = 0; station < ps.nrStations(); station++) {
-				    for (pol = 0; pol < NR_POLARIZATIONS; pol++) {
-				        unsigned s;
-                        for (sample = 0; sample < ps.nrSamplesPerChannel() / (2 * ps.nrPPFTaps()); sample += s) {
-                            for (s = 0; s < ps.nrPPFTaps(); s++) {
-                                for (ch = 0; ch < ps.nrChannelsPerSubband(); ch++) {
-                                    if (filteredData[station][pol][sample + s][ch][0] != station * firWeights[ch][s]) {
-                                        if (++nrErrors < 100) { // limit spam
-                                            std::cerr << "2a.filtered["<<station<<"]["<<pol<<"]["<<sample+s<<"]["<<ch<<
-                                                "][0] (sample="<<sample<<" s="<<s<<") = " << filteredData[station][pol][sample + s][ch][0] << std::endl;
-                                        }
-                                    }
-                                    if (filteredData[station][pol][sample + s][ch][1] != 0.0f) {
-                                        if (++nrErrors < 100) {
-                                            std::cerr << "2a imag non-zero: " << filteredData[station][pol][sample + s][ch][1] << std::endl;
-                                        }
-                                    }
-                                }
-                            }
-
-                            for ( ; s < 2 * ps.nrPPFTaps(); s++) {
-                                for (ch = 0; ch < ps.nrChannelsPerSubband(); ch++) {
-                                    if (filteredData[station][pol][sample + s][ch][0] != 0.0f || filteredData[station][pol][sample + s][ch][1] != 0.0f) {
-                                        if (++nrErrors < 100) {
-                                            std::cerr << "2b.filtered["<<station<<"]["<<pol<<"]["<<sample+s<<"]["<<ch<<
-                                                "][0] (sample="<<sample<<" s="<<s<<") = " << filteredData[station][pol][sample + s][ch][0] <<
-                                                ", "<<filteredData[station][pol][sample + s][ch][1] << std::endl;
-                                        }
-                                    }
-                                }
-                            }
-                        }
+                  }
+                  if (filteredData[station][pol][sample + s][ch][1] != 0.0f) {
+                    if (++nrErrors < 100) {
+                      std::cerr << "2a imag non-zero: " << filteredData[station][pol][sample + s][ch][1] << std::endl;
                     }
+                  }
                 }
-                if (nrErrors == 0) {
-                    std::cout << "FIR_FilterTest 2: test OK" << std::endl;
-                } else {
-                    std::cerr << "FIR_FilterTest 2: " << nrErrors << " unexpected output values" << std::endl;
-                    testOk = false;
-                }
-
-
-                // Test 3: Scaled step test (scaled DC gain) on KAISER filterbank. Non-zero imag input.
-                FilterBank filterBank(true, ps.nrPPFTaps(), ps.nrChannelsPerSubband(), KAISER);
-                filterBank.negateWeights(); // not needed for testing, but as we use it
-                //filterBank.printWeights();
+              }
 
-                assert(firWeights.num_elements() == filterBank.getWeights().num_elements());
-                double* expectedSums = new double[ps.nrChannelsPerSubband()];
-                memset(expectedSums, 0, ps.nrChannelsPerSubband() * sizeof(double));
+              for (; s < 2 * ps.nrPPFTaps(); s++) {
                 for (ch = 0; ch < ps.nrChannelsPerSubband(); ch++) {
-                    for (unsigned tap = 0; tap < ps.nrPPFTaps(); tap++) {
-                        firWeights[ch][tap] = filterBank.getWeights()[ch][tap];
-                        expectedSums[ch] += firWeights[ch][tap];
-                    }
-                }
-
-                for (station = 0; station < ps.nrStations(); station++) {
-                    for (sample = 0; sample < ps.nrPPFTaps() - 1 + ps.nrSamplesPerChannel(); sample++) {
-                        for (ch = 0; ch < ps.nrChannelsPerSubband(); ch++) {
-                            for (pol = 0; pol < NR_POLARIZATIONS; pol++) {
-                                inputSamples[station][sample][ch][pol][0] = 2; // real
-                                inputSamples[station][sample][ch][pol][1] = 3; // imag
-                            }
-                        }
+                  if (filteredData[station][pol][sample + s][ch][0] != 0.0f || filteredData[station][pol][sample + s][ch][1] != 0.0f) {
+                    if (++nrErrors < 100) {
+                      std::cerr << "2b.filtered[" << station << "][" << pol << "][" << sample + s << "][" << ch <<
+                      "][0] (sample=" << sample << " s=" << s << ") = " << filteredData[station][pol][sample + s][ch][0] <<
+                      ", " << filteredData[station][pol][sample + s][ch][1] << std::endl;
                     }
+                  }
                 }
-
-                firWeights.hostToDevice(CL_FALSE);
-                inputSamples.hostToDevice(CL_FALSE);
-                firFilterKernel.enqueue(queue, counter);
-                filteredData.deviceToHost(CL_TRUE);
-
-                nrErrors = 0;
-				for (station = 0; station < ps.nrStations(); station++) {
-				    for (pol = 0; pol < NR_POLARIZATIONS; pol++) {
-                        for (sample = 0; sample < ps.nrSamplesPerChannel(); sample++) {
-                            for (ch = 0; ch < ps.nrChannelsPerSubband(); ch++) {
-                                // Expected sum must also be scaled by 2 and 3, because weights are real only.
-                                if (!fpEquals(filteredData[station][pol][sample][ch][0], 2 * expectedSums[ch])) {
-                                    if (++nrErrors < 100) { // limit spam
-                                        std::cerr << "3a.filtered["<<station<<"]["<<pol<<"]["<<sample<<"]["<<ch<<
-                                            "][0] = " << filteredData[station][pol][sample][ch][0] << " 2*weight = " << 2*expectedSums[ch] << std::endl;
-                                    }
-                                }
-                                if (!fpEquals(filteredData[station][pol][sample][ch][1], 3 * expectedSums[ch])) {
-                                    if (++nrErrors < 100) {
-                                        std::cerr << "3b.filtered["<<station<<"]["<<pol<<"]["<<sample<<"]["<<ch<<
-                                            "][1] = " << filteredData[station][pol][sample][ch][1] << " 3*weight = " << 3*expectedSums[ch] << std::endl;
-                                    }
-                                }
-                            }
-                        }
-                    }
+              }
+            }
+          }
+        }
+        if (nrErrors == 0) {
+          std::cout << "FIR_FilterTest 2: test OK" << std::endl;
+        } else {
+          std::cerr << "FIR_FilterTest 2: " << nrErrors << " unexpected output values" << std::endl;
+          testOk = false;
+        }
+
+
+        // Test 3: Scaled step test (scaled DC gain) on KAISER filterbank. Non-zero imag input.
+        FilterBank filterBank(true, ps.nrPPFTaps(), ps.nrChannelsPerSubband(), KAISER);
+        filterBank.negateWeights();         // not needed for testing, but as we use it
+        //filterBank.printWeights();
+
+        assert(firWeights.num_elements() == filterBank.getWeights().num_elements());
+        double* expectedSums = new double[ps.nrChannelsPerSubband()];
+        memset(expectedSums, 0, ps.nrChannelsPerSubband() * sizeof(double));
+        for (ch = 0; ch < ps.nrChannelsPerSubband(); ch++) {
+          for (unsigned tap = 0; tap < ps.nrPPFTaps(); tap++) {
+            firWeights[ch][tap] = filterBank.getWeights()[ch][tap];
+            expectedSums[ch] += firWeights[ch][tap];
+          }
+        }
+
+        for (station = 0; station < ps.nrStations(); station++) {
+          for (sample = 0; sample < ps.nrPPFTaps() - 1 + ps.nrSamplesPerChannel(); sample++) {
+            for (ch = 0; ch < ps.nrChannelsPerSubband(); ch++) {
+              for (pol = 0; pol < NR_POLARIZATIONS; pol++) {
+                inputSamples[station][sample][ch][pol][0] = 2;                 // real
+                inputSamples[station][sample][ch][pol][1] = 3;                 // imag
+              }
+            }
+          }
+        }
+
+        firWeights.hostToDevice(CL_FALSE);
+        inputSamples.hostToDevice(CL_FALSE);
+        firFilterKernel.enqueue(queue, counter);
+        filteredData.deviceToHost(CL_TRUE);
+
+        nrErrors = 0;
+        for (station = 0; station < ps.nrStations(); station++) {
+          for (pol = 0; pol < NR_POLARIZATIONS; pol++) {
+            for (sample = 0; sample < ps.nrSamplesPerChannel(); sample++) {
+              for (ch = 0; ch < ps.nrChannelsPerSubband(); ch++) {
+                // Expected sum must also be scaled by 2 and 3, because weights are real only.
+                if (!fpEquals(filteredData[station][pol][sample][ch][0], 2 * expectedSums[ch])) {
+                  if (++nrErrors < 100) {                   // limit spam
+                    std::cerr << "3a.filtered[" << station << "][" << pol << "][" << sample << "][" << ch <<
+                    "][0] = " << filteredData[station][pol][sample][ch][0] << " 2*weight = " << 2 * expectedSums[ch] << std::endl;
+                  }
                 }
-                delete[] expectedSums;
-                if (nrErrors == 0) {
-                    std::cout << "FIR_FilterTest 3: test OK" << std::endl;
-                } else {
-                    std::cerr << "FIR_FilterTest 3: " << nrErrors << " unexpected output values" << std::endl;
-                    testOk = false;
+                if (!fpEquals(filteredData[station][pol][sample][ch][1], 3 * expectedSums[ch])) {
+                  if (++nrErrors < 100) {
+                    std::cerr << "3b.filtered[" << station << "][" << pol << "][" << sample << "][" << ch <<
+                    "][1] = " << filteredData[station][pol][sample][ch][1] << " 3*weight = " << 3 * expectedSums[ch] << std::endl;
+                  }
                 }
-
-
-                check(testOk, true);
+              }
             }
-        };
-    }
+          }
+        }
+        delete[] expectedSums;
+        if (nrErrors == 0) {
+          std::cout << "FIR_FilterTest 3: test OK" << std::endl;
+        } else {
+          std::cerr << "FIR_FilterTest 3: " << nrErrors << " unexpected output values" << std::endl;
+          testOk = false;
+        }
+
+
+        check(testOk, true);
+      }
+    };
+  }
 }
 #endif
 
diff --git a/RTCP/Cobalt/GPUProc/src/UnitTests/IncoherentStokesTest.h b/RTCP/Cobalt/GPUProc/src/UnitTests/IncoherentStokesTest.h
index 62234d7df97c94878e63e60560cba823b65c3f45..593fc728fe09519e6cb33f6eadc73a91a447707f 100644
--- a/RTCP/Cobalt/GPUProc/src/UnitTests/IncoherentStokesTest.h
+++ b/RTCP/Cobalt/GPUProc/src/UnitTests/IncoherentStokesTest.h
@@ -10,34 +10,34 @@
 
 namespace LOFAR
 {
-    namespace RTCP 
-    {        
+  namespace RTCP
+  {
 
-        struct IncoherentStokesTest : public UnitTest
-        {
-            IncoherentStokesTest(const Parset &ps)
-                :
-            UnitTest(ps, "BeamFormer/IncoherentStokes.cl")
-            {
-                if (ps.nrStations() >= 5 && ps.nrChannelsPerSubband() >= 14 && ps.nrSamplesPerChannel() >= 108) {
-                    MultiArraySharedBuffer<std::complex<float>, 4> inputData(boost::extents[ps.nrStations()][ps.nrChannelsPerSubband()][ps.nrSamplesPerChannel()][NR_POLARIZATIONS], queue, CL_MEM_WRITE_ONLY, CL_MEM_READ_ONLY);
-                    MultiArraySharedBuffer<float, 3> stokesData(boost::extents[ps.nrIncoherentStokes()][ps.nrSamplesPerChannel() / ps.incoherentStokesTimeIntegrationFactor()][ps.nrChannelsPerSubband()], queue, CL_MEM_READ_ONLY, CL_MEM_WRITE_ONLY);
-                    IncoherentStokesKernel kernel(ps, queue, program, stokesData, inputData);
+    struct IncoherentStokesTest : public UnitTest
+    {
+      IncoherentStokesTest(const Parset &ps)
+        :
+        UnitTest(ps, "BeamFormer/IncoherentStokes.cl")
+      {
+        if (ps.nrStations() >= 5 && ps.nrChannelsPerSubband() >= 14 && ps.nrSamplesPerChannel() >= 108) {
+          MultiArraySharedBuffer<std::complex<float>, 4> inputData(boost::extents[ps.nrStations()][ps.nrChannelsPerSubband()][ps.nrSamplesPerChannel()][NR_POLARIZATIONS], queue, CL_MEM_WRITE_ONLY, CL_MEM_READ_ONLY);
+          MultiArraySharedBuffer<float, 3> stokesData(boost::extents[ps.nrIncoherentStokes()][ps.nrSamplesPerChannel() / ps.incoherentStokesTimeIntegrationFactor()][ps.nrChannelsPerSubband()], queue, CL_MEM_READ_ONLY, CL_MEM_WRITE_ONLY);
+          IncoherentStokesKernel kernel(ps, queue, program, stokesData, inputData);
 
-                    inputData[4][13][107][0] = std::complex<float>(2, 3);
-                    inputData[4][13][107][1] = std::complex<float>(4, 5);
+          inputData[4][13][107][0] = std::complex<float>(2, 3);
+          inputData[4][13][107][1] = std::complex<float>(4, 5);
 
-                    inputData.hostToDevice(CL_FALSE);
-                    kernel.enqueue(queue, counter);
-                    stokesData.deviceToHost(CL_TRUE);
+          inputData.hostToDevice(CL_FALSE);
+          kernel.enqueue(queue, counter);
+          stokesData.deviceToHost(CL_TRUE);
 
-                    const static float expected[] = { 54, -28, 46, 4 };
+          const static float expected[] = { 54, -28, 46, 4 };
 
-                    for (unsigned stokes = 0; stokes < ps.nrIncoherentStokes(); stokes ++)
-                        check(stokesData[stokes][107 / ps.incoherentStokesTimeIntegrationFactor()][13], expected[stokes]);
-                }
-            }
-        };
-    }
+          for (unsigned stokes = 0; stokes < ps.nrIncoherentStokes(); stokes++)
+            check(stokesData[stokes][107 / ps.incoherentStokesTimeIntegrationFactor()][13], expected[stokes]);
+        }
+      }
+    };
+  }
 }
 #endif
diff --git a/RTCP/Cobalt/GPUProc/src/UnitTests/IntToFloatTest.h b/RTCP/Cobalt/GPUProc/src/UnitTests/IntToFloatTest.h
index 87bd61d81bfeffcd657210d63e67f5481ed42ae8..21984c9e56980b5372661347321f44cf12552aba 100644
--- a/RTCP/Cobalt/GPUProc/src/UnitTests/IntToFloatTest.h
+++ b/RTCP/Cobalt/GPUProc/src/UnitTests/IntToFloatTest.h
@@ -10,38 +10,38 @@
 
 namespace LOFAR
 {
-    namespace RTCP 
-    {        
-        struct IntToFloatTest : public UnitTest
-        {
-            IntToFloatTest(const Parset &ps)
-                :
-            UnitTest(ps, "BeamFormer/IntToFloat.cl")
-            {
-                if (ps.nrStations() >= 3 && ps.nrSamplesPerChannel() * ps.nrChannelsPerSubband() >= 10077) {
-                    MultiArraySharedBuffer<char, 4> inputData(boost::extents[ps.nrStations()][ps.nrSamplesPerChannel() * ps.nrChannelsPerSubband()][NR_POLARIZATIONS][ps.nrBytesPerComplexSample()], queue, CL_MEM_WRITE_ONLY, CL_MEM_READ_ONLY);
-                    MultiArraySharedBuffer<std::complex<float>, 3> outputData(boost::extents[ps.nrStations()][NR_POLARIZATIONS][ps.nrSamplesPerChannel() * ps.nrChannelsPerSubband()], queue, CL_MEM_READ_ONLY, CL_MEM_WRITE_ONLY);
-                    IntToFloatKernel kernel(ps, queue, program, outputData, inputData);
+  namespace RTCP
+  {
+    struct IntToFloatTest : public UnitTest
+    {
+      IntToFloatTest(const Parset &ps)
+        :
+        UnitTest(ps, "BeamFormer/IntToFloat.cl")
+      {
+        if (ps.nrStations() >= 3 && ps.nrSamplesPerChannel() * ps.nrChannelsPerSubband() >= 10077) {
+          MultiArraySharedBuffer<char, 4> inputData(boost::extents[ps.nrStations()][ps.nrSamplesPerChannel() * ps.nrChannelsPerSubband()][NR_POLARIZATIONS][ps.nrBytesPerComplexSample()], queue, CL_MEM_WRITE_ONLY, CL_MEM_READ_ONLY);
+          MultiArraySharedBuffer<std::complex<float>, 3> outputData(boost::extents[ps.nrStations()][NR_POLARIZATIONS][ps.nrSamplesPerChannel() * ps.nrChannelsPerSubband()], queue, CL_MEM_READ_ONLY, CL_MEM_WRITE_ONLY);
+          IntToFloatKernel kernel(ps, queue, program, outputData, inputData);
 
-                    switch (ps.nrBytesPerComplexSample()) {
-                    case 4 : reinterpret_cast<std::complex<short> &>(inputData[2][10076][1][0]) = 7;
-                        break;
+          switch (ps.nrBytesPerComplexSample()) {
+          case 4: reinterpret_cast<std::complex<short> &>(inputData[2][10076][1][0]) = 7;
+            break;
 
-                    case 2 : reinterpret_cast<std::complex<signed char> &>(inputData[2][10076][1][0]) = 7;
-                        break;
+          case 2: reinterpret_cast<std::complex<signed char> &>(inputData[2][10076][1][0]) = 7;
+            break;
 
-                    case 1 : reinterpret_cast<i4complex &>(inputData[2][10076][1][0]) = i4complex(7, 0);
-                        break;
-                    }
+          case 1: reinterpret_cast<i4complex &>(inputData[2][10076][1][0]) = i4complex(7, 0);
+            break;
+          }
 
-                    inputData.hostToDevice(CL_FALSE);
-                    kernel.enqueue(queue, counter);
-                    outputData.deviceToHost(CL_TRUE);
-                    check(outputData[2][1][10076], std::complex<float>(7.0f, 0));
-                }
-            }
-        };
+          inputData.hostToDevice(CL_FALSE);
+          kernel.enqueue(queue, counter);
+          outputData.deviceToHost(CL_TRUE);
+          check(outputData[2][1][10076], std::complex<float>(7.0f, 0));
+        }
+      }
+    };
 
-    }
+  }
 }
 #endif
diff --git a/RTCP/Cobalt/GPUProc/src/UnitTests/UHEP_BeamFormerTest.h b/RTCP/Cobalt/GPUProc/src/UnitTests/UHEP_BeamFormerTest.h
index 5de5fe02156ace74a86ded40a21b5607b7a61cb8..770078d2f5a86c2627a3cb24e7adfcbab9d1ada1 100644
--- a/RTCP/Cobalt/GPUProc/src/UnitTests/UHEP_BeamFormerTest.h
+++ b/RTCP/Cobalt/GPUProc/src/UnitTests/UHEP_BeamFormerTest.h
@@ -10,43 +10,43 @@
 
 namespace LOFAR
 {
-    namespace RTCP 
-    {  
-          struct UHEP_BeamFormerTest : public UnitTest
-        {
-            UHEP_BeamFormerTest(const Parset &ps)
-                :
-            UnitTest(ps, "UHEP/BeamFormer.cl")
-            {
-                if (ps.nrStations() >= 5 && (ps.nrSamplesPerChannel() + NR_STATION_FILTER_TAPS - 1) >= 13 && ps.nrSubbands() >= 7 && ps.nrTABs(0) >= 6) {
-                    MultiArraySharedBuffer<char, 5> inputSamples(boost::extents[ps.nrStations()][ps.nrSubbands()][ps.nrSamplesPerChannel() + NR_STATION_FILTER_TAPS - 1][NR_POLARIZATIONS][ps.nrBytesPerComplexSample()], queue, CL_MEM_WRITE_ONLY, CL_MEM_READ_ONLY);
-                    MultiArraySharedBuffer<std::complex<float>, 3> beamFormerWeights(boost::extents[ps.nrStations()][ps.nrSubbands()][ps.nrTABs(0)], queue, CL_MEM_WRITE_ONLY, CL_MEM_READ_ONLY);
-                    MultiArraySharedBuffer<std::complex<float>, 4> complexVoltages(boost::extents[ps.nrSubbands()][ps.nrSamplesPerChannel() + NR_STATION_FILTER_TAPS - 1][ps.nrTABs(0)][NR_POLARIZATIONS], queue, CL_MEM_READ_ONLY, CL_MEM_READ_WRITE);
-                    UHEP_BeamFormerKernel beamFormer(ps, program, complexVoltages, inputSamples, beamFormerWeights);
-
-                    switch (ps.nrBytesPerComplexSample()) {
-                    case 4 : reinterpret_cast<std::complex<short> &>(inputSamples[4][6][12][1][0]) = std::complex<short>(2, 3);
-                        break;
-
-                    case 2 : reinterpret_cast<std::complex<signed char> &>(inputSamples[4][6][12][1][0]) = std::complex<signed char>(2, 3);
-                        break;
-
-                    case 1 : reinterpret_cast<i4complex &>(inputSamples[4][6][12][1][0]) = i4complex(2, 3);
-                        break;
-                    }
-
-                    beamFormerWeights[4][6][5] = std::complex<float>(4, 5);
-
-                    inputSamples.hostToDevice(CL_FALSE);
-                    beamFormerWeights.hostToDevice(CL_FALSE);
-                    beamFormer.enqueue(queue, counter);
-                    complexVoltages.deviceToHost(CL_TRUE);
-
-                    check(complexVoltages[6][12][5][1], std::complex<float>(-7, 22));
-                }
-            }
-        };
-
-    }
+  namespace RTCP
+  {
+    struct UHEP_BeamFormerTest : public UnitTest
+    {
+      UHEP_BeamFormerTest(const Parset &ps)
+        :
+        UnitTest(ps, "UHEP/BeamFormer.cl")
+      {
+        if (ps.nrStations() >= 5 && (ps.nrSamplesPerChannel() + NR_STATION_FILTER_TAPS - 1) >= 13 && ps.nrSubbands() >= 7 && ps.nrTABs(0) >= 6) {
+          MultiArraySharedBuffer<char, 5> inputSamples(boost::extents[ps.nrStations()][ps.nrSubbands()][ps.nrSamplesPerChannel() + NR_STATION_FILTER_TAPS - 1][NR_POLARIZATIONS][ps.nrBytesPerComplexSample()], queue, CL_MEM_WRITE_ONLY, CL_MEM_READ_ONLY);
+          MultiArraySharedBuffer<std::complex<float>, 3> beamFormerWeights(boost::extents[ps.nrStations()][ps.nrSubbands()][ps.nrTABs(0)], queue, CL_MEM_WRITE_ONLY, CL_MEM_READ_ONLY);
+          MultiArraySharedBuffer<std::complex<float>, 4> complexVoltages(boost::extents[ps.nrSubbands()][ps.nrSamplesPerChannel() + NR_STATION_FILTER_TAPS - 1][ps.nrTABs(0)][NR_POLARIZATIONS], queue, CL_MEM_READ_ONLY, CL_MEM_READ_WRITE);
+          UHEP_BeamFormerKernel beamFormer(ps, program, complexVoltages, inputSamples, beamFormerWeights);
+
+          switch (ps.nrBytesPerComplexSample()) {
+          case 4: reinterpret_cast<std::complex<short> &>(inputSamples[4][6][12][1][0]) = std::complex<short>(2, 3);
+            break;
+
+          case 2: reinterpret_cast<std::complex<signed char> &>(inputSamples[4][6][12][1][0]) = std::complex<signed char>(2, 3);
+            break;
+
+          case 1: reinterpret_cast<i4complex &>(inputSamples[4][6][12][1][0]) = i4complex(2, 3);
+            break;
+          }
+
+          beamFormerWeights[4][6][5] = std::complex<float>(4, 5);
+
+          inputSamples.hostToDevice(CL_FALSE);
+          beamFormerWeights.hostToDevice(CL_FALSE);
+          beamFormer.enqueue(queue, counter);
+          complexVoltages.deviceToHost(CL_TRUE);
+
+          check(complexVoltages[6][12][5][1], std::complex<float>(-7, 22));
+        }
+      }
+    };
+
+  }
 }
-#endif 
\ No newline at end of file
+#endif
\ No newline at end of file
diff --git a/RTCP/Cobalt/GPUProc/src/UnitTests/UHEP_TransposeTest.h b/RTCP/Cobalt/GPUProc/src/UnitTests/UHEP_TransposeTest.h
index 1c077613fb2af7ba5dd71ddac981390df8621492..b945e2af4efdf213b676727dd6316216f7ca34cb 100644
--- a/RTCP/Cobalt/GPUProc/src/UnitTests/UHEP_TransposeTest.h
+++ b/RTCP/Cobalt/GPUProc/src/UnitTests/UHEP_TransposeTest.h
@@ -11,31 +11,31 @@
 
 namespace LOFAR
 {
-    namespace RTCP 
-    {   
-struct UHEP_TransposeTest : public UnitTest
-        {
-            UHEP_TransposeTest(const Parset &ps)
-                :
-            UnitTest(ps, "UHEP/Transpose.cl")
-            {
-                if (ps.nrSubbands() >= 19 && ps.nrSamplesPerChannel() + NR_STATION_FILTER_TAPS - 1 >= 175 && ps.nrTABs(0) >= 5) {
-                    MultiArraySharedBuffer<std::complex<float>, 4> transposedData(boost::extents[ps.nrTABs(0)][NR_POLARIZATIONS][ps.nrSamplesPerChannel() + NR_STATION_FILTER_TAPS - 1][512], queue, CL_MEM_READ_ONLY, CL_MEM_WRITE_ONLY);
-                    MultiArraySharedBuffer<std::complex<float>, 4> complexVoltages(boost::extents[ps.nrSubbands()][ps.nrSamplesPerChannel() + NR_STATION_FILTER_TAPS - 1][ps.nrTABs(0)][NR_POLARIZATIONS], queue, CL_MEM_READ_WRITE, CL_MEM_READ_ONLY);
-                    cl::Buffer devReverseSubbandMapping(context, CL_MEM_READ_ONLY, 512 * sizeof(int));
-                    UHEP_TransposeKernel transpose(ps, program, transposedData, complexVoltages, devReverseSubbandMapping);
+  namespace RTCP
+  {
+    struct UHEP_TransposeTest : public UnitTest
+    {
+      UHEP_TransposeTest(const Parset &ps)
+        :
+        UnitTest(ps, "UHEP/Transpose.cl")
+      {
+        if (ps.nrSubbands() >= 19 && ps.nrSamplesPerChannel() + NR_STATION_FILTER_TAPS - 1 >= 175 && ps.nrTABs(0) >= 5) {
+          MultiArraySharedBuffer<std::complex<float>, 4> transposedData(boost::extents[ps.nrTABs(0)][NR_POLARIZATIONS][ps.nrSamplesPerChannel() + NR_STATION_FILTER_TAPS - 1][512], queue, CL_MEM_READ_ONLY, CL_MEM_WRITE_ONLY);
+          MultiArraySharedBuffer<std::complex<float>, 4> complexVoltages(boost::extents[ps.nrSubbands()][ps.nrSamplesPerChannel() + NR_STATION_FILTER_TAPS - 1][ps.nrTABs(0)][NR_POLARIZATIONS], queue, CL_MEM_READ_WRITE, CL_MEM_READ_ONLY);
+          cl::Buffer devReverseSubbandMapping(context, CL_MEM_READ_ONLY, 512 * sizeof(int));
+          UHEP_TransposeKernel transpose(ps, program, transposedData, complexVoltages, devReverseSubbandMapping);
 
-                    complexVoltages[18][174][4][1] = std::complex<float>(24, 42);
+          complexVoltages[18][174][4][1] = std::complex<float>(24, 42);
 
-                    queue.enqueueWriteBuffer(devReverseSubbandMapping, CL_FALSE, 0, 512 * sizeof(int), reverseSubbandMapping);
-                    complexVoltages.hostToDevice(CL_FALSE);
-                    transpose.enqueue(queue, counter);
-                    transposedData.deviceToHost(CL_TRUE);
+          queue.enqueueWriteBuffer(devReverseSubbandMapping, CL_FALSE, 0, 512 * sizeof(int), reverseSubbandMapping);
+          complexVoltages.hostToDevice(CL_FALSE);
+          transpose.enqueue(queue, counter);
+          transposedData.deviceToHost(CL_TRUE);
 
-                    check(transposedData[4][1][174][38], std::complex<float>(24, 42));
-                }
-            }
-        };
-    }
+          check(transposedData[4][1][174][38], std::complex<float>(24, 42));
+        }
+      }
+    };
+  }
 }
 #endif
diff --git a/RTCP/Cobalt/GPUProc/src/UnitTests/UHEP_TriggerTest.h b/RTCP/Cobalt/GPUProc/src/UnitTests/UHEP_TriggerTest.h
index 81612fdc726cc0a3fa77a0b53c2e7e63889f1849..4f54da5581165d5afd293d9249df651a58537b4e 100644
--- a/RTCP/Cobalt/GPUProc/src/UnitTests/UHEP_TriggerTest.h
+++ b/RTCP/Cobalt/GPUProc/src/UnitTests/UHEP_TriggerTest.h
@@ -11,33 +11,33 @@
 
 namespace LOFAR
 {
-    namespace RTCP 
-    {   
-        struct UHEP_TriggerTest : public UnitTest
-        {
-            UHEP_TriggerTest(const Parset &ps)
-                :
-            UnitTest(ps, "UHEP/Trigger.cl")
-            {
-                if (ps.nrTABs(0) >= 4 && 1024 * ps.nrSamplesPerChannel() > 100015) {
-                    MultiArraySharedBuffer<float, 3> inputData(boost::extents[ps.nrTABs(0)][NR_POLARIZATIONS][ps.nrSamplesPerChannel() * 1024], queue, CL_MEM_WRITE_ONLY, CL_MEM_READ_ONLY);
-                    MultiArraySharedBuffer<TriggerInfo, 1> triggerInfo(boost::extents[ps.nrTABs(0)], queue, CL_MEM_READ_ONLY, CL_MEM_WRITE_ONLY);
-                    UHEP_TriggerKernel trigger(ps, program, triggerInfo, inputData);
+  namespace RTCP
+  {
+    struct UHEP_TriggerTest : public UnitTest
+    {
+      UHEP_TriggerTest(const Parset &ps)
+        :
+        UnitTest(ps, "UHEP/Trigger.cl")
+      {
+        if (ps.nrTABs(0) >= 4 && 1024 * ps.nrSamplesPerChannel() > 100015) {
+          MultiArraySharedBuffer<float, 3> inputData(boost::extents[ps.nrTABs(0)][NR_POLARIZATIONS][ps.nrSamplesPerChannel() * 1024], queue, CL_MEM_WRITE_ONLY, CL_MEM_READ_ONLY);
+          MultiArraySharedBuffer<TriggerInfo, 1> triggerInfo(boost::extents[ps.nrTABs(0)], queue, CL_MEM_READ_ONLY, CL_MEM_WRITE_ONLY);
+          UHEP_TriggerKernel trigger(ps, program, triggerInfo, inputData);
 
-                    inputData[3][1][100015] = 1000;
+          inputData[3][1][100015] = 1000;
 
-                    inputData.hostToDevice(CL_FALSE);
-                    trigger.enqueue(queue, counter);
-                    triggerInfo.deviceToHost(CL_TRUE);
+          inputData.hostToDevice(CL_FALSE);
+          trigger.enqueue(queue, counter);
+          triggerInfo.deviceToHost(CL_TRUE);
 
-                    std::cout << "trigger info: mean = " << triggerInfo[3].mean << ", variance = " << triggerInfo[3].variance << ", bestValue = " << triggerInfo[3].bestValue << ", bestApproxIndex = " << triggerInfo[3].bestApproxIndex << std::endl;
-                    //check(triggerInfo[3].mean, (float) (1000.0f * 1000.0f) / (float) (ps.nrSamplesPerChannel() * 1024));
-                    check(triggerInfo[3].bestValue, 1000.0f * 1000.0f);
-                    check(triggerInfo[3].bestApproxIndex, 100016U);
-                }
-            }
-        };
+          std::cout << "trigger info: mean = " << triggerInfo[3].mean << ", variance = " << triggerInfo[3].variance << ", bestValue = " << triggerInfo[3].bestValue << ", bestApproxIndex = " << triggerInfo[3].bestApproxIndex << std::endl;
+          //check(triggerInfo[3].mean, (float) (1000.0f * 1000.0f) / (float) (ps.nrSamplesPerChannel() * 1024));
+          check(triggerInfo[3].bestValue, 1000.0f * 1000.0f);
+          check(triggerInfo[3].bestApproxIndex, 100016U);
+        }
+      }
+    };
 
-    }
+  }
 }
 #endif
\ No newline at end of file
diff --git a/RTCP/Cobalt/GPUProc/src/WorkQueues/BeamFormerWorkQueue.cc b/RTCP/Cobalt/GPUProc/src/WorkQueues/BeamFormerWorkQueue.cc
index f423b7d2f2b9cfb04e832ddbe80bed2f5b43765a..ff4b7686906111df190e3d6d52e02c0d2500ec96 100644
--- a/RTCP/Cobalt/GPUProc/src/WorkQueues/BeamFormerWorkQueue.cc
+++ b/RTCP/Cobalt/GPUProc/src/WorkQueues/BeamFormerWorkQueue.cc
@@ -1,4 +1,4 @@
-#include "lofar_config.h"    
+#include "lofar_config.h"
 
 #include "Common/LofarLogger.h"
 #include "global_defines.h"
@@ -25,113 +25,113 @@
 
 namespace LOFAR
 {
-    namespace  RTCP 
-    {     
-        
-        BeamFormerWorkQueue::BeamFormerWorkQueue(BeamFormerPipeline &pipeline, unsigned gpuNumber)
-            :
-        WorkQueue( pipeline.context,pipeline.devices[gpuNumber], gpuNumber, pipeline.ps),
-            pipeline(pipeline),
-            inputSamples(boost::extents[ps.nrStations()][ps.nrSamplesPerChannel() * ps.nrChannelsPerSubband()][NR_POLARIZATIONS][ps.nrBytesPerComplexSample()], queue, CL_MEM_WRITE_ONLY, CL_MEM_READ_ONLY),
-            devFilteredData(pipeline.context, CL_MEM_READ_WRITE, ps.nrStations() * NR_POLARIZATIONS * ps.nrSamplesPerChannel() * ps.nrChannelsPerSubband() * sizeof(std::complex<float>)),
-            bandPassCorrectionWeights(boost::extents[ps.nrChannelsPerSubband()], queue, CL_MEM_WRITE_ONLY, CL_MEM_READ_ONLY),
-            delaysAtBegin(boost::extents[ps.nrBeams()][ps.nrStations()][NR_POLARIZATIONS], queue, CL_MEM_WRITE_ONLY, CL_MEM_READ_ONLY),
-            delaysAfterEnd(boost::extents[ps.nrBeams()][ps.nrStations()][NR_POLARIZATIONS], queue, CL_MEM_WRITE_ONLY, CL_MEM_READ_ONLY),
-            phaseOffsets(boost::extents[ps.nrBeams()][NR_POLARIZATIONS], queue, CL_MEM_WRITE_ONLY, CL_MEM_READ_ONLY),
-            devCorrectedData(cl::Buffer(pipeline.context, CL_MEM_READ_WRITE, ps.nrStations() * ps.nrChannelsPerSubband() * ps.nrSamplesPerChannel() * NR_POLARIZATIONS * sizeof(std::complex<float>))),
-            beamFormerWeights(boost::extents[ps.nrStations()][ps.nrChannelsPerSubband()][ps.nrTABs(0)], queue, CL_MEM_WRITE_ONLY, CL_MEM_READ_ONLY),
-            devComplexVoltages(cl::Buffer(pipeline.context, CL_MEM_READ_WRITE, ps.nrChannelsPerSubband() * ps.nrSamplesPerChannel() * ps.nrTABs(0) * NR_POLARIZATIONS * sizeof(std::complex<float>))),
-            //transposedComplexVoltages(boost::extents[ps.nrTABs(0)][NR_POLARIZATIONS][ps.nrSamplesPerChannel()][ps.nrChannelsPerSubband()], queue, CL_MEM_READ_ONLY, CL_MEM_READ_WRITE)
-            transposedComplexVoltages(boost::extents[ps.nrTABs(0)][NR_POLARIZATIONS][ps.nrChannelsPerSubband()][ps.nrSamplesPerChannel()], queue, CL_MEM_READ_ONLY, CL_MEM_READ_WRITE),
-            DMs(boost::extents[ps.nrTABs(0)], queue, CL_MEM_READ_ONLY, CL_MEM_WRITE_ONLY),
-
-            intToFloatKernel(ps, queue, pipeline.intToFloatProgram, devFilteredData, inputSamples),
-            fftKernel(ps, pipeline.context, devFilteredData),
-            delayAndBandPassKernel(ps, pipeline.delayAndBandPassProgram, devCorrectedData, devFilteredData, delaysAtBegin, delaysAfterEnd, phaseOffsets, bandPassCorrectionWeights),
-            beamFormerKernel(ps, pipeline.beamFormerProgram, devComplexVoltages, devCorrectedData, beamFormerWeights),
-            transposeKernel(ps, pipeline.transposeProgram, transposedComplexVoltages, devComplexVoltages),
-            dedispersionForwardFFTkernel(ps, pipeline.context, transposedComplexVoltages),
-            dedispersionBackwardFFTkernel(ps, pipeline.context, transposedComplexVoltages),
-            dedispersionChirpKernel(ps, pipeline.dedispersionChirpProgram, queue, transposedComplexVoltages, DMs)
-
-        {
-            if (ps.correctBandPass()) {
-                BandPass::computeCorrectionFactors(bandPassCorrectionWeights.origin(), ps.nrChannelsPerSubband());
-                bandPassCorrectionWeights.hostToDevice(CL_TRUE);
-            }
-        }
+  namespace  RTCP
+  {
+
+    BeamFormerWorkQueue::BeamFormerWorkQueue(BeamFormerPipeline &pipeline, unsigned gpuNumber)
+      :
+      WorkQueue( pipeline.context,pipeline.devices[gpuNumber], gpuNumber, pipeline.ps),
+      pipeline(pipeline),
+      inputSamples(boost::extents[ps.nrStations()][ps.nrSamplesPerChannel() * ps.nrChannelsPerSubband()][NR_POLARIZATIONS][ps.nrBytesPerComplexSample()], queue, CL_MEM_WRITE_ONLY, CL_MEM_READ_ONLY),
+      devFilteredData(pipeline.context, CL_MEM_READ_WRITE, ps.nrStations() * NR_POLARIZATIONS * ps.nrSamplesPerChannel() * ps.nrChannelsPerSubband() * sizeof(std::complex<float>)),
+      bandPassCorrectionWeights(boost::extents[ps.nrChannelsPerSubband()], queue, CL_MEM_WRITE_ONLY, CL_MEM_READ_ONLY),
+      delaysAtBegin(boost::extents[ps.nrBeams()][ps.nrStations()][NR_POLARIZATIONS], queue, CL_MEM_WRITE_ONLY, CL_MEM_READ_ONLY),
+      delaysAfterEnd(boost::extents[ps.nrBeams()][ps.nrStations()][NR_POLARIZATIONS], queue, CL_MEM_WRITE_ONLY, CL_MEM_READ_ONLY),
+      phaseOffsets(boost::extents[ps.nrBeams()][NR_POLARIZATIONS], queue, CL_MEM_WRITE_ONLY, CL_MEM_READ_ONLY),
+      devCorrectedData(cl::Buffer(pipeline.context, CL_MEM_READ_WRITE, ps.nrStations() * ps.nrChannelsPerSubband() * ps.nrSamplesPerChannel() * NR_POLARIZATIONS * sizeof(std::complex<float>))),
+      beamFormerWeights(boost::extents[ps.nrStations()][ps.nrChannelsPerSubband()][ps.nrTABs(0)], queue, CL_MEM_WRITE_ONLY, CL_MEM_READ_ONLY),
+      devComplexVoltages(cl::Buffer(pipeline.context, CL_MEM_READ_WRITE, ps.nrChannelsPerSubband() * ps.nrSamplesPerChannel() * ps.nrTABs(0) * NR_POLARIZATIONS * sizeof(std::complex<float>))),
+      //transposedComplexVoltages(boost::extents[ps.nrTABs(0)][NR_POLARIZATIONS][ps.nrSamplesPerChannel()][ps.nrChannelsPerSubband()], queue, CL_MEM_READ_ONLY, CL_MEM_READ_WRITE)
+      transposedComplexVoltages(boost::extents[ps.nrTABs(0)][NR_POLARIZATIONS][ps.nrChannelsPerSubband()][ps.nrSamplesPerChannel()], queue, CL_MEM_READ_ONLY, CL_MEM_READ_WRITE),
+      DMs(boost::extents[ps.nrTABs(0)], queue, CL_MEM_READ_ONLY, CL_MEM_WRITE_ONLY),
+
+      intToFloatKernel(ps, queue, pipeline.intToFloatProgram, devFilteredData, inputSamples),
+      fftKernel(ps, pipeline.context, devFilteredData),
+      delayAndBandPassKernel(ps, pipeline.delayAndBandPassProgram, devCorrectedData, devFilteredData, delaysAtBegin, delaysAfterEnd, phaseOffsets, bandPassCorrectionWeights),
+      beamFormerKernel(ps, pipeline.beamFormerProgram, devComplexVoltages, devCorrectedData, beamFormerWeights),
+      transposeKernel(ps, pipeline.transposeProgram, transposedComplexVoltages, devComplexVoltages),
+      dedispersionForwardFFTkernel(ps, pipeline.context, transposedComplexVoltages),
+      dedispersionBackwardFFTkernel(ps, pipeline.context, transposedComplexVoltages),
+      dedispersionChirpKernel(ps, pipeline.dedispersionChirpProgram, queue, transposedComplexVoltages, DMs)
+
+    {
+      if (ps.correctBandPass()) {
+        BandPass::computeCorrectionFactors(bandPassCorrectionWeights.origin(), ps.nrChannelsPerSubband());
+        bandPassCorrectionWeights.hostToDevice(CL_TRUE);
+      }
+    }
 
 
-        void BeamFormerWorkQueue::doWork()
-        {
-            //queue.enqueueWriteBuffer(devFIRweights, CL_TRUE, 0, firWeightsSize, firFilterWeights);
-            bandPassCorrectionWeights.hostToDevice(CL_TRUE);
-            DMs.hostToDevice(CL_TRUE);
+    void BeamFormerWorkQueue::doWork()
+    {
+      //queue.enqueueWriteBuffer(devFIRweights, CL_TRUE, 0, firWeightsSize, firFilterWeights);
+      bandPassCorrectionWeights.hostToDevice(CL_TRUE);
+      DMs.hostToDevice(CL_TRUE);
 
-            double startTime = ps.startTime(), currentTime, stopTime = ps.stopTime(), blockTime = ps.CNintegrationTime();
+      double startTime = ps.startTime(), currentTime, stopTime = ps.stopTime(), blockTime = ps.CNintegrationTime();
 
 #pragma omp barrier
 
-            double executionStartTime = omp_get_wtime();
+      double executionStartTime = omp_get_wtime();
 
-            for (unsigned block = 0; (currentTime = startTime + block * blockTime) < stopTime; block ++) {
+      for (unsigned block = 0; (currentTime = startTime + block * blockTime) < stopTime; block++) {
 #pragma omp single nowait
 #pragma omp critical (cout)
-                std::cout << "block = " << block << ", time = " << to_simple_string(from_ustime_t(currentTime)) << std::endl;
+        std::cout << "block = " << block << ", time = " << to_simple_string(from_ustime_t(currentTime)) << std::endl;
 
-                memset(delaysAtBegin.origin(), 0, delaysAtBegin.bytesize());
-                memset(delaysAfterEnd.origin(), 0, delaysAfterEnd.bytesize());
-                memset(phaseOffsets.origin(), 0, phaseOffsets.bytesize());
+        memset(delaysAtBegin.origin(), 0, delaysAtBegin.bytesize());
+        memset(delaysAfterEnd.origin(), 0, delaysAfterEnd.bytesize());
+        memset(phaseOffsets.origin(), 0, phaseOffsets.bytesize());
 
-                // FIXME!!!
-                if (ps.nrStations() >= 3)
-                    delaysAtBegin[0][2][0] = 1e-6, delaysAfterEnd[0][2][0] = 1.1e-6;
+        // FIXME!!!
+        if (ps.nrStations() >= 3)
+          delaysAtBegin[0][2][0] = 1e-6, delaysAfterEnd[0][2][0] = 1.1e-6;
 
-                delaysAtBegin.hostToDevice(CL_FALSE);
-                delaysAfterEnd.hostToDevice(CL_FALSE);
-                phaseOffsets.hostToDevice(CL_FALSE);
-                beamFormerWeights.hostToDevice(CL_FALSE);
+        delaysAtBegin.hostToDevice(CL_FALSE);
+        delaysAfterEnd.hostToDevice(CL_FALSE);
+        phaseOffsets.hostToDevice(CL_FALSE);
+        beamFormerWeights.hostToDevice(CL_FALSE);
 
 #pragma omp for schedule(dynamic), nowait
-                for (unsigned subband = 0; subband < ps.nrSubbands(); subband ++) {
+        for (unsigned subband = 0; subband < ps.nrSubbands(); subband++) {
 #if 1
-                        {
+          {
 #if defined USE_B7015
-                            OMP_ScopedLock scopedLock(pipeline.hostToDeviceLock[gpu / 2]);
+            OMP_ScopedLock scopedLock(pipeline.hostToDeviceLock[gpu / 2]);
 #endif
-                            inputSamples.hostToDevice(CL_TRUE);
-                            pipeline.samplesCounter.doOperation(inputSamples.event, 0, 0, inputSamples.bytesize());
-                        }
+            inputSamples.hostToDevice(CL_TRUE);
+            pipeline.samplesCounter.doOperation(inputSamples.event, 0, 0, inputSamples.bytesize());
+          }
 #endif
 
-                        //#pragma omp critical (GPU)
-                        {
-                            if (ps.nrChannelsPerSubband() > 1) {
-                                intToFloatKernel.enqueue(queue, pipeline.intToFloatCounter);
-                                fftKernel.enqueue(queue, pipeline.fftCounter);
-                            }
-
-                            delayAndBandPassKernel.enqueue(queue, pipeline.delayAndBandPassCounter, subband);
-                            beamFormerKernel.enqueue(queue, pipeline.beamFormerCounter);
-                            transposeKernel.enqueue(queue, pipeline.transposeCounter);
-                            dedispersionForwardFFTkernel.enqueue(queue, pipeline.dedispersionForwardFFTcounter);
-                            dedispersionChirpKernel.enqueue(queue, pipeline.dedispersionChirpCounter, ps.subbandToFrequencyMapping()[subband]);
-                            dedispersionBackwardFFTkernel.enqueue(queue, pipeline.dedispersionBackwardFFTcounter);
-
-                            queue.finish();
-                        }
-
-                        //queue.enqueueReadBuffer(devComplexVoltages, CL_TRUE, 0, hostComplexVoltages.bytesize(), hostComplexVoltages.origin());
-                        //dedispersedData.deviceToHost(CL_TRUE);
-                }
+          //#pragma omp critical (GPU)
+          {
+            if (ps.nrChannelsPerSubband() > 1) {
+              intToFloatKernel.enqueue(queue, pipeline.intToFloatCounter);
+              fftKernel.enqueue(queue, pipeline.fftCounter);
             }
 
+            delayAndBandPassKernel.enqueue(queue, pipeline.delayAndBandPassCounter, subband);
+            beamFormerKernel.enqueue(queue, pipeline.beamFormerCounter);
+            transposeKernel.enqueue(queue, pipeline.transposeCounter);
+            dedispersionForwardFFTkernel.enqueue(queue, pipeline.dedispersionForwardFFTcounter);
+            dedispersionChirpKernel.enqueue(queue, pipeline.dedispersionChirpCounter, ps.subbandToFrequencyMapping()[subband]);
+            dedispersionBackwardFFTkernel.enqueue(queue, pipeline.dedispersionBackwardFFTcounter);
+
+            queue.finish();
+          }
+
+          //queue.enqueueReadBuffer(devComplexVoltages, CL_TRUE, 0, hostComplexVoltages.bytesize(), hostComplexVoltages.origin());
+          //dedispersedData.deviceToHost(CL_TRUE);
+        }
+      }
+
 #pragma omp barrier
 
 #pragma omp master
-            if (!profiling)
-#pragma omp critical (cout)
-                std::cout << "run time = " << omp_get_wtime() - executionStartTime << std::endl;
-        }
+      if (!profiling)
+                             #pragma omp critical (cout)
+        std::cout << "run time = " << omp_get_wtime() - executionStartTime << std::endl;
     }
+  }
 }
diff --git a/RTCP/Cobalt/GPUProc/src/WorkQueues/BeamFormerWorkQueue.h b/RTCP/Cobalt/GPUProc/src/WorkQueues/BeamFormerWorkQueue.h
index b7dae9eaf22fe3dd9f7031c47f07abd8ec3e99df..c572642c8b5ee3a6a51bab928569d27c41d4c18a 100644
--- a/RTCP/Cobalt/GPUProc/src/WorkQueues/BeamFormerWorkQueue.h
+++ b/RTCP/Cobalt/GPUProc/src/WorkQueues/BeamFormerWorkQueue.h
@@ -1,7 +1,7 @@
 #ifndef GPUPROC_BEAMFORMERWORKQUEUE_H
 #define GPUPROC_BEAMFORMERWORKQUEUE_H
 
-#include "lofar_config.h"    
+#include "lofar_config.h"
 
 #include "Common/LofarLogger.h"
 #include "global_defines.h"
@@ -29,39 +29,39 @@
 
 namespace LOFAR
 {
-    namespace  RTCP 
-    {     
-                class BeamFormerWorkQueue : public WorkQueue
-        {
-        public:
-            BeamFormerWorkQueue(BeamFormerPipeline &, unsigned queueNumber);
+  namespace  RTCP
+  {
+    class BeamFormerWorkQueue : public WorkQueue
+    {
+    public:
+      BeamFormerWorkQueue(BeamFormerPipeline &, unsigned queueNumber);
 
-            void doWork();
+      void doWork();
 
-            BeamFormerPipeline	&pipeline;
+      BeamFormerPipeline  &pipeline;
 
-            MultiArraySharedBuffer<char, 4>		   inputSamples;
-            cl::Buffer					   devFilteredData;
-            MultiArraySharedBuffer<float, 1>		   bandPassCorrectionWeights;
-            MultiArraySharedBuffer<float, 3>		   delaysAtBegin, delaysAfterEnd;
-            MultiArraySharedBuffer<float, 2>		   phaseOffsets;
-            cl::Buffer					   devCorrectedData;
-            MultiArraySharedBuffer<std::complex<float>, 3> beamFormerWeights;
-            cl::Buffer					   devComplexVoltages;
-            MultiArraySharedBuffer<std::complex<float>, 4> transposedComplexVoltages;
-            MultiArraySharedBuffer<float, 1>		   DMs;
+      MultiArraySharedBuffer<char, 4>                inputSamples;
+      cl::Buffer devFilteredData;
+      MultiArraySharedBuffer<float, 1>               bandPassCorrectionWeights;
+      MultiArraySharedBuffer<float, 3>               delaysAtBegin, delaysAfterEnd;
+      MultiArraySharedBuffer<float, 2>               phaseOffsets;
+      cl::Buffer devCorrectedData;
+      MultiArraySharedBuffer<std::complex<float>, 3> beamFormerWeights;
+      cl::Buffer devComplexVoltages;
+      MultiArraySharedBuffer<std::complex<float>, 4> transposedComplexVoltages;
+      MultiArraySharedBuffer<float, 1>               DMs;
 
-        private:
-            IntToFloatKernel intToFloatKernel;
-            Filter_FFT_Kernel fftKernel;
-            DelayAndBandPassKernel delayAndBandPassKernel;
-            BeamFormerKernel beamFormerKernel;
-            BeamFormerTransposeKernel transposeKernel;
-            DedispersionForwardFFTkernel dedispersionForwardFFTkernel;
-            DedispersionBackwardFFTkernel dedispersionBackwardFFTkernel;
-            DedispersionChirpKernel dedispersionChirpKernel;
-        };
+    private:
+      IntToFloatKernel intToFloatKernel;
+      Filter_FFT_Kernel fftKernel;
+      DelayAndBandPassKernel delayAndBandPassKernel;
+      BeamFormerKernel beamFormerKernel;
+      BeamFormerTransposeKernel transposeKernel;
+      DedispersionForwardFFTkernel dedispersionForwardFFTkernel;
+      DedispersionBackwardFFTkernel dedispersionBackwardFFTkernel;
+      DedispersionChirpKernel dedispersionChirpKernel;
+    };
 
-    }
+  }
 }
 #endif
diff --git a/RTCP/Cobalt/GPUProc/src/WorkQueues/CorrelatorWorkQueue.cc b/RTCP/Cobalt/GPUProc/src/WorkQueues/CorrelatorWorkQueue.cc
index bc48a92f26ba045ffb220428b4a51dc6b9820d3e..cbb84dc8f1c5b85178abb516120ff96381980e07 100644
--- a/RTCP/Cobalt/GPUProc/src/WorkQueues/CorrelatorWorkQueue.cc
+++ b/RTCP/Cobalt/GPUProc/src/WorkQueues/CorrelatorWorkQueue.cc
@@ -1,4 +1,4 @@
-#include "lofar_config.h"    
+#include "lofar_config.h"
 
 #include "Common/LofarLogger.h"
 #include "CL/cl.hpp"
@@ -21,29 +21,29 @@
 
 namespace LOFAR
 {
-  namespace  RTCP 
-  {     
-    CorrelatorWorkQueue::CorrelatorWorkQueue(const Parset	&parset,
-      cl::Context &context, cl::Device	&device, unsigned gpuNumber,
-            CorrelatorPipelinePrograms & programs,
-      FilterBank &filterBank
-      )
+  namespace  RTCP
+  {
+    CorrelatorWorkQueue::CorrelatorWorkQueue(const Parset       &parset,
+                                             cl::Context &context, cl::Device  &device, unsigned gpuNumber,
+                                             CorrelatorPipelinePrograms & programs,
+                                             FilterBank &filterBank
+                                             )
       :
-    WorkQueue( context, device, gpuNumber, parset),
+      WorkQueue( context, device, gpuNumber, parset),
       devFIRweights(context, CL_MEM_READ_ONLY, ps.nrChannelsPerSubband() * NR_TAPS * sizeof(float)),
       devCorrectedData(context, CL_MEM_READ_WRITE, ps.nrStations() * NR_POLARIZATIONS * ps.nrSamplesPerSubband() * sizeof(std::complex<float>)),
       devFilteredData(context, CL_MEM_READ_WRITE,
-      std::max(ps.nrStations() * NR_POLARIZATIONS * ps.nrSamplesPerSubband() * sizeof(std::complex<float>),
-      ps.nrBaselines() * ps.nrChannelsPerSubband() * NR_POLARIZATIONS * NR_POLARIZATIONS * sizeof(std::complex<float>))),
+                      std::max(ps.nrStations() * NR_POLARIZATIONS * ps.nrSamplesPerSubband() * sizeof(std::complex<float>),
+                               ps.nrBaselines() * ps.nrChannelsPerSubband() * NR_POLARIZATIONS * NR_POLARIZATIONS * sizeof(std::complex<float>))),
       bandPassCorrectionWeights(boost::extents[ps.nrChannelsPerSubband()], queue, CL_MEM_WRITE_ONLY, CL_MEM_READ_ONLY),
 
       inputData(ps.nrBeams(),
-      ps.nrStations(), 
-      NR_POLARIZATIONS, 
-      (ps.nrSamplesPerChannel() + NR_TAPS - 1) * ps.nrChannelsPerSubband(),
-      ps.nrBytesPerComplexSample(),
-      queue,
-      devCorrectedData), 
+                ps.nrStations(),
+                NR_POLARIZATIONS,
+                (ps.nrSamplesPerChannel() + NR_TAPS - 1) * ps.nrChannelsPerSubband(),
+                ps.nrBytesPerComplexSample(),
+                queue,
+                devCorrectedData),
       visibilities(boost::extents[ps.nrBaselines()][ps.nrChannelsPerSubband()][NR_POLARIZATIONS][NR_POLARIZATIONS], queue, CL_MEM_READ_ONLY, devFilteredData),
       firFilterKernel(ps, queue, programs.firFilterProgram, devFilteredData, inputData.inputSamples, devFIRweights),
 
@@ -56,7 +56,7 @@ namespace LOFAR
       correlatorKernel(ps, queue, programs.correlatorProgram, visibilities, devCorrectedData)
 #endif
     {
-            // create all the counters
+      // create all the counters
       // Move the FIR filter weight to the GPU
 #if defined USE_NEW_CORRELATOR
       addCounter("compute - cor.triangle");
@@ -86,7 +86,7 @@ namespace LOFAR
 
       queue.enqueueWriteBuffer(devFIRweights, CL_TRUE, 0, ps.nrChannelsPerSubband() * NR_TAPS * sizeof(float), filterBank.getWeights().origin());
 
-      if (ps.correctBandPass()) 
+      if (ps.correctBandPass())
       {
         BandPass::computeCorrectionFactors(bandPassCorrectionWeights.origin(), ps.nrChannelsPerSubband());
         bandPassCorrectionWeights.hostToDevice(CL_TRUE);
@@ -134,16 +134,16 @@ namespace LOFAR
       inputData.phaseOffsets.hostToDevice(CL_FALSE);
 
       if (ps.nrChannelsPerSubband() > 1) {
-                firFilterKernel.enqueue(queue, *counters["compute - FIR"]);
-                fftKernel.enqueue(queue, *counters["compute - FFT"]);
+        firFilterKernel.enqueue(queue, *counters["compute - FIR"]);
+        fftKernel.enqueue(queue, *counters["compute - FFT"]);
       }
 
-            delayAndBandPassKernel.enqueue(queue, *counters["compute - delay/bp"], subband);
+      delayAndBandPassKernel.enqueue(queue, *counters["compute - delay/bp"], subband);
 #if defined USE_NEW_CORRELATOR
-            correlateTriangleKernel.enqueue(queue, *counters["compute - cor.triangle"]);
-            correlateRectangleKernel.enqueue(queue, *counters["compute - cor.rectangle"]);
+      correlateTriangleKernel.enqueue(queue, *counters["compute - cor.triangle"]);
+      correlateRectangleKernel.enqueue(queue, *counters["compute - cor.rectangle"]);
 #else
-            correlatorKernel.enqueue(queue, *counters["compute - correlator"]);
+      correlatorKernel.enqueue(queue, *counters["compute - correlator"]);
 #endif
 
       // ***** The GPU will be occupied for a while, do some calculations in the
@@ -166,7 +166,7 @@ namespace LOFAR
         OMP_ScopedLock scopedLock(pipeline.deviceToHostLock[gpu / 2]);
 #endif
         visibilities.deviceToHost(CL_TRUE);
-                counters["output - visibilities"]->doOperation(visibilities.event, 0, visibilities.bytesize(), 0);
+        counters["output - visibilities"]->doOperation(visibilities.event, 0, visibilities.bytesize(), 0);
 
         timers["GPU - output"]->stop();
       }
@@ -189,16 +189,16 @@ namespace LOFAR
       // fill it with the header data from the stream
       inputStream->read(&header_object, sizeof header_object);
 
-      // validate that the data to be received is of the correct size for the target buffer        
-      ASSERTSTR(subband == header_object.subband, 
-        "Expected subband " << subband << ", got subband " 
-        << header_object.subband);
+      // validate that the data to be received is of the correct size for the target buffer
+      ASSERTSTR(subband == header_object.subband,
+                "Expected subband " << subband << ", got subband "
+                                    << header_object.subband);
       ASSERTSTR(subbandSize == header_object.nrSamples * header_object.sampleSize,
-        "Expected " << subbandSize << " bytes, got " 
-        << header_object.nrSamples * header_object.sampleSize 
-        << " bytes (= " << header_object.nrSamples 
-        << " samples * " << header_object.sampleSize 
-        << " bytes/sample)");
+                "Expected " << subbandSize << " bytes, got "
+                            << header_object.nrSamples * header_object.sampleSize
+                            << " bytes (= " << header_object.nrSamples
+                            << " samples * " << header_object.sampleSize
+                            << " bytes/sample)");
 
       // read data into the shared buffer: This can be loaded into the gpu with a single command later on
       inputStream->read(inputSamples[stationIdx].origin(), subbandSize);
@@ -214,17 +214,17 @@ namespace LOFAR
       // extract delays for the stationion beam
       struct SubbandMetaData::beamInfo &beamInfo_object = metaData.stationBeam;
       // assign the delays
-      
-      for (unsigned pol = 0; pol < NR_POLARIZATIONS; pol++) 
+
+      for (unsigned pol = 0; pol < NR_POLARIZATIONS; pol++)
       {
-        delaysAtBegin[beamIdx][stationIdx][pol]  = beamInfo_object.delayAtBegin;
+        delaysAtBegin[beamIdx][stationIdx][pol] = beamInfo_object.delayAtBegin;
         delaysAfterEnd[beamIdx][stationIdx][pol] = beamInfo_object.delayAfterEnd;
-        phaseOffsets[stationIdx][pol] = 0.0;  
+        phaseOffsets[stationIdx][pol] = 0.0;
       }
     }
 
-            // flag the input samples.
-    void WorkQueueInputData::flagInputSamples(unsigned station, 
+    // flag the input samples.
+    void WorkQueueInputData::flagInputSamples(unsigned station,
                                               const SubbandMetaData& metaData)
     {
       // Get the flags that indicate missing data samples as a vector of
@@ -239,8 +239,8 @@ namespace LOFAR
       size_t stride = inputSamples[station][0].num_elements();
 
       // Zero the bytes in the input data for the flagged ranges.
-      for(SparseSet<unsigned>::const_iterator it = flags.getRanges().begin(); 
-          it != flags.getRanges().end(); ++it) 
+      for(SparseSet<unsigned>::const_iterator it = flags.getRanges().begin();
+          it != flags.getRanges().end(); ++it)
       {
         void *offset = inputSamples[station][it->begin].origin();
         size_t size = stride * (it->end - it->begin) * sizeof_sample;
diff --git a/RTCP/Cobalt/GPUProc/src/WorkQueues/CorrelatorWorkQueue.h b/RTCP/Cobalt/GPUProc/src/WorkQueues/CorrelatorWorkQueue.h
index 4ec14d2b96634956ad9896224ad7d702b559c899..04c4b355b960941e7055b33cb6f6a3da51ca6287 100644
--- a/RTCP/Cobalt/GPUProc/src/WorkQueues/CorrelatorWorkQueue.h
+++ b/RTCP/Cobalt/GPUProc/src/WorkQueues/CorrelatorWorkQueue.h
@@ -25,30 +25,31 @@
 
 namespace LOFAR
 {
-  namespace RTCP 
+  namespace RTCP
   {
     struct WorkQueueInputData
     {
-      // Inputs: received from data and meta data           
+      // Inputs: received from data and meta data
       MultiArraySharedBuffer<float, 3> delaysAtBegin;
       MultiArraySharedBuffer<float, 3> delaysAfterEnd;
       MultiArraySharedBuffer<float, 2> phaseOffsets;
       MultiArraySharedBuffer<char, 4> inputSamples;
       SparseSet<unsigned> flags;
 
-      WorkQueueInputData(size_t n_beams, size_t n_stations, size_t n_polarizations, 
-        size_t n_samples, size_t bytes_per_complex_sample, 
-        cl::CommandQueue &queue, cl::Buffer &queue_buffer,
-        cl_mem_flags hostBufferFlags = CL_MEM_WRITE_ONLY,  // input therefore assume host write, device read
-        cl_mem_flags deviceBufferFlags = CL_MEM_READ_ONLY)
+      WorkQueueInputData(size_t n_beams, size_t n_stations, size_t n_polarizations,
+                         size_t n_samples, size_t bytes_per_complex_sample,
+                         cl::CommandQueue &queue, cl::Buffer &queue_buffer,
+                         cl_mem_flags hostBufferFlags = CL_MEM_WRITE_ONLY, // input therefore assume host write, device read
+                         cl_mem_flags deviceBufferFlags = CL_MEM_READ_ONLY)
         :
         delaysAtBegin(boost::extents[n_beams][n_stations][n_polarizations], queue, hostBufferFlags, deviceBufferFlags),
         delaysAfterEnd(boost::extents[n_beams][n_stations][n_polarizations], queue, hostBufferFlags, deviceBufferFlags),
         phaseOffsets(boost::extents[n_stations][n_polarizations], queue, hostBufferFlags, deviceBufferFlags),
         inputSamples(boost::extents[n_stations][n_samples][n_polarizations][bytes_per_complex_sample], queue, hostBufferFlags, queue_buffer) // TODO: The size of the buffer is NOT validated
-      {}
-      
-      // Read for a station the data from the inputstream. 
+      {
+      }
+
+      // Read for a station the data from the inputstream.
       // Perform the flagging of the data based on the just red meta data.
       void read(Stream *inputStream, size_t station, unsigned subband, unsigned beamIdx);
 
@@ -59,18 +60,18 @@ namespace LOFAR
     class CorrelatorWorkQueue : public WorkQueue
     {
     public:
-            CorrelatorWorkQueue(const Parset	&parset,cl::Context &context, cl::Device		&device, unsigned queueNumber,
-              CorrelatorPipelinePrograms &programs,
-        FilterBank &filterBank);
+      CorrelatorWorkQueue(const Parset    &parset,cl::Context &context, cl::Device                &device, unsigned queueNumber,
+                          CorrelatorPipelinePrograms &programs,
+                          FilterBank &filterBank);
 
       void doWork();
       void doSubband(unsigned block, unsigned subband, CorrelatedData &output);
-      //private:           
+      //private:
 
-      cl::Buffer		devFIRweights;
+      cl::Buffer devFIRweights;
       // Raw input buffer, to be mapped to a boost array
-      cl::Buffer		devCorrectedData;
-      cl::Buffer	  devFilteredData;
+      cl::Buffer devCorrectedData;
+      cl::Buffer devFilteredData;
 
       // static calculated/retrieved at the beginning
       MultiArraySharedBuffer<float, 1> bandPassCorrectionWeights;
@@ -82,14 +83,14 @@ namespace LOFAR
       MultiArraySharedBuffer<std::complex<float>, 4> visibilities;
 
       // Compiled kernels
-      FIR_FilterKernel		firFilterKernel;
-      Filter_FFT_Kernel		fftKernel;
-      DelayAndBandPassKernel	delayAndBandPassKernel;
+      FIR_FilterKernel firFilterKernel;
+      Filter_FFT_Kernel fftKernel;
+      DelayAndBandPassKernel delayAndBandPassKernel;
 #if defined USE_NEW_CORRELATOR
-      CorrelateTriangleKernel	correlateTriangleKernel;
-      CorrelateRectangleKernel	correlateRectangleKernel;
+      CorrelateTriangleKernel correlateTriangleKernel;
+      CorrelateRectangleKernel correlateRectangleKernel;
 #else
-      CorrelatorKernel		correlatorKernel;
+      CorrelatorKernel correlatorKernel;
 #endif
       //std::vector< WorkQueueInputItem> workQueueInputItems;
     private:
diff --git a/RTCP/Cobalt/GPUProc/src/WorkQueues/UHEP_WorkQueue.cc b/RTCP/Cobalt/GPUProc/src/WorkQueues/UHEP_WorkQueue.cc
index c8110224e6f0262d0ac3af5993d785766824de4b..7190d701cff83936259507b3645db7288802d6ee 100644
--- a/RTCP/Cobalt/GPUProc/src/WorkQueues/UHEP_WorkQueue.cc
+++ b/RTCP/Cobalt/GPUProc/src/WorkQueues/UHEP_WorkQueue.cc
@@ -1,4 +1,4 @@
-#include "lofar_config.h"    
+#include "lofar_config.h"
 
 #include "Common/LofarLogger.h"
 #include "global_defines.h"
@@ -24,100 +24,100 @@
 
 namespace LOFAR
 {
-    namespace  RTCP 
-    {     
-                UHEP_WorkQueue::UHEP_WorkQueue(UHEP_Pipeline &pipeline, unsigned gpuNumber)
-            :
-        WorkQueue( pipeline.context, pipeline.devices[gpuNumber], gpuNumber, pipeline.ps),
-            pipeline(pipeline),
-            hostInputSamples(boost::extents[ps.nrStations()][ps.nrSubbands()][ps.nrSamplesPerChannel() + NR_STATION_FILTER_TAPS - 1][NR_POLARIZATIONS][ps.nrBytesPerComplexSample()], queue, CL_MEM_WRITE_ONLY),
-            hostBeamFormerWeights(boost::extents[ps.nrStations()][ps.nrSubbands()][ps.nrTABs(0)], queue, CL_MEM_WRITE_ONLY),
-            hostTriggerInfo(ps.nrTABs(0), queue, CL_MEM_READ_ONLY)
-        {
-            size_t inputSamplesSize = ps.nrStations() * ps.nrSubbands() * (ps.nrSamplesPerChannel() + NR_STATION_FILTER_TAPS - 1) * NR_POLARIZATIONS * ps.nrBytesPerComplexSample();
-            size_t complexVoltagesSize = ps.nrSubbands() * (ps.nrSamplesPerChannel() + NR_STATION_FILTER_TAPS - 1) * ps.nrTABs(0) * NR_POLARIZATIONS * sizeof(std::complex<float>);
-            size_t transposedDataSize = ps.nrTABs(0) * NR_POLARIZATIONS * (ps.nrSamplesPerChannel() + NR_STATION_FILTER_TAPS - 1) * 512 * sizeof(std::complex<float>);
-            size_t invFIRfilteredDataSize = ps.nrTABs(0) * NR_POLARIZATIONS * ps.nrSamplesPerChannel() * 512 * sizeof(std::complex<float>);
-
-            size_t buffer0size = std::max(inputSamplesSize, transposedDataSize);
-            size_t buffer1size = std::max(complexVoltagesSize, invFIRfilteredDataSize);
-
-            devBuffers[0] = cl::Buffer(pipeline.context, CL_MEM_READ_WRITE, buffer0size);
-            devBuffers[1] = cl::Buffer(pipeline.context, CL_MEM_READ_WRITE, buffer1size);
-
-            size_t beamFormerWeightsSize = ps.nrStations() * ps.nrSubbands() * ps.nrTABs(0) * sizeof(std::complex<float>);
-            devBeamFormerWeights = cl::Buffer(pipeline.context, CL_MEM_READ_ONLY, beamFormerWeightsSize);
-
-            devInputSamples = devBuffers[0];
-            devComplexVoltages = devBuffers[1];
-
-            devReverseSubbandMapping = cl::Buffer(pipeline.context, CL_MEM_READ_ONLY, 512 * sizeof(int));
-            devInvFIRfilterWeights = cl::Buffer(pipeline.context, CL_MEM_READ_ONLY, 1024 * NR_STATION_FILTER_TAPS * sizeof(float));
-            devFFTedData = devBuffers[0];
-            devInvFIRfilteredData = devBuffers[1];
-
-            devTriggerInfo = cl::Buffer(pipeline.context, CL_MEM_WRITE_ONLY, ps.nrTABs(0) * sizeof(TriggerInfo));
-        }
+  namespace  RTCP
+  {
+    UHEP_WorkQueue::UHEP_WorkQueue(UHEP_Pipeline &pipeline, unsigned gpuNumber)
+      :
+      WorkQueue( pipeline.context, pipeline.devices[gpuNumber], gpuNumber, pipeline.ps),
+      pipeline(pipeline),
+      hostInputSamples(boost::extents[ps.nrStations()][ps.nrSubbands()][ps.nrSamplesPerChannel() + NR_STATION_FILTER_TAPS - 1][NR_POLARIZATIONS][ps.nrBytesPerComplexSample()], queue, CL_MEM_WRITE_ONLY),
+      hostBeamFormerWeights(boost::extents[ps.nrStations()][ps.nrSubbands()][ps.nrTABs(0)], queue, CL_MEM_WRITE_ONLY),
+      hostTriggerInfo(ps.nrTABs(0), queue, CL_MEM_READ_ONLY)
+    {
+      size_t inputSamplesSize = ps.nrStations() * ps.nrSubbands() * (ps.nrSamplesPerChannel() + NR_STATION_FILTER_TAPS - 1) * NR_POLARIZATIONS * ps.nrBytesPerComplexSample();
+      size_t complexVoltagesSize = ps.nrSubbands() * (ps.nrSamplesPerChannel() + NR_STATION_FILTER_TAPS - 1) * ps.nrTABs(0) * NR_POLARIZATIONS * sizeof(std::complex<float>);
+      size_t transposedDataSize = ps.nrTABs(0) * NR_POLARIZATIONS * (ps.nrSamplesPerChannel() + NR_STATION_FILTER_TAPS - 1) * 512 * sizeof(std::complex<float>);
+      size_t invFIRfilteredDataSize = ps.nrTABs(0) * NR_POLARIZATIONS * ps.nrSamplesPerChannel() * 512 * sizeof(std::complex<float>);
+
+      size_t buffer0size = std::max(inputSamplesSize, transposedDataSize);
+      size_t buffer1size = std::max(complexVoltagesSize, invFIRfilteredDataSize);
+
+      devBuffers[0] = cl::Buffer(pipeline.context, CL_MEM_READ_WRITE, buffer0size);
+      devBuffers[1] = cl::Buffer(pipeline.context, CL_MEM_READ_WRITE, buffer1size);
+
+      size_t beamFormerWeightsSize = ps.nrStations() * ps.nrSubbands() * ps.nrTABs(0) * sizeof(std::complex<float>);
+      devBeamFormerWeights = cl::Buffer(pipeline.context, CL_MEM_READ_ONLY, beamFormerWeightsSize);
+
+      devInputSamples = devBuffers[0];
+      devComplexVoltages = devBuffers[1];
+
+      devReverseSubbandMapping = cl::Buffer(pipeline.context, CL_MEM_READ_ONLY, 512 * sizeof(int));
+      devInvFIRfilterWeights = cl::Buffer(pipeline.context, CL_MEM_READ_ONLY, 1024 * NR_STATION_FILTER_TAPS * sizeof(float));
+      devFFTedData = devBuffers[0];
+      devInvFIRfilteredData = devBuffers[1];
+
+      devTriggerInfo = cl::Buffer(pipeline.context, CL_MEM_WRITE_ONLY, ps.nrTABs(0) * sizeof(TriggerInfo));
+    }
 
 
-        void UHEP_WorkQueue::doWork(const float * /*delaysAtBegin*/, const float * /*delaysAfterEnd*/, const float * /*phaseOffsets*/)
-        {
-            UHEP_BeamFormerKernel beamFormer(ps, pipeline.beamFormerProgram, devComplexVoltages, devInputSamples, devBeamFormerWeights);
-            UHEP_TransposeKernel  transpose(ps, pipeline.transposeProgram, devFFTedData, devComplexVoltages, devReverseSubbandMapping);
-            UHEP_InvFFT_Kernel	invFFT(ps, pipeline.invFFTprogram, devFFTedData);
-            UHEP_InvFIR_Kernel	invFIR(ps, queue, pipeline.invFIRfilterProgram, devInvFIRfilteredData, devFFTedData, devInvFIRfilterWeights);
-            UHEP_TriggerKernel	trigger(ps, pipeline.triggerProgram, devTriggerInfo, devInvFIRfilteredData);
-            double startTime = ps.startTime(), stopTime = ps.stopTime(), blockTime = ps.CNintegrationTime();
-            unsigned nrBlocks = (stopTime - startTime) / blockTime;
+    void UHEP_WorkQueue::doWork(const float * /*delaysAtBegin*/, const float * /*delaysAfterEnd*/, const float * /*phaseOffsets*/)
+    {
+      UHEP_BeamFormerKernel beamFormer(ps, pipeline.beamFormerProgram, devComplexVoltages, devInputSamples, devBeamFormerWeights);
+      UHEP_TransposeKernel transpose(ps, pipeline.transposeProgram, devFFTedData, devComplexVoltages, devReverseSubbandMapping);
+      UHEP_InvFFT_Kernel invFFT(ps, pipeline.invFFTprogram, devFFTedData);
+      UHEP_InvFIR_Kernel invFIR(ps, queue, pipeline.invFIRfilterProgram, devInvFIRfilteredData, devFFTedData, devInvFIRfilterWeights);
+      UHEP_TriggerKernel trigger(ps, pipeline.triggerProgram, devTriggerInfo, devInvFIRfilteredData);
+      double startTime = ps.startTime(), stopTime = ps.stopTime(), blockTime = ps.CNintegrationTime();
+      unsigned nrBlocks = (stopTime - startTime) / blockTime;
 
-            queue.enqueueWriteBuffer(devInvFIRfilterWeights, CL_FALSE, 0, sizeof invertedStationPPFWeights, invertedStationPPFWeights);
-            queue.enqueueWriteBuffer(devReverseSubbandMapping, CL_TRUE, 0, 512 * sizeof(int), reverseSubbandMapping);
+      queue.enqueueWriteBuffer(devInvFIRfilterWeights, CL_FALSE, 0, sizeof invertedStationPPFWeights, invertedStationPPFWeights);
+      queue.enqueueWriteBuffer(devReverseSubbandMapping, CL_TRUE, 0, 512 * sizeof(int), reverseSubbandMapping);
 
 #pragma omp barrier
 
-            double executionStartTime = omp_get_wtime();
+      double executionStartTime = omp_get_wtime();
 
 #pragma omp for schedule(dynamic), nowait
-            for (unsigned block = 0; block < nrBlocks; block ++) {
-                    double currentTime = startTime + block * blockTime;
+      for (unsigned block = 0; block < nrBlocks; block++) {
+        double currentTime = startTime + block * blockTime;
 
-                    //#pragma omp single nowait // FIXME: why does the compiler complain here???
+        //#pragma omp single nowait // FIXME: why does the compiler complain here???
 #pragma omp critical (cout)
-                    std::cout << "block = " << block << ", time = " << to_simple_string(from_ustime_t(currentTime)) << std::endl;
+        std::cout << "block = " << block << ", time = " << to_simple_string(from_ustime_t(currentTime)) << std::endl;
 
 #if 0
-                    {
+        {
 #if defined USE_B7015
-                        OMP_ScopedLock scopedLock(pipeline.hostToDeviceLock[gpu / 2]);
+          OMP_ScopedLock scopedLock(pipeline.hostToDeviceLock[gpu / 2]);
 #endif
-                        queue.enqueueWriteBuffer(devInputSamples, CL_TRUE, 0, sampledDataSize, hostInputSamples.origin(), 0, &samplesEvent);
-                    }
+          queue.enqueueWriteBuffer(devInputSamples, CL_TRUE, 0, sampledDataSize, hostInputSamples.origin(), 0, &samplesEvent);
+        }
 #endif
 
-                    queue.enqueueWriteBuffer(devBeamFormerWeights, CL_FALSE, 0, hostBeamFormerWeights.bytesize(), hostBeamFormerWeights.origin(), 0, &beamFormerWeightsEvent);
-                    pipeline.beamFormerWeightsCounter.doOperation(beamFormerWeightsEvent, 0, 0, hostBeamFormerWeights.bytesize());
+        queue.enqueueWriteBuffer(devBeamFormerWeights, CL_FALSE, 0, hostBeamFormerWeights.bytesize(), hostBeamFormerWeights.origin(), 0, &beamFormerWeightsEvent);
+        pipeline.beamFormerWeightsCounter.doOperation(beamFormerWeightsEvent, 0, 0, hostBeamFormerWeights.bytesize());
 
-                    queue.enqueueWriteBuffer(devInputSamples, CL_FALSE, 0, hostInputSamples.bytesize(), hostInputSamples.origin(), 0, &inputSamplesEvent);
-                    pipeline.samplesCounter.doOperation(inputSamplesEvent, 0, 0, hostInputSamples.bytesize());
+        queue.enqueueWriteBuffer(devInputSamples, CL_FALSE, 0, hostInputSamples.bytesize(), hostInputSamples.origin(), 0, &inputSamplesEvent);
+        pipeline.samplesCounter.doOperation(inputSamplesEvent, 0, 0, hostInputSamples.bytesize());
 
-                    beamFormer.enqueue(queue, pipeline.beamFormerCounter);
-                    transpose.enqueue(queue, pipeline.transposeCounter);
-                    invFFT.enqueue(queue, pipeline.invFFTcounter);
-                    invFIR.enqueue(queue, pipeline.invFIRfilterCounter);
-                    trigger.enqueue(queue, pipeline.triggerCounter);
-                    queue.finish(); // necessary to overlap I/O & computations ???
-                    queue.enqueueReadBuffer(devTriggerInfo, CL_TRUE, 0, hostTriggerInfo.size() * sizeof(TriggerInfo), &hostTriggerInfo[0]);
-            }
+        beamFormer.enqueue(queue, pipeline.beamFormerCounter);
+        transpose.enqueue(queue, pipeline.transposeCounter);
+        invFFT.enqueue(queue, pipeline.invFFTcounter);
+        invFIR.enqueue(queue, pipeline.invFIRfilterCounter);
+        trigger.enqueue(queue, pipeline.triggerCounter);
+        queue.finish();             // necessary to overlap I/O & computations ???
+        queue.enqueueReadBuffer(devTriggerInfo, CL_TRUE, 0, hostTriggerInfo.size() * sizeof(TriggerInfo), &hostTriggerInfo[0]);
+      }
 
 #pragma omp barrier
 
 #pragma omp master
-            if (!profiling)
-#pragma omp critical (cout)
-                std::cout << "run time = " << omp_get_wtime() - executionStartTime << std::endl;
-        }
+      if (!profiling)
+                             #pragma omp critical (cout)
+        std::cout << "run time = " << omp_get_wtime() - executionStartTime << std::endl;
+    }
 
 
 
-    }
+  }
 }
diff --git a/RTCP/Cobalt/GPUProc/src/WorkQueues/UHEP_WorkQueue.h b/RTCP/Cobalt/GPUProc/src/WorkQueues/UHEP_WorkQueue.h
index 1bb8a2a6cfbb8d94c375aaaaea46deeeaa579183..5cb6b6b2a0c71016c89d37391cc77db12d480644 100644
--- a/RTCP/Cobalt/GPUProc/src/WorkQueues/UHEP_WorkQueue.h
+++ b/RTCP/Cobalt/GPUProc/src/WorkQueues/UHEP_WorkQueue.h
@@ -1,7 +1,7 @@
 #ifndef GPUPROC_UHEP_RWORKQUEUE_H
 #define GPUPROC_UHEP_RWORKQUEUE_H
 
-#include "lofar_config.h"    
+#include "lofar_config.h"
 
 #include "CL/cl.hpp"
 
@@ -23,34 +23,34 @@
 #include "Kernels/UHEP_TriggerKernel.h"
 namespace LOFAR
 {
-    namespace  RTCP 
-    {     
-        class UHEP_WorkQueue : public WorkQueue
-        {
-        public:
-            UHEP_WorkQueue(UHEP_Pipeline &, unsigned queueNumber);
-
-            void doWork(const float *delaysAtBegin, const float *delaysAfterEnd, const float *phaseOffsets);
-
-            UHEP_Pipeline	&pipeline;
-            cl::Event		inputSamplesEvent, beamFormerWeightsEvent;
-
-            cl::Buffer		devBuffers[2];
-            cl::Buffer		devInputSamples;
-            MultiArrayHostBuffer<char, 5> hostInputSamples;
-
-            cl::Buffer		devBeamFormerWeights;
-            MultiArrayHostBuffer<std::complex<float>, 3> hostBeamFormerWeights;
-
-            cl::Buffer		devComplexVoltages;
-            cl::Buffer		devReverseSubbandMapping;
-            cl::Buffer		devFFTedData;
-            cl::Buffer		devInvFIRfilteredData;
-            cl::Buffer		devInvFIRfilterWeights;
-
-            cl::Buffer		devTriggerInfo;
-            VectorHostBuffer<TriggerInfo> hostTriggerInfo;
-        };
-    }
+  namespace  RTCP
+  {
+    class UHEP_WorkQueue : public WorkQueue
+    {
+    public:
+      UHEP_WorkQueue(UHEP_Pipeline &, unsigned queueNumber);
+
+      void doWork(const float *delaysAtBegin, const float *delaysAfterEnd, const float *phaseOffsets);
+
+      UHEP_Pipeline       &pipeline;
+      cl::Event inputSamplesEvent, beamFormerWeightsEvent;
+
+      cl::Buffer devBuffers[2];
+      cl::Buffer devInputSamples;
+      MultiArrayHostBuffer<char, 5> hostInputSamples;
+
+      cl::Buffer devBeamFormerWeights;
+      MultiArrayHostBuffer<std::complex<float>, 3> hostBeamFormerWeights;
+
+      cl::Buffer devComplexVoltages;
+      cl::Buffer devReverseSubbandMapping;
+      cl::Buffer devFFTedData;
+      cl::Buffer devInvFIRfilteredData;
+      cl::Buffer devInvFIRfilterWeights;
+
+      cl::Buffer devTriggerInfo;
+      VectorHostBuffer<TriggerInfo> hostTriggerInfo;
+    };
+  }
 }
 #endif
diff --git a/RTCP/Cobalt/GPUProc/src/WorkQueues/WorkQueue.cc b/RTCP/Cobalt/GPUProc/src/WorkQueues/WorkQueue.cc
index d8c6e7c3fa6e4154f0c1fdf50e225ff464a7544e..e214475deddade193104472be96c7df6f50d05b8 100644
--- a/RTCP/Cobalt/GPUProc/src/WorkQueues/WorkQueue.cc
+++ b/RTCP/Cobalt/GPUProc/src/WorkQueues/WorkQueue.cc
@@ -1,4 +1,4 @@
-#include "lofar_config.h"    
+#include "lofar_config.h"
 #include "CL/cl.hpp"
 
 #include "Common/LofarLogger.h"
@@ -10,32 +10,32 @@
 
 namespace LOFAR
 {
-    namespace  RTCP 
-    {      
-                WorkQueue::WorkQueue(cl::Context &context, cl::Device		&device, unsigned gpuNumber, const Parset	&ps)
-            :
-        gpu(gpuNumber),
-            device(device),
-            ps(ps)
-        {
+  namespace  RTCP
+  {
+    WorkQueue::WorkQueue(cl::Context &context, cl::Device           &device, unsigned gpuNumber, const Parset       &ps)
+      :
+      gpu(gpuNumber),
+      device(device),
+      ps(ps)
+    {
 #if defined __linux__ && defined USE_B7015
-            set_affinity(gpu);
+      set_affinity(gpu);
 #endif
 
-            queue = cl::CommandQueue(context, device, profiling ? CL_QUEUE_PROFILING_ENABLE : 0);
-        }
-
+      queue = cl::CommandQueue(context, device, profiling ? CL_QUEUE_PROFILING_ENABLE : 0);
+    }
 
-        void WorkQueue::addCounter(const std::string &name)
-        {
-          counters[name] = new PerformanceCounter(name, profiling);
-        }
 
+    void WorkQueue::addCounter(const std::string &name)
+    {
+      counters[name] = new PerformanceCounter(name, profiling);
+    }
 
-        void WorkQueue::addTimer(const std::string &name)
-        {
-          timers[name] = new NSTimer(name, false, false);
-        }
 
+    void WorkQueue::addTimer(const std::string &name)
+    {
+      timers[name] = new NSTimer(name, false, false);
     }
+
+  }
 }
diff --git a/RTCP/Cobalt/GPUProc/src/WorkQueues/WorkQueue.h b/RTCP/Cobalt/GPUProc/src/WorkQueues/WorkQueue.h
index 9f47cfbdde28dfcbba1a7a8ed484462dced2b63f..0fbf23cb2c7c32673812dbdbb82b9dde248e64b8 100644
--- a/RTCP/Cobalt/GPUProc/src/WorkQueues/WorkQueue.h
+++ b/RTCP/Cobalt/GPUProc/src/WorkQueues/WorkQueue.h
@@ -12,27 +12,27 @@
 
 namespace LOFAR
 {
-    namespace RTCP 
+  namespace RTCP
+  {
+    class WorkQueue
     {
-        class WorkQueue
-        {
-        public:
-            WorkQueue(cl::Context &context, cl::Device		&device,  unsigned gpuNumber, const Parset	&ps);
+    public:
+      WorkQueue(cl::Context &context, cl::Device          &device,  unsigned gpuNumber, const Parset      &ps);
 
-            const unsigned	gpu;
-            cl::Device		&device;
-            cl::CommandQueue	queue;
+      const unsigned gpu;
+      cl::Device          &device;
+      cl::CommandQueue queue;
 
-            std::map<std::string, SmartPtr<PerformanceCounter> > counters;
-            std::map<std::string, SmartPtr<NSTimer> > timers;
+      std::map<std::string, SmartPtr<PerformanceCounter> > counters;
+      std::map<std::string, SmartPtr<NSTimer> > timers;
 
-        protected:
-            const Parset	&ps;
+    protected:
+      const Parset        &ps;
 
-            void addCounter(const std::string &name);
-            void addTimer(const std::string &name);
-        };
+      void addCounter(const std::string &name);
+      void addTimer(const std::string &name);
+    };
 
-    }
+  }
 }
 #endif
diff --git a/RTCP/Cobalt/GPUProc/src/createProgram.cc b/RTCP/Cobalt/GPUProc/src/createProgram.cc
index 8d7f45b136b8a60a9107185f36dd79807ff02667..e8e1eff8dbef72e6cacf96c45c070ade5edfcdc0 100644
--- a/RTCP/Cobalt/GPUProc/src/createProgram.cc
+++ b/RTCP/Cobalt/GPUProc/src/createProgram.cc
@@ -11,54 +11,54 @@
 
 #include <global_defines.h>
 
-namespace LOFAR 
+namespace LOFAR
 {
-    namespace RTCP 
+  namespace RTCP
+  {
+    cl::Program createProgram(const Parset &ps, cl::Context &context, std::vector<cl::Device> &devices, const char *sources)
     {
-        cl::Program createProgram(const Parset &ps, cl::Context &context, std::vector<cl::Device> &devices, const char *sources)
-        {
-            std::stringstream args;
-            args << "-cl-fast-relaxed-math";
+      std::stringstream args;
+      args << "-cl-fast-relaxed-math";
 
-            std::vector<cl_context_properties> properties;
-            context.getInfo(CL_CONTEXT_PROPERTIES, &properties);
+      std::vector<cl_context_properties> properties;
+      context.getInfo(CL_CONTEXT_PROPERTIES, &properties);
 
-            if (cl::Platform((cl_platform_id) properties[1]).getInfo<CL_PLATFORM_NAME>() == "NVIDIA CUDA") {
-                args << " -cl-nv-verbose";
-                args << " -cl-nv-opt-level=99";
-                //args << " -cl-nv-maxrregcount=63";
-                args << " -DNVIDIA_CUDA";
-            }
+      if (cl::Platform((cl_platform_id) properties[1]).getInfo<CL_PLATFORM_NAME>() == "NVIDIA CUDA") {
+        args << " -cl-nv-verbose";
+        args << " -cl-nv-opt-level=99";
+        //args << " -cl-nv-maxrregcount=63";
+        args << " -DNVIDIA_CUDA";
+      }
 
-            //if (devices[0].getInfo<CL_DEVICE_NAME>() == "GeForce GTX 680")
-            //args << " -DUSE_FLOAT4_IN_CORRELATOR";
+      //if (devices[0].getInfo<CL_DEVICE_NAME>() == "GeForce GTX 680")
+      //args << " -DUSE_FLOAT4_IN_CORRELATOR";
 
-            args << " -I" << dirname(__FILE__);
-            args << " -DNR_BITS_PER_SAMPLE=" << ps.nrBitsPerSample();
-            args << " -DSUBBAND_BANDWIDTH=" << std::setprecision(7) << ps.subbandBandwidth() << 'f';
-            args << " -DNR_SUBBANDS=" << ps.nrSubbands();
-            args << " -DNR_CHANNELS=" << ps.nrChannelsPerSubband();
-            args << " -DNR_STATIONS=" << ps.nrStations();
-            args << " -DNR_SAMPLES_PER_CHANNEL=" << ps.nrSamplesPerChannel();
-            args << " -DNR_SAMPLES_PER_SUBBAND=" << ps.nrSamplesPerSubband();
-            args << " -DNR_BEAMS=" << ps.nrBeams();
-            args << " -DNR_TABS=" << ps.nrTABs(0);
-            args << " -DNR_COHERENT_STOKES=" << ps.nrCoherentStokes();
-            args << " -DNR_INCOHERENT_STOKES=" << ps.nrIncoherentStokes();
-            args << " -DCOHERENT_STOKES_TIME_INTEGRATION_FACTOR=" << ps.coherentStokesTimeIntegrationFactor();
-            args << " -DINCOHERENT_STOKES_TIME_INTEGRATION_FACTOR=" << ps.incoherentStokesTimeIntegrationFactor();
-            args << " -DNR_POLARIZATIONS=" << NR_POLARIZATIONS;
-            args << " -DNR_TAPS=" << NR_TAPS;
-            args << " -DNR_STATION_FILTER_TAPS=" << NR_STATION_FILTER_TAPS;
+      args << " -I" << dirname(__FILE__);
+      args << " -DNR_BITS_PER_SAMPLE=" << ps.nrBitsPerSample();
+      args << " -DSUBBAND_BANDWIDTH=" << std::setprecision(7) << ps.subbandBandwidth() << 'f';
+      args << " -DNR_SUBBANDS=" << ps.nrSubbands();
+      args << " -DNR_CHANNELS=" << ps.nrChannelsPerSubband();
+      args << " -DNR_STATIONS=" << ps.nrStations();
+      args << " -DNR_SAMPLES_PER_CHANNEL=" << ps.nrSamplesPerChannel();
+      args << " -DNR_SAMPLES_PER_SUBBAND=" << ps.nrSamplesPerSubband();
+      args << " -DNR_BEAMS=" << ps.nrBeams();
+      args << " -DNR_TABS=" << ps.nrTABs(0);
+      args << " -DNR_COHERENT_STOKES=" << ps.nrCoherentStokes();
+      args << " -DNR_INCOHERENT_STOKES=" << ps.nrIncoherentStokes();
+      args << " -DCOHERENT_STOKES_TIME_INTEGRATION_FACTOR=" << ps.coherentStokesTimeIntegrationFactor();
+      args << " -DINCOHERENT_STOKES_TIME_INTEGRATION_FACTOR=" << ps.incoherentStokesTimeIntegrationFactor();
+      args << " -DNR_POLARIZATIONS=" << NR_POLARIZATIONS;
+      args << " -DNR_TAPS=" << NR_TAPS;
+      args << " -DNR_STATION_FILTER_TAPS=" << NR_STATION_FILTER_TAPS;
 
-            if (ps.delayCompensation())
-                args << " -DDELAY_COMPENSATION";
+      if (ps.delayCompensation())
+        args << " -DDELAY_COMPENSATION";
 
-            if (ps.correctBandPass())
-                args << " -DBANDPASS_CORRECTION";
+      if (ps.correctBandPass())
+        args << " -DBANDPASS_CORRECTION";
 
-            args << " -DDEDISPERSION_FFT_SIZE=" << ps.dedispersionFFTsize();
-            return createProgram(context, devices, dirname(__FILE__).append("/").append(sources).c_str(), args.str().c_str());
-        }
+      args << " -DDEDISPERSION_FFT_SIZE=" << ps.dedispersionFFTsize();
+      return createProgram(context, devices, dirname(__FILE__).append("/").append(sources).c_str(), args.str().c_str());
     }
+  }
 }
\ No newline at end of file
diff --git a/RTCP/Cobalt/GPUProc/src/createProgram.h b/RTCP/Cobalt/GPUProc/src/createProgram.h
index 379e7f2dbe05ccf12abc8c8f42e4278c35ca4af1..17601b892e24e06664f9c38062d7c2f7a76bde61 100644
--- a/RTCP/Cobalt/GPUProc/src/createProgram.h
+++ b/RTCP/Cobalt/GPUProc/src/createProgram.h
@@ -5,11 +5,11 @@
 #include "CL/cl.hpp"
 #include "CoInterface/Parset.h"
 
-namespace LOFAR 
+namespace LOFAR
 {
-    namespace RTCP 
-    {
-        cl::Program createProgram(const Parset &ps, cl::Context &context, std::vector<cl::Device> &devices, const char *sources);
-    }
+  namespace RTCP
+  {
+    cl::Program createProgram(const Parset &ps, cl::Context &context, std::vector<cl::Device> &devices, const char *sources);
+  }
 }
 #endif
diff --git a/RTCP/Cobalt/GPUProc/src/fft2.cl b/RTCP/Cobalt/GPUProc/src/fft2.cl
index 759666803e134cd04bc0f3e7edcdc8beff6a8986..d768d66ecf611272f16ec9eacb9d89015b7e3197 100644
--- a/RTCP/Cobalt/GPUProc/src/fft2.cl
+++ b/RTCP/Cobalt/GPUProc/src/fft2.cl
@@ -4,13 +4,13 @@
 
 
 __constant float2 twiddles[7] = {
-(float2)(1.0000000000000000000000000000000000f, -0.0000000000000000000000000000000000f),
-(float2)(1.0000000000000000000000000000000000f, -0.0000000000000000000000000000000000f),
-(float2)(1.0000000000000000000000000000000000f, -0.0000000000000000000000000000000000f),
-(float2)(1.0000000000000000000000000000000000f, -0.0000000000000000000000000000000000f),
-(float2)(0.7071067811865475727373109293694142f, -0.7071067811865474617150084668537602f),
-(float2)(0.0000000000000000612323399573676604f, -1.0000000000000000000000000000000000f),
-(float2)(-0.7071067811865474617150084668537602f, -0.7071067811865475727373109293694142f),
+  (float2)(1.0000000000000000000000000000000000f, -0.0000000000000000000000000000000000f),
+  (float2)(1.0000000000000000000000000000000000f, -0.0000000000000000000000000000000000f),
+  (float2)(1.0000000000000000000000000000000000f, -0.0000000000000000000000000000000000f),
+  (float2)(1.0000000000000000000000000000000000f, -0.0000000000000000000000000000000000f),
+  (float2)(0.7071067811865475727373109293694142f, -0.7071067811865474617150084668537602f),
+  (float2)(0.0000000000000000612323399573676604f, -1.0000000000000000000000000000000000f),
+  (float2)(-0.7071067811865474617150084668537602f, -0.7071067811865475727373109293694142f),
 };
 
 
@@ -25,68 +25,72 @@ __constant float2 twiddles[7] = {
 #define C3QA 0.50000000000000000000000000000000f
 #define C3QB 0.86602540378443864676372317075294f
 
-__attribute__((always_inline)) void 
+__attribute__((always_inline)) void
 FwdRad2B1(float2 *R0, float2 *R1)
 {
 
-	float2 T;
+  float2 T;
+
+  (*R1) = (*R0) - (*R1);
+  (*R0) = 2.0f * (*R0) - (*R1);
+
 
-	(*R1) = (*R0) - (*R1);
-	(*R0) = 2.0f * (*R0) - (*R1);
-	
-	
 }
 
-__attribute__((always_inline)) void 
+__attribute__((always_inline)) void
 InvRad2B1(float2 *R0, float2 *R1)
 {
 
-	float2 T;
+  float2 T;
+
+  (*R1) = (*R0) - (*R1);
+  (*R0) = 2.0f * (*R0) - (*R1);
+
 
-	(*R1) = (*R0) - (*R1);
-	(*R0) = 2.0f * (*R0) - (*R1);
-	
-	
 }
 
-__attribute__((always_inline)) void 
+__attribute__((always_inline)) void
 FwdRad4B1(float2 *R0, float2 *R2, float2 *R1, float2 *R3)
 {
 
-	float2 T;
-
-	(*R1) = (*R0) - (*R1);
-	(*R0) = 2.0f * (*R0) - (*R1);
-	(*R3) = (*R2) - (*R3);
-	(*R2) = 2.0f * (*R2) - (*R3);
-	
-	(*R2) = (*R0) - (*R2);
-	(*R0) = 2.0f * (*R0) - (*R2);
-	(*R3) = (*R1) + (fvect2)(-(*R3).y, (*R3).x);
-	(*R1) = 2.0f * (*R1) - (*R3);
-	
-	T = (*R1); (*R1) = (*R2); (*R2) = T;
-	
+  float2 T;
+
+  (*R1) = (*R0) - (*R1);
+  (*R0) = 2.0f * (*R0) - (*R1);
+  (*R3) = (*R2) - (*R3);
+  (*R2) = 2.0f * (*R2) - (*R3);
+
+  (*R2) = (*R0) - (*R2);
+  (*R0) = 2.0f * (*R0) - (*R2);
+  (*R3) = (*R1) + (fvect2)(-(*R3).y, (*R3).x);
+  (*R1) = 2.0f * (*R1) - (*R3);
+
+  T = (*R1);
+  (*R1) = (*R2);
+  (*R2) = T;
+
 }
 
-__attribute__((always_inline)) void 
+__attribute__((always_inline)) void
 InvRad4B1(float2 *R0, float2 *R2, float2 *R1, float2 *R3)
 {
 
-	float2 T;
-
-	(*R1) = (*R0) - (*R1);
-	(*R0) = 2.0f * (*R0) - (*R1);
-	(*R3) = (*R2) - (*R3);
-	(*R2) = 2.0f * (*R2) - (*R3);
-	
-	(*R2) = (*R0) - (*R2);
-	(*R0) = 2.0f * (*R0) - (*R2);
-	(*R3) = (*R1) + (fvect2)((*R3).y, -(*R3).x);
-	(*R1) = 2.0f * (*R1) - (*R3);
-	
-	T = (*R1); (*R1) = (*R2); (*R2) = T;
-	
+  float2 T;
+
+  (*R1) = (*R0) - (*R1);
+  (*R0) = 2.0f * (*R0) - (*R1);
+  (*R3) = (*R2) - (*R3);
+  (*R2) = 2.0f * (*R2) - (*R3);
+
+  (*R2) = (*R0) - (*R2);
+  (*R0) = 2.0f * (*R0) - (*R2);
+  (*R3) = (*R1) + (fvect2)((*R3).y, -(*R3).x);
+  (*R1) = 2.0f * (*R1) - (*R3);
+
+  T = (*R1);
+  (*R1) = (*R2);
+  (*R2) = T;
+
 }
 
 __attribute__((always_inline)) void
@@ -94,61 +98,61 @@ FwdPass0(uint rw, uint b, uint me, uint inOffset, uint outOffset, __global float
 {
 
 
-	if(rw)
-	{
-	(*R0) = bufIn[inOffset + ( 0 + me*1 + 0 + 0 )*1];
-	(*R1) = bufIn[inOffset + ( 0 + me*1 + 0 + 2 )*1];
-	(*R2) = bufIn[inOffset + ( 0 + me*1 + 0 + 4 )*1];
-	(*R3) = bufIn[inOffset + ( 0 + me*1 + 0 + 6 )*1];
-	}
+  if(rw)
+  {
+    (*R0) = bufIn[inOffset + ( 0 + me * 1 + 0 + 0 ) * 1];
+    (*R1) = bufIn[inOffset + ( 0 + me * 1 + 0 + 2 ) * 1];
+    (*R2) = bufIn[inOffset + ( 0 + me * 1 + 0 + 4 ) * 1];
+    (*R3) = bufIn[inOffset + ( 0 + me * 1 + 0 + 6 ) * 1];
+  }
 
 
-	FwdRad4B1(R0, R1, R2, R3);
+  FwdRad4B1(R0, R1, R2, R3);
 
 
-	if(rw)
-	{
-	bufOutRe[outOffset + ( ((1*me + 0)/1)*4 + (1*me + 0)%1 + 0 )*1] = (*R0).x;
-	bufOutRe[outOffset + ( ((1*me + 0)/1)*4 + (1*me + 0)%1 + 1 )*1] = (*R1).x;
-	bufOutRe[outOffset + ( ((1*me + 0)/1)*4 + (1*me + 0)%1 + 2 )*1] = (*R2).x;
-	bufOutRe[outOffset + ( ((1*me + 0)/1)*4 + (1*me + 0)%1 + 3 )*1] = (*R3).x;
-	}
+  if(rw)
+  {
+    bufOutRe[outOffset + ( ((1 * me + 0) / 1) * 4 + (1 * me + 0) % 1 + 0 ) * 1] = (*R0).x;
+    bufOutRe[outOffset + ( ((1 * me + 0) / 1) * 4 + (1 * me + 0) % 1 + 1 ) * 1] = (*R1).x;
+    bufOutRe[outOffset + ( ((1 * me + 0) / 1) * 4 + (1 * me + 0) % 1 + 2 ) * 1] = (*R2).x;
+    bufOutRe[outOffset + ( ((1 * me + 0) / 1) * 4 + (1 * me + 0) % 1 + 3 ) * 1] = (*R3).x;
+  }
 
 
-	barrier(CLK_LOCAL_MEM_FENCE);
+  barrier(CLK_LOCAL_MEM_FENCE);
 
-	if(rw)
-	{
-	(*R0).x = bufOutRe[outOffset + ( 0 + me*2 + 0 + 0 )*1];
-	(*R1).x = bufOutRe[outOffset + ( 0 + me*2 + 0 + 4 )*1];
-	(*R2).x = bufOutRe[outOffset + ( 0 + me*2 + 1 + 0 )*1];
-	(*R3).x = bufOutRe[outOffset + ( 0 + me*2 + 1 + 4 )*1];
-	}
+  if(rw)
+  {
+    (*R0).x = bufOutRe[outOffset + ( 0 + me * 2 + 0 + 0 ) * 1];
+    (*R1).x = bufOutRe[outOffset + ( 0 + me * 2 + 0 + 4 ) * 1];
+    (*R2).x = bufOutRe[outOffset + ( 0 + me * 2 + 1 + 0 ) * 1];
+    (*R3).x = bufOutRe[outOffset + ( 0 + me * 2 + 1 + 4 ) * 1];
+  }
 
 
-	barrier(CLK_LOCAL_MEM_FENCE);
+  barrier(CLK_LOCAL_MEM_FENCE);
 
-	if(rw)
-	{
-	bufOutIm[outOffset + ( ((1*me + 0)/1)*4 + (1*me + 0)%1 + 0 )*1] = (*R0).y;
-	bufOutIm[outOffset + ( ((1*me + 0)/1)*4 + (1*me + 0)%1 + 1 )*1] = (*R1).y;
-	bufOutIm[outOffset + ( ((1*me + 0)/1)*4 + (1*me + 0)%1 + 2 )*1] = (*R2).y;
-	bufOutIm[outOffset + ( ((1*me + 0)/1)*4 + (1*me + 0)%1 + 3 )*1] = (*R3).y;
-	}
+  if(rw)
+  {
+    bufOutIm[outOffset + ( ((1 * me + 0) / 1) * 4 + (1 * me + 0) % 1 + 0 ) * 1] = (*R0).y;
+    bufOutIm[outOffset + ( ((1 * me + 0) / 1) * 4 + (1 * me + 0) % 1 + 1 ) * 1] = (*R1).y;
+    bufOutIm[outOffset + ( ((1 * me + 0) / 1) * 4 + (1 * me + 0) % 1 + 2 ) * 1] = (*R2).y;
+    bufOutIm[outOffset + ( ((1 * me + 0) / 1) * 4 + (1 * me + 0) % 1 + 3 ) * 1] = (*R3).y;
+  }
 
 
-	barrier(CLK_LOCAL_MEM_FENCE);
+  barrier(CLK_LOCAL_MEM_FENCE);
 
-	if(rw)
-	{
-	(*R0).y = bufOutIm[outOffset + ( 0 + me*2 + 0 + 0 )*1];
-	(*R1).y = bufOutIm[outOffset + ( 0 + me*2 + 0 + 4 )*1];
-	(*R2).y = bufOutIm[outOffset + ( 0 + me*2 + 1 + 0 )*1];
-	(*R3).y = bufOutIm[outOffset + ( 0 + me*2 + 1 + 4 )*1];
-	}
+  if(rw)
+  {
+    (*R0).y = bufOutIm[outOffset + ( 0 + me * 2 + 0 + 0 ) * 1];
+    (*R1).y = bufOutIm[outOffset + ( 0 + me * 2 + 0 + 4 ) * 1];
+    (*R2).y = bufOutIm[outOffset + ( 0 + me * 2 + 1 + 0 ) * 1];
+    (*R3).y = bufOutIm[outOffset + ( 0 + me * 2 + 1 + 4 ) * 1];
+  }
 
 
-	barrier(CLK_LOCAL_MEM_FENCE);
+  barrier(CLK_LOCAL_MEM_FENCE);
 
 }
 
@@ -158,35 +162,35 @@ FwdPass1(uint rw, uint b, uint me, uint inOffset, uint outOffset, __local float
 
 
 
-	{
-		float2 W = twiddles[3 + 1*((2*me + 0)%4) + 0];
-		float TR, TI;
-		TR = (W.x * (*R1).x) - (W.y * (*R1).y);
-		TI = (W.y * (*R1).x) + (W.x * (*R1).y);
-		(*R1).x = TR;
-		(*R1).y = TI;
-	}
+  {
+    float2 W = twiddles[3 + 1 * ((2 * me + 0) % 4) + 0];
+    float TR, TI;
+    TR = (W.x * (*R1).x) - (W.y * (*R1).y);
+    TI = (W.y * (*R1).x) + (W.x * (*R1).y);
+    (*R1).x = TR;
+    (*R1).y = TI;
+  }
 
-	{
-		float2 W = twiddles[3 + 1*((2*me + 1)%4) + 0];
-		float TR, TI;
-		TR = (W.x * (*R3).x) - (W.y * (*R3).y);
-		TI = (W.y * (*R3).x) + (W.x * (*R3).y);
-		(*R3).x = TR;
-		(*R3).y = TI;
-	}
+  {
+    float2 W = twiddles[3 + 1 * ((2 * me + 1) % 4) + 0];
+    float TR, TI;
+    TR = (W.x * (*R3).x) - (W.y * (*R3).y);
+    TI = (W.y * (*R3).x) + (W.x * (*R3).y);
+    (*R3).x = TR;
+    (*R3).y = TI;
+  }
 
-	FwdRad2B1(R0, R1);
-	FwdRad2B1(R2, R3);
+  FwdRad2B1(R0, R1);
+  FwdRad2B1(R2, R3);
 
 
-	if(rw)
-	{
-	__global float4 *buff4g = bufOut;
-	
-	buff4g[ 1*me + 0 + 0 ] = (float4)((*R0).x, (*R0).y, (*R2).x, (*R2).y) ;
-	buff4g[ 1*me + 0 + 2 ] = (float4)((*R1).x, (*R1).y, (*R3).x, (*R3).y) ;
-	}
+  if(rw)
+  {
+    __global float4 *buff4g = bufOut;
+
+    buff4g[ 1 * me + 0 + 0 ] = (float4)((*R0).x, (*R0).y, (*R2).x, (*R2).y);
+    buff4g[ 1 * me + 0 + 2 ] = (float4)((*R1).x, (*R1).y, (*R3).x, (*R3).y);
+  }
 
 }
 
@@ -195,61 +199,61 @@ InvPass0(uint rw, uint b, uint me, uint inOffset, uint outOffset, __global float
 {
 
 
-	if(rw)
-	{
-	(*R0) = bufIn[inOffset + ( 0 + me*1 + 0 + 0 )*1];
-	(*R1) = bufIn[inOffset + ( 0 + me*1 + 0 + 2 )*1];
-	(*R2) = bufIn[inOffset + ( 0 + me*1 + 0 + 4 )*1];
-	(*R3) = bufIn[inOffset + ( 0 + me*1 + 0 + 6 )*1];
-	}
+  if(rw)
+  {
+    (*R0) = bufIn[inOffset + ( 0 + me * 1 + 0 + 0 ) * 1];
+    (*R1) = bufIn[inOffset + ( 0 + me * 1 + 0 + 2 ) * 1];
+    (*R2) = bufIn[inOffset + ( 0 + me * 1 + 0 + 4 ) * 1];
+    (*R3) = bufIn[inOffset + ( 0 + me * 1 + 0 + 6 ) * 1];
+  }
 
 
-	InvRad4B1(R0, R1, R2, R3);
+  InvRad4B1(R0, R1, R2, R3);
 
 
-	if(rw)
-	{
-	bufOutRe[outOffset + ( ((1*me + 0)/1)*4 + (1*me + 0)%1 + 0 )*1] = (*R0).x;
-	bufOutRe[outOffset + ( ((1*me + 0)/1)*4 + (1*me + 0)%1 + 1 )*1] = (*R1).x;
-	bufOutRe[outOffset + ( ((1*me + 0)/1)*4 + (1*me + 0)%1 + 2 )*1] = (*R2).x;
-	bufOutRe[outOffset + ( ((1*me + 0)/1)*4 + (1*me + 0)%1 + 3 )*1] = (*R3).x;
-	}
+  if(rw)
+  {
+    bufOutRe[outOffset + ( ((1 * me + 0) / 1) * 4 + (1 * me + 0) % 1 + 0 ) * 1] = (*R0).x;
+    bufOutRe[outOffset + ( ((1 * me + 0) / 1) * 4 + (1 * me + 0) % 1 + 1 ) * 1] = (*R1).x;
+    bufOutRe[outOffset + ( ((1 * me + 0) / 1) * 4 + (1 * me + 0) % 1 + 2 ) * 1] = (*R2).x;
+    bufOutRe[outOffset + ( ((1 * me + 0) / 1) * 4 + (1 * me + 0) % 1 + 3 ) * 1] = (*R3).x;
+  }
 
 
-	barrier(CLK_LOCAL_MEM_FENCE);
+  barrier(CLK_LOCAL_MEM_FENCE);
 
-	if(rw)
-	{
-	(*R0).x = bufOutRe[outOffset + ( 0 + me*2 + 0 + 0 )*1];
-	(*R1).x = bufOutRe[outOffset + ( 0 + me*2 + 0 + 4 )*1];
-	(*R2).x = bufOutRe[outOffset + ( 0 + me*2 + 1 + 0 )*1];
-	(*R3).x = bufOutRe[outOffset + ( 0 + me*2 + 1 + 4 )*1];
-	}
+  if(rw)
+  {
+    (*R0).x = bufOutRe[outOffset + ( 0 + me * 2 + 0 + 0 ) * 1];
+    (*R1).x = bufOutRe[outOffset + ( 0 + me * 2 + 0 + 4 ) * 1];
+    (*R2).x = bufOutRe[outOffset + ( 0 + me * 2 + 1 + 0 ) * 1];
+    (*R3).x = bufOutRe[outOffset + ( 0 + me * 2 + 1 + 4 ) * 1];
+  }
 
 
-	barrier(CLK_LOCAL_MEM_FENCE);
+  barrier(CLK_LOCAL_MEM_FENCE);
 
-	if(rw)
-	{
-	bufOutIm[outOffset + ( ((1*me + 0)/1)*4 + (1*me + 0)%1 + 0 )*1] = (*R0).y;
-	bufOutIm[outOffset + ( ((1*me + 0)/1)*4 + (1*me + 0)%1 + 1 )*1] = (*R1).y;
-	bufOutIm[outOffset + ( ((1*me + 0)/1)*4 + (1*me + 0)%1 + 2 )*1] = (*R2).y;
-	bufOutIm[outOffset + ( ((1*me + 0)/1)*4 + (1*me + 0)%1 + 3 )*1] = (*R3).y;
-	}
+  if(rw)
+  {
+    bufOutIm[outOffset + ( ((1 * me + 0) / 1) * 4 + (1 * me + 0) % 1 + 0 ) * 1] = (*R0).y;
+    bufOutIm[outOffset + ( ((1 * me + 0) / 1) * 4 + (1 * me + 0) % 1 + 1 ) * 1] = (*R1).y;
+    bufOutIm[outOffset + ( ((1 * me + 0) / 1) * 4 + (1 * me + 0) % 1 + 2 ) * 1] = (*R2).y;
+    bufOutIm[outOffset + ( ((1 * me + 0) / 1) * 4 + (1 * me + 0) % 1 + 3 ) * 1] = (*R3).y;
+  }
 
 
-	barrier(CLK_LOCAL_MEM_FENCE);
+  barrier(CLK_LOCAL_MEM_FENCE);
 
-	if(rw)
-	{
-	(*R0).y = bufOutIm[outOffset + ( 0 + me*2 + 0 + 0 )*1];
-	(*R1).y = bufOutIm[outOffset + ( 0 + me*2 + 0 + 4 )*1];
-	(*R2).y = bufOutIm[outOffset + ( 0 + me*2 + 1 + 0 )*1];
-	(*R3).y = bufOutIm[outOffset + ( 0 + me*2 + 1 + 4 )*1];
-	}
+  if(rw)
+  {
+    (*R0).y = bufOutIm[outOffset + ( 0 + me * 2 + 0 + 0 ) * 1];
+    (*R1).y = bufOutIm[outOffset + ( 0 + me * 2 + 0 + 4 ) * 1];
+    (*R2).y = bufOutIm[outOffset + ( 0 + me * 2 + 1 + 0 ) * 1];
+    (*R3).y = bufOutIm[outOffset + ( 0 + me * 2 + 1 + 4 ) * 1];
+  }
 
 
-	barrier(CLK_LOCAL_MEM_FENCE);
+  barrier(CLK_LOCAL_MEM_FENCE);
 
 }
 
@@ -259,98 +263,100 @@ InvPass1(uint rw, uint b, uint me, uint inOffset, uint outOffset, __local float
 
 
 
-	{
-		float2 W = twiddles[3 + 1*((2*me + 0)%4) + 0];
-		float TR, TI;
-		TR =  (W.x * (*R1).x) + (W.y * (*R1).y);
-		TI = -(W.y * (*R1).x) + (W.x * (*R1).y);
-		(*R1).x = TR;
-		(*R1).y = TI;
-	}
+  {
+    float2 W = twiddles[3 + 1 * ((2 * me + 0) % 4) + 0];
+    float TR, TI;
+    TR = (W.x * (*R1).x) + (W.y * (*R1).y);
+    TI = -(W.y * (*R1).x) + (W.x * (*R1).y);
+    (*R1).x = TR;
+    (*R1).y = TI;
+  }
+
+  {
+    float2 W = twiddles[3 + 1 * ((2 * me + 1) % 4) + 0];
+    float TR, TI;
+    TR = (W.x * (*R3).x) + (W.y * (*R3).y);
+    TI = -(W.y * (*R3).x) + (W.x * (*R3).y);
+    (*R3).x = TR;
+    (*R3).y = TI;
+  }
 
-	{
-		float2 W = twiddles[3 + 1*((2*me + 1)%4) + 0];
-		float TR, TI;
-		TR =  (W.x * (*R3).x) + (W.y * (*R3).y);
-		TI = -(W.y * (*R3).x) + (W.x * (*R3).y);
-		(*R3).x = TR;
-		(*R3).y = TI;
-	}
+  InvRad2B1(R0, R1);
+  InvRad2B1(R2, R3);
 
-	InvRad2B1(R0, R1);
-	InvRad2B1(R2, R3);
 
+  if(rw)
+  {
+    __global float4 *buff4g = bufOut;
 
-	if(rw)
-	{
-	__global float4 *buff4g = bufOut;
-	
-	buff4g[ 1*me + 0 + 0 ] = (float4)((*R0).x, (*R0).y, (*R2).x, (*R2).y)  * 1.2500000000000000e-01f;
-	buff4g[ 1*me + 0 + 2 ] = (float4)((*R1).x, (*R1).y, (*R3).x, (*R3).y)  * 1.2500000000000000e-01f;
-	}
+    buff4g[ 1 * me + 0 + 0 ] = (float4)((*R0).x, (*R0).y, (*R2).x, (*R2).y) * 1.2500000000000000e-01f;
+    buff4g[ 1 * me + 0 + 2 ] = (float4)((*R1).x, (*R1).y, (*R3).x, (*R3).y) * 1.2500000000000000e-01f;
+  }
 
 }
 
- typedef union  { uint u; int i; } cb_t;
+typedef union  { uint u;
+                 int i;
+} cb_t;
 
 __kernel __attribute__((reqd_work_group_size (64,1,1)))
 //void fft_fwd(__constant cb_t *cb __attribute__((max_constant_size(32))), __global const float2 * restrict gbIn, __global float2 * restrict gbOut)
 void fft_fwd(__global const float2 * restrict gbIn, __global float2 * restrict gbOut)
 {
-	uint me = get_local_id(0);
-	uint batch = get_group_id(0);
+  uint me = get_local_id(0);
+  uint batch = get_group_id(0);
 
-	__local float lds[256];
+  __local float lds[256];
 
-	uint iOffset;
-	uint oOffset;
-	__global float2 *lwbIn;
-	__global float2 *lwbOut;
+  uint iOffset;
+  uint oOffset;
+  __global float2 *lwbIn;
+  __global float2 *lwbOut;
 
-	float2 R0, R1, R2, R3;
+  float2 R0, R1, R2, R3;
 
-	//uint rw = (me < ((cb[0].u) - batch*32)*2) ? 1 : 0;
-	uint rw = (me < ((1) - batch*32)*2) ? 1 : 0;
+  //uint rw = (me < ((cb[0].u) - batch*32)*2) ? 1 : 0;
+  uint rw = (me < ((1) - batch * 32) * 2) ? 1 : 0;
 
-	uint b = 0;
+  uint b = 0;
 
-	iOffset = (batch*32 + (me/2))*8;
-	oOffset = (batch*32 + (me/2))*8;
-	lwbIn = gbIn + iOffset;
-	lwbOut = gbOut + oOffset;
+  iOffset = (batch * 32 + (me / 2)) * 8;
+  oOffset = (batch * 32 + (me / 2)) * 8;
+  lwbIn = gbIn + iOffset;
+  lwbOut = gbOut + oOffset;
 
-	FwdPass0(rw, b, me%2, 0, (me/2)*8, lwbIn, lds, lds, &R0, &R1, &R2, &R3);
-	FwdPass1(rw, b, me%2, (me/2)*8, 0, lds, lds, lwbOut, &R0, &R1, &R2, &R3);
+  FwdPass0(rw, b, me % 2, 0, (me / 2) * 8, lwbIn, lds, lds, &R0, &R1, &R2, &R3);
+  FwdPass1(rw, b, me % 2, (me / 2) * 8, 0, lds, lds, lwbOut, &R0, &R1, &R2, &R3);
 }
 
 __kernel __attribute__((reqd_work_group_size (64,1,1)))
 //void fft_back(__constant cb_t *cb __attribute__((max_constant_size(32))), __global const float2 * restrict gbIn, __global float2 * restrict gbOut)
 void fft_back(__global const float2 * restrict gbIn, __global float2 * restrict gbOut)
 {
-	uint me = get_local_id(0);
-	uint batch = get_group_id(0);
+  uint me = get_local_id(0);
+  uint batch = get_group_id(0);
 
-	__local float lds[256];
+  __local float lds[256];
 
-	uint iOffset;
-	uint oOffset;
-	__global float2 *lwbIn;
-	__global float2 *lwbOut;
+  uint iOffset;
+  uint oOffset;
+  __global float2 *lwbIn;
+  __global float2 *lwbOut;
 
-	float2 R0, R1, R2, R3;
+  float2 R0, R1, R2, R3;
 
-	//uint rw = (me < ((cb[0].u) - batch*32)*2) ? 1 : 0;
-	uint rw = (me < ((1) - batch*32)*2) ? 1 : 0;
+  //uint rw = (me < ((cb[0].u) - batch*32)*2) ? 1 : 0;
+  uint rw = (me < ((1) - batch * 32) * 2) ? 1 : 0;
 
-	uint b = 0;
+  uint b = 0;
 
-	iOffset = (batch*32 + (me/2))*8;
-	oOffset = (batch*32 + (me/2))*8;
-	lwbIn = gbIn + iOffset;
-	lwbOut = gbOut + oOffset;
+  iOffset = (batch * 32 + (me / 2)) * 8;
+  oOffset = (batch * 32 + (me / 2)) * 8;
+  lwbIn = gbIn + iOffset;
+  lwbOut = gbOut + oOffset;
 
-	InvPass0(rw, b, me%2, 0, (me/2)*8, lwbIn, lds, lds, &R0, &R1, &R2, &R3);
-	InvPass1(rw, b, me%2, (me/2)*8, 0, lds, lds, lwbOut, &R0, &R1, &R2, &R3);
+  InvPass0(rw, b, me % 2, 0, (me / 2) * 8, lwbIn, lds, lds, &R0, &R1, &R2, &R3);
+  InvPass1(rw, b, me % 2, (me / 2) * 8, 0, lds, lds, lwbOut, &R0, &R1, &R2, &R3);
 }
 
 
diff --git a/RTCP/Cobalt/GPUProc/src/global_defines.cc b/RTCP/Cobalt/GPUProc/src/global_defines.cc
index 71ea36b2ac1d3c10daf15131be4a62267672fa03..792a0a0ef55fca459900d3802480515b95f9e831 100644
--- a/RTCP/Cobalt/GPUProc/src/global_defines.cc
+++ b/RTCP/Cobalt/GPUProc/src/global_defines.cc
@@ -1,48 +1,48 @@
 #include "lofar_config.h"
-#include <stdlib.h> 
+#include <stdlib.h>
 #include "CL/cl.hpp"
 #include <cstdio>
 
-namespace LOFAR 
+namespace LOFAR
 {
-    namespace RTCP 
-    {
-        bool	 profiling = false;
-        const char *str = getenv("NR_GPUS");
-        unsigned nrGPUs = str ? atoi(str) : 1;
+  namespace RTCP
+  {
+    bool profiling = false;
+    const char *str = getenv("NR_GPUS");
+    unsigned nrGPUs = str ? atoi(str) : 1;
 
         #if defined __linux__
 
-        inline void set_affinity(unsigned device)
-        {
+    inline void set_affinity(unsigned device)
+    {
 #if 0
-            static const char mapping[1][12] = {
-                0,  1,  2,  3,  8,  9, 10, 11,
-            };
+      static const char mapping[1][12] = {
+        0,  1,  2,  3,  8,  9, 10, 11,
+      };
 #else
-            static const char mapping[8][12] = {
-                { 0,  1,  2,  3,  4,  5, 12, 13, 14, 15, 16, 17, },
-                { 0,  1,  2,  3,  4,  5, 12, 13, 14, 15, 16, 17, },
-                { 0,  1,  2,  3,  4,  5, 12, 13, 14, 15, 16, 17, },
-                { 0,  1,  2,  3,  4,  5, 12, 13, 14, 15, 16, 17, },
-                { 6,  7,  8,  9, 10, 11, 18, 19, 20, 21, 22, 23, },
-                { 6,  7,  8,  9, 10, 11, 18, 19, 20, 21, 22, 23, },
-                { 6,  7,  8,  9, 10, 11, 18, 19, 20, 21, 22, 23, },
-                { 6,  7,  8,  9, 10, 11, 18, 19, 20, 21, 22, 23, },
-            };
+      static const char mapping[8][12] = {
+        { 0,  1,  2,  3,  4,  5, 12, 13, 14, 15, 16, 17, },
+        { 0,  1,  2,  3,  4,  5, 12, 13, 14, 15, 16, 17, },
+        { 0,  1,  2,  3,  4,  5, 12, 13, 14, 15, 16, 17, },
+        { 0,  1,  2,  3,  4,  5, 12, 13, 14, 15, 16, 17, },
+        { 6,  7,  8,  9, 10, 11, 18, 19, 20, 21, 22, 23, },
+        { 6,  7,  8,  9, 10, 11, 18, 19, 20, 21, 22, 23, },
+        { 6,  7,  8,  9, 10, 11, 18, 19, 20, 21, 22, 23, },
+        { 6,  7,  8,  9, 10, 11, 18, 19, 20, 21, 22, 23, },
+      };
 #endif
 
-            cpu_set_t set;
+      cpu_set_t set;
 
-            CPU_ZERO(&set);
+      CPU_ZERO(&set);
 
-            for (unsigned coreIndex = 0; coreIndex < 12; coreIndex ++)
-                CPU_SET(mapping[device][coreIndex], &set);
+      for (unsigned coreIndex = 0; coreIndex < 12; coreIndex++)
+        CPU_SET(mapping[device][coreIndex], &set);
 
-            if (sched_setaffinity(0, sizeof set, &set) < 0)
-                perror("sched_setaffinity");
-        }
+      if (sched_setaffinity(0, sizeof set, &set) < 0)
+        perror("sched_setaffinity");
+    }
 
 #endif
-    }
+  }
 }
diff --git a/RTCP/Cobalt/GPUProc/src/global_defines.h b/RTCP/Cobalt/GPUProc/src/global_defines.h
index 81278ab8b96aa90386fc61292255a68b3d4f7e09..69adb7e56450c1ed759595150dbc48d9c4710e5d 100644
--- a/RTCP/Cobalt/GPUProc/src/global_defines.h
+++ b/RTCP/Cobalt/GPUProc/src/global_defines.h
@@ -7,21 +7,21 @@
 #include <sys/time.h>
 #endif
 
-#define NR_STATION_FILTER_TAPS	16
+#define NR_STATION_FILTER_TAPS  16
 #define USE_NEW_CORRELATOR
-#define NR_POLARIZATIONS	 2
-#define NR_TAPS			16
+#define NR_POLARIZATIONS         2
+#define NR_TAPS                 16
 #define USE_2X2
 #undef USE_CUSTOM_FFT
 #undef USE_TEST_DATA
 #undef USE_B7015
 
-namespace LOFAR 
+namespace LOFAR
 {
-    namespace RTCP 
-    {
-        extern bool	 profiling;
-        extern unsigned nrGPUs;
-    }
+  namespace RTCP
+  {
+    extern bool profiling;
+    extern unsigned nrGPUs;
+  }
 }
 #endif
diff --git a/RTCP/Cobalt/GPUProc/src/math.cl b/RTCP/Cobalt/GPUProc/src/math.cl
index 180a0d604040a88b61d8b3baeee616ac6f9c5902..7f07123ea038aa570f19d420c8a0969440b29fd6 100644
--- a/RTCP/Cobalt/GPUProc/src/math.cl
+++ b/RTCP/Cobalt/GPUProc/src/math.cl
@@ -2,7 +2,7 @@ typedef float2 fcomplex;
 typedef float4 fcomplex2;
 typedef float8 fcomplex4;
 
-typedef char4  char_complex2;
+typedef char4 char_complex2;
 typedef short4 short_complex2;
 
 
diff --git a/RTCP/Cobalt/GPUProc/test/RTCP_UnitTest.cc b/RTCP/Cobalt/GPUProc/test/RTCP_UnitTest.cc
index c3ef67e614a399488b73cab78042d3fc7b498354..8cc2cf753cfee8d54c86ba5c439c6823fd3d8e48 100644
--- a/RTCP/Cobalt/GPUProc/test/RTCP_UnitTest.cc
+++ b/RTCP/Cobalt/GPUProc/test/RTCP_UnitTest.cc
@@ -27,7 +27,7 @@
 //#include "UnitTests/AMD_FFT_Test.h"
 #include "UnitTests/FIR_FilterTest.h"
 
-//#include  <UnitTest++.h>  
+//#include  <UnitTest++.h>
 
 using namespace LOFAR;
 using namespace LOFAR::RTCP;
@@ -38,52 +38,52 @@ Exception::TerminateHandler t(OpenCL_Support::terminate);
 int main(int argc, char **argv)
 {
 
-    INIT_LOGGER("RTCP");
-    std::cout << "running ..." << std::endl;
+  INIT_LOGGER("RTCP");
+  std::cout << "running ..." << std::endl;
 
-    if (argc < 2)
-    {
-        std::cerr << "usage: " << argv[0] << " parset" << std::endl;
-        return 1;
-    }
+  if (argc < 2)
+  {
+    std::cerr << "usage: " << argv[0] << " parset" << std::endl;
+    return 1;
+  }
 
-    Parset ps(argv[1]);
+  Parset ps(argv[1]);
 
-    // TODO: defines to vars + loop over val ranges.
-    std::cout << "Obs ps: nSt=" << ps.nrStations() << " nPol=" << NR_POLARIZATIONS
-              << " nSampPerCh=" << ps.nrSamplesPerChannel() << " nChPerSb="
-              << ps.nrChannelsPerSubband() << " nTaps=" << ps.nrPPFTaps()
-              << " nBitsPerSamp=" << ps.nrBitsPerSample() << std::endl;
+  // TODO: defines to vars + loop over val ranges.
+  std::cout << "Obs ps: nSt=" << ps.nrStations() << " nPol=" << NR_POLARIZATIONS
+            << " nSampPerCh=" << ps.nrSamplesPerChannel() << " nChPerSb="
+            << ps.nrChannelsPerSubband() << " nTaps=" << ps.nrPPFTaps()
+            << " nBitsPerSamp=" << ps.nrBitsPerSample() << std::endl;
 
 
-    (FIR_FilterTest)(ps);
-    (FFT_Test)(ps);
-    //(AMD_FFT_Test)(ps);
+  (FIR_FilterTest)(ps);
+  (FFT_Test)(ps);
+  //(AMD_FFT_Test)(ps);
 
-    //(CorrelatorTest)(ps);       //needs parset AARTFAAC!!
-    //(CorrelateRectangleTest)(ps); //needs parset AARTFAAC!!
+  //(CorrelatorTest)(ps);       //needs parset AARTFAAC!!
+  //(CorrelateRectangleTest)(ps); //needs parset AARTFAAC!!
 
-    //works with all parsets
-    //Correlate unittest 
-    (CorrelateTriangleTest)(ps);
+  //works with all parsets
+  //Correlate unittest
+  (CorrelateTriangleTest)(ps);
 
-    ////UHEP unittest
-    (UHEP_BeamFormerTest)(ps);
-    (UHEP_TransposeTest)(ps);
-    (UHEP_TriggerTest)(ps);
+  ////UHEP unittest
+  (UHEP_BeamFormerTest)(ps);
+  (UHEP_TransposeTest)(ps);
+  (UHEP_TriggerTest)(ps);
 
-    //// beamformed unittest 
-    (IncoherentStokesTest)(ps);
-    (IntToFloatTest)(ps);
-    (BeamFormerTest)(ps);
-    (BeamFormerTransposeTest)(ps);
-    (DedispersionChirpTest)(ps);
-    (CoherentStokesTest)(ps);
+  //// beamformed unittest
+  (IncoherentStokesTest)(ps);
+  (IntToFloatTest)(ps);
+  (BeamFormerTest)(ps);
+  (BeamFormerTransposeTest)(ps);
+  (DedispersionChirpTest)(ps);
+  (CoherentStokesTest)(ps);
 
 
-    //the actual unittests!
+  //the actual unittests!
+
+  return 0;
+  //return UnitTest::RunAllTests();
 
-    return 0;
-    //return UnitTest::RunAllTests();
-    
 }
diff --git a/RTCP/Cobalt/GPUProc/test/UnitTests/BeamFormerTest.cc b/RTCP/Cobalt/GPUProc/test/UnitTests/BeamFormerTest.cc
index 40b2cb749daef705fc0181f23207e05609fee617..97a0267561bda569678547401745dd09c0d90e99 100644
--- a/RTCP/Cobalt/GPUProc/test/UnitTests/BeamFormerTest.cc
+++ b/RTCP/Cobalt/GPUProc/test/UnitTests/BeamFormerTest.cc
@@ -1,8 +1,8 @@
-  // test.cpp
+// test.cpp
   #include <UnitTest++.h>
 
-  TEST(FailSpectacularly2)
-  {
-    CHECK(true);
-  }
+TEST(FailSpectacularly2)
+{
+  CHECK(true);
+}
 
diff --git a/RTCP/Cobalt/GPUProc/test/UnitTests/new_style_unittest.cc b/RTCP/Cobalt/GPUProc/test/UnitTests/new_style_unittest.cc
index 8d679db5a4df92a72ef511f8dbe6e4a05e38604e..0cf7cec02893350e46d91485e457903d92dc59e7 100644
--- a/RTCP/Cobalt/GPUProc/test/UnitTests/new_style_unittest.cc
+++ b/RTCP/Cobalt/GPUProc/test/UnitTests/new_style_unittest.cc
@@ -1,8 +1,8 @@
-  // test.cpp
+// test.cpp
   #include <UnitTest++.h>
 
-  TEST(FailSpectacularly)
-  {
-    CHECK(true);
-  }
+TEST(FailSpectacularly)
+{
+  CHECK(true);
+}
 
diff --git a/RTCP/Cobalt/GPUProc/test/tBestEffortQueue.cc b/RTCP/Cobalt/GPUProc/test/tBestEffortQueue.cc
index 08c92c2f2b642e52ed69c40c1343a36838acb841..4d325e0eb1bbef75db3f00b7b1a6154466013a97 100644
--- a/RTCP/Cobalt/GPUProc/test/tBestEffortQueue.cc
+++ b/RTCP/Cobalt/GPUProc/test/tBestEffortQueue.cc
@@ -8,7 +8,8 @@ using namespace LOFAR;
 using namespace RTCP;
 using namespace std;
 
-void test_drop() {
+void test_drop()
+{
   // check if blocks are dropped if queue is full
   size_t queueSize = 10;
   BestEffortQueue<size_t> queue(queueSize, true);
@@ -32,7 +33,8 @@ void test_drop() {
   ASSERT(queue.empty());
 }
 
-void test_nondrop() {
+void test_nondrop()
+{
   size_t queueSize = 10;
   BestEffortQueue<size_t> queue(queueSize, false);
 
@@ -64,7 +66,8 @@ void test_nondrop() {
   ASSERT(queue.empty());
 }
 
-void test_nomore() {
+void test_nomore()
+{
   size_t queueSize = 10;
   BestEffortQueue<size_t> queue(queueSize, false);
 
@@ -92,7 +95,8 @@ void test_nomore() {
   ASSERT(!queue.append(1));
 }
 
-int main() {
+int main()
+{
   INIT_LOGGER( "tBestEffortQueue" );
 
   // abort program if code blocks
diff --git a/RTCP/Cobalt/GPUProc/test/tContext.cc b/RTCP/Cobalt/GPUProc/test/tContext.cc
index 2590d8b97f4110c732fcce3a8b90a7e5aba9b957..12ea24af28c120b05596a7a81114c2410adca283 100644
--- a/RTCP/Cobalt/GPUProc/test/tContext.cc
+++ b/RTCP/Cobalt/GPUProc/test/tContext.cc
@@ -8,14 +8,16 @@ using namespace RTCP;
 using namespace std;
 
 // test OpenCL context creation
-void test_create() {
+void test_create()
+{
   cl::Context context;
   vector<cl::Device> devices;
 
   createContext(context, devices);
 }
 
-int main() {
+int main()
+{
   INIT_LOGGER( "tContext" );
 
   test_create();
diff --git a/RTCP/Cobalt/GPUProc/test/tDelayCompensation.cc b/RTCP/Cobalt/GPUProc/test/tDelayCompensation.cc
index 194064d8366e75ca316a2e97896c7dfdce6e0a42..f9a422500409b4bcf1a149c8e953bd77c24ffb28 100644
--- a/RTCP/Cobalt/GPUProc/test/tDelayCompensation.cc
+++ b/RTCP/Cobalt/GPUProc/test/tDelayCompensation.cc
@@ -1,12 +1,12 @@
-  // test.cpp
+// test.cpp
   #include <UnitTest++.h>
 
-  TEST(FailSpectacularly)
-  {
-    CHECK(false);
-  }
+TEST(FailSpectacularly)
+{
+  CHECK(false);
+}
 
-  int main()
-  {
-    return UnitTest::RunAllTests();
-  }
\ No newline at end of file
+int main()
+{
+  return UnitTest::RunAllTests();
+}
\ No newline at end of file
diff --git a/RTCP/Cobalt/GPUProc/test/tPerformanceCounter.cc b/RTCP/Cobalt/GPUProc/test/tPerformanceCounter.cc
index cdfd2ca6e47ad90d84fb72a5cfd51436197a697e..5aa17ca144d4a1a82b59ef51dadf8f88e01bfc38 100644
--- a/RTCP/Cobalt/GPUProc/test/tPerformanceCounter.cc
+++ b/RTCP/Cobalt/GPUProc/test/tPerformanceCounter.cc
@@ -12,12 +12,14 @@ cl::Context context;
 vector<cl::Device> devices;
 
 // test a performance counter without events
-void test_simple() {
+void test_simple()
+{
   PerformanceCounter counter("test", true);
 }
 
 // test a single event
-void test_event() {
+void test_event()
+{
   PerformanceCounter counter("test", true);
 
   // create a buffer and a queue to send the buffer
@@ -43,7 +45,8 @@ void test_event() {
   ASSERT(total.runtime > 0.0);
 }
 
-int main() {
+int main()
+{
   INIT_LOGGER( "tPerformanceCounter" );
 
   createContext(context, devices);
diff --git a/RTCP/Cobalt/GPUProc/test/tSSH.cc b/RTCP/Cobalt/GPUProc/test/tSSH.cc
index d0cc7997c9a58b59e8fcf67c4147e456e45b5f2e..a4d9d0a28573388deeb3da460bad04246dcfd094 100644
--- a/RTCP/Cobalt/GPUProc/test/tSSH.cc
+++ b/RTCP/Cobalt/GPUProc/test/tSSH.cc
@@ -15,7 +15,8 @@ using namespace LOFAR;
 using namespace RTCP;
 
 
-void test_SSHconnection( const char *cmd, bool capture ) {
+void test_SSHconnection( const char *cmd, bool capture )
+{
   const char *USER = getenv("USER");
   SSHconnection ssh("", "localhost", cmd, USER, pubkey, privkey, capture);
 
@@ -31,7 +32,8 @@ void test_SSHconnection( const char *cmd, bool capture ) {
     cout << "Captured [" << ssh.stdoutBuffer() << "]" << endl;
 }
 
-int main() {
+int main()
+{
   INIT_LOGGER( "tSSH" );
 
   // discover a working private key
diff --git a/RTCP/Cobalt/GPUProc/test/tStorageProcesses.cc b/RTCP/Cobalt/GPUProc/test/tStorageProcesses.cc
index db4819efb134b349b0f4b51ffbbc488a1b745785..37ef09f066e51f9fe5b57322e781f17aeb88d880 100644
--- a/RTCP/Cobalt/GPUProc/test/tStorageProcesses.cc
+++ b/RTCP/Cobalt/GPUProc/test/tStorageProcesses.cc
@@ -16,7 +16,8 @@ using namespace LOFAR;
 using namespace RTCP;
 using namespace std;
 
-void test_simple() {
+void test_simple()
+{
   // Test whether executing an application works. The
   // communication protocol after startup is ignored.
 
@@ -38,7 +39,8 @@ void test_simple() {
   }
 }
 
-void test_protocol() {
+void test_protocol()
+{
   // Test whether we follow the communication protocol
   // as expected by Storage_main.
 
@@ -74,7 +76,8 @@ void test_protocol() {
   }
 }
 
-int main() {
+int main()
+{
   INIT_LOGGER( "tStorageProcesses" );
 
   // prevent stalls
diff --git a/RTCP/Cobalt/InputProc/src/Buffer/BufferSettings.cc b/RTCP/Cobalt/InputProc/src/Buffer/BufferSettings.cc
index b2bd7e364af0598bf7e1eb188336660ea53fe451..97bb7116b733cc30785fe5835684a646a84e4de1 100644
--- a/RTCP/Cobalt/InputProc/src/Buffer/BufferSettings.cc
+++ b/RTCP/Cobalt/InputProc/src/Buffer/BufferSettings.cc
@@ -3,81 +3,84 @@
 #include "Buffer/SharedMemory.h"
 #include <Common/LofarLogger.h>
 
-namespace LOFAR {
-namespace RTCP {
+namespace LOFAR
+{
+  namespace RTCP
+  {
 
 
-BufferSettings::BufferSettings()
-:
-  version(currentVersion)
-{
-}
+    BufferSettings::BufferSettings()
+      :
+      version(currentVersion)
+    {
+    }
 
-BufferSettings::BufferSettings(const struct StationID &station, bool attach)
-:
-  version(currentVersion),
-  station(station)
-{
-  if (attach) {
-    do {
-      SharedStruct<struct BufferSettings> shm(station.hash(), false);
+    BufferSettings::BufferSettings(const struct StationID &station, bool attach)
+      :
+      version(currentVersion),
+      station(station)
+    {
+      if (attach) {
+        do {
+          SharedStruct<struct BufferSettings> shm(station.hash(), false);
 
-      *this = shm.get();
-    } while (!valid());  
+          *this = shm.get();
+        } while (!valid());
 
-    ASSERT( valid() );
-  } else {
-    deriveDefaultSettings();
-  }
-}
+        ASSERT( valid() );
+      } else {
+        deriveDefaultSettings();
+      }
+    }
 
 
-void BufferSettings::deriveDefaultSettings()
-{
-  switch (station.bitMode) {
-    default:
-    case 16:
-      nrBeamletsPerBoard = 61;
-      break;
-
-    case 8:
-      nrBeamletsPerBoard = 122;
-      break;
-
-    case 4:
-      nrBeamletsPerBoard = 244;
-      break;
-  }
+    void BufferSettings::deriveDefaultSettings()
+    {
+      switch (station.bitMode) {
+      default:
+      case 16:
+        nrBeamletsPerBoard = 61;
+        break;
 
-  // 1 second buffer
-  setBufferSize(1.0);
+      case 8:
+        nrBeamletsPerBoard = 122;
+        break;
 
-  nrBoards = 4;
-  nrFlagRanges = 64;
+      case 4:
+        nrBeamletsPerBoard = 244;
+        break;
+      }
 
-  dataKey = station.hash();
-}
+      // 1 second buffer
+      setBufferSize(1.0);
 
+      nrBoards = 4;
+      nrFlagRanges = 64;
 
-void BufferSettings::setBufferSize(double seconds)
-{
-  // Make sure nrSamples is a multiple of 16, which
-  // is the expected number of samples in a block.
-  //
-  // Doing so allows the writer to prevent split
-  // writes of packets. (TODO: That's not implemented,
-  // because the timestamps of the packets are not
-  // necessarily a multiple of 16).
-  nrSamples = static_cast<size_t>(seconds * (station.clockMHz * 1000000) / 1024) & ~0xFLL;
-}
+      dataKey = station.hash();
+    }
 
 
-std::ostream& operator<<( std::ostream &str, const struct BufferSettings &s ) {
-  str << s.station << " beamlets: " << (s.nrBoards * s.nrBeamletsPerBoard) << " buffer: " << (1.0 * s.nrSamples / s.station.clockMHz / 1000000 * 1024) << "s";
+    void BufferSettings::setBufferSize(double seconds)
+    {
+      // Make sure nrSamples is a multiple of 16, which
+      // is the expected number of samples in a block.
+      //
+      // Doing so allows the writer to prevent split
+      // writes of packets. (TODO: That's not implemented,
+      // because the timestamps of the packets are not
+      // necessarily a multiple of 16).
+      nrSamples = static_cast<size_t>(seconds * (station.clockMHz * 1000000) / 1024) & ~0xFLL;
+    }
 
-  return str;
-}
 
+    std::ostream& operator<<( std::ostream &str, const struct BufferSettings &s )
+    {
+      str << s.station << " beamlets: " << (s.nrBoards * s.nrBeamletsPerBoard) << " buffer: " << (1.0 * s.nrSamples / s.station.clockMHz / 1000000 * 1024) << "s";
 
-}
+      return str;
+    }
+
+
+  }
 }
diff --git a/RTCP/Cobalt/InputProc/src/Buffer/BufferSettings.h b/RTCP/Cobalt/InputProc/src/Buffer/BufferSettings.h
index a423327ba6ff536e73a78fa38d345e485eb4d296..b60978e1493cc55ef398c1d0e0d4c674b4225734 100644
--- a/RTCP/Cobalt/InputProc/src/Buffer/BufferSettings.h
+++ b/RTCP/Cobalt/InputProc/src/Buffer/BufferSettings.h
@@ -6,57 +6,66 @@
 #include "Buffer/StationID.h"
 #include <ostream>
 
-namespace LOFAR {
-namespace RTCP {
+namespace LOFAR
+{
+  namespace RTCP
+  {
 
-struct BufferSettings {
-private:
-  static const unsigned currentVersion = 1;
+    struct BufferSettings {
+    private:
+      static const unsigned currentVersion = 1;
 
-  unsigned version;
+      unsigned version;
 
-  bool valid() const { return version == currentVersion; }
+      bool valid() const
+      {
+        return version == currentVersion;
+      }
 
-public:
-  struct StationID station;
+    public:
+      struct StationID station;
 
-  unsigned nrBeamletsPerBoard;
+      unsigned nrBeamletsPerBoard;
 
-  size_t   nrSamples;
+      size_t nrSamples;
 
-  unsigned nrBoards;
-  size_t   nrFlagRanges;
+      unsigned nrBoards;
+      size_t nrFlagRanges;
 
-  key_t    dataKey;
+      key_t dataKey;
 
-  BufferSettings();
+      BufferSettings();
 
-  // if attach=true, read settings from shared memory, using the given stationID
-  // if attach=false, set sane default values
-  BufferSettings(const struct StationID &station, bool attach);
+      // if attach=true, read settings from shared memory, using the given stationID
+      // if attach=false, set sane default values
+      BufferSettings(const struct StationID &station, bool attach);
 
-  // Shortcut to set nrSamples to represent `seconds' of buffer.
-  void setBufferSize(double seconds);
+      // Shortcut to set nrSamples to represent `seconds' of buffer.
+      void setBufferSize(double seconds);
 
-  size_t flagIdx(unsigned beamlet) const { return beamlet / nrBeamletsPerBoard; }
+      size_t flagIdx(unsigned beamlet) const
+      {
+        return beamlet / nrBeamletsPerBoard;
+      }
 
-  bool operator==(const struct BufferSettings &other) const {
-    return station == other.station
-        && nrBeamletsPerBoard == other.nrBeamletsPerBoard
-        && nrSamples == other.nrSamples
-        && nrBoards == other.nrBoards
-        && nrFlagRanges == other.nrFlagRanges
-        && dataKey == other.dataKey;
-  }
-private:
+      bool operator==(const struct BufferSettings &other) const
+      {
+        return station == other.station
+               && nrBeamletsPerBoard == other.nrBeamletsPerBoard
+               && nrSamples == other.nrSamples
+               && nrBoards == other.nrBoards
+               && nrFlagRanges == other.nrFlagRanges
+               && dataKey == other.dataKey;
+      }
+    private:
 
-  // Derive sane values from the station field.
-  void deriveDefaultSettings();
-};
+      // Derive sane values from the station field.
+      void deriveDefaultSettings();
+    };
 
-std::ostream& operator<<( std::ostream &str, const struct BufferSettings &s );
+    std::ostream& operator<<( std::ostream &str, const struct BufferSettings &s );
 
-}
+  }
 }
 
 #endif
diff --git a/RTCP/Cobalt/InputProc/src/Buffer/Ranges.cc b/RTCP/Cobalt/InputProc/src/Buffer/Ranges.cc
index ac25d93263c998982f950c105a0f2e9bfb817e5a..4909402aab0ee0b6736483491fbaa8a5ae809e53 100644
--- a/RTCP/Cobalt/InputProc/src/Buffer/Ranges.cc
+++ b/RTCP/Cobalt/InputProc/src/Buffer/Ranges.cc
@@ -2,159 +2,161 @@
 #include "Buffer/Ranges.h"
 #include <Common/LofarLogger.h>
 
-namespace LOFAR {
-namespace RTCP {
-
-std::ostream& operator<<( std::ostream &str, const Ranges &r )
+namespace LOFAR
 {
-  for (struct Ranges::Range *i = r.begin; i != r.end; ++i)
-    if (i->to != 0)
-      str << "[" << i->from << ", " << i->to << ") ";
-
-  return str;
-}
+  namespace RTCP
+  {
 
-Ranges::Ranges()
-:
-  create(false),
-  len(0),
-  ranges(0),
-  begin(0),
-  end(begin),
-  head(begin),
-  minHistory(0)
-{
-}
+    std::ostream& operator<<( std::ostream &str, const Ranges &r )
+    {
+      for (struct Ranges::Range *i = r.begin; i != r.end; ++i)
+        if (i->to != 0)
+          str << "[" << i->from << ", " << i->to << ") ";
 
-Ranges::Ranges( void *data, size_t numBytes, int64 minHistory, bool create )
-:
-  create(create),
-  len(numBytes / sizeof *ranges),
-  ranges(create ? new(data)Range[len] : static_cast<Range*>(data)),
-  begin(&ranges[0]),
-  end(&ranges[len]),
-  head(begin),
-  minHistory(minHistory)
-{
-  ASSERT( len > 0 );
-}
+      return str;
+    }
 
-Ranges::~Ranges()
-{
-  if (create)
-    for (struct Range *i = begin; i != end; ++i)
-      i->~Range();
-}
+    Ranges::Ranges()
+      :
+      create(false),
+      len(0),
+      ranges(0),
+      begin(0),
+      end(begin),
+      head(begin),
+      minHistory(0)
+    {
+    }
 
-void Ranges::excludeBefore( int64 to )
-{
-  for (struct Range *i = begin; i != end; ++i) {
-    if (i->to <= to) {
-      // erase; delete 'to' first!
-      i->to = 0;
-      i->from = 0;
-      continue;
+    Ranges::Ranges( void *data, size_t numBytes, int64 minHistory, bool create )
+      :
+      create(create),
+      len(numBytes / sizeof *ranges),
+      ranges(create ? new(data)Range[len] : static_cast<Range*>(data)),
+      begin(&ranges[0]),
+      end(&ranges[len]),
+      head(begin),
+      minHistory(minHistory)
+    {
+      ASSERT( len > 0 );
     }
 
-    if (i->from < to) {
-      // shorten
-      i->from = to;
+    Ranges::~Ranges()
+    {
+      if (create)
+        for (struct Range *i = begin; i != end; ++i)
+          i->~Range();
     }
-  }
-}
 
-bool Ranges::include( int64 from, int64 to )
-{
-  ASSERTSTR( from < to, from << " < " << to );
-  ASSERTSTR( from >= head->to, from << " >= " << head->to );
-
-  if (head->to == 0) {
-    // *head is unused, set 'from' first!
-    head->from = from;
-    head->to   = to;
-    return true;
-  }
+    void Ranges::excludeBefore( int64 to )
+    {
+      for (struct Range *i = begin; i != end; ++i) {
+        if (i->to <= to) {
+          // erase; delete 'to' first!
+          i->to = 0;
+          i->from = 0;
+          continue;
+        }
+
+        if (i->from < to) {
+          // shorten
+          i->from = to;
+        }
+      }
+    }
 
-  if (head->to == from) {
-    // *head can be extended
-    head->to = to;
-    return true;
-  }
+    bool Ranges::include( int64 from, int64 to )
+    {
+      ASSERTSTR( from < to, from << " < " << to );
+      ASSERTSTR( from >= head->to, from << " >= " << head->to );
+
+      if (head->to == 0) {
+        // *head is unused, set 'from' first!
+        head->from = from;
+        head->to = to;
+        return true;
+      }
+
+      if (head->to == from) {
+        // *head can be extended
+        head->to = to;
+        return true;
+      }
+
+      // new range is needed
+      struct Range * const next = head + 1 == end ? begin : head + 1;
+
+      if (next->to == 0 || next->to < to - minHistory) {
+        // range at 'next' is either unused or old enough to toss away
+        next->from = from;
+        next->to = to;
+
+        head = next;
+        return true;
+      }
+
+      // no room -- discard
+      return false;
+    }
 
-  // new range is needed
-  struct Range * const next = head + 1 == end ? begin : head + 1;
+    bool Ranges::anythingBetween( int64 first, int64 last ) const
+    {
+      for(struct Range *i = begin; i != end; ++i) {
+        // read in same order as writes occur
+        int64 from = i->from;
+        int64 to = i->to;
 
-  if (next->to == 0 || next->to < to - minHistory) {
-    // range at 'next' is either unused or old enough to toss away
-    next->from = from;
-    next->to   = to;
+        if (to == 0) {
+          // unused
+          continue;
+        }
 
-    head = next;
-    return true;
-  }
+        if (from >= to) {
+          // read/write conflict
+          continue;
+        }
 
-  // no room -- discard
-  return false;
-}
+        from = std::max( from, first );
+        to = std::min( to, last );
 
-bool Ranges::anythingBetween( int64 first, int64 last ) const
-{
-  for(struct Range *i = begin; i != end; ++i) {
-    // read in same order as writes occur
-    int64 from = i->from;
-    int64 to   = i->to;
-
-    if (to == 0) {
-      // unused
-      continue;
-    }
+        if (from < to)
+          return true;
+      }
 
-    if (from >= to) {
-      // read/write conflict
-      continue;
+      return false;
     }
 
-    from = std::max( from, first );
-    to   = std::min( to, last );
+    SparseSet<int64> Ranges::sparseSet( int64 first, int64 last ) const
+    {
+      SparseSet<int64> result;
 
-    if (from < to)
-      return true;
-  }
+      if (first >= last)
+        return result;
 
-  return false;
-}
+      for(struct Range *i = begin; i != end; ++i) {
+        // read in same order as writes occur
+        int64 from = i->from;
+        int64 to = i->to;
 
-SparseSet<int64> Ranges::sparseSet( int64 first, int64 last ) const
-{
-  SparseSet<int64> result;
+        if (to == 0) {
+          // unused
+          continue;
+        }
 
-  if (first >= last)
-    return result;
+        if (from >= to) {
+          // read/write conflict
+          continue;
+        }
 
-  for(struct Range *i = begin; i != end; ++i) {
-    // read in same order as writes occur
-    int64 from = i->from;
-    int64 to   = i->to;
+        from = std::max( from, first );
+        to = std::min( to, last );
 
-    if (to == 0) {
-      // unused
-      continue;
-    }
+        if (from < to)
+          result.include(from, to);
+      }
 
-    if (from >= to) {
-      // read/write conflict
-      continue;
+      return result;
     }
 
-    from = std::max( from, first );
-    to   = std::min( to, last );
-
-    if (from < to)
-      result.include(from, to);
   }
-
-  return result;
-}
-
-}
 }
diff --git a/RTCP/Cobalt/InputProc/src/Buffer/Ranges.h b/RTCP/Cobalt/InputProc/src/Buffer/Ranges.h
index 849372161ec19ce1cef89c540b8e5818f102c9cb..e0af17c8ce30f43120bb8963f7fa1cee5711d11d 100644
--- a/RTCP/Cobalt/InputProc/src/Buffer/Ranges.h
+++ b/RTCP/Cobalt/InputProc/src/Buffer/Ranges.h
@@ -7,80 +7,89 @@
 
 #include <ostream>
 
-namespace LOFAR {
-namespace RTCP {
-
-//
-// Thread-safe, lock-free set of int64 [from,to) ranges.
-//
-// This implementation is thread safe for one writer and any number
-// of readers.
-//
-// To maintain integrity, we maintain a fixed set of [from,to)
-// ranges. For any range, if to == 0, the range is either unused
-// or in the process of being updated. The calling process needs
-// to make sure that it updates ranges in an order that ensures
-// integrity w.r.t. the data that is represented. That is,
-// exclude ranges that will be overwritten before writing and
-// including the new data.
-
-class Ranges {
-public:
-  Ranges();
-  Ranges( void *data, size_t numBytes, int64 minHistory, bool create );
-  ~Ranges();
-
-  // Remove [0,to)
-  void excludeBefore( int64 to );
-
-  // Add a range [from,to), and return whether the addition
-  // was succesful.
-  bool include( int64 from, int64 to );
-
-  // Returns whether there is anything set in [first, last)
-  bool anythingBetween( int64 first, int64 last ) const;
-
-  // Returns [first, last) as a SparseSet
-  SparseSet<int64> sparseSet( int64 first, int64 last ) const;
-
-  // The size of a single [from,to) pair.
-  static size_t elementSize() { return sizeof(struct Range); }
-
-private:
-  struct Range {
-    // Write 'from' before 'to' to allow the following invariant:
-    //
-    // from <  to   : a valid range
-    // from >= to   : invalid range (being written)
-    // from = to = 0: an unused range
-    volatile int64 from, to;
-
-    Range(): from(0), to(0) {}
-  };
-
-  bool create;
-  size_t len;
-  Range *ranges;
-  Range *begin;
-  Range *end;
-  Range *head;
-
-  // minimal history to maintain (samples newer than this
-  // will be maintained in favour of newly added ranges)
-  int64 minHistory;
-
-public:
-  // The size of this object for a given number of [from,to) pairs.
-  static size_t size(size_t numElements) {
-    return numElements * sizeof(struct Range);
-  }
+namespace LOFAR
+{
+  namespace RTCP
+  {
 
-  friend std::ostream& operator<<( std::ostream &str, const Ranges &r );
-};
-
-std::ostream& operator<<( std::ostream &str, const Ranges &r );
+    //
+    // Thread-safe, lock-free set of int64 [from,to) ranges.
+    //
+    // This implementation is thread safe for one writer and any number
+    // of readers.
+    //
+    // To maintain integrity, we maintain a fixed set of [from,to)
+    // ranges. For any range, if to == 0, the range is either unused
+    // or in the process of being updated. The calling process needs
+    // to make sure that it updates ranges in an order that ensures
+    // integrity w.r.t. the data that is represented. That is,
+    // exclude ranges that will be overwritten before writing and
+    // including the new data.
+
+    class Ranges
+    {
+    public:
+      Ranges();
+      Ranges( void *data, size_t numBytes, int64 minHistory, bool create );
+      ~Ranges();
+
+      // Remove [0,to)
+      void excludeBefore( int64 to );
+
+      // Add a range [from,to), and return whether the addition
+      // was succesful.
+      bool include( int64 from, int64 to );
+
+      // Returns whether there is anything set in [first, last)
+      bool anythingBetween( int64 first, int64 last ) const;
+
+      // Returns [first, last) as a SparseSet
+      SparseSet<int64> sparseSet( int64 first, int64 last ) const;
+
+      // The size of a single [from,to) pair.
+      static size_t elementSize()
+      {
+        return sizeof(struct Range);
+      }
+
+    private:
+      struct Range {
+        // Write 'from' before 'to' to allow the following invariant:
+        //
+        // from <  to   : a valid range
+        // from >= to   : invalid range (being written)
+        // from = to = 0: an unused range
+        volatile int64 from, to;
+
+        Range() : from(0), to(0)
+        {
+        }
+      };
+
+      bool create;
+      size_t len;
+      Range *ranges;
+      Range *begin;
+      Range *end;
+      Range *head;
+
+      // minimal history to maintain (samples newer than this
+      // will be maintained in favour of newly added ranges)
+      int64 minHistory;
+
+    public:
+      // The size of this object for a given number of [from,to) pairs.
+      static size_t size(size_t numElements)
+      {
+        return numElements * sizeof(struct Range);
+      }
+
+      friend std::ostream& operator<<( std::ostream &str, const Ranges &r );
+    };
+
+    std::ostream& operator<<( std::ostream &str, const Ranges &r );
 
-}
+  }
 }
 
 #endif
diff --git a/RTCP/Cobalt/InputProc/src/Buffer/SampleBuffer.h b/RTCP/Cobalt/InputProc/src/Buffer/SampleBuffer.h
index 1b46a86be9ef72fcc984b3227343e659ae4c30b4..cc4c09e88bb74757f72008e76c0cbcbf8ac701eb 100644
--- a/RTCP/Cobalt/InputProc/src/Buffer/SampleBuffer.h
+++ b/RTCP/Cobalt/InputProc/src/Buffer/SampleBuffer.h
@@ -12,96 +12,103 @@
 #include <vector>
 #include <boost/format.hpp>
 
-namespace LOFAR {
-namespace RTCP {
-
-
-/*
- * Maintains a sample buffer in shared memory, which can be created
- * or attached to.
- *
- * The sample buffer contains the following information:
- *
- *   1. A copy of `settings', against which attaches are verified.
- *   2. A beamlets matrix [subband][sample]
- *   3. A flags vector [board]
- *
- * The IPC key used for the shared memory is settings.dataKey.
- */
-template<typename T> class SampleBuffer {
-public:
-  // Create (create=true) or attach to (create=false) a sample buffer
-  // in shared memory.
-  SampleBuffer( const struct BufferSettings &settings, bool create );
-
-private:
-  const std::string logPrefix;
-  SharedMemoryArena data;
-  SparseSetAllocator allocator;
-
-  struct BufferSettings *initSettings( const struct BufferSettings &localSettings, bool create );
-
-  static size_t dataSize( const struct BufferSettings &settings ) {
-    return sizeof settings
-         + settings.nrBoards * (Ranges::size(settings.nrFlagRanges) + 8)
-         + settings.nrBoards * settings.nrBeamletsPerBoard * (settings.nrSamples * sizeof(T) + 128);
-  }
-
-public:
-  struct BufferSettings *settings;
-
-  const size_t nrBeamletsPerBoard;
-  const size_t nrSamples;
-  const size_t nrBoards;
-  const size_t nrFlagRanges; // width of each flag range
-
-  MultiDimArray<T,2>  beamlets; // [subband][sample]
-  std::vector<Ranges> flags;    // [board]
-};
-
-
-template<typename T> SampleBuffer<T>::SampleBuffer( const struct BufferSettings &_settings, bool create )
-:
-  logPrefix(str(boost::format("[station %s %s board] [SampleBuffer] ") % _settings.station.stationName % _settings.station.antennaField)),
-  data(_settings.dataKey, dataSize(_settings), create ? SharedMemoryArena::CREATE : SharedMemoryArena::READ),
-  allocator(data),
-  settings(initSettings(_settings, create)),
-
-  nrBeamletsPerBoard(settings->nrBeamletsPerBoard),
-  nrSamples(settings->nrSamples),
-  nrBoards(settings->nrBoards),
-  nrFlagRanges(settings->nrFlagRanges),
-
-  beamlets(boost::extents[nrBoards * nrBeamletsPerBoard][nrSamples], 128, allocator, false, false),
-  flags(nrBoards)
+namespace LOFAR
 {
-  for (size_t f = 0; f < flags.size(); f++) {
-    size_t numBytes = Ranges::size(nrFlagRanges);
+  namespace RTCP
+  {
+
+
+    /*
+     * Maintains a sample buffer in shared memory, which can be created
+     * or attached to.
+     *
+     * The sample buffer contains the following information:
+     *
+     *   1. A copy of `settings', against which attaches are verified.
+     *   2. A beamlets matrix [subband][sample]
+     *   3. A flags vector [board]
+     *
+     * The IPC key used for the shared memory is settings.dataKey.
+     */
+    template<typename T>
+    class SampleBuffer
+    {
+    public:
+      // Create (create=true) or attach to (create=false) a sample buffer
+      // in shared memory.
+      SampleBuffer( const struct BufferSettings &settings, bool create );
+
+    private:
+      const std::string logPrefix;
+      SharedMemoryArena data;
+      SparseSetAllocator allocator;
+
+      struct BufferSettings *initSettings( const struct BufferSettings &localSettings, bool create );
+
+      static size_t dataSize( const struct BufferSettings &settings )
+      {
+        return sizeof settings
+               + settings.nrBoards * (Ranges::size(settings.nrFlagRanges) + 8)
+               + settings.nrBoards * settings.nrBeamletsPerBoard * (settings.nrSamples * sizeof(T) + 128);
+      }
+
+    public:
+      struct BufferSettings *settings;
+
+      const size_t nrBeamletsPerBoard;
+      const size_t nrSamples;
+      const size_t nrBoards;
+      const size_t nrFlagRanges; // width of each flag range
+
+      MultiDimArray<T,2>  beamlets; // [subband][sample]
+      std::vector<Ranges> flags; // [board]
+    };
+
+
+    template<typename T>
+    SampleBuffer<T>::SampleBuffer( const struct BufferSettings &_settings, bool create )
+      :
+      logPrefix(str(boost::format("[station %s %s board] [SampleBuffer] ") % _settings.station.stationName % _settings.station.antennaField)),
+      data(_settings.dataKey, dataSize(_settings), create ? SharedMemoryArena::CREATE : SharedMemoryArena::READ),
+      allocator(data),
+      settings(initSettings(_settings, create)),
+
+      nrBeamletsPerBoard(settings->nrBeamletsPerBoard),
+      nrSamples(settings->nrSamples),
+      nrBoards(settings->nrBoards),
+      nrFlagRanges(settings->nrFlagRanges),
+
+      beamlets(boost::extents[nrBoards * nrBeamletsPerBoard][nrSamples], 128, allocator, false, false),
+      flags(nrBoards)
+    {
+      for (size_t f = 0; f < flags.size(); f++) {
+        size_t numBytes = Ranges::size(nrFlagRanges);
+
+        flags[f] = Ranges(static_cast<int64*>(allocator.allocate(numBytes, 8)), numBytes, nrSamples, create);
+      }
+
+      LOG_INFO_STR( logPrefix << "Initialised" );
+    }
+
+    template<typename T>
+    struct BufferSettings *SampleBuffer<T>::initSettings( const struct BufferSettings &localSettings, bool create )
+    {
+      struct BufferSettings *sharedSettings = allocator.allocateTyped();
+
+      if (create) {
+        // register settings
+        LOG_INFO_STR( logPrefix << "Registering " << localSettings.station );
+        *sharedSettings = localSettings;
+      } else {
+        // verify settings
+        ASSERT( *sharedSettings == localSettings );
+        LOG_INFO_STR( logPrefix << "Connected to " << localSettings.station );
+      }
+
+      return sharedSettings;
+    }
 
-    flags[f] = Ranges(static_cast<int64*>(allocator.allocate(numBytes, 8)), numBytes, nrSamples, create);
   }
-
-  LOG_INFO_STR( logPrefix << "Initialised" );
-}
-
-template<typename T> struct BufferSettings *SampleBuffer<T>::initSettings( const struct BufferSettings &localSettings, bool create )
-{
-  struct BufferSettings *sharedSettings = allocator.allocateTyped();
-
-  if (create) {
-    // register settings
-    LOG_INFO_STR( logPrefix << "Registering " << localSettings.station );
-    *sharedSettings = localSettings;
-  } else {
-    // verify settings
-    ASSERT( *sharedSettings == localSettings );
-    LOG_INFO_STR( logPrefix << "Connected to " << localSettings.station );
-  }
-
-  return sharedSettings;
-}
-
-}
 }
 
 #endif
diff --git a/RTCP/Cobalt/InputProc/src/Buffer/SampleBufferReader.h b/RTCP/Cobalt/InputProc/src/Buffer/SampleBufferReader.h
index 7a8e6befbfd5cf6dda8fa38fa65d34bdfd2aeee5..1cefdde594ed705034834472e3246d8121dd5d9b 100644
--- a/RTCP/Cobalt/InputProc/src/Buffer/SampleBufferReader.h
+++ b/RTCP/Cobalt/InputProc/src/Buffer/SampleBufferReader.h
@@ -8,63 +8,84 @@
 #include <vector>
 #include <string>
 
-namespace LOFAR {
-namespace RTCP {
-
-/*
- * An abstract class for the implementation of a reader for SampleBuffers.
- */
-template<typename T> class SampleBufferReader {
-public:
-  SampleBufferReader( const BufferSettings &settings, const std::vector<size_t> beamlets, const TimeStamp &from, const TimeStamp &to, size_t blockSize, size_t nrHistorySamples = 0);
-
-  void process( double maxDelay );
-
-protected:
-  const BufferSettings settings;
-  SampleBuffer<T> buffer;
-
-  const std::vector<size_t> beamlets;
-  const TimeStamp from, to;
-  const size_t blockSize;
-
-  // Number of samples to include before `from', to initialise the FIR taps,
-  // included in blockSize.
-  const size_t nrHistorySamples;
-
-  struct CopyInstructions {
-    // Beamlet index
-    unsigned beamlet;
-
-    // Relevant time range
-    TimeStamp from;
-    TimeStamp to;
-
-    // Copy as one or two ranges of [from, to).
-    struct Range {
-      const T* from;
-      const T* to;
-    } ranges[2];
-
-    unsigned nrRanges;
-
-    // The flags for this range
-    SparseSet<int64> flags;
-  };
-
-  virtual ssize_t beamletOffset( unsigned beamlet, const TimeStamp &from, const TimeStamp &to ) { (void)beamlet; (void)from; (void)to; return 0; }
-
-  virtual void copyStart( const TimeStamp &from, const TimeStamp &to, const std::vector<size_t> &wrapOffsets ) { (void)from; (void)to; (void)wrapOffsets; }
-  virtual void copy( const struct CopyInstructions & ) {}
-  virtual void copyEnd( const TimeStamp &from, const TimeStamp &to ) { (void)from; (void)to; }
-
-  void copy( const TimeStamp &from, const TimeStamp &to );
-
-private:
-  WallClockTime waiter;
-};
-
-}
+namespace LOFAR
+{
+  namespace RTCP
+  {
+
+    /*
+     * An abstract class for the implementation of a reader for SampleBuffers.
+     */
+    template<typename T>
+    class SampleBufferReader
+    {
+    public:
+      SampleBufferReader( const BufferSettings &settings, const std::vector<size_t> beamlets, const TimeStamp &from, const TimeStamp &to, size_t blockSize, size_t nrHistorySamples = 0);
+
+      void process( double maxDelay );
+
+    protected:
+      const BufferSettings settings;
+      SampleBuffer<T> buffer;
+
+      const std::vector<size_t> beamlets;
+      const TimeStamp from, to;
+      const size_t blockSize;
+
+      // Number of samples to include before `from', to initialise the FIR taps,
+      // included in blockSize.
+      const size_t nrHistorySamples;
+
+      struct CopyInstructions {
+        // Beamlet index
+        unsigned beamlet;
+
+        // Relevant time range
+        TimeStamp from;
+        TimeStamp to;
+
+        // Copy as one or two ranges of [from, to).
+        struct Range {
+          const T* from;
+          const T* to;
+        } ranges[2];
+
+        unsigned nrRanges;
+
+        // The flags for this range
+        SparseSet<int64> flags;
+      };
+
+      virtual ssize_t beamletOffset( unsigned beamlet, const TimeStamp &from, const TimeStamp &to )
+      {
+        (void)beamlet;
+        (void)from;
+        (void)to;
+        return 0;
+      }
+
+      virtual void copyStart( const TimeStamp &from, const TimeStamp &to, const std::vector<size_t> &wrapOffsets )
+      {
+        (void)from;
+        (void)to;
+        (void)wrapOffsets;
+      }
+      virtual void copy( const struct CopyInstructions & )
+      {
+      }
+      virtual void copyEnd( const TimeStamp &from, const TimeStamp &to )
+      {
+        (void)from;
+        (void)to;
+      }
+
+      void copy( const TimeStamp &from, const TimeStamp &to );
+
+    private:
+      WallClockTime waiter;
+    };
+
+  }
 }
 
 #include "SampleBufferReader.tcc"
diff --git a/RTCP/Cobalt/InputProc/src/Buffer/SharedMemory.cc b/RTCP/Cobalt/InputProc/src/Buffer/SharedMemory.cc
index 0830be265fc2928df78a4252c1e8a4a4ecd5a345..4271750ff73471ec121ec163cab8d9070f4899af 100644
--- a/RTCP/Cobalt/InputProc/src/Buffer/SharedMemory.cc
+++ b/RTCP/Cobalt/InputProc/src/Buffer/SharedMemory.cc
@@ -10,88 +10,90 @@
 #include <unistd.h>
 #include <time.h>
 
-namespace LOFAR {
-namespace RTCP {
+namespace LOFAR
+{
+  namespace RTCP
+  {
 
 
-SharedMemoryArena::SharedMemoryArena( key_t key, size_t size, Mode mode, time_t timeout )
-:
-  FixedArena(NULL, size),
-  key(key),
-  mode(mode),
-  shmid(-1)
-{
-  time_t deadline = time(0) + timeout;
-  int open_flags = 0, attach_flags = 0;
-
-  switch (mode) {
-    case CREATE_EXCL:
-      open_flags |= IPC_EXCL;
-    case CREATE:
-      open_flags |= IPC_CREAT | SHM_NORESERVE | S_IRUSR | S_IWUSR;
-      break;
-
-    case READ:
-      attach_flags |= SHM_RDONLY;
-      break;
-
-    case READWRITE:
-    default:
-      break;
-  }
+    SharedMemoryArena::SharedMemoryArena( key_t key, size_t size, Mode mode, time_t timeout )
+      :
+      FixedArena(NULL, size),
+      key(key),
+      mode(mode),
+      shmid(-1)
+    {
+      time_t deadline = time(0) + timeout;
+      int open_flags = 0, attach_flags = 0;
 
-  // get/create shmid handle
-  for(;;) {
-    shmid = shmget( key, itsSize, open_flags );
+      switch (mode) {
+      case CREATE_EXCL:
+        open_flags |= IPC_EXCL;
+      case CREATE:
+        open_flags |= IPC_CREAT | SHM_NORESERVE | S_IRUSR | S_IWUSR;
+        break;
 
-    if (shmid == -1) {
-      if (!timeout)
-        throw SystemCallException("shmget", errno, THROW_ARGS);
+      case READ:
+        attach_flags |= SHM_RDONLY;
+        break;
 
-      if (errno != ENOENT && errno != EEXIST)
-        throw SystemCallException("shmget", errno, THROW_ARGS);
-    } else {
-      // attach to segment
-      itsBegin = shmat( shmid, NULL, attach_flags );
+      case READWRITE:
+      default:
+        break;
+      }
 
-      if (itsBegin != (void*)-1)
-        break; // success!
+      // get/create shmid handle
+      for(;; ) {
+        shmid = shmget( key, itsSize, open_flags );
 
-      if (!timeout)
-        throw SystemCallException("shmat", errno, THROW_ARGS);
+        if (shmid == -1) {
+          if (!timeout)
+            throw SystemCallException("shmget", errno, THROW_ARGS);
 
-      if (errno != EINVAL)
-        throw SystemCallException("shmat", errno, THROW_ARGS);
-    }
+          if (errno != ENOENT && errno != EEXIST)
+            throw SystemCallException("shmget", errno, THROW_ARGS);
+        } else {
+          // attach to segment
+          itsBegin = shmat( shmid, NULL, attach_flags );
 
-    // try again until the deadline
+          if (itsBegin != (void*)-1)
+            break;  // success!
 
-    if (time(0) >= deadline)
-      throw TimeOutException("shared memory", THROW_ARGS);
+          if (!timeout)
+            throw SystemCallException("shmat", errno, THROW_ARGS);
 
-    if (usleep(999999) < 0)
-      throw SystemCallException("sleep", errno, THROW_ARGS);
-  }
+          if (errno != EINVAL)
+            throw SystemCallException("shmat", errno, THROW_ARGS);
+        }
 
-}
+        // try again until the deadline
 
-SharedMemoryArena::~SharedMemoryArena()
-{
-  try {
-    // detach
-    if (shmdt(itsBegin) < 0)
-      throw SystemCallException("shmdt", errno, THROW_ARGS);
-
-    // destroy
-    if (mode == CREATE || mode == CREATE_EXCL)
-      if (shmctl(shmid, IPC_RMID, NULL) < 0)
-        throw SystemCallException("shmctl", errno, THROW_ARGS);
-
-  } catch (Exception &ex) {
-    LOG_ERROR_STR("Exception in destructor: " << ex);
-  }
-}
+        if (time(0) >= deadline)
+          throw TimeOutException("shared memory", THROW_ARGS);
 
+        if (usleep(999999) < 0)
+          throw SystemCallException("sleep", errno, THROW_ARGS);
+      }
 
-}
+    }
+
+    SharedMemoryArena::~SharedMemoryArena()
+    {
+      try {
+        // detach
+        if (shmdt(itsBegin) < 0)
+          throw SystemCallException("shmdt", errno, THROW_ARGS);
+
+        // destroy
+        if (mode == CREATE || mode == CREATE_EXCL)
+          if (shmctl(shmid, IPC_RMID, NULL) < 0)
+            throw SystemCallException("shmctl", errno, THROW_ARGS);
+
+      } catch (Exception &ex) {
+        LOG_ERROR_STR("Exception in destructor: " << ex);
+      }
+    }
+
+
+  }
 }
diff --git a/RTCP/Cobalt/InputProc/src/Buffer/SharedMemory.h b/RTCP/Cobalt/InputProc/src/Buffer/SharedMemory.h
index 837ebaee67a9532dff97231d5dcff55b98d8493b..2db1a81861ae314aa7e1916dade932c888d81cbb 100644
--- a/RTCP/Cobalt/InputProc/src/Buffer/SharedMemory.h
+++ b/RTCP/Cobalt/InputProc/src/Buffer/SharedMemory.h
@@ -9,71 +9,81 @@
 #include <sys/stat.h>
 #include <unistd.h>
 
-namespace LOFAR {
-namespace RTCP {
-
-/*
- * A memory region manager for shared memory, to be used by
- * allocators defined in CoInterface/Allocator.h
- */
-class SharedMemoryArena: public FixedArena {
-public:
-  EXCEPTION_CLASS(TimeOutException, LOFAR::Exception);
-
-  enum Mode {
-    CREATE,
-    CREATE_EXCL,
-    READ,
-    READWRITE
-  };
-
-  /* Create a shared memory region, or attach to an existing one. The timeout
-   * specifies how long the constructor will wait for the memory region to
-   * appear if mode == READ or mode == READWRITE.
-   */
-  SharedMemoryArena( key_t key, size_t size, Mode mode = CREATE, time_t timeout = 60 );
-  ~SharedMemoryArena();
-
-  template <typename T> T* ptr( size_t offset = 0 ) const {
-    return reinterpret_cast<T*>(reinterpret_cast<char*>(itsBegin) + offset);
-  }
-
-private:
-  const key_t key;
-  const Mode mode;
-  int shmid;
-};
-
-/*
- * Provides an interface for any struct stored as a shared memory region.
- */
-template<typename T> class SharedStruct {
-public:
-  SharedStruct( key_t key, bool create = false, time_t timeout = 60 );
-
-  T &get() {
-    return *data.ptr<T>();
-  }
-
-  T &get() const {
-    return *data.ptr<T>();
-  }
-
-private:
-  SharedMemoryArena data;
-
-  SharedStruct( const SharedStruct & );
-  SharedStruct &operator=( const SharedStruct & );
-};
-
-
-template<typename T> SharedStruct<T>::SharedStruct( key_t key, bool create, time_t timeout )
-:
-  data(key, sizeof(T), create ? SharedMemoryArena::CREATE : SharedMemoryArena::READWRITE, timeout)
+namespace LOFAR
 {
-}
+  namespace RTCP
+  {
+
+    /*
+     * A memory region manager for shared memory, to be used by
+     * allocators defined in CoInterface/Allocator.h
+     */
+    class SharedMemoryArena : public FixedArena
+    {
+    public:
+      EXCEPTION_CLASS(TimeOutException, LOFAR::Exception);
+
+      enum Mode {
+        CREATE,
+        CREATE_EXCL,
+        READ,
+        READWRITE
+      };
+
+      /* Create a shared memory region, or attach to an existing one. The timeout
+       * specifies how long the constructor will wait for the memory region to
+       * appear if mode == READ or mode == READWRITE.
+       */
+      SharedMemoryArena( key_t key, size_t size, Mode mode = CREATE, time_t timeout = 60 );
+      ~SharedMemoryArena();
+
+      template <typename T>
+      T* ptr( size_t offset = 0 ) const
+      {
+        return reinterpret_cast<T*>(reinterpret_cast<char*>(itsBegin) + offset);
+      }
+
+    private:
+      const key_t key;
+      const Mode mode;
+      int shmid;
+    };
+
+    /*
+     * Provides an interface for any struct stored as a shared memory region.
+     */
+    template<typename T>
+    class SharedStruct
+    {
+    public:
+      SharedStruct( key_t key, bool create = false, time_t timeout = 60 );
+
+      T &get()
+      {
+        return *data.ptr<T>();
+      }
+
+      T &get() const
+      {
+        return *data.ptr<T>();
+      }
+
+    private:
+      SharedMemoryArena data;
+
+      SharedStruct( const SharedStruct & );
+      SharedStruct &operator=( const SharedStruct & );
+    };
+
+
+    template<typename T>
+    SharedStruct<T>::SharedStruct( key_t key, bool create, time_t timeout )
+      :
+      data(key, sizeof(T), create ? SharedMemoryArena::CREATE : SharedMemoryArena::READWRITE, timeout)
+    {
+    }
 
-}
+  }
 }
 
 #endif
diff --git a/RTCP/Cobalt/InputProc/src/Buffer/StationID.cc b/RTCP/Cobalt/InputProc/src/Buffer/StationID.cc
index a6fd38234137101632f2c96f93c17017dea918e3..8529defc8f047567b6aae38ff6e62df6f3e2f7ed 100644
--- a/RTCP/Cobalt/InputProc/src/Buffer/StationID.cc
+++ b/RTCP/Cobalt/InputProc/src/Buffer/StationID.cc
@@ -17,79 +17,85 @@ static size_t strnlen( const char *s, size_t maxlen )
 }
 #endif
 
-namespace LOFAR {
-namespace RTCP {
-
-
-StationID::StationID( const std::string &stationName, const std::string &antennaField, unsigned clockMHz, unsigned bitMode)
-:
-  clockMHz(clockMHz),
-  bitMode(bitMode)
+namespace LOFAR
 {
-  ASSERTSTR( stationName.size() < sizeof this->stationName, "Station name longer than " << (sizeof this->stationName - 1) << " characters.");
-  ASSERTSTR( antennaField.size() < sizeof this->antennaField, "Antenna-set name longer than " << (sizeof this->antennaField - 1) << " characters.");
-
-  snprintf(this->stationName, sizeof this->stationName, "%s", stationName.c_str());
-  snprintf(this->antennaField, sizeof this->antennaField, "%s", antennaField.c_str());
-}
-
-bool StationID::operator==(const struct StationID &other) const {
-  return !strncmp(stationName, other.stationName, sizeof stationName)
-      && !strncmp(antennaField, other.antennaField, sizeof antennaField)
-      && clockMHz == other.clockMHz
-      && bitMode == other.bitMode;
-}
-
-bool StationID::operator!=(const struct StationID &other) const {
-  return !(*this == other);
-}
-
-uint32 StationID::hash() const {
-  // convert to 32 bit value (human-readable in hexadecimal):
-  //
-  //
-  // 0x0106020F
-  //   \__||\||
-  //      || |\_ bit mode:      F  = 16-bit, 8 = 8-bit, 4 = 4-bit
-  //      || \__ clock:         20 = 200 MHz, 16 = 160 MHz
-  //      |\____ antenna field: 0 = HBA/HBA0/LBA, 1 = HBA1
-  //      \_____ station ID:    0x0106 = RS106
-  
-  uint32 stationNr = 0;
-
-  const std::string stationNameStr(stationName, strnlen(stationName, sizeof stationName));
-  const std::string antennaFieldStr(antennaField, strnlen(antennaField, sizeof antennaField));
-
-  for(std::string::const_iterator c = stationNameStr.begin(); c != stationNameStr.end(); ++c)
-    if(*c >= '0' && *c <= '9')
-      stationNr = stationNr * 16 + (*c - '0');
-
-  uint32 antennaFieldNr = 0;
-
-  if (antennaFieldStr == "HBA1")
-    antennaFieldNr = 1;
-  else
-    antennaFieldNr = 0;
-
-  // make sure everything fits
-  ASSERT( stationNr    < (1L << 16) );
-  ASSERT( antennaFieldNr < (1L << 4)  );
-
-  ASSERT( clockMHz == 200 || clockMHz == 160 );
-  ASSERT( bitMode == 4 || bitMode == 8 || bitMode == 16 );
-
-  // derive the hash
-  unsigned clockMHzNr = clockMHz == 200 ? 0x20 : 0x16;
-  unsigned bitModeNr = bitMode == 16 ? 0xF : bitMode;
-
-  return (stationNr << 16) + (antennaFieldNr << 12) + (clockMHzNr << 4) + bitModeNr;
-}
-
-std::ostream& operator<<( std::ostream &str, const struct StationID &s ) {
-  str << "station " << s.stationName << " antenna field " << s.antennaField << " clockMHz " << s.clockMHz << " bitMode " << s.bitMode;
-
-  return str;
-}
-
-}
+  namespace RTCP
+  {
+
+
+    StationID::StationID( const std::string &stationName, const std::string &antennaField, unsigned clockMHz, unsigned bitMode)
+      :
+      clockMHz(clockMHz),
+      bitMode(bitMode)
+    {
+      ASSERTSTR( stationName.size() < sizeof this->stationName, "Station name longer than " << (sizeof this->stationName - 1) << " characters.");
+      ASSERTSTR( antennaField.size() < sizeof this->antennaField, "Antenna-set name longer than " << (sizeof this->antennaField - 1) << " characters.");
+
+      snprintf(this->stationName, sizeof this->stationName, "%s", stationName.c_str());
+      snprintf(this->antennaField, sizeof this->antennaField, "%s", antennaField.c_str());
+    }
+
+    bool StationID::operator==(const struct StationID &other) const
+    {
+      return !strncmp(stationName, other.stationName, sizeof stationName)
+             && !strncmp(antennaField, other.antennaField, sizeof antennaField)
+             && clockMHz == other.clockMHz
+             && bitMode == other.bitMode;
+    }
+
+    bool StationID::operator!=(const struct StationID &other) const
+    {
+      return !(*this == other);
+    }
+
+    uint32 StationID::hash() const
+    {
+      // convert to 32 bit value (human-readable in hexadecimal):
+      //
+      //
+      // 0x0106020F
+      //   \__||\||
+      //      || |\_ bit mode:      F  = 16-bit, 8 = 8-bit, 4 = 4-bit
+      //      || \__ clock:         20 = 200 MHz, 16 = 160 MHz
+      //      |\____ antenna field: 0 = HBA/HBA0/LBA, 1 = HBA1
+      //      \_____ station ID:    0x0106 = RS106
+
+      uint32 stationNr = 0;
+
+      const std::string stationNameStr(stationName, strnlen(stationName, sizeof stationName));
+      const std::string antennaFieldStr(antennaField, strnlen(antennaField, sizeof antennaField));
+
+      for(std::string::const_iterator c = stationNameStr.begin(); c != stationNameStr.end(); ++c)
+        if(*c >= '0' && *c <= '9')
+          stationNr = stationNr * 16 + (*c - '0');
+
+      uint32 antennaFieldNr = 0;
+
+      if (antennaFieldStr == "HBA1")
+        antennaFieldNr = 1;
+      else
+        antennaFieldNr = 0;
+
+      // make sure everything fits
+      ASSERT( stationNr    < (1L << 16) );
+      ASSERT( antennaFieldNr < (1L << 4)  );
+
+      ASSERT( clockMHz == 200 || clockMHz == 160 );
+      ASSERT( bitMode == 4 || bitMode == 8 || bitMode == 16 );
+
+      // derive the hash
+      unsigned clockMHzNr = clockMHz == 200 ? 0x20 : 0x16;
+      unsigned bitModeNr = bitMode == 16 ? 0xF : bitMode;
+
+      return (stationNr << 16) + (antennaFieldNr << 12) + (clockMHzNr << 4) + bitModeNr;
+    }
+
+    std::ostream& operator<<( std::ostream &str, const struct StationID &s )
+    {
+      str << "station " << s.stationName << " antenna field " << s.antennaField << " clockMHz " << s.clockMHz << " bitMode " << s.bitMode;
+
+      return str;
+    }
+
+  }
 }
diff --git a/RTCP/Cobalt/InputProc/src/Buffer/StationID.h b/RTCP/Cobalt/InputProc/src/Buffer/StationID.h
index 800c5dd06e99fde316023312e52ccf2f8efe17cc..814f042208c241af4d88b6bd6591e4fa98f915be 100644
--- a/RTCP/Cobalt/InputProc/src/Buffer/StationID.h
+++ b/RTCP/Cobalt/InputProc/src/Buffer/StationID.h
@@ -5,27 +5,29 @@
 #include <ostream>
 #include <string>
 
-namespace LOFAR {
-namespace RTCP {
+namespace LOFAR
+{
+  namespace RTCP
+  {
 
-struct StationID {
-  char stationName[64];
-  char antennaField[64];
+    struct StationID {
+      char stationName[64];
+      char antennaField[64];
 
-  unsigned clockMHz;
-  unsigned bitMode;
+      unsigned clockMHz;
+      unsigned bitMode;
 
-  StationID( const std::string &stationName = "", const std::string &antennaField = "", unsigned clockMHz = 200, unsigned bitMode = 16);
+      StationID( const std::string &stationName = "", const std::string &antennaField = "", unsigned clockMHz = 200, unsigned bitMode = 16);
 
-  bool operator==(const struct StationID &other) const;
-  bool operator!=(const struct StationID &other) const;
+      bool operator==(const struct StationID &other) const;
+      bool operator!=(const struct StationID &other) const;
 
-  uint32 hash() const;
-};
+      uint32 hash() const;
+    };
 
-std::ostream& operator<<( std::ostream &str, const struct StationID &s );
+    std::ostream& operator<<( std::ostream &str, const struct StationID &s );
 
-}
+  }
 }
 
 
diff --git a/RTCP/Cobalt/InputProc/src/OMPThread.h b/RTCP/Cobalt/InputProc/src/OMPThread.h
index 857546b6131da338b136d3050b9a015cba2938e7..b9dabb18e8527c4e5fd047950c2b1928d54ab9d6 100644
--- a/RTCP/Cobalt/InputProc/src/OMPThread.h
+++ b/RTCP/Cobalt/InputProc/src/OMPThread.h
@@ -7,90 +7,102 @@
 #include <Common/LofarLogger.h>
 #include <Common/SystemCallException.h>
 
-namespace LOFAR {
-
-/*
- * Represents an OpenMP thread. To use,
- * call start() and stop() at the beginning and end
- * of an OpenMP thread. The kill() command can then
- * be used by another thread to kill the OpenMP thread.
- *
- * The thread is killed by sending SIGHUP to it until
- * stop() is called by the thread.
- *
- * To be able to use this class properly, please call
- * OMPThread::init() to clear the SIGHUP handler.
- *
- * Note: do NOT use this on threads which continue operating
- * through omp 'nowait' parallelism, due to race conditions.
- */
-class OMPThread {
-public:
-  OMPThread(): id(0), stopped(false) {}
-
-  // Register the current thread as killable
-  void start() {
-    id = pthread_self();
-  }
-
-  // Unregister the current thread
-  void stop() {
-    id = 0;
-    stopped = true;
-  }
-
-  // Kill the registered thread. If no thread is registered,
-  // kill() will wait.
-  void kill() {
-    while (!stopped) {
-      // interrupt blocking system calls (most notably, read())
-      // note that the thread will stick around until the end
-      // of pragma parallel, so the thread id is always valid
-      // once it has been set.
-      pthread_t oldid = id;
-
-      if (oldid > 0)
-        if (pthread_kill(oldid, SIGHUP) < 0)
-          throw SystemCallException("pthread_kill", errno, THROW_ARGS);
-
-      // sleep for 100ms - do NOT let us get killed here,
-      // because we're maintaining integrity
-      const struct timespec ts = { 1, 200*1000 };
-      while (nanosleep( &ts, NULL ) == -1 && errno == EINTR)
-        ;
+namespace LOFAR
+{
+
+  /*
+   * Represents an OpenMP thread. To use,
+   * call start() and stop() at the beginning and end
+   * of an OpenMP thread. The kill() command can then
+   * be used by another thread to kill the OpenMP thread.
+   *
+   * The thread is killed by sending SIGHUP to it until
+   * stop() is called by the thread.
+   *
+   * To be able to use this class properly, please call
+   * OMPThread::init() to clear the SIGHUP handler.
+   *
+   * Note: do NOT use this on threads which continue operating
+   * through omp 'nowait' parallelism, due to race conditions.
+   */
+  class OMPThread
+  {
+  public:
+    OMPThread() : id(0), stopped(false)
+    {
     }
-  }
 
-  class ScopedRun {
-  public:
-    ScopedRun( OMPThread &thread ): thread(thread) {
-      thread.start();
+    // Register the current thread as killable
+    void start()
+    {
+      id = pthread_self();
+    }
+
+    // Unregister the current thread
+    void stop()
+    {
+      id = 0;
+      stopped = true;
     }
 
-    ~ScopedRun() {
-      thread.stop();
+    // Kill the registered thread. If no thread is registered,
+    // kill() will wait.
+    void kill()
+    {
+      while (!stopped) {
+        // interrupt blocking system calls (most notably, read())
+        // note that the thread will stick around until the end
+        // of pragma parallel, so the thread id is always valid
+        // once it has been set.
+        pthread_t oldid = id;
+
+        if (oldid > 0)
+          if (pthread_kill(oldid, SIGHUP) < 0)
+            throw SystemCallException("pthread_kill", errno, THROW_ARGS);
+
+        // sleep for 100ms - do NOT let us get killed here,
+        // because we're maintaining integrity
+        const struct timespec ts = { 1, 200 * 1000 };
+        while (nanosleep( &ts, NULL ) == -1 && errno == EINTR)
+          ;
+      }
+    }
+
+    class ScopedRun
+    {
+    public:
+      ScopedRun( OMPThread &thread ) : thread(thread)
+      {
+        thread.start();
+      }
+
+      ~ScopedRun()
+      {
+        thread.stop();
+      }
+
+    private:
+      OMPThread &thread;
+    };
+
+    static void init()
+    {
+      signal(SIGHUP, sighandler);
+      siginterrupt(SIGHUP, 1);
     }
 
   private:
-    OMPThread &thread;
+    volatile pthread_t id;
+    volatile bool stopped;
+
+    static void sighandler(int)
+    {
+      /* no-op. We use SIGHUP only
+       * to interrupt system calls.
+       */
+    }
   };
 
-  static void init() {
-    signal(SIGHUP, sighandler);
-    siginterrupt(SIGHUP, 1);
-  }
-
-private:
-  volatile pthread_t id;
-  volatile bool stopped;
-
-  static void sighandler(int) {
-    /* no-op. We use SIGHUP only
-     * to interrupt system calls.
-     */
-  }
-};
-
 }
 
 #endif
diff --git a/RTCP/Cobalt/InputProc/src/RSPBoards.cc b/RTCP/Cobalt/InputProc/src/RSPBoards.cc
index e44fdbaf7103682f987f8c958492b1b7bda5a612..ac00ce46d0d4e0858ec60259ab9c4ffcbba27526 100644
--- a/RTCP/Cobalt/InputProc/src/RSPBoards.cc
+++ b/RTCP/Cobalt/InputProc/src/RSPBoards.cc
@@ -4,98 +4,100 @@
 #include <Common/LofarLogger.h>
 #include <omp.h>
 
-namespace LOFAR {
-namespace RTCP {
+namespace LOFAR
+{
+  namespace RTCP
+  {
 
 
-RSPBoards::RSPBoards( const std::string &logPrefix, size_t nrBoards )
-:
-  logPrefix(logPrefix),
-  nrBoards(nrBoards)
-{
-}
+    RSPBoards::RSPBoards( const std::string &logPrefix, size_t nrBoards )
+      :
+      logPrefix(logPrefix),
+      nrBoards(nrBoards)
+    {
+    }
 
-void RSPBoards::process()
-{
-  // References to all threads that will need aborting
-  std::vector<OMPThread> threads(nrBoards * 2);
+    void RSPBoards::process()
+    {
+      // References to all threads that will need aborting
+      std::vector<OMPThread> threads(nrBoards * 2);
 
-  ASSERT(nrBoards > 0);
+      ASSERT(nrBoards > 0);
 
-  LOG_INFO_STR( logPrefix << "Start" );
+      LOG_INFO_STR( logPrefix << "Start" );
 
 # pragma omp parallel sections num_threads(3)
-  {
-    // Board threads
+      {
+        // Board threads
 #   pragma omp section
-    {
-      // start all boards
-      LOG_INFO_STR( logPrefix << "Starting all boards" );
+        {
+          // start all boards
+          LOG_INFO_STR( logPrefix << "Starting all boards" );
 #     pragma omp parallel for num_threads(nrBoards)
-      for (size_t i = 0; i < nrBoards; ++i) {
-        OMPThread::ScopedRun sr(threads[i]);
-  
-        try {
-          processBoard(i);
-        } catch(Exception &ex) {
-          LOG_ERROR_STR("Caught exception: " << ex);
-        }
-      }
+          for (size_t i = 0; i < nrBoards; ++i) {
+            OMPThread::ScopedRun sr(threads[i]);
+
+            try {
+              processBoard(i);
+            } catch(Exception &ex) {
+              LOG_ERROR_STR("Caught exception: " << ex);
+            }
+          }
 
-      // we're done
-      stop();
-    }
+          // we're done
+          stop();
+        }
 
-    // Log threads
+        // Log threads
 #   pragma omp section
-    {
-      // start all log statistics
-      LOG_INFO_STR( logPrefix << "Starting all log statistics" );
+        {
+          // start all log statistics
+          LOG_INFO_STR( logPrefix << "Starting all log statistics" );
 #     pragma omp parallel for num_threads(nrBoards)
-      for (size_t i = 0; i < nrBoards; ++i) {
-        OMPThread::ScopedRun sr(threads[i + nrBoards]);
-  
-        try {
-          for(;;) {
-            if (usleep(999999) == -1 && errno == EINTR)
-              // got killed
-              break;
-
-            logStatistics();
+          for (size_t i = 0; i < nrBoards; ++i) {
+            OMPThread::ScopedRun sr(threads[i + nrBoards]);
+
+            try {
+              for(;; ) {
+                if (usleep(999999) == -1 && errno == EINTR)
+                  // got killed
+                  break;
+
+                logStatistics();
+              }
+            } catch(Exception &ex) {
+              LOG_ERROR_STR("Caught exception: " << ex);
+            }
           }
-        } catch(Exception &ex) {
-          LOG_ERROR_STR("Caught exception: " << ex);
         }
-      }
-    }
 
-    // Watcher thread
+        // Watcher thread
 #   pragma omp section
-    {
-      // wait until we have to stop
-      LOG_INFO_STR( logPrefix << "Waiting for stop signal" );
-      waiter.waitForever();     
+        {
+          // wait until we have to stop
+          LOG_INFO_STR( logPrefix << "Waiting for stop signal" );
+          waiter.waitForever();
 
-      // kill all boards
-      LOG_INFO_STR( logPrefix << "Stopping all boards" );
+          // kill all boards
+          LOG_INFO_STR( logPrefix << "Stopping all boards" );
 #     pragma omp parallel for num_threads(threads.size())
-      for (size_t i = 0; i < threads.size(); ++i)
-        try {
-          threads[i].kill();
-        } catch(Exception &ex) {
-          LOG_ERROR_STR("Caught exception: " << ex);
+          for (size_t i = 0; i < threads.size(); ++i)
+            try {
+              threads[i].kill();
+            } catch(Exception &ex) {
+              LOG_ERROR_STR("Caught exception: " << ex);
+            }
         }
-    }
-  }
+      }
 
-  LOG_INFO_STR( logPrefix << "End" );
-}
+      LOG_INFO_STR( logPrefix << "End" );
+    }
 
-void RSPBoards::stop()
-{
-  waiter.cancelWait();
-}
+    void RSPBoards::stop()
+    {
+      waiter.cancelWait();
+    }
 
 
-}
+  }
 }
diff --git a/RTCP/Cobalt/InputProc/src/RSPBoards.h b/RTCP/Cobalt/InputProc/src/RSPBoards.h
index f9fb1c2ccc7bbd9b6a1acfa3e949bf7cd44821e1..f61a528735e68fa95f9dd65903fce392a704d4c9 100644
--- a/RTCP/Cobalt/InputProc/src/RSPBoards.h
+++ b/RTCP/Cobalt/InputProc/src/RSPBoards.h
@@ -6,31 +6,34 @@
 #include <string>
 #include <vector>
 
-namespace LOFAR {
-namespace RTCP {
+namespace LOFAR
+{
+  namespace RTCP
+  {
 
-/* A class that generates or processes a set of data streams of a station. */
+    /* A class that generates or processes a set of data streams of a station. */
 
-class RSPBoards {
-public:
-  RSPBoards( const std::string &logPrefix, size_t nrBoards );
+    class RSPBoards
+    {
+    public:
+      RSPBoards( const std::string &logPrefix, size_t nrBoards );
 
-  void process();
+      void process();
 
-  void stop();
+      void stop();
 
-protected:
-  const std::string logPrefix;
-  const size_t nrBoards;
+    protected:
+      const std::string logPrefix;
+      const size_t nrBoards;
 
-  WallClockTime waiter;
+      WallClockTime waiter;
 
-  virtual void processBoard( size_t nr ) = 0;
-  virtual void logStatistics() = 0;
-};
+      virtual void processBoard( size_t nr ) = 0;
+      virtual void logStatistics() = 0;
+    };
 
 
-}
+  }
 }
 
 #endif
diff --git a/RTCP/Cobalt/InputProc/src/SampleType.h b/RTCP/Cobalt/InputProc/src/SampleType.h
index 954686cba8148c5379a832c9a040073c9efa3aa2..bd3f2a21a891499daab9344eb030639c17d18013 100644
--- a/RTCP/Cobalt/InputProc/src/SampleType.h
+++ b/RTCP/Cobalt/InputProc/src/SampleType.h
@@ -4,28 +4,32 @@
 #include <ostream>
 #include <Common/LofarTypes.h>
 
-namespace LOFAR {
-namespace RTCP {
+namespace LOFAR
+{
+  namespace RTCP
+  {
 
 
-template<typename T> struct SampleType {
-  T x, y;
-};
+    template<typename T>
+    struct SampleType {
+      T x, y;
+    };
 
-template struct SampleType<i16complex>;
-template struct SampleType<i8complex>;
-template struct SampleType<i4complex>;
+    template struct SampleType<i16complex>;
+    template struct SampleType<i8complex>;
+    template struct SampleType<i4complex>;
 
 
-template<typename T> std::ostream &operator <<(std::ostream &str, const struct SampleType<T> &sample)
-{
-  str << "(" << sample.x.real() << " + " << sample.x.imag() << "i, " << sample.y.real() << " + " << sample.y.imag() << "i)";
+    template<typename T>
+    std::ostream &operator <<(std::ostream &str, const struct SampleType<T> &sample)
+    {
+      str << "(" << sample.x.real() << " + " << sample.x.imag() << "i, " << sample.y.real() << " + " << sample.y.imag() << "i)";
 
-  return str;
-}
+      return str;
+    }
 
 
-}
+  }
 }
 
 #endif
diff --git a/RTCP/Cobalt/InputProc/src/Station/Generator.cc b/RTCP/Cobalt/InputProc/src/Station/Generator.cc
index d932f49db21a2fd5da316f74dba9717d8a02af4d..4282eddefc754e7c1135c0388cc833e5d0d793cc 100644
--- a/RTCP/Cobalt/InputProc/src/Station/Generator.cc
+++ b/RTCP/Cobalt/InputProc/src/Station/Generator.cc
@@ -10,119 +10,121 @@
 #include <boost/format.hpp>
 
 
-namespace LOFAR {
-namespace RTCP {
-
-Generator::Generator( const BufferSettings &settings, const std::vector<std::string> &streamDescriptors )
-:
-  RSPBoards(str(boost::format("[station %s %s] [Generator] ") % settings.station.stationName % settings.station.antennaField), streamDescriptors.size()),
-  settings(settings),
-  streamDescriptors(streamDescriptors),
-  nrSent(nrBoards, 0)
+namespace LOFAR
 {
-  LOG_INFO_STR( logPrefix << "Initialised" );
-}
+  namespace RTCP
+  {
+
+    Generator::Generator( const BufferSettings &settings, const std::vector<std::string> &streamDescriptors )
+      :
+      RSPBoards(str(boost::format("[station %s %s] [Generator] ") % settings.station.stationName % settings.station.antennaField), streamDescriptors.size()),
+      settings(settings),
+      streamDescriptors(streamDescriptors),
+      nrSent(nrBoards, 0)
+    {
+      LOG_INFO_STR( logPrefix << "Initialised" );
+    }
 
-void Generator::makePacket( size_t boardNr, struct RSP &packet, const TimeStamp &timestamp )
-{
-  // configure the packet header
-  packet.header.version = 3; // we emulate BDI 6.0
+    void Generator::makePacket( size_t boardNr, struct RSP &packet, const TimeStamp &timestamp )
+    {
+      // configure the packet header
+      packet.header.version = 3; // we emulate BDI 6.0
 
-  packet.header.sourceInfo1 =
-      (boardNr & 0x1F) | (settings.station.clockMHz == 200 ? 1 << 7 : 0);
+      packet.header.sourceInfo1 =
+        (boardNr & 0x1F) | (settings.station.clockMHz == 200 ? 1 << 7 : 0);
 
-  switch (settings.station.bitMode) {
-    case 16:
-      packet.header.sourceInfo2 = 0;
-      break;
+      switch (settings.station.bitMode) {
+      case 16:
+        packet.header.sourceInfo2 = 0;
+        break;
 
-    case 8:
-      packet.header.sourceInfo2 = 1;
-      break;
+      case 8:
+        packet.header.sourceInfo2 = 1;
+        break;
 
-    case 4:
-      packet.header.sourceInfo2 = 2;
-      break;
-  }
+      case 4:
+        packet.header.sourceInfo2 = 2;
+        break;
+      }
 
-  packet.header.nrBeamlets = settings.nrBeamletsPerBoard;
-  packet.header.nrBlocks = 16;
+      packet.header.nrBeamlets = settings.nrBeamletsPerBoard;
+      packet.header.nrBlocks = 16;
 
-  packet.header.timestamp = timestamp.getSeqId();
-  packet.header.blockSequenceNumber = timestamp.getBlockId();
+      packet.header.timestamp = timestamp.getSeqId();
+      packet.header.blockSequenceNumber = timestamp.getBlockId();
 
-  // insert data that is different for each packet
-  int64 data = timestamp;
+      // insert data that is different for each packet
+      int64 data = timestamp;
 
-  memset(packet.payload.data, data & 0xFF, sizeof packet.payload.data);
+      memset(packet.payload.data, data & 0xFF, sizeof packet.payload.data);
 
-  // verify whether the packet really reflects what we intended
-  ASSERT(packet.rspBoard()     == boardNr);
-  ASSERT(packet.payloadError() == false);
-  ASSERT(packet.bitMode()      == settings.station.bitMode);
-  ASSERT(packet.clockMHz()     == settings.station.clockMHz);
-}
+      // verify whether the packet really reflects what we intended
+      ASSERT(packet.rspBoard()     == boardNr);
+      ASSERT(packet.payloadError() == false);
+      ASSERT(packet.bitMode()      == settings.station.bitMode);
+      ASSERT(packet.clockMHz()     == settings.station.clockMHz);
+    }
 
-void Generator::processBoard( size_t nr )
-{
-  const std::string logPrefix(str(boost::format("[station %s %s board %u] [Generator] ") % settings.station.stationName % settings.station.antennaField % nr));
+    void Generator::processBoard( size_t nr )
+    {
+      const std::string logPrefix(str(boost::format("[station %s %s board %u] [Generator] ") % settings.station.stationName % settings.station.antennaField % nr));
 
-  try {
-    LOG_INFO_STR( logPrefix << "Connecting to " << streamDescriptors[nr] );
-    SmartPtr<Stream> s = createStream(streamDescriptors[nr], false);
+      try {
+        LOG_INFO_STR( logPrefix << "Connecting to " << streamDescriptors[nr] );
+        SmartPtr<Stream> s = createStream(streamDescriptors[nr], false);
 
-    LOG_INFO_STR( logPrefix << "Start" );
+        LOG_INFO_STR( logPrefix << "Start" );
 
-    TimeStamp current(time(0L) + 1, 0, settings.station.clockMHz * 1000000);
-    for(;;) {
-      struct RSP packet;
+        TimeStamp current(time(0L) + 1, 0, settings.station.clockMHz * 1000000);
+        for(;; ) {
+          struct RSP packet;
 
-      // generate packet
-      makePacket( nr, packet, current );
+          // generate packet
+          makePacket( nr, packet, current );
 
-      ASSERT(packet.packetSize() <= sizeof packet);
-    
-      // wait until it is due
-      if (!waiter.waitUntil(current))
-        break;
+          ASSERT(packet.packetSize() <= sizeof packet);
 
-      // send packet
-      try {
-        s->write(&packet, packet.packetSize());
+          // wait until it is due
+          if (!waiter.waitUntil(current))
+            break;
+
+          // send packet
+          try {
+            s->write(&packet, packet.packetSize());
+          } catch (SystemCallException &ex) {
+            // UDP can return ECONNREFUSED or EINVAL if server does not have its port open
+            if (ex.error != ECONNREFUSED && ex.error != EINVAL)
+              throw;
+          }
+
+          nrSent[nr]++;
+
+          current += packet.header.nrBlocks;
+        }
+      } catch (Stream::EndOfStreamException &ex) {
+        LOG_INFO_STR( logPrefix << "End of stream");
       } catch (SystemCallException &ex) {
-        // UDP can return ECONNREFUSED or EINVAL if server does not have its port open
-        if (ex.error != ECONNREFUSED && ex.error != EINVAL)
-          throw;
+        if (ex.error == EINTR)
+          LOG_INFO_STR( logPrefix << "Aborted: " << ex.what());
+        else
+          LOG_ERROR_STR( logPrefix << "Caught Exception: " << ex);
+      } catch (Exception &ex) {
+        LOG_ERROR_STR( logPrefix << "Caught Exception: " << ex);
       }
 
-      nrSent[nr]++;
-
-      current += packet.header.nrBlocks;
+      LOG_INFO_STR( logPrefix << "End");
     }
-  } catch (Stream::EndOfStreamException &ex) {
-    LOG_INFO_STR( logPrefix << "End of stream");
-  } catch (SystemCallException &ex) {
-    if (ex.error == EINTR)
-      LOG_INFO_STR( logPrefix << "Aborted: " << ex.what());
-    else
-      LOG_ERROR_STR( logPrefix << "Caught Exception: " << ex);
-  } catch (Exception &ex) {
-    LOG_ERROR_STR( logPrefix << "Caught Exception: " << ex);
-  }
 
-  LOG_INFO_STR( logPrefix << "End");
-}
+    void Generator::logStatistics()
+    {
+      for( size_t nr = 0; nr < nrBoards; nr++ ) {
+        const std::string logPrefix(str(boost::format("[station %s %s board %u] [Generator] ") % settings.station.stationName % settings.station.antennaField % nr));
 
-void Generator::logStatistics()
-{
-  for( size_t nr = 0; nr < nrBoards; nr++ ) {
-    const std::string logPrefix(str(boost::format("[station %s %s board %u] [Generator] ") % settings.station.stationName % settings.station.antennaField % nr));
+        LOG_INFO_STR( logPrefix << nrSent[nr] << " packets sent.");
 
-    LOG_INFO_STR( logPrefix << nrSent[nr] << " packets sent.");
+        nrSent[nr] = 0;
+      }
+    }
 
-    nrSent[nr] = 0;
   }
 }
-
-}
-}
diff --git a/RTCP/Cobalt/InputProc/src/Station/Generator.h b/RTCP/Cobalt/InputProc/src/Station/Generator.h
index bc0475c4418872779c4c4319b25ba23d5e4e254e..74c35c81e3c8fb3fde44010cc865d2ca91c1fa78 100644
--- a/RTCP/Cobalt/InputProc/src/Station/Generator.h
+++ b/RTCP/Cobalt/InputProc/src/Station/Generator.h
@@ -7,28 +7,31 @@
 #include <string>
 #include <vector>
 
-namespace LOFAR {
-namespace RTCP {
+namespace LOFAR
+{
+  namespace RTCP
+  {
 
-/* Generate station input data */
+    /* Generate station input data */
 
-class Generator: public RSPBoards {
-public:
-  Generator( const BufferSettings &settings, const std::vector<std::string> &streamDescriptors );
+    class Generator : public RSPBoards
+    {
+    public:
+      Generator( const BufferSettings &settings, const std::vector<std::string> &streamDescriptors );
 
-protected:
-  const BufferSettings settings;
-  const std::vector<std::string> streamDescriptors;
+    protected:
+      const BufferSettings settings;
+      const std::vector<std::string> streamDescriptors;
 
-  std::vector<size_t> nrSent;
+      std::vector<size_t> nrSent;
 
-  virtual void processBoard( size_t nr );
-  virtual void logStatistics();
+      virtual void processBoard( size_t nr );
+      virtual void logStatistics();
 
-  virtual void makePacket( size_t boardNr, struct RSP &packet, const TimeStamp &timestamp );
-};
+      virtual void makePacket( size_t boardNr, struct RSP &packet, const TimeStamp &timestamp );
+    };
 
-}
+  }
 }
 
 #endif
diff --git a/RTCP/Cobalt/InputProc/src/Station/PacketReader.cc b/RTCP/Cobalt/InputProc/src/Station/PacketReader.cc
index 886e8320ed49b5c210cd1ffafa140e1e1a3d03b0..eb2a0ac9e003c6f4eda10855fa625b930a6788fe 100644
--- a/RTCP/Cobalt/InputProc/src/Station/PacketReader.cc
+++ b/RTCP/Cobalt/InputProc/src/Station/PacketReader.cc
@@ -9,121 +9,123 @@
 
 #include <typeinfo>
 
-namespace LOFAR {
-namespace RTCP {
-
-
-PacketReader::PacketReader( const std::string &logPrefix, Stream &inputStream )
-:
-  logPrefix(str(boost::format("%s [PacketReader] ") % logPrefix)),
-  inputStream(inputStream),
-
-  nrReceived(0),
-  nrBadSize(0),
-  nrBadTime(0),
-  nrBadData(0),
-  nrBadMode(0),
-  hadSizeError(false),
-  hadModeError(false)
+namespace LOFAR
 {
-  // Partial reads are not supported on UDP streams, because each read()
-  // will consume a full packet.
-  try {
-    SocketStream &asSocket = dynamic_cast<SocketStream &>(inputStream);
-    const bool isUDP = asSocket.protocol == SocketStream::UDP;
-
-    supportPartialReads = !isUDP;
-  } catch (std::bad_cast&) {
-    // inputStream is not a SocketStream
-    supportPartialReads = true;
-  }
-}
+  namespace RTCP
+  {
+
+
+    PacketReader::PacketReader( const std::string &logPrefix, Stream &inputStream )
+      :
+      logPrefix(str(boost::format("%s [PacketReader] ") % logPrefix)),
+      inputStream(inputStream),
+
+      nrReceived(0),
+      nrBadSize(0),
+      nrBadTime(0),
+      nrBadData(0),
+      nrBadMode(0),
+      hadSizeError(false),
+      hadModeError(false)
+    {
+      // Partial reads are not supported on UDP streams, because each read()
+      // will consume a full packet.
+      try {
+        SocketStream &asSocket = dynamic_cast<SocketStream &>(inputStream);
+        const bool isUDP = asSocket.protocol == SocketStream::UDP;
+
+        supportPartialReads = !isUDP;
+      } catch (std::bad_cast&) {
+        // inputStream is not a SocketStream
+        supportPartialReads = true;
+      }
+    }
 
 
-bool PacketReader::readPacket( struct RSP &packet )
-{
-  if (supportPartialReads) {
-    // read header first
-    inputStream.read(&packet.header, sizeof packet.header);
+    bool PacketReader::readPacket( struct RSP &packet )
+    {
+      if (supportPartialReads) {
+        // read header first
+        inputStream.read(&packet.header, sizeof packet.header);
 
-    // read rest of packet
-    inputStream.read(&packet.payload.data, packet.packetSize() - sizeof packet.header);
+        // read rest of packet
+        inputStream.read(&packet.payload.data, packet.packetSize() - sizeof packet.header);
 
-    ++nrReceived;
-  } else {
-    // read full packet at once -- numbytes will tell us how much we've actually read
-    size_t numbytes = inputStream.tryRead(&packet, sizeof packet);
+        ++nrReceived;
+      } else {
+        // read full packet at once -- numbytes will tell us how much we've actually read
+        size_t numbytes = inputStream.tryRead(&packet, sizeof packet);
 
-    ++nrReceived;
+        ++nrReceived;
 
-    if( numbytes < sizeof(struct RSP::Header)
-     || numbytes != packet.packetSize() ) {
+        if( numbytes < sizeof(struct RSP::Header)
+            || numbytes != packet.packetSize() ) {
 
-      if (!hadSizeError) {
-        LOG_ERROR_STR( logPrefix << "Packet is " << numbytes << " bytes, but should be " << packet.packetSize() << " bytes" );
-        hadSizeError = true;
-      }
+          if (!hadSizeError) {
+            LOG_ERROR_STR( logPrefix << "Packet is " << numbytes << " bytes, but should be " << packet.packetSize() << " bytes" );
+            hadSizeError = true;
+          }
 
-      ++nrBadSize;
-      return false;
-    }
-  }
+          ++nrBadSize;
+          return false;
+        }
+      }
 
-  // illegal timestamp means illegal packet
-  if (packet.header.timestamp == ~0U) {
-    ++nrBadTime;
-    return false;
-  }
+      // illegal timestamp means illegal packet
+      if (packet.header.timestamp == ~0U) {
+        ++nrBadTime;
+        return false;
+      }
 
-  // discard packets with errors
-  if (packet.payloadError()) {
-    ++nrBadData;
-    return false;
-  }
+      // discard packets with errors
+      if (packet.payloadError()) {
+        ++nrBadData;
+        return false;
+      }
 
-  // everything is ok
-  return true;
-}
+      // everything is ok
+      return true;
+    }
 
 
-bool PacketReader::readPacket( struct RSP &packet, const struct BufferSettings &settings )
-{
-  if (!readPacket(packet))
-    return false;
+    bool PacketReader::readPacket( struct RSP &packet, const struct BufferSettings &settings )
+    {
+      if (!readPacket(packet))
+        return false;
 
-  // check whether the mode matches the one given
-  if (packet.clockMHz() != settings.station.clockMHz
-   || packet.bitMode() != settings.station.bitMode
-   || packet.header.nrBeamlets != settings.nrBeamletsPerBoard) {
+      // check whether the mode matches the one given
+      if (packet.clockMHz() != settings.station.clockMHz
+          || packet.bitMode() != settings.station.bitMode
+          || packet.header.nrBeamlets != settings.nrBeamletsPerBoard) {
 
-    if (!hadModeError) {
-      LOG_ERROR_STR( logPrefix << "Packet has mode (" << packet.clockMHz() << " MHz, " << packet.bitMode() << " bit, " << packet.header.nrBeamlets << " beamlets), but expected mode (" << settings.station.clockMHz << " MHz, " << settings.station.bitMode << " bit, " << settings.nrBeamletsPerBoard << " beamlets)");
-      hadModeError = true;
-    }
+        if (!hadModeError) {
+          LOG_ERROR_STR( logPrefix << "Packet has mode (" << packet.clockMHz() << " MHz, " << packet.bitMode() << " bit, " << packet.header.nrBeamlets << " beamlets), but expected mode (" << settings.station.clockMHz << " MHz, " << settings.station.bitMode << " bit, " << settings.nrBeamletsPerBoard << " beamlets)");
+          hadModeError = true;
+        }
 
-    ++nrBadMode;
+        ++nrBadMode;
 
-    THROW(BadModeException, "Packet has unexpected clock or bitmode settings");
-  }
+        THROW(BadModeException, "Packet has unexpected clock or bitmode settings");
+      }
 
-  return true;
-}
+      return true;
+    }
 
 
-void PacketReader::logStatistics()
-{
-  LOG_INFO_STR( logPrefix << "Received " << nrReceived << " packets: " << nrBadTime << " bad timestamps, " << nrBadSize << " bad sizes, " << nrBadData << " payload errors, " << nrBadMode << " clock/bitmode errors" );
+    void PacketReader::logStatistics()
+    {
+      LOG_INFO_STR( logPrefix << "Received " << nrReceived << " packets: " << nrBadTime << " bad timestamps, " << nrBadSize << " bad sizes, " << nrBadData << " payload errors, " << nrBadMode << " clock/bitmode errors" );
 
-  nrReceived = 0;
-  nrBadTime = 0;
-  nrBadSize = 0;
-  nrBadData = 0;
-  nrBadMode = 0;
+      nrReceived = 0;
+      nrBadTime = 0;
+      nrBadSize = 0;
+      nrBadData = 0;
+      nrBadMode = 0;
 
-  hadSizeError = false;
-  hadModeError = false;
-}
+      hadSizeError = false;
+      hadModeError = false;
+    }
 
 
-}
+  }
 }
diff --git a/RTCP/Cobalt/InputProc/src/Station/PacketReader.h b/RTCP/Cobalt/InputProc/src/Station/PacketReader.h
index 79bd9114d01cfa4abe625b807e5a401bb69c46fb..b38e96d39f6f7bdf67ea304d736bac94e313c73e 100644
--- a/RTCP/Cobalt/InputProc/src/Station/PacketReader.h
+++ b/RTCP/Cobalt/InputProc/src/Station/PacketReader.h
@@ -8,59 +8,62 @@
 #include "Buffer/BufferSettings.h"
 #include <string>
 
-namespace LOFAR {
-namespace RTCP {
+namespace LOFAR
+{
+  namespace RTCP
+  {
 
-/*
- * Reads RSP packets from a Stream, and collects statistics.
- *
- * Thread-safefy: none.
- */
-class PacketReader {
-public:
-  EXCEPTION_CLASS(BadModeException, LOFAR::Exception);
+    /*
+     * Reads RSP packets from a Stream, and collects statistics.
+     *
+     * Thread-safefy: none.
+     */
+    class PacketReader
+    {
+    public:
+      EXCEPTION_CLASS(BadModeException, LOFAR::Exception);
 
-  PacketReader( const std::string &logPrefix, Stream &inputStream );
+      PacketReader( const std::string &logPrefix, Stream &inputStream );
 
-  // Reads a packet from the input stream. Returns true if a packet was
-  // succesfully read.
-  bool readPacket( struct RSP &packet );
+      // Reads a packet from the input stream. Returns true if a packet was
+      // succesfully read.
+      bool readPacket( struct RSP &packet );
 
-  // Reads a packet from the input stream, and validates it against the given
-  // settings. Returns:
-  //
-  //   true, if the packet was read and valid.
-  //   false, if the packet was invalid.
-  //
-  // Throws BadModeException, if the packet was valid but did not correspond
-  // to `settings'.
-  bool readPacket( struct RSP &packet, const struct BufferSettings &settings );
+      // Reads a packet from the input stream, and validates it against the given
+      // settings. Returns:
+      //
+      //   true, if the packet was read and valid.
+      //   false, if the packet was invalid.
+      //
+      // Throws BadModeException, if the packet was valid but did not correspond
+      // to `settings'.
+      bool readPacket( struct RSP &packet, const struct BufferSettings &settings );
 
-  // Logs (and resets) statistics about the packets read.
-  void logStatistics();
+      // Logs (and resets) statistics about the packets read.
+      void logStatistics();
 
-private:
-  const std::string logPrefix;
+    private:
+      const std::string logPrefix;
 
-  // The stream from which packets are read.
-  Stream &inputStream;
+      // The stream from which packets are read.
+      Stream &inputStream;
 
-  // Whether inputStream can do a small read() without data loss.
-  bool supportPartialReads;
+      // Whether inputStream can do a small read() without data loss.
+      bool supportPartialReads;
 
-  // Statistics covering the packets read so far
-  size_t nrReceived;  // nr. of packets received
-  size_t nrBadSize;   // nr. of packets with wrong size (only if supportPartialReads == true)
-  size_t nrBadTime;   // nr. of packets with an illegal time stamp
-  size_t nrBadData;   // nr. of packets with payload errors
-  size_t nrBadMode;   // nr. of packets with an incorrect clock/bitmode
+      // Statistics covering the packets read so far
+      size_t nrReceived; // nr. of packets received
+      size_t nrBadSize; // nr. of packets with wrong size (only if supportPartialReads == true)
+      size_t nrBadTime; // nr. of packets with an illegal time stamp
+      size_t nrBadData; // nr. of packets with payload errors
+      size_t nrBadMode; // nr. of packets with an incorrect clock/bitmode
 
-  bool hadSizeError;  // already reported about wrongly sized packets since last logStatistics()
-  bool hadModeError;  // already reported about wrong clocks/bitmodes since last logStatistics()
-};
+      bool hadSizeError; // already reported about wrongly sized packets since last logStatistics()
+      bool hadModeError; // already reported about wrong clocks/bitmodes since last logStatistics()
+    };
 
 
-}
+  }
 }
 
 #endif
diff --git a/RTCP/Cobalt/InputProc/src/Station/PacketWriter.h b/RTCP/Cobalt/InputProc/src/Station/PacketWriter.h
index f74ad1f7a70952ca882b02b05c7a843cd33d0935..9525307b236f753754f39357f7a60ed1f966a42e 100644
--- a/RTCP/Cobalt/InputProc/src/Station/PacketWriter.h
+++ b/RTCP/Cobalt/InputProc/src/Station/PacketWriter.h
@@ -7,34 +7,38 @@
 #include "Buffer/Ranges.h"
 #include <string>
 
-namespace LOFAR {
-namespace RTCP {
+namespace LOFAR
+{
+  namespace RTCP
+  {
 
-/*
- * Writes RSP packets to a SampleBuffer
- */
-template<typename T> class PacketWriter {
-public:
-  PacketWriter( const std::string &logPrefix, SampleBuffer<T> &buffer, unsigned boardNr );
+    /*
+     * Writes RSP packets to a SampleBuffer
+     */
+    template<typename T>
+    class PacketWriter
+    {
+    public:
+      PacketWriter( const std::string &logPrefix, SampleBuffer<T> &buffer, unsigned boardNr );
 
-  // Write a packet to the SampleBuffer
-  void writePacket( const struct RSP &packet );
+      // Write a packet to the SampleBuffer
+      void writePacket( const struct RSP &packet );
 
-  void logStatistics();
+      void logStatistics();
 
-private:
-  const std::string logPrefix;
+    private:
+      const std::string logPrefix;
 
-  SampleBuffer<T> &buffer;
-  Ranges &flags;
-  const struct BufferSettings &settings;
-  const size_t firstBeamlet;
+      SampleBuffer<T> &buffer;
+      Ranges &flags;
+      const struct BufferSettings &settings;
+      const size_t firstBeamlet;
 
-  size_t nrWritten;
-};
+      size_t nrWritten;
+    };
 
 
-}
+  }
 }
 
 #include "PacketWriter.tcc"
diff --git a/RTCP/Cobalt/InputProc/src/Station/PacketsToBuffer.cc b/RTCP/Cobalt/InputProc/src/Station/PacketsToBuffer.cc
index 2351d415510c6d5762f036b8a5e726d9c1c7a151..6e57066453b9c0b58f5f42783f52fd2bf5f71840 100644
--- a/RTCP/Cobalt/InputProc/src/Station/PacketsToBuffer.cc
+++ b/RTCP/Cobalt/InputProc/src/Station/PacketsToBuffer.cc
@@ -14,131 +14,134 @@
 #include <string>
 #include <ios>
 
-namespace LOFAR {
-namespace RTCP {
-
-
-PacketsToBuffer::PacketsToBuffer( Stream &inputStream, const BufferSettings &settings, unsigned boardNr )
-:
-  logPrefix(str(boost::format("[station %s board %u] ") % settings.station % boardNr)),
-  inputStream(inputStream),
-  lastlog_timestamp(0),
-  settings(settings),
-  boardNr(boardNr)
+namespace LOFAR
 {
-  LOG_INFO_STR( logPrefix << "Initialised" );
-}
+  namespace RTCP
+  {
+
+
+    PacketsToBuffer::PacketsToBuffer( Stream &inputStream, const BufferSettings &settings, unsigned boardNr )
+      :
+      logPrefix(str(boost::format("[station %s board %u] ") % settings.station % boardNr)),
+      inputStream(inputStream),
+      lastlog_timestamp(0),
+      settings(settings),
+      boardNr(boardNr)
+    {
+      LOG_INFO_STR( logPrefix << "Initialised" );
+    }
 
 
-void PacketsToBuffer::process()
-{
-  // Holder for packet
-  struct RSP packet;
-
-  // Whether packet has been read already
-  bool packetValid = false;
-
-  // Keep reading if mode changes
-  for(;;) {
-    try {
-      // Process packets based on (expected) bit mode
-      switch(settings.station.bitMode) {
-        case 16:
-          process< SampleType<i16complex> >(packet, packetValid);
-          break;
+    void PacketsToBuffer::process()
+    {
+      // Holder for packet
+      struct RSP packet;
 
-        case 8:
-          process< SampleType<i8complex> >(packet, packetValid);
-          break;
+      // Whether packet has been read already
+      bool packetValid = false;
 
-        case 4:
-          process< SampleType<i4complex> >(packet, packetValid);
-          break;
-      }
-
-      // process<>() exited gracefully, so we're done
-      break;
-    } catch (PacketReader::BadModeException &ex) {
-      // Mode switch detected
-      unsigned bitMode    = packet.bitMode();
-      unsigned clockMHz   = packet.clockMHz();
-      unsigned nrBeamlets = packet.header.nrBeamlets;
+      // Keep reading if mode changes
+      for(;; ) {
+        try {
+          // Process packets based on (expected) bit mode
+          switch(settings.station.bitMode) {
+          case 16:
+            process< SampleType<i16complex> >(packet, packetValid);
+            break;
 
-      LOG_INFO_STR( logPrefix << "Mode switch detected to " << clockMHz << " MHz, " << bitMode << " bit, " << nrBeamlets << " beamlets");
+          case 8:
+            process< SampleType<i8complex> >(packet, packetValid);
+            break;
 
-      // update settings
-      settings.station.bitMode = bitMode;
-      settings.station.clockMHz = clockMHz;
-      settings.nrBeamletsPerBoard = nrBeamlets;
+          case 4:
+            process< SampleType<i4complex> >(packet, packetValid);
+            break;
+          }
 
-      // Process packet again
-      packetValid = true;
+          // process<>() exited gracefully, so we're done
+          break;
+        } catch (PacketReader::BadModeException &ex) {
+          // Mode switch detected
+          unsigned bitMode = packet.bitMode();
+          unsigned clockMHz = packet.clockMHz();
+          unsigned nrBeamlets = packet.header.nrBeamlets;
+
+          LOG_INFO_STR( logPrefix << "Mode switch detected to " << clockMHz << " MHz, " << bitMode << " bit, " << nrBeamlets << " beamlets");
+
+          // update settings
+          settings.station.bitMode = bitMode;
+          settings.station.clockMHz = clockMHz;
+          settings.nrBeamletsPerBoard = nrBeamlets;
+
+          // Process packet again
+          packetValid = true;
+        }
+      }
     }
-  }
-}
-
 
-void PacketsToBuffer::logStatistics( PacketReader &reader, const struct RSP &packet )
-{
-  if (packet.header.timestamp < lastlog_timestamp + LOG_INTERVAL) {
-    lastlog_timestamp = packet.header.timestamp;
-
-    reader.logStatistics();
-  }
-}
 
+    void PacketsToBuffer::logStatistics( PacketReader &reader, const struct RSP &packet )
+    {
+      if (packet.header.timestamp < lastlog_timestamp + LOG_INTERVAL) {
+        lastlog_timestamp = packet.header.timestamp;
 
-template<typename T> void PacketsToBuffer::process( struct RSP &packet, bool writeGivenPacket ) throw(PacketReader::BadModeException)
-{
-  // Create input structures
-  PacketReader reader(logPrefix, inputStream);
-
-  // Create output structures
-  SampleBuffer<T> buffer(settings, true);
-  PacketWriter<T> writer(logPrefix, buffer, boardNr);
-
-  try {
-    // Process lingering packet from previous run, if any
-    if (writeGivenPacket) {
-      writer.writePacket(packet);
-      logStatistics(reader, packet);
-    }
-
-    // Transport packets from reader to writer
-    for(;;) {
-      if (reader.readPacket(packet, settings)) {
-        writer.writePacket(packet);
-        logStatistics(reader, packet);
+        reader.logStatistics();
       }
     }
 
-  } catch (PacketReader::BadModeException &ex) {
-    // Packet has different clock or bitmode
-    throw;
-
-  } catch (Stream::EndOfStreamException &ex) {
-    // Ran out of data
-    LOG_INFO_STR( logPrefix << "End of stream");
 
-  } catch (SystemCallException &ex) {
-    if (ex.error == EINTR)
-      LOG_INFO_STR( logPrefix << "Aborted: " << ex.what());
-    else
-      LOG_ERROR_STR( logPrefix << "Caught Exception: " << ex);
-
-  } catch (Exception &ex) {
-    LOG_ERROR_STR( logPrefix << "Caught Exception: " << ex);
-  }
+    template<typename T>
+    void PacketsToBuffer::process( struct RSP &packet, bool writeGivenPacket ) throw(PacketReader::BadModeException)
+    {
+      // Create input structures
+      PacketReader reader(logPrefix, inputStream);
+
+      // Create output structures
+      SampleBuffer<T> buffer(settings, true);
+      PacketWriter<T> writer(logPrefix, buffer, boardNr);
+
+      try {
+        // Process lingering packet from previous run, if any
+        if (writeGivenPacket) {
+          writer.writePacket(packet);
+          logStatistics(reader, packet);
+        }
+
+        // Transport packets from reader to writer
+        for(;; ) {
+          if (reader.readPacket(packet, settings)) {
+            writer.writePacket(packet);
+            logStatistics(reader, packet);
+          }
+        }
+
+      } catch (PacketReader::BadModeException &ex) {
+        // Packet has different clock or bitmode
+        throw;
+
+      } catch (Stream::EndOfStreamException &ex) {
+        // Ran out of data
+        LOG_INFO_STR( logPrefix << "End of stream");
+
+      } catch (SystemCallException &ex) {
+        if (ex.error == EINTR)
+          LOG_INFO_STR( logPrefix << "Aborted: " << ex.what());
+        else
+          LOG_ERROR_STR( logPrefix << "Caught Exception: " << ex);
+
+      } catch (Exception &ex) {
+        LOG_ERROR_STR( logPrefix << "Caught Exception: " << ex);
+      }
 
-  LOG_INFO_STR( logPrefix << "End");
-}
+      LOG_INFO_STR( logPrefix << "End");
+    }
 
 
-// Explcitly create the instances we use
-template void PacketsToBuffer::process< SampleType<i16complex> >( struct RSP &packet, bool writeGivenPacket ) throw(PacketReader::BadModeException);
-template void PacketsToBuffer::process< SampleType<i8complex> >( struct RSP &packet, bool writeGivenPacket ) throw(PacketReader::BadModeException);
-template void PacketsToBuffer::process< SampleType<i4complex> >( struct RSP &packet, bool writeGivenPacket ) throw(PacketReader::BadModeException);
+    // Explcitly create the instances we use
+    template void PacketsToBuffer::process< SampleType<i16complex> >( struct RSP &packet, bool writeGivenPacket ) throw(PacketReader::BadModeException);
+    template void PacketsToBuffer::process< SampleType<i8complex> >( struct RSP &packet, bool writeGivenPacket ) throw(PacketReader::BadModeException);
+    template void PacketsToBuffer::process< SampleType<i4complex> >( struct RSP &packet, bool writeGivenPacket ) throw(PacketReader::BadModeException);
 
 
-}
+  }
 }
diff --git a/RTCP/Cobalt/InputProc/src/Station/PacketsToBuffer.h b/RTCP/Cobalt/InputProc/src/Station/PacketsToBuffer.h
index 7f9cfed321b8b81f7ef05b9f9d93659ca259e252..d7cc8a55abc767dfaa65fa8c70f7d70c39fda00d 100644
--- a/RTCP/Cobalt/InputProc/src/Station/PacketsToBuffer.h
+++ b/RTCP/Cobalt/InputProc/src/Station/PacketsToBuffer.h
@@ -12,88 +12,95 @@
 #include <string>
 #include <ios>
 
-namespace LOFAR {
-namespace RTCP {
-
-/* Receives station input and stores it in shared memory.
- *
- * PacketsToBuffer creates a SampleBuffer based on the provided settings
- * as well as the current clock and bit mode. The latter are auto-sensed
- * from the received packets, which are read from the inputStream. The
- * SampleBuffer is recreated if the clock or bit mode changes.
- *
- * The boardNr indicates the RSP board number for which the packets are
- * received.
- */
-class PacketsToBuffer {
-public:
-  PacketsToBuffer( Stream &inputStream, const BufferSettings &settings, unsigned boardNr );
-
-  // Process data for this board until interrupted or end of data. Auto-senses
-  // mode (bit mode & clock).
-  void process();
-
-protected:
-  const std::string logPrefix;
-
-  // The input stream
-  Stream &inputStream;
-  uint32 lastlog_timestamp;
-
-  // What to receive
-  BufferSettings settings;
-  const unsigned boardNr;
-
-private:
-  // Log if the received packet is LOG_INTERVAL seconds older than the previous one.
-  static const uint32 LOG_INTERVAL = 10;
-
-  // Process data for this board until interrupted or end of data.
-  // `packet' is the receive buffer for packets. If a new mode is detected,
-  // `packet' is filled with the last read packet, and a BadModeException
-  // is thrown.
-  //
-  // If `writeGivenPacket' is true, the provided `packet' is written as well.
-  template<typename T> void process( struct RSP &packet, bool writeGivenPacket ) throw(PacketReader::BadModeException);
-
-  // Triggers statistics logging every LOG_INTERVAL seconds
-  void logStatistics( PacketReader &reader, const struct RSP &packet );
-};
-
-/*
- * MultiPacketsToBuffer processes data from multiple RSP boards in parallel,
- * instantiating a PacketsToBuffer object for each.
- */
-class MultiPacketsToBuffer: public RSPBoards {
-public:
-  MultiPacketsToBuffer( const BufferSettings &settings, const std::vector<std::string> &streamDescriptors )
-  :
-    RSPBoards("", streamDescriptors.size()),
-    settings(settings),
-    streamDescriptors(streamDescriptors)
+namespace LOFAR
+{
+  namespace RTCP
   {
-  }
-
-protected:
-  virtual void processBoard( size_t boardNr ) {
-    SmartPtr<Stream> inputStream = createStream(streamDescriptors[boardNr], true);
-    PacketsToBuffer board(*inputStream, settings, boardNr);
 
-    board.process();
-  }
+    /* Receives station input and stores it in shared memory.
+     *
+     * PacketsToBuffer creates a SampleBuffer based on the provided settings
+     * as well as the current clock and bit mode. The latter are auto-sensed
+     * from the received packets, which are read from the inputStream. The
+     * SampleBuffer is recreated if the clock or bit mode changes.
+     *
+     * The boardNr indicates the RSP board number for which the packets are
+     * received.
+     */
+    class PacketsToBuffer
+    {
+    public:
+      PacketsToBuffer( Stream &inputStream, const BufferSettings &settings, unsigned boardNr );
+
+      // Process data for this board until interrupted or end of data. Auto-senses
+      // mode (bit mode & clock).
+      void process();
+
+    protected:
+      const std::string logPrefix;
+
+      // The input stream
+      Stream &inputStream;
+      uint32 lastlog_timestamp;
+
+      // What to receive
+      BufferSettings settings;
+      const unsigned boardNr;
+
+    private:
+      // Log if the received packet is LOG_INTERVAL seconds older than the previous one.
+      static const uint32 LOG_INTERVAL = 10;
+
+      // Process data for this board until interrupted or end of data.
+      // `packet' is the receive buffer for packets. If a new mode is detected,
+      // `packet' is filled with the last read packet, and a BadModeException
+      // is thrown.
+      //
+      // If `writeGivenPacket' is true, the provided `packet' is written as well.
+      template<typename T>
+      void process( struct RSP &packet, bool writeGivenPacket ) throw(PacketReader::BadModeException);
+
+      // Triggers statistics logging every LOG_INTERVAL seconds
+      void logStatistics( PacketReader &reader, const struct RSP &packet );
+    };
+
+    /*
+     * MultiPacketsToBuffer processes data from multiple RSP boards in parallel,
+     * instantiating a PacketsToBuffer object for each.
+     */
+    class MultiPacketsToBuffer : public RSPBoards
+    {
+    public:
+      MultiPacketsToBuffer( const BufferSettings &settings, const std::vector<std::string> &streamDescriptors )
+        :
+        RSPBoards("", streamDescriptors.size()),
+        settings(settings),
+        streamDescriptors(streamDescriptors)
+      {
+      }
+
+    protected:
+      virtual void processBoard( size_t boardNr )
+      {
+        SmartPtr<Stream> inputStream = createStream(streamDescriptors[boardNr], true);
+        PacketsToBuffer board(*inputStream, settings, boardNr);
+
+        board.process();
+      }
+
+
+      virtual void logStatistics()
+      {
+        // TODO
+      }
+
+    private:
+      const BufferSettings settings;
+      const std::vector<std::string> streamDescriptors;
+    };
 
 
-  virtual void logStatistics() {
-    // TODO
   }
-
-private:
-  const BufferSettings settings;
-  const std::vector<std::string> streamDescriptors;
-};
-
-
-}
 }
 
 #endif
diff --git a/RTCP/Cobalt/InputProc/src/Station/RSP.h b/RTCP/Cobalt/InputProc/src/Station/RSP.h
index 3f2259a3ac7ff06df7bfa741d855fa8138676245..02c35c3df9a271e9762de2a8f0ccb1ae548710b4 100644
--- a/RTCP/Cobalt/InputProc/src/Station/RSP.h
+++ b/RTCP/Cobalt/InputProc/src/Station/RSP.h
@@ -28,168 +28,181 @@
 #include <complex>
 #include <cstddef>
 
-namespace LOFAR {
-namespace RTCP {
-
-// WARNING: All data is in Little Endian format!
-//
-// Note that C++ bit fields are implementation dependent,
-// so we cannot use them.
-
-/* A structure fit for the maximum payload size. When reading UDP,
- * just read them straight into this struct, and ::read() will return
- * the size of the packet.
- *
- * When reading packets from file, make sure you read the right number
- * of bytes (see packetSize()).
- */
-
-struct RSP {
-  // ----------------------------------------------------------------------
-  // Header and payload, in little endian!
-  // ----------------------------------------------------------------------
-
-  struct Header {
-    // 2: Beamlet Data CoInterface 5.0
-    // 3: Beamlet Data CoInterface 6.0 (8- and 4-bit mode support)
-    uint8  version;
-
-    // bit (0=LSB)
-    //
-    // 4:0    RSP board number
-    // 5      (reserved, set to 0)
-    // 6      0: payload ok, 1: payload has data errors
-    // 7      0: 160 MHz     1: 200 MHz
-    uint8  sourceInfo1;
-    
-    // bit (0=LSB)
-    //
-    // 1:0    0: 16-bit      1: 8-bit       2: 4-bit
-    // 7:2    (reserved, set to 0)
-    uint8  sourceInfo2;
-
-    // identifiers
-    uint8  configuration;
-    uint16 station;
-
-    // number of beamlets, typically at maximum:
-    //   16-bit: 61
-    //    8-bit: 122
-    //    4-bit: 244
-    uint8  nrBeamlets;
+namespace LOFAR
+{
+  namespace RTCP
+  {
 
-    // number of Xr+Xi+Yr+Yi samples per beamlet, typically 16
-    uint8  nrBlocks;
-
-    // UNIX timestamp in UTC (= # seconds since 1970-01-01 00:00:00)
-    // 0xFFFFFFFF = clock not initialised
-    uint32 timestamp;
-
-    // Sample offset within the timestamp.
-    //
-    // 160 MHz: 160M/1024 = 156250 samples/second.
-    //
-    // 200 MHz: 200M/1024 = 195212.5 samples/second.
-    //                      Even seconds have 195213 samples,
-    //                      odd seconds have 195212 samples.
-    uint32 blockSequenceNumber;
-  } header;
-
-  // Payload, allocated for maximum size.
-  union {
-    char data[8130];
-
-    // samples are structured as samples[nrBlocks][nrBeamlets],
-    // so first all blocks of the first beamlet, then all blocks of the second
-    // beamlet, etc.
+    // WARNING: All data is in Little Endian format!
     //
-    // for 4-bit mode:
-    //  low octet: real      (2's complement)
-    // high octet: imaginary (2's complement)
-
-    struct { int16 Xr, Xi, Yr, Yi; } samples16bit[61 * 16];
-    struct { int8  Xr, Xi, Yr, Yi; } samples8bit[122 * 16];
-    struct { int8  X, Y;           } samples4bit[244 * 16];
-  } payload;
-
-
-  // ----------------------------------------------------------------------
-  // Helper functions
-  // ----------------------------------------------------------------------
-
-  unsigned rspBoard() const {
-    return header.sourceInfo1 & 0x1F;
-  }
-
-  bool payloadError() const {
-    return header.sourceInfo1 & 0x40;
-  }
-
-  unsigned clockMHz() const {
-    return header.sourceInfo1 & 0x80 ? 200 : 160;
-  }
-
-  unsigned bitMode() const {
-    switch (header.sourceInfo2 & 0x3) {
-      default:
-      case 0x0: return 16;
-      case 0x1: return 8;
-      case 0x2: return 4;
-    }
-  }
-
-  TimeStamp timeStamp() const {
-    return TimeStamp(header.timestamp, header.blockSequenceNumber, clockMHz() * 1000000);
-  }
-
-  size_t packetSize() const {
-    return sizeof(RSP::Header) + header.nrBlocks * header.nrBeamlets * 2 * 2 * bitMode() / 8;
-  }
-
-
-  // ----------------------------------------------------------------------
-  // Payload decoding (for debug purposes, assumes data is converted to native
-  // endianness)
-  // ----------------------------------------------------------------------
-  std::complex<int> sample( unsigned beamlet, unsigned block, char polarisation /* 'X' or 'Y' */) const {
-    const unsigned offset = beamlet * header.nrBlocks + block;
-
-    switch( bitMode() ) {
-      default:
-      case 16:
-        return polarisation == 'X' ? std::complex<int>(payload.samples16bit[offset].Xr,
-                                                       payload.samples16bit[offset].Xi)
-                                   : std::complex<int>(payload.samples16bit[offset].Yr,
-                                                       payload.samples16bit[offset].Yi);
-
-      case 8:
-        return polarisation == 'X' ? std::complex<int>(payload.samples8bit[offset].Xr,
-                                                       payload.samples8bit[offset].Xi)
-                                   : std::complex<int>(payload.samples8bit[offset].Yr,
-                                                       payload.samples8bit[offset].Yi);
-
-      case 4:
-        return polarisation == 'X' ? decode4bit(payload.samples4bit[offset].X)
-                                   : decode4bit(payload.samples4bit[offset].Y);
-    }
-  }
-
-private:
-
-  // decode the 4-bit complex type.
-  static std::complex<int> decode4bit( int8 sample ) {
-    int8 re = (sample << 4) >> 4; // preserve sign
-    int8 im = (sample     ) >> 4; // preserve sign
-
-    // balance range to [-7..7], subject to change!
-    if (re == -8) re = -7;
-    if (im == -8) im = -7;
-
-    return std::complex<int>(re, im);
-  }
-};
-
-} // namespace RTCP
+    // Note that C++ bit fields are implementation dependent,
+    // so we cannot use them.
+
+    /* A structure fit for the maximum payload size. When reading UDP,
+     * just read them straight into this struct, and ::read() will return
+     * the size of the packet.
+     *
+     * When reading packets from file, make sure you read the right number
+     * of bytes (see packetSize()).
+     */
+
+    struct RSP {
+      // ----------------------------------------------------------------------
+      // Header and payload, in little endian!
+      // ----------------------------------------------------------------------
+
+      struct Header {
+        // 2: Beamlet Data CoInterface 5.0
+        // 3: Beamlet Data CoInterface 6.0 (8- and 4-bit mode support)
+        uint8 version;
+
+        // bit (0=LSB)
+        //
+        // 4:0    RSP board number
+        // 5      (reserved, set to 0)
+        // 6      0: payload ok, 1: payload has data errors
+        // 7      0: 160 MHz     1: 200 MHz
+        uint8 sourceInfo1;
+
+        // bit (0=LSB)
+        //
+        // 1:0    0: 16-bit      1: 8-bit       2: 4-bit
+        // 7:2    (reserved, set to 0)
+        uint8 sourceInfo2;
+
+        // identifiers
+        uint8 configuration;
+        uint16 station;
+
+        // number of beamlets, typically at maximum:
+        //   16-bit: 61
+        //    8-bit: 122
+        //    4-bit: 244
+        uint8 nrBeamlets;
+
+        // number of Xr+Xi+Yr+Yi samples per beamlet, typically 16
+        uint8 nrBlocks;
+
+        // UNIX timestamp in UTC (= # seconds since 1970-01-01 00:00:00)
+        // 0xFFFFFFFF = clock not initialised
+        uint32 timestamp;
+
+        // Sample offset within the timestamp.
+        //
+        // 160 MHz: 160M/1024 = 156250 samples/second.
+        //
+        // 200 MHz: 200M/1024 = 195212.5 samples/second.
+        //                      Even seconds have 195213 samples,
+        //                      odd seconds have 195212 samples.
+        uint32 blockSequenceNumber;
+      } header;
+
+      // Payload, allocated for maximum size.
+      union {
+        char data[8130];
+
+        // samples are structured as samples[nrBlocks][nrBeamlets],
+        // so first all blocks of the first beamlet, then all blocks of the second
+        // beamlet, etc.
+        //
+        // for 4-bit mode:
+        //  low octet: real      (2's complement)
+        // high octet: imaginary (2's complement)
+
+        struct { int16 Xr, Xi, Yr, Yi;
+        } samples16bit[61 * 16];
+        struct { int8 Xr, Xi, Yr, Yi;
+        } samples8bit[122 * 16];
+        struct { int8 X, Y;
+        } samples4bit[244 * 16];
+      } payload;
+
+
+      // ----------------------------------------------------------------------
+      // Helper functions
+      // ----------------------------------------------------------------------
+
+      unsigned rspBoard() const
+      {
+        return header.sourceInfo1 & 0x1F;
+      }
+
+      bool payloadError() const
+      {
+        return header.sourceInfo1 & 0x40;
+      }
+
+      unsigned clockMHz() const
+      {
+        return header.sourceInfo1 & 0x80 ? 200 : 160;
+      }
+
+      unsigned bitMode() const
+      {
+        switch (header.sourceInfo2 & 0x3) {
+        default:
+        case 0x0: return 16;
+        case 0x1: return 8;
+        case 0x2: return 4;
+        }
+      }
+
+      TimeStamp timeStamp() const
+      {
+        return TimeStamp(header.timestamp, header.blockSequenceNumber, clockMHz() * 1000000);
+      }
+
+      size_t packetSize() const
+      {
+        return sizeof(RSP::Header) + header.nrBlocks * header.nrBeamlets * 2 * 2 * bitMode() / 8;
+      }
+
+
+      // ----------------------------------------------------------------------
+      // Payload decoding (for debug purposes, assumes data is converted to native
+      // endianness)
+      // ----------------------------------------------------------------------
+      std::complex<int> sample( unsigned beamlet, unsigned block, char polarisation /* 'X' or 'Y' */) const
+      {
+        const unsigned offset = beamlet * header.nrBlocks + block;
+
+        switch( bitMode() ) {
+        default:
+        case 16:
+          return polarisation == 'X' ? std::complex<int>(payload.samples16bit[offset].Xr,
+                                                         payload.samples16bit[offset].Xi)
+                 : std::complex<int>(payload.samples16bit[offset].Yr,
+                                     payload.samples16bit[offset].Yi);
+
+        case 8:
+          return polarisation == 'X' ? std::complex<int>(payload.samples8bit[offset].Xr,
+                                                         payload.samples8bit[offset].Xi)
+                 : std::complex<int>(payload.samples8bit[offset].Yr,
+                                     payload.samples8bit[offset].Yi);
+
+        case 4:
+          return polarisation == 'X' ? decode4bit(payload.samples4bit[offset].X)
+                 : decode4bit(payload.samples4bit[offset].Y);
+        }
+      }
+
+    private:
+
+      // decode the 4-bit complex type.
+      static std::complex<int> decode4bit( int8 sample )
+      {
+        int8 re = (sample << 4) >> 4; // preserve sign
+        int8 im = (sample     ) >> 4; // preserve sign
+
+        // balance range to [-7..7], subject to change!
+        if (re == -8) re = -7;
+        if (im == -8) im = -7;
+
+        return std::complex<int>(re, im);
+      }
+    };
+
+  } // namespace RTCP
 } // namespace LOFAR
 
 #endif
diff --git a/RTCP/Cobalt/InputProc/src/Station/filterRSP.cc b/RTCP/Cobalt/InputProc/src/Station/filterRSP.cc
index 4ff41356238d4791a67bb64f39a450d020eee2e7..baa8eec58ae6b6fcfccb443e421325185a725ff5 100644
--- a/RTCP/Cobalt/InputProc/src/Station/filterRSP.cc
+++ b/RTCP/Cobalt/InputProc/src/Station/filterRSP.cc
@@ -29,14 +29,14 @@ int main(int argc, char **argv)
   }
 
   time_t from = parseTime(argv[1]);
-  time_t to   = parseTime(argv[2]);
+  time_t to = parseTime(argv[2]);
 
   SmartPtr<Stream> inputStream = createStream("file:/dev/stdin", true);
   PacketReader reader("", *inputStream);
   struct RSP packet;
 
   try {
-    for(;;) {
+    for(;; ) {
       if( reader.readPacket(packet) ) {
         if (packet.header.timestamp < from || packet.header.timestamp >= to)
           continue;
diff --git a/RTCP/Cobalt/InputProc/src/Transpose/MPITransferStations.h b/RTCP/Cobalt/InputProc/src/Transpose/MPITransferStations.h
index 00c7f9db87f4a20b1489c7ca5fba31c7e0b452c2..73706e0c6a2a94ff6e1fd3827d0ff91b8a20ca08 100644
--- a/RTCP/Cobalt/InputProc/src/Transpose/MPITransferStations.h
+++ b/RTCP/Cobalt/InputProc/src/Transpose/MPITransferStations.h
@@ -8,91 +8,99 @@
 #include "mpi.h"
 #include <vector>
 
-namespace LOFAR {
-  namespace RTCP {
+namespace LOFAR
+{
+  namespace RTCP
+  {
+
+    /*
+     * Sends a set of beamlets from the SHM buffer to one MPI node.
+     */
+    template<typename T>
+    class MPISendStation : public SampleBufferReader<T>
+    {
+    public:
+      MPISendStation( const struct BufferSettings &settings, const TimeStamp &from, const TimeStamp &to, size_t blockSize, size_t nrHistorySamples, const std::vector<size_t> &beamlets, unsigned destRank );
+
+      struct Header {
+        StationID station;
+
+        int64 from, to;
+        size_t wrapOffsets[1024];
+
+        size_t nrBeamlets;
+        size_t metaDataSize;
+      };
+
+      union tag_t {
+        struct {
+          unsigned type : 2;
+          unsigned beamlet : 10;
+          unsigned transfer : 1;
+        } bits;
+
+        int value;
+
+        tag_t() : value(0) {
+        }
+      };
+
+      enum tag_types { CONTROL = 0, BEAMLET = 1, FLAGS = 2 };
+
+    protected:
+      const unsigned destRank;
+
+      std::vector<MPI_Request> requests;
+      size_t nrRequests;
+
+      Matrix<char> metaData; // [beamlet][data]
+
+      virtual void copyStart( const TimeStamp &from, const TimeStamp &to, const std::vector<size_t> &wrapOffsets );
+      virtual void copy( const struct SampleBufferReader<T>::CopyInstructions &info );
+      virtual void copyEnd( const TimeStamp &from, const TimeStamp &to );
+
+      size_t metaDataSize() const
+      {
+        return sizeof(uint32_t) + this->settings.nrFlagRanges * sizeof(int64) * 2;
+      }
+    };
+
+
+    /*
+     * We receive all station data in one loop, because MPI wants to
+     * have a single thread listening to all requests.
+     *
+     * This could be changed into one thread/station to overlap the data
+     * transfers between different blocks from different stations. However,
+     * such seems to require polling MPI_Testall loops like in MPISendStation.
+     */
+    template<typename T>
+    class MPIReceiveStations
+    {
+    public:
+      MPIReceiveStations( const struct BufferSettings &settings, const std::vector<int> stationRanks, const std::vector<size_t> &beamlets, size_t blockSize );
+
+      struct Block {
+        MultiDimArray<T, 2> samples;            // [beamlet][sample]
+        MultiDimArray<SparseSet<int64>, 1> flags; // [beamlet]
+      };
+
+      std::vector<struct Block> lastBlock; // [station]
+
+      // Fill lastBlock with the next block
+      void receiveBlock();
+
+    private:
+      const struct BufferSettings settings;
+      const std::vector<int> stationRanks;
+
+    public:
+      const std::vector<size_t> beamlets;
+      const size_t blockSize;
+    };
 
-/*
- * Sends a set of beamlets from the SHM buffer to one MPI node.
- */
-template<typename T> class MPISendStation: public SampleBufferReader<T> {
-public:
-  MPISendStation( const struct BufferSettings &settings, const TimeStamp &from, const TimeStamp &to, size_t blockSize, size_t nrHistorySamples, const std::vector<size_t> &beamlets, unsigned destRank );
 
-  struct Header {
-    StationID station;
-
-    int64 from, to;
-    size_t wrapOffsets[1024];
-
-    size_t nrBeamlets;
-    size_t metaDataSize;
-  };
-
-  union tag_t {
-    struct {
-      unsigned type:2;
-      unsigned beamlet:10;
-      unsigned transfer:1;
-    } bits;
-
-    int value;
-
-    tag_t(): value(0) {}
-  };
-
-  enum tag_types { CONTROL = 0, BEAMLET = 1, FLAGS = 2 };
-
-protected:
-  const unsigned destRank;
-
-  std::vector<MPI_Request> requests;
-  size_t nrRequests;
-
-  Matrix<char> metaData; // [beamlet][data]
-
-  virtual void copyStart( const TimeStamp &from, const TimeStamp &to, const std::vector<size_t> &wrapOffsets );
-  virtual void copy( const struct SampleBufferReader<T>::CopyInstructions &info );
-  virtual void copyEnd( const TimeStamp &from, const TimeStamp &to );
-
-  size_t metaDataSize() const {
-    return sizeof(uint32_t) + this->settings.nrFlagRanges * sizeof(int64) * 2;
   }
-};
-
-
-/*
- * We receive all station data in one loop, because MPI wants to
- * have a single thread listening to all requests.
- *
- * This could be changed into one thread/station to overlap the data
- * transfers between different blocks from different stations. However,
- * such seems to require polling MPI_Testall loops like in MPISendStation.
- */
-template<typename T> class MPIReceiveStations {
-public:
-  MPIReceiveStations( const struct BufferSettings &settings, const std::vector<int> stationRanks, const std::vector<size_t> &beamlets, size_t blockSize );
-
-  struct Block {
-    MultiDimArray<T, 2> samples;                // [beamlet][sample]
-    MultiDimArray<SparseSet<int64>, 1> flags;   // [beamlet]
-  };
-
-  std::vector<struct Block> lastBlock; // [station]
-
-  // Fill lastBlock with the next block
-  void receiveBlock();
-
-private:
-  const struct BufferSettings settings;
-  const std::vector<int> stationRanks;
-
-public:
-  const std::vector<size_t> beamlets;
-  const size_t blockSize;
-};
-
-
-}
 }
 
 #include "MPITransferStations.tcc"
diff --git a/RTCP/Cobalt/InputProc/src/WallClockTime.h b/RTCP/Cobalt/InputProc/src/WallClockTime.h
index 398db96e9fa66e075cbdba76f2ae9282e93ea4fc..8280cea8d8a75fc567602ce9fcbe47125b37bdc3 100644
--- a/RTCP/Cobalt/InputProc/src/WallClockTime.h
+++ b/RTCP/Cobalt/InputProc/src/WallClockTime.h
@@ -31,78 +31,80 @@
 #include <time.h>
 
 
-namespace LOFAR {
-namespace RTCP {
+namespace LOFAR
+{
+  namespace RTCP
+  {
 
 
-class WallClockTime
-{
-  public:
-	      WallClockTime();
+    class WallClockTime
+    {
+    public:
+      WallClockTime();
 
-    bool      waitUntil(const struct timespec &);
-    bool      waitUntil(time_t);
-    bool      waitUntil(const TimeStamp &);
-    void      waitForever();
+      bool      waitUntil(const struct timespec &);
+      bool waitUntil(time_t);
+      bool      waitUntil(const TimeStamp &);
+      void      waitForever();
 
-    void      cancelWait();
+      void      cancelWait();
 
-  private:
-    Mutex     itsMutex;
-    Condition itsCondition;
-    bool      itsCancelled;
-};
+    private:
+      Mutex itsMutex;
+      Condition itsCondition;
+      bool itsCancelled;
+    };
 
 
-inline WallClockTime::WallClockTime()
-:
-  itsCancelled(false)
-{
-}
+    inline WallClockTime::WallClockTime()
+      :
+      itsCancelled(false)
+    {
+    }
 
 
-inline bool WallClockTime::waitUntil(const struct timespec &timespec)
-{
-  ScopedLock scopedLock(itsMutex);
+    inline bool WallClockTime::waitUntil(const struct timespec &timespec)
+    {
+      ScopedLock scopedLock(itsMutex);
 
-  while (!itsCancelled && itsCondition.wait(itsMutex, timespec))
-    ;
+      while (!itsCancelled && itsCondition.wait(itsMutex, timespec))
+        ;
 
-  return !itsCancelled;
-}
+      return !itsCancelled;
+    }
 
 
-inline bool WallClockTime::waitUntil(time_t timestamp)
-{
-  struct timespec timespec = { timestamp, 0 };
+    inline bool WallClockTime::waitUntil(time_t timestamp)
+    {
+      struct timespec timespec = { timestamp, 0 };
 
-  return waitUntil(timespec);
-}
+      return waitUntil(timespec);
+    }
 
 
-inline bool WallClockTime::waitUntil(const TimeStamp &timestamp)
-{
-  return waitUntil(static_cast<struct timespec>(timestamp));
-}
+    inline bool WallClockTime::waitUntil(const TimeStamp &timestamp)
+    {
+      return waitUntil(static_cast<struct timespec>(timestamp));
+    }
 
-inline void WallClockTime::waitForever()
-{
-  ScopedLock scopedLock(itsMutex);
+    inline void WallClockTime::waitForever()
+    {
+      ScopedLock scopedLock(itsMutex);
 
-  while (!itsCancelled) 
-    itsCondition.wait(itsMutex);
-}
+      while (!itsCancelled)
+        itsCondition.wait(itsMutex);
+    }
 
-inline void WallClockTime::cancelWait()
-{
-  ScopedLock scopedLock(itsMutex);
+    inline void WallClockTime::cancelWait()
+    {
+      ScopedLock scopedLock(itsMutex);
 
-  itsCancelled = true;
-  itsCondition.broadcast();
-}
+      itsCancelled = true;
+      itsCondition.broadcast();
+    }
 
 
-} // namespace RTCP
+  } // namespace RTCP
 } // namespace LOFAR
 
 #endif
diff --git a/RTCP/Cobalt/InputProc/src/newInputSection.cc b/RTCP/Cobalt/InputProc/src/newInputSection.cc
index 81f789c1e7910455a28d01837fadb2a576950dc4..fa220909aec64c9078047ca5de0b5193717914e4 100644
--- a/RTCP/Cobalt/InputProc/src/newInputSection.cc
+++ b/RTCP/Cobalt/InputProc/src/newInputSection.cc
@@ -23,7 +23,7 @@
 #include <string>
 #include <boost/format.hpp>
 
-#define DURATION 60 
+#define DURATION 60
 #define BLOCKSIZE 0.005
 #define NRSTATIONS 3
 #define NR_TAPS 16
@@ -36,7 +36,7 @@ using namespace RTCP;
 
 int main( int argc, char **argv )
 {
-  size_t clock = 200*1000*1000;
+  size_t clock = 200 * 1000 * 1000;
 
   typedef SampleType<i16complex> SampleT;
   const TimeStamp from(time(0L) + 1, 0, clock);
@@ -78,7 +78,7 @@ int main( int argc, char **argv )
     {
       MPIReceiveStations<SampleT> receiver(settings, stationRanks, beamlets[rank], blockSize);
 
-      for(size_t block = 0; block < (to-from)/blockSize + 1; ++block) {
+      for(size_t block = 0; block < (to - from) / blockSize + 1; ++block) {
         receiver.receiveBlock();
 
         // data is now in receiver.lastBlock
@@ -110,13 +110,19 @@ int main( int argc, char **argv )
     #pragma omp parallel sections num_threads(4)
     {
       #pragma omp section
-      { station.process(); }
+      { station.process();
+      }
 
       #pragma omp section
-      { generator.process(); }
+      { generator.process();
+      }
 
       #pragma omp section
-      { sleep(DURATION + 1); station.stop(); sleep(1); generator.stop(); }
+      { sleep(DURATION + 1);
+        station.stop();
+        sleep(1);
+        generator.stop();
+      }
 
       #pragma omp section
       {
@@ -135,18 +141,18 @@ int main( int argc, char **argv )
       }
     }
   } else {
-      struct StationID lookup("RS106", "HBA0");
-      struct BufferSettings s(stationID, true);
+    struct StationID lookup("RS106", "HBA0");
+    struct BufferSettings s(stationID, true);
 
-      LOG_INFO_STR("Detected " << s);
+    LOG_INFO_STR("Detected " << s);
       #pragma omp parallel for num_threads(nrHosts - nrStations)
-      for (int i = nrStations; i < nrHosts; ++i) {
-        LOG_INFO_STR("Connecting to receiver " << i );
-        MPISendStation< SampleT > streamer(s, from, to, blockSize, NR_TAPS, beamlets[i], i );
+    for (int i = nrStations; i < nrHosts; ++i) {
+      LOG_INFO_STR("Connecting to receiver " << i );
+      MPISendStation< SampleT > streamer(s, from, to, blockSize, NR_TAPS, beamlets[i], i );
 
-        LOG_INFO_STR("Sending to receiver " << i );
-        streamer.process( 0.0 );
-      }
+      LOG_INFO_STR("Sending to receiver " << i );
+      streamer.process( 0.0 );
+    }
   }
 
   MPI_Finalize();
diff --git a/RTCP/Cobalt/InputProc/src/obsolete/MPI_RMA.h b/RTCP/Cobalt/InputProc/src/obsolete/MPI_RMA.h
index a3b2c7b1e13ba95742b71847e9049f8245b0478d..71e6b3fbdf61040644ef06f741459d47ee1e297b 100644
--- a/RTCP/Cobalt/InputProc/src/obsolete/MPI_RMA.h
+++ b/RTCP/Cobalt/InputProc/src/obsolete/MPI_RMA.h
@@ -1,6 +1,8 @@
 #define MULTIPLE_WINDOWS
 
-template<typename T> class MPISharedBuffer: public SampleBuffer<T> {
+template<typename T>
+class MPISharedBuffer : public SampleBuffer<T>
+{
 public:
   MPISharedBuffer( const struct BufferSettings &settings );
 
@@ -14,8 +16,9 @@ private:
 #endif
 };
 
-template<typename T> MPISharedBuffer<T>::MPISharedBuffer( const struct BufferSettings &settings )
-:
+template<typename T>
+MPISharedBuffer<T>::MPISharedBuffer( const struct BufferSettings &settings )
+  :
   SampleBuffer<T>(settings, false)
 #ifdef MULTIPLE_WINDOWS
   , beamlets_windows(NRSTATIONS)
@@ -34,22 +37,25 @@ template<typename T> MPISharedBuffer<T>::MPISharedBuffer( const struct BufferSet
 #endif
 }
 
-template<typename T> MPISharedBuffer<T>::~MPISharedBuffer()
+template<typename T>
+MPISharedBuffer<T>::~MPISharedBuffer()
 {
 #ifdef MULTIPLE_WINDOWS
   for (int i = 0; i < NRSTATIONS; ++i) {
     int error = MPI_Win_free(&beamlets_windows[i]);
-      
+
     ASSERT(error == MPI_SUCCESS);
   }
 #else
   int error = MPI_Win_free(&beamlets_window);
-    
+
   ASSERT(error == MPI_SUCCESS);
 #endif
 }
 
-template<typename T> class MPISharedBufferReader {
+template<typename T>
+class MPISharedBufferReader
+{
 public:
   MPISharedBufferReader( const std::vector<struct BufferSettings> &settings, const TimeStamp &from, const TimeStamp &to, size_t blockSize, const std::vector<size_t> &beamlets );
 
@@ -76,8 +82,9 @@ private:
   void copy( const TimeStamp &from, const TimeStamp &to );
 };
 
-template<typename T> MPISharedBufferReader<T>::MPISharedBufferReader( const std::vector<struct BufferSettings> &settings, const TimeStamp &from, const TimeStamp &to, size_t blockSize, const std::vector<size_t> &beamlets )
-:
+template<typename T>
+MPISharedBufferReader<T>::MPISharedBufferReader( const std::vector<struct BufferSettings> &settings, const TimeStamp &from, const TimeStamp &to, size_t blockSize, const std::vector<size_t> &beamlets )
+  :
   settings(settings),
   from(from),
   to(to),
@@ -114,7 +121,8 @@ template<typename T> MPISharedBufferReader<T>::MPISharedBufferReader( const std:
 #endif
 }
 
-template<typename T> MPISharedBufferReader<T>::~MPISharedBufferReader()
+template<typename T>
+MPISharedBufferReader<T>::~MPISharedBufferReader()
 {
 #ifdef MULTIPLE_WINDOWS
   for (int i = 0; i < settings.size(); ++i) {
@@ -129,7 +137,8 @@ template<typename T> MPISharedBufferReader<T>::~MPISharedBufferReader()
 #endif
 }
 
-template<typename T> void MPISharedBufferReader<T>::process( double maxDelay )
+template<typename T>
+void MPISharedBufferReader<T>::process( double maxDelay )
 {
   const TimeStamp maxDelay_ts(static_cast<int64>(maxDelay * settings[0].station.clock / 1024) + blockSize, settings[0].station.clock);
 
@@ -155,7 +164,7 @@ template<typename T> void MPISharedBufferReader<T>::process( double maxDelay )
     totalnr++;
 
     if (bs - lastreport > 1.0) {
-      double mbps = (sizeof(T) * blockSize * beamlets.size() * 8) / (totalwait/totalnr) / 1e6;
+      double mbps = (sizeof(T) * blockSize * beamlets.size() * 8) / (totalwait / totalnr) / 1e6;
       lastreport = bs;
       totalwait = 0.0;
       totalnr = 0;
@@ -167,7 +176,8 @@ template<typename T> void MPISharedBufferReader<T>::process( double maxDelay )
   LOG_INFO("Done reading data");
 }
 
-template<typename T> void MPISharedBufferReader<T>::copy( const TimeStamp &from, const TimeStamp &to )
+template<typename T>
+void MPISharedBufferReader<T>::copy( const TimeStamp &from, const TimeStamp &to )
 {
   int error;
 
@@ -188,12 +198,12 @@ template<typename T> void MPISharedBufferReader<T>::copy( const TimeStamp &from,
     const struct BufferSettings settings = this->settings[s];
 
     size_t from_offset = (int64)from % settings.nrSamples;
-    size_t to_offset   = (int64)to % settings.nrSamples;
+    size_t to_offset = (int64)to % settings.nrSamples;
 
     if (to_offset == 0)
       to_offset = settings.nrSamples;
 
-    size_t wrap        = from_offset < to_offset ? 0 : settings.nrSamples - from_offset;
+    size_t wrap = from_offset < to_offset ? 0 : settings.nrSamples - from_offset;
 
     for (size_t i = 0; i < beamlets.size(); ++i) {
       unsigned nr = beamlets[i];
diff --git a/RTCP/Cobalt/InputProc/src/obsolete/Poll.h b/RTCP/Cobalt/InputProc/src/obsolete/Poll.h
index b3151a7cf63c410f2c78cdb9d82e9041b8b0a669..bce7ca63273abda61073a2f14220acbb991c82fb 100644
--- a/RTCP/Cobalt/InputProc/src/obsolete/Poll.h
+++ b/RTCP/Cobalt/InputProc/src/obsolete/Poll.h
@@ -5,7 +5,8 @@
 #include <Common/SystemCallException.h>
 #include <sys/epoll.h>
 
-class Poll: protected FileDescriptorBasedStream {
+class Poll : protected FileDescriptorBasedStream
+{
 public:
   Poll();
 
diff --git a/RTCP/Cobalt/InputProc/src/obsolete/TimeSync.h b/RTCP/Cobalt/InputProc/src/obsolete/TimeSync.h
index 61f80f98cef5da81b2d85b2703ccc446d27643cf..216d1c72416649315d193a7cf248dba447355a77 100644
--- a/RTCP/Cobalt/InputProc/src/obsolete/TimeSync.h
+++ b/RTCP/Cobalt/InputProc/src/obsolete/TimeSync.h
@@ -4,85 +4,91 @@
 #include <Common/Thread/Mutex.h>
 #include <Common/Thread/Condition.h>
 
-namespace LOFAR {
+namespace LOFAR
+{
 
-class TimeSync {
-public:
-  TimeSync();
+  class TimeSync
+  {
+  public:
+    TimeSync();
 
-  // set to `val'
-  void set( int64 val );
+    // set to `val'
+    void set( int64 val );
 
-  // wait for the value to be at least `val'
+    // wait for the value to be at least `val'
 
-  // wait for the value to be at least `val' (and
-  // return true), or until there is no more data
-  // or a timeout (return false).
-  bool wait( int64 val );
-  bool wait( int64 val, struct timespec &timeout );
+    // wait for the value to be at least `val' (and
+    // return true), or until there is no more data
+    // or a timeout (return false).
+    bool wait( int64 val );
+    bool wait( int64 val, struct timespec &timeout );
 
-  // signal no more data
-  void noMoreData();
+    // signal no more data
+    void noMoreData();
 
-private:
-  bool stop;
-  int64 timestamp;
-  int64 waitFor;
+  private:
+    bool stop;
+    int64 timestamp;
+    int64 waitFor;
 
-  Mutex mutex;
-  Condition cond;
-};
+    Mutex mutex;
+    Condition cond;
+  };
 
-TimeSync::TimeSync()
-:
-  stop(false),
-  timestamp(0),
-  waitFor(0)
-{
-}
+  TimeSync::TimeSync()
+    :
+    stop(false),
+    timestamp(0),
+    waitFor(0)
+  {
+  }
 
-void TimeSync::set( int64 val ) {
-  ScopedLock sl(mutex);
+  void TimeSync::set( int64 val )
+  {
+    ScopedLock sl(mutex);
 
-  timestamp = val;
+    timestamp = val;
 
-  if (waitFor != 0 && timestamp > waitFor)
-    cond.signal();
-}
+    if (waitFor != 0 && timestamp > waitFor)
+      cond.signal();
+  }
 
-bool TimeSync::wait( int64 val ) {
-  ScopedLock sl(mutex);
+  bool TimeSync::wait( int64 val )
+  {
+    ScopedLock sl(mutex);
 
-  waitFor = val;
+    waitFor = val;
 
-  while (timestamp <= val && !stop)
-    cond.wait(mutex);
+    while (timestamp <= val && !stop)
+      cond.wait(mutex);
 
-  waitFor = 0;
+    waitFor = 0;
 
-  return timestamp <= val;
-}
+    return timestamp <= val;
+  }
 
-bool TimeSync::wait( int64 val, struct timespec &timeout ) {
-  ScopedLock sl(mutex);
+  bool TimeSync::wait( int64 val, struct timespec &timeout )
+  {
+    ScopedLock sl(mutex);
 
-  waitFor = val;
+    waitFor = val;
 
-  while (timestamp <= val && !stop)
-    if( !cond.wait(mutex, timeout) )
-      break;
+    while (timestamp <= val && !stop)
+      if( !cond.wait(mutex, timeout) )
+        break;
 
-  waitFor = 0;
+    waitFor = 0;
 
-  return timestamp <= val;
-}
+    return timestamp <= val;
+  }
 
-void TimeSync::noMoreData() {
-  ScopedLock sl(mutex);
+  void TimeSync::noMoreData()
+  {
+    ScopedLock sl(mutex);
 
-  stop = true;
-  cond.signal();
-}
+    stop = true;
+    cond.signal();
+  }
 
 }
 
diff --git a/RTCP/Cobalt/InputProc/test/tGenerator.cc b/RTCP/Cobalt/InputProc/test/tGenerator.cc
index daaaa7fc4665f7e4dbbfa6bd7f999aebea43b67b..d68df002ac157e0dcbae7060b6e85158a2f545c6 100644
--- a/RTCP/Cobalt/InputProc/test/tGenerator.cc
+++ b/RTCP/Cobalt/InputProc/test/tGenerator.cc
@@ -14,9 +14,10 @@ using namespace RTCP;
 using namespace std;
 
 // The number of packets to transmit (note: there are 16 time samples/packet)
-#define NUMPACKETS (200000000/1024/16)
+#define NUMPACKETS (200000000 / 1024 / 16)
 
-int main( int, char **argv ) {
+int main( int, char **argv )
+{
   INIT_LOGGER( argv[0] );
 
   // Don't run forever if communication fails for some reason
@@ -51,7 +52,7 @@ int main( int, char **argv ) {
     }
 
     #pragma omp section
-    { 
+    {
       // Read and verify the generated packets
 
       try {
diff --git a/RTCP/Cobalt/InputProc/test/tPacketReader.cc b/RTCP/Cobalt/InputProc/test/tPacketReader.cc
index 07adae4aeb179873fe4c10cc6703cdec0aa6cedd..c38453700bc51c7ca7d3cbf61f6e9c57dfa9851a 100644
--- a/RTCP/Cobalt/InputProc/test/tPacketReader.cc
+++ b/RTCP/Cobalt/InputProc/test/tPacketReader.cc
@@ -32,7 +32,8 @@ void test(const std::string &filename, unsigned bitmode, unsigned nrPackets)
   }
 }
 
-int main() {
+int main()
+{
   INIT_LOGGER("tPacketReader");
 
   test("tPacketReader.in_16bit", 16, 2);
diff --git a/RTCP/Cobalt/InputProc/test/tPacketWriter.cc b/RTCP/Cobalt/InputProc/test/tPacketWriter.cc
index 3075c93b915d7f153b97f8b1413a990abc0cb2ab..e7084f89bb7367a7f7bcc760dcce6ea66c932eed 100644
--- a/RTCP/Cobalt/InputProc/test/tPacketWriter.cc
+++ b/RTCP/Cobalt/InputProc/test/tPacketWriter.cc
@@ -13,7 +13,8 @@ using namespace LOFAR;
 using namespace RTCP;
 using namespace std;
 
-template<typename T> void test( struct BufferSettings &settings, const std::string &filename )
+template<typename T>
+void test( struct BufferSettings &settings, const std::string &filename )
 {
   SampleBuffer< SampleType<T> > buffer(settings, true);
   PacketWriter< SampleType<T> > writer("", buffer, 0);
@@ -70,7 +71,8 @@ template<typename T> void test( struct BufferSettings &settings, const std::stri
 }
 
 
-int main() {
+int main()
+{
   INIT_LOGGER( "tPacketWriter" );
 
   // Don't run forever if communication fails for some reason
diff --git a/RTCP/Cobalt/InputProc/test/tPacketsToBuffer.cc b/RTCP/Cobalt/InputProc/test/tPacketsToBuffer.cc
index 3a31942d1d5d56edd40cd4b54f0d24316a949345..1cca51614c75e85ffeab6d03fb4e5b9370321ef8 100644
--- a/RTCP/Cobalt/InputProc/test/tPacketsToBuffer.cc
+++ b/RTCP/Cobalt/InputProc/test/tPacketsToBuffer.cc
@@ -11,7 +11,8 @@ using namespace LOFAR;
 using namespace RTCP;
 using namespace std;
 
-template<typename T> void test( struct BufferSettings &settings, const std::string &filename )
+template<typename T>
+void test( struct BufferSettings &settings, const std::string &filename )
 {
   // Create the buffer to keep it around after transfer.process(), or there
   // will be no subscribers and transfer will delete the buffer automatically,
@@ -35,7 +36,8 @@ template<typename T> void test( struct BufferSettings &settings, const std::stri
 }
 
 
-int main() {
+int main()
+{
   INIT_LOGGER( "tPacketsToBuffer" );
 
   // Don't run forever if communication fails for some reason
diff --git a/RTCP/Cobalt/InputProc/test/tRanges.cc b/RTCP/Cobalt/InputProc/test/tRanges.cc
index 520e33f33e07ce27c09c55bc0bd52ef44fdf97d8..694dd4098c88d1f5031e1a33f49080c9a922a5f0 100644
--- a/RTCP/Cobalt/InputProc/test/tRanges.cc
+++ b/RTCP/Cobalt/InputProc/test/tRanges.cc
@@ -7,7 +7,8 @@ using namespace LOFAR;
 using namespace RTCP;
 using namespace std;
 
-int main( int, char **argv ) {
+int main( int, char **argv )
+{
   INIT_LOGGER( argv[0] );
 
   size_t clock = 200 * 1000 * 1000;
diff --git a/RTCP/Cobalt/InputProc/test/tSampleBuffer.cc b/RTCP/Cobalt/InputProc/test/tSampleBuffer.cc
index a19393ba4663104a907380b3e3a7d8e249b3d5b8..a2cecedf66ec36081a8a8144d1ec3317ebca65f7 100644
--- a/RTCP/Cobalt/InputProc/test/tSampleBuffer.cc
+++ b/RTCP/Cobalt/InputProc/test/tSampleBuffer.cc
@@ -9,7 +9,8 @@ using namespace LOFAR;
 using namespace RTCP;
 using namespace std;
 
-template<typename T> void test( struct BufferSettings &settings )
+template<typename T>
+void test( struct BufferSettings &settings )
 {
   // Should be able to create the buffer
   SampleBuffer< SampleType<T> > buffer_create(settings, true);
@@ -18,7 +19,8 @@ template<typename T> void test( struct BufferSettings &settings )
   SampleBuffer< SampleType<T> > buffer_read(settings, false);
 }
 
-int main() {
+int main()
+{
   INIT_LOGGER( "tSampleBuffer" );
 
   // Don't run forever if communication fails for some reason
diff --git a/RTCP/Cobalt/InputProc/test/tSharedMemory.cc b/RTCP/Cobalt/InputProc/test/tSharedMemory.cc
index 62ac4df5b505c4676d0ce3f210c102f17e918aba..d36f97007958b62c2b796e4b98d45e27adb4d4f8 100644
--- a/RTCP/Cobalt/InputProc/test/tSharedMemory.cc
+++ b/RTCP/Cobalt/InputProc/test/tSharedMemory.cc
@@ -9,9 +9,11 @@ using namespace RTCP;
 
 Semaphore semaphore;
 
-class A {
+class A
+{
 public:
-  void creator() {
+  void creator()
+  {
     sleep(1);
 
     SharedMemoryArena m( 0x12345678, 1024, SharedMemoryArena::CREATE, 0 );
@@ -22,7 +24,8 @@ public:
     semaphore.down();
   }
 
-  void reader() {
+  void reader()
+  {
     LOG_INFO("Waiting for memory area");
 
     SharedMemoryArena m( 0x12345678, 1024, SharedMemoryArena::READ, 2 );
@@ -34,7 +37,8 @@ public:
   }
 };
 
-int main() {
+int main()
+{
   INIT_LOGGER( "tSharedMemory" );
 
   /* Create a shared memory region */
diff --git a/RTCP/Cobalt/OutputProc/src/ExitOnClosedStdin.cc b/RTCP/Cobalt/OutputProc/src/ExitOnClosedStdin.cc
index d099ef249ac08ef1482fedf8e050de053406bc64..3de01cb1400132fa9960576d40777320e5830bed 100644
--- a/RTCP/Cobalt/OutputProc/src/ExitOnClosedStdin.cc
+++ b/RTCP/Cobalt/OutputProc/src/ExitOnClosedStdin.cc
@@ -5,59 +5,61 @@
 #include <Common/SystemCallException.h>
 #include <unistd.h>
 
-namespace LOFAR {
-namespace RTCP {
+namespace LOFAR
+{
+  namespace RTCP
+  {
 
 
-ExitOnClosedStdin::ExitOnClosedStdin()
-:
-  itsThread(this, &ExitOnClosedStdin::mainLoop, "[obs unknown] [stdinWatcherThread] ", 65535)
-{
-}
+    ExitOnClosedStdin::ExitOnClosedStdin()
+      :
+      itsThread(this, &ExitOnClosedStdin::mainLoop, "[obs unknown] [stdinWatcherThread] ", 65535)
+    {
+    }
 
 
-ExitOnClosedStdin::~ExitOnClosedStdin()
-{
-  itsThread.cancel();
-}
+    ExitOnClosedStdin::~ExitOnClosedStdin()
+    {
+      itsThread.cancel();
+    }
 
 
-void ExitOnClosedStdin::mainLoop()
-{
-  // an empty read on stdin means the SSH connection closed, which indicates that we should abort
+    void ExitOnClosedStdin::mainLoop()
+    {
+      // an empty read on stdin means the SSH connection closed, which indicates that we should abort
+
+      while (true) {
+        fd_set fds;
+
+        FD_ZERO(&fds);
+        FD_SET(0, &fds);
 
-  while (true) {
-    fd_set fds;
+        struct timeval timeval;
 
-    FD_ZERO(&fds);
-    FD_SET(0, &fds);
+        timeval.tv_sec = 1;
+        timeval.tv_usec = 0;
 
-    struct timeval timeval;
+        switch (select(1, &fds, 0, 0, &timeval)) {
+        case -1: throw SystemCallException("select", errno, THROW_ARGS);
+        case  0: continue;
+        }
 
-    timeval.tv_sec  = 1;
-    timeval.tv_usec = 0;
+        char buf[1];
+        ssize_t numbytes;
+        numbytes = ::read(0, buf, sizeof buf);
 
-    switch (select(1, &fds, 0, 0, &timeval)) {
-      case -1 : throw SystemCallException("select", errno, THROW_ARGS);
-      case  0 : continue;
+        if (numbytes == 0) {
+          LOG_FATAL("Lost stdin -- aborting"); // this most likely won't arrive, since stdout/stderr are probably closed as well
+          exit(1);
+        } else {
+          // slow down reading data (IONProc will be spamming us with /dev/zero)
+          if (usleep(999999) < 0)
+            throw SystemCallException("usleep", errno, THROW_ARGS);
+        }
+      }
     }
 
-    char buf[1];
-    ssize_t numbytes;
-    numbytes = ::read(0, buf, sizeof buf);
-
-    if (numbytes == 0) {
-      LOG_FATAL("Lost stdin -- aborting"); // this most likely won't arrive, since stdout/stderr are probably closed as well
-      exit(1);
-    } else {
-      // slow down reading data (IONProc will be spamming us with /dev/zero)
-      if (usleep(999999) < 0)
-        throw SystemCallException("usleep", errno, THROW_ARGS);
-    }  
   }
 }
 
-}
-}
-
 
diff --git a/RTCP/Cobalt/OutputProc/src/ExitOnClosedStdin.h b/RTCP/Cobalt/OutputProc/src/ExitOnClosedStdin.h
index bbe9846b368344e953ff68685b9103bebf80bdf3..f5a7cabfd966353b74d1c5ed26e3e79f56e4ab40 100644
--- a/RTCP/Cobalt/OutputProc/src/ExitOnClosedStdin.h
+++ b/RTCP/Cobalt/OutputProc/src/ExitOnClosedStdin.h
@@ -11,21 +11,23 @@
 
 #include <Common/Thread/Thread.h>
 
-namespace LOFAR {
-namespace RTCP {
-
-class ExitOnClosedStdin
+namespace LOFAR
 {
-  public:
-    ExitOnClosedStdin();
-    ~ExitOnClosedStdin();
+  namespace RTCP
+  {
+
+    class ExitOnClosedStdin
+    {
+    public:
+      ExitOnClosedStdin();
+      ~ExitOnClosedStdin();
 
-  private:
-    void   mainLoop();
-    Thread itsThread;
-};
+    private:
+      void   mainLoop();
+      Thread itsThread;
+    };
 
-} // namespace RTCP
+  } // namespace RTCP
 } // namespace LOFAR
 
 #endif
diff --git a/RTCP/Cobalt/OutputProc/src/FastFileStream.cc b/RTCP/Cobalt/OutputProc/src/FastFileStream.cc
index 57a220c276e3bd721eeb52c50a2b163eb725ab8c..fc7b1121bfbf7329f4baceb8f16c160ddb801763 100644
--- a/RTCP/Cobalt/OutputProc/src/FastFileStream.cc
+++ b/RTCP/Cobalt/OutputProc/src/FastFileStream.cc
@@ -35,188 +35,190 @@
 #include <errno.h>
 #include <cstring>
 
-namespace LOFAR {
-namespace RTCP {
+namespace LOFAR
+{
+  namespace RTCP
+  {
 
 
-FastFileStream::FastFileStream(const std::string &name, int flags, int mode)
-:
-  FileStream(name.c_str(), flags | O_DIRECT | O_SYNC, mode),
-  bufsize(0),
-  buffer(0),
-  remainder(0)
-{
-  // alignment must be a power of two for easy calculations
-  ASSERT( (alignment & (alignment-1)) == 0 );
+    FastFileStream::FastFileStream(const std::string &name, int flags, int mode)
+      :
+      FileStream(name.c_str(), flags | O_DIRECT | O_SYNC, mode),
+      bufsize(0),
+      buffer(0),
+      remainder(0)
+    {
+      // alignment must be a power of two for easy calculations
+      ASSERT( (alignment & (alignment - 1)) == 0 );
 
-  // alignment must be a multiple of sizeof(void*) for posix_memalign to work
-  ASSERT( alignment % sizeof(void*) == 0 );
-}
+      // alignment must be a multiple of sizeof(void*) for posix_memalign to work
+      ASSERT( alignment % sizeof(void*) == 0 );
+    }
 
-FastFileStream::~FastFileStream()
-{
-  // truncate the file to the exact right length
-  try {
-    errno = 0;
+    FastFileStream::~FastFileStream()
+    {
+      // truncate the file to the exact right length
+      try {
+        errno = 0;
 
-    off_t curlen = lseek(fd, 0, SEEK_CUR); // NOT SEEK_END, because skip() might push us beyond the end
-    size_t origremainder = remainder;
+        off_t curlen = lseek(fd, 0, SEEK_CUR); // NOT SEEK_END, because skip() might push us beyond the end
+        size_t origremainder = remainder;
 
-    // lseek can return -1 as a valid file position, so check errno as well
-    if (curlen == (off_t)-1 && errno)
-      throw SystemCallException("lseek", errno, THROW_ARGS);
+        // lseek can return -1 as a valid file position, so check errno as well
+        if (curlen == (off_t)-1 && errno)
+          throw SystemCallException("lseek", errno, THROW_ARGS);
 
-    writeRemainder();
+        writeRemainder();
 
-    if (ftruncate(fd, curlen + origremainder) < 0)
-      throw SystemCallException("ftruncate", errno, THROW_ARGS);
-  } catch (Exception &ex) {
-    LOG_ERROR_STR("Exception in destructor: " << ex);
-  }
+        if (ftruncate(fd, curlen + origremainder) < 0)
+          throw SystemCallException("ftruncate", errno, THROW_ARGS);
+      } catch (Exception &ex) {
+        LOG_ERROR_STR("Exception in destructor: " << ex);
+      }
 
-}
+    }
 
-size_t FastFileStream::writeRemainder()
-{
-  if (remainder) {
-    // pad with zeroes
-    ensureBuffer(alignment);
-    memset(buffer.get() + remainder, 0, alignment - remainder);
-    forceWrite(buffer, alignment);
+    size_t FastFileStream::writeRemainder()
+    {
+      if (remainder) {
+        // pad with zeroes
+        ensureBuffer(alignment);
+        memset(buffer.get() + remainder, 0, alignment - remainder);
+        forceWrite(buffer, alignment);
 
-    remainder = 0;
+        remainder = 0;
 
-    return alignment;
-  }
+        return alignment;
+      }
 
-  return 0;
-}
+      return 0;
+    }
 
-void FastFileStream::ensureBuffer(size_t newsize)
-{
-  if (newsize <= bufsize)
-    return;
+    void FastFileStream::ensureBuffer(size_t newsize)
+    {
+      if (newsize <= bufsize)
+        return;
 
-  void *buf;
+      void *buf;
 
-  if (posix_memalign(&buf, alignment, newsize) != 0)
-    THROW( StorageException, "Not enough memory to allocate " << newsize << " bytes for fast writing");
+      if (posix_memalign(&buf, alignment, newsize) != 0)
+        THROW( StorageException, "Not enough memory to allocate " << newsize << " bytes for fast writing");
 
-  if (remainder) {
-    ASSERT( buffer.get() );
-    ASSERT( newsize >= remainder );
+      if (remainder) {
+        ASSERT( buffer.get() );
+        ASSERT( newsize >= remainder );
 
-    memcpy(buf, buffer.get(), remainder);
-  }
+        memcpy(buf, buffer.get(), remainder);
+      }
 
-  buffer = static_cast<char*>(buf); // SmartPtr will take care of deleting the old buffer
-  bufsize = newsize;
-}     
+      buffer = static_cast<char*>(buf); // SmartPtr will take care of deleting the old buffer
+      bufsize = newsize;
+    }
 
-void FastFileStream::forceWrite(const void *ptr, size_t size)
-{
-  // emulate Stream::write using FileStream::write to make sure all bytes are written
-  while (size > 0) {
-    ASSERT( (size & (alignment-1)) == 0 );
-    ASSERT( (reinterpret_cast<size_t>(ptr) & (alignment-1)) == 0 );
+    void FastFileStream::forceWrite(const void *ptr, size_t size)
+    {
+      // emulate Stream::write using FileStream::write to make sure all bytes are written
+      while (size > 0) {
+        ASSERT( (size & (alignment - 1)) == 0 );
+        ASSERT( (reinterpret_cast<size_t>(ptr) & (alignment - 1)) == 0 );
 
-    size_t bytes = FileStream::tryWrite(ptr, size);
+        size_t bytes = FileStream::tryWrite(ptr, size);
 
-    size -= bytes;
-    ptr   = static_cast<const char *>(ptr) + bytes;
-  }
-}
+        size -= bytes;
+        ptr = static_cast<const char *>(ptr) + bytes;
+      }
+    }
 
-size_t FastFileStream::tryWrite(const void *ptr, size_t size)
-{
-  const size_t orig_size = size;
+    size_t FastFileStream::tryWrite(const void *ptr, size_t size)
+    {
+      const size_t orig_size = size;
 
-  if (!remainder && (reinterpret_cast<size_t>(ptr) & (alignment-1)) == 0) {
-    // pointer is aligned and we can write from it immediately
+      if (!remainder && (reinterpret_cast<size_t>(ptr) & (alignment - 1)) == 0) {
+        // pointer is aligned and we can write from it immediately
 
-    ensureBuffer(alignment); // although remainder is enough, we want to avoid reallocating every time remainder grows slightly
+        ensureBuffer(alignment); // although remainder is enough, we want to avoid reallocating every time remainder grows slightly
 
-    // save the remainder
-    remainder = size & (alignment-1);
-    memcpy(buffer.get(), static_cast<const char*>(ptr) + size - remainder, remainder);
+        // save the remainder
+        remainder = size & (alignment - 1);
+        memcpy(buffer.get(), static_cast<const char*>(ptr) + size - remainder, remainder);
 
-    // write bulk
-    forceWrite(ptr, size - remainder);
-  } else {
-    // not everything is aligned or there is a remainder -- use the buffer
+        // write bulk
+        forceWrite(ptr, size - remainder);
+      } else {
+        // not everything is aligned or there is a remainder -- use the buffer
 
-    // move data to our buffer, and recompute new sizes
-    ensureBuffer(alignment + size); // although remainder + size is enough, we want to avoid reallocating every time remainder grows slightly
-    memcpy(buffer.get() + remainder, ptr, size);
+        // move data to our buffer, and recompute new sizes
+        ensureBuffer(alignment + size); // although remainder + size is enough, we want to avoid reallocating every time remainder grows slightly
+        memcpy(buffer.get() + remainder, ptr, size);
 
-    size += remainder;
-    remainder = size & (alignment-1);
+        size += remainder;
+        remainder = size & (alignment - 1);
 
-    // write bulk
-    forceWrite(buffer.get(), size - remainder);
+        // write bulk
+        forceWrite(buffer.get(), size - remainder);
 
-    // move remainder to the front
-    memmove(buffer.get(), buffer.get() + size - remainder, remainder);
-  }
+        // move remainder to the front
+        memmove(buffer.get(), buffer.get() + size - remainder, remainder);
+      }
 
-  // lie about how many bytes we've written, since we might be caching
-  // a remainder which we can't write to disk.
-  return orig_size;
-}
+      // lie about how many bytes we've written, since we might be caching
+      // a remainder which we can't write to disk.
+      return orig_size;
+    }
 
 
-void FastFileStream::skip(size_t bytes)
-{
-  // make sure that the file pointer remains
-  // at a full block boundary, so catch any
-  // remainders.
+    void FastFileStream::skip(size_t bytes)
+    {
+      // make sure that the file pointer remains
+      // at a full block boundary, so catch any
+      // remainders.
 
-  if (bytes == 0)
-    return;
+      if (bytes == 0)
+        return;
 
-  // get rid of the old remainder first
-  if (bytes + remainder >= alignment) {
-    bytes -= (writeRemainder() - remainder);
+      // get rid of the old remainder first
+      if (bytes + remainder >= alignment) {
+        bytes -= (writeRemainder() - remainder);
 
-    if (bytes >= alignment ) {
-      // skip whole number of blocks
-      size_t newremainder = bytes & (alignment - 1);
-      size_t fullblocks = bytes - newremainder;
+        if (bytes >= alignment ) {
+          // skip whole number of blocks
+          size_t newremainder = bytes & (alignment - 1);
+          size_t fullblocks = bytes - newremainder;
 
-      FileStream::skip(fullblocks);
+          FileStream::skip(fullblocks);
 
-      bytes = newremainder;
-    } 
-  }  
+          bytes = newremainder;
+        }
+      }
 
-  if (bytes > 0) {
-    ASSERT( bytes < alignment );
+      if (bytes > 0) {
+        ASSERT( bytes < alignment );
 
-    char zeros[bytes];
+        char zeros[bytes];
 
-    tryWrite(&zeros, sizeof zeros);
-  }  
-}
+        tryWrite(&zeros, sizeof zeros);
+      }
+    }
 
 
-size_t FastFileStream::size()
-{
-  // size we might have skip()ed and have some remaining data to write,
-  // we cannot rely on FileStream::size(), which would report the current
-  // file size, without skips or remainders in our buffer.
+    size_t FastFileStream::size()
+    {
+      // size we might have skip()ed and have some remaining data to write,
+      // we cannot rely on FileStream::size(), which would report the current
+      // file size, without skips or remainders in our buffer.
 
-  errno = 0;
+      errno = 0;
 
-  off_t curlen = lseek(fd, 0, SEEK_CUR); // NOT SEEK_END, because skip() might push us beyond the end
+      off_t curlen = lseek(fd, 0, SEEK_CUR); // NOT SEEK_END, because skip() might push us beyond the end
 
-  // lseek can return -1 as a valid file position, so check errno as well
-  if (curlen == (off_t)-1 && errno)
-    throw SystemCallException("lseek", errno, THROW_ARGS);
+      // lseek can return -1 as a valid file position, so check errno as well
+      if (curlen == (off_t)-1 && errno)
+        throw SystemCallException("lseek", errno, THROW_ARGS);
 
-  return curlen + remainder;
-}
+      return curlen + remainder;
+    }
 
 
-} // namespace RTCP
+  } // namespace RTCP
 } // namespace LOFAR
 
diff --git a/RTCP/Cobalt/OutputProc/src/FastFileStream.h b/RTCP/Cobalt/OutputProc/src/FastFileStream.h
index 0b69409d6566ac27a434c69d0bbf36cc88f902e0..68fc740548741f6c19c62ad82e57c71c4afea0c3 100644
--- a/RTCP/Cobalt/OutputProc/src/FastFileStream.h
+++ b/RTCP/Cobalt/OutputProc/src/FastFileStream.h
@@ -32,42 +32,47 @@
 #include <string>
 
 
-namespace LOFAR {
-namespace RTCP {
-
-class FastFileStream : public FileStream
+namespace LOFAR
 {
-  public:
-    FastFileStream(const std::string &name, int flags, int mode); // rd/wr; create file
-						   
-    virtual size_t tryWrite(const void *ptr, size_t size);
-    virtual ~FastFileStream();
+  namespace RTCP
+  {
 
-    virtual void skip( size_t bytes );
+    class FastFileStream : public FileStream
+    {
+    public:
+      FastFileStream(const std::string &name, int flags, int mode); // rd/wr; create file
 
-    virtual size_t size();
+      virtual size_t tryWrite(const void *ptr, size_t size);
+      virtual ~FastFileStream();
 
-    // formally, the required alignment for O_DIRECT is determined by the file system
-    static const unsigned alignment = 512;
-  private:  
-    // writes the remainder, padded with zeros if needed. Returns the number of bytes written.
-    size_t writeRemainder();
+      virtual void skip( size_t bytes );
 
-    // we only support writing
-    virtual size_t tryRead(void *, size_t size) { return size; }
+      virtual size_t size();
 
-    // enlarge the buffer if needed
-    void ensureBuffer(size_t newsize);
+      // formally, the required alignment for O_DIRECT is determined by the file system
+      static const unsigned alignment = 512;
+    private:
+      // writes the remainder, padded with zeros if needed. Returns the number of bytes written.
+      size_t writeRemainder();
 
-    // use the FileStream to force these data to disk
-    void forceWrite(const void *ptr, size_t size);
+      // we only support writing
+      virtual size_t tryRead(void *, size_t size)
+      {
+        return size;
+      }
 
-    size_t bufsize;
-    SmartPtr<char, SmartPtrFree<char> > buffer;
-    size_t remainder;
-};
+      // enlarge the buffer if needed
+      void ensureBuffer(size_t newsize);
 
-}
+      // use the FileStream to force these data to disk
+      void forceWrite(const void *ptr, size_t size);
+
+      size_t bufsize;
+      SmartPtr<char, SmartPtrFree<char> > buffer;
+      size_t remainder;
+    };
+
+  }
 }
 
 #endif
diff --git a/RTCP/Cobalt/OutputProc/src/Format.cc b/RTCP/Cobalt/OutputProc/src/Format.cc
index a6e9cd87290fd3a8ca068730664040a329b72f88..e725b8837b0a9b260d2e7021b20daa76f19ec6a0 100644
--- a/RTCP/Cobalt/OutputProc/src/Format.cc
+++ b/RTCP/Cobalt/OutputProc/src/Format.cc
@@ -8,12 +8,14 @@
 
 #include <OutputProc/Format.h>
 
-namespace LOFAR {
-namespace RTCP {
-
-Format::~Format()
+namespace LOFAR
 {
-}
+  namespace RTCP
+  {
+
+    Format::~Format()
+    {
+    }
 
-} // namespace RTCP
+  } // namespace RTCP
 } // namespace LOFAR
diff --git a/RTCP/Cobalt/OutputProc/src/Format.h b/RTCP/Cobalt/OutputProc/src/Format.h
index 13dabbea290a66a1a26c396208d9a53debacaa3e..6565f79d1852a74cffff4aed263f76d703bfd157 100644
--- a/RTCP/Cobalt/OutputProc/src/Format.h
+++ b/RTCP/Cobalt/OutputProc/src/Format.h
@@ -1,4 +1,4 @@
-//#  Format.h: Virtual baseclass 
+//#  Format.h: Virtual baseclass
 //#
 //#  Copyright (C) 2009
 //#  ASTRON (Netherlands Foundation for Research in Astronomy)
@@ -11,18 +11,20 @@
 
 #include <string>
 
-namespace LOFAR {
-namespace RTCP {
-
-class Format
+namespace LOFAR
 {
-  public:
-    virtual ~Format();
-    
-    virtual void addSubband(const std::string MSname, unsigned subband, bool isBigEndian) = 0;
-};
+  namespace RTCP
+  {
+
+    class Format
+    {
+    public:
+      virtual ~Format();
+
+      virtual void addSubband(const std::string MSname, unsigned subband, bool isBigEndian) = 0;
+    };
 
-} // namespace RTCP
+  } // namespace RTCP
 } // namespace LOFAR
 
 #endif
diff --git a/RTCP/Cobalt/OutputProc/src/HDF5Attributes.h b/RTCP/Cobalt/OutputProc/src/HDF5Attributes.h
index 1c3c821f283d6794df8e3e66c0682a37942382e3..163cf67dd80bd0e2874103ad9de2867ef8f77055 100644
--- a/RTCP/Cobalt/OutputProc/src/HDF5Attributes.h
+++ b/RTCP/Cobalt/OutputProc/src/HDF5Attributes.h
@@ -28,150 +28,209 @@
 
 #include <hdf5.h>
 
-namespace LOFAR {
-namespace RTCP {
-
-// C->HDF5 translations of native types (Storage endianness)
-template<typename T> hid_t h5nativeType();
-
-template<> hid_t h5nativeType<float>()    { return H5T_NATIVE_FLOAT;  }
-template<> hid_t h5nativeType<double>()   { return H5T_NATIVE_DOUBLE; }
-template<> hid_t h5nativeType<unsigned>() { return H5T_NATIVE_UINT;   }
-template<> hid_t h5nativeType<int>()      { return H5T_NATIVE_INT;    }
-template<> hid_t h5nativeType<bool>()     { return H5T_NATIVE_CHAR;   } // assuming sizeof(bool) == 1
-
-// C->HDF5 translations of types to use in header (ICD 003)
-template<typename T> hid_t h5writeType();
-
-template<> hid_t h5writeType<float>()    { return H5T_IEEE_F32LE; }
-template<> hid_t h5writeType<double>()   { return H5T_IEEE_F64LE; }
-template<> hid_t h5writeType<unsigned>() { return H5T_STD_U32LE;  }
-template<> hid_t h5writeType<int>()      { return H5T_STD_I32LE;  }
-template<> hid_t h5writeType<bool>()     { return H5T_STD_I32LE;  } // emulate bool with a 32-bit int
-
-// C->HDF5 translations of types to use for data (CNProc endianness)
-template<typename T> hid_t h5dataType( bool bigEndian );
-
-template<> hid_t h5dataType<float>( bool bigEndian ) {
-  return bigEndian ? H5T_IEEE_F32BE : H5T_IEEE_F32LE;
-}
-
-template<> hid_t h5dataType<LOFAR::fcomplex>( bool bigEndian ) {
-  // emulate fcomplex with a 64-bit bitfield
-  return bigEndian ? H5T_STD_B64BE : H5T_STD_B64LE;
-}
-
-// Autocloses hid_t types using closefunc() on destruction
-class h5auto
-{
-public:
-  h5auto( hid_t hid, hid_t (*closefunc)(hid_t) ): hid(hid), closefunc(closefunc) {}
-  ~h5auto() {
-    if (hid>0)
-      closefunc(hid);
-  }
-
-  operator hid_t() const { return hid; }
-private:
-  hid_t hid;
-  hid_t (*closefunc)(hid_t);
-};
-
-hid_t h5scalar()
-{
-  hid_t dataspace;
-
-  dataspace = H5Screate( H5S_SCALAR );
-  ASSERT( dataspace > 0 );
-
-  return dataspace;
-}
-
-hid_t h5array( hsize_t count )
-{
-  hsize_t dims[1] = { count };
-
-  hid_t dataspace = H5Screate_simple( 1, dims, NULL );
-  ASSERT( dataspace > 0 );
-
-  return dataspace;
-}
-
-hid_t h5stringType()
-{
-  hid_t datatype = H5Tcopy( H5T_C_S1 );
-  ASSERT( datatype > 0 );
-
-  hid_t ret = H5Tset_size( datatype, H5T_VARIABLE );
-  ASSERT( ret >= 0 );
-
-  return datatype;
-}
-
-template<typename T> void writeAttribute( hid_t loc, const char *name, T value )
-{
-  h5auto dataspace(h5scalar(), H5Sclose);
-
-  h5auto attr(H5Acreate2( loc, name, h5writeType<T>(), dataspace,  H5P_DEFAULT,  H5P_DEFAULT ), H5Aclose);
-  ASSERT( attr > 0 );
-
-  hid_t ret = H5Awrite( attr, h5nativeType<T>(), &value );
-  ASSERT( ret >= 0 );
-}
-
-template<typename U> void writeAttributeV( hid_t loc, const char *name, std::vector<U> value )
-{
-  h5auto dataspace(h5array(value.size()), H5Sclose);
-
-  h5auto attr(H5Acreate2( loc, name, h5writeType<U>(), dataspace,  H5P_DEFAULT,  H5P_DEFAULT ), H5Aclose);
-  ASSERT( attr > 0 );
-
-  hid_t ret = H5Awrite( attr, h5nativeType<U>(), &value[0] );
-  ASSERT( ret >= 0 );
-}
-
-
-template<> void writeAttribute( hid_t loc, const char *name, char const *value )
-{
-  h5auto dataspace(h5scalar(), H5Sclose);
-  h5auto datatype(h5stringType(), H5Tclose);
-
-  h5auto attr(H5Acreate2( loc, name, datatype, dataspace,  H5P_DEFAULT,  H5P_DEFAULT ), H5Aclose);
-  ASSERT( attr > 0 );
-
-  hid_t ret = H5Awrite( attr, datatype, &value );
-  ASSERT( ret >= 0 );
-}
-
-
-template<> void writeAttribute( hid_t loc, const char *name, const std::string value )
-{
-  writeAttribute(loc, name, value.c_str());
-}
-
-template<> void writeAttributeV( hid_t loc, const char *name, std::vector<const char *> value )
+namespace LOFAR
 {
-  h5auto dataspace(h5array(value.size()), H5Sclose);
-  h5auto datatype(h5stringType(), H5Tclose);
+  namespace RTCP
+  {
+
+    // C->HDF5 translations of native types (Storage endianness)
+    template<typename T>
+    hid_t h5nativeType();
+
+    template<>
+    hid_t h5nativeType<float>()
+    {
+      return H5T_NATIVE_FLOAT;
+    }
+    template<>
+    hid_t h5nativeType<double>()
+    {
+      return H5T_NATIVE_DOUBLE;
+    }
+    template<>
+    hid_t h5nativeType<unsigned>()
+    {
+      return H5T_NATIVE_UINT;
+    }
+    template<>
+    hid_t h5nativeType<int>()
+    {
+      return H5T_NATIVE_INT;
+    }
+    template<>
+    hid_t h5nativeType<bool>()
+    {
+      return H5T_NATIVE_CHAR;
+    }                                                                   // assuming sizeof(bool) == 1
+
+    // C->HDF5 translations of types to use in header (ICD 003)
+    template<typename T>
+    hid_t h5writeType();
+
+    template<>
+    hid_t h5writeType<float>()
+    {
+      return H5T_IEEE_F32LE;
+    }
+    template<>
+    hid_t h5writeType<double>()
+    {
+      return H5T_IEEE_F64LE;
+    }
+    template<>
+    hid_t h5writeType<unsigned>()
+    {
+      return H5T_STD_U32LE;
+    }
+    template<>
+    hid_t h5writeType<int>()
+    {
+      return H5T_STD_I32LE;
+    }
+    template<>
+    hid_t h5writeType<bool>()
+    {
+      return H5T_STD_I32LE;
+    }                                                               // emulate bool with a 32-bit int
+
+    // C->HDF5 translations of types to use for data (CNProc endianness)
+    template<typename T>
+    hid_t h5dataType( bool bigEndian );
+
+    template<>
+    hid_t h5dataType<float>( bool bigEndian )
+    {
+      return bigEndian ? H5T_IEEE_F32BE : H5T_IEEE_F32LE;
+    }
+
+    template<>
+    hid_t h5dataType<LOFAR::fcomplex>( bool bigEndian )
+    {
+      // emulate fcomplex with a 64-bit bitfield
+      return bigEndian ? H5T_STD_B64BE : H5T_STD_B64LE;
+    }
+
+    // Autocloses hid_t types using closefunc() on destruction
+    class h5auto
+    {
+    public:
+      h5auto( hid_t hid, hid_t (*closefunc)(hid_t) ) : hid(hid), closefunc(closefunc)
+      {
+      }
+      ~h5auto()
+      {
+        if (hid>0)
+          closefunc(hid);
+      }
+
+      operator hid_t() const { return hid;
+      }
+    private:
+      hid_t hid;
+      hid_t (*closefunc)(hid_t);
+    };
+
+    hid_t h5scalar()
+    {
+      hid_t dataspace;
+
+      dataspace = H5Screate( H5S_SCALAR );
+      ASSERT( dataspace > 0 );
+
+      return dataspace;
+    }
+
+    hid_t h5array( hsize_t count )
+    {
+      hsize_t dims[1] = { count };
+
+      hid_t dataspace = H5Screate_simple( 1, dims, NULL );
+      ASSERT( dataspace > 0 );
+
+      return dataspace;
+    }
+
+    hid_t h5stringType()
+    {
+      hid_t datatype = H5Tcopy( H5T_C_S1 );
+      ASSERT( datatype > 0 );
+
+      hid_t ret = H5Tset_size( datatype, H5T_VARIABLE );
+      ASSERT( ret >= 0 );
+
+      return datatype;
+    }
+
+    template<typename T>
+    void writeAttribute( hid_t loc, const char *name, T value )
+    {
+      h5auto dataspace(h5scalar(), H5Sclose);
+
+      h5auto attr(H5Acreate2( loc, name, h5writeType<T>(), dataspace,  H5P_DEFAULT,  H5P_DEFAULT ), H5Aclose);
+      ASSERT( attr > 0 );
+
+      hid_t ret = H5Awrite( attr, h5nativeType<T>(), &value );
+      ASSERT( ret >= 0 );
+    }
+
+    template<typename U>
+    void writeAttributeV( hid_t loc, const char *name, std::vector<U> value )
+    {
+      h5auto dataspace(h5array(value.size()), H5Sclose);
+
+      h5auto attr(H5Acreate2( loc, name, h5writeType<U>(), dataspace,  H5P_DEFAULT,  H5P_DEFAULT ), H5Aclose);
+      ASSERT( attr > 0 );
+
+      hid_t ret = H5Awrite( attr, h5nativeType<U>(), &value[0] );
+      ASSERT( ret >= 0 );
+    }
+
+
+    template<>
+    void writeAttribute( hid_t loc, const char *name, char const *value )
+    {
+      h5auto dataspace(h5scalar(), H5Sclose);
+      h5auto datatype(h5stringType(), H5Tclose);
+
+      h5auto attr(H5Acreate2( loc, name, datatype, dataspace,  H5P_DEFAULT,  H5P_DEFAULT ), H5Aclose);
+      ASSERT( attr > 0 );
+
+      hid_t ret = H5Awrite( attr, datatype, &value );
+      ASSERT( ret >= 0 );
+    }
+
+
+    template<>
+    void writeAttribute( hid_t loc, const char *name, const std::string value )
+    {
+      writeAttribute(loc, name, value.c_str());
+    }
+
+    template<>
+    void writeAttributeV( hid_t loc, const char *name, std::vector<const char *> value )
+    {
+      h5auto dataspace(h5array(value.size()), H5Sclose);
+      h5auto datatype(h5stringType(), H5Tclose);
+
+      h5auto attr(H5Acreate2( loc, name, datatype, dataspace,  H5P_DEFAULT,  H5P_DEFAULT ), H5Aclose);
+      ASSERT( attr > 0 );
+
+      hid_t ret = H5Awrite( attr, datatype, &value[0] );
+      ASSERT( ret >= 0 );
+    }
 
-  h5auto attr(H5Acreate2( loc, name, datatype, dataspace,  H5P_DEFAULT,  H5P_DEFAULT ), H5Aclose);
-  ASSERT( attr > 0 );
+    template<>
+    void writeAttributeV( hid_t loc, const char *name, std::vector<std::string> value )
+    {
+      // convert to C-style strings
+      std::vector<const char *> cstrs(value.size());
+      for (unsigned i = 0; i < value.size(); i++)
+        cstrs[i] = value[i].c_str();
 
-  hid_t ret = H5Awrite( attr, datatype, &value[0] );
-  ASSERT( ret >= 0 );
-}
-
-template<> void writeAttributeV( hid_t loc, const char *name, std::vector<std::string> value )
-{
-  // convert to C-style strings
-  std::vector<const char *> cstrs(value.size());
-  for (unsigned i = 0; i < value.size(); i++)
-    cstrs[i] = value[i].c_str();
+      writeAttributeV(loc, name, cstrs);
+    }
 
-  writeAttributeV(loc, name, cstrs);
-}
-
-}
+  }
 }
 
 #endif
diff --git a/RTCP/Cobalt/OutputProc/src/IOPriority.h b/RTCP/Cobalt/OutputProc/src/IOPriority.h
index 02a909c616fe94f3e9df6020b69527c7a58babeb..5b8dedd52e23392e4fdd351247d2927bca04a231 100644
--- a/RTCP/Cobalt/OutputProc/src/IOPriority.h
+++ b/RTCP/Cobalt/OutputProc/src/IOPriority.h
@@ -23,13 +23,13 @@
 #ifndef LOFAR_STORAGE_IOPRIORITY_H
 #define LOFAR_STORAGE_IOPRIORITY_H
 
-#define IOPRIO_BITS		(16)
-#define IOPRIO_CLASS_SHIFT	(13)
-#define IOPRIO_PRIO_MASK	((1UL << IOPRIO_CLASS_SHIFT) - 1)
+#define IOPRIO_BITS             (16)
+#define IOPRIO_CLASS_SHIFT      (13)
+#define IOPRIO_PRIO_MASK        ((1UL << IOPRIO_CLASS_SHIFT) - 1)
 
-#define IOPRIO_PRIO_CLASS(mask)	((mask) >> IOPRIO_CLASS_SHIFT)
-#define IOPRIO_PRIO_DATA(mask)	((mask) & IOPRIO_PRIO_MASK)
-#define IOPRIO_PRIO_VALUE(class, data)	(((class) << IOPRIO_CLASS_SHIFT) | data)
+#define IOPRIO_PRIO_CLASS(mask) ((mask) >> IOPRIO_CLASS_SHIFT)
+#define IOPRIO_PRIO_DATA(mask)  ((mask) & IOPRIO_PRIO_MASK)
+#define IOPRIO_PRIO_VALUE(class, data)  (((class ) << IOPRIO_CLASS_SHIFT) | data)
 
 #include <pwd.h>
 #include <sched.h>
@@ -42,22 +42,22 @@
 #include <sys/syscall.h>   /* For SYS_xxx definitions */
 #include <sys/resource.h>
 
-#if defined __linux__ 
+#if defined __linux__
 #include <linux/version.h>
 #endif
 
 enum {
-        IOPRIO_WHO_PROCESS = 1,
-        IOPRIO_WHO_PGRP,
-        IOPRIO_WHO_USER,
+  IOPRIO_WHO_PROCESS = 1,
+  IOPRIO_WHO_PGRP,
+  IOPRIO_WHO_USER,
 };
 
 
 enum {
-        IOPRIO_CLASS_NONE,
-        IOPRIO_CLASS_RT,
-        IOPRIO_CLASS_BE,
-        IOPRIO_CLASS_IDLE,
+  IOPRIO_CLASS_NONE,
+  IOPRIO_CLASS_RT,
+  IOPRIO_CLASS_BE,
+  IOPRIO_CLASS_IDLE,
 };
 
 
@@ -65,9 +65,9 @@ inline int ioprio_set(int which, int who, int ioprio)
 {
 #if defined __linux__
   #if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,13))
-    return syscall(SYS_ioprio_set, which, who, ioprio);
+  return syscall(SYS_ioprio_set, which, who, ioprio);
   #else
-    return -1;
+  return -1;
   #endif
 #else
   return -1;
@@ -78,9 +78,9 @@ inline int ioprio_get(int which, int who)
 {
 #if defined __linux__
   #if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,13))
-    return syscall(SYS_ioprio_get, which, who);
+  return syscall(SYS_ioprio_get, which, who);
   #else
-    return -1;
+  return -1;
   #endif
 #else
   return -1;
@@ -92,13 +92,13 @@ inline void setIOpriority()
   if (ioprio_set(IOPRIO_WHO_PROCESS, getpid(), IOPRIO_PRIO_VALUE(IOPRIO_CLASS_RT,7)) != 0) {
     switch (errno) {
     case EPERM:
-      {
-	struct passwd *user = getpwnam("lofarsys");
-	if ((user != NULL) && (getuid() != user->pw_uid)) 
-	  LOG_WARN_STR("Failed to set IO priority, permission denied");
-	else 
-	  LOG_ERROR_STR("Failed to set IO priority, capability CAP_SYS_ADMIN not set?");
-      } break;
+    {
+      struct passwd *user = getpwnam("lofarsys");
+      if ((user != NULL) && (getuid() != user->pw_uid))
+        LOG_WARN_STR("Failed to set IO priority, permission denied");
+      else
+        LOG_ERROR_STR("Failed to set IO priority, capability CAP_SYS_ADMIN not set?");
+    } break;
     case EINVAL:
     case ESRCH:
     default:
@@ -113,17 +113,17 @@ inline void setRTpriority()
   int priority = sched_get_priority_min(SCHED_RR);
   struct sched_param sp;
   sp.sched_priority = priority;
-  
+
   if (sched_setscheduler(0, SCHED_RR, &sp) < 0) {
     switch (errno) {
     case EPERM:
-      {
-	struct passwd *user = getpwnam("lofarsys");
-	if ((user != NULL) && (getuid() != user->pw_uid))
-	  LOG_WARN_STR("Failed to set RT priority, permission denied");   
-	else 
-	  LOG_ERROR_STR("Failed to set RT priority, capability CAP_SYS_NICE not set?");
-      } break;
+    {
+      struct passwd *user = getpwnam("lofarsys");
+      if ((user != NULL) && (getuid() != user->pw_uid))
+        LOG_WARN_STR("Failed to set RT priority, permission denied");
+      else
+        LOG_ERROR_STR("Failed to set RT priority, capability CAP_SYS_NICE not set?");
+    } break;
 
     case EINVAL:
     case ESRCH:
@@ -136,17 +136,17 @@ inline void setRTpriority()
 
 inline void lockInMemory()
 {
-  if (mlockall(MCL_CURRENT|MCL_FUTURE) < 0) {
+  if (mlockall(MCL_CURRENT | MCL_FUTURE) < 0) {
     switch (errno) {
     case ENOMEM:
     case EPERM:
-      {
-	struct passwd *user = getpwnam("lofarsys");
-	if ((user != NULL) && (getuid() != user->pw_uid))
-	  LOG_WARN_STR("Failed to lock application in memory, permission denied");
-	else 
-	  LOG_ERROR_STR("Failed to lock application in memory, capability CAP_IPC_LOCK not set?");
-      } break;
+    {
+      struct passwd *user = getpwnam("lofarsys");
+      if ((user != NULL) && (getuid() != user->pw_uid))
+        LOG_WARN_STR("Failed to lock application in memory, permission denied");
+      else
+        LOG_ERROR_STR("Failed to lock application in memory, capability CAP_IPC_LOCK not set?");
+    } break;
     case EINVAL:
     default:
       LOG_ERROR_STR("Failed to lock application in memory: flags invalid");
diff --git a/RTCP/Cobalt/OutputProc/src/InputThread.cc b/RTCP/Cobalt/OutputProc/src/InputThread.cc
index a1f28252a9d671238412a9110d207a676e2cbef3..599a0c5be783bf27522ee5217c21d4be44eddd7b 100644
--- a/RTCP/Cobalt/OutputProc/src/InputThread.cc
+++ b/RTCP/Cobalt/OutputProc/src/InputThread.cc
@@ -30,70 +30,72 @@
 #include <Stream/SocketStream.h>
 
 
-namespace LOFAR {
-namespace RTCP {
-
-
-InputThread::InputThread(const Parset &parset, OutputType outputType, unsigned streamNr, Queue<SmartPtr<StreamableData> > &freeQueue, Queue<SmartPtr<StreamableData> > &receiveQueue, const std::string &logPrefix)
-:
-  itsLogPrefix(logPrefix + "[InputThread] "),
-  itsInputDescriptor(getStreamDescriptorBetweenIONandStorage(parset, outputType, streamNr)),
-  itsFreeQueue(freeQueue),
-  itsReceiveQueue(receiveQueue),
-  itsDeadline(parset.realTime() ? parset.stopTime() : 0)
+namespace LOFAR
 {
-}
+  namespace RTCP
+  {
+
+
+    InputThread::InputThread(const Parset &parset, OutputType outputType, unsigned streamNr, Queue<SmartPtr<StreamableData> > &freeQueue, Queue<SmartPtr<StreamableData> > &receiveQueue, const std::string &logPrefix)
+      :
+      itsLogPrefix(logPrefix + "[InputThread] "),
+      itsInputDescriptor(getStreamDescriptorBetweenIONandStorage(parset, outputType, streamNr)),
+      itsFreeQueue(freeQueue),
+      itsReceiveQueue(receiveQueue),
+      itsDeadline(parset.realTime() ? parset.stopTime() : 0)
+    {
+    }
 
 
-void InputThread::start()
-{
-  itsThread = new Thread(this, &InputThread::mainLoop, itsLogPrefix);
-}
+    void InputThread::start()
+    {
+      itsThread = new Thread(this, &InputThread::mainLoop, itsLogPrefix);
+    }
 
 
-void InputThread::cancel()
-{
-  if (itsThread)
-    itsThread->cancel();
-}
+    void InputThread::cancel()
+    {
+      if (itsThread)
+        itsThread->cancel();
+    }
 
 
-void InputThread::mainLoop()
-{
-  try {
-    LOG_INFO_STR(itsLogPrefix << "Creating connection from " << itsInputDescriptor << "..." );
-    SmartPtr<Stream> streamFromION(createStream(itsInputDescriptor, true, itsDeadline));
-    LOG_INFO_STR(itsLogPrefix << "Creating connection from " << itsInputDescriptor << ": done" );
+    void InputThread::mainLoop()
+    {
+      try {
+        LOG_INFO_STR(itsLogPrefix << "Creating connection from " << itsInputDescriptor << "..." );
+        SmartPtr<Stream> streamFromION(createStream(itsInputDescriptor, true, itsDeadline));
+        LOG_INFO_STR(itsLogPrefix << "Creating connection from " << itsInputDescriptor << ": done" );
+
+        // limit reads from NullStream to 10 blocks; otherwise unlimited
+        bool nullInput = dynamic_cast<NullStream *>(streamFromION.get()) != 0;
 
-    // limit reads from NullStream to 10 blocks; otherwise unlimited
-    bool nullInput = dynamic_cast<NullStream *>(streamFromION.get()) != 0;
+        for (unsigned count = 0; !nullInput || count < 10; count++) {
+          SmartPtr<StreamableData> data(itsFreeQueue.remove());
 
-    for (unsigned count = 0; !nullInput || count < 10; count ++) {
-      SmartPtr<StreamableData> data(itsFreeQueue.remove());
+          data->read(streamFromION, true);
 
-      data->read(streamFromION, true);
+          if (nullInput)
+            data->setSequenceNumber(count);
 
-      if (nullInput)
-	data->setSequenceNumber(count);
+          LOG_DEBUG_STR(itsLogPrefix << "Read block with seqno = " << data->sequenceNumber());
 
-      LOG_DEBUG_STR(itsLogPrefix << "Read block with seqno = " << data->sequenceNumber());
+          itsReceiveQueue.append(data.release());
+        }
+      } catch (SocketStream::TimeOutException &) {
+        LOG_WARN_STR(itsLogPrefix << "Connection from " << itsInputDescriptor << " timed out");
+      } catch (Stream::EndOfStreamException &) {
+        LOG_INFO_STR(itsLogPrefix << "Connection from " << itsInputDescriptor << " closed");
+      } catch (SystemCallException &ex) {
+        LOG_WARN_STR(itsLogPrefix << "Connection from " << itsInputDescriptor << " failed: " << ex.text());
+      } catch (...) {
+        itsReceiveQueue.append(0); // no more data
+        throw;
+      }
 
-      itsReceiveQueue.append(data.release());
+      itsReceiveQueue.append(0); // no more data
     }
-  } catch (SocketStream::TimeOutException &) {
-    LOG_WARN_STR(itsLogPrefix << "Connection from " << itsInputDescriptor << " timed out");
-  } catch (Stream::EndOfStreamException &) {
-    LOG_INFO_STR(itsLogPrefix << "Connection from " << itsInputDescriptor << " closed");
-  } catch (SystemCallException &ex) {
-    LOG_WARN_STR(itsLogPrefix << "Connection from " << itsInputDescriptor << " failed: " << ex.text());
-  } catch (...) {
-    itsReceiveQueue.append(0); // no more data
-    throw;
-  }
-
-  itsReceiveQueue.append(0); // no more data
-}
-
-
-} // namespace RTCP
+
+
+  } // namespace RTCP
 } // namespace LOFAR
diff --git a/RTCP/Cobalt/OutputProc/src/InputThread.h b/RTCP/Cobalt/OutputProc/src/InputThread.h
index 423fd107200f70da3f1ed4f4e4fbe1f2f289b1cd..e69092733806aaa9a85078281fa75584032e4872 100644
--- a/RTCP/Cobalt/OutputProc/src/InputThread.h
+++ b/RTCP/Cobalt/OutputProc/src/InputThread.h
@@ -35,29 +35,31 @@
 #include <string>
 
 
-namespace LOFAR {
-namespace RTCP {
+namespace LOFAR
+{
+  namespace RTCP
+  {
 
 
-class InputThread
-{
-  public:
-				     InputThread(const Parset &parset, OutputType index, unsigned streamNr, Queue<SmartPtr<StreamableData> > &freeQueue, Queue<SmartPtr<StreamableData> > &receiveQueue, const std::string &logPrefix);
+    class InputThread
+    {
+    public:
+      InputThread(const Parset &parset, OutputType index, unsigned streamNr, Queue<SmartPtr<StreamableData> > &freeQueue, Queue<SmartPtr<StreamableData> > &receiveQueue, const std::string &logPrefix);
 
-    void			     start();
-    void			     cancel();
+      void                             start();
+      void                             cancel();
 
-  private:
-    void			     mainLoop();
+    private:
+      void                             mainLoop();
 
-    const std::string		     itsLogPrefix, itsInputDescriptor;
-    Queue<SmartPtr<StreamableData> > &itsFreeQueue, &itsReceiveQueue;
-    SmartPtr<Thread>		     itsThread;
-    const double             itsDeadline;
-};
+      const std::string itsLogPrefix, itsInputDescriptor;
+      Queue<SmartPtr<StreamableData> > &itsFreeQueue, &itsReceiveQueue;
+      SmartPtr<Thread>                 itsThread;
+      const double itsDeadline;
+    };
 
 
-} // namespace RTCP
+  } // namespace RTCP
 } // namespace LOFAR
 
 #endif
diff --git a/RTCP/Cobalt/OutputProc/src/MSWriter.cc b/RTCP/Cobalt/OutputProc/src/MSWriter.cc
index 44e02f84930180d5b4b399c8cddd7c747635a02f..ab7af47d6e787c72b9ddca52ef72d7cc9ffbf8c9 100644
--- a/RTCP/Cobalt/OutputProc/src/MSWriter.cc
+++ b/RTCP/Cobalt/OutputProc/src/MSWriter.cc
@@ -28,60 +28,62 @@
 #include <algorithm>
 
 
-namespace LOFAR {
-namespace RTCP {
-
-MSWriter::MSWriter()
-:
-  itsNrBlocksWritten(0),
-  itsNrExpectedBlocks(0)
+namespace LOFAR
 {
-}
+  namespace RTCP
+  {
 
+    MSWriter::MSWriter()
+      :
+      itsNrBlocksWritten(0),
+      itsNrExpectedBlocks(0)
+    {
+    }
 
-MSWriter::~MSWriter()
-{
-}
 
-void MSWriter::augment(const FinalMetaData &finalMetaData)
-{
-  (void)finalMetaData;
-}
+    MSWriter::~MSWriter()
+    {
+    }
 
+    void MSWriter::augment(const FinalMetaData &finalMetaData)
+    {
+      (void)finalMetaData;
+    }
 
-size_t MSWriter::getDataSize()
-{
-  return 0;
-}
 
-ParameterSet MSWriter::configuration() const
-{
-  return itsConfiguration;
-}
+    size_t MSWriter::getDataSize()
+    {
+      return 0;
+    }
 
+    ParameterSet MSWriter::configuration() const
+    {
+      return itsConfiguration;
+    }
 
-/* Returns a percentage based on a current and a target value,
- * with the following rounding:
- *
- * 0     -> current == 0
- * 1..99 -> 0 < current < target
- * 100   -> current == target
- */
 
-unsigned MSWriter::percentageWritten() const
-{
-  size_t current = itsNrBlocksWritten;
-  size_t target = itsNrExpectedBlocks;
+    /* Returns a percentage based on a current and a target value,
+     * with the following rounding:
+     *
+     * 0     -> current == 0
+     * 1..99 -> 0 < current < target
+     * 100   -> current == target
+     */
 
-  if (current == target || target == 0)
-    return 100;
+    unsigned MSWriter::percentageWritten() const
+    {
+      size_t current = itsNrBlocksWritten;
+      size_t target = itsNrExpectedBlocks;
 
-  if (current == 0)
-    return 0;
+      if (current == target || target == 0)
+        return 100;
 
-  return std::min(std::max(100 * current / target, static_cast<size_t>(1)), static_cast<size_t>(99));
-}
+      if (current == 0)
+        return 0;
 
+      return std::min(std::max(100 * current / target, static_cast<size_t>(1)), static_cast<size_t>(99));
+    }
 
-}
+
+  }
 }
diff --git a/RTCP/Cobalt/OutputProc/src/MSWriter.h b/RTCP/Cobalt/OutputProc/src/MSWriter.h
index 2b6f89e75b72a31c218ac90a394806c26f3d165c..17330d822f66eba009d811043710cdf265bed755 100644
--- a/RTCP/Cobalt/OutputProc/src/MSWriter.h
+++ b/RTCP/Cobalt/OutputProc/src/MSWriter.h
@@ -29,34 +29,36 @@
 #include <CoInterface/FinalMetaData.h>
 #include <Common/ParameterSet.h>
 
-namespace LOFAR {
-namespace RTCP {
+namespace LOFAR
+{
+  namespace RTCP
+  {
 
 
-class MSWriter
-{
-  public:
-    MSWriter();
-    virtual	 ~MSWriter();
+    class MSWriter
+    {
+    public:
+      MSWriter();
+      virtual ~MSWriter();
 
-    virtual void write(StreamableData *) = 0;
+      virtual void write(StreamableData *) = 0;
 
-    virtual void augment(const FinalMetaData &finalMetaData);
+      virtual void augment(const FinalMetaData &finalMetaData);
 
-    virtual size_t getDataSize();
+      virtual size_t getDataSize();
 
-    ParameterSet configuration() const;
+      ParameterSet configuration() const;
 
-    unsigned percentageWritten() const;
+      unsigned percentageWritten() const;
 
-  protected:
-    size_t itsNrBlocksWritten;
-    size_t itsNrExpectedBlocks;
-    ParameterSet itsConfiguration;
-};
+    protected:
+      size_t itsNrBlocksWritten;
+      size_t itsNrExpectedBlocks;
+      ParameterSet itsConfiguration;
+    };
 
 
-} // namespace RTCP
+  } // namespace RTCP
 } // namespace LOFAR
 
 #endif
diff --git a/RTCP/Cobalt/OutputProc/src/MSWriterCorrelated.cc b/RTCP/Cobalt/OutputProc/src/MSWriterCorrelated.cc
index 4cedfdef1112c4ccfa9663998754d87e5b9ab129..780eb7bb59c1228e2d5b0d45c9ecea1842308034 100644
--- a/RTCP/Cobalt/OutputProc/src/MSWriterCorrelated.cc
+++ b/RTCP/Cobalt/OutputProc/src/MSWriterCorrelated.cc
@@ -39,151 +39,153 @@ using boost::format;
 using namespace casa;
 
 
-namespace LOFAR {
-namespace RTCP {
-
-MSWriterCorrelated::MSWriterCorrelated (const std::string &logPrefix, const std::string &msName, const Parset &parset, unsigned subbandIndex, bool isBigEndian)
-:
-  MSWriterFile(
-      (makeMeasurementSet(logPrefix, msName, parset, subbandIndex, isBigEndian), 
-      str(format("%s/table.f0data") % msName))),
-  itsLogPrefix(logPrefix),
-  itsMSname(msName),
-  itsParset(parset)
+namespace LOFAR
 {
-  if (itsParset.getLofarStManVersion() > 1) {
-    string seqfilename = str(format("%s/table.f0seqnr") % msName);
-    
-    try {
-      itsSequenceNumbersFile = new FileStream(seqfilename, O_WRONLY | O_CREAT | O_TRUNC, S_IRUSR |  S_IWUSR | S_IRGRP | S_IROTH);
-    } catch (...) {
-      LOG_WARN_STR(itsLogPrefix << "Could not open sequence numbers file " << seqfilename);
+  namespace RTCP
+  {
+
+    MSWriterCorrelated::MSWriterCorrelated (const std::string &logPrefix, const std::string &msName, const Parset &parset, unsigned subbandIndex, bool isBigEndian)
+      :
+      MSWriterFile(
+        (makeMeasurementSet(logPrefix, msName, parset, subbandIndex, isBigEndian),
+         str(format("%s/table.f0data") % msName))),
+      itsLogPrefix(logPrefix),
+      itsMSname(msName),
+      itsParset(parset)
+    {
+      if (itsParset.getLofarStManVersion() > 1) {
+        string seqfilename = str(format("%s/table.f0seqnr") % msName);
+
+        try {
+          itsSequenceNumbersFile = new FileStream(seqfilename, O_WRONLY | O_CREAT | O_TRUNC, S_IRUSR | S_IWUSR | S_IRGRP | S_IROTH);
+        } catch (...) {
+          LOG_WARN_STR(itsLogPrefix << "Could not open sequence numbers file " << seqfilename);
+        }
+      }
+
+      // derive baseline names
+      std::vector<std::string> stationNames = parset.mergedStationNames();
+      std::vector<std::string> baselineNames(parset.nrBaselines());
+      unsigned nrStations = stationNames.size();
+
+      // order of baselines as station indices:
+      // 0-0, 1-0, 1-1, 2-0, 2-1, 2-2 ... (see RTCP/CNProc/Correlator.cc)
+
+      unsigned bl = 0;
+
+      for(unsigned s1 = 0; s1 < nrStations; s1++)
+        for(unsigned s2 = 0; s2 <= s1; s2++)
+          baselineNames[bl++] = str(format("%s_%s") % stationNames[s1] % stationNames[s2]);
+
+      const vector<unsigned> subbands = itsParset.subbandList();
+      const vector<unsigned> SAPs = itsParset.subbandToSAPmapping();
+      const vector<double> frequencies = itsParset.subbandToFrequencyMapping();
+
+      itsConfiguration.add("fileFormat",           "AIPS++/CASA");
+      itsConfiguration.add("filename",             LOFAR::basename(msName));
+      itsConfiguration.add("size",                 "0");
+      itsConfiguration.add("location",             parset.getHostName(CORRELATED_DATA, subbandIndex) + ":" + LOFAR::dirname(msName));
+
+      itsConfiguration.add("percentageWritten",    "0");
+      itsConfiguration.add("startTime",            parset.getString("Observation.startTime"));
+      itsConfiguration.add("duration",             "0");
+      itsConfiguration.add("integrationInterval",  str(format("%f") % parset.IONintegrationTime()));
+      itsConfiguration.add("centralFrequency",     str(format("%f") % (frequencies[subbandIndex] / 1e6)));
+      itsConfiguration.add("channelWidth",         str(format("%f") % (parset.channelWidth() / 1e3)));
+      itsConfiguration.add("channelsPerSubband",   str(format("%u") % parset.nrChannelsPerSubband()));
+      itsConfiguration.add("stationSubband",       str(format("%u") % subbands[subbandIndex]));
+      itsConfiguration.add("subband",              str(format("%u") % subbandIndex));
+      itsConfiguration.add("SAP",                  str(format("%u") % SAPs[subbandIndex]));
     }
-  }
 
-  // derive baseline names
-  std::vector<std::string> stationNames = parset.mergedStationNames();
-  std::vector<std::string> baselineNames(parset.nrBaselines());
-  unsigned nrStations = stationNames.size();
 
-  // order of baselines as station indices:
-  // 0-0, 1-0, 1-1, 2-0, 2-1, 2-2 ... (see RTCP/CNProc/Correlator.cc)
-
-  unsigned bl = 0;
-
-  for(unsigned s1 = 0; s1 < nrStations; s1++)
-    for(unsigned s2 = 0; s2 <= s1; s2++)
-      baselineNames[bl++] = str(format("%s_%s") % stationNames[s1] % stationNames[s2]);
-
-  const vector<unsigned> subbands  = itsParset.subbandList();
-  const vector<unsigned> SAPs      = itsParset.subbandToSAPmapping();
-  const vector<double> frequencies = itsParset.subbandToFrequencyMapping();
-
-  itsConfiguration.add("fileFormat",           "AIPS++/CASA");
-  itsConfiguration.add("filename",             LOFAR::basename(msName));
-  itsConfiguration.add("size",                 "0");
-  itsConfiguration.add("location",             parset.getHostName(CORRELATED_DATA, subbandIndex) + ":" + LOFAR::dirname(msName));
-
-  itsConfiguration.add("percentageWritten",    "0");
-  itsConfiguration.add("startTime",            parset.getString("Observation.startTime"));
-  itsConfiguration.add("duration",             "0");
-  itsConfiguration.add("integrationInterval",  str(format("%f") % parset.IONintegrationTime()));
-  itsConfiguration.add("centralFrequency",     str(format("%f") % (frequencies[subbandIndex]/1e6)));
-  itsConfiguration.add("channelWidth",         str(format("%f") % (parset.channelWidth()/1e3)));
-  itsConfiguration.add("channelsPerSubband",   str(format("%u") % parset.nrChannelsPerSubband()));
-  itsConfiguration.add("stationSubband",       str(format("%u") % subbands[subbandIndex]));
-  itsConfiguration.add("subband",              str(format("%u") % subbandIndex));
-  itsConfiguration.add("SAP",                  str(format("%u") % SAPs[subbandIndex]));
-}
-
-
-MSWriterCorrelated::~MSWriterCorrelated()
-{
-}
+    MSWriterCorrelated::~MSWriterCorrelated()
+    {
+    }
 
 
-void MSWriterCorrelated::makeMeasurementSet(const std::string &logPrefix, const std::string &msName, const Parset &parset, unsigned subbandIndex, bool isBigEndian)
-{
+    void MSWriterCorrelated::makeMeasurementSet(const std::string &logPrefix, const std::string &msName, const Parset &parset, unsigned subbandIndex, bool isBigEndian)
+    {
 #if defined HAVE_AIPSPP
-  MeasurementSetFormat myFormat(parset, 512);
+      MeasurementSetFormat myFormat(parset, 512);
 
-  myFormat.addSubband(msName, subbandIndex, isBigEndian);
+      myFormat.addSubband(msName, subbandIndex, isBigEndian);
 
-  LOG_INFO_STR(logPrefix << "MeasurementSet created");
+      LOG_INFO_STR(logPrefix << "MeasurementSet created");
 #endif // defined HAVE_AIPSPP
-}
+    }
 
 
-void MSWriterCorrelated::write(StreamableData *data)
-{
-  CorrelatedData *cdata = dynamic_cast<CorrelatedData*>(data);
+    void MSWriterCorrelated::write(StreamableData *data)
+    {
+      CorrelatedData *cdata = dynamic_cast<CorrelatedData*>(data);
 
-  ASSERT( data );
-  ASSERT( cdata );
+      ASSERT( data );
+      ASSERT( cdata );
 
-  // Write data
-  MSWriterFile::write(data);
+      // Write data
+      MSWriterFile::write(data);
 
-  // Write sequence number
-  if (itsSequenceNumbersFile != 0) {
-    // quick fix: always write to maintain integrity
-    unsigned seqnr = data->sequenceNumber(true);
+      // Write sequence number
+      if (itsSequenceNumbersFile != 0) {
+        // quick fix: always write to maintain integrity
+        unsigned seqnr = data->sequenceNumber(true);
 
-    itsSequenceNumbersFile->write(&seqnr, sizeof seqnr);
-  }
+        itsSequenceNumbersFile->write(&seqnr, sizeof seqnr);
+      }
 
-  itsNrBlocksWritten++;
+      itsNrBlocksWritten++;
 
-  itsConfiguration.replace("size",     str(format("%u") % getDataSize()));
-  itsConfiguration.replace("duration", str(format("%f") % ((data->sequenceNumber() + 1) * itsParset.IONintegrationTime())));
-  itsConfiguration.replace("percentageWritten", str(format("%u") % percentageWritten()));
-}
+      itsConfiguration.replace("size",     str(format("%u") % getDataSize()));
+      itsConfiguration.replace("duration", str(format("%f") % ((data->sequenceNumber() + 1) * itsParset.IONintegrationTime())));
+      itsConfiguration.replace("percentageWritten", str(format("%u") % percentageWritten()));
+    }
 
 
-static MVEpoch datetime2epoch(const string &datetime)
-{
-  Quantity q;
+    static MVEpoch datetime2epoch(const string &datetime)
+    {
+      Quantity q;
 
-  if (!MVTime::read(q, datetime))
-    return MVEpoch(0);
+      if (!MVTime::read(q, datetime))
+        return MVEpoch(0);
 
-  return MVEpoch(q);
-}
+      return MVEpoch(q);
+    }
 
 
-void MSWriterCorrelated::augment(const FinalMetaData &finalMetaData)
-{
-  ScopedLock sl(MeasurementSetFormat::sharedMutex);
+    void MSWriterCorrelated::augment(const FinalMetaData &finalMetaData)
+    {
+      ScopedLock sl(MeasurementSetFormat::sharedMutex);
 
-  map<string, FailedTileInfo::VectorFailed> brokenBefore, brokenDuring;
+      map<string, FailedTileInfo::VectorFailed> brokenBefore, brokenDuring;
 
-  // fill set of broken hardware at beginning of observation
-  for (size_t i = 0; i < finalMetaData.brokenRCUsAtBegin.size(); i++) {
-    const struct FinalMetaData::BrokenRCU &rcu = finalMetaData.brokenRCUsAtBegin[i];
+      // fill set of broken hardware at beginning of observation
+      for (size_t i = 0; i < finalMetaData.brokenRCUsAtBegin.size(); i++) {
+        const struct FinalMetaData::BrokenRCU &rcu = finalMetaData.brokenRCUsAtBegin[i];
 
-    brokenBefore[rcu.station].push_back(FailedTileInfo(rcu.station, rcu.time, datetime2epoch(rcu.time), rcu.type, rcu.seqnr));
-  }
+        brokenBefore[rcu.station].push_back(FailedTileInfo(rcu.station, rcu.time, datetime2epoch(rcu.time), rcu.type, rcu.seqnr));
+      }
 
-  // fill set of hardware that broke during the observation
-  for (size_t i = 0; i < finalMetaData.brokenRCUsDuring.size(); i++) {
-    const struct FinalMetaData::BrokenRCU &rcu = finalMetaData.brokenRCUsDuring[i];
+      // fill set of hardware that broke during the observation
+      for (size_t i = 0; i < finalMetaData.brokenRCUsDuring.size(); i++) {
+        const struct FinalMetaData::BrokenRCU &rcu = finalMetaData.brokenRCUsDuring[i];
 
-    brokenDuring[rcu.station].push_back(FailedTileInfo(rcu.station, rcu.time, datetime2epoch(rcu.time), rcu.type, rcu.seqnr));
-  }
+        brokenDuring[rcu.station].push_back(FailedTileInfo(rcu.station, rcu.time, datetime2epoch(rcu.time), rcu.type, rcu.seqnr));
+      }
 
-  LOG_INFO_STR(itsLogPrefix << "Reopening MeasurementSet");
+      LOG_INFO_STR(itsLogPrefix << "Reopening MeasurementSet");
 
-  Table ms(itsMSname, Table::Update);
+      Table ms(itsMSname, Table::Update);
 
-  vector<FailedTileInfo::VectorFailed> before(FailedTileInfo::antennaConvert(ms, brokenBefore));
-  vector<FailedTileInfo::VectorFailed> during(FailedTileInfo::antennaConvert(ms, brokenDuring));
+      vector<FailedTileInfo::VectorFailed> before(FailedTileInfo::antennaConvert(ms, brokenBefore));
+      vector<FailedTileInfo::VectorFailed> during(FailedTileInfo::antennaConvert(ms, brokenDuring));
 
-  LOG_INFO_STR(itsLogPrefix << "Writing broken hardware information to MeasurementSet");
+      LOG_INFO_STR(itsLogPrefix << "Writing broken hardware information to MeasurementSet");
 
-  FailedTileInfo::writeFailed(ms, before, during);
-}
+      FailedTileInfo::writeFailed(ms, before, during);
+    }
 
 
-} // namespace RTCP
+  } // namespace RTCP
 } // namespace LOFAR
 
diff --git a/RTCP/Cobalt/OutputProc/src/MSWriterCorrelated.h b/RTCP/Cobalt/OutputProc/src/MSWriterCorrelated.h
index 8fe9fc8474dceac7a0f2edb9e6ed61b7ebf79306..f24e115f4dcd7ffdb8cad8f9ad3e7407b68c1157 100644
--- a/RTCP/Cobalt/OutputProc/src/MSWriterCorrelated.h
+++ b/RTCP/Cobalt/OutputProc/src/MSWriterCorrelated.h
@@ -33,33 +33,35 @@
 #include <string>
 #include <vector>
 
-namespace LOFAR {
-namespace RTCP {
+namespace LOFAR
+{
+  namespace RTCP
+  {
 
 
-class MSWriterCorrelated : public MSWriterFile
-{
-  public:
-    MSWriterCorrelated(const std::string &logPrefix, const std::string &msName, const Parset &parset, unsigned subbandIndex, bool isBigEndian);
-    ~MSWriterCorrelated();
+    class MSWriterCorrelated : public MSWriterFile
+    {
+    public:
+      MSWriterCorrelated(const std::string &logPrefix, const std::string &msName, const Parset &parset, unsigned subbandIndex, bool isBigEndian);
+      ~MSWriterCorrelated();
 
-    virtual void write(StreamableData *data);
-    
-    virtual void augment(const FinalMetaData &finalMetaData);
+      virtual void write(StreamableData *data);
 
-  protected:
-    const std::string itsLogPrefix;
-    const std::string itsMSname;
-    const Parset &itsParset;
+      virtual void augment(const FinalMetaData &finalMetaData);
 
-    SmartPtr<FileStream>	     itsSequenceNumbersFile;
+    protected:
+      const std::string itsLogPrefix;
+      const std::string itsMSname;
+      const Parset &itsParset;
 
-  private:
-    void makeMeasurementSet(const std::string &logPrefix, const std::string &msName, const Parset &parset, unsigned subbandIndex, bool isBigEndian);
-};
+      SmartPtr<FileStream>             itsSequenceNumbersFile;
 
+    private:
+      void makeMeasurementSet(const std::string &logPrefix, const std::string &msName, const Parset &parset, unsigned subbandIndex, bool isBigEndian);
+    };
 
-}
+
+  }
 }
 
 #endif
diff --git a/RTCP/Cobalt/OutputProc/src/MSWriterDAL.cc b/RTCP/Cobalt/OutputProc/src/MSWriterDAL.cc
index 59089e697c4e2163065254f41fb81d7845d83440..ac65edb857cc1fd40ea9ebee47da362f1fd1c729 100644
--- a/RTCP/Cobalt/OutputProc/src/MSWriterDAL.cc
+++ b/RTCP/Cobalt/OutputProc/src/MSWriterDAL.cc
@@ -55,7 +55,7 @@ using boost::format;
 static string timeStr( double time )
 {
   time_t timeSec = static_cast<time_t>(floor(time));
-  unsigned long timeNSec = static_cast<unsigned long>(round( (time-floor(time))*1e9 ));
+  unsigned long timeNSec = static_cast<unsigned long>(round( (time - floor(time)) * 1e9 ));
 
   char utcstr[50];
   if (strftime( utcstr, sizeof utcstr, "%Y-%m-%dT%H:%M:%S", gmtime(&timeSec) ) == 0)
@@ -72,7 +72,7 @@ static string toUTC( double time )
 static double toMJD( double time )
 {
   // 40587 modify Julian day number = 00:00:00 January 1, 1970, GMT
-  return 40587.0 + time / (24*60*60);
+  return 40587.0 + time / (24 * 60 * 60);
 }
 
 static string stripextension( const string filename )
@@ -85,7 +85,7 @@ static string forceextension( const string filename, const string extension )
   return stripextension(filename) + extension;
 }
 
-namespace LOFAR 
+namespace LOFAR
 {
 
   namespace RTCP
@@ -94,8 +94,9 @@ namespace LOFAR
     // uses global locks too anyway.
     static Mutex HDF5Mutex;
 
-    template <typename T,unsigned DIM> MSWriterDAL<T,DIM>::MSWriterDAL (const string &filename, const Parset &parset, unsigned fileno, bool isBigEndian)
-    :
+    template <typename T,unsigned DIM>
+    MSWriterDAL<T,DIM>::MSWriterDAL (const string &filename, const Parset &parset, unsigned fileno, bool isBigEndian)
+      :
       MSWriterFile(forceextension(string(filename),".raw")),
       itsParset(parset),
       itsTransposeLogic(parset.transposeLogic()),
@@ -136,34 +137,34 @@ namespace LOFAR
 
 
       switch (itsInfo.stokesType) {
-        case STOKES_I:
-          stokesVars.push_back("I");
-          stokesVars_LTA = stokesVars;
-          break;
-
-        case STOKES_IQUV:
-          stokesVars.push_back("I");
-          stokesVars.push_back("Q");
-          stokesVars.push_back("U");
-          stokesVars.push_back("V");
-          stokesVars_LTA = stokesVars;
-          break;
-
-        case STOKES_XXYY:
-          stokesVars.push_back("Xr");
-          stokesVars.push_back("Xi");
-          stokesVars.push_back("Yr");
-          stokesVars.push_back("Yi");
-          stokesVars_LTA.push_back("Xre");
-          stokesVars_LTA.push_back("Xim");
-          stokesVars_LTA.push_back("Yre");
-          stokesVars_LTA.push_back("Yim");
-          break;
-
-        case INVALID_STOKES:
-          LOG_ERROR("MSWriterDAL asked to write INVALID_STOKES");
-          return;
-      }    
+      case STOKES_I:
+        stokesVars.push_back("I");
+        stokesVars_LTA = stokesVars;
+        break;
+
+      case STOKES_IQUV:
+        stokesVars.push_back("I");
+        stokesVars.push_back("Q");
+        stokesVars.push_back("U");
+        stokesVars.push_back("V");
+        stokesVars_LTA = stokesVars;
+        break;
+
+      case STOKES_XXYY:
+        stokesVars.push_back("Xr");
+        stokesVars.push_back("Xi");
+        stokesVars.push_back("Yr");
+        stokesVars.push_back("Yi");
+        stokesVars_LTA.push_back("Xre");
+        stokesVars_LTA.push_back("Xim");
+        stokesVars_LTA.push_back("Yre");
+        stokesVars_LTA.push_back("Yim");
+        break;
+
+      case INVALID_STOKES:
+        LOG_ERROR("MSWriterDAL asked to write INVALID_STOKES");
+        return;
+      }
 
       LOG_DEBUG_STR("MSWriterDAL: opening " << filename);
 
@@ -178,16 +179,16 @@ namespace LOFAR
       //file.fileType() is set by DAL
       //file.telescope() is set by DAL
 
-      file.projectID()     .value = parset.getString("Observation.Campaign.name", "");
-      file.projectTitle()  .value = parset.getString("Observation.Scheduler.taskName", "");
-      file.projectPI()     .value = parset.getString("Observation.Campaign.PI", "");
+      file.projectID().value = parset.getString("Observation.Campaign.name", "");
+      file.projectTitle().value = parset.getString("Observation.Scheduler.taskName", "");
+      file.projectPI().value = parset.getString("Observation.Campaign.PI", "");
       ostringstream oss;
       // Use ';' instead of ',' to pretty print, because ',' already occurs in names (e.g. Smith, J.).
       writeVector(oss, parset.getStringVector("Observation.Campaign.CO_I", ""), "; ", "", "");
-      file.projectCOI()    .value = oss.str();
+      file.projectCOI().value = oss.str();
       file.projectContact().value = parset.getString("Observation.Campaign.contact", "");
 
-      file.observationID() .value = str(format("%u") % parset.observationID());
+      file.observationID().value = str(format("%u") % parset.observationID());
 
       file.observationStartUTC().value = toUTC(parset.startTime());
       file.observationStartMJD().value = toMJD(parset.startTime());
@@ -215,16 +216,16 @@ namespace LOFAR
       double max_centerfrequency = *max_element( subbandCenterFrequencies.begin(), subbandCenterFrequencies.end() );
       double sum_centerfrequencies = accumulate( subbandCenterFrequencies.begin(), subbandCenterFrequencies.end(), 0.0 );
 
-      file.observationFrequencyMax()   .value = (max_centerfrequency + subbandBandwidth / 2 - frequencyOffsetPPF) / 1e6;
-      file.observationFrequencyMin()   .value = (min_centerfrequency - subbandBandwidth / 2 - frequencyOffsetPPF) / 1e6;
+      file.observationFrequencyMax().value = (max_centerfrequency + subbandBandwidth / 2 - frequencyOffsetPPF) / 1e6;
+      file.observationFrequencyMin().value = (min_centerfrequency - subbandBandwidth / 2 - frequencyOffsetPPF) / 1e6;
       file.observationFrequencyCenter().value = (sum_centerfrequencies / subbandCenterFrequencies.size() - frequencyOffsetPPF) / 1e6;
-      file.observationFrequencyUnit()  .value = "MHz";
+      file.observationFrequencyUnit().value = "MHz";
 
       file.observationNofBitsPerSample().value = parset.nrBitsPerSample();
-      file.clockFrequency()             .value = parset.clockSpeed() / 1e6;
-      file.clockFrequencyUnit()         .value = "MHz";
+      file.clockFrequency().value = parset.clockSpeed() / 1e6;
+      file.clockFrequencyUnit().value = "MHz";
 
-      file.antennaSet()     .value = parset.antennaSet();
+      file.antennaSet().value = parset.antennaSet();
       file.filterSelection().value = parset.getString("Observation.bandFilter", "");
 
       unsigned nrSAPs = parset.nrBeams();
@@ -235,31 +236,31 @@ namespace LOFAR
 
       file.targets().value = targets;
 
-      file.systemVersion().value   = OutputProcVersion::getVersion(); // LOFAR version
+      file.systemVersion().value = OutputProcVersion::getVersion();   // LOFAR version
 
       //file.docName() is set by DAL
       //file.docVersion() is set by DAL
 
-      file.notes().value      = "";
+      file.notes().value = "";
 
       // BF_File specific root group parameters
 
       file.createOfflineOnline().value = "Online";
-      file.BFFormat().value            = "TAB";
-      file.BFVersion().value           = str(format("Cobalt/OutputProc %s r%s using DAL %s and HDF5 %s") % OutputProcVersion::getVersion() % OutputProcVersion::getRevision() % dal::version().to_string() % dal::version_hdf5().to_string());
+      file.BFFormat().value = "TAB";
+      file.BFVersion().value = str(format("Cobalt/OutputProc %s r%s using DAL %s and HDF5 %s") % OutputProcVersion::getVersion() % OutputProcVersion::getRevision() % dal::version().to_string() % dal::version_hdf5().to_string());
 
-      file.totalIntegrationTime()    .value = nrBlocks * parset.CNintegrationTime();
+      file.totalIntegrationTime().value = nrBlocks * parset.CNintegrationTime();
       file.totalIntegrationTimeUnit().value = "s";
 
       //file.subArrayPointingDiameter().value = 0.0;
       //file.subArrayPointingDiameterUnit().value = "arcmin";
-      file.bandwidth()               .value = parset.nrSubbands() * subbandBandwidth / 1e6;
-      file.bandwidthUnit()           .value = "MHz";
+      file.bandwidth().value = parset.nrSubbands() * subbandBandwidth / 1e6;
+      file.bandwidthUnit().value = "MHz";
       //file.beamDiameter()            .value = 0.0;
       //file.beamDiameterUnit()          .value = "arcmin";
 
       file.observationNofSubArrayPointings().value = parset.nrBeams();
-      file.nofSubArrayPointings().value            = 1;
+      file.nofSubArrayPointings().value = 1;
 
       // SysLog group -- empty for now
       file.sysLog().create();
@@ -267,7 +268,7 @@ namespace LOFAR
       // information about the station beam (SAP)
       BF_SubArrayPointing sap = file.subArrayPointing(sapNr);
       sap.create();
-      sap.groupType()   .value = "SubArrayPointing";
+      sap.groupType().value = "SubArrayPointing";
 
       sap.expTimeStartUTC().value = toUTC(parset.startTime());
       sap.expTimeStartMJD().value = toMJD(parset.startTime());
@@ -285,17 +286,17 @@ namespace LOFAR
         LOG_WARN("HDF5 writer does not record positions of non-J2000 observations yet.");
 
       vector<double> beamDir = parset.getBeamDirection(sapNr);
-      sap.pointRA() .value     = beamDir[0] * 180.0 / M_PI;
-      sap.pointRAUnit().value  = "deg";
-      sap.pointDEC().value     = beamDir[1] * 180.0 / M_PI;
+      sap.pointRA().value = beamDir[0] * 180.0 / M_PI;
+      sap.pointRAUnit().value = "deg";
+      sap.pointDEC().value = beamDir[1] * 180.0 / M_PI;
       sap.pointDECUnit().value = "deg";
 
       sap.observationNofBeams().value = parset.nrTABs(sapNr);
-      sap.nofBeams()           .value = 1;
+      sap.nofBeams().value = 1;
 
       BF_ProcessingHistory sapHistory = sap.processHistory();
       sapHistory.create();
-      sapHistory.groupType()   .value = "ProcessingHistory";
+      sapHistory.groupType().value = "ProcessingHistory";
 
       Attribute<string> sapObservationParset(sapHistory, "OBSERVATION_PARSET");
       string parsetAsString;
@@ -307,47 +308,47 @@ namespace LOFAR
 
       BF_BeamGroup beam = sap.beam(beamNr);
       beam.create();
-      beam.groupType()         .value = "Beam";
+      beam.groupType().value = "Beam";
 
       vector<string> beamStationList = parset.TABStationList(sapNr, beamNr);
-      beam.nofStations() .value = beamStationList.size();
+      beam.nofStations().value = beamStationList.size();
       beam.stationsList().value = beamStationList;
 
       const vector<string> beamtargets(1, targets[sapNr]);
 
-      beam.targets()     .value = beamtargets;
-      beam.tracking().value     = parset.getBeamDirectionType(sapNr);
+      beam.targets().value = beamtargets;
+      beam.tracking().value = parset.getBeamDirectionType(sapNr);
 
       BeamCoordinates pbeamDirs = parset.TABs(sapNr);
       BeamCoord3D pbeamDir = pbeamDirs[beamNr];
-      beam.pointRA()           .value = (beamDir[0] + pbeamDir[0]) * 180.0 / M_PI;
-      beam.pointRAUnit()       .value = "deg";
-      beam.pointDEC()          .value = (beamDir[1] + pbeamDir[1]) * 180.0 / M_PI;
-      beam.pointDECUnit()      .value = "deg";
-      beam.pointOffsetRA()     .value = pbeamDir[0] * 180.0 / M_PI;
-      beam.pointOffsetRAUnit() .value = "deg";
-      beam.pointOffsetDEC()    .value = pbeamDir[1] * 180.0 / M_PI;
+      beam.pointRA().value = (beamDir[0] + pbeamDir[0]) * 180.0 / M_PI;
+      beam.pointRAUnit().value = "deg";
+      beam.pointDEC().value = (beamDir[1] + pbeamDir[1]) * 180.0 / M_PI;
+      beam.pointDECUnit().value = "deg";
+      beam.pointOffsetRA().value = pbeamDir[0] * 180.0 / M_PI;
+      beam.pointOffsetRAUnit().value = "deg";
+      beam.pointOffsetDEC().value = pbeamDir[1] * 180.0 / M_PI;
       beam.pointOffsetDECUnit().value = "deg";
 
- 
-      beam.subbandWidth()      .value = subbandBandwidth;
-      beam.subbandWidthUnit()  .value = "Hz";
+
+      beam.subbandWidth().value = subbandBandwidth;
+      beam.subbandWidthUnit().value = "Hz";
 
 
-      beam.beamDiameterRA()     .value = 0;
-      beam.beamDiameterRAUnit() .value = "arcmin";
-      beam.beamDiameterDEC()    .value = 0;
+      beam.beamDiameterRA().value = 0;
+      beam.beamDiameterRAUnit().value = "arcmin";
+      beam.beamDiameterDEC().value = 0;
       beam.beamDiameterDECUnit().value = "arcmin";
 
-      beam.nofSamples()        .value = itsNrSamples * nrBlocks;
-      beam.samplingRate()      .value = parset.subbandBandwidth() / parset.nrChannelsPerSubband() / itsInfo.timeIntFactor;
-      beam.samplingRateUnit()  .value = "Hz";
-      beam.samplingTime()      .value = parset.sampleDuration() * parset.nrChannelsPerSubband() * itsInfo.timeIntFactor;
-      beam.samplingTimeUnit()  .value = "s";
+      beam.nofSamples().value = itsNrSamples * nrBlocks;
+      beam.samplingRate().value = parset.subbandBandwidth() / parset.nrChannelsPerSubband() / itsInfo.timeIntFactor;
+      beam.samplingRateUnit().value = "Hz";
+      beam.samplingTime().value = parset.sampleDuration() * parset.nrChannelsPerSubband() * itsInfo.timeIntFactor;
+      beam.samplingTimeUnit().value = "s";
 
       beam.channelsPerSubband().value = itsInfo.nrChannels;
-      beam.channelWidth()      .value = channelBandwidth * (parset.nrChannelsPerSubband() / itsInfo.nrChannels);
-      beam.channelWidthUnit()  .value = "Hz";
+      beam.channelWidth().value = channelBandwidth * (parset.nrChannelsPerSubband() / itsInfo.nrChannels);
+      beam.channelWidthUnit().value = "Hz";
 
       vector<double> beamCenterFrequencies(nrSubbands, 0.0);
 
@@ -356,33 +357,33 @@ namespace LOFAR
 
       double beamCenterFrequencySum = accumulate(beamCenterFrequencies.begin(), beamCenterFrequencies.end(), 0.0);
 
-      beam.beamFrequencyCenter()    .value = (beamCenterFrequencySum / nrSubbands - frequencyOffsetPPF) / 1e6;
+      beam.beamFrequencyCenter().value = (beamCenterFrequencySum / nrSubbands - frequencyOffsetPPF) / 1e6;
       beam.beamFrequencyCenterUnit().value = "MHz";
 
       double DM = parset.dispersionMeasure(sapNr, beamNr);
 
-      beam.foldedData()             .value = false;
-      beam.foldPeriod()             .value = 0.0;
-      beam.foldPeriodUnit()         .value = "s";
+      beam.foldedData().value = false;
+      beam.foldPeriod().value = 0.0;
+      beam.foldPeriodUnit().value = "s";
 
-      beam.dedispersion()           .value = DM == 0.0 ? "NONE" : "COHERENT";
-      beam.dispersionMeasure()      .value = DM;
-      beam.dispersionMeasureUnit()  .value = "pc/cm^3";
+      beam.dedispersion().value = DM == 0.0 ? "NONE" : "COHERENT";
+      beam.dispersionMeasure().value = DM;
+      beam.dispersionMeasureUnit().value = "pc/cm^3";
 
-      beam.barycentered()           .value = false;
+      beam.barycentered().value = false;
 
-      beam.observationNofStokes()   .value = itsInfo.nrStokes;
-      beam.nofStokes()              .value = 1;
+      beam.observationNofStokes().value = itsInfo.nrStokes;
+      beam.nofStokes().value = 1;
 
       vector<string> stokesComponents(1, stokesVars[stokesNr]);
 
-      beam.stokesComponents()       .value = stokesComponents;
-      beam.complexVoltage()         .value = itsInfo.stokesType == STOKES_XXYY;
-      beam.signalSum()              .value = itsInfo.coherent ? "COHERENT" : "INCOHERENT";
+      beam.stokesComponents().value = stokesComponents;
+      beam.complexVoltage().value = itsInfo.stokesType == STOKES_XXYY;
+      beam.signalSum().value = itsInfo.coherent ? "COHERENT" : "INCOHERENT";
 
-      beam.stokesComponents()       .value = stokesComponents;
-      beam.complexVoltage()         .value = itsInfo.stokesType == STOKES_XXYY;
-      beam.signalSum()              .value = itsInfo.coherent ? "COHERENT" : "INCOHERENT";
+      beam.stokesComponents().value = stokesComponents;
+      beam.complexVoltage().value = itsInfo.stokesType == STOKES_XXYY;
+      beam.signalSum().value = itsInfo.coherent ? "COHERENT" : "INCOHERENT";
 
       BF_ProcessingHistory beamHistory = beam.processHistory();
       beamHistory.create();
@@ -404,7 +405,7 @@ namespace LOFAR
       coordinates.refTimeFrame().value = "MJD";
 
       coordinates.nofCoordinates().value = 2;
-      coordinates.nofAxes()       .value = 2;
+      coordinates.nofAxes().value = 2;
 
       vector<string> coordinateTypes(2);
       coordinateTypes[0] = "Time"; // or TimeCoord ?
@@ -415,13 +416,13 @@ namespace LOFAR
 
       SmartPtr<TimeCoordinate> timeCoordinate = dynamic_cast<TimeCoordinate*>(coordinates.coordinate(0));
       timeCoordinate.get()->create();
-      timeCoordinate.get()->groupType()     .value = "TimeCoord";
+      timeCoordinate.get()->groupType().value = "TimeCoord";
 
       timeCoordinate.get()->coordinateType().value = "Time";
-      timeCoordinate.get()->storageType()   .value = vector<string>(1,"Linear");
-      timeCoordinate.get()->nofAxes()       .value = 1;
-      timeCoordinate.get()->axisNames()     .value = vector<string>(1,"Time");
-      timeCoordinate.get()->axisUnits()     .value = vector<string>(1,"us");
+      timeCoordinate.get()->storageType().value = vector<string>(1,"Linear");
+      timeCoordinate.get()->nofAxes().value = 1;
+      timeCoordinate.get()->axisNames().value = vector<string>(1,"Time");
+      timeCoordinate.get()->axisUnits().value = vector<string>(1,"us");
 
       // linear coordinates:
       //   referenceValue = offset from starting time, in axisUnits
@@ -431,26 +432,26 @@ namespace LOFAR
 
       timeCoordinate.get()->referenceValue().value = 0;
       timeCoordinate.get()->referencePixel().value = 0;
-      timeCoordinate.get()->increment()     .value = parset.sampleDuration() * parset.nrChannelsPerSubband() * itsInfo.timeIntFactor;
-      timeCoordinate.get()->pc()            .value = unitvector;
+      timeCoordinate.get()->increment().value = parset.sampleDuration() * parset.nrChannelsPerSubband() * itsInfo.timeIntFactor;
+      timeCoordinate.get()->pc().value = unitvector;
 
       timeCoordinate.get()->axisValuesPixel().value = vector<unsigned>(1, 0); // not used
       timeCoordinate.get()->axisValuesWorld().value = vector<double>(1, 0.0); // not used
 
       SmartPtr<SpectralCoordinate> spectralCoordinate = dynamic_cast<SpectralCoordinate*>(coordinates.coordinate(1));
       spectralCoordinate.get()->create();
-      spectralCoordinate.get()->groupType()     .value = "SpectralCoord";
+      spectralCoordinate.get()->groupType().value = "SpectralCoord";
 
       spectralCoordinate.get()->coordinateType().value = "Spectral";
-      spectralCoordinate.get()->storageType()   .value = vector<string>(1,"Tabular");
-      spectralCoordinate.get()->nofAxes()       .value = 1;
-      spectralCoordinate.get()->axisNames()     .value = vector<string>(1,"Frequency");
-      spectralCoordinate.get()->axisUnits()     .value = vector<string>(1,"MHz");
+      spectralCoordinate.get()->storageType().value = vector<string>(1,"Tabular");
+      spectralCoordinate.get()->nofAxes().value = 1;
+      spectralCoordinate.get()->axisNames().value = vector<string>(1,"Frequency");
+      spectralCoordinate.get()->axisUnits().value = vector<string>(1,"MHz");
 
       spectralCoordinate.get()->referenceValue().value = 0; // not used
       spectralCoordinate.get()->referencePixel().value = 0; // not used
-      spectralCoordinate.get()->increment()     .value = 0; // not used
-      spectralCoordinate.get()->pc()            .value = unitvector; // not used
+      spectralCoordinate.get()->increment().value = 0;      // not used
+      spectralCoordinate.get()->pc().value = unitvector;             // not used
 
       // tabular coordinates:
       //   axisValuePixel = data indices
@@ -462,12 +463,12 @@ namespace LOFAR
       for(unsigned sb = 0; sb < nrSubbands; sb++) {
         const double subbandBeginFreq = parset.channel0Frequency( subbandIndices[sb] );
 
-	// NOTE: channel 0 will be wrongly annotated if nrChannels > 1, because it is a combination of the
-	// highest and the lowest frequencies (half a channel each).
+        // NOTE: channel 0 will be wrongly annotated if nrChannels > 1, because it is a combination of the
+        // highest and the lowest frequencies (half a channel each).
 
         for(unsigned ch = 0; ch < itsInfo.nrChannels; ch++) {
           spectralPixels.push_back(spectralPixels.size());
-          spectralWorld .push_back(subbandBeginFreq + ch * channelBandwidth);
+          spectralWorld.push_back(subbandBeginFreq + ch * channelBandwidth);
         }
       }
 
@@ -486,12 +487,12 @@ namespace LOFAR
 
       stokesDS.create(dims, maxdims, LOFAR::basename(rawfilename), isBigEndian ? BF_StokesDataset::BIG : BF_StokesDataset::LITTLE);
       stokesDS.groupType().value = "bfData";
-      stokesDS.dataType() .value = "float";
+      stokesDS.dataType().value = "float";
 
       stokesDS.stokesComponent().value = stokesVars[stokesNr];
-      stokesDS.nofChannels()    .value = vector<unsigned>(nrSubbands, itsInfo.nrChannels);
-      stokesDS.nofSubbands()    .value = nrSubbands;
-      stokesDS.nofSamples()     .value = dims[0];
+      stokesDS.nofChannels().value = vector<unsigned>(nrSubbands, itsInfo.nrChannels);
+      stokesDS.nofSubbands().value = nrSubbands;
+      stokesDS.nofSamples().value = dims[0];
 
       // construct feedback for LTA -- Implements Output_Beamformed_.comp
 
@@ -499,7 +500,7 @@ namespace LOFAR
 
       // FIXME: specifiedNrStations == 1 only implies Fly's Eye when Parset.py generates the stationList
       size_t specifiedNrStations = parset.TABStationList(sapNr, beamNr, true).size();
-      
+
       if (itsInfo.coherent)
         if (specifiedNrStations != 1)
           type = "CoherentStokesBeam";
@@ -520,7 +521,7 @@ namespace LOFAR
       itsConfiguration.replace(str(format("nrOf%ss") % type), "1");
 
       itsConfiguration.add("beamTypes",                 "[]");
-      
+
       string prefix = str(format("%s[0].") % type);
 
       itsConfiguration.add(prefix + "SAP",               str(format("%u") % itsInfo.sap));
@@ -577,11 +578,13 @@ namespace LOFAR
       }
     }
 
-    template <typename T,unsigned DIM> MSWriterDAL<T,DIM>::~MSWriterDAL()
+    template <typename T,unsigned DIM>
+    MSWriterDAL<T,DIM>::~MSWriterDAL()
     {
     }
 
-    template <typename T,unsigned DIM> void MSWriterDAL<T,DIM>::write(StreamableData *data)
+    template <typename T,unsigned DIM>
+    void MSWriterDAL<T,DIM>::write(StreamableData *data)
     {
       SampleData<T,DIM> *sdata = dynamic_cast<SampleData<T,DIM> *>(data);
 
diff --git a/RTCP/Cobalt/OutputProc/src/MSWriterDAL.h b/RTCP/Cobalt/OutputProc/src/MSWriterDAL.h
index 3de066c4f7e49adb019af683e78ecf3bc5a5f8c1..41f58ddf32dc860f4f8b6d8c29ca701492874462 100644
--- a/RTCP/Cobalt/OutputProc/src/MSWriterDAL.h
+++ b/RTCP/Cobalt/OutputProc/src/MSWriterDAL.h
@@ -42,7 +42,8 @@ namespace LOFAR
 
   namespace RTCP
   {
-    template<typename T, unsigned DIM> class MSWriterDAL : public MSWriterFile
+    template<typename T, unsigned DIM>
+    class MSWriterDAL : public MSWriterFile
     {
     public:
       MSWriterDAL(const string &filename, const Parset &parset, unsigned fileno, bool isBigEndian);
diff --git a/RTCP/Cobalt/OutputProc/src/MSWriterFile.cc b/RTCP/Cobalt/OutputProc/src/MSWriterFile.cc
index 2e1c62d0b5137c6b5a0bfa481c0f458bdbdea85f..1194a666108fa2d101c78d9dff019c7bddc63dbb 100644
--- a/RTCP/Cobalt/OutputProc/src/MSWriterFile.cc
+++ b/RTCP/Cobalt/OutputProc/src/MSWriterFile.cc
@@ -28,34 +28,36 @@
 #include <sys/types.h>
 #include <fcntl.h>
 
-namespace LOFAR {
-namespace RTCP {
+namespace LOFAR
+{
+  namespace RTCP
+  {
 
 
-MSWriterFile::MSWriterFile (const string &msName)
-:
- itsFile(msName, O_RDWR | O_CREAT | O_TRUNC, S_IRUSR | S_IWUSR | S_IRGRP | S_IROTH)
-{
-}
+    MSWriterFile::MSWriterFile (const string &msName)
+      :
+      itsFile(msName, O_RDWR | O_CREAT | O_TRUNC, S_IRUSR | S_IWUSR | S_IRGRP | S_IROTH)
+    {
+    }
 
 
-MSWriterFile::~MSWriterFile()
-{
-}
+    MSWriterFile::~MSWriterFile()
+    {
+    }
 
 
-void MSWriterFile::write(StreamableData *data)
-{
-  data->write(&itsFile, true, FastFileStream::alignment);
-}
+    void MSWriterFile::write(StreamableData *data)
+    {
+      data->write(&itsFile, true, FastFileStream::alignment);
+    }
 
 
-size_t MSWriterFile::getDataSize()
-{
-  return itsFile.size();
-}
+    size_t MSWriterFile::getDataSize()
+    {
+      return itsFile.size();
+    }
 
 
-} // namespace RTCP
+  } // namespace RTCP
 } // namespace LOFAR
 
diff --git a/RTCP/Cobalt/OutputProc/src/MSWriterFile.h b/RTCP/Cobalt/OutputProc/src/MSWriterFile.h
index 0757e015e13a603a9ed6de0d4dbac7be5d40e7e7..5619cf75fa83bac21cb4f7e285df8343d6264d8a 100644
--- a/RTCP/Cobalt/OutputProc/src/MSWriterFile.h
+++ b/RTCP/Cobalt/OutputProc/src/MSWriterFile.h
@@ -31,26 +31,28 @@
 #include <OutputProc/FastFileStream.h>
 
 
-namespace LOFAR {
-namespace RTCP {
+namespace LOFAR
+{
+  namespace RTCP
+  {
 
 
-class MSWriterFile : public MSWriter
-{
-  public:
-    MSWriterFile(const string &msName);
-    ~MSWriterFile();
+    class MSWriterFile : public MSWriter
+    {
+    public:
+      MSWriterFile(const string &msName);
+      ~MSWriterFile();
 
-    virtual void write(StreamableData *data);
+      virtual void write(StreamableData *data);
 
-    virtual size_t getDataSize();
+      virtual size_t getDataSize();
 
-  protected:
-    FastFileStream	 itsFile;
-};
+    protected:
+      FastFileStream itsFile;
+    };
 
 
-}
+  }
 }
 
 #endif
diff --git a/RTCP/Cobalt/OutputProc/src/MSWriterNull.cc b/RTCP/Cobalt/OutputProc/src/MSWriterNull.cc
index 074d6d05bc0338eb8b2dfea76d2907e321edf826..245b4a31d419e150a567af59dd14488deae5610e 100644
--- a/RTCP/Cobalt/OutputProc/src/MSWriterNull.cc
+++ b/RTCP/Cobalt/OutputProc/src/MSWriterNull.cc
@@ -25,25 +25,27 @@
 #include <OutputProc/MSWriterNull.h>
 
 
-namespace LOFAR {
-namespace RTCP {
+namespace LOFAR
+{
+  namespace RTCP
+  {
 
 
-MSWriterNull::MSWriterNull ()
-{
-}
+    MSWriterNull::MSWriterNull ()
+    {
+    }
 
 
-MSWriterNull::~MSWriterNull()
-{
-}
+    MSWriterNull::~MSWriterNull()
+    {
+    }
 
 
-void MSWriterNull::write(StreamableData *)
-{
-}
+    void MSWriterNull::write(StreamableData *)
+    {
+    }
 
 
-} // namespace RTCP
+  } // namespace RTCP
 } // namespace LOFAR
 
diff --git a/RTCP/Cobalt/OutputProc/src/MSWriterNull.h b/RTCP/Cobalt/OutputProc/src/MSWriterNull.h
index c1d6e5947970d5f96f7d32ec179666518a381c48..8ee7c69db4e8f2b2c42c757d1f19ff610fb02b4b 100644
--- a/RTCP/Cobalt/OutputProc/src/MSWriterNull.h
+++ b/RTCP/Cobalt/OutputProc/src/MSWriterNull.h
@@ -30,21 +30,23 @@
 #include <OutputProc/MSWriter.h>
 
 
-namespace LOFAR {
-namespace RTCP {
+namespace LOFAR
+{
+  namespace RTCP
+  {
 
 
-class MSWriterNull : public MSWriter
-{
-  public:
-		 MSWriterNull();
-		 ~MSWriterNull();
+    class MSWriterNull : public MSWriter
+    {
+    public:
+      MSWriterNull();
+      ~MSWriterNull();
 
-    virtual void write(StreamableData *);
-};
+      virtual void write(StreamableData *);
+    };
 
 
-}
+  }
 }
 
 #endif
diff --git a/RTCP/Cobalt/OutputProc/src/MeasurementSetFormat.cc b/RTCP/Cobalt/OutputProc/src/MeasurementSetFormat.cc
index d8e71c2cc986585d72a778e76bd8c6d131e524b3..ee7561adc827179e20d3f4c166b3d97e11e7173f 100644
--- a/RTCP/Cobalt/OutputProc/src/MeasurementSetFormat.cc
+++ b/RTCP/Cobalt/OutputProc/src/MeasurementSetFormat.cc
@@ -1,4 +1,4 @@
-//#  MeasurementSetFormat.cc: Creates required infrastructure for 
+//#  MeasurementSetFormat.cc: Creates required infrastructure for
 //#  a LofarStMan MeasurementSet.
 //#
 //#  Copyright (C) 2009
@@ -62,511 +62,514 @@
 
 using namespace casa;
 
-namespace LOFAR { 
-namespace RTCP {
+namespace LOFAR
+{
+  namespace RTCP
+  {
 
 
-Mutex MeasurementSetFormat::sharedMutex;
+    Mutex MeasurementSetFormat::sharedMutex;
 
 
-// unix time to mjd time (in seconds instead of days)
-static double toMJDs( double time )
-{
-  // 40587 modify Julian day number = 00:00:00 January 1, 1970, GMT
-  return 40587.0 * 24 * 60 * 60 + time;
-}
-
-
-MeasurementSetFormat::MeasurementSetFormat(const Parset &ps, unsigned alignment)
-:
-  itsPS(ps),
-  stationNames(itsPS.mergedStationNames()),
-  antPos(itsPS.positions()),
-  itsNrAnt(stationNames.size()),
-  itsMS(0), 
-  itsAlignment(alignment)
-{
-  if (itsPS.nrTabStations() > 0) { 
-    ASSERTSTR(antPos.size() == 3 * itsPS.nrTabStations(),
-	      antPos.size() << " == " << 3 * itsPS.nrTabStations());
-  } else {
-    ASSERTSTR(antPos.size() == 3 * itsPS.nrStations(),
-	      antPos.size() << " == " << 3 * itsPS.nrStations());
-  }
-
-  itsStartTime = toMJDs(itsPS.startTime());
-
-  itsTimeStep = itsPS.IONintegrationTime();
-  itsNrTimes = itsPS.nrCorrelatedBlocks();
-}
-
-  
-MeasurementSetFormat::~MeasurementSetFormat()  
-{
-}
+    // unix time to mjd time (in seconds instead of days)
+    static double toMJDs( double time )
+    {
+      // 40587 modify Julian day number = 00:00:00 January 1, 1970, GMT
+      return 40587.0 * 24 * 60 * 60 + time;
+    }
 
 
-void MeasurementSetFormat::addSubband(const string MSname, unsigned subband, bool isBigEndian)
-{
-  ScopedLock scopedLock(sharedMutex);
+    MeasurementSetFormat::MeasurementSetFormat(const Parset &ps, unsigned alignment)
+      :
+      itsPS(ps),
+      stationNames(itsPS.mergedStationNames()),
+      antPos(itsPS.positions()),
+      itsNrAnt(stationNames.size()),
+      itsMS(0),
+      itsAlignment(alignment)
+    {
+      if (itsPS.nrTabStations() > 0) {
+        ASSERTSTR(antPos.size() == 3 * itsPS.nrTabStations(),
+                  antPos.size() << " == " << 3 * itsPS.nrTabStations());
+      } else {
+        ASSERTSTR(antPos.size() == 3 * itsPS.nrStations(),
+                  antPos.size() << " == " << 3 * itsPS.nrStations());
+      }
 
-  /// First create a valid MeasurementSet with all required
-  /// tables. Note that the MS object is destroyed immediately.
-  createMSTables(MSname, subband);
-  /// Next make a metafile which describes the raw datafile we're
-  /// going to write
-  createMSMetaFile(MSname, subband, isBigEndian);
-}
+      itsStartTime = toMJDs(itsPS.startTime());
 
+      itsTimeStep = itsPS.IONintegrationTime();
+      itsNrTimes = itsPS.nrCorrelatedBlocks();
+    }
 
-void MeasurementSetFormat::createMSTables(const string &MSname, unsigned subband)
-{
-  try {
-    TableDesc td = MS::requiredTableDesc();
-    MS::addColumnToDesc(td, MS::DATA, 2);
-    MS::addColumnToDesc(td, MS::WEIGHT_SPECTRUM, 2);
-    // Set the reference frame of UVW to J2000.
-    // Note it must be done here, because the UVW column in the MS is readonly
-    // (because LofarStMan is used).
+
+    MeasurementSetFormat::~MeasurementSetFormat()
     {
-      ColumnDesc &col(td.rwColumnDesc("UVW"));
-      TableRecord rec = col.keywordSet().asRecord("MEASINFO");
-      rec.define("Ref", "J2000");
-      col.rwKeywordSet().defineRecord("MEASINFO", rec);
     }
 
-    SetupNewTable newtab(MSname, td, Table::New);
-    LofarStMan lofarstman;
-    newtab.bindAll(lofarstman);
 
-    itsMS = new MSLofar(newtab);
-    itsMS->createDefaultSubtables(Table::New);
+    void MeasurementSetFormat::addSubband(const string MSname, unsigned subband, bool isBigEndian)
+    {
+      ScopedLock scopedLock(sharedMutex);
+
+      /// First create a valid MeasurementSet with all required
+      /// tables. Note that the MS object is destroyed immediately.
+      createMSTables(MSname, subband);
+      /// Next make a metafile which describes the raw datafile we're
+      /// going to write
+      createMSMetaFile(MSname, subband, isBigEndian);
+    }
 
-    Block<MPosition> antMPos(itsNrAnt);
 
-    try {
-      for (unsigned i = 0; i < itsNrAnt; i ++) {
-	antMPos[i] = MPosition(MVPosition(antPos[3 * i], 
-					  antPos[3 * i + 1], 
-					  antPos[3 * i + 2]),
-			       MPosition::ITRF);
+    void MeasurementSetFormat::createMSTables(const string &MSname, unsigned subband)
+    {
+      try {
+        TableDesc td = MS::requiredTableDesc();
+        MS::addColumnToDesc(td, MS::DATA, 2);
+        MS::addColumnToDesc(td, MS::WEIGHT_SPECTRUM, 2);
+        // Set the reference frame of UVW to J2000.
+        // Note it must be done here, because the UVW column in the MS is readonly
+        // (because LofarStMan is used).
+        {
+          ColumnDesc &col(td.rwColumnDesc("UVW"));
+          TableRecord rec = col.keywordSet().asRecord("MEASINFO");
+          rec.define("Ref", "J2000");
+          col.rwKeywordSet().defineRecord("MEASINFO", rec);
+        }
+
+        SetupNewTable newtab(MSname, td, Table::New);
+        LofarStMan lofarstman;
+        newtab.bindAll(lofarstman);
+
+        itsMS = new MSLofar(newtab);
+        itsMS->createDefaultSubtables(Table::New);
+
+        Block<MPosition> antMPos(itsNrAnt);
+
+        try {
+          for (unsigned i = 0; i < itsNrAnt; i++) {
+            antMPos[i] = MPosition(MVPosition(antPos[3 * i],
+                                              antPos[3 * i + 1],
+                                              antPos[3 * i + 2]),
+                                   MPosition::ITRF);
+          }
+        } catch (AipsError &ex) {
+          LOG_FATAL_STR("AipsError: " << ex.what());
+        }
+
+        // Get subarray id (formerly known as beam).
+        const vector<unsigned> subbandToSAPmapping = itsPS.subbandToSAPmapping();
+        int subarray = subbandToSAPmapping[subband];
+
+        fillAntenna(antMPos);
+        fillFeed();
+        fillField(subarray);
+        fillPola();
+        fillDataDesc();
+        fillSpecWindow(subband);
+        fillObs(subarray);
+        fillHistory();
+
+        try {
+          // Fill the tables containing the beam info.
+          BeamTables::fill(*itsMS,
+                           itsPS.antennaSet(),
+                           itsPS.AntennaSetsConf(),
+                           itsPS.AntennaFieldsDir(),
+                           itsPS.HBADeltasDir());
+        } catch (LOFAR::AssertError &ex) {
+          LOG_WARN_STR("Ignoring exception from BeamTables::fill(): " << ex.what());
+        }
+      } catch (AipsError &ex) {
+        THROW(StorageException, "AIPS/CASA error: " << ex.getMesg());
       }
-    } catch (AipsError &ex) {
-      LOG_FATAL_STR("AipsError: " << ex.what());
-    }
 
-    // Get subarray id (formerly known as beam).
-    const vector<unsigned> subbandToSAPmapping = itsPS.subbandToSAPmapping();
-    int subarray = subbandToSAPmapping[subband]; 
-
-    fillAntenna(antMPos);
-    fillFeed();
-    fillField(subarray);
-    fillPola();
-    fillDataDesc();
-    fillSpecWindow(subband);
-    fillObs(subarray);
-    fillHistory();
-
-    try {
-      // Fill the tables containing the beam info.
-      BeamTables::fill(*itsMS,
-		       itsPS.antennaSet(),
-                       itsPS.AntennaSetsConf(),
-                       itsPS.AntennaFieldsDir(),
-                       itsPS.HBADeltasDir());
-    } catch (LOFAR::AssertError &ex) {
-      LOG_WARN_STR("Ignoring exception from BeamTables::fill(): " << ex.what());
+      // Flush the MS to make sure all tables are written
+      itsMS->flush();
+      // Delete the MS object, since we don't need it anymore
     }
-  } catch (AipsError &ex) {
-    THROW(StorageException, "AIPS/CASA error: " << ex.getMesg());
-  }
 
-  // Flush the MS to make sure all tables are written
-  itsMS->flush();
-  // Delete the MS object, since we don't need it anymore
-}
 
+    void MeasurementSetFormat::fillAntenna(const Block<MPosition>& antMPos)
+    {
+      // Determine constants for the ANTENNA subtable.
+      casa::Vector<Double> antOffset(3);
+      antOffset = 0;
+      casa::Vector<Double> phaseRef(3);
+
+      // Fill the ANTENNA subtable.
+      MSLofarAntenna msant = itsMS->antenna();
+      MSLofarAntennaColumns msantCol(msant);
+      msant.addRow (itsNrAnt);
+
+      for (unsigned i = 0; i < itsNrAnt; i++) {
+        msantCol.name().put(i, stationNames[i]);
+        msantCol.stationId().put(i, 0);
+        msantCol.station().put(i, "LOFAR");
+        msantCol.type().put(i, "GROUND-BASED");
+        msantCol.mount().put(i, "X-Y");
+        msantCol.positionMeas().put(i, antMPos[i]);
+        msantCol.offset().put(i, antOffset);
+        msantCol.dishDiameter().put(i, 0);
+        vector<double> psPhaseRef =
+          itsPS.getDoubleVector("PIC.Core." + stationNames[i] + ".phaseCenter");
+        ASSERTSTR(psPhaseRef.size() == 3,
+                  "phaseCenter in parset of station " << stationNames[i]);
+        std::copy(psPhaseRef.begin(), psPhaseRef.end(), phaseRef.begin());
+        msantCol.phaseReference().put(i, phaseRef);
+        msantCol.flagRow().put(i, False);
+      }
+
+      msant.flush();
+    }
 
-void MeasurementSetFormat::fillAntenna(const Block<MPosition>& antMPos)
-{
-  // Determine constants for the ANTENNA subtable.
-  casa::Vector<Double> antOffset(3);
-  antOffset = 0;
-  casa::Vector<Double> phaseRef(3);
-
-  // Fill the ANTENNA subtable.
-  MSLofarAntenna msant = itsMS->antenna();
-  MSLofarAntennaColumns msantCol(msant);
-  msant.addRow (itsNrAnt);
-      
-  for (unsigned i = 0; i < itsNrAnt; i ++) {
-    msantCol.name().put(i, stationNames[i]);
-    msantCol.stationId().put(i, 0);
-    msantCol.station().put(i, "LOFAR");
-    msantCol.type().put(i, "GROUND-BASED");
-    msantCol.mount().put(i, "X-Y");
-    msantCol.positionMeas().put(i, antMPos[i]);
-    msantCol.offset().put(i, antOffset);
-    msantCol.dishDiameter().put(i, 0);
-    vector<double> psPhaseRef =
-      itsPS.getDoubleVector("PIC.Core."+stationNames[i]+".phaseCenter");
-    ASSERTSTR(psPhaseRef.size() == 3,
-	      "phaseCenter in parset of station " << stationNames[i]);
-    std::copy(psPhaseRef.begin(), psPhaseRef.end(), phaseRef.begin());
-    msantCol.phaseReference().put(i, phaseRef);
-    msantCol.flagRow().put(i, False);
-  }
-
-  msant.flush();
-}
-
-
-void MeasurementSetFormat::fillFeed()
-{
-  // Determine constants for the FEED subtable.
-  unsigned nRec = 2;
-  casa::Matrix<Double> feedOffset(2,nRec);
-  feedOffset = 0;
-  casa::Matrix<Complex> feedResponse(nRec,nRec);
-  feedResponse = Complex(0.0,0.0);
-
-  for (unsigned rec = 0; rec < nRec; rec ++)
-    feedResponse(rec,rec) = Complex(1.0, 0.0);
-
-  casa::Vector<String> feedType(nRec);
-  feedType(0) = "X";
-  feedType(1) = "Y";
-  casa::Vector<Double> feedPos(3);
-  feedPos = 0.0;
-  casa::Vector<Double> feedAngle(nRec);
-  feedAngle = -C::pi_4;                      // 0 for parallel dipoles
-
-  // Fill the FEED subtable.
-  MSFeed msfeed = itsMS->feed();
-  MSFeedColumns msfeedCol(msfeed);
-  msfeed.addRow(itsNrAnt);
-
-  for (unsigned i = 0; i < itsNrAnt; i ++) {
-    msfeedCol.antennaId().put(i, i);
-    msfeedCol.feedId().put(i, 0);
-    msfeedCol.spectralWindowId().put(i, -1);
-    msfeedCol.time().put(i, itsStartTime + itsNrTimes * itsTimeStep / 2.);
-    msfeedCol.interval().put(i, itsNrTimes * itsTimeStep);
-    msfeedCol.beamId().put(i, -1);
-    msfeedCol.beamOffset().put(i, feedOffset);
-    msfeedCol.polarizationType().put(i, feedType);
-    msfeedCol.polResponse().put(i, feedResponse);
-    msfeedCol.position().put(i, feedPos);
-    msfeedCol.receptorAngle().put(i, feedAngle);
-    msfeedCol.numReceptors().put(i, 2);
-  }
-
-  msfeed.flush();
-}
-
-
-void MeasurementSetFormat::fillField(unsigned subarray)
-{
 
-  // Beam direction
-  MVDirection radec(Quantity(itsPS.getBeamDirection(subarray)[0], "rad"), 
-		    Quantity(itsPS.getBeamDirection(subarray)[1], "rad"));
-  MDirection::Types beamDirectionType;
-  MDirection::getType(beamDirectionType, itsPS.getBeamDirectionType(subarray));
-  MDirection indir(radec, beamDirectionType);
-  casa::Vector<MDirection> outdir(1);
-  outdir(0) = indir;
-
-  // AnaBeam direction type
-  MDirection::Types anaBeamDirectionType;
-  if (itsPS.haveAnaBeam())
-    MDirection::getType(anaBeamDirectionType, itsPS.getAnaBeamDirectionType());
-
-  // Put the direction into the FIELD subtable.
-  MSLofarField msfield = itsMS->field();
-  MSLofarFieldColumns msfieldCol(msfield);
-
-  uInt rownr = msfield.nrow();
-  ASSERT(rownr == 0); // can only set directionType on first row, so only one field per MeasurementSet for now
-
-  if (itsPS.haveAnaBeam())
-    msfieldCol.setDirectionRef(beamDirectionType, anaBeamDirectionType);
-  else
-    msfieldCol.setDirectionRef(beamDirectionType);
-
-  msfield.addRow();
-  msfieldCol.name().put(rownr, "BEAM_" + String::toString(subarray));
-  msfieldCol.code().put(rownr, "");
-  msfieldCol.time().put(rownr, itsStartTime);
-  msfieldCol.numPoly().put(rownr, 0);
-
-  msfieldCol.delayDirMeasCol().put(rownr, outdir);
-  msfieldCol.phaseDirMeasCol().put(rownr, outdir);
-  msfieldCol.referenceDirMeasCol().put(rownr, outdir);
-
-  msfieldCol.sourceId().put(rownr, -1);
-  msfieldCol.flagRow().put(rownr, False);
-
-  if (itsPS.haveAnaBeam()) {
-    // Analog beam direction
-    MVDirection radec_AnaBeamDirection(Quantity(itsPS.getAnaBeamDirection()[0], "rad"),
-  				       Quantity(itsPS.getAnaBeamDirection()[1], "rad"));
-    MDirection anaBeamDirection(radec_AnaBeamDirection, anaBeamDirectionType);
-    msfieldCol.tileBeamDirMeasCol().put(rownr, anaBeamDirection);
-  } else {
-    msfieldCol.tileBeamDirMeasCol().put(rownr, outdir(0));
-  }
-}
-
-
-void MeasurementSetFormat::fillPola()
-{
-  const unsigned npolarizations = itsPS.nrCrossPolarisations();
-
-  MSPolarization mspol = itsMS->polarization();
-  MSPolarizationColumns mspolCol(mspol);
-  uInt rownr = mspol.nrow();
-  casa::Vector<Int> corrType(npolarizations);
-  corrType(0) = Stokes::XX;
-
-  if (npolarizations == 2) {
-    corrType(1) = Stokes::YY;
-  } else if (npolarizations == 4) {
-    corrType(1) = Stokes::XY;
-    corrType(2) = Stokes::YX;
-    corrType(3) = Stokes::YY;
-  }
-
-  casa::Matrix<Int> corrProduct(2, npolarizations);
-
-  for (unsigned i = 0; i < npolarizations; i++) {
-    corrProduct(0,i) = Stokes::receptor1(Stokes::type(corrType(i)));
-    corrProduct(1,i) = Stokes::receptor2(Stokes::type(corrType(i)));
-  }
-
-  // Fill the columns.
-  mspol.addRow();
-  mspolCol.numCorr().put(rownr, npolarizations);
-  mspolCol.corrType().put(rownr, corrType);
-  mspolCol.corrProduct().put(rownr, corrProduct);
-  mspolCol.flagRow().put(rownr, False);
-  mspol.flush();
-}
-
-
-void MeasurementSetFormat::fillDataDesc()
-{
-  MSDataDescription msdd = itsMS->dataDescription();
-  MSDataDescColumns msddCol(msdd);
-  
-  msdd.addRow();
+    void MeasurementSetFormat::fillFeed()
+    {
+      // Determine constants for the FEED subtable.
+      unsigned nRec = 2;
+      casa::Matrix<Double> feedOffset(2,nRec);
+      feedOffset = 0;
+      casa::Matrix<Complex> feedResponse(nRec,nRec);
+      feedResponse = Complex(0.0,0.0);
+
+      for (unsigned rec = 0; rec < nRec; rec++)
+        feedResponse(rec,rec) = Complex(1.0, 0.0);
+
+      casa::Vector<String> feedType(nRec);
+      feedType(0) = "X";
+      feedType(1) = "Y";
+      casa::Vector<Double> feedPos(3);
+      feedPos = 0.0;
+      casa::Vector<Double> feedAngle(nRec);
+      feedAngle = -C::pi_4;                  // 0 for parallel dipoles
+
+      // Fill the FEED subtable.
+      MSFeed msfeed = itsMS->feed();
+      MSFeedColumns msfeedCol(msfeed);
+      msfeed.addRow(itsNrAnt);
+
+      for (unsigned i = 0; i < itsNrAnt; i++) {
+        msfeedCol.antennaId().put(i, i);
+        msfeedCol.feedId().put(i, 0);
+        msfeedCol.spectralWindowId().put(i, -1);
+        msfeedCol.time().put(i, itsStartTime + itsNrTimes * itsTimeStep / 2.);
+        msfeedCol.interval().put(i, itsNrTimes * itsTimeStep);
+        msfeedCol.beamId().put(i, -1);
+        msfeedCol.beamOffset().put(i, feedOffset);
+        msfeedCol.polarizationType().put(i, feedType);
+        msfeedCol.polResponse().put(i, feedResponse);
+        msfeedCol.position().put(i, feedPos);
+        msfeedCol.receptorAngle().put(i, feedAngle);
+        msfeedCol.numReceptors().put(i, 2);
+      }
 
-  msddCol.spectralWindowId().put(0, 0);
-  msddCol.polarizationId().put(0, 0);
-  msddCol.flagRow().put(0, False);
+      msfeed.flush();
+    }
 
-  msdd.flush();
-}
 
+    void MeasurementSetFormat::fillField(unsigned subarray)
+    {
 
-void MeasurementSetFormat::fillObs(unsigned subarray)
-{
-  // Get start and end time.
-  casa::Vector<Double> timeRange(2);
-  timeRange[0] = itsStartTime;
-  timeRange[1] = itsStartTime + itsNrTimes*itsTimeStep;
-
-  // Get minimum and maximum frequency.
-  vector<double> freqs = itsPS.subbandToFrequencyMapping();
-  ASSERT( freqs.size() > 0 );
-
-  double minFreq = *std::min_element( freqs.begin(), freqs.end() );
-  double maxFreq = *std::max_element( freqs.begin(), freqs.end() );
-
-  size_t nchan = itsPS.nrChannelsPerSubband();
-
-  if( nchan > 1 ) {
-    // 2nd PPF shifts frequencies downwards by half a channel
-    double width = itsPS.channelWidth();
-
-    minFreq -= 0.5 * nchan * width;
-    maxFreq -= 0.5 * nchan * width;
-  }
-
-  casa::Vector<String> corrSchedule(1);
-  corrSchedule = "corrSchedule";
-
-  vector<string> targets(itsPS.getStringVector
-	 ("Observation.Beam[" + String::toString(subarray) + "].target"));
-  casa::Vector<String> ctargets(targets.size());
-
-  for (uint i = 0; i < targets.size(); ++ i)
-    ctargets[i] = targets[i];
-
-  vector<string> cois(itsPS.getStringVector("Observation.Campaign.CO_I"));
-  casa::Vector<String> ccois(cois.size());
-
-  for (uint i = 0; i < cois.size(); ++ i)
-    ccois[i] = cois[i];
-			  
-  double releaseDate = timeRange(1) + 365.25 * 24 * 60 * 60;
-
-  MSLofarObservation msobs = itsMS->observation();
-  MSLofarObservationColumns msobsCol(msobs);
-
-  msobs.addRow();
-
-  msobsCol.telescopeName().put(0, "LOFAR");
-  msobsCol.timeRange().put(0, timeRange);
-  msobsCol.observer().put(0, "unknown");
-  msobsCol.scheduleType().put(0, "LOFAR");
-  msobsCol.schedule().put(0, corrSchedule);
-  msobsCol.project().put(0, itsPS.getString("Observation.Campaign.name"));
-  msobsCol.releaseDate().put(0, releaseDate);
-  msobsCol.flagRow().put(0, False);
-  msobsCol.projectTitle().put(0, itsPS.getString("Observation.Campaign.title"));
-  msobsCol.projectPI().put(0,  itsPS.getString("Observation.Campaign.PI"));
-  msobsCol.projectCoI().put(0, ccois);
-  msobsCol.projectContact().put(0, itsPS.getString("Observation.Campaign.contact"));
-  msobsCol.observationId().put(0, String::toString(itsPS.observationID()));
-  msobsCol.observationStart().put(0, timeRange[0]);
-  msobsCol.observationEnd().put(0, timeRange[1]);
-  msobsCol.observationFrequencyMaxQuant().put(0, Quantity(maxFreq, "Hz"));
-  msobsCol.observationFrequencyMinQuant().put(0, Quantity(minFreq, "Hz"));
-  msobsCol.observationFrequencyCenterQuant().put(0, Quantity(0.5*(minFreq+maxFreq), "Hz"));
-  msobsCol.subArrayPointing().put(0, subarray);
-  msobsCol.nofBitsPerSample().put(0, itsPS.nrBitsPerSample());
-  msobsCol.antennaSet().put(0, itsPS.antennaSet());
-  msobsCol.filterSelection().put(0, itsPS.bandFilter());
-  msobsCol.clockFrequencyQuant().put(0, Quantity(itsPS.clockSpeed(), "Hz"));
-  msobsCol.target().put(0, ctargets);
-  msobsCol.systemVersion().put(0, Version::getInfo<OutputProcVersion>("OutputProc",
-								   "brief"));
-  msobsCol.pipelineName().put(0, String());
-  msobsCol.pipelineVersion().put(0, String());
-  msobsCol.filename().put(0, Path(itsMS->tableName()).baseName());
-  msobsCol.filetype().put(0, "uv");
-  msobsCol.filedate().put(0, timeRange[0]);
-
-  msobs.flush();
-}
-
-void MeasurementSetFormat::fillSpecWindow(unsigned subband) {
-  const double refFreq   = itsPS.subbandToFrequencyMapping()[subband];
-  const size_t nchan     = itsPS.nrChannelsPerSubband();
-  const double chanWidth = itsPS.channelWidth();
-  const double totalBW   = nchan * chanWidth;
-  const double channel0freq = itsPS.channel0Frequency(subband);
-
-  casa::Vector<double> chanWidths(nchan, chanWidth);
-  casa::Vector<double> chanFreqs(nchan);
-  indgen (chanFreqs, channel0freq, chanWidth);
-
-  MSSpectralWindow msspw = itsMS->spectralWindow();
-  MSSpWindowColumns msspwCol(msspw);
-    
-  msspw.addRow();
-
-  msspwCol.numChan().put(0, nchan);
-  msspwCol.name().put(0, "SB-" + String::toString(subband));
-  msspwCol.refFrequency().put(0, refFreq);
-  msspwCol.chanFreq().put(0, chanFreqs);
-
-  msspwCol.chanWidth().put(0, chanWidths);
-  msspwCol.measFreqRef().put(0, MFrequency::TOPO);
-  msspwCol.effectiveBW().put(0, chanWidths);
-  msspwCol.resolution().put(0, chanWidths);
-  msspwCol.totalBandwidth().put(0, totalBW);
-  msspwCol.netSideband().put(0, 0);
-  msspwCol.ifConvChain().put(0, 0);
-  msspwCol.freqGroup().put(0, 0);
-  msspwCol.freqGroupName().put(0, "");
-  msspwCol.flagRow().put(0, False);
-
-  msspw.flush();
-}
-
-
-void MeasurementSetFormat::fillHistory()
-{
-  Table histtab(itsMS->keywordSet().asTable("HISTORY")); 
-  histtab.reopenRW(); 
-  ScalarColumn<double> time        (histtab, "TIME"); 
-  ScalarColumn<int>    obsId       (histtab, "OBSERVATION_ID"); 
-  ScalarColumn<String> message     (histtab, "MESSAGE"); 
-  ScalarColumn<String> application (histtab, "APPLICATION"); 
-  ScalarColumn<String> priority    (histtab, "PRIORITY"); 
-  ScalarColumn<String> origin      (histtab, "ORIGIN"); 
-  ArrayColumn<String>  parms       (histtab, "APP_PARAMS"); 
-  ArrayColumn<String>  cli         (histtab, "CLI_COMMAND"); 
-
-  // Put all parset entries in a Vector<String>. 
-  casa::Vector<String> appvec; 
-  casa::Vector<String> clivec; 
-  appvec.resize (itsPS.size()); 
-  casa::Array<String>::contiter viter = appvec.cbegin(); 
-  for (ParameterSet::const_iterator iter = itsPS.begin(); iter != itsPS.end(); ++iter, ++viter) { 
-    *viter = iter->first + '=' + iter->second.get(); 
-  } 
-  uint rownr = histtab.nrow(); 
-  histtab.addRow(); 
-  time.put        (rownr, Time().modifiedJulianDay()*24.*3600.); 
-  obsId.put       (rownr, 0); 
-  message.put     (rownr, "parameters");
-  application.put (rownr, "OLAP"); 
-  priority.put    (rownr, "NORMAL"); 
-  origin.put      (rownr, Version::getInfo<OutputProcVersion>("OutputProc", "full")); 
-  parms.put       (rownr, appvec); 
-  cli.put         (rownr, clivec); 
-}
-
-
-void MeasurementSetFormat::createMSMetaFile(const string &MSname, unsigned subband, bool isBigEndian)
-{ 
-  (void) subband;
-
-  Block<Int> ant1(itsPS.nrBaselines());
-  Block<Int> ant2(itsPS.nrBaselines());
-  uInt inx = 0;
-  uInt nStations = itsPS.nrTabStations() > 0 ? itsPS.nrTabStations() : itsPS.nrStations();
-
-  for (uInt i = 0; i < nStations; ++ i) {
-    for (uInt j = 0; j <= i; ++ j) {
-
-      if (itsPS.getLofarStManVersion() == 1) {
-	ant1[inx] = j;
-	ant2[inx] = i;
-	++ inx;
+      // Beam direction
+      MVDirection radec(Quantity(itsPS.getBeamDirection(subarray)[0], "rad"),
+                        Quantity(itsPS.getBeamDirection(subarray)[1], "rad"));
+      MDirection::Types beamDirectionType;
+      MDirection::getType(beamDirectionType, itsPS.getBeamDirectionType(subarray));
+      MDirection indir(radec, beamDirectionType);
+      casa::Vector<MDirection> outdir(1);
+      outdir(0) = indir;
+
+      // AnaBeam direction type
+      MDirection::Types anaBeamDirectionType;
+      if (itsPS.haveAnaBeam())
+        MDirection::getType(anaBeamDirectionType, itsPS.getAnaBeamDirectionType());
+
+      // Put the direction into the FIELD subtable.
+      MSLofarField msfield = itsMS->field();
+      MSLofarFieldColumns msfieldCol(msfield);
+
+      uInt rownr = msfield.nrow();
+      ASSERT(rownr == 0); // can only set directionType on first row, so only one field per MeasurementSet for now
+
+      if (itsPS.haveAnaBeam())
+        msfieldCol.setDirectionRef(beamDirectionType, anaBeamDirectionType);
+      else
+        msfieldCol.setDirectionRef(beamDirectionType);
+
+      msfield.addRow();
+      msfieldCol.name().put(rownr, "BEAM_" + String::toString(subarray));
+      msfieldCol.code().put(rownr, "");
+      msfieldCol.time().put(rownr, itsStartTime);
+      msfieldCol.numPoly().put(rownr, 0);
+
+      msfieldCol.delayDirMeasCol().put(rownr, outdir);
+      msfieldCol.phaseDirMeasCol().put(rownr, outdir);
+      msfieldCol.referenceDirMeasCol().put(rownr, outdir);
+
+      msfieldCol.sourceId().put(rownr, -1);
+      msfieldCol.flagRow().put(rownr, False);
+
+      if (itsPS.haveAnaBeam()) {
+        // Analog beam direction
+        MVDirection radec_AnaBeamDirection(Quantity(itsPS.getAnaBeamDirection()[0], "rad"),
+                                           Quantity(itsPS.getAnaBeamDirection()[1], "rad"));
+        MDirection anaBeamDirection(radec_AnaBeamDirection, anaBeamDirectionType);
+        msfieldCol.tileBeamDirMeasCol().put(rownr, anaBeamDirection);
       } else {
-	// switch order of stations to fix write of complex conjugate data in V1
-	ant1[inx] = i;
-	ant2[inx] = j;
-	++ inx;
+        msfieldCol.tileBeamDirMeasCol().put(rownr, outdir(0));
+      }
+    }
+
+
+    void MeasurementSetFormat::fillPola()
+    {
+      const unsigned npolarizations = itsPS.nrCrossPolarisations();
+
+      MSPolarization mspol = itsMS->polarization();
+      MSPolarizationColumns mspolCol(mspol);
+      uInt rownr = mspol.nrow();
+      casa::Vector<Int> corrType(npolarizations);
+      corrType(0) = Stokes::XX;
+
+      if (npolarizations == 2) {
+        corrType(1) = Stokes::YY;
+      } else if (npolarizations == 4) {
+        corrType(1) = Stokes::XY;
+        corrType(2) = Stokes::YX;
+        corrType(3) = Stokes::YY;
+      }
+
+      casa::Matrix<Int> corrProduct(2, npolarizations);
+
+      for (unsigned i = 0; i < npolarizations; i++) {
+        corrProduct(0,i) = Stokes::receptor1(Stokes::type(corrType(i)));
+        corrProduct(1,i) = Stokes::receptor2(Stokes::type(corrType(i)));
+      }
+
+      // Fill the columns.
+      mspol.addRow();
+      mspolCol.numCorr().put(rownr, npolarizations);
+      mspolCol.corrType().put(rownr, corrType);
+      mspolCol.corrProduct().put(rownr, corrProduct);
+      mspolCol.flagRow().put(rownr, False);
+      mspol.flush();
+    }
+
+
+    void MeasurementSetFormat::fillDataDesc()
+    {
+      MSDataDescription msdd = itsMS->dataDescription();
+      MSDataDescColumns msddCol(msdd);
+
+      msdd.addRow();
+
+      msddCol.spectralWindowId().put(0, 0);
+      msddCol.polarizationId().put(0, 0);
+      msddCol.flagRow().put(0, False);
+
+      msdd.flush();
+    }
+
+
+    void MeasurementSetFormat::fillObs(unsigned subarray)
+    {
+      // Get start and end time.
+      casa::Vector<Double> timeRange(2);
+      timeRange[0] = itsStartTime;
+      timeRange[1] = itsStartTime + itsNrTimes * itsTimeStep;
+
+      // Get minimum and maximum frequency.
+      vector<double> freqs = itsPS.subbandToFrequencyMapping();
+      ASSERT( freqs.size() > 0 );
+
+      double minFreq = *std::min_element( freqs.begin(), freqs.end() );
+      double maxFreq = *std::max_element( freqs.begin(), freqs.end() );
+
+      size_t nchan = itsPS.nrChannelsPerSubband();
+
+      if( nchan > 1 ) {
+        // 2nd PPF shifts frequencies downwards by half a channel
+        double width = itsPS.channelWidth();
+
+        minFreq -= 0.5 * nchan * width;
+        maxFreq -= 0.5 * nchan * width;
+      }
+
+      casa::Vector<String> corrSchedule(1);
+      corrSchedule = "corrSchedule";
+
+      vector<string> targets(itsPS.getStringVector
+                               ("Observation.Beam[" + String::toString(subarray) + "].target"));
+      casa::Vector<String> ctargets(targets.size());
+
+      for (uint i = 0; i < targets.size(); ++i)
+        ctargets[i] = targets[i];
+
+      vector<string> cois(itsPS.getStringVector("Observation.Campaign.CO_I"));
+      casa::Vector<String> ccois(cois.size());
+
+      for (uint i = 0; i < cois.size(); ++i)
+        ccois[i] = cois[i];
+
+      double releaseDate = timeRange(1) + 365.25 * 24 * 60 * 60;
+
+      MSLofarObservation msobs = itsMS->observation();
+      MSLofarObservationColumns msobsCol(msobs);
+
+      msobs.addRow();
+
+      msobsCol.telescopeName().put(0, "LOFAR");
+      msobsCol.timeRange().put(0, timeRange);
+      msobsCol.observer().put(0, "unknown");
+      msobsCol.scheduleType().put(0, "LOFAR");
+      msobsCol.schedule().put(0, corrSchedule);
+      msobsCol.project().put(0, itsPS.getString("Observation.Campaign.name"));
+      msobsCol.releaseDate().put(0, releaseDate);
+      msobsCol.flagRow().put(0, False);
+      msobsCol.projectTitle().put(0, itsPS.getString("Observation.Campaign.title"));
+      msobsCol.projectPI().put(0,  itsPS.getString("Observation.Campaign.PI"));
+      msobsCol.projectCoI().put(0, ccois);
+      msobsCol.projectContact().put(0, itsPS.getString("Observation.Campaign.contact"));
+      msobsCol.observationId().put(0, String::toString(itsPS.observationID()));
+      msobsCol.observationStart().put(0, timeRange[0]);
+      msobsCol.observationEnd().put(0, timeRange[1]);
+      msobsCol.observationFrequencyMaxQuant().put(0, Quantity(maxFreq, "Hz"));
+      msobsCol.observationFrequencyMinQuant().put(0, Quantity(minFreq, "Hz"));
+      msobsCol.observationFrequencyCenterQuant().put(0, Quantity(0.5 * (minFreq + maxFreq), "Hz"));
+      msobsCol.subArrayPointing().put(0, subarray);
+      msobsCol.nofBitsPerSample().put(0, itsPS.nrBitsPerSample());
+      msobsCol.antennaSet().put(0, itsPS.antennaSet());
+      msobsCol.filterSelection().put(0, itsPS.bandFilter());
+      msobsCol.clockFrequencyQuant().put(0, Quantity(itsPS.clockSpeed(), "Hz"));
+      msobsCol.target().put(0, ctargets);
+      msobsCol.systemVersion().put(0, Version::getInfo<OutputProcVersion>("OutputProc",
+                                                                          "brief"));
+      msobsCol.pipelineName().put(0, String());
+      msobsCol.pipelineVersion().put(0, String());
+      msobsCol.filename().put(0, Path(itsMS->tableName()).baseName());
+      msobsCol.filetype().put(0, "uv");
+      msobsCol.filedate().put(0, timeRange[0]);
+
+      msobs.flush();
+    }
+
+    void MeasurementSetFormat::fillSpecWindow(unsigned subband)
+    {
+      const double refFreq = itsPS.subbandToFrequencyMapping()[subband];
+      const size_t nchan = itsPS.nrChannelsPerSubband();
+      const double chanWidth = itsPS.channelWidth();
+      const double totalBW = nchan * chanWidth;
+      const double channel0freq = itsPS.channel0Frequency(subband);
+
+      casa::Vector<double> chanWidths(nchan, chanWidth);
+      casa::Vector<double> chanFreqs(nchan);
+      indgen (chanFreqs, channel0freq, chanWidth);
+
+      MSSpectralWindow msspw = itsMS->spectralWindow();
+      MSSpWindowColumns msspwCol(msspw);
+
+      msspw.addRow();
+
+      msspwCol.numChan().put(0, nchan);
+      msspwCol.name().put(0, "SB-" + String::toString(subband));
+      msspwCol.refFrequency().put(0, refFreq);
+      msspwCol.chanFreq().put(0, chanFreqs);
+
+      msspwCol.chanWidth().put(0, chanWidths);
+      msspwCol.measFreqRef().put(0, MFrequency::TOPO);
+      msspwCol.effectiveBW().put(0, chanWidths);
+      msspwCol.resolution().put(0, chanWidths);
+      msspwCol.totalBandwidth().put(0, totalBW);
+      msspwCol.netSideband().put(0, 0);
+      msspwCol.ifConvChain().put(0, 0);
+      msspwCol.freqGroup().put(0, 0);
+      msspwCol.freqGroupName().put(0, "");
+      msspwCol.flagRow().put(0, False);
+
+      msspw.flush();
+    }
+
+
+    void MeasurementSetFormat::fillHistory()
+    {
+      Table histtab(itsMS->keywordSet().asTable("HISTORY"));
+      histtab.reopenRW();
+      ScalarColumn<double> time        (histtab, "TIME");
+      ScalarColumn<int>    obsId       (histtab, "OBSERVATION_ID");
+      ScalarColumn<String> message     (histtab, "MESSAGE");
+      ScalarColumn<String> application (histtab, "APPLICATION");
+      ScalarColumn<String> priority    (histtab, "PRIORITY");
+      ScalarColumn<String> origin      (histtab, "ORIGIN");
+      ArrayColumn<String>  parms       (histtab, "APP_PARAMS");
+      ArrayColumn<String>  cli         (histtab, "CLI_COMMAND");
+
+      // Put all parset entries in a Vector<String>.
+      casa::Vector<String> appvec;
+      casa::Vector<String> clivec;
+      appvec.resize (itsPS.size());
+      casa::Array<String>::contiter viter = appvec.cbegin();
+      for (ParameterSet::const_iterator iter = itsPS.begin(); iter != itsPS.end(); ++iter, ++viter) {
+        *viter = iter->first + '=' + iter->second.get();
       }
+      uint rownr = histtab.nrow();
+      histtab.addRow();
+      time.put        (rownr, Time().modifiedJulianDay() * 24. * 3600.);
+      obsId.put       (rownr, 0);
+      message.put     (rownr, "parameters");
+      application.put (rownr, "OLAP");
+      priority.put    (rownr, "NORMAL");
+      origin.put      (rownr, Version::getInfo<OutputProcVersion>("OutputProc", "full"));
+      parms.put       (rownr, appvec);
+      cli.put         (rownr, clivec);
     }
-  }
-
-  string filename = MSname + "/table.f0meta";
-  
-  AipsIO aio(filename, ByteIO::New);
-  aio.putstart("LofarStMan", itsPS.getLofarStManVersion()); 
-  aio << ant1 << ant2
-      << itsStartTime
-      << itsPS.IONintegrationTime()
-      << itsPS.nrChannelsPerSubband()
-      << itsPS.nrCrossPolarisations()
-      << static_cast<double>(itsPS.CNintegrationSteps() * itsPS.IONintegrationSteps())
-      << itsAlignment
-      << isBigEndian;
-  if (itsPS.getLofarStManVersion() > 1) {
-    uInt itsNrBytesPerNrValidSamples = 
-      itsPS.integrationSteps() < 256 ? 1 : itsPS.integrationSteps() < 65536 ? 2 : 4;
-    aio << itsNrBytesPerNrValidSamples;
-  }
-  aio.close();
-}
- 
-
-} // namespace RTCP
+
+
+    void MeasurementSetFormat::createMSMetaFile(const string &MSname, unsigned subband, bool isBigEndian)
+    {
+      (void) subband;
+
+      Block<Int> ant1(itsPS.nrBaselines());
+      Block<Int> ant2(itsPS.nrBaselines());
+      uInt inx = 0;
+      uInt nStations = itsPS.nrTabStations() > 0 ? itsPS.nrTabStations() : itsPS.nrStations();
+
+      for (uInt i = 0; i < nStations; ++i) {
+        for (uInt j = 0; j <= i; ++j) {
+
+          if (itsPS.getLofarStManVersion() == 1) {
+            ant1[inx] = j;
+            ant2[inx] = i;
+            ++inx;
+          } else {
+            // switch order of stations to fix write of complex conjugate data in V1
+            ant1[inx] = i;
+            ant2[inx] = j;
+            ++inx;
+          }
+        }
+      }
+
+      string filename = MSname + "/table.f0meta";
+
+      AipsIO aio(filename, ByteIO::New);
+      aio.putstart("LofarStMan", itsPS.getLofarStManVersion());
+      aio << ant1 << ant2
+          << itsStartTime
+          << itsPS.IONintegrationTime()
+          << itsPS.nrChannelsPerSubband()
+          << itsPS.nrCrossPolarisations()
+          << static_cast<double>(itsPS.CNintegrationSteps() * itsPS.IONintegrationSteps())
+          << itsAlignment
+          << isBigEndian;
+      if (itsPS.getLofarStManVersion() > 1) {
+        uInt itsNrBytesPerNrValidSamples =
+          itsPS.integrationSteps() < 256 ? 1 : itsPS.integrationSteps() < 65536 ? 2 : 4;
+        aio << itsNrBytesPerNrValidSamples;
+      }
+      aio.close();
+    }
+
+
+  } // namespace RTCP
 } // namepsace LOFAR
diff --git a/RTCP/Cobalt/OutputProc/src/MeasurementSetFormat.h b/RTCP/Cobalt/OutputProc/src/MeasurementSetFormat.h
index 0b5753d7538d2e4b577c7f758abc997166ead9c7..63375b545ef65a78482ba6eacc8f111fdc2f5f91 100644
--- a/RTCP/Cobalt/OutputProc/src/MeasurementSetFormat.h
+++ b/RTCP/Cobalt/OutputProc/src/MeasurementSetFormat.h
@@ -26,57 +26,60 @@ namespace casa
 {
   class TableDesc;
   class MPosition;
-  template<class T> class Block;
+  template<class T>
+  class Block;
 }
 
 
-namespace LOFAR {
+namespace LOFAR
+{
   //# Forward Declarations
   class MSLofar;
 
-namespace RTCP {
+  namespace RTCP
+  {
 
-class MeasurementSetFormat : public Format
-{
-  public:
-	    MeasurementSetFormat(const Parset &, uint32 alignment = 1);
-    virtual ~MeasurementSetFormat();
+    class MeasurementSetFormat : public Format
+    {
+    public:
+      MeasurementSetFormat(const Parset &, uint32 alignment = 1);
+      virtual ~MeasurementSetFormat();
 
-    virtual void addSubband(const string MSname, unsigned subband, bool isBigEndian);
+      virtual void addSubband(const string MSname, unsigned subband, bool isBigEndian);
 
-    // casacore/measurementset mutex
-    static Mutex sharedMutex;
+      // casacore/measurementset mutex
+      static Mutex sharedMutex;
 
-  private:
-    const Parset &itsPS;
+    private:
+      const Parset &itsPS;
 
-    const vector<string> stationNames;
-    const vector<double> antPos;
+      const vector<string> stationNames;
+      const vector<double> antPos;
 
-    const unsigned itsNrAnt;
-    uint32 itsNrTimes;
+      const unsigned itsNrAnt;
+      uint32 itsNrTimes;
 
-    double itsStartTime;
-    double itsTimeStep;
+      double itsStartTime;
+      double itsTimeStep;
 
 
-    SmartPtr<MSLofar> itsMS;
+      SmartPtr<MSLofar> itsMS;
 
-    const uint32 itsAlignment;
+      const uint32 itsAlignment;
 
-    void createMSTables(const string &MSname, unsigned subband);
-    void createMSMetaFile(const string &MSname, unsigned subband, bool isBigEndian);
+      void createMSTables(const string &MSname, unsigned subband);
+      void createMSMetaFile(const string &MSname, unsigned subband, bool isBigEndian);
 
-    void fillFeed();
-    void fillAntenna(const casa::Block<casa::MPosition>& antMPos);
-    void fillField(unsigned subarray);
-    void fillPola();
-    void fillDataDesc();
-    void fillSpecWindow(unsigned subband);
-    void fillObs(unsigned subarray);
-    void fillHistory();
-};
+      void fillFeed();
+      void fillAntenna(const casa::Block<casa::MPosition>& antMPos);
+      void fillField(unsigned subarray);
+      void fillPola();
+      void fillDataDesc();
+      void fillSpecWindow(unsigned subband);
+      void fillObs(unsigned subarray);
+      void fillHistory();
+    };
 
-} //RTCP
+  } //RTCP
 } //LOFAR
 #endif // LOFAR_STORAGEFORMAT_H
diff --git a/RTCP/Cobalt/OutputProc/src/OutputThread.cc b/RTCP/Cobalt/OutputProc/src/OutputThread.cc
index 09e9d93ed84ec010195f0e38417d73026f1806d3..b975c480518c3b4e3ec1d00a8f93840273d69b10 100644
--- a/RTCP/Cobalt/OutputProc/src/OutputThread.cc
+++ b/RTCP/Cobalt/OutputProc/src/OutputThread.cc
@@ -45,266 +45,268 @@
 #endif
 
 
-namespace LOFAR {
-namespace RTCP {
+namespace LOFAR
+{
+  namespace RTCP
+  {
+
+    static Mutex makeDirMutex;
+    static Mutex casacoreMutex;
+
+    using namespace std;
+
+    static void makeDir(const string &dirname, const string &logPrefix)
+    {
+      ScopedLock scopedLock(makeDirMutex);
+      struct stat s;
+
+      if (stat(dirname.c_str(), &s) == 0) {
+        // path already exists
+        if ((s.st_mode & S_IFMT) != S_IFDIR) {
+          LOG_WARN_STR(logPrefix << "Not a directory: " << dirname);
+        }
+      } else if (errno == ENOENT) {
+        // create directory
+        LOG_DEBUG_STR(logPrefix << "Creating directory " << dirname);
+
+        if (mkdir(dirname.c_str(), 0777) != 0 && errno != EEXIST) {
+          unsigned savedErrno = errno; // first argument below clears errno
+          throw SystemCallException(string("mkdir ") + dirname, savedErrno, THROW_ARGS);
+        }
+      } else {
+        // something else went wrong
+        unsigned savedErrno = errno; // first argument below clears errno
+        throw SystemCallException(string("stat ") + dirname, savedErrno, THROW_ARGS);
+      }
+    }
 
-static Mutex makeDirMutex;
-static Mutex casacoreMutex;
 
-using namespace std;
+    /* create a directory as well as all its parent directories */
+    static void recursiveMakeDir(const string &dirname, const string &logPrefix)
+    {
+      using namespace boost;
 
-static void makeDir(const string &dirname, const string &logPrefix)
-{
-  ScopedLock  scopedLock(makeDirMutex);
-  struct stat s;
+      string curdir;
+      vector<string> splitName;
 
-  if (stat(dirname.c_str(), &s) == 0) {
-    // path already exists
-    if ((s.st_mode & S_IFMT) != S_IFDIR) {
-      LOG_WARN_STR(logPrefix << "Not a directory: " << dirname);
-    }
-  } else if (errno == ENOENT) {
-    // create directory
-    LOG_DEBUG_STR(logPrefix << "Creating directory " << dirname);
+      split(splitName, dirname, is_any_of("/"));
 
-    if (mkdir(dirname.c_str(), 0777) != 0 && errno != EEXIST) {
-      unsigned savedErrno = errno; // first argument below clears errno
-      throw SystemCallException(string("mkdir ") + dirname, savedErrno, THROW_ARGS);
+      for (unsigned i = 0; i < splitName.size(); i++) {
+        curdir += splitName[i] + '/';
+        makeDir(curdir, logPrefix);
+      }
     }
-  } else {
-    // something else went wrong
-    unsigned savedErrno = errno; // first argument below clears errno
-    throw SystemCallException(string("stat ") + dirname, savedErrno, THROW_ARGS);
-  }
-}
 
 
-/* create a directory as well as all its parent directories */
-static void recursiveMakeDir(const string &dirname, const string &logPrefix)
-{
-  using namespace boost;
-  
-  string         curdir;
-  vector<string> splitName;
-  
-  split(splitName, dirname, is_any_of("/"));
-  
-  for (unsigned i = 0; i < splitName.size(); i++) {
-    curdir += splitName[i] + '/';
-    makeDir(curdir, logPrefix);
-  }
-}
-
-
-OutputThread::OutputThread(const Parset &parset, OutputType outputType, unsigned streamNr, Queue<SmartPtr<StreamableData> > &freeQueue, Queue<SmartPtr<StreamableData> > &receiveQueue, const std::string &logPrefix, bool isBigEndian, const std::string &targetDirectory)
-:
-  itsParset(parset),
-  itsOutputType(outputType),
-  itsStreamNr(streamNr),
-  itsIsBigEndian(isBigEndian),
-  itsLogPrefix(logPrefix + "[OutputThread] "),
-  itsCheckFakeData(parset.checkFakeInputData()),
-  itsTargetDirectory(targetDirectory),
-  itsFreeQueue(freeQueue),
-  itsReceiveQueue(receiveQueue),
-  itsBlocksWritten(0),
-  itsBlocksDropped(0),
-  itsNrExpectedBlocks(0),
-  itsNextSequenceNumber(0)
-{
-}
-
-
-void OutputThread::start()
-{
-  itsThread = new Thread(this, &OutputThread::mainLoop, itsLogPrefix);
-}
+    OutputThread::OutputThread(const Parset &parset, OutputType outputType, unsigned streamNr, Queue<SmartPtr<StreamableData> > &freeQueue, Queue<SmartPtr<StreamableData> > &receiveQueue, const std::string &logPrefix, bool isBigEndian, const std::string &targetDirectory)
+      :
+      itsParset(parset),
+      itsOutputType(outputType),
+      itsStreamNr(streamNr),
+      itsIsBigEndian(isBigEndian),
+      itsLogPrefix(logPrefix + "[OutputThread] "),
+      itsCheckFakeData(parset.checkFakeInputData()),
+      itsTargetDirectory(targetDirectory),
+      itsFreeQueue(freeQueue),
+      itsReceiveQueue(receiveQueue),
+      itsBlocksWritten(0),
+      itsBlocksDropped(0),
+      itsNrExpectedBlocks(0),
+      itsNextSequenceNumber(0)
+    {
+    }
 
 
-void OutputThread::createMS()
-{
-  // even the HDF5 writer accesses casacore, to perform conversions
-  ScopedLock sl(casacoreMutex);
-  ScopedDelayCancellation dc; // don't cancel casacore calls
+    void OutputThread::start()
+    {
+      itsThread = new Thread(this, &OutputThread::mainLoop, itsLogPrefix);
+    }
 
-  std::string directoryName = itsTargetDirectory == "" ? itsParset.getDirectoryName(itsOutputType, itsStreamNr) : itsTargetDirectory;
-  std::string fileName	    = itsParset.getFileName(itsOutputType, itsStreamNr);
-  std::string path	    = directoryName + "/" + fileName;
 
-  recursiveMakeDir(directoryName, itsLogPrefix);
-  LOG_INFO_STR(itsLogPrefix << "Writing to " << path);
+    void OutputThread::createMS()
+    {
+      // even the HDF5 writer accesses casacore, to perform conversions
+      ScopedLock sl(casacoreMutex);
+      ScopedDelayCancellation dc; // don't cancel casacore calls
+
+      std::string directoryName = itsTargetDirectory == "" ? itsParset.getDirectoryName(itsOutputType, itsStreamNr) : itsTargetDirectory;
+      std::string fileName = itsParset.getFileName(itsOutputType, itsStreamNr);
+      std::string path = directoryName + "/" + fileName;
+
+      recursiveMakeDir(directoryName, itsLogPrefix);
+      LOG_INFO_STR(itsLogPrefix << "Writing to " << path);
+
+      try {
+        // HDF5 writer requested
+        switch (itsOutputType) {
+        case CORRELATED_DATA:
+          itsWriter = new MSWriterCorrelated(itsLogPrefix, path, itsParset, itsStreamNr, itsIsBigEndian);
+          break;
+
+        case BEAM_FORMED_DATA:
+          itsWriter = new MSWriterDAL<float,3>(path, itsParset, itsStreamNr, itsIsBigEndian);
+          break;
+
+        default:
+          itsWriter = new MSWriterFile(path);
+          break;
+        }
+      } catch (Exception &ex) {
+        LOG_ERROR_STR(itsLogPrefix << "Cannot open " << path << ": " << ex);
+        itsWriter = new MSWriterNull;
+      }
 
-  try {
-    // HDF5 writer requested
-    switch (itsOutputType) {
+      // log some core characteristics for CEPlogProcessor for feedback to MoM/LTA
+      switch (itsOutputType) {
       case CORRELATED_DATA:
-        itsWriter = new MSWriterCorrelated(itsLogPrefix, path, itsParset, itsStreamNr, itsIsBigEndian);
+        itsNrExpectedBlocks = itsParset.nrCorrelatedBlocks();
+
+        {
+          const vector<unsigned> subbands = itsParset.subbandList();
+          const vector<unsigned> SAPs = itsParset.subbandToSAPmapping();
+          const vector<double> frequencies = itsParset.subbandToFrequencyMapping();
+
+          LOG_INFO_STR(itsLogPrefix << "Characteristics: "
+                                    << "SAP " << SAPs[itsStreamNr]
+                                    << ", subband " << subbands[itsStreamNr]
+                                    << ", centralfreq " << setprecision(8) << frequencies[itsStreamNr] / 1e6 << " MHz"
+                                    << ", duration " << setprecision(8) << itsNrExpectedBlocks * itsParset.IONintegrationTime() << " s"
+                                    << ", integration " << setprecision(8) << itsParset.IONintegrationTime() << " s"
+                                    << ", channels " << itsParset.nrChannelsPerSubband()
+                                    << ", channelwidth " << setprecision(8) << itsParset.channelWidth() / 1e3 << " kHz"
+                       );
+        }
         break;
-
       case BEAM_FORMED_DATA:
-        itsWriter = new MSWriterDAL<float,3>(path, itsParset, itsStreamNr, itsIsBigEndian);
+        itsNrExpectedBlocks = itsParset.nrBeamFormedBlocks();
         break;
 
       default:
-        itsWriter = new MSWriterFile(path);
         break;
-    }
-  } catch (Exception &ex) {
-    LOG_ERROR_STR(itsLogPrefix << "Cannot open " << path << ": " << ex);
-    itsWriter = new MSWriterNull;
-  }
-
-  // log some core characteristics for CEPlogProcessor for feedback to MoM/LTA
-  switch (itsOutputType) {
-    case CORRELATED_DATA:
-      itsNrExpectedBlocks = itsParset.nrCorrelatedBlocks();
-
-      {
-        const vector<unsigned> subbands  = itsParset.subbandList();
-        const vector<unsigned> SAPs      = itsParset.subbandToSAPmapping();
-        const vector<double> frequencies = itsParset.subbandToFrequencyMapping();
-
-        LOG_INFO_STR(itsLogPrefix << "Characteristics: "
-            << "SAP "            << SAPs[itsStreamNr]
-            << ", subband "      << subbands[itsStreamNr]
-            << ", centralfreq "  << setprecision(8) << frequencies[itsStreamNr]/1e6 << " MHz"
-            << ", duration "     << setprecision(8) << itsNrExpectedBlocks * itsParset.IONintegrationTime() << " s"
-            << ", integration "  << setprecision(8) << itsParset.IONintegrationTime() << " s"
-            << ", channels "     << itsParset.nrChannelsPerSubband() 
-            << ", channelwidth " << setprecision(8) << itsParset.channelWidth()/1e3 << " kHz"
-        );
       }
-      break;
-    case BEAM_FORMED_DATA:
-      itsNrExpectedBlocks = itsParset.nrBeamFormedBlocks();
-      break;
+    }
 
-    default:
-      break;
-  }
-}
 
+    void OutputThread::checkForDroppedData(StreamableData *data)
+    {
+      // TODO: check for dropped data at end of observation
 
-void OutputThread::checkForDroppedData(StreamableData *data)
-{
-  // TODO: check for dropped data at end of observation
-  
-  unsigned droppedBlocks = data->sequenceNumber() - itsNextSequenceNumber;
+      unsigned droppedBlocks = data->sequenceNumber() - itsNextSequenceNumber;
 
-  if (droppedBlocks > 0) {
-    itsBlocksDropped += droppedBlocks;
+      if (droppedBlocks > 0) {
+        itsBlocksDropped += droppedBlocks;
 
-    LOG_WARN_STR(itsLogPrefix << "OutputThread dropped " << droppedBlocks << (droppedBlocks == 1 ? " block" : " blocks"));
-  }
+        LOG_WARN_STR(itsLogPrefix << "OutputThread dropped " << droppedBlocks << (droppedBlocks == 1 ? " block" : " blocks"));
+      }
 
-  itsNextSequenceNumber = data->sequenceNumber() + 1;
-  itsBlocksWritten ++;
-}
+      itsNextSequenceNumber = data->sequenceNumber() + 1;
+      itsBlocksWritten++;
+    }
 
 
-static Semaphore writeSemaphore(300);
+    static Semaphore writeSemaphore(300);
 
 
-void OutputThread::doWork()
-{
-  time_t prevlog = 0;
-
-  for (SmartPtr<StreamableData> data; (data = itsReceiveQueue.remove()) != 0; itsFreeQueue.append(data.release())) {
-    //NSTimer writeTimer("write data", false, false);
-
-    //writeTimer.start();
-    writeSemaphore.down();
-
-    try {
-      itsWriter->write(data);
-      checkForDroppedData(data);
-    } catch (SystemCallException &ex) {
-      LOG_WARN_STR(itsLogPrefix << "OutputThread caught non-fatal exception: " << ex.what());
-    } catch (...) {
-      writeSemaphore.up();
-      throw;
-    }
+    void OutputThread::doWork()
+    {
+      time_t prevlog = 0;
+
+      for (SmartPtr<StreamableData> data; (data = itsReceiveQueue.remove()) != 0; itsFreeQueue.append(data.release())) {
+        //NSTimer writeTimer("write data", false, false);
+
+        //writeTimer.start();
+        writeSemaphore.down();
+
+        try {
+          itsWriter->write(data);
+          checkForDroppedData(data);
+        } catch (SystemCallException &ex) {
+          LOG_WARN_STR(itsLogPrefix << "OutputThread caught non-fatal exception: " << ex.what());
+        } catch (...) {
+          writeSemaphore.up();
+          throw;
+        }
 
-    writeSemaphore.up();
-    //writeTimer.stop();
+        writeSemaphore.up();
+        //writeTimer.stop();
 
-    time_t now = time(0L);
+        time_t now = time(0L);
 
-    if (now > prevlog + 5) {
-      // print info every 5 seconds
-      LOG_INFO_STR(itsLogPrefix << "Written block with seqno = " << data->sequenceNumber() << ", " << itsBlocksWritten << " blocks written (" << itsWriter->percentageWritten() << "%), " << itsBlocksDropped << " blocks dropped");
+        if (now > prevlog + 5) {
+          // print info every 5 seconds
+          LOG_INFO_STR(itsLogPrefix << "Written block with seqno = " << data->sequenceNumber() << ", " << itsBlocksWritten << " blocks written (" << itsWriter->percentageWritten() << "%), " << itsBlocksDropped << " blocks dropped");
 
-      prevlog = now;
-    } else {
-      // print debug info for the other blocks
-      LOG_DEBUG_STR(itsLogPrefix << "Written block with seqno = " << data->sequenceNumber() << ", " << itsBlocksWritten << " blocks written (" << itsWriter->percentageWritten() << "%), " << itsBlocksDropped << " blocks dropped");
+          prevlog = now;
+        } else {
+          // print debug info for the other blocks
+          LOG_DEBUG_STR(itsLogPrefix << "Written block with seqno = " << data->sequenceNumber() << ", " << itsBlocksWritten << " blocks written (" << itsWriter->percentageWritten() << "%), " << itsBlocksDropped << " blocks dropped");
+        }
+      }
     }
-  }
-}
 
 
-void OutputThread::cleanUp()
-{
-  float dropPercent = itsBlocksWritten + itsBlocksDropped == 0 ? 0.0 : (100.0 * itsBlocksDropped) / (itsBlocksWritten + itsBlocksDropped);
+    void OutputThread::cleanUp()
+    {
+      float dropPercent = itsBlocksWritten + itsBlocksDropped == 0 ? 0.0 : (100.0 * itsBlocksDropped) / (itsBlocksWritten + itsBlocksDropped);
 
-  LOG_INFO_STR(itsLogPrefix << "Finished writing: " << itsBlocksWritten << " blocks written (" << itsWriter->percentageWritten() << "%), " << itsBlocksDropped << " blocks dropped: " << std::setprecision(3) << dropPercent << "% lost" );
+      LOG_INFO_STR(itsLogPrefix << "Finished writing: " << itsBlocksWritten << " blocks written (" << itsWriter->percentageWritten() << "%), " << itsBlocksDropped << " blocks dropped: " << std::setprecision(3) << dropPercent << "% lost" );
 
-  // log some final characteristics for CEPlogProcessor for feedback to MoM/LTA
-  ParameterSet feedbackLTA = itsWriter->configuration();
-  string prefix = "UNKNOWN";
+      // log some final characteristics for CEPlogProcessor for feedback to MoM/LTA
+      ParameterSet feedbackLTA = itsWriter->configuration();
+      string prefix = "UNKNOWN";
 
-  switch (itsOutputType) {
-    case CORRELATED_DATA:
-      prefix = formatString("Observation.DataProducts.Output_Correlated_[%u].", itsStreamNr);
-      break;
+      switch (itsOutputType) {
+      case CORRELATED_DATA:
+        prefix = formatString("Observation.DataProducts.Output_Correlated_[%u].", itsStreamNr);
+        break;
 
-    case BEAM_FORMED_DATA:
-      prefix = formatString("Observation.DataProducts.Output_Beamformed_[%u].", itsStreamNr);
-      break;
+      case BEAM_FORMED_DATA:
+        prefix = formatString("Observation.DataProducts.Output_Beamformed_[%u].", itsStreamNr);
+        break;
 
-    default:
-      break;
-  }
+      default:
+        break;
+      }
 
-  // For now, transport feedback parset through log lines
-  for (ParameterSet::const_iterator i = feedbackLTA.begin(); i != feedbackLTA.end(); ++i)
-    LOG_INFO_STR(itsLogPrefix << "LTA FEEDBACK: " << prefix << i->first << " = " << i->second);
-}
+      // For now, transport feedback parset through log lines
+      for (ParameterSet::const_iterator i = feedbackLTA.begin(); i != feedbackLTA.end(); ++i)
+        LOG_INFO_STR(itsLogPrefix << "LTA FEEDBACK: " << prefix << i->first << " = " << i->second);
+    }
 
 
-void OutputThread::augment( const FinalMetaData &finalMetaData )
-{
-  // wait for writer thread to finish, so we'll have an itsWriter
-  ASSERT(itsThread.get());
+    void OutputThread::augment( const FinalMetaData &finalMetaData )
+    {
+      // wait for writer thread to finish, so we'll have an itsWriter
+      ASSERT(itsThread.get());
 
-  itsThread = 0;
+      itsThread = 0;
 
-  // augment the data product
-  ASSERT(itsWriter.get());
+      // augment the data product
+      ASSERT(itsWriter.get());
 
-  itsWriter->augment(finalMetaData);
-}
+      itsWriter->augment(finalMetaData);
+    }
 
 
-void OutputThread::mainLoop()
-{
-  LOG_DEBUG_STR(itsLogPrefix << "OutputThread::mainLoop() entered");
+    void OutputThread::mainLoop()
+    {
+      LOG_DEBUG_STR(itsLogPrefix << "OutputThread::mainLoop() entered");
 
-  try {
-    createMS();
-    doWork();
+      try {
+        createMS();
+        doWork();
 #if defined HAVE_AIPSPP
-  } catch (casa::AipsError &ex) {
-    LOG_ERROR_STR(itsLogPrefix << "Caught AipsError: " << ex.what());
-    cleanUp();
+      } catch (casa::AipsError &ex) {
+        LOG_ERROR_STR(itsLogPrefix << "Caught AipsError: " << ex.what());
+        cleanUp();
 #endif
-  } catch (...) {
-    cleanUp(); // Of course, C++ does not need "finally" >:(
-    throw;
-  }
+      } catch (...) {
+        cleanUp(); // Of course, C++ does not need "finally" >:(
+        throw;
+      }
 
-  cleanUp();
-}
+      cleanUp();
+    }
 
-} // namespace RTCP
+  } // namespace RTCP
 } // namespace LOFAR
diff --git a/RTCP/Cobalt/OutputProc/src/OutputThread.h b/RTCP/Cobalt/OutputProc/src/OutputThread.h
index b23e7eae74066efe8b03ee8059860898cfe672aa..bc227746a14c467f1fe5a98aced89bc9a099d928 100644
--- a/RTCP/Cobalt/OutputProc/src/OutputThread.h
+++ b/RTCP/Cobalt/OutputProc/src/OutputThread.h
@@ -38,47 +38,49 @@
 #include <vector>
 
 
-namespace LOFAR {
-namespace RTCP {
+namespace LOFAR
+{
+  namespace RTCP
+  {
 
 
-class OutputThread
-{
-  public:
-				     OutputThread(const Parset &, OutputType, unsigned streamNr, Queue<SmartPtr<StreamableData> > &freeQueue, Queue<SmartPtr<StreamableData> > &receiveQueue, const std::string &logPrefix, bool isBigEndian, const std::string &targetDirectory = "");
+    class OutputThread
+    {
+    public:
+      OutputThread(const Parset &, OutputType, unsigned streamNr, Queue<SmartPtr<StreamableData> > &freeQueue, Queue<SmartPtr<StreamableData> > &receiveQueue, const std::string &logPrefix, bool isBigEndian, const std::string &targetDirectory = "");
 
-    void			     start();
+      void                             start();
 
-    // needed in createHeaders.cc
-    void           createMS();
+      // needed in createHeaders.cc
+      void           createMS();
 
-    void           augment(const FinalMetaData &finalMetaData);
+      void           augment(const FinalMetaData &finalMetaData);
 
-  private:
-    void			     checkForDroppedData(StreamableData *);
-    void			     doWork();
-    void			     cleanUp();
-    void			     mainLoop();
+    private:
+      void                             checkForDroppedData(StreamableData *);
+      void                             doWork();
+      void                             cleanUp();
+      void                             mainLoop();
 
-    const Parset		     &itsParset;
-    const OutputType		     itsOutputType;
-    const unsigned		     itsStreamNr;
-    const bool			     itsIsBigEndian;
-    const std::string		     itsLogPrefix;
-    const bool                       itsCheckFakeData;
-    const std::string                itsTargetDirectory;
+      const Parset                     &itsParset;
+      const OutputType itsOutputType;
+      const unsigned itsStreamNr;
+      const bool itsIsBigEndian;
+      const std::string itsLogPrefix;
+      const bool itsCheckFakeData;
+      const std::string itsTargetDirectory;
 
-    Queue<SmartPtr<StreamableData> > &itsFreeQueue, &itsReceiveQueue;
+      Queue<SmartPtr<StreamableData> > &itsFreeQueue, &itsReceiveQueue;
 
-    unsigned		 	     itsBlocksWritten, itsBlocksDropped;
-    unsigned           itsNrExpectedBlocks;
-    unsigned			     itsNextSequenceNumber;
-    SmartPtr<MSWriter>		     itsWriter;
-    SmartPtr<Thread>		     itsThread;
-};
+      unsigned itsBlocksWritten, itsBlocksDropped;
+      unsigned itsNrExpectedBlocks;
+      unsigned itsNextSequenceNumber;
+      SmartPtr<MSWriter>               itsWriter;
+      SmartPtr<Thread>                 itsThread;
+    };
 
 
-} // namespace RTCP
+  } // namespace RTCP
 } // namespace LOFAR
 
 #endif
diff --git a/RTCP/Cobalt/OutputProc/src/SubbandWriter.cc b/RTCP/Cobalt/OutputProc/src/SubbandWriter.cc
index 8889a38bfa995f0c386ade34505bebeea339d9c1..386a87fcd162d71cda94de73096c6d1c75a04072 100644
--- a/RTCP/Cobalt/OutputProc/src/SubbandWriter.cc
+++ b/RTCP/Cobalt/OutputProc/src/SubbandWriter.cc
@@ -26,33 +26,35 @@
 #include <OutputProc/SubbandWriter.h>
 
 
-namespace LOFAR {
-namespace RTCP {
+namespace LOFAR
+{
+  namespace RTCP
+  {
 
 
-SubbandWriter::SubbandWriter(const Parset &parset, OutputType outputType, unsigned streamNr, bool isBigEndian, const std::string &logPrefix)
-{
-  itsInputThread = new InputThread(parset, outputType, streamNr, itsFreeQueue, itsReceiveQueue, logPrefix);
-  itsInputThread->start();
-
-  try {
-    itsOutputThread = new OutputThread(parset, outputType, streamNr, itsFreeQueue, itsReceiveQueue, logPrefix, isBigEndian);
-    itsOutputThread->start();
-  } catch (...) {
-    itsInputThread->cancel();
-    throw;
-  }
-
-  for (unsigned i = 0; i < maxReceiveQueueSize; i ++)
-    itsFreeQueue.append(newStreamableData(parset, outputType, streamNr));
-    
-}
-
-void SubbandWriter::augment( const FinalMetaData &finalMetaData )
-{
-  itsOutputThread->augment(finalMetaData);
-}
+    SubbandWriter::SubbandWriter(const Parset &parset, OutputType outputType, unsigned streamNr, bool isBigEndian, const std::string &logPrefix)
+    {
+      itsInputThread = new InputThread(parset, outputType, streamNr, itsFreeQueue, itsReceiveQueue, logPrefix);
+      itsInputThread->start();
+
+      try {
+        itsOutputThread = new OutputThread(parset, outputType, streamNr, itsFreeQueue, itsReceiveQueue, logPrefix, isBigEndian);
+        itsOutputThread->start();
+      } catch (...) {
+        itsInputThread->cancel();
+        throw;
+      }
+
+      for (unsigned i = 0; i < maxReceiveQueueSize; i++)
+        itsFreeQueue.append(newStreamableData(parset, outputType, streamNr));
+
+    }
+
+    void SubbandWriter::augment( const FinalMetaData &finalMetaData )
+    {
+      itsOutputThread->augment(finalMetaData);
+    }
 
 
-} // namespace RTCP
+  } // namespace RTCP
 } // namespace LOFAR
diff --git a/RTCP/Cobalt/OutputProc/src/SubbandWriter.h b/RTCP/Cobalt/OutputProc/src/SubbandWriter.h
index fe23c229972f7f73b98b3dce8d5e6cc56adb3258..e7d7423a8949ea88b923bbf999fd9af727149a17 100644
--- a/RTCP/Cobalt/OutputProc/src/SubbandWriter.h
+++ b/RTCP/Cobalt/OutputProc/src/SubbandWriter.h
@@ -35,28 +35,30 @@
 #include <string>
 
 
-namespace LOFAR {
-namespace RTCP {
+namespace LOFAR
+{
+  namespace RTCP
+  {
 
 
-class SubbandWriter
-{
-  public:
-    SubbandWriter(const Parset &, OutputType, unsigned streamNr, bool isBigEndian, const std::string &logPrefix);
+    class SubbandWriter
+    {
+    public:
+      SubbandWriter(const Parset &, OutputType, unsigned streamNr, bool isBigEndian, const std::string &logPrefix);
 
-    void augment(const FinalMetaData &finalMetaData);
+      void augment(const FinalMetaData &finalMetaData);
 
-  private:
-    static const unsigned	     maxReceiveQueueSize = 30;
+    private:
+      static const unsigned maxReceiveQueueSize = 30;
 
-    Queue<SmartPtr<StreamableData> > itsFreeQueue, itsReceiveQueue;
+      Queue<SmartPtr<StreamableData> > itsFreeQueue, itsReceiveQueue;
 
-    SmartPtr<InputThread>	     itsInputThread;
-    SmartPtr<OutputThread>	     itsOutputThread;
-};
+      SmartPtr<InputThread>            itsInputThread;
+      SmartPtr<OutputThread>           itsOutputThread;
+    };
 
 
-} // namespace RTCP
+  } // namespace RTCP
 } // namespace LOFAR
 
 #endif
diff --git a/RTCP/Cobalt/OutputProc/src/TBB_StaticMapping.cc b/RTCP/Cobalt/OutputProc/src/TBB_StaticMapping.cc
index 2f380330b57ff98211cb9b7fb23c8f25965812e6..4b7ccdea0cac6164dbd852f07492c459e5080111 100644
--- a/RTCP/Cobalt/OutputProc/src/TBB_StaticMapping.cc
+++ b/RTCP/Cobalt/OutputProc/src/TBB_StaticMapping.cc
@@ -30,77 +30,87 @@
 
 using namespace std;
 
-namespace LOFAR {
-
-TBB_StaticMapping::TBB_StaticMapping() {
-}
-
-TBB_StaticMapping::TBB_StaticMapping(const string& filename) {
-	parseStaticMapping(filename);
-}
-
-void TBB_StaticMapping::parseStaticMapping(const string& filename) {
-	char buf[parseBufSize];
-	const string ws(" \t");
-	ifstream ifile(filename.c_str());
-	if (!ifile) {
-		throw IOException("Failed to open TBB static meta data file with station to node mapping");
-	}
-
-	while (ifile.getline(buf, parseBufSize).good()) {
-		string sbuf(buf);
-
-		size_t pos = sbuf.find('#'); // line comments
-		sbuf = sbuf.substr(0, pos);
-		vector<string> tokens(StringUtil::tokenize(sbuf, ws));
-
-		// We expect 3 tokens (columns): stationName (0), board (1), destNode (2); ignore other tokens and "empty" lines.
-		if (tokens.size() >= 3) {
-			itsMapping.insert(make_pair(tokens[2], make_pair(tokens[0], tokens[1])));
-		}
-	}
-}
-
-multimap<string, pair<string, string> >::const_iterator TBB_StaticMapping::begin() const {
-	return itsMapping.begin();
-}
-
-multimap<string, pair<string, string> >::const_iterator TBB_StaticMapping::end() const {
-	return itsMapping.end();
-}
-
-size_t TBB_StaticMapping::size() const {
-	return itsMapping.size();
-}
-
-bool TBB_StaticMapping::empty() const {
-	return itsMapping.empty();
-}
-
-vector<string> TBB_StaticMapping::getStationNames(const string& nodeName) const {
-	vector<string> mapping;
-
-	for (pair<multimap<string, pair<string, string> >::const_iterator,
+namespace LOFAR
+{
+
+  TBB_StaticMapping::TBB_StaticMapping()
+  {
+  }
+
+  TBB_StaticMapping::TBB_StaticMapping(const string& filename)
+  {
+    parseStaticMapping(filename);
+  }
+
+  void TBB_StaticMapping::parseStaticMapping(const string& filename)
+  {
+    char buf[parseBufSize];
+    const string ws(" \t");
+    ifstream ifile(filename.c_str());
+    if (!ifile) {
+      throw IOException("Failed to open TBB static meta data file with station to node mapping");
+    }
+
+    while (ifile.getline(buf, parseBufSize).good()) {
+      string sbuf(buf);
+
+      size_t pos = sbuf.find('#');           // line comments
+      sbuf = sbuf.substr(0, pos);
+      vector<string> tokens(StringUtil::tokenize(sbuf, ws));
+
+      // We expect 3 tokens (columns): stationName (0), board (1), destNode (2); ignore other tokens and "empty" lines.
+      if (tokens.size() >= 3) {
+        itsMapping.insert(make_pair(tokens[2], make_pair(tokens[0], tokens[1])));
+      }
+    }
+  }
+
+  multimap<string, pair<string, string> >::const_iterator TBB_StaticMapping::begin() const
+  {
+    return itsMapping.begin();
+  }
+
+  multimap<string, pair<string, string> >::const_iterator TBB_StaticMapping::end() const
+  {
+    return itsMapping.end();
+  }
+
+  size_t TBB_StaticMapping::size() const
+  {
+    return itsMapping.size();
+  }
+
+  bool TBB_StaticMapping::empty() const
+  {
+    return itsMapping.empty();
+  }
+
+  vector<string> TBB_StaticMapping::getStationNames(const string& nodeName) const
+  {
+    vector<string> mapping;
+
+    for (pair<multimap<string, pair<string, string> >::const_iterator,
               multimap<string, pair<string, string> >::const_iterator> iters(
-              itsMapping.equal_range(nodeName));
-			iters.first != iters.second; ++iters.first) {
-		mapping.push_back((*iters.first).second.first);
-	}
+           itsMapping.equal_range(nodeName));
+         iters.first != iters.second; ++iters.first) {
+      mapping.push_back((*iters.first).second.first);
+    }
 
-	return mapping;
-}
+    return mapping;
+  }
 
-vector<string> TBB_StaticMapping::getBoardNames(const string& nodeName) const {
-	vector<string> mapping;
+  vector<string> TBB_StaticMapping::getBoardNames(const string& nodeName) const
+  {
+    vector<string> mapping;
 
-	for (pair<multimap<string, pair<string, string> >::const_iterator,
+    for (pair<multimap<string, pair<string, string> >::const_iterator,
               multimap<string, pair<string, string> >::const_iterator> iters(
-              itsMapping.equal_range(nodeName));
-			iters.first != iters.second; ++iters.first) {
-		mapping.push_back((*iters.first).second.second);
-	}
+           itsMapping.equal_range(nodeName));
+         iters.first != iters.second; ++iters.first) {
+      mapping.push_back((*iters.first).second.second);
+    }
 
-	return mapping;
-}
+    return mapping;
+  }
 
 } // ns LOFAR
diff --git a/RTCP/Cobalt/OutputProc/src/TBB_StaticMapping.h b/RTCP/Cobalt/OutputProc/src/TBB_StaticMapping.h
index b12a89f7014fdf45d8f36bdf9a343ed3eb31ec2a..8d77e8df8dd0db6863079bc868911d26e797c90e 100644
--- a/RTCP/Cobalt/OutputProc/src/TBB_StaticMapping.h
+++ b/RTCP/Cobalt/OutputProc/src/TBB_StaticMapping.h
@@ -28,30 +28,32 @@
 #include <vector>
 #include <map>
 
-namespace LOFAR {
-
-class TBB_StaticMapping {
-public:
-	TBB_StaticMapping();
-
-	// These two throw a LOFAR::IOException if filename could not be opened.
-	explicit TBB_StaticMapping(const std::string& filename);
-	void parseStaticMapping(const std::string& filename);
-
-	std::multimap<std::string, std::pair<std::string, std::string> >::const_iterator begin() const;
-	std::multimap<std::string, std::pair<std::string, std::string> >::const_iterator end() const;
-	size_t size() const;
-	bool empty() const;
-	std::vector<std::string> getStationNames(const std::string& nodeName) const;
-	std::vector<std::string> getBoardNames(const std::string& nodeName) const;
-
-private:
-	// Max line len in file is now 52, but need a bit more if >1 stations per dest node.
-	static const size_t parseBufSize = 256;
-
-	// Maps from node name to (station name, board name).
-	std::multimap<std::string, std::pair<std::string, std::string> > itsMapping;
-};
+namespace LOFAR
+{
+
+  class TBB_StaticMapping
+  {
+  public:
+    TBB_StaticMapping();
+
+    // These two throw a LOFAR::IOException if filename could not be opened.
+    explicit TBB_StaticMapping(const std::string& filename);
+    void parseStaticMapping(const std::string& filename);
+
+    std::multimap<std::string, std::pair<std::string, std::string> >::const_iterator begin() const;
+    std::multimap<std::string, std::pair<std::string, std::string> >::const_iterator end() const;
+    size_t size() const;
+    bool empty() const;
+    std::vector<std::string> getStationNames(const std::string& nodeName) const;
+    std::vector<std::string> getBoardNames(const std::string& nodeName) const;
+
+  private:
+    // Max line len in file is now 52, but need a bit more if >1 stations per dest node.
+    static const size_t parseBufSize = 256;
+
+    // Maps from node name to (station name, board name).
+    std::multimap<std::string, std::pair<std::string, std::string> > itsMapping;
+  };
 
 
 } // ns LOFAR
diff --git a/RTCP/Cobalt/OutputProc/src/TBB_Writer.cc b/RTCP/Cobalt/OutputProc/src/TBB_Writer.cc
index 10fe6c5a8ea3049b528a1c054df34d352cf70d56..49dbe5694361d9a9f9f4214f5ade587054489160 100644
--- a/RTCP/Cobalt/OutputProc/src/TBB_Writer.cc
+++ b/RTCP/Cobalt/OutputProc/src/TBB_Writer.cc
@@ -59,1174 +59,1218 @@
 
 #include <dal/lofar/StationNames.h>
 
-#define TBB_TRANSIENT_MODE			1
-#define TBB_SPECTRAL_MODE			2
-
-#define RSP_NR_SUBBANDS				512
-
-namespace LOFAR {
-namespace RTCP {
-
-using namespace std;
-
-EXCEPTION_CLASS(TBB_MalformedFrameException, StorageException);
-
-// The output_format is without seconds. The output_size is including the terminating NUL char.
-static string formatFilenameTimestamp(const struct timeval& tv, const char* output_format,
-                                      const char* output_format_secs, size_t output_size) {
-	struct tm tm;
-	::gmtime_r(&tv.tv_sec, &tm);
-	double secs = tm.tm_sec + tv.tv_usec / 1000000.0;
-
-	vector<char> date(output_size);
-
-	size_t nwritten = ::strftime(&date[0], output_size, output_format, &tm);
-	if (nwritten == 0) {
-		date[0] = '\0';
-	}
-	(void)::snprintf(&date[0] + nwritten, output_size - nwritten, output_format_secs, secs);
-
-	return string(&date[0]);
-}
-
-// FileStream doesn't do pwrite(2).
-static size_t tryPWrite(int fd, const void *ptr, size_t size, off_t offset) {
-	ssize_t bytes = ::pwrite(fd, ptr, size, offset);
-	if (bytes < 0)
-		throw SystemCallException("pwrite", errno, THROW_ARGS);
-	return bytes;
-}
-
-static void pwrite(int fd, const void *ptr, size_t size, off_t offset) {
-	while (size > 0) {
-		size_t bytes = tryPWrite(fd, ptr, size, offset);
-		size   -= bytes;
-		offset += bytes;
-		ptr     = static_cast<const char *>(ptr) + bytes;
-	}
-}
-
-static ostream& operator<<(ostream& out, const TBB_Header& h) {
-	out << (unsigned)h.stationID << " " << (unsigned)h.rspID << " " << (unsigned)h.rcuID << " " << (unsigned)h.sampleFreq <<
-           " " << h.seqNr << " " << h.time << " " << (h.nOfFreqBands == 0 ? h.sampleNr : h.bandSliceNr) << " " << h.nOfSamplesPerFrame <<
-           " " << h.nOfFreqBands << " " << h.spare << " " << h.crc16; // casts uin8_t to unsigned to avoid printing as char
-	return out;
-}
-
-//////////////////////////////////////////////////////////////////////////////
-
-TBB_Dipole::TBB_Dipole()
-: itsRawOut(NULL) // needed, setting the others is superfluous
-, itsDataset(NULL)
-, itsFlagOffsets()
-, itsSampleFreq(0)
-, itsNrSubbands(0)
-, itsTime(0)
-, itsExpSampleNr(0)
-, itsDatasetLen(0)
-{
-}
-
-// Do not use. Only needed for vector<TBB_Dipole>(N).
-TBB_Dipole::TBB_Dipole(const TBB_Dipole& rhs)
-: itsRawOut(NULL) // idem. FileStream has no copy constr, but only copied before really set, so NULL is fine.
-, itsDataset(rhs.itsDataset)
-, itsFlagOffsets(rhs.itsFlagOffsets)
-, itsSampleFreq(rhs.itsSampleFreq)
-, itsNrSubbands(rhs.itsNrSubbands)
-, itsTime(rhs.itsTime)
-, itsExpSampleNr(rhs.itsExpSampleNr)
-, itsDatasetLen(rhs.itsDatasetLen)
+#define TBB_TRANSIENT_MODE                      1
+#define TBB_SPECTRAL_MODE                       2
+
+#define RSP_NR_SUBBANDS                         512
+
+namespace LOFAR
 {
-}
-
-TBB_Dipole::~TBB_Dipole() {
-	// Executed by the main thread after joined with all workers, so no need to lock or delay cancellation.
-	if (isInitialized()) {
-		try {
-			if (itsNrSubbands == 0) { // transient mode
-				itsDataset->resize1D(itsDatasetLen);
-			} else { // spectral mode
-				vector<ssize_t> newDims(2);
-				newDims[0] = itsDatasetLen;
-				newDims[1] = itsNrSubbands; // only the 1st dim can be extended
-				itsDataset->resize(newDims);
-			}
-		} catch (exception& exc) { // dal::DALException, or std::bad_alloc from vector constr
-			LOG_WARN_STR("TBB: failed to resize HDF5 dipole dataset to external data size: " << exc.what());
-		}
-
-		try {
-			itsDataset->dataLength().value = static_cast<unsigned long long>(itsDatasetLen);
-		} catch (dal::DALException& exc) {
-			LOG_WARN_STR("TBB: failed to set dipole DATA_LENGTH attribute: " << exc.what());
-		}
-		try {
-			itsDataset->flagOffsets().create(itsFlagOffsets.size()).set(itsFlagOffsets);
-		} catch (dal::DALException& exc) {
-			LOG_WARN_STR("TBB: failed to set dipole FLAG_OFFSETS attribute: " << exc.what());
-		}
-
-		delete itsDataset;
-		delete itsRawOut;
-	}
-}
-
-void TBB_Dipole::init(const TBB_Header& header, const Parset& parset,
-                            const StationMetaData& stationMetaData,
-                            const SubbandInfo& subbandInfo, const string& rawFilename,
-                            dal::TBB_Station& station, Mutex& h5Mutex) {
-	itsSampleFreq = static_cast<uint32_t>(header.sampleFreq) * 1000000;
-	itsNrSubbands = header.nOfFreqBands;
-	if (itsNrSubbands > subbandInfo.centralFreqs.size()) {
-		throw StorageException("TBB: dropping frame with invalid nOfFreqBands");
-	}
-
-	itsRawOut = new FileStream(rawFilename, S_IRUSR | S_IWUSR | S_IRGRP | S_IWGRP | S_IROTH);
-
-	{
-		ScopedLock h5OutLock(h5Mutex);
-		try {
-			initTBB_DipoleDataset(header, parset, stationMetaData, subbandInfo, rawFilename, station);
-		} catch (exception& ) {
-			/*
-			 * This nonsense is needed, because FileStream has no FileStream() and open() (and swap()),
-			 * and since we know the filename only at runtime (timestamp), we need itsRawOut to be a raw ptr.
-			 * We already have a raw ptr for the dataset and >1 raw ptr in 1 C++ class becomes buggy or messy.
-			 */
-			delete itsRawOut;
-			itsRawOut = NULL;
-			throw;
-		}
-	}
-
-	itsTime = header.time;
-	if (itsNrSubbands == 0) { // transient mode
-		itsExpSampleNr = header.sampleNr;
-	} else { // spectral mode
-		itsExpSliceNr  = header.bandSliceNr >> TBB_SLICE_NR_SHIFT;
-	}
-	itsDatasetLen = 0; // already 0, for completeness
-}
-
-bool TBB_Dipole::isInitialized() const {
-	return itsRawOut != NULL;
-}
-
-// Add a new flag range at the end or extend the last stored flag range. 'len' may not be 0.
-void TBB_Dipole::appendFlags(size_t offset, size_t len) {
-	if (itsFlagOffsets.empty() || offset > itsFlagOffsets.back().end) {
-		itsFlagOffsets.push_back(dal::Range(offset, offset + len));
-	} else { // extend
-		itsFlagOffsets.back().end += len;
-	}
-}
-
-void TBB_Dipole::processTransientFrameData(const TBB_Frame& frame) {
-	/*
-	 * Out-of-order or duplicate frames are very unlikely in the LOFAR TBB setup,
-	 * but let us know if it ever happens, then we will adapt this code and appendFlags().
-	 */
-	if (frame.header.time < itsTime || (frame.header.time == itsTime && frame.header.sampleNr < itsExpSampleNr)) {
-		LOG_WARN_STR("TBB: Unhandled out-of-order or duplicate frame: " <<
+  namespace RTCP
+  {
+
+    using namespace std;
+
+    EXCEPTION_CLASS(TBB_MalformedFrameException, StorageException);
+
+    // The output_format is without seconds. The output_size is including the terminating NUL char.
+    static string formatFilenameTimestamp(const struct timeval& tv, const char* output_format,
+                                          const char* output_format_secs, size_t output_size)
+    {
+      struct tm tm;
+      ::gmtime_r(&tv.tv_sec, &tm);
+      double secs = tm.tm_sec + tv.tv_usec / 1000000.0;
+
+      vector<char> date(output_size);
+
+      size_t nwritten = ::strftime(&date[0], output_size, output_format, &tm);
+      if (nwritten == 0) {
+        date[0] = '\0';
+      }
+      (void)::snprintf(&date[0] + nwritten, output_size - nwritten, output_format_secs, secs);
+
+      return string(&date[0]);
+    }
+
+    // FileStream doesn't do pwrite(2).
+    static size_t tryPWrite(int fd, const void *ptr, size_t size, off_t offset)
+    {
+      ssize_t bytes = ::pwrite(fd, ptr, size, offset);
+      if (bytes < 0)
+        throw SystemCallException("pwrite", errno, THROW_ARGS);
+      return bytes;
+    }
+
+    static void pwrite(int fd, const void *ptr, size_t size, off_t offset)
+    {
+      while (size > 0) {
+        size_t bytes = tryPWrite(fd, ptr, size, offset);
+        size -= bytes;
+        offset += bytes;
+        ptr = static_cast<const char *>(ptr) + bytes;
+      }
+    }
+
+    static ostream& operator<<(ostream& out, const TBB_Header& h)
+    {
+      out << (unsigned)h.stationID << " " << (unsigned)h.rspID << " " << (unsigned)h.rcuID << " " << (unsigned)h.sampleFreq <<
+      " " << h.seqNr << " " << h.time << " " << (h.nOfFreqBands == 0 ? h.sampleNr : h.bandSliceNr) << " " << h.nOfSamplesPerFrame <<
+      " " << h.nOfFreqBands << " " << h.spare << " " << h.crc16;      // casts uin8_t to unsigned to avoid printing as char
+      return out;
+    }
+
+    //////////////////////////////////////////////////////////////////////////////
+
+    TBB_Dipole::TBB_Dipole()
+      : itsRawOut(NULL) // needed, setting the others is superfluous
+      , itsDataset(NULL)
+      , itsFlagOffsets()
+      , itsSampleFreq(0)
+      , itsNrSubbands(0)
+      , itsTime(0)
+      , itsExpSampleNr(0)
+      , itsDatasetLen(0)
+    {
+    }
+
+    // Do not use. Only needed for vector<TBB_Dipole>(N).
+    TBB_Dipole::TBB_Dipole(const TBB_Dipole& rhs)
+      : itsRawOut(NULL) // idem. FileStream has no copy constr, but only copied before really set, so NULL is fine.
+      , itsDataset(rhs.itsDataset)
+      , itsFlagOffsets(rhs.itsFlagOffsets)
+      , itsSampleFreq(rhs.itsSampleFreq)
+      , itsNrSubbands(rhs.itsNrSubbands)
+      , itsTime(rhs.itsTime)
+      , itsExpSampleNr(rhs.itsExpSampleNr)
+      , itsDatasetLen(rhs.itsDatasetLen)
+    {
+    }
+
+    TBB_Dipole::~TBB_Dipole()
+    {
+      // Executed by the main thread after joined with all workers, so no need to lock or delay cancellation.
+      if (isInitialized()) {
+        try {
+          if (itsNrSubbands == 0) {               // transient mode
+            itsDataset->resize1D(itsDatasetLen);
+          } else {               // spectral mode
+            vector<ssize_t> newDims(2);
+            newDims[0] = itsDatasetLen;
+            newDims[1] = itsNrSubbands;                     // only the 1st dim can be extended
+            itsDataset->resize(newDims);
+          }
+        } catch (exception& exc) {         // dal::DALException, or std::bad_alloc from vector constr
+          LOG_WARN_STR("TBB: failed to resize HDF5 dipole dataset to external data size: " << exc.what());
+        }
+
+        try {
+          itsDataset->dataLength().value = static_cast<unsigned long long>(itsDatasetLen);
+        } catch (dal::DALException& exc) {
+          LOG_WARN_STR("TBB: failed to set dipole DATA_LENGTH attribute: " << exc.what());
+        }
+        try {
+          itsDataset->flagOffsets().create(itsFlagOffsets.size()).set(itsFlagOffsets);
+        } catch (dal::DALException& exc) {
+          LOG_WARN_STR("TBB: failed to set dipole FLAG_OFFSETS attribute: " << exc.what());
+        }
+
+        delete itsDataset;
+        delete itsRawOut;
+      }
+    }
+
+    void TBB_Dipole::init(const TBB_Header& header, const Parset& parset,
+                          const StationMetaData& stationMetaData,
+                          const SubbandInfo& subbandInfo, const string& rawFilename,
+                          dal::TBB_Station& station, Mutex& h5Mutex)
+    {
+      itsSampleFreq = static_cast<uint32_t>(header.sampleFreq) * 1000000;
+      itsNrSubbands = header.nOfFreqBands;
+      if (itsNrSubbands > subbandInfo.centralFreqs.size()) {
+        throw StorageException("TBB: dropping frame with invalid nOfFreqBands");
+      }
+
+      itsRawOut = new FileStream(rawFilename, S_IRUSR | S_IWUSR | S_IRGRP | S_IWGRP | S_IROTH);
+
+      {
+        ScopedLock h5OutLock(h5Mutex);
+        try {
+          initTBB_DipoleDataset(header, parset, stationMetaData, subbandInfo, rawFilename, station);
+        } catch (exception& ) {
+          /*
+           * This nonsense is needed, because FileStream has no FileStream() and open() (and swap()),
+           * and since we know the filename only at runtime (timestamp), we need itsRawOut to be a raw ptr.
+           * We already have a raw ptr for the dataset and >1 raw ptr in 1 C++ class becomes buggy or messy.
+           */
+          delete itsRawOut;
+          itsRawOut = NULL;
+          throw;
+        }
+      }
+
+      itsTime = header.time;
+      if (itsNrSubbands == 0) {   // transient mode
+        itsExpSampleNr = header.sampleNr;
+      } else {   // spectral mode
+        itsExpSliceNr = header.bandSliceNr >> TBB_SLICE_NR_SHIFT;
+      }
+      itsDatasetLen = 0;   // already 0, for completeness
+    }
+
+    bool TBB_Dipole::isInitialized() const
+    {
+      return itsRawOut != NULL;
+    }
+
+    // Add a new flag range at the end or extend the last stored flag range. 'len' may not be 0.
+    void TBB_Dipole::appendFlags(size_t offset, size_t len)
+    {
+      if (itsFlagOffsets.empty() || offset > itsFlagOffsets.back().end) {
+        itsFlagOffsets.push_back(dal::Range(offset, offset + len));
+      } else {   // extend
+        itsFlagOffsets.back().end += len;
+      }
+    }
+
+    void TBB_Dipole::processTransientFrameData(const TBB_Frame& frame)
+    {
+      /*
+       * Out-of-order or duplicate frames are very unlikely in the LOFAR TBB setup,
+       * but let us know if it ever happens, then we will adapt this code and appendFlags().
+       */
+      if (frame.header.time < itsTime || (frame.header.time == itsTime && frame.header.sampleNr < itsExpSampleNr)) {
+        LOG_WARN_STR("TBB: Unhandled out-of-order or duplicate frame: " <<
                      (unsigned)frame.header.stationID << " " << (unsigned)frame.header.rspID << " " << (unsigned)frame.header.rcuID <<
                      " " << frame.header.time << " " << itsTime << " " << frame.header.sampleNr << " " << itsExpSampleNr);
-		return;
-	}
-
-	off_t offset = 0;
-	if (frame.header.time == itsTime) {
-		offset = itsDatasetLen + frame.header.sampleNr - itsExpSampleNr;
-	} else { // crossed a seconds boundary, potentially more than once on excessive frame loss
-		// A dump does not have to start at a sec bound, so up till the first bound, we may have had fewer than itsSampleFreq samples.
-		if (itsDatasetLen < (int32_t)itsSampleFreq) {
-			offset = itsDatasetLen;
-			itsTime++;
-		}
-		offset += (off_t)(frame.header.time - itsTime) * itsSampleFreq;
-
-		uint32_t newSecSampleNr0 = frame.header.sampleNr & (frame.header.nOfSamplesPerFrame - 1); // 0, or 512 by correctSampleNr()
-		offset += frame.header.sampleNr - newSecSampleNr0;
-	}
-
-	/*
-	 * Flag lost frame(s) (assume no out-of-order, see below). Assumes all frames have the same nr of samples.
-	 * This cannot detect lost frames at the end of a dataset.
-	 */
-	size_t nskipped = offset - itsDatasetLen;
-	if (nskipped > 0) {
-		appendFlags(itsDatasetLen, nskipped);
-		itsRawOut->skip(nskipped * sizeof(frame.payload.data[0])); // skip space of lost frame(s)
-	}
-
-	/*
-	 * On a data checksum error, flag these samples.
-	 * Flag zeroed payloads too, as incredibly unlikely to be correct, but not rejected by crc32tbb.
-	 */
-	if (!crc32tbb(&frame.payload, frame.header.nOfSamplesPerFrame)) {
-		appendFlags(offset, frame.header.nOfSamplesPerFrame);
-		uint32_t crc32;
-		memcpy(&crc32, &frame.payload.data[frame.header.nOfSamplesPerFrame], sizeof crc32); // strict-aliasing safe
-		LOG_WARN_STR("TBB: crc32: " << frame.header << " " << crc32);
-	} else if (hasAllZeroDataSamples(frame.payload, frame.header.nOfSamplesPerFrame)) {
-		appendFlags(offset, frame.header.nOfSamplesPerFrame);
-	}
-
-	// Since we are writing around HDF5, there is no need to lock. Resize the HDF5 dataset at the end (destr).
-	itsRawOut->write(frame.payload.data, static_cast<size_t>(frame.header.nOfSamplesPerFrame) * sizeof(frame.payload.data[0]));
-
-	itsTime        = frame.header.time;
-	itsExpSampleNr = frame.header.sampleNr + frame.header.nOfSamplesPerFrame;
-	itsDatasetLen  = offset + frame.header.nOfSamplesPerFrame;
-}
-
-void TBB_Dipole::processSpectralFrameData(const TBB_Frame& frame, const SubbandInfo& subbandInfo) {
-	/*
-	 * Out-of-order or duplicate frames are very unlikely in the LOFAR TBB setup,
-	 * but let us know if it ever happens, then we will adapt this code and appendFlags().
-	 */
-	uint32_t sliceNr = frame.header.bandSliceNr >> TBB_SLICE_NR_SHIFT; // cannot sanitize fully: too large values indicate lost data: flag
-	if (frame.header.time < itsTime || (frame.header.time == itsTime && sliceNr < itsExpSliceNr)) {
-		LOG_WARN_STR("TBB: Unhandled out-of-order or duplicate frame: " <<
+        return;
+      }
+
+      off_t offset = 0;
+      if (frame.header.time == itsTime) {
+        offset = itsDatasetLen + frame.header.sampleNr - itsExpSampleNr;
+      } else {   // crossed a seconds boundary, potentially more than once on excessive frame loss
+                 // A dump does not have to start at a sec bound, so up till the first bound, we may have had fewer than itsSampleFreq samples.
+        if (itsDatasetLen < (int32_t)itsSampleFreq) {
+          offset = itsDatasetLen;
+          itsTime++;
+        }
+        offset += (off_t)(frame.header.time - itsTime) * itsSampleFreq;
+
+        uint32_t newSecSampleNr0 = frame.header.sampleNr & (frame.header.nOfSamplesPerFrame - 1);         // 0, or 512 by correctSampleNr()
+        offset += frame.header.sampleNr - newSecSampleNr0;
+      }
+
+      /*
+       * Flag lost frame(s) (assume no out-of-order, see below). Assumes all frames have the same nr of samples.
+       * This cannot detect lost frames at the end of a dataset.
+       */
+      size_t nskipped = offset - itsDatasetLen;
+      if (nskipped > 0) {
+        appendFlags(itsDatasetLen, nskipped);
+        itsRawOut->skip(nskipped * sizeof(frame.payload.data[0]));         // skip space of lost frame(s)
+      }
+
+      /*
+       * On a data checksum error, flag these samples.
+       * Flag zeroed payloads too, as incredibly unlikely to be correct, but not rejected by crc32tbb.
+       */
+      if (!crc32tbb(&frame.payload, frame.header.nOfSamplesPerFrame)) {
+        appendFlags(offset, frame.header.nOfSamplesPerFrame);
+        uint32_t crc32;
+        memcpy(&crc32, &frame.payload.data[frame.header.nOfSamplesPerFrame], sizeof crc32);         // strict-aliasing safe
+        LOG_WARN_STR("TBB: crc32: " << frame.header << " " << crc32);
+      } else if (hasAllZeroDataSamples(frame.payload, frame.header.nOfSamplesPerFrame)) {
+        appendFlags(offset, frame.header.nOfSamplesPerFrame);
+      }
+
+      // Since we are writing around HDF5, there is no need to lock. Resize the HDF5 dataset at the end (destr).
+      itsRawOut->write(frame.payload.data, static_cast<size_t>(frame.header.nOfSamplesPerFrame) * sizeof(frame.payload.data[0]));
+
+      itsTime = frame.header.time;
+      itsExpSampleNr = frame.header.sampleNr + frame.header.nOfSamplesPerFrame;
+      itsDatasetLen = offset + frame.header.nOfSamplesPerFrame;
+    }
+
+    void TBB_Dipole::processSpectralFrameData(const TBB_Frame& frame, const SubbandInfo& subbandInfo)
+    {
+      /*
+       * Out-of-order or duplicate frames are very unlikely in the LOFAR TBB setup,
+       * but let us know if it ever happens, then we will adapt this code and appendFlags().
+       */
+      uint32_t sliceNr = frame.header.bandSliceNr >> TBB_SLICE_NR_SHIFT;   // cannot sanitize fully: too large values indicate lost data: flag
+      if (frame.header.time < itsTime || (frame.header.time == itsTime && sliceNr < itsExpSliceNr)) {
+        LOG_WARN_STR("TBB: Unhandled out-of-order or duplicate frame: " <<
                      (unsigned)frame.header.stationID << " " << (unsigned)frame.header.rspID << " " << (unsigned)frame.header.rcuID <<
                      " " << frame.header.time << " " << itsTime << " " << frame.header.bandSliceNr << " " << itsExpSliceNr);
-		return;
-	}
-
-	off_t offset = 0;
-	if (frame.header.time == itsTime) {
-		offset = itsDatasetLen + sliceNr - itsExpSliceNr;
-	} else { // crossed a seconds boundary, potentially more than once on excessive frame loss
-		// A dump does not have to start at a sec bound, so up till the first bound, we may have had fewer than itsSampleFreq samples.
-		if (itsDatasetLen < (int32_t)itsSampleFreq) {
-			offset = itsDatasetLen;
-			itsTime++;
-		}
-		offset += (off_t)(frame.header.time - itsTime) * itsSampleFreq + sliceNr;
-	}
-
-	/*
-	 * Flag lost frame(s) (assume no out-of-order, see below). Assumes all frames have the same nr of samples (fine).
-	 * This cannot detect lost frames at the end of a dataset.
-	 */
-	size_t nskipped = offset - itsDatasetLen;
-	if (nskipped > 0) {
-		appendFlags(itsDatasetLen, nskipped); // no need to skip/lseek; we use pwrite() below
-	}
-
-	/*
-	 * On a data checksum error, flag these samples.
-	 * Flag zeroed payloads too, as incredibly unlikely to be correct, but not rejected by crc32tbb.
-	 *
-	 * TBB Design Doc states the crc32 is computed for transient data only, but it is also valid for spectral data.
-	 * Except that it looks invalid for the first spectral frame each second, so skip checking those. // TODO: enable 'sliceNr != 0 && ' below after verifying with recent real data
-	 */
-	unsigned nSamplesPerSubband = frame.header.nOfSamplesPerFrame / itsNrSubbands; // any remainder is zeroed until the crc32
-	if (/*sliceNr != 0 && */!crc32tbb(&frame.payload, 2 * MAX_TBB_SPECTRAL_NSAMPLES)) {
-		appendFlags(offset, nSamplesPerSubband);
-		uint32_t crc32;
-		memcpy(&crc32, &frame.payload.data[2 * MAX_TBB_SPECTRAL_NSAMPLES], sizeof crc32); // strict-aliasing safe
-		LOG_WARN_STR("TBB: crc32: " << frame.header << " " << crc32);
-	} else if (hasAllZeroDataSamples(frame.payload, 2 * frame.header.nOfSamplesPerFrame)) {
-		appendFlags(offset, nSamplesPerSubband);
-	}
-
-	/*
-	 * In practice, each frame contains the same number of samples for all subbands, so the received band number is always 0.
-	 * Hence, disable support for cross-frame slices, such that in spectral mode we can also store flags in 1D.
-	 */
-	/*unsigned bandNr = frame.header.bandSliceNr & TBB_BAND_NR_MASK;
-	if (bandNr + itsNrSubbands >= RSP_NR_SUBBANDS) {
-		LOG_WARN("TBB: Incorrect band number has been corrected to 0");
-		bandNr = 0; // safe default
-	}*/
-	// Data arrives interleaved, so reorder, one sample at a time. Esp. inefficient if only 1 subband, but fast enough.
-	for (unsigned i = 0; i < nSamplesPerSubband; ++i) {
-		for (unsigned j = 0; j < itsNrSubbands; ++j) {
-			off_t sampleOffset = (offset + subbandInfo.storageIndices[j/*(bandNr + j) % itsNrSubbands*/] * SPECTRAL_TRANSFORM_SIZE) * 2 * sizeof(frame.payload.data[0]);
-			pwrite(itsRawOut->fd, &frame.payload.data[2 * (i * itsNrSubbands + j)], 2 * sizeof(frame.payload.data[0]), sampleOffset);
-		}
-		offset += 1;
-	}
-
-	itsTime       = frame.header.time;
-	itsExpSliceNr = sliceNr + nSamplesPerSubband;
-	itsDatasetLen = offset;
-}
-
-void TBB_Dipole::initTBB_DipoleDataset(const TBB_Header& header, const Parset& parset,
-                                       const StationMetaData& stationMetaData,
-                                       const SubbandInfo& subbandInfo,
-                                       const string& rawFilename, dal::TBB_Station& station) {
-	// Override endianess. TBB data is always stored little endian and also received as such, so written as-is on any platform.
-	if (subbandInfo.centralFreqs.empty()) { // transient mode
-		dal::TBB_DipoleDataset* dpDataset = new dal::TBB_DipoleDataset(station.dipole(header.stationID, header.rspID, header.rcuID));
-		itsDataset = static_cast<dal::TBB_Dataset<short>*>(dpDataset);
-
-		itsDataset->create1D(0, -1, LOFAR::basename(rawFilename), itsDataset->LITTLE);
-
-		dpDataset->sampleNumber().value = header.sampleNr;
-	} else { // spectral mode
-		dal::TBB_SubbandsDataset* sbDataset = new dal::TBB_SubbandsDataset(station.subbands(header.stationID, header.rspID, header.rcuID));
-		itsDataset = reinterpret_cast<dal::TBB_Dataset<short>*>(sbDataset); // not so nice
-
-		vector<ssize_t> dims(2), maxdims(2);
-		dims[0]    = 0;
-		dims[1]    = itsNrSubbands;
-		maxdims[0] = -1; // only the 1st dim can be extendible
-		maxdims[1] = itsNrSubbands;
-		itsDataset->create(dims, maxdims, LOFAR::basename(rawFilename), itsDataset->LITTLE);
-
-		sbDataset->sliceNumber()      .value = header.bandSliceNr >> TBB_SLICE_NR_SHIFT;
-		sbDataset->spectralNofBands() .value = itsNrSubbands;
-		sbDataset->spectralBands().create(itsNrSubbands).set(subbandInfo.centralFreqs);
-		sbDataset->spectralBandsUnit().value = "MHz";
-	}
-
-	itsDataset->groupType().value = "DipoleDataset";
-	itsDataset->stationID().value = header.stationID;
-	itsDataset->rspID()    .value = header.rspID;
-	itsDataset->rcuID()    .value = header.rcuID;
-
-	itsDataset->sampleFrequency()    .value = header.sampleFreq;
-	itsDataset->sampleFrequencyUnit().value = "MHz";
-
-	itsDataset->time().value                = header.time; // in seconds
-
-	itsDataset->samplesPerFrame().value     = header.nOfSamplesPerFrame; // possibly sanitized
-	//itsDataset->dataLength().value is set at the end (destr)
-	//itsDataset->flagOffsets().value is set at the end (destr) // TODO: attrib -> 1D dataset
-	itsDataset->nyquistZone().value         = parset.nyquistZone();
-
-//#include "MAC/APL/PIC/RSP_Driver/src/CableSettings.h" or "RCUCables.h"
-	// Cable delays (optional) from static meta data.
-	//itsDataset->cableDelay().value = ???; // TODO
-	//itsDataset->cableDelayUnit().value = "ns";
-
-/*
-> No DIPOLE_CALIBRATION_DELAY_VALUE
-> No DIPOLE_CALIBRATION_DELAY_UNIT
-These can be calculated from the values in the LOFAR calibration
-tables, but we can do that ourselves as long as the calibration table
-values for each dipole are written to the new keyword. Sander: please put them in; see the code ref below.
-DIPOLE_CALIBRATION_GAIN_CURVE.
-
-// Use StaticMetaData/CalTables
-
-calibration delay value en unit zijn nuttiger
-en is het beste om die er gelijk in te schrijven
-momenteel
-In /opt/cep/lus/daily/Mon/src/code/src/PyCRTools/modules/metadata.py
-heb ik code om de calibratie tabellen uit te lezen
-De functie: getStationPhaseCalibration
-elke .dat file bevat 96*512*2 doubles
-voor 96 rcus, 512 frequenties, een complexe waarde
-maar nu vraag ik me wel weer af of de frequenties of de rcus eerst komen
-*/
-//NL stations: 768 kB, Int'l: 1.5 MB. Drop optional ASCI header. See also Station/StationCal/writeCalTable.m
-	//itsDataset->dipoleCalibrationDelay().value = ???; // Pim can compute this from the GainCurve below
-	//itsDataset->dipoleCalibrationDelayUnit().value = 's';
-	//itsDataset->dipoleCalibrationGainCurve().create(???.size()).set(???); // st cal table
-//write cal tables into proper n-dimensional h5 data set, not attribute! Add access functions to DAL?
-
-	// Skip if station is not participating in the observation (should not happen).
-	if (stationMetaData.available && 2u * 3u * header.rcuID + 2u < stationMetaData.antPositions.size()) {
-		/*TODO
-		 * Selecting the right positions depends on the antenna set. Checking vs the tables in
-		 * lhn001:/home/veen/lus/src/code/data/lofar/antennapositions/ can help, but their repos may be outdated.
-		 */
-		vector<double> antPos(3);
-		antPos[0] = stationMetaData.antPositions[2u * 3u * header.rcuID];
-		antPos[1] = stationMetaData.antPositions[2u * 3u * header.rcuID + 1u];
-		antPos[2] = stationMetaData.antPositions[2u * 3u * header.rcuID + 2u];
-		itsDataset->antennaPosition().create(antPos.size()).set(antPos); // absolute position
-
-		itsDataset->antennaPositionUnit() .value = "m";
-		itsDataset->antennaPositionFrame().value = parset.positionType(); // "ITRF"
-
-		/*
-		 * The normal vector and rotation matrix are actually per antenna field,
-		 * but given the HBA0/HBA1 "ears" depending on antenna set, it was
-		 * decided to store them per antenna.
-		 */
-		itsDataset->antennaNormalVector()  .create(stationMetaData.normalVector.size()).set(stationMetaData.normalVector);     // 3 doubles
-		itsDataset->antennaRotationMatrix().create(stationMetaData.rotationMatrix.size()).set(stationMetaData.rotationMatrix); // 9 doubles, 3x3, row-major
-	}
-
-	// Tile beam is the analog beam. Only HBA can have one analog beam; optional.
-	if (parset.haveAnaBeam()) {
-		vector<double> anaBeamDir(parset.getAnaBeamDirection());
-		itsDataset->tileBeam()     .create(anaBeamDir.size()).set(anaBeamDir); // always for beam 0
-		itsDataset->tileBeamUnit() .value = "m";
-		itsDataset->tileBeamFrame().value = parset.getAnaBeamDirectionType(); // idem
-
-		//itsDataset->tileBeamDipoles().create(???.size()).set(???);
-
-		//itsDataset->tileCoefUnit().value = ???;
-		//itsDataset->tileBeamCoefs().value = ???;
-
-		// Relative position within the tile.
-		//itsDataset->tileDipolePosition().value = ???;
-		//itsDataset->tileDipolePositionUnit().value = ???;
-		//itsDataset->tileDipolePositionFrame().value = ???;
-	}
-
-	itsDataset->dispersionMeasure()    .value = parset.dispersionMeasure(0, 0); // beam, pencil TODO: adapt too if >1 beam?
-	itsDataset->dispersionMeasureUnit().value = "pc/cm^3";
-}
-
-bool TBB_Dipole::hasAllZeroDataSamples(const TBB_Payload& payload, size_t nTrSamples) const {
-	/*
-	 * Good data only has a few consecutive zero values, so this loop terminates
-	 * quickly, unless the antenna is broken or disabled, which happens sometimes.
-	 */
-	for (size_t i = 0; i < nTrSamples; i++) {
-		if (payload.data[i] != 0) {
-			return false;
-		}
-	}
-
-	return true;
-}
-
-//////////////////////////////////////////////////////////////////////////////
-
-TBB_Station::TBB_Station(const string& stationName, Mutex& h5Mutex, const Parset& parset,
-                         const StationMetaData& stationMetaData, const string& h5Filename)
-: itsH5File(dal::TBB_File(h5Filename, dal::TBB_File::CREATE))
-, itsH5Mutex(h5Mutex)
-, itsStation(itsH5File.station(stationName))
-, itsDipoles(MAX_RSPBOARDS/* = per station*/ * NR_RCUS_PER_RSPBOARD) // = 192 for int'l stations
-, itsParset(parset)
-, itsStationMetaData(stationMetaData)
-, itsSubbandInfo(getSubbandInfo(parset))
-, itsH5Filename(h5Filename)
-{
-	initCommonLofarAttributes();
-	initTBB_RootAttributesAndGroups(stationName);
-}
-
-TBB_Station::~TBB_Station() {
-	/*
-	 * Apart from the main thread, also potentially (rarely) executed by an output thread on failed
-	 * to insert new TBB_Station object into an std::map. For the output thread case, do dc and slH5.
-	 */
-	ScopedDelayCancellation dc;
-	try {
-		ScopedLock slH5(itsH5Mutex);
-		itsStation.nofDipoles().value = itsStation.dipoles().size();
-	} catch (exception& exc) { // dal::DALException or worse
-		LOG_WARN_STR("TBB: failed to set station NOF_DIPOLES attribute: " << exc.what());
-	}
-}
-
-double TBB_Station::getSubbandCentralFreq(unsigned subbandNr, unsigned nyquistZone, double sampleFreq) const {
-	return (nyquistZone - 1 + (double)subbandNr / RSP_NR_SUBBANDS) * sampleFreq / 2.0;
-}
-
-SubbandInfo TBB_Station::getSubbandInfo(const Parset& parset) const {
-	SubbandInfo info;
-
-	int operatingMode = itsParset.getInt("Observation.TBB.TBBsetting.operatingMode", 0);
-	if (operatingMode == TBB_SPECTRAL_MODE) {
-		vector<unsigned> tbbSubbandList(parset.getUint32Vector("Observation.TBB.TBBsetting.subbandList", true));
-		if (tbbSubbandList.empty() || tbbSubbandList.size() > MAX_TBB_SPECTRAL_NSAMPLES) {
-			throw CoInterfaceException("TBB: spectral mode selected, but empty or too long subband list provided");
-		}
-		sort(tbbSubbandList.begin(), tbbSubbandList.end());
-
-		unsigned nyquistZone = parset.nyquistZone();
-		unsigned sampleFreq  = parset.clockSpeed() / 1000000;
-		info.centralFreqs.reserve(tbbSubbandList.size());
-		for (size_t i = 0; i < tbbSubbandList.size(); ++i) {
-			info.centralFreqs.push_back(getSubbandCentralFreq(tbbSubbandList[i], nyquistZone, sampleFreq));
-		}
-
-		// "Invert" tbbSubbandList, such that we can later simply lookup where to store a subband.
-		info.storageIndices.resize(RSP_NR_SUBBANDS, (unsigned)-1);
-		for (unsigned i = 0; i < tbbSubbandList.size(); ++i) {
-			unsigned sbNr = tbbSubbandList[i];
-			if (sbNr >= RSP_NR_SUBBANDS) {
-				throw CoInterfaceException("TBB: indicated subband number too high");
-			}
-			info.storageIndices[sbNr] = i;
-		}
-	}
-
-	return info;
-}
-
-string TBB_Station::getRawFilename(unsigned rspID, unsigned rcuID) const {
-	string rawFilename(itsH5Filename);
-	string rsprcuStr(formatString("_%03u%03u", rspID, rcuID));
-	size_t pos = rawFilename.find('_', rawFilename.find('_') + 1);
-	rawFilename.insert(pos, rsprcuStr); // insert _rsp/rcu IDs after station name (2nd '_')
-	rawFilename.resize(rawFilename.size() - (sizeof(".h5") - 1));
-	rawFilename.append(".raw");
-	return rawFilename;
-}
-
-void TBB_Station::processPayload(const TBB_Frame& frame) {
-	// Guard against bogus incoming rsp/rcu IDs with at().
-	TBB_Dipole& dipole(itsDipoles.at(frame.header.rspID * NR_RCUS_PER_RSPBOARD + frame.header.rcuID));
-
-	// Each dipole stream is sent to a single port (thread), so no need to grab a mutex here to avoid double init.
-	if (!dipole.isInitialized()) {
-		string rawFilename(getRawFilename(frame.header.rspID, frame.header.rcuID));
-		// Do pass a ref to the h5 mutex for when writing into the HDF5 file.
-		dipole.init(frame.header, itsParset, itsStationMetaData, itsSubbandInfo,
-                            rawFilename, itsStation, itsH5Mutex);
-	}
-
-	if (itsSubbandInfo.centralFreqs.empty()) { // transient mode
-		dipole.processTransientFrameData(frame);
-	} else { // spectral mode
-		dipole.processSpectralFrameData(frame, itsSubbandInfo);
-	}
-}
-
-string TBB_Station::utcTimeStr(double time) const {
-	time_t timeSec = static_cast<time_t>(floor(time));
-	unsigned long timeNSec = static_cast<unsigned long>(round( (time-floor(time))*1e9 ));
-
-	char utc_str[50];
-	struct tm tm;
-	gmtime_r(&timeSec, &tm);
-	if (strftime(utc_str, sizeof(utc_str), "%Y-%m-%dT%H:%M:%S", &tm) == 0) {
-		return "";
-	}
-
-	return formatString("%s.%09luZ", utc_str, timeNSec);
-}
-
-double TBB_Station::toMJD(double time) const {
-	// January 1st, 1970, 00:00:00 (GMT) equals 40587.0 Modify Julian Day number
-	return 40587.0 + time / (24*60*60);
-}
-
-void TBB_Station::initCommonLofarAttributes() {
-	itsH5File.groupType().value = "Root";
-
-	//itsH5File.fileName() is set by DAL
-	//itsH5File.fileDate() is set by DAL
-	//itsH5File.fileType() is set by DAL
-	//itsH5File.telescope() is set by DAL
-
-	itsH5File.projectID()   .value = itsParset.getString("Observation.Campaign.name", "");
-	itsH5File.projectTitle().value = itsParset.getString("Observation.Scheduler.taskName", "");
-	itsH5File.projectPI()   .value = itsParset.getString("Observation.Campaign.PI", "");
-	ostringstream oss;
-	// Use ';' instead of ',' to pretty print, because ',' already occurs in names (e.g. Smith, J.).
-	writeVector(oss, itsParset.getStringVector("Observation.Campaign.CO_I", ""), "; ", "", "");
-	itsH5File.projectCOI()    .value = oss.str();
-	itsH5File.projectContact().value = itsParset.getString("Observation.Campaign.contact", "");
-
-	itsH5File.observationID() .value = formatString("%u", itsParset.observationID());
-
-	itsH5File.observationStartUTC().value = utcTimeStr(itsParset.startTime());
-	itsH5File.observationStartMJD().value = toMJD(itsParset.startTime());
-
-	// The stop time can be a bit further than the one actually specified, because we process in blocks.
-	unsigned nrBlocks = floor((itsParset.stopTime() - itsParset.startTime()) / itsParset.CNintegrationTime()); // TODO: check vs bf: unsigned nrBlocks = parset.nrBeamFormedBlocks();
-	double stopTime = itsParset.startTime() + nrBlocks * itsParset.CNintegrationTime();
-
-	itsH5File.observationEndUTC().value = utcTimeStr(stopTime);
-	itsH5File.observationEndMJD().value = toMJD(stopTime);
-
-	itsH5File.observationNofStations().value = itsParset.nrStations(); // TODO: SS beamformer?
-	// For the observation attribs, dump all stations participating in the observation (i.e. allStationNames(), not mergedStationNames()).
-	// This may not correspond to which station HDF5 groups will be written for TBB, but that is true anyway, regardless of any merging.
-	vector<string> allStNames(itsParset.allStationNames());
-	itsH5File.observationStationsList().create(allStNames.size()).set(allStNames); // TODO: SS beamformer?
-
-	double subbandBandwidth = itsParset.subbandBandwidth();
-	double channelBandwidth = itsParset.channelWidth();
-
-	// if PPF is used, the frequencies are shifted down by half a channel
-	// We'll annotate channel 0 to be below channel 1, but in reality it will
-	// contain frequencies from both the top and the bottom half-channel.
-	double frequencyOffsetPPF = itsParset.nrChannelsPerSubband() > 1 ? 0.5 * channelBandwidth : 0.0;
-
-	const vector<double> subbandCenterFrequencies(itsParset.subbandToFrequencyMapping());
-
-	double min_centerfrequency = *min_element( subbandCenterFrequencies.begin(), subbandCenterFrequencies.end() );
-	double max_centerfrequency = *max_element( subbandCenterFrequencies.begin(), subbandCenterFrequencies.end() );
-	double sum_centerfrequencies = accumulate( subbandCenterFrequencies.begin(), subbandCenterFrequencies.end(), 0.0 );
-
-	itsH5File.observationFrequencyMax()   .value = (max_centerfrequency + subbandBandwidth / 2 - frequencyOffsetPPF) / 1e6;
-	itsH5File.observationFrequencyMin()   .value = (min_centerfrequency - subbandBandwidth / 2 - frequencyOffsetPPF) / 1e6;
-	itsH5File.observationFrequencyCenter().value = (sum_centerfrequencies / subbandCenterFrequencies.size() - frequencyOffsetPPF) / 1e6;
-	itsH5File.observationFrequencyUnit()  .value = "MHz";
-
-	itsH5File.observationNofBitsPerSample().value = itsParset.nrBitsPerSample();
-	itsH5File.clockFrequency()             .value = itsParset.clockSpeed() / 1e6;
-	itsH5File.clockFrequencyUnit()         .value = "MHz";
-
-	itsH5File.antennaSet()     .value = itsParset.antennaSet();
-	itsH5File.filterSelection().value = itsParset.getString("Observation.bandFilter", "");
-
-	unsigned nrSAPs = itsParset.nrBeams();
-	vector<string> targets(nrSAPs);
-
-	for (unsigned sap = 0; sap < nrSAPs; sap++) {
-		targets[sap] = itsParset.beamTarget(sap);
-	}
-
-	itsH5File.targets().create(targets.size()).set(targets);
+        return;
+      }
+
+      off_t offset = 0;
+      if (frame.header.time == itsTime) {
+        offset = itsDatasetLen + sliceNr - itsExpSliceNr;
+      } else {   // crossed a seconds boundary, potentially more than once on excessive frame loss
+                 // A dump does not have to start at a sec bound, so up till the first bound, we may have had fewer than itsSampleFreq samples.
+        if (itsDatasetLen < (int32_t)itsSampleFreq) {
+          offset = itsDatasetLen;
+          itsTime++;
+        }
+        offset += (off_t)(frame.header.time - itsTime) * itsSampleFreq + sliceNr;
+      }
+
+      /*
+       * Flag lost frame(s) (assume no out-of-order, see below). Assumes all frames have the same nr of samples (fine).
+       * This cannot detect lost frames at the end of a dataset.
+       */
+      size_t nskipped = offset - itsDatasetLen;
+      if (nskipped > 0) {
+        appendFlags(itsDatasetLen, nskipped);         // no need to skip/lseek; we use pwrite() below
+      }
+
+      /*
+       * On a data checksum error, flag these samples.
+       * Flag zeroed payloads too, as incredibly unlikely to be correct, but not rejected by crc32tbb.
+       *
+       * TBB Design Doc states the crc32 is computed for transient data only, but it is also valid for spectral data.
+       * Except that it looks invalid for the first spectral frame each second, so skip checking those. // TODO: enable 'sliceNr != 0 && ' below after verifying with recent real data
+       */
+      unsigned nSamplesPerSubband = frame.header.nOfSamplesPerFrame / itsNrSubbands;   // any remainder is zeroed until the crc32
+      if (/*sliceNr != 0 && */ !crc32tbb(&frame.payload, 2 * MAX_TBB_SPECTRAL_NSAMPLES)) {
+        appendFlags(offset, nSamplesPerSubband);
+        uint32_t crc32;
+        memcpy(&crc32, &frame.payload.data[2 * MAX_TBB_SPECTRAL_NSAMPLES], sizeof crc32);         // strict-aliasing safe
+        LOG_WARN_STR("TBB: crc32: " << frame.header << " " << crc32);
+      } else if (hasAllZeroDataSamples(frame.payload, 2 * frame.header.nOfSamplesPerFrame)) {
+        appendFlags(offset, nSamplesPerSubband);
+      }
+
+      /*
+       * In practice, each frame contains the same number of samples for all subbands, so the received band number is always 0.
+       * Hence, disable support for cross-frame slices, such that in spectral mode we can also store flags in 1D.
+       */
+      /*unsigned bandNr = frame.header.bandSliceNr & TBB_BAND_NR_MASK;
+         if (bandNr + itsNrSubbands >= RSP_NR_SUBBANDS) {
+              LOG_WARN("TBB: Incorrect band number has been corrected to 0");
+              bandNr = 0; // safe default
+         }*/
+      // Data arrives interleaved, so reorder, one sample at a time. Esp. inefficient if only 1 subband, but fast enough.
+      for (unsigned i = 0; i < nSamplesPerSubband; ++i) {
+        for (unsigned j = 0; j < itsNrSubbands; ++j) {
+          off_t sampleOffset = (offset + subbandInfo.storageIndices[j /*(bandNr + j) % itsNrSubbands*/] * SPECTRAL_TRANSFORM_SIZE) * 2 * sizeof(frame.payload.data[0]);
+          pwrite(itsRawOut->fd, &frame.payload.data[2 * (i * itsNrSubbands + j)], 2 * sizeof(frame.payload.data[0]), sampleOffset);
+        }
+        offset += 1;
+      }
+
+      itsTime = frame.header.time;
+      itsExpSliceNr = sliceNr + nSamplesPerSubband;
+      itsDatasetLen = offset;
+    }
+
+    void TBB_Dipole::initTBB_DipoleDataset(const TBB_Header& header, const Parset& parset,
+                                           const StationMetaData& stationMetaData,
+                                           const SubbandInfo& subbandInfo,
+                                           const string& rawFilename, dal::TBB_Station& station)
+    {
+      // Override endianess. TBB data is always stored little endian and also received as such, so written as-is on any platform.
+      if (subbandInfo.centralFreqs.empty()) {   // transient mode
+        dal::TBB_DipoleDataset* dpDataset = new dal::TBB_DipoleDataset(station.dipole(header.stationID, header.rspID, header.rcuID));
+        itsDataset = static_cast<dal::TBB_Dataset<short>*>(dpDataset);
+
+        itsDataset->create1D(0, -1, LOFAR::basename(rawFilename), itsDataset->LITTLE);
+
+        dpDataset->sampleNumber().value = header.sampleNr;
+      } else {   // spectral mode
+        dal::TBB_SubbandsDataset* sbDataset = new dal::TBB_SubbandsDataset(station.subbands(header.stationID, header.rspID, header.rcuID));
+        itsDataset = reinterpret_cast<dal::TBB_Dataset<short>*>(sbDataset);         // not so nice
+
+        vector<ssize_t> dims(2), maxdims(2);
+        dims[0] = 0;
+        dims[1] = itsNrSubbands;
+        maxdims[0] = -1;         // only the 1st dim can be extendible
+        maxdims[1] = itsNrSubbands;
+        itsDataset->create(dims, maxdims, LOFAR::basename(rawFilename), itsDataset->LITTLE);
+
+        sbDataset->sliceNumber().value = header.bandSliceNr >> TBB_SLICE_NR_SHIFT;
+        sbDataset->spectralNofBands().value = itsNrSubbands;
+        sbDataset->spectralBands().create(itsNrSubbands).set(subbandInfo.centralFreqs);
+        sbDataset->spectralBandsUnit().value = "MHz";
+      }
+
+      itsDataset->groupType().value = "DipoleDataset";
+      itsDataset->stationID().value = header.stationID;
+      itsDataset->rspID().value = header.rspID;
+      itsDataset->rcuID().value = header.rcuID;
+
+      itsDataset->sampleFrequency().value = header.sampleFreq;
+      itsDataset->sampleFrequencyUnit().value = "MHz";
+
+      itsDataset->time().value = header.time;                  // in seconds
+
+      itsDataset->samplesPerFrame().value = header.nOfSamplesPerFrame;       // possibly sanitized
+      //itsDataset->dataLength().value is set at the end (destr)
+      //itsDataset->flagOffsets().value is set at the end (destr) // TODO: attrib -> 1D dataset
+      itsDataset->nyquistZone().value = parset.nyquistZone();
+
+      //#include "MAC/APL/PIC/RSP_Driver/src/CableSettings.h" or "RCUCables.h"
+      // Cable delays (optional) from static meta data.
+      //itsDataset->cableDelay().value = ???; // TODO
+      //itsDataset->cableDelayUnit().value = "ns";
+
+      /*
+         > No DIPOLE_CALIBRATION_DELAY_VALUE
+         > No DIPOLE_CALIBRATION_DELAY_UNIT
+         These can be calculated from the values in the LOFAR calibration
+         tables, but we can do that ourselves as long as the calibration table
+         values for each dipole are written to the new keyword. Sander: please put them in; see the code ref below.
+         DIPOLE_CALIBRATION_GAIN_CURVE.
+
+         // Use StaticMetaData/CalTables
+
+         calibration delay value en unit zijn nuttiger
+         en is het beste om die er gelijk in te schrijven
+         momenteel
+         In /opt/cep/lus/daily/Mon/src/code/src/PyCRTools/modules/metadata.py
+         heb ik code om de calibratie tabellen uit te lezen
+         De functie: getStationPhaseCalibration
+         elke .dat file bevat 96*512*2 doubles
+         voor 96 rcus, 512 frequenties, een complexe waarde
+         maar nu vraag ik me wel weer af of de frequenties of de rcus eerst komen
+       */
+      //NL stations: 768 kB, Int'l: 1.5 MB. Drop optional ASCI header. See also Station/StationCal/writeCalTable.m
+      //itsDataset->dipoleCalibrationDelay().value = ???; // Pim can compute this from the GainCurve below
+      //itsDataset->dipoleCalibrationDelayUnit().value = 's';
+      //itsDataset->dipoleCalibrationGainCurve().create(???.size()).set(???); // st cal table
+      //write cal tables into proper n-dimensional h5 data set, not attribute! Add access functions to DAL?
+
+      // Skip if station is not participating in the observation (should not happen).
+      if (stationMetaData.available && 2u * 3u * header.rcuID + 2u < stationMetaData.antPositions.size()) {
+        /*TODO
+         * Selecting the right positions depends on the antenna set. Checking vs the tables in
+         * lhn001:/home/veen/lus/src/code/data/lofar/antennapositions/ can help, but their repos may be outdated.
+         */
+        vector<double> antPos(3);
+        antPos[0] = stationMetaData.antPositions[2u * 3u * header.rcuID];
+        antPos[1] = stationMetaData.antPositions[2u * 3u * header.rcuID + 1u];
+        antPos[2] = stationMetaData.antPositions[2u * 3u * header.rcuID + 2u];
+        itsDataset->antennaPosition().create(antPos.size()).set(antPos);         // absolute position
+
+        itsDataset->antennaPositionUnit().value = "m";
+        itsDataset->antennaPositionFrame().value = parset.positionType();         // "ITRF"
+
+        /*
+         * The normal vector and rotation matrix are actually per antenna field,
+         * but given the HBA0/HBA1 "ears" depending on antenna set, it was
+         * decided to store them per antenna.
+         */
+        itsDataset->antennaNormalVector().create(stationMetaData.normalVector.size()).set(stationMetaData.normalVector);               // 3 doubles
+        itsDataset->antennaRotationMatrix().create(stationMetaData.rotationMatrix.size()).set(stationMetaData.rotationMatrix);         // 9 doubles, 3x3, row-major
+      }
+
+      // Tile beam is the analog beam. Only HBA can have one analog beam; optional.
+      if (parset.haveAnaBeam()) {
+        vector<double> anaBeamDir(parset.getAnaBeamDirection());
+        itsDataset->tileBeam().create(anaBeamDir.size()).set(anaBeamDir);              // always for beam 0
+        itsDataset->tileBeamUnit().value = "m";
+        itsDataset->tileBeamFrame().value = parset.getAnaBeamDirectionType();         // idem
+
+        //itsDataset->tileBeamDipoles().create(???.size()).set(???);
+
+        //itsDataset->tileCoefUnit().value = ???;
+        //itsDataset->tileBeamCoefs().value = ???;
+
+        // Relative position within the tile.
+        //itsDataset->tileDipolePosition().value = ???;
+        //itsDataset->tileDipolePositionUnit().value = ???;
+        //itsDataset->tileDipolePositionFrame().value = ???;
+      }
+
+      itsDataset->dispersionMeasure().value = parset.dispersionMeasure(0, 0);       // beam, pencil TODO: adapt too if >1 beam?
+      itsDataset->dispersionMeasureUnit().value = "pc/cm^3";
+    }
+
+    bool TBB_Dipole::hasAllZeroDataSamples(const TBB_Payload& payload, size_t nTrSamples) const
+    {
+      /*
+       * Good data only has a few consecutive zero values, so this loop terminates
+       * quickly, unless the antenna is broken or disabled, which happens sometimes.
+       */
+      for (size_t i = 0; i < nTrSamples; i++) {
+        if (payload.data[i] != 0) {
+          return false;
+        }
+      }
+
+      return true;
+    }
+
+    //////////////////////////////////////////////////////////////////////////////
+
+    TBB_Station::TBB_Station(const string& stationName, Mutex& h5Mutex, const Parset& parset,
+                             const StationMetaData& stationMetaData, const string& h5Filename)
+      : itsH5File(dal::TBB_File(h5Filename, dal::TBB_File::CREATE))
+      , itsH5Mutex(h5Mutex)
+      , itsStation(itsH5File.station(stationName))
+      , itsDipoles(MAX_RSPBOARDS /* = per station*/ * NR_RCUS_PER_RSPBOARD) // = 192 for int'l stations
+      , itsParset(parset)
+      , itsStationMetaData(stationMetaData)
+      , itsSubbandInfo(getSubbandInfo(parset))
+      , itsH5Filename(h5Filename)
+    {
+      initCommonLofarAttributes();
+      initTBB_RootAttributesAndGroups(stationName);
+    }
+
+    TBB_Station::~TBB_Station()
+    {
+      /*
+       * Apart from the main thread, also potentially (rarely) executed by an output thread on failed
+       * to insert new TBB_Station object into an std::map. For the output thread case, do dc and slH5.
+       */
+      ScopedDelayCancellation dc;
+      try {
+        ScopedLock slH5(itsH5Mutex);
+        itsStation.nofDipoles().value = itsStation.dipoles().size();
+      } catch (exception& exc) {   // dal::DALException or worse
+        LOG_WARN_STR("TBB: failed to set station NOF_DIPOLES attribute: " << exc.what());
+      }
+    }
+
+    double TBB_Station::getSubbandCentralFreq(unsigned subbandNr, unsigned nyquistZone, double sampleFreq) const
+    {
+      return (nyquistZone - 1 + (double)subbandNr / RSP_NR_SUBBANDS) * sampleFreq / 2.0;
+    }
+
+    SubbandInfo TBB_Station::getSubbandInfo(const Parset& parset) const
+    {
+      SubbandInfo info;
+
+      int operatingMode = itsParset.getInt("Observation.TBB.TBBsetting.operatingMode", 0);
+      if (operatingMode == TBB_SPECTRAL_MODE) {
+        vector<unsigned> tbbSubbandList(parset.getUint32Vector("Observation.TBB.TBBsetting.subbandList", true));
+        if (tbbSubbandList.empty() || tbbSubbandList.size() > MAX_TBB_SPECTRAL_NSAMPLES) {
+          throw CoInterfaceException("TBB: spectral mode selected, but empty or too long subband list provided");
+        }
+        sort(tbbSubbandList.begin(), tbbSubbandList.end());
+
+        unsigned nyquistZone = parset.nyquistZone();
+        unsigned sampleFreq = parset.clockSpeed() / 1000000;
+        info.centralFreqs.reserve(tbbSubbandList.size());
+        for (size_t i = 0; i < tbbSubbandList.size(); ++i) {
+          info.centralFreqs.push_back(getSubbandCentralFreq(tbbSubbandList[i], nyquistZone, sampleFreq));
+        }
+
+        // "Invert" tbbSubbandList, such that we can later simply lookup where to store a subband.
+        info.storageIndices.resize(RSP_NR_SUBBANDS, (unsigned)-1);
+        for (unsigned i = 0; i < tbbSubbandList.size(); ++i) {
+          unsigned sbNr = tbbSubbandList[i];
+          if (sbNr >= RSP_NR_SUBBANDS) {
+            throw CoInterfaceException("TBB: indicated subband number too high");
+          }
+          info.storageIndices[sbNr] = i;
+        }
+      }
+
+      return info;
+    }
+
+    string TBB_Station::getRawFilename(unsigned rspID, unsigned rcuID) const
+    {
+      string rawFilename(itsH5Filename);
+      string rsprcuStr(formatString("_%03u%03u", rspID, rcuID));
+      size_t pos = rawFilename.find('_', rawFilename.find('_') + 1);
+      rawFilename.insert(pos, rsprcuStr);   // insert _rsp/rcu IDs after station name (2nd '_')
+      rawFilename.resize(rawFilename.size() - (sizeof(".h5") - 1));
+      rawFilename.append(".raw");
+      return rawFilename;
+    }
+
+    void TBB_Station::processPayload(const TBB_Frame& frame)
+    {
+      // Guard against bogus incoming rsp/rcu IDs with at().
+      TBB_Dipole& dipole(itsDipoles.at(frame.header.rspID * NR_RCUS_PER_RSPBOARD + frame.header.rcuID));
+
+      // Each dipole stream is sent to a single port (thread), so no need to grab a mutex here to avoid double init.
+      if (!dipole.isInitialized()) {
+        string rawFilename(getRawFilename(frame.header.rspID, frame.header.rcuID));
+        // Do pass a ref to the h5 mutex for when writing into the HDF5 file.
+        dipole.init(frame.header, itsParset, itsStationMetaData, itsSubbandInfo,
+                    rawFilename, itsStation, itsH5Mutex);
+      }
+
+      if (itsSubbandInfo.centralFreqs.empty()) {   // transient mode
+        dipole.processTransientFrameData(frame);
+      } else {   // spectral mode
+        dipole.processSpectralFrameData(frame, itsSubbandInfo);
+      }
+    }
+
+    string TBB_Station::utcTimeStr(double time) const
+    {
+      time_t timeSec = static_cast<time_t>(floor(time));
+      unsigned long timeNSec = static_cast<unsigned long>(round( (time - floor(time)) * 1e9 ));
+
+      char utc_str[50];
+      struct tm tm;
+      gmtime_r(&timeSec, &tm);
+      if (strftime(utc_str, sizeof(utc_str), "%Y-%m-%dT%H:%M:%S", &tm) == 0) {
+        return "";
+      }
+
+      return formatString("%s.%09luZ", utc_str, timeNSec);
+    }
+
+    double TBB_Station::toMJD(double time) const
+    {
+      // January 1st, 1970, 00:00:00 (GMT) equals 40587.0 Modify Julian Day number
+      return 40587.0 + time / (24 * 60 * 60);
+    }
+
+    void TBB_Station::initCommonLofarAttributes()
+    {
+      itsH5File.groupType().value = "Root";
+
+      //itsH5File.fileName() is set by DAL
+      //itsH5File.fileDate() is set by DAL
+      //itsH5File.fileType() is set by DAL
+      //itsH5File.telescope() is set by DAL
+
+      itsH5File.projectID().value = itsParset.getString("Observation.Campaign.name", "");
+      itsH5File.projectTitle().value = itsParset.getString("Observation.Scheduler.taskName", "");
+      itsH5File.projectPI().value = itsParset.getString("Observation.Campaign.PI", "");
+      ostringstream oss;
+      // Use ';' instead of ',' to pretty print, because ',' already occurs in names (e.g. Smith, J.).
+      writeVector(oss, itsParset.getStringVector("Observation.Campaign.CO_I", ""), "; ", "", "");
+      itsH5File.projectCOI().value = oss.str();
+      itsH5File.projectContact().value = itsParset.getString("Observation.Campaign.contact", "");
+
+      itsH5File.observationID().value = formatString("%u", itsParset.observationID());
+
+      itsH5File.observationStartUTC().value = utcTimeStr(itsParset.startTime());
+      itsH5File.observationStartMJD().value = toMJD(itsParset.startTime());
+
+      // The stop time can be a bit further than the one actually specified, because we process in blocks.
+      unsigned nrBlocks = floor((itsParset.stopTime() - itsParset.startTime()) / itsParset.CNintegrationTime());   // TODO: check vs bf: unsigned nrBlocks = parset.nrBeamFormedBlocks();
+      double stopTime = itsParset.startTime() + nrBlocks * itsParset.CNintegrationTime();
+
+      itsH5File.observationEndUTC().value = utcTimeStr(stopTime);
+      itsH5File.observationEndMJD().value = toMJD(stopTime);
+
+      itsH5File.observationNofStations().value = itsParset.nrStations();   // TODO: SS beamformer?
+      // For the observation attribs, dump all stations participating in the observation (i.e. allStationNames(), not mergedStationNames()).
+      // This may not correspond to which station HDF5 groups will be written for TBB, but that is true anyway, regardless of any merging.
+      vector<string> allStNames(itsParset.allStationNames());
+      itsH5File.observationStationsList().create(allStNames.size()).set(allStNames);   // TODO: SS beamformer?
+
+      double subbandBandwidth = itsParset.subbandBandwidth();
+      double channelBandwidth = itsParset.channelWidth();
+
+      // if PPF is used, the frequencies are shifted down by half a channel
+      // We'll annotate channel 0 to be below channel 1, but in reality it will
+      // contain frequencies from both the top and the bottom half-channel.
+      double frequencyOffsetPPF = itsParset.nrChannelsPerSubband() > 1 ? 0.5 * channelBandwidth : 0.0;
+
+      const vector<double> subbandCenterFrequencies(itsParset.subbandToFrequencyMapping());
+
+      double min_centerfrequency = *min_element( subbandCenterFrequencies.begin(), subbandCenterFrequencies.end() );
+      double max_centerfrequency = *max_element( subbandCenterFrequencies.begin(), subbandCenterFrequencies.end() );
+      double sum_centerfrequencies = accumulate( subbandCenterFrequencies.begin(), subbandCenterFrequencies.end(), 0.0 );
+
+      itsH5File.observationFrequencyMax().value = (max_centerfrequency + subbandBandwidth / 2 - frequencyOffsetPPF) / 1e6;
+      itsH5File.observationFrequencyMin().value = (min_centerfrequency - subbandBandwidth / 2 - frequencyOffsetPPF) / 1e6;
+      itsH5File.observationFrequencyCenter().value = (sum_centerfrequencies / subbandCenterFrequencies.size() - frequencyOffsetPPF) / 1e6;
+      itsH5File.observationFrequencyUnit().value = "MHz";
+
+      itsH5File.observationNofBitsPerSample().value = itsParset.nrBitsPerSample();
+      itsH5File.clockFrequency().value = itsParset.clockSpeed() / 1e6;
+      itsH5File.clockFrequencyUnit().value = "MHz";
+
+      itsH5File.antennaSet().value = itsParset.antennaSet();
+      itsH5File.filterSelection().value = itsParset.getString("Observation.bandFilter", "");
+
+      unsigned nrSAPs = itsParset.nrBeams();
+      vector<string> targets(nrSAPs);
+
+      for (unsigned sap = 0; sap < nrSAPs; sap++) {
+        targets[sap] = itsParset.beamTarget(sap);
+      }
+
+      itsH5File.targets().create(targets.size()).set(targets);
 
 #ifndef TBB_WRITER_VERSION
-	itsH5File.systemVersion().value = LOFAR::StorageVersion::getVersion();
+      itsH5File.systemVersion().value = LOFAR::StorageVersion::getVersion();
 #else
-	itsH5File.systemVersion().value = TBB_WRITER_VERSION;
+      itsH5File.systemVersion().value = TBB_WRITER_VERSION;
 #endif
 
-	//itsH5File.docName() is set by DAL
-	//itsH5File.docVersion() is set by DAL
-
-	itsH5File.notes().value = "";
-}
-
-// The writer creates one HDF5 file per station, so create only one Station Group here.
-void TBB_Station::initTBB_RootAttributesAndGroups(const string& stName) {
-	int operatingMode = itsParset.getInt("Observation.TBB.TBBsetting.operatingMode", 0);
-	if (operatingMode == TBB_SPECTRAL_MODE) {
-		itsH5File.operatingMode().value = "spectral";
-		itsH5File.spectralTransformSize().value = SPECTRAL_TRANSFORM_SIZE;
-	} else {
-		itsH5File.operatingMode().value = "transient";
-	}
-
-	itsH5File.nofStations().value = 1u;
-
-	// Find the station name we are looking for and retrieve its pos using the found idx.
-	vector<double> stPos;
-
-	vector<string> obsStationNames(itsParset.allStationNames());
-	vector<string>::const_iterator nameIt(obsStationNames.begin());
-
-	vector<double> stationPositions(itsParset.positions()); // len must be (is generated as) 3x #stations
-	vector<double>::const_iterator posIt(stationPositions.begin());
-	string stFullName;
-	for ( ; nameIt != obsStationNames.end(); ++nameIt, posIt += 3) {
-		stFullName = *nameIt;
-		if (stName == stFullName.substr(0, stName.size())) { // for TBB, consider "CS001" == "CS001HBA0" etc
-			break;
-		}
-	}
-	if (nameIt != obsStationNames.end() && posIt < stationPositions.end()) { // found?
-		stPos.assign(posIt, posIt + 3);
-	} else { // N/A, but create the group anyway to be able to store incoming data.
-		stFullName.clear();
-	}
-	itsStation.create();
-	initStationGroup(itsStation, stName, stFullName, stPos);
-
-	// Trigger Group
-	dal::TBB_Trigger tg(itsH5File.trigger());
-	tg.create();
-	initTriggerGroup(tg);
-}
-
-void TBB_Station::initStationGroup(dal::TBB_Station& st, const string& stName,
-                                   const string& stFullName, const vector<double>& stPosition) {
-	st.groupType()  .value = "StationGroup";
-	st.stationName().value = stName;
-
-	if (!stPosition.empty()) {
-		st.stationPosition()     .create(stPosition.size()).set(stPosition);
-		st.stationPositionUnit() .value = "m";
-		st.stationPositionFrame().value = itsParset.positionType();
-	}
-
-	// digital beam(s)
-	if (itsParset.nrBeams() > 0) { // TODO: adapt DAL, so we can write all digital beams, analog too if tiles (HBA)
-		vector<double> beamDir(itsParset.getBeamDirection(0));
-		st.beamDirection()     .create(beamDir.size()).set(beamDir);
-		st.beamDirectionUnit() .value = "m";
-		st.beamDirectionFrame().value = itsParset.getBeamDirectionType(0);
-	}
-
-	// Parset clockCorrectionTime() also returns 0.0 if stFullName is unknown. Avoid this ambiguity.
-	try {
-		double clockCorr = itsParset.getDouble(string("PIC.Core.") + stFullName + ".clockCorrectionTime");
-		st.clockOffset()    .value = clockCorr;
-		st.clockOffsetUnit().value = "s";
-	} catch (APSException& exc) {
-		LOG_WARN_STR("TBB: failed to write station clock offset and unit attributes: " << exc);
-	}
-
-	//st.nofDipoles.value is set at the end (destr)
-}
-
-void TBB_Station::initTriggerGroup(dal::TBB_Trigger& tg) {
-	tg.groupType()     .value = "TriggerGroup";
-	tg.triggerType()   .value = "Unknown";
-	tg.triggerVersion().value = 0; // There is no trigger algorithm info available to us yet.
-
-	// Trigger parameters (how to decide if there is a trigger; per obs)
-	try {
-		tg.paramCoincidenceChannels().value = itsParset.getInt   ("Observation.ObservationControl.StationControl.TBBControl.NoCoincChann");
-		tg.paramCoincidenceTime()    .value = itsParset.getDouble("Observation.ObservationControl.StationControl.TBBControl.CoincidenceTime");
-		tg.paramDirectionFit()       .value = itsParset.getString("Observation.ObservationControl.StationControl.TBBControl.DoDirectionFit");
-		tg.paramElevationMin()       .value = itsParset.getDouble("Observation.ObservationControl.StationControl.TBBControl.MinElevation");
-		tg.paramFitVarianceMax()     .value = itsParset.getDouble("Observation.ObservationControl.StationControl.TBBControl.MaxFitVariance");
-	} catch (APSException& exc) {
-		LOG_WARN_STR("TBB: Failed to write trigger parameters: " << exc);
-	}
-
-	// Trigger data (per trigger)
-	// N/A atm
-
-	/*
-	 * It is very likely that the remaining (optional) attributes and the trigger alg
-	 * will undergo many changes. TBB user/science applications will have to retrieve and
-	 * set the remaining fields "by hand" for a while using e.g. DAL by checking and
-	 * specifying each attribute name presumed available.
-	 * Until it is clear what is needed and available, this cannot be standardized.
-	 *
-	 * If you add fields using parset getTYPE(), catch the possible APSException as above.
-	 */
-
-}
-
-//////////////////////////////////////////////////////////////////////////////
-
-TBB_StreamWriter::TBB_StreamWriter(TBB_Writer& writer, const string& inputStreamName,
-                                   size_t expNTrSamples, const string& logPrefix,
-                                   int& inExitStatus, int& outExitStatus)
-: itsWriter(writer)
-, itsInputStreamName(inputStreamName)
-, itsExpFrameSize(sizeof(TBB_Header) + expNTrSamples * sizeof(int16_t) + sizeof(uint32_t))
-, itsLogPrefix(logPrefix)
-, itsInExitStatus(inExitStatus)
-, itsOutExitStatus(outExitStatus)
-{
-	itsFrameBuffers = new TBB_Frame[nrFrameBuffers];
-	//itsReceiveQueue.reserve(nrFrameBuffers); // Queue does not support this...
-	try {
-		for (unsigned i = nrFrameBuffers; i > 0; ) {
-			itsFreeQueue.append(&itsFrameBuffers[--i]);
-		}
-	} catch (exception& exc) {
-		delete[] itsFrameBuffers;
-		throw;
-	}
-
-	itsTimeoutStamp.tv_sec = 0;
-	itsTimeoutStamp.tv_usec = 0;
-
-	itsOutputThread = NULL;
-	try {
-		itsOutputThread = new Thread(this, &TBB_StreamWriter::mainOutputLoop, logPrefix + "OutputThread: ");
-		itsInputThread  = new Thread(this, &TBB_StreamWriter::mainInputLoop,  logPrefix + "InputThread: ");
-	} catch (exception& exc) {
-		if (itsOutputThread != NULL) {
-			try {
-				itsReceiveQueue.append(NULL); // tell output thread to stop
-			} catch (exception& exc) {
-				LOG_WARN_STR("TBB: failed to notify output thread to terminate: " << exc.what());
-			}
-			delete itsOutputThread;
-		}
-		delete[] itsFrameBuffers;
-		throw;
-	}
+      //itsH5File.docName() is set by DAL
+      //itsH5File.docVersion() is set by DAL
+
+      itsH5File.notes().value = "";
+    }
+
+    // The writer creates one HDF5 file per station, so create only one Station Group here.
+    void TBB_Station::initTBB_RootAttributesAndGroups(const string& stName)
+    {
+      int operatingMode = itsParset.getInt("Observation.TBB.TBBsetting.operatingMode", 0);
+      if (operatingMode == TBB_SPECTRAL_MODE) {
+        itsH5File.operatingMode().value = "spectral";
+        itsH5File.spectralTransformSize().value = SPECTRAL_TRANSFORM_SIZE;
+      } else {
+        itsH5File.operatingMode().value = "transient";
+      }
+
+      itsH5File.nofStations().value = 1u;
+
+      // Find the station name we are looking for and retrieve its pos using the found idx.
+      vector<double> stPos;
+
+      vector<string> obsStationNames(itsParset.allStationNames());
+      vector<string>::const_iterator nameIt(obsStationNames.begin());
+
+      vector<double> stationPositions(itsParset.positions());   // len must be (is generated as) 3x #stations
+      vector<double>::const_iterator posIt(stationPositions.begin());
+      string stFullName;
+      for (; nameIt != obsStationNames.end(); ++nameIt, posIt += 3) {
+        stFullName = *nameIt;
+        if (stName == stFullName.substr(0, stName.size())) {         // for TBB, consider "CS001" == "CS001HBA0" etc
+          break;
+        }
+      }
+      if (nameIt != obsStationNames.end() && posIt < stationPositions.end()) {   // found?
+        stPos.assign(posIt, posIt + 3);
+      } else {   // N/A, but create the group anyway to be able to store incoming data.
+        stFullName.clear();
+      }
+      itsStation.create();
+      initStationGroup(itsStation, stName, stFullName, stPos);
+
+      // Trigger Group
+      dal::TBB_Trigger tg(itsH5File.trigger());
+      tg.create();
+      initTriggerGroup(tg);
+    }
+
+    void TBB_Station::initStationGroup(dal::TBB_Station& st, const string& stName,
+                                       const string& stFullName, const vector<double>& stPosition)
+    {
+      st.groupType().value = "StationGroup";
+      st.stationName().value = stName;
+
+      if (!stPosition.empty()) {
+        st.stationPosition().create(stPosition.size()).set(stPosition);
+        st.stationPositionUnit().value = "m";
+        st.stationPositionFrame().value = itsParset.positionType();
+      }
+
+      // digital beam(s)
+      if (itsParset.nrBeams() > 0) {   // TODO: adapt DAL, so we can write all digital beams, analog too if tiles (HBA)
+        vector<double> beamDir(itsParset.getBeamDirection(0));
+        st.beamDirection().create(beamDir.size()).set(beamDir);
+        st.beamDirectionUnit().value = "m";
+        st.beamDirectionFrame().value = itsParset.getBeamDirectionType(0);
+      }
+
+      // Parset clockCorrectionTime() also returns 0.0 if stFullName is unknown. Avoid this ambiguity.
+      try {
+        double clockCorr = itsParset.getDouble(string("PIC.Core.") + stFullName + ".clockCorrectionTime");
+        st.clockOffset().value = clockCorr;
+        st.clockOffsetUnit().value = "s";
+      } catch (APSException& exc) {
+        LOG_WARN_STR("TBB: failed to write station clock offset and unit attributes: " << exc);
+      }
+
+      //st.nofDipoles.value is set at the end (destr)
+    }
+
+    void TBB_Station::initTriggerGroup(dal::TBB_Trigger& tg)
+    {
+      tg.groupType().value = "TriggerGroup";
+      tg.triggerType().value = "Unknown";
+      tg.triggerVersion().value = 0;   // There is no trigger algorithm info available to us yet.
+
+      // Trigger parameters (how to decide if there is a trigger; per obs)
+      try {
+        tg.paramCoincidenceChannels().value = itsParset.getInt   ("Observation.ObservationControl.StationControl.TBBControl.NoCoincChann");
+        tg.paramCoincidenceTime().value = itsParset.getDouble("Observation.ObservationControl.StationControl.TBBControl.CoincidenceTime");
+        tg.paramDirectionFit().value = itsParset.getString("Observation.ObservationControl.StationControl.TBBControl.DoDirectionFit");
+        tg.paramElevationMin().value = itsParset.getDouble("Observation.ObservationControl.StationControl.TBBControl.MinElevation");
+        tg.paramFitVarianceMax().value = itsParset.getDouble("Observation.ObservationControl.StationControl.TBBControl.MaxFitVariance");
+      } catch (APSException& exc) {
+        LOG_WARN_STR("TBB: Failed to write trigger parameters: " << exc);
+      }
+
+      // Trigger data (per trigger)
+      // N/A atm
+
+      /*
+       * It is very likely that the remaining (optional) attributes and the trigger alg
+       * will undergo many changes. TBB user/science applications will have to retrieve and
+       * set the remaining fields "by hand" for a while using e.g. DAL by checking and
+       * specifying each attribute name presumed available.
+       * Until it is clear what is needed and available, this cannot be standardized.
+       *
+       * If you add fields using parset getTYPE(), catch the possible APSException as above.
+       */
+
+    }
+
+    //////////////////////////////////////////////////////////////////////////////
+
+    TBB_StreamWriter::TBB_StreamWriter(TBB_Writer& writer, const string& inputStreamName,
+                                       size_t expNTrSamples, const string& logPrefix,
+                                       int& inExitStatus, int& outExitStatus)
+      : itsWriter(writer)
+      , itsInputStreamName(inputStreamName)
+      , itsExpFrameSize(sizeof(TBB_Header) + expNTrSamples * sizeof(int16_t) + sizeof(uint32_t))
+      , itsLogPrefix(logPrefix)
+      , itsInExitStatus(inExitStatus)
+      , itsOutExitStatus(outExitStatus)
+    {
+      itsFrameBuffers = new TBB_Frame[nrFrameBuffers];
+      //itsReceiveQueue.reserve(nrFrameBuffers); // Queue does not support this...
+      try {
+        for (unsigned i = nrFrameBuffers; i > 0; ) {
+          itsFreeQueue.append(&itsFrameBuffers[--i]);
+        }
+      } catch (exception& exc) {
+        delete[] itsFrameBuffers;
+        throw;
+      }
+
+      itsTimeoutStamp.tv_sec = 0;
+      itsTimeoutStamp.tv_usec = 0;
+
+      itsOutputThread = NULL;
+      try {
+        itsOutputThread = new Thread(this, &TBB_StreamWriter::mainOutputLoop, logPrefix + "OutputThread: ");
+        itsInputThread = new Thread(this, &TBB_StreamWriter::mainInputLoop,  logPrefix + "InputThread: ");
+      } catch (exception& exc) {
+        if (itsOutputThread != NULL) {
+          try {
+            itsReceiveQueue.append(NULL);                     // tell output thread to stop
+          } catch (exception& exc) {
+            LOG_WARN_STR("TBB: failed to notify output thread to terminate: " << exc.what());
+          }
+          delete itsOutputThread;
+        }
+        delete[] itsFrameBuffers;
+        throw;
+      }
 
 #ifdef DUMP_RAW_STATION_FRAMES
-	struct timeval ts;
-	::gettimeofday(&ts, NULL);
-	string rawStDataFilename("tbb_raw_station_frames_" + formatString("%ld_%p", ts.tv_sec, (void*)itsFrameBuffers) + ".fraw");
-	try {
-		itsRawStationData = new FileStream(rawStDataFilename, S_IRUSR | S_IWUSR | S_IRGRP | S_IWGRP | S_IROTH);
-	} catch (exception& exc) {
-		LOG_WARN_STR("Failed to open raw station data file: " << exc.what());
-	}
+      struct timeval ts;
+      ::gettimeofday(&ts, NULL);
+      string rawStDataFilename("tbb_raw_station_frames_" + formatString("%ld_%p", ts.tv_sec, (void*)itsFrameBuffers) + ".fraw");
+      try {
+        itsRawStationData = new FileStream(rawStDataFilename, S_IRUSR | S_IWUSR | S_IRGRP | S_IWGRP | S_IROTH);
+      } catch (exception& exc) {
+        LOG_WARN_STR("Failed to open raw station data file: " << exc.what());
+      }
 #endif
-}
+    }
 
-TBB_StreamWriter::~TBB_StreamWriter() {
-	// Only cancel the input thread, which will notify the output thread.
-	itsInputThread->cancel();
+    TBB_StreamWriter::~TBB_StreamWriter()
+    {
+      // Only cancel the input thread, which will notify the output thread.
+      itsInputThread->cancel();
 
 #ifdef DUMP_RAW_STATION_FRAMES
-	delete itsRawStationData;
+      delete itsRawStationData;
 #endif
-	delete itsInputThread;
-	delete itsOutputThread;
-	delete[] itsFrameBuffers;
-}
-
-time_t TBB_StreamWriter::getTimeoutStampSec() const {
-	return itsTimeoutStamp.tv_sec; // racy read (and no access once guarantee), but only to terminate after timeout
-}
-
-void TBB_StreamWriter::frameHeaderLittleToHost(TBB_Header& header) const {
-	header.seqNr              = le32toh(header.seqNr); // set to 0 for crc16, otherwise unused
-	header.time               = le32toh(header.time);
-	header.sampleNr           = le32toh(header.sampleNr);
-	header.nOfSamplesPerFrame = le16toh(header.nOfSamplesPerFrame);
-	header.nOfFreqBands       = le16toh(header.nOfFreqBands);
-	header.spare              = le16toh(header.spare); // unused
-	header.crc16              = le16toh(header.crc16);
-}
-
-void TBB_StreamWriter::correctSampleNr(TBB_Header& header) const {
-	/*
-	 * LOFAR uses a sample rate of either 200 or 160 MHz.
-	 * In transient mode, at 200 MHz we get 1024 samples per frame, and thus 195213.5 frames per second.
-	 * This means that every 2 seconds, a frame overlaps a seconds boundary. But the sample values generated
-	 * by the RSPs start at zero for each second, even if it should start at 512 for odd timestamps at 200 MHz.
-	 * At 160 MHz sample rate, an integer number of frames fits in a second (156250), so no correction is needed.
-	 */
-	if (header.sampleFreq == 200 && header.time & 1) {
-		header.sampleNr += header.nOfSamplesPerFrame / 2;
-	}
-}
-
-/*
- * Assumes that the seqNr field in the TBB_Frame at buf has been zeroed.
- * Takes a ptr to a complete header. (Drop too small frames earlier.)
- */
-bool TBB_StreamWriter::crc16tbb(const TBB_Header* header) {
-	itsCrc16gen.reset();
-
-	const char* ptr = reinterpret_cast<const char*>(header); // to char* for strict-aliasing
-	for (unsigned i = 0; i < sizeof(*header) - sizeof(header->crc16); i += 2) {
-		int16_t val;
-		memcpy(&val, &ptr[i], sizeof val); // strict-aliasing safe
-		val = __bswap_16(val);
-		itsCrc16gen.process_bytes(&val, sizeof val);
-	}
-
-	// It is also possible to process header->crc16 and see if checksum() equals 0.
-	uint16_t crc16val = header->crc16;
+      delete itsInputThread;
+      delete itsOutputThread;
+      delete[] itsFrameBuffers;
+    }
+
+    time_t TBB_StreamWriter::getTimeoutStampSec() const
+    {
+      return itsTimeoutStamp.tv_sec;   // racy read (and no access once guarantee), but only to terminate after timeout
+    }
+
+    void TBB_StreamWriter::frameHeaderLittleToHost(TBB_Header& header) const
+    {
+      header.seqNr = le32toh(header.seqNr);                // set to 0 for crc16, otherwise unused
+      header.time = le32toh(header.time);
+      header.sampleNr = le32toh(header.sampleNr);
+      header.nOfSamplesPerFrame = le16toh(header.nOfSamplesPerFrame);
+      header.nOfFreqBands = le16toh(header.nOfFreqBands);
+      header.spare = le16toh(header.spare);                // unused
+      header.crc16 = le16toh(header.crc16);
+    }
+
+    void TBB_StreamWriter::correctSampleNr(TBB_Header& header) const
+    {
+      /*
+       * LOFAR uses a sample rate of either 200 or 160 MHz.
+       * In transient mode, at 200 MHz we get 1024 samples per frame, and thus 195213.5 frames per second.
+       * This means that every 2 seconds, a frame overlaps a seconds boundary. But the sample values generated
+       * by the RSPs start at zero for each second, even if it should start at 512 for odd timestamps at 200 MHz.
+       * At 160 MHz sample rate, an integer number of frames fits in a second (156250), so no correction is needed.
+       */
+      if (header.sampleFreq == 200 && header.time & 1) {
+        header.sampleNr += header.nOfSamplesPerFrame / 2;
+      }
+    }
+
+    /*
+     * Assumes that the seqNr field in the TBB_Frame at buf has been zeroed.
+     * Takes a ptr to a complete header. (Drop too small frames earlier.)
+     */
+    bool TBB_StreamWriter::crc16tbb(const TBB_Header* header)
+    {
+      itsCrc16gen.reset();
+
+      const char* ptr = reinterpret_cast<const char*>(header);   // to char* for strict-aliasing
+      for (unsigned i = 0; i < sizeof(*header) - sizeof(header->crc16); i += 2) {
+        int16_t val;
+        memcpy(&val, &ptr[i], sizeof val);         // strict-aliasing safe
+        val = __bswap_16(val);
+        itsCrc16gen.process_bytes(&val, sizeof val);
+      }
+
+      // It is also possible to process header->crc16 and see if checksum() equals 0.
+      uint16_t crc16val = header->crc16;
 #if __BYTE_ORDER == __BIG_ENDIAN || defined WORDS_BIGENDIAN // for cross-compilation on little endian; fails for big->little
-	crc16val = __bswap_16(crc16val);
+      crc16val = __bswap_16(crc16val);
 #endif
-	return itsCrc16gen.checksum() == crc16val;
-}
-
-/*
- * Note: The nTrSamples arg is without the space taken by the crc32 in payload (drop too small frames earlier)
- * and in terms of the transient sample size, i.e. sizeof(int16_t).
- */
-bool TBB_Dipole::crc32tbb(const TBB_Payload* payload, size_t nTrSamples) {
-	itsCrc32gen.reset();
-
-	const char* ptr = reinterpret_cast<const char*>(payload->data); // to char* for strict-aliasing
-	for (unsigned i = 0; i < nTrSamples * sizeof(int16_t); i += 2) {
-		int16_t val;
-		memcpy(&val, &ptr[i], sizeof val); // strict-aliasing safe
-		val = __bswap_16(val);
-		itsCrc32gen.process_bytes(&val, sizeof val);
-	}
-
-	// It is also possible to process crc32val and see if checksum() equals 0.
-	uint32_t crc32val;
-	memcpy(&crc32val, &ptr[nTrSamples * sizeof(int16_t)], sizeof crc32val); // idem
+      return itsCrc16gen.checksum() == crc16val;
+    }
+
+    /*
+     * Note: The nTrSamples arg is without the space taken by the crc32 in payload (drop too small frames earlier)
+     * and in terms of the transient sample size, i.e. sizeof(int16_t).
+     */
+    bool TBB_Dipole::crc32tbb(const TBB_Payload* payload, size_t nTrSamples)
+    {
+      itsCrc32gen.reset();
+
+      const char* ptr = reinterpret_cast<const char*>(payload->data);   // to char* for strict-aliasing
+      for (unsigned i = 0; i < nTrSamples * sizeof(int16_t); i += 2) {
+        int16_t val;
+        memcpy(&val, &ptr[i], sizeof val);         // strict-aliasing safe
+        val = __bswap_16(val);
+        itsCrc32gen.process_bytes(&val, sizeof val);
+      }
+
+      // It is also possible to process crc32val and see if checksum() equals 0.
+      uint32_t crc32val;
+      memcpy(&crc32val, &ptr[nTrSamples * sizeof(int16_t)], sizeof crc32val);   // idem
 #if __BYTE_ORDER == __BIG_ENDIAN || defined WORDS_BIGENDIAN // for cross-compilation on little endian; fails for big->little
-	crc32val = __bswap_32(crc32val);
+      crc32val = __bswap_32(crc32val);
 #endif
-	return itsCrc32gen.checksum() == crc32val;
-}
-
-/*
- * Process the incoming TBB header.
- * Note that this function may update the header, but not its crc, so you cannot re-verify it.
- */
-void TBB_StreamWriter::processHeader(TBB_Header& header, size_t recvPayloadSize) {
-	header.seqNr = 0; // For the header crc. Don't save/restore it as we don't need this field.
-	if (!crc16tbb(&header)) {
-		/*
-		 * The TBB spec states that each frame has the same fixed length, so the previous values are a good base guess if the header crc fails.
-		 * But it is not clear if it is worth the effort to try to guess to fix something up. For now, drop and log.
-		 */
-		THROW(TBB_MalformedFrameException, "crc16: " << header); // header not yet bswapped on _big_ endian
-	}
-
-	/*
-	 * Use received size instead of received nOfSamplesPerFrame header field to access data, to be safe.
-	 * Just write it into the header; it's most likely already there.
-	 */
-	if (recvPayloadSize < 2 * sizeof(int16_t) + sizeof(uint32_t)) {
-		// Drop it. The data crc routine only works for at least 2 transient or 1 spectral sample(s) + a crc32.
-		THROW(TBB_MalformedFrameException, "dropping too small frame: " << recvPayloadSize);
-	}
-	frameHeaderLittleToHost(header);
-	// Verify indicated sample freq, also to reject zeroed headers, which the crc16tbb does not reject.
-	if (header.sampleFreq != 200 && header.sampleFreq != 160) {
-		THROW(TBB_MalformedFrameException, "dropping frame with invalid sample frequency in frame header: " << header.sampleFreq);
-	}
-
-	size_t sampleSize;
-	if (header.nOfFreqBands == 0) { // transient mode TODO: do not rely on data to check data size!
-		correctSampleNr(header);
-		sampleSize = sizeof(int16_t);
-	} else { // spectral mode
-		sampleSize = 2 * sizeof(int16_t);
-	}
-	// Div with a bad recvPayloadSize could round. Causes crc32 error at worst, but avoids wrong or misaligned memory access.
-	header.nOfSamplesPerFrame = (recvPayloadSize - sizeof(uint32_t)) / sampleSize;
-}
-
-void TBB_StreamWriter::mainInputLoop() {
-	// Always (try to) notify output thread to stop at the end, else we may hang.
-	class NotifyOutputThread {
-		Queue<TBB_Frame*>& queue;
-	public:
-		NotifyOutputThread(Queue<TBB_Frame*>& queue) : queue(queue) { }
-		~NotifyOutputThread() {
-			try {
-				queue.append(NULL);
-			} catch (exception& exc) {
-				LOG_WARN_STR("TBB: may have failed to notify output thread to terminate: " << exc.what());
-			}
-		}
-	} notifyOutThr(itsReceiveQueue);
-
-	Stream* stream;
-	try {
-		stream = createStream(itsInputStreamName, true);
-	} catch (Exception& exc) { // SystemCallException or CoInterfaceException (or TimeOutException)
-		LOG_WARN_STR(itsLogPrefix << exc);
-		itsInExitStatus = 1;
-		return;
-	}
-	LOG_INFO_STR(itsLogPrefix << "reading incoming data from " << itsInputStreamName);
-
-	while (1) {
-		TBB_Frame* frame;
-
-		try {
-			frame = itsFreeQueue.remove();
-
-			size_t nread = stream->tryRead(frame, itsExpFrameSize); // read() once for udp
-
-			// Notify master that we are still busy. (Racy, but ok, see the timeoutstamp decl.)
-			::gettimeofday(&itsTimeoutStamp, NULL);
+      return itsCrc32gen.checksum() == crc32val;
+    }
+
+    /*
+     * Process the incoming TBB header.
+     * Note that this function may update the header, but not its crc, so you cannot re-verify it.
+     */
+    void TBB_StreamWriter::processHeader(TBB_Header& header, size_t recvPayloadSize)
+    {
+      header.seqNr = 0;   // For the header crc. Don't save/restore it as we don't need this field.
+      if (!crc16tbb(&header)) {
+        /*
+         * The TBB spec states that each frame has the same fixed length, so the previous values are a good base guess if the header crc fails.
+         * But it is not clear if it is worth the effort to try to guess to fix something up. For now, drop and log.
+         */
+        THROW(TBB_MalformedFrameException, "crc16: " << header);         // header not yet bswapped on _big_ endian
+      }
+
+      /*
+       * Use received size instead of received nOfSamplesPerFrame header field to access data, to be safe.
+       * Just write it into the header; it's most likely already there.
+       */
+      if (recvPayloadSize < 2 * sizeof(int16_t) + sizeof(uint32_t)) {
+        // Drop it. The data crc routine only works for at least 2 transient or 1 spectral sample(s) + a crc32.
+        THROW(TBB_MalformedFrameException, "dropping too small frame: " << recvPayloadSize);
+      }
+      frameHeaderLittleToHost(header);
+      // Verify indicated sample freq, also to reject zeroed headers, which the crc16tbb does not reject.
+      if (header.sampleFreq != 200 && header.sampleFreq != 160) {
+        THROW(TBB_MalformedFrameException, "dropping frame with invalid sample frequency in frame header: " << header.sampleFreq);
+      }
+
+      size_t sampleSize;
+      if (header.nOfFreqBands == 0) {   // transient mode TODO: do not rely on data to check data size!
+        correctSampleNr(header);
+        sampleSize = sizeof(int16_t);
+      } else {   // spectral mode
+        sampleSize = 2 * sizeof(int16_t);
+      }
+      // Div with a bad recvPayloadSize could round. Causes crc32 error at worst, but avoids wrong or misaligned memory access.
+      header.nOfSamplesPerFrame = (recvPayloadSize - sizeof(uint32_t)) / sampleSize;
+    }
+
+    void TBB_StreamWriter::mainInputLoop()
+    {
+      // Always (try to) notify output thread to stop at the end, else we may hang.
+      class NotifyOutputThread
+      {
+        Queue<TBB_Frame*>& queue;
+      public:
+        NotifyOutputThread(Queue<TBB_Frame*>& queue) : queue(queue)
+        {
+        }
+        ~NotifyOutputThread()
+        {
+          try {
+            queue.append(NULL);
+          } catch (exception& exc) {
+            LOG_WARN_STR("TBB: may have failed to notify output thread to terminate: " << exc.what());
+          }
+        }
+      } notifyOutThr(itsReceiveQueue);
+
+      Stream* stream;
+      try {
+        stream = createStream(itsInputStreamName, true);
+      } catch (Exception& exc) {   // SystemCallException or CoInterfaceException (or TimeOutException)
+        LOG_WARN_STR(itsLogPrefix << exc);
+        itsInExitStatus = 1;
+        return;
+      }
+      LOG_INFO_STR(itsLogPrefix << "reading incoming data from " << itsInputStreamName);
+
+      while (1) {
+        TBB_Frame* frame;
+
+        try {
+          frame = itsFreeQueue.remove();
+
+          size_t nread = stream->tryRead(frame, itsExpFrameSize);               // read() once for udp
+
+          // Notify master that we are still busy. (Racy, but ok, see the timeoutstamp decl.)
+          ::gettimeofday(&itsTimeoutStamp, NULL);
 
 #ifdef DUMP_RAW_STATION_FRAMES
-			try {
-				itsRawStationData->write(frame, nread);
-			} catch (exception& exc) { /* open() probably failed, don't spam */ }
+          try {
+            itsRawStationData->write(frame, nread);
+          } catch (exception& exc) { /* open() probably failed, don't spam */ }
 #endif
 
-			if (nread < sizeof(TBB_Header)) {
-				throw TBB_MalformedFrameException("dropping too small frame");
-			}
-			processHeader(frame->header, nread - sizeof(TBB_Header));
-
-			itsReceiveQueue.append(frame);
-
-		} catch (TBB_MalformedFrameException& mffExc) {
-			LOG_WARN_STR(itsLogPrefix << mffExc);
-			try {
-				itsFreeQueue.append(frame);
-			} catch (exception& exc) {
-				LOG_WARN_STR(itsLogPrefix << "may have lost a frame buffer (1): " << exc.what());
-			}
-		} catch (Stream::EndOfStreamException& ) { // after end of stream, for input from file or pipe
-			break;
-		} catch (exception& exc) {
-			LOG_FATAL_STR(itsLogPrefix << exc.what());
-			itsInExitStatus = 1;
-			break;
-		} catch (...) { // thread cancellation exc induced after timeout, for input from udp
-			delete stream;
-			throw; // mandatory
-		}
-	}
-
-	delete stream;
-}
-
-void TBB_StreamWriter::mainOutputLoop() {
-	bool running = true;
-	while (running) {
-		TBB_Frame* frame;
-		try {
-			frame = NULL;
-			frame = itsReceiveQueue.remove();
-			if (frame == NULL) {
-				break;
-			}
+          if (nread < sizeof(TBB_Header)) {
+            throw TBB_MalformedFrameException("dropping too small frame");
+          }
+          processHeader(frame->header, nread - sizeof(TBB_Header));
+
+          itsReceiveQueue.append(frame);
+
+        } catch (TBB_MalformedFrameException& mffExc) {
+          LOG_WARN_STR(itsLogPrefix << mffExc);
+          try {
+            itsFreeQueue.append(frame);
+          } catch (exception& exc) {
+            LOG_WARN_STR(itsLogPrefix << "may have lost a frame buffer (1): " << exc.what());
+          }
+        } catch (Stream::EndOfStreamException& ) {         // after end of stream, for input from file or pipe
+          break;
+        } catch (exception& exc) {
+          LOG_FATAL_STR(itsLogPrefix << exc.what());
+          itsInExitStatus = 1;
+          break;
+        } catch (...) {         // thread cancellation exc induced after timeout, for input from udp
+          delete stream;
+          throw;               // mandatory
+        }
+      }
+
+      delete stream;
+    }
+
+    void TBB_StreamWriter::mainOutputLoop()
+    {
+      bool running = true;
+      while (running) {
+        TBB_Frame* frame;
+        try {
+          frame = NULL;
+          frame = itsReceiveQueue.remove();
+          if (frame == NULL) {
+            break;
+          }
 
 #ifdef PRINT_QUEUE_LEN
-			LOG_INFO_STR(itsLogPrefix << "recvqsz=" << itsReceiveQueue.size());
+          LOG_INFO_STR(itsLogPrefix << "recvqsz=" << itsReceiveQueue.size());
 #endif
 
-			TBB_Station* station = itsWriter.getStation(frame->header);
-			station->processPayload(*frame);
-
-		// Tolerate the following exceptions. Maybe next rsp/rcu is ok; probably fatal too...
-		} catch (SystemCallException& exc) {
-			LOG_WARN_STR(itsLogPrefix << exc);
-		} catch (StorageException& exc) {
-			LOG_WARN_STR(itsLogPrefix << exc);
-		} catch (dal::DALException& exc) {
-			LOG_WARN_STR(itsLogPrefix << exc.what());
-		} catch (out_of_range& exc) {
-			LOG_WARN_STR(itsLogPrefix << exc.what());
-
-		// Config/parset and other errors are fatal.
-		} catch (exception& exc) {
-			LOG_FATAL_STR(itsLogPrefix << exc.what());
-			itsOutExitStatus = 1;
-			running = false;
-		}
-
-		if (frame != NULL) {
-			try {
-				itsFreeQueue.append(frame);
-			} catch (exception& exc) {
-				LOG_WARN_STR(itsLogPrefix << "may have lost a frame buffer (2): " << exc.what());
-			}
-		}
-	}
-}
-
-//////////////////////////////////////////////////////////////////////////////
-
-TBB_Writer::TBB_Writer(const vector<string>& inputStreamNames, const Parset& parset,
-                       const StationMetaDataMap& stationMetaDataMap,
-                       const string& outDir, const string& logPrefix,
-                       vector<int>& thrExitStatus)
-: itsParset(parset)
-, itsStationMetaDataMap(stationMetaDataMap)
-, itsOutDir(outDir)
-, itsRunNr(0)
-{
-	// Mask all signals to inherit for workers. This forces signals to be delivered to the main thread.
-	struct SigMask {
-		sigset_t sigset_old;
-
-		SigMask() {
-			sigset_t sigset_all_masked;
-			::sigfillset(&sigset_all_masked);
-			if (::pthread_sigmask(SIG_SETMASK, &sigset_all_masked, &sigset_old) != 0) {
-				LOG_WARN_STR("TBB: pthread_sigmask() failed to mask signals to inherit for worker threads.");
-			}
-		}
-
-		~SigMask() {
-			if (::pthread_sigmask(SIG_SETMASK, &sigset_old, NULL) != 0) {
-				LOG_WARN_STR("TBB: pthread_sigmask() failed to restore signals. We may be deaf to signals.");
-			}
-		}
-	} sigm;
-
-	itsUnknownStationMetaData.available = false;
-
-	size_t expNTrSamples; // in terms of the transient sample size
-	int operatingMode = itsParset.getInt("Observation.TBB.TBBsetting.operatingMode", 0);
-	if (operatingMode == TBB_TRANSIENT_MODE) {
-		expNTrSamples = DEFAULT_TBB_TRANSIENT_NSAMPLES;
-	} else if (operatingMode == TBB_SPECTRAL_MODE) {
-		expNTrSamples = 2 * MAX_TBB_SPECTRAL_NSAMPLES;
-	} else {
-		expNTrSamples = DEFAULT_TBB_TRANSIENT_NSAMPLES;
-		LOG_WARN("TBB: Failed to get operating mode from parset, assuming transient");
-	}
-
-	itsStreamWriters.reserve(inputStreamNames.size());
-	for (unsigned i = 0; i < inputStreamNames.size(); i++) {
-		itsStreamWriters.push_back(new TBB_StreamWriter(*this, inputStreamNames[i], expNTrSamples,
-                                   logPrefix, thrExitStatus[2*i], thrExitStatus[2*i+1]));
-	}
-}
-
-TBB_Writer::~TBB_Writer() {
-	for (unsigned i = itsStreamWriters.size(); i > 0; ) {
-		delete itsStreamWriters[--i];
-	}
-
-	map<unsigned, TBB_Station* >::iterator it(itsStations.begin());
-	for ( ; it != itsStations.end(); ++it) {
-		delete it->second;
-	}
-}
-
-TBB_Station* TBB_Writer::getStation(const TBB_Header& header) {
-	ScopedLock sl(itsStationsMutex); // protect against insert below
-	map<unsigned, TBB_Station*>::iterator stIt(itsStations.find(header.stationID));
-	if (stIt != itsStations.end()) {
-		return stIt->second; // common case
-	}
-
-	// Create new station with HDF5 file and station HDF5 group.
-	string stationName(dal::stationIDToName(header.stationID));
-	string h5Filename(createNewTBB_H5Filename(header, stationName));
-	StationMetaDataMap::const_iterator stMdIt(itsStationMetaDataMap.find(header.stationID));
-	// If not found, station is not participating in the observation. Should not happen, but don't panic.
-	const StationMetaData& stMetaData = stMdIt == itsStationMetaDataMap.end() ? itsUnknownStationMetaData : stMdIt->second;
-
-	TBB_Station* station;
-	{
-		ScopedLock slH5(itsH5Mutex);
-		station = new TBB_Station(stationName, itsH5Mutex, itsParset, stMetaData, h5Filename);
-	}
-
-	try {
-		return itsStations.insert(make_pair(header.stationID, station)).first->second;
-	} catch (exception& exc) {
-		delete station;
-		throw;
-	}
-}
-
-string TBB_Writer::createNewTBB_H5Filename(const TBB_Header& header, const string& stationName) {
-	const string typeExt("tbb.h5");
-	string obsIDStr(formatString("%u", itsParset.observationID()));
-
-	// Use the recording time of the first (received) frame as timestamp.
-	struct timeval tv;
-	tv.tv_sec = header.time;
-	unsigned long usecNr;
-	if (header.nOfFreqBands == 0) { // transient mode
-		usecNr = header.sampleNr;
-	} else { // spectral mode
-		usecNr = header.bandSliceNr >> TBB_SLICE_NR_SHIFT;
-	}
-	tv.tv_usec = static_cast<unsigned long>(round( static_cast<double>(usecNr) / header.sampleFreq ));
-
-	// Generate the output filename, because for TBB it is not in the parset.
-	// From LOFAR-USG-ICD005 spec named "LOFAR Data Format ICD File Naming Conventions", by A. Alexov et al.
-	const char output_format[] = "D%Y%m%dT%H%M"; // without secs
-	const char output_format_secs[] = "%06.3fZ"; // total width of ss.sss is 6
-	const char output_format_example[] = "DYYYYMMDDTHHMMSS.SSSZ";
-	string triggerDateTime(formatFilenameTimestamp(tv, output_format, output_format_secs, sizeof(output_format_example)));
-	string h5Filename(itsOutDir + "L" + obsIDStr + "_" + stationName + "_" + triggerDateTime + "_" + typeExt);
-
-	// If the file already exists, add a run nr and retry. (might race and doesn't check .raw, but good enough)
-	// If >1 stations per node, start at the prev run nr if any (hence itsRunNr).
-	if (itsRunNr == 0) {
-		if (::access(h5Filename.c_str(), F_OK) != 0 && errno == ENOENT) {
-			// Does not exist (or broken dir after all, or dangling sym link...). Try this one.
-			return h5Filename;
-		} else { // exists, inc run number
-			itsRunNr = 1;
-		}
-	}
-
-	size_t pos = h5Filename.size() - typeExt.size();
-	string runNrStr(formatString("R%03u_", itsRunNr));
-	h5Filename.insert(pos, runNrStr);
-	while (itsRunNr < 1000 && ( ::access(h5Filename.c_str(), F_OK) == 0 || errno != ENOENT )) {
-		itsRunNr += 1;
-		runNrStr = formatString("R%03u_", itsRunNr);
-		h5Filename.replace(pos, runNrStr.size(), runNrStr);
-	}
-	if (itsRunNr == 1000) { // run number is supposed to fit in 3 digits
-		throw StorageException("failed to generate new .h5 filename after trying 1000 filenames.");
-	}
-
-	return h5Filename;
-}
-
-time_t TBB_Writer::getTimeoutStampSec(unsigned streamWriterNr) const {
-	return itsStreamWriters[streamWriterNr]->getTimeoutStampSec();
-}
-
-} // namespace RTCP
+          TBB_Station* station = itsWriter.getStation(frame->header);
+          station->processPayload(*frame);
+
+          // Tolerate the following exceptions. Maybe next rsp/rcu is ok; probably fatal too...
+        } catch (SystemCallException& exc) {
+          LOG_WARN_STR(itsLogPrefix << exc);
+        } catch (StorageException& exc) {
+          LOG_WARN_STR(itsLogPrefix << exc);
+        } catch (dal::DALException& exc) {
+          LOG_WARN_STR(itsLogPrefix << exc.what());
+        } catch (out_of_range& exc) {
+          LOG_WARN_STR(itsLogPrefix << exc.what());
+
+          // Config/parset and other errors are fatal.
+        } catch (exception& exc) {
+          LOG_FATAL_STR(itsLogPrefix << exc.what());
+          itsOutExitStatus = 1;
+          running = false;
+        }
+
+        if (frame != NULL) {
+          try {
+            itsFreeQueue.append(frame);
+          } catch (exception& exc) {
+            LOG_WARN_STR(itsLogPrefix << "may have lost a frame buffer (2): " << exc.what());
+          }
+        }
+      }
+    }
+
+    //////////////////////////////////////////////////////////////////////////////
+
+    TBB_Writer::TBB_Writer(const vector<string>& inputStreamNames, const Parset& parset,
+                           const StationMetaDataMap& stationMetaDataMap,
+                           const string& outDir, const string& logPrefix,
+                           vector<int>& thrExitStatus)
+      : itsParset(parset)
+      , itsStationMetaDataMap(stationMetaDataMap)
+      , itsOutDir(outDir)
+      , itsRunNr(0)
+    {
+      // Mask all signals to inherit for workers. This forces signals to be delivered to the main thread.
+      struct SigMask {
+        sigset_t sigset_old;
+
+        SigMask()
+        {
+          sigset_t sigset_all_masked;
+          ::sigfillset(&sigset_all_masked);
+          if (::pthread_sigmask(SIG_SETMASK, &sigset_all_masked, &sigset_old) != 0) {
+            LOG_WARN_STR("TBB: pthread_sigmask() failed to mask signals to inherit for worker threads.");
+          }
+        }
+
+        ~SigMask()
+        {
+          if (::pthread_sigmask(SIG_SETMASK, &sigset_old, NULL) != 0) {
+            LOG_WARN_STR("TBB: pthread_sigmask() failed to restore signals. We may be deaf to signals.");
+          }
+        }
+      } sigm;
+
+      itsUnknownStationMetaData.available = false;
+
+      size_t expNTrSamples;   // in terms of the transient sample size
+      int operatingMode = itsParset.getInt("Observation.TBB.TBBsetting.operatingMode", 0);
+      if (operatingMode == TBB_TRANSIENT_MODE) {
+        expNTrSamples = DEFAULT_TBB_TRANSIENT_NSAMPLES;
+      } else if (operatingMode == TBB_SPECTRAL_MODE) {
+        expNTrSamples = 2 * MAX_TBB_SPECTRAL_NSAMPLES;
+      } else {
+        expNTrSamples = DEFAULT_TBB_TRANSIENT_NSAMPLES;
+        LOG_WARN("TBB: Failed to get operating mode from parset, assuming transient");
+      }
+
+      itsStreamWriters.reserve(inputStreamNames.size());
+      for (unsigned i = 0; i < inputStreamNames.size(); i++) {
+        itsStreamWriters.push_back(new TBB_StreamWriter(*this, inputStreamNames[i], expNTrSamples,
+                                                        logPrefix, thrExitStatus[2 * i], thrExitStatus[2 * i + 1]));
+      }
+    }
+
+    TBB_Writer::~TBB_Writer()
+    {
+      for (unsigned i = itsStreamWriters.size(); i > 0; ) {
+        delete itsStreamWriters[--i];
+      }
+
+      map<unsigned, TBB_Station* >::iterator it(itsStations.begin());
+      for (; it != itsStations.end(); ++it) {
+        delete it->second;
+      }
+    }
+
+    TBB_Station* TBB_Writer::getStation(const TBB_Header& header)
+    {
+      ScopedLock sl(itsStationsMutex);   // protect against insert below
+      map<unsigned, TBB_Station*>::iterator stIt(itsStations.find(header.stationID));
+      if (stIt != itsStations.end()) {
+        return stIt->second;         // common case
+      }
+
+      // Create new station with HDF5 file and station HDF5 group.
+      string stationName(dal::stationIDToName(header.stationID));
+      string h5Filename(createNewTBB_H5Filename(header, stationName));
+      StationMetaDataMap::const_iterator stMdIt(itsStationMetaDataMap.find(header.stationID));
+      // If not found, station is not participating in the observation. Should not happen, but don't panic.
+      const StationMetaData& stMetaData = stMdIt == itsStationMetaDataMap.end() ? itsUnknownStationMetaData : stMdIt->second;
+
+      TBB_Station* station;
+      {
+        ScopedLock slH5(itsH5Mutex);
+        station = new TBB_Station(stationName, itsH5Mutex, itsParset, stMetaData, h5Filename);
+      }
+
+      try {
+        return itsStations.insert(make_pair(header.stationID, station)).first->second;
+      } catch (exception& exc) {
+        delete station;
+        throw;
+      }
+    }
+
+    string TBB_Writer::createNewTBB_H5Filename(const TBB_Header& header, const string& stationName)
+    {
+      const string typeExt("tbb.h5");
+      string obsIDStr(formatString("%u", itsParset.observationID()));
+
+      // Use the recording time of the first (received) frame as timestamp.
+      struct timeval tv;
+      tv.tv_sec = header.time;
+      unsigned long usecNr;
+      if (header.nOfFreqBands == 0) {   // transient mode
+        usecNr = header.sampleNr;
+      } else {   // spectral mode
+        usecNr = header.bandSliceNr >> TBB_SLICE_NR_SHIFT;
+      }
+      tv.tv_usec = static_cast<unsigned long>(round( static_cast<double>(usecNr) / header.sampleFreq ));
+
+      // Generate the output filename, because for TBB it is not in the parset.
+      // From LOFAR-USG-ICD005 spec named "LOFAR Data Format ICD File Naming Conventions", by A. Alexov et al.
+      const char output_format[] = "D%Y%m%dT%H%M";   // without secs
+      const char output_format_secs[] = "%06.3fZ";   // total width of ss.sss is 6
+      const char output_format_example[] = "DYYYYMMDDTHHMMSS.SSSZ";
+      string triggerDateTime(formatFilenameTimestamp(tv, output_format, output_format_secs, sizeof(output_format_example)));
+      string h5Filename(itsOutDir + "L" + obsIDStr + "_" + stationName + "_" + triggerDateTime + "_" + typeExt);
+
+      // If the file already exists, add a run nr and retry. (might race and doesn't check .raw, but good enough)
+      // If >1 stations per node, start at the prev run nr if any (hence itsRunNr).
+      if (itsRunNr == 0) {
+        if (::access(h5Filename.c_str(), F_OK) != 0 && errno == ENOENT) {
+          // Does not exist (or broken dir after all, or dangling sym link...). Try this one.
+          return h5Filename;
+        } else {         // exists, inc run number
+          itsRunNr = 1;
+        }
+      }
+
+      size_t pos = h5Filename.size() - typeExt.size();
+      string runNrStr(formatString("R%03u_", itsRunNr));
+      h5Filename.insert(pos, runNrStr);
+      while (itsRunNr < 1000 && ( ::access(h5Filename.c_str(), F_OK) == 0 || errno != ENOENT )) {
+        itsRunNr += 1;
+        runNrStr = formatString("R%03u_", itsRunNr);
+        h5Filename.replace(pos, runNrStr.size(), runNrStr);
+      }
+      if (itsRunNr == 1000) {   // run number is supposed to fit in 3 digits
+        throw StorageException("failed to generate new .h5 filename after trying 1000 filenames.");
+      }
+
+      return h5Filename;
+    }
+
+    time_t TBB_Writer::getTimeoutStampSec(unsigned streamWriterNr) const
+    {
+      return itsStreamWriters[streamWriterNr]->getTimeoutStampSec();
+    }
+
+  } // namespace RTCP
 } // namespace LOFAR
 
diff --git a/RTCP/Cobalt/OutputProc/src/TBB_Writer.h b/RTCP/Cobalt/OutputProc/src/TBB_Writer.h
index 197b308746489abadc4063016266238041bfe3c4..f76c6e1aa842b75ade3d597f60eb4441977a5027 100644
--- a/RTCP/Cobalt/OutputProc/src/TBB_Writer.h
+++ b/RTCP/Cobalt/OutputProc/src/TBB_Writer.h
@@ -54,304 +54,310 @@
 
 #include <dal/lofar/TBB_File.h>
 
-namespace LOFAR {
-namespace RTCP {
-
-/* 
- * Incoming UDP frame format.
- * From 'TBB Design Description.doc', Doc.id: LOFAR-ASTRON-SDD-047, rev. 2.8 (2009-11-30), by Arie Doorduin, Wietse Poiesz
- * available at: http://www.lofar.org/project/lofardoc/document.php
- * Old rev. 2.0 (2006-10-3): http://lus.lofar.org/wiki/lib/exe/fetch.php?media=documents:sdd:lofar-astron-sdd-047_tbb_design_description.pdf
- *
- * There are two types of data that can be transferred: transient data and spectral (subband) data. Everything is in little-endian byte order.
- */
-struct TBB_Header {
-	uint8_t stationID;	// Data source station identifier
-	uint8_t rspID;		// Data source RSP board identifier
-	uint8_t rcuID;		// Data source RCU board identifier
-	uint8_t sampleFreq;	// Sample frequency in MHz of the RCU boards
-
-	uint32_t seqNr;		// Used internally by TBB. Set to 0 by RSP (but written again before we receive it)
-	uint32_t time;		// Time instance in seconds of the first sample in payload
-	// The time field is relative, but if used as UNIX time, uint32_t will wrap at 06:28:15 UTC on 07 Feb 2106 (int32_t wraps at 03:14:08 UTC on 19 Jan 2038).
-
-	union {
-		// In transient mode indicates sample number of the first payload sample in current seconds interval.
-		uint32_t sampleNr;
-
-		// In spectral mode indicates frequency band and slice (transform block of 1024 samples) of first payload sample.
-		uint32_t bandSliceNr; // bandNr[9:0] and sliceNr[31:10].
-#define TBB_BAND_NR_MASK	((1 << 10) - 1) 
-#define TBB_SLICE_NR_SHIFT	10
-	};
-
-	uint16_t nOfSamplesPerFrame; // Total number of samples in the frame payload
-	uint16_t nOfFreqBands;	// Number of frequency bands for each spectrum in spectral mode. Is set to 0 for transient mode.
-
-	uint8_t bandSel[64];	// Each bit in the band selector field indicates whether the band with the bit index is present in the spectrum or not.
-
-	uint16_t spare;		// For future use. Set to 0.
-	uint16_t crc16;		// CRC16 over frame header, with seqNr set to 0.
-};
-
-struct TBB_Payload {
-	/*
-	 * In transient mode, a sample is a signed 12 bit integer. In spectral mode, it is a complex int16_t.
-	 * In the TBBs, transient samples are packed (2 samples per 3 bytes) with the checksum all the way at the end. This changes on transfer.
-	 *
-	 * TBB stores a frame in 2040 bytes (actually, 2048 with preamble and gaps). It sends a frame at a time, so derive our max from it.
-	 */
-#define MAX_TBB_DATA_SIZE		(2040 - sizeof(TBB_Header) - sizeof(uint32_t))	// 1948: TBB frame size without header and payload crc32.
-
-#define MAX_TBB_TRANSIENT_NSAMPLES	(MAX_TBB_DATA_SIZE / 3 * 2)	// 1298 (.666: 1 byte padding when indeed 1298 samples would ever be stored in TBB)
-#define MAX_TBB_SPECTRAL_NSAMPLES	(MAX_TBB_DATA_SIZE / (2 * sizeof(int16_t)))	// 487
-
-	// Unpacked, sign-extended (for transient) samples without padding, i.e. as received.
-	// Frames might not be full; the doc says the crc32 is always sent right after (no padding), (but this is false for spectral),
-	// so we include the crc32 in 'data', but note that the crc32 is a little endian uint32_t, hence ' + 2'.
+namespace LOFAR
+{
+  namespace RTCP
+  {
+
+    /*
+     * Incoming UDP frame format.
+     * From 'TBB Design Description.doc', Doc.id: LOFAR-ASTRON-SDD-047, rev. 2.8 (2009-11-30), by Arie Doorduin, Wietse Poiesz
+     * available at: http://www.lofar.org/project/lofardoc/document.php
+     * Old rev. 2.0 (2006-10-3): http://lus.lofar.org/wiki/lib/exe/fetch.php?media=documents:sdd:lofar-astron-sdd-047_tbb_design_description.pdf
+     *
+     * There are two types of data that can be transferred: transient data and spectral (subband) data. Everything is in little-endian byte order.
+     */
+    struct TBB_Header {
+      uint8_t stationID;        // Data source station identifier
+      uint8_t rspID;            // Data source RSP board identifier
+      uint8_t rcuID;            // Data source RCU board identifier
+      uint8_t sampleFreq;       // Sample frequency in MHz of the RCU boards
+
+      uint32_t seqNr;           // Used internally by TBB. Set to 0 by RSP (but written again before we receive it)
+      uint32_t time;            // Time instance in seconds of the first sample in payload
+      // The time field is relative, but if used as UNIX time, uint32_t will wrap at 06:28:15 UTC on 07 Feb 2106 (int32_t wraps at 03:14:08 UTC on 19 Jan 2038).
+
+      union {
+        // In transient mode indicates sample number of the first payload sample in current seconds interval.
+        uint32_t sampleNr;
+
+        // In spectral mode indicates frequency band and slice (transform block of 1024 samples) of first payload sample.
+        uint32_t bandSliceNr;         // bandNr[9:0] and sliceNr[31:10].
+#define TBB_BAND_NR_MASK        ((1 << 10) - 1)
+#define TBB_SLICE_NR_SHIFT      10
+      };
+
+      uint16_t nOfSamplesPerFrame;   // Total number of samples in the frame payload
+      uint16_t nOfFreqBands;    // Number of frequency bands for each spectrum in spectral mode. Is set to 0 for transient mode.
+
+      uint8_t bandSel[64];      // Each bit in the band selector field indicates whether the band with the bit index is present in the spectrum or not.
+
+      uint16_t spare;           // For future use. Set to 0.
+      uint16_t crc16;           // CRC16 over frame header, with seqNr set to 0.
+    };
+
+    struct TBB_Payload {
+      /*
+       * In transient mode, a sample is a signed 12 bit integer. In spectral mode, it is a complex int16_t.
+       * In the TBBs, transient samples are packed (2 samples per 3 bytes) with the checksum all the way at the end. This changes on transfer.
+       *
+       * TBB stores a frame in 2040 bytes (actually, 2048 with preamble and gaps). It sends a frame at a time, so derive our max from it.
+       */
+#define MAX_TBB_DATA_SIZE               (2040 - sizeof(TBB_Header) - sizeof(uint32_t))  // 1948: TBB frame size without header and payload crc32.
+
+#define MAX_TBB_TRANSIENT_NSAMPLES      (MAX_TBB_DATA_SIZE / 3 * 2)     // 1298 (.666: 1 byte padding when indeed 1298 samples would ever be stored in TBB)
+#define MAX_TBB_SPECTRAL_NSAMPLES       (MAX_TBB_DATA_SIZE / (2 * sizeof(int16_t)))     // 487
+
+      // Unpacked, sign-extended (for transient) samples without padding, i.e. as received.
+      // Frames might not be full; the doc says the crc32 is always sent right after (no padding), (but this is false for spectral),
+      // so we include the crc32 in 'data', but note that the crc32 is a little endian uint32_t, hence ' + 2'.
 #ifndef MAX
-#define MAX(a, b)	((a) > (b) ? (a) : (b))
+#define MAX(a, b)       ((a) > (b) ? (a) : (b))
 #endif
-	int16_t data[MAX(MAX_TBB_TRANSIENT_NSAMPLES, 2 * MAX_TBB_SPECTRAL_NSAMPLES) + 2];
-
-	// For transient, TBB always sends sends 1024 samples per frame (from the spec and from the data).
-	// For spectral, it depends on the nr of subbands (max is equal to MAX_TBB_SPECTRAL_NSAMPLES).
-	// TBB sends as many samples for all subbands as it can fit; e.g. with 5 subbands, each frame has 485 samples.
-
-#define SPECTRAL_TRANSFORM_SIZE		1024	// RSP FFT block size
-
-#define DEFAULT_TBB_TRANSIENT_NSAMPLES	1024	// for spectral it depends on #subbands
-};
-
-struct TBB_Frame {
-	TBB_Header  header;
-	TBB_Payload payload;
-};
-
-// Station meta data from other sources than the parset.
-struct StationMetaData {
-	// If we receive data from a station not in the obs, we won't have all the meta data.
-	bool available;
-
-	// from the antenna field files
-	std::vector<double> antPositions;
-	std::vector<double> normalVector;   // [3]
-	std::vector<double> rotationMatrix; // [3, 3] row-major order
-
-	// from the station calibration table files
-	//...
-};
-
-// From station ID to a vector of antenna position coordinate components.
-typedef std::map<unsigned, StationMetaData> StationMetaDataMap;
-
-struct SubbandInfo {
-	std::vector<double>   centralFreqs;   // empty in transient mode
-	std::vector<unsigned> storageIndices; // idem
-};
-
-
-class TBB_Dipole {
-	LOFAR::FileStream*       itsRawOut;
-	dal::TBB_Dataset<short>* itsDataset;
-	std::vector<dal::Range>  itsFlagOffsets;
-
-	uint32_t itsSampleFreq; // Hz
-	unsigned itsNrSubbands; // spectral mode only, 0 in transient mode
-
-	uint32_t itsTime; // seconds
-	union {
-		uint32_t itsExpSampleNr; // transient mode
-		uint32_t itsExpSliceNr;  // spectral mode
-	};
-	ssize_t itsDatasetLen;
-
-	// Same truncated polynomial as standard crc32, but with initial_remainder=0, final_xor_value=0, reflected_input=false, reflected_remainder_output=false.
-	// The boost::crc_optimal<> declarations precompute lookup tables, so do not declare inside the checking routine. (Still, for every TBB_Dipole...)
-	boost::crc_optimal<32, 0x04C11DB7/*, 0, 0, false, false*/> itsCrc32gen;
-
-	// do not use
-	TBB_Dipole& operator=(const TBB_Dipole& rhs);
-
-public:
-	TBB_Dipole();
-	TBB_Dipole(const TBB_Dipole& rhs); // do not use; only for TBB_Station vector<TBB_Dipole>(N) constr
-	~TBB_Dipole();
-
-	// Output threads
-	bool isInitialized() const;
-
-	// All TBB_Dipole objects are default constructed in a vector, so have init().
-	void init(const TBB_Header& header, const Parset& parset, const StationMetaData& stationMetaData,
-              const SubbandInfo& subbandInfo, const std::string& rawFilename, dal::TBB_Station& station,
-              Mutex& h5Mutex);
-
-	void processTransientFrameData(const TBB_Frame& frame);
-	void processSpectralFrameData(const TBB_Frame& frame, const SubbandInfo& subbandInfo);
-
-private:
-	void appendFlags(size_t offset, size_t len);
-	// initTBB_DipoleDataset() must be called with the global h5Mutex held.
-	void initTBB_DipoleDataset(const TBB_Header& header, const Parset& parset,
-                               const StationMetaData& stationMetaData, const SubbandInfo& subbandInfo,
-                               const std::string& rawFilename, dal::TBB_Station& station);
-	bool hasAllZeroDataSamples(const TBB_Payload& payload, size_t nTrSamples) const;
-	bool crc32tbb(const TBB_Payload* payload, size_t nTrSamples);
-};
-
-class TBB_Station {
-	dal::TBB_File itsH5File;
-	Mutex& itsH5Mutex;
-	dal::TBB_Station itsStation;
-	std::vector<TBB_Dipole> itsDipoles;
-	const Parset& itsParset;
-	const StationMetaData& itsStationMetaData;
-	const SubbandInfo itsSubbandInfo; // for spectral mode
-	const std::string itsH5Filename;
-
-	double getSubbandCentralFreq(unsigned subbandNr, unsigned nyquistZone, double sampleFreq) const;
-	SubbandInfo getSubbandInfo(const Parset& parset) const;
-	std::string getRawFilename(unsigned rspID, unsigned rcuID) const;
-
-	// do not use
-	TBB_Station();
-	TBB_Station(const TBB_Station& station);
-	TBB_Station& operator=(const TBB_Station& rhs);
-
-public:
-	// This constructor must be called with the h5Mutex already held.
-	// The caller must still unlock after the return, the constructor does not use the passed ref to unlock.
-	TBB_Station(const string& stationName, Mutex& h5Mutex, const Parset& parset,
-                const StationMetaData& stationMetaData, const std::string& h5Filename);
-	~TBB_Station();
-
-	// Output threads
-	void processPayload(const TBB_Frame& frame);
-
-private:
-	std::string utcTimeStr(double time) const;
-	double toMJD(double time) const;
-
-	void initCommonLofarAttributes();
-	void initTBB_RootAttributesAndGroups(const std::string& stName);
-	void initStationGroup(dal::TBB_Station& st, const std::string& stName,
-                          const std::string& stFullName, const std::vector<double>& stPosition);
-	void initTriggerGroup(dal::TBB_Trigger& tg);
-};
-
-class TBB_Writer;
-
-class TBB_StreamWriter {
-	/*
-	 * - The input thread receives incoming TBB frame headers, checks the header CRC, and puts them in a frameQueue.
-	 * - The output thread checks the data CRC, creates an HDF5 file per station, creates groups and datasets,
-	 *   writes the data, and returns empty frame pointers through the emptyQueue back to the input thread.
-	 *
-	 * On timeouts for all input threads, the main thread sends C++ thread cancellations. Input appends a NULL msg to notify output.
-	 * This isolates (soft) real-time input from HDF5/disk latencies, and the HDF5 C library from C++ cancellation exceptions.
-	 */
-
-	/*
-	 * Queue size: With PRINT_QUEUE_LEN defined, the max used buffer size observed was 343.
-	 * This was for 1 udp stream (instead of 6 or 12) from 1 station. Having 1024 buffers per thread seems reasonable.
-	 */
-	static const unsigned nrFrameBuffers = 1024;
-
-	TBB_Frame* itsFrameBuffers;
-
-	// Queue pointers point into itsFrameBuffers.
-	Queue<TBB_Frame*> itsReceiveQueue; // input  -> output thread
-	Queue<TBB_Frame*> itsFreeQueue;    // output -> input  thread
-
-	TBB_Writer& itsWriter;
-	const std::string& itsInputStreamName;
-	const unsigned itsExpFrameSize;
-	const std::string& itsLogPrefix;
-	int& itsInExitStatus;
-	int& itsOutExitStatus;
-
-	// See TBB_Writer_main.cc::doTBB_Run() why this is used racily for now.
-	// Inflate struct timeval to 64 bytes (typical LEVEL1_DCACHE_LINESIZE). Unnecessary...
-	struct timeval itsTimeoutStamp __attribute__((aligned(64)));
-
-	boost::crc_optimal<16, 0x8005/*, 0, 0, false, false*/> itsCrc16gen;
+      int16_t data[MAX(MAX_TBB_TRANSIENT_NSAMPLES, 2 * MAX_TBB_SPECTRAL_NSAMPLES) + 2];
+
+      // For transient, TBB always sends sends 1024 samples per frame (from the spec and from the data).
+      // For spectral, it depends on the nr of subbands (max is equal to MAX_TBB_SPECTRAL_NSAMPLES).
+      // TBB sends as many samples for all subbands as it can fit; e.g. with 5 subbands, each frame has 485 samples.
+
+#define SPECTRAL_TRANSFORM_SIZE         1024    // RSP FFT block size
+
+#define DEFAULT_TBB_TRANSIENT_NSAMPLES  1024    // for spectral it depends on #subbands
+    };
+
+    struct TBB_Frame {
+      TBB_Header header;
+      TBB_Payload payload;
+    };
+
+    // Station meta data from other sources than the parset.
+    struct StationMetaData {
+      // If we receive data from a station not in the obs, we won't have all the meta data.
+      bool available;
+
+      // from the antenna field files
+      std::vector<double> antPositions;
+      std::vector<double> normalVector;     // [3]
+      std::vector<double> rotationMatrix;   // [3, 3] row-major order
+
+      // from the station calibration table files
+      //...
+    };
+
+    // From station ID to a vector of antenna position coordinate components.
+    typedef std::map<unsigned, StationMetaData> StationMetaDataMap;
+
+    struct SubbandInfo {
+      std::vector<double>   centralFreqs;     // empty in transient mode
+      std::vector<unsigned> storageIndices;   // idem
+    };
+
+
+    class TBB_Dipole
+    {
+      LOFAR::FileStream*       itsRawOut;
+      dal::TBB_Dataset<short>* itsDataset;
+      std::vector<dal::Range>  itsFlagOffsets;
+
+      uint32_t itsSampleFreq;   // Hz
+      unsigned itsNrSubbands;   // spectral mode only, 0 in transient mode
+
+      uint32_t itsTime;   // seconds
+      union {
+        uint32_t itsExpSampleNr;         // transient mode
+        uint32_t itsExpSliceNr;          // spectral mode
+      };
+      ssize_t itsDatasetLen;
+
+      // Same truncated polynomial as standard crc32, but with initial_remainder=0, final_xor_value=0, reflected_input=false, reflected_remainder_output=false.
+      // The boost::crc_optimal<> declarations precompute lookup tables, so do not declare inside the checking routine. (Still, for every TBB_Dipole...)
+      boost::crc_optimal<32, 0x04C11DB7 /*, 0, 0, false, false*/> itsCrc32gen;
+
+      // do not use
+      TBB_Dipole& operator=(const TBB_Dipole& rhs);
+
+    public:
+      TBB_Dipole();
+      TBB_Dipole(const TBB_Dipole& rhs);   // do not use; only for TBB_Station vector<TBB_Dipole>(N) constr
+      ~TBB_Dipole();
+
+      // Output threads
+      bool isInitialized() const;
+
+      // All TBB_Dipole objects are default constructed in a vector, so have init().
+      void init(const TBB_Header& header, const Parset& parset, const StationMetaData& stationMetaData,
+                const SubbandInfo& subbandInfo, const std::string& rawFilename, dal::TBB_Station& station,
+                Mutex& h5Mutex);
+
+      void processTransientFrameData(const TBB_Frame& frame);
+      void processSpectralFrameData(const TBB_Frame& frame, const SubbandInfo& subbandInfo);
+
+    private:
+      void appendFlags(size_t offset, size_t len);
+      // initTBB_DipoleDataset() must be called with the global h5Mutex held.
+      void initTBB_DipoleDataset(const TBB_Header& header, const Parset& parset,
+                                 const StationMetaData& stationMetaData, const SubbandInfo& subbandInfo,
+                                 const std::string& rawFilename, dal::TBB_Station& station);
+      bool hasAllZeroDataSamples(const TBB_Payload& payload, size_t nTrSamples) const;
+      bool crc32tbb(const TBB_Payload* payload, size_t nTrSamples);
+    };
+
+    class TBB_Station
+    {
+      dal::TBB_File itsH5File;
+      Mutex& itsH5Mutex;
+      dal::TBB_Station itsStation;
+      std::vector<TBB_Dipole> itsDipoles;
+      const Parset& itsParset;
+      const StationMetaData& itsStationMetaData;
+      const SubbandInfo itsSubbandInfo;   // for spectral mode
+      const std::string itsH5Filename;
+
+      double getSubbandCentralFreq(unsigned subbandNr, unsigned nyquistZone, double sampleFreq) const;
+      SubbandInfo getSubbandInfo(const Parset& parset) const;
+      std::string getRawFilename(unsigned rspID, unsigned rcuID) const;
+
+      // do not use
+      TBB_Station();
+      TBB_Station(const TBB_Station& station);
+      TBB_Station& operator=(const TBB_Station& rhs);
+
+    public:
+      // This constructor must be called with the h5Mutex already held.
+      // The caller must still unlock after the return, the constructor does not use the passed ref to unlock.
+      TBB_Station(const string& stationName, Mutex& h5Mutex, const Parset& parset,
+                  const StationMetaData& stationMetaData, const std::string& h5Filename);
+      ~TBB_Station();
+
+      // Output threads
+      void processPayload(const TBB_Frame& frame);
+
+    private:
+      std::string utcTimeStr(double time) const;
+      double toMJD(double time) const;
+
+      void initCommonLofarAttributes();
+      void initTBB_RootAttributesAndGroups(const std::string& stName);
+      void initStationGroup(dal::TBB_Station& st, const std::string& stName,
+                            const std::string& stFullName, const std::vector<double>& stPosition);
+      void initTriggerGroup(dal::TBB_Trigger& tg);
+    };
+
+    class TBB_Writer;
+
+    class TBB_StreamWriter
+    {
+      /*
+       * - The input thread receives incoming TBB frame headers, checks the header CRC, and puts them in a frameQueue.
+       * - The output thread checks the data CRC, creates an HDF5 file per station, creates groups and datasets,
+       *   writes the data, and returns empty frame pointers through the emptyQueue back to the input thread.
+       *
+       * On timeouts for all input threads, the main thread sends C++ thread cancellations. Input appends a NULL msg to notify output.
+       * This isolates (soft) real-time input from HDF5/disk latencies, and the HDF5 C library from C++ cancellation exceptions.
+       */
+
+      /*
+       * Queue size: With PRINT_QUEUE_LEN defined, the max used buffer size observed was 343.
+       * This was for 1 udp stream (instead of 6 or 12) from 1 station. Having 1024 buffers per thread seems reasonable.
+       */
+      static const unsigned nrFrameBuffers = 1024;
+
+      TBB_Frame* itsFrameBuffers;
+
+      // Queue pointers point into itsFrameBuffers.
+      Queue<TBB_Frame*> itsReceiveQueue;   // input  -> output thread
+      Queue<TBB_Frame*> itsFreeQueue;      // output -> input  thread
+
+      TBB_Writer& itsWriter;
+      const std::string& itsInputStreamName;
+      const unsigned itsExpFrameSize;
+      const std::string& itsLogPrefix;
+      int& itsInExitStatus;
+      int& itsOutExitStatus;
+
+      // See TBB_Writer_main.cc::doTBB_Run() why this is used racily for now.
+      // Inflate struct timeval to 64 bytes (typical LEVEL1_DCACHE_LINESIZE). Unnecessary...
+      struct timeval itsTimeoutStamp __attribute__((aligned(64)));
+
+      boost::crc_optimal<16, 0x8005 /*, 0, 0, false, false*/> itsCrc16gen;
 
 #ifdef DUMP_RAW_STATION_FRAMES
-	LOFAR::FileStream* itsRawStationData;
+      LOFAR::FileStream* itsRawStationData;
 #endif
 
-	// Thread objects must be last in TBB_StreamWriter for safe destruction.
-	Thread* itsOutputThread;
-	Thread* itsInputThread;
-
-	// do not use
-	TBB_StreamWriter();
-	TBB_StreamWriter(const TBB_StreamWriter& rhs);
-	TBB_StreamWriter& operator=(const TBB_StreamWriter& rhs);
-
-public:
-	TBB_StreamWriter(TBB_Writer& writer, const std::string& inputStreamName,
-                     size_t expNTrSamples, const std::string& logPrefix,
-                     int& inExitStatus, int& outExitStatus);
-	~TBB_StreamWriter();
-
-	// Main thread
-	time_t getTimeoutStampSec() const;
-
-private:
-	// Input threads
-	void frameHeaderLittleToHost(TBB_Header& fh) const;
-	void correctSampleNr(TBB_Header& header) const;
-	bool crc16tbb(const TBB_Header* header);
-	void processHeader(TBB_Header& header, size_t recvPayloadSize);
-	void mainInputLoop();
-
-	// Output threads
-	void mainOutputLoop();
-};
-
-class TBB_Writer {
-	// Usually, we handle only 1 station, but users have request to support multiple concurrently.
-	// The LOFAR system could better use different input streams (udp ports), but we/they are busy.
-	// map from stationID to a TBB_Station*
-	std::map<unsigned, TBB_Station*> itsStations;
-	Mutex itsStationsMutex;
-
-	// Global H5 mutex. All HDF5 operations go under a single mutex, incl file creation:
-	// don't depend on the HDF5 lib being compiled with --thread-safe.
-	Mutex itsH5Mutex;
-
-	const Parset& itsParset;
-	const StationMetaDataMap& itsStationMetaDataMap;
-	StationMetaData itsUnknownStationMetaData; // referred to for data from unknown stations (fallback)
-	const std::string& itsOutDir;
-
-	unsigned itsRunNr;
-
-	std::vector<TBB_StreamWriter*> itsStreamWriters;
-	// NOTE: do not add vars here; leave itsStreamWriters last for safe thread destruction!
-
-	// do not use
-	TBB_Writer();
-	TBB_Writer(const TBB_Writer& writer);
-	TBB_Writer& operator=(const TBB_Writer& rhs);
-
-public:
-	TBB_Writer(const std::vector<std::string>& inputStreamNames, const Parset& parset,
-               const StationMetaDataMap& stationMetaDataMap, const std::string& outDir,
-               const std::string& logPrefix, vector<int>& thrExitStatus);
-	~TBB_Writer();
-
-	// Output threads
-	TBB_Station* getStation(const TBB_Header& header);
-	// Must be called holding itsStationsMutex.
-	std::string createNewTBB_H5Filename(const TBB_Header& header, const std::string& stationName);
-
-	// Main thread
-	time_t getTimeoutStampSec(unsigned streamWriterNr) const;
-};
-
-} // namespace RTCP
+      // Thread objects must be last in TBB_StreamWriter for safe destruction.
+      Thread* itsOutputThread;
+      Thread* itsInputThread;
+
+      // do not use
+      TBB_StreamWriter();
+      TBB_StreamWriter(const TBB_StreamWriter& rhs);
+      TBB_StreamWriter& operator=(const TBB_StreamWriter& rhs);
+
+    public:
+      TBB_StreamWriter(TBB_Writer& writer, const std::string& inputStreamName,
+                       size_t expNTrSamples, const std::string& logPrefix,
+                       int& inExitStatus, int& outExitStatus);
+      ~TBB_StreamWriter();
+
+      // Main thread
+      time_t getTimeoutStampSec() const;
+
+    private:
+      // Input threads
+      void frameHeaderLittleToHost(TBB_Header& fh) const;
+      void correctSampleNr(TBB_Header& header) const;
+      bool crc16tbb(const TBB_Header* header);
+      void processHeader(TBB_Header& header, size_t recvPayloadSize);
+      void mainInputLoop();
+
+      // Output threads
+      void mainOutputLoop();
+    };
+
+    class TBB_Writer
+    {
+      // Usually, we handle only 1 station, but users have request to support multiple concurrently.
+      // The LOFAR system could better use different input streams (udp ports), but we/they are busy.
+      // map from stationID to a TBB_Station*
+      std::map<unsigned, TBB_Station*> itsStations;
+      Mutex itsStationsMutex;
+
+      // Global H5 mutex. All HDF5 operations go under a single mutex, incl file creation:
+      // don't depend on the HDF5 lib being compiled with --thread-safe.
+      Mutex itsH5Mutex;
+
+      const Parset& itsParset;
+      const StationMetaDataMap& itsStationMetaDataMap;
+      StationMetaData itsUnknownStationMetaData;   // referred to for data from unknown stations (fallback)
+      const std::string& itsOutDir;
+
+      unsigned itsRunNr;
+
+      std::vector<TBB_StreamWriter*> itsStreamWriters;
+      // NOTE: do not add vars here; leave itsStreamWriters last for safe thread destruction!
+
+      // do not use
+      TBB_Writer();
+      TBB_Writer(const TBB_Writer& writer);
+      TBB_Writer& operator=(const TBB_Writer& rhs);
+
+    public:
+      TBB_Writer(const std::vector<std::string>& inputStreamNames, const Parset& parset,
+                 const StationMetaDataMap& stationMetaDataMap, const std::string& outDir,
+                 const std::string& logPrefix, vector<int>& thrExitStatus);
+      ~TBB_Writer();
+
+      // Output threads
+      TBB_Station* getStation(const TBB_Header& header);
+      // Must be called holding itsStationsMutex.
+      std::string createNewTBB_H5Filename(const TBB_Header& header, const std::string& stationName);
+
+      // Main thread
+      time_t getTimeoutStampSec(unsigned streamWriterNr) const;
+    };
+
+  } // namespace RTCP
 } // namespace LOFAR
 
 #endif // LOFAR_STORAGE_TBB_WRITER_H
diff --git a/RTCP/Cobalt/OutputProc/src/TBB_Writer_main.cc b/RTCP/Cobalt/OutputProc/src/TBB_Writer_main.cc
index 444d16b3cbf2fb261c4504c5edda7fd93a01ed09..e711bbdd08e328042157654bb3db47320a873baf 100644
--- a/RTCP/Cobalt/OutputProc/src/TBB_Writer_main.cc
+++ b/RTCP/Cobalt/OutputProc/src/TBB_Writer_main.cc
@@ -1,5 +1,5 @@
 /* TBB_Writer_main.cc
- * 
+ *
  * LOFAR Transient Buffer Boards (TBB) Data Writer  Copyright (C) 2012
  * ASTRON (Netherlands Institute for Radio Astronomy)
  * P.O. Box 2, 7990 AA Dwingeloo, The Netherlands.
@@ -16,7 +16,7 @@
  *
  * You should have received a copy of the GNU General Public License along
  * with the LOFAR software suite.  If not, see <http://www.gnu.org/licenses/>.
- * 
+ *
  * $Id: TBB_Writer_main.cc 17261 2012-09-07 18:58:53Z amesfoort $
  */
 
@@ -25,7 +25,7 @@
  * TBB writers written by Lars Baehren, Andreas Horneffer, and Joseph Masters.
  */
 
-#include <lofar_config.h>		// before any other include
+#include <lofar_config.h>               // before any other include
 
 #define _FILE_OFFSET_BITS 64
 #include <cstddef>
@@ -56,22 +56,22 @@
 
 #include <dal/lofar/StationNames.h>
 
-#define TBB_DEFAULT_BASE_PORT	0x7bb0	// i.e. tbb0
-#define TBB_DEFAULT_LAST_PORT	0x7bbb	// 0x7bbf for NL, 0x7bbb for int'l stations
+#define TBB_DEFAULT_BASE_PORT   0x7bb0  // i.e. tbb0
+#define TBB_DEFAULT_LAST_PORT   0x7bbb  // 0x7bbf for NL, 0x7bbb for int'l stations
 
-#define STDLOG_BUFFER_SIZE	1024
+#define STDLOG_BUFFER_SIZE      1024
 
 using namespace std;
 
 struct progArgs {
-	string parsetFilename;
-	string stCalTablesDir;
-	string antFieldDir;
-	string outputDir;
-	string input;
-	uint16_t port;
-	struct timeval timeoutVal;
-	bool keepRunning;
+  string parsetFilename;
+  string stCalTablesDir;
+  string antFieldDir;
+  string outputDir;
+  string input;
+  uint16_t port;
+  struct timeval timeoutVal;
+  bool keepRunning;
 };
 
 static char stdoutbuf[STDLOG_BUFFER_SIZE];
@@ -81,14 +81,15 @@ LOFAR::NewHandler badAllocExcHandler(LOFAR::BadAllocException::newHandler);
 
 static bool sigint_seen;
 
-static void termSigsHandler(int sig_nr) {
-	if (sig_nr == SIGINT) {
-		/*
-		 * For graceful user abort. Signal might be missed, but timeout
-		 * catches it later, so don't bother with cascaded signals.
-		 */
-		sigint_seen = true;
-	}
+static void termSigsHandler(int sig_nr)
+{
+  if (sig_nr == SIGINT) {
+    /*
+     * For graceful user abort. Signal might be missed, but timeout
+     * catches it later, so don't bother with cascaded signals.
+     */
+    sigint_seen = true;
+  }
 }
 
 /*
@@ -96,485 +97,497 @@ static void termSigsHandler(int sig_nr) {
  * so we can break out of blocking system calls and exit without corruption of already written output.
  * Leave SIGQUIT (Ctrl-\) untouched, so users can still easily quit immediately.
  */
-static void setTermSigsHandler() {
-	struct sigaction sa;
-
-	sa.sa_handler = termSigsHandler;
-	sigemptyset(&sa.sa_mask);
-	sa.sa_flags = 0;
-	int err = sigaction(SIGINT,  &sa, NULL); // keyb INT (typically Ctrl-C)
-	err    |= sigaction(SIGTERM, &sa, NULL);
-	err    |= sigaction(SIGALRM, &sa, NULL); // for setitimer(); don't use sleep(3) and friends
-	if (err != 0) {
-		LOG_WARN("TBB: Failed to register SIGINT/SIGTERM handler to allow manual, early, graceful program termination.");
-	}
+static void setTermSigsHandler()
+{
+  struct sigaction sa;
+
+  sa.sa_handler = termSigsHandler;
+  sigemptyset(&sa.sa_mask);
+  sa.sa_flags = 0;
+  int err = sigaction(SIGINT,  &sa, NULL);       // keyb INT (typically Ctrl-C)
+  err |= sigaction(SIGTERM, &sa, NULL);
+  err |= sigaction(SIGALRM, &sa, NULL);          // for setitimer(); don't use sleep(3) and friends
+  if (err != 0) {
+    LOG_WARN("TBB: Failed to register SIGINT/SIGTERM handler to allow manual, early, graceful program termination.");
+  }
 }
 
-static vector<string> getTBB_InputStreamNames(const string& input, uint16_t portsBase) {
-	int nTbbBoards;
-	try {
-		LOFAR::StationConfig stConf;
-		nTbbBoards = stConf.nrTBBs;
-	} catch (LOFAR::AssertError& ) { // config file not found
-		LOG_DEBUG_STR("Falling back to at most " << TBB_DEFAULT_LAST_PORT - TBB_DEFAULT_BASE_PORT + 1 << " input streams (1 per board)");
-		nTbbBoards = TBB_DEFAULT_LAST_PORT - TBB_DEFAULT_BASE_PORT + 1; // fallback
-	}
-
-	vector<string> allInputStreamNames;
-	if (input == "udp" || input == "tcp") {
-		for (uint16_t port = portsBase; port <= portsBase + nTbbBoards; ++port) {
-			// 0.0.0.0: could restrict to station IPs/network, but need netmask lookup and allow localhost. Not critical: data arrives on a separate VLAN.
-			string streamName(input + ":0.0.0.0:" + LOFAR::formatString("%hu", port));
-			allInputStreamNames.push_back(streamName);
-		}
-	} else { // file or named pipe input
-		size_t colonPos = input.find(':');
-		if (colonPos == string::npos) {
-			return allInputStreamNames;
-		}
-		size_t placeholderPos = input.find_last_of('%');
-		if (placeholderPos == string::npos) { // single input, no expansion needed
-			if (access(input.c_str() + colonPos + 1, R_OK) == 0) {
-				allInputStreamNames.push_back(input);
-			}
-		} else { // expand e.g. file:x%y-%.raw into {file:x%y-0.raw, file:x%y-1.raw, ..., file:x%y-11.raw}
-			for (int i = 0; i < nTbbBoards; ++i) {
-				string streamName(input);
-				streamName.replace(placeholderPos, 1, LOFAR::formatString("%u", i));
-				if (access(streamName.c_str() + colonPos + 1, R_OK) == 0) {
-					allInputStreamNames.push_back(streamName);
-				}
-			}
-		}
-	}
-
-	return allInputStreamNames;
+static vector<string> getTBB_InputStreamNames(const string& input, uint16_t portsBase)
+{
+  int nTbbBoards;
+  try {
+    LOFAR::StationConfig stConf;
+    nTbbBoards = stConf.nrTBBs;
+  } catch (LOFAR::AssertError& ) {       // config file not found
+    LOG_DEBUG_STR("Falling back to at most " << TBB_DEFAULT_LAST_PORT - TBB_DEFAULT_BASE_PORT + 1 << " input streams (1 per board)");
+    nTbbBoards = TBB_DEFAULT_LAST_PORT - TBB_DEFAULT_BASE_PORT + 1;             // fallback
+  }
+
+  vector<string> allInputStreamNames;
+  if (input == "udp" || input == "tcp") {
+    for (uint16_t port = portsBase; port <= portsBase + nTbbBoards; ++port) {
+      // 0.0.0.0: could restrict to station IPs/network, but need netmask lookup and allow localhost. Not critical: data arrives on a separate VLAN.
+      string streamName(input + ":0.0.0.0:" + LOFAR::formatString("%hu", port));
+      allInputStreamNames.push_back(streamName);
+    }
+  } else {       // file or named pipe input
+    size_t colonPos = input.find(':');
+    if (colonPos == string::npos) {
+      return allInputStreamNames;
+    }
+    size_t placeholderPos = input.find_last_of('%');
+    if (placeholderPos == string::npos) {             // single input, no expansion needed
+      if (access(input.c_str() + colonPos + 1, R_OK) == 0) {
+        allInputStreamNames.push_back(input);
+      }
+    } else {             // expand e.g. file:x%y-%.raw into {file:x%y-0.raw, file:x%y-1.raw, ..., file:x%y-11.raw}
+      for (int i = 0; i < nTbbBoards; ++i) {
+        string streamName(input);
+        streamName.replace(placeholderPos, 1, LOFAR::formatString("%u", i));
+        if (access(streamName.c_str() + colonPos + 1, R_OK) == 0) {
+          allInputStreamNames.push_back(streamName);
+        }
+      }
+    }
+  }
+
+  return allInputStreamNames;
 }
 
-static void retrieveStationCalTables(string& stCalTablesDir) {
-	/*
-	 * Users need the station calibration tables included. This is a major pain, because
-	 * we figure out which station(s) we receive from at runtime (relying on the static
-	 * mapping is a disaster waiting to happen), we cannot ask the stations and the
-	 * alternative, from svn, is unreliable and races with (few) Science Support updates.
-	 * Not all users care about the race, a few do. Also, auth, and this exposes an internal
-	 * interface (cal tables) to users... Still do it: TBB is too low prio to get stuff nice.
-	 *
-	 * Get tables from all stations for the right cal mode (i.e. usually only verifies svn local copy),
-	 * Run 'svn cleanup' and 'svn upgrade' when needed, otherwise remove the local copies and re-retrieve.
-	 *
+static void retrieveStationCalTables(string& stCalTablesDir)
+{
+  /*
+   * Users need the station calibration tables included. This is a major pain, because
+   * we figure out which station(s) we receive from at runtime (relying on the static
+   * mapping is a disaster waiting to happen), we cannot ask the stations and the
+   * alternative, from svn, is unreliable and races with (few) Science Support updates.
+   * Not all users care about the race, a few do. Also, auth, and this exposes an internal
+   * interface (cal tables) to users... Still do it: TBB is too low prio to get stuff nice.
+   *
+   * Get tables from all stations for the right cal mode (i.e. usually only verifies svn local copy),
+   * Run 'svn cleanup' and 'svn upgrade' when needed, otherwise remove the local copies and re-retrieve.
+   *
 
-	 */
+   */
 
-//svn checkout https://svn.astron.nl/Station/trunk/CalTables
-//but only the needed files
-//svn update
-//Ctrl-C doesn't seem to kill svn co/up (only pause/halt), so use Ctrl-\ (QUIT), then svn cleanup
+  //svn checkout https://svn.astron.nl/Station/trunk/CalTables
+  //but only the needed files
+  //svn update
+  //Ctrl-C doesn't seem to kill svn co/up (only pause/halt), so use Ctrl-\ (QUIT), then svn cleanup
 
-//svn: Working copy '.' locked
-//svn: run 'svn cleanup' to remove locks (type 'svn help cleanup' for details)
-//svn cleanup
+  //svn: Working copy '.' locked
+  //svn: run 'svn cleanup' to remove locks (type 'svn help cleanup' for details)
+  //svn cleanup
 
-//rm -rf CalTables
+  //rm -rf CalTables
 
-// Note: include the entire cal table as-is, because that easily allows users to just resort to the raw files
+  // Note: include the entire cal table as-is, because that easily allows users to just resort to the raw files
 
-//	- if stCalTablesDir.empty():
+  //	- if stCalTablesDir.empty():
 
-//	- get station names, st cal mode
-//	- fork process (sh script), do data writes
-//	- sh script does svn checkout/update on req files only into ~/TBB_Writer-Station-CalTabs-localcopy/Station/CalTables/*
-//	- listen for tbb data. When data writes done, do timed wait() on script pid, and if ok, add cal tables.
-//	- if not ok: if timeout { signal script to abort and run svn cleanup, wait()}. Skip writing cal tabs, log warning + script output.
+  //	- get station names, st cal mode
+  //	- fork process (sh script), do data writes
+  //	- sh script does svn checkout/update on req files only into ~/TBB_Writer-Station-CalTabs-localcopy/Station/CalTables/*
+  //	- listen for tbb data. When data writes done, do timed wait() on script pid, and if ok, add cal tables.
+  //	- if not ok: if timeout { signal script to abort and run svn cleanup, wait()}. Skip writing cal tabs, log warning + script output.
 
 }
 
-static int antSetName2AntFieldIndex(const string& antSetName) {
-	int idx;
-
-	if (strncmp(antSetName.c_str(), "LBA", sizeof("LBA")-1) == 0) {
-		idx = LOFAR::AntField::LBA_IDX;
-	} else if (strncmp(antSetName.c_str(), "HBA_ZERO", sizeof("HBA_ZERO")-1) == 0) {
-		idx = LOFAR::AntField::HBA0_IDX;
-	} else if (strncmp(antSetName.c_str(), "HBA_ONE", sizeof("HBA_ONE")-1) == 0) {
-		idx = LOFAR::AntField::HBA1_IDX;
-	} else if (strncmp(antSetName.c_str(), "HBA", sizeof("HBA")-1) == 0) {
-		idx = LOFAR::AntField::HBA_IDX;
-	} else {
-		throw LOFAR::RTCP::StorageException("unknown antenna set name");
-	}
-
-	return idx;
+static int antSetName2AntFieldIndex(const string& antSetName)
+{
+  int idx;
+
+  if (strncmp(antSetName.c_str(), "LBA", sizeof("LBA") - 1) == 0) {
+    idx = LOFAR::AntField::LBA_IDX;
+  } else if (strncmp(antSetName.c_str(), "HBA_ZERO", sizeof("HBA_ZERO") - 1) == 0) {
+    idx = LOFAR::AntField::HBA0_IDX;
+  } else if (strncmp(antSetName.c_str(), "HBA_ONE", sizeof("HBA_ONE") - 1) == 0) {
+    idx = LOFAR::AntField::HBA1_IDX;
+  } else if (strncmp(antSetName.c_str(), "HBA", sizeof("HBA") - 1) == 0) {
+    idx = LOFAR::AntField::HBA_IDX;
+  } else {
+    throw LOFAR::RTCP::StorageException("unknown antenna set name");
+  }
+
+  return idx;
 }
 
-static LOFAR::RTCP::StationMetaDataMap getExternalStationMetaData(const LOFAR::RTCP::Parset& parset, const string& antFieldDir) {
-	LOFAR::RTCP::StationMetaDataMap stMdMap;
-
-	try {
-		// Find path to antenna field files. If not a prog arg, try via $LOFARROOT, else via parset.
-		// LOFAR repos location: MAC/Deployment/data/StaticMetaData/AntennaFields/
-		string antFieldPath(antFieldDir);
-		if (antFieldPath.empty()) {
-			char* lrpath = getenv("LOFARROOT");
-			if (lrpath != NULL) {
-				antFieldPath = string(lrpath) + "/etc/StaticMetaData/";
-			} else { // parset typically gives "/data/home/lofarsys/production/lofar/etc/StaticMetaData"
-				antFieldPath = parset.AntennaFieldsDir(); // doesn't quite do what its name suggests, so append a component
-				if (!antFieldPath.empty()) {
-					antFieldPath.push_back('/');
-				}
-			}
-			antFieldPath.append("AntennaFields/");
-		}
-
-		int fieldIdx = antSetName2AntFieldIndex(parset.antennaSet());
-
-		vector<string> stationNames(parset.allStationNames());
-		for (vector<string>::const_iterator it(stationNames.begin());
-                     it != stationNames.end(); ++it) {
-
-			string stName(it->substr(0, sizeof("CS001")-1)); // drop any "HBA0"-like suffix
-			string antFieldFilename(antFieldPath + stName + "-AntennaField.conf");
-
-			// Tries to locate the filename if no abs path is given, else throws AssertError exc.
-			LOFAR::AntField antField(antFieldFilename);
-
-			// Compute absolute antenna positions from centre + relative.
-			// See AntField.h in ApplCommon for the AFArray typedef and contents (first is shape, second is values).
-			LOFAR::RTCP::StationMetaData stMetaData;
-			stMetaData.available = true;
-			stMetaData.antPositions = antField.AntPos(fieldIdx).second;
-			for (size_t i = 0; i < stMetaData.antPositions.size(); i += 3) {
-				stMetaData.antPositions.at(i+2) += antField.Centre(fieldIdx).second.at(2);
-				stMetaData.antPositions[i+1]    += antField.Centre(fieldIdx).second[1];
-				stMetaData.antPositions[i]      += antField.Centre(fieldIdx).second[0];
-			}
-
-			stMetaData.normalVector   = antField.normVector(fieldIdx).second;
-			stMetaData.rotationMatrix = antField.rotationMatrix(fieldIdx).second;
-
-			stMdMap.insert(make_pair(dal::stationNameToID(stName), stMetaData));
-		}
-	} catch (LOFAR::AssertError& exc) {
-		// Throwing AssertError already sends a message to the logger.
-	} catch (dal::DALValueError& exc) {
-		throw LOFAR::RTCP::StorageException(exc.what());
-	}
-
-	return stMdMap;
+static LOFAR::RTCP::StationMetaDataMap getExternalStationMetaData(const LOFAR::RTCP::Parset& parset, const string& antFieldDir)
+{
+  LOFAR::RTCP::StationMetaDataMap stMdMap;
+
+  try {
+    // Find path to antenna field files. If not a prog arg, try via $LOFARROOT, else via parset.
+    // LOFAR repos location: MAC/Deployment/data/StaticMetaData/AntennaFields/
+    string antFieldPath(antFieldDir);
+    if (antFieldPath.empty()) {
+      char* lrpath = getenv("LOFARROOT");
+      if (lrpath != NULL) {
+        antFieldPath = string(lrpath) + "/etc/StaticMetaData/";
+      } else {                   // parset typically gives "/data/home/lofarsys/production/lofar/etc/StaticMetaData"
+        antFieldPath = parset.AntennaFieldsDir();                         // doesn't quite do what its name suggests, so append a component
+        if (!antFieldPath.empty()) {
+          antFieldPath.push_back('/');
+        }
+      }
+      antFieldPath.append("AntennaFields/");
+    }
+
+    int fieldIdx = antSetName2AntFieldIndex(parset.antennaSet());
+
+    vector<string> stationNames(parset.allStationNames());
+    for (vector<string>::const_iterator it(stationNames.begin());
+         it != stationNames.end(); ++it) {
+
+      string stName(it->substr(0, sizeof("CS001") - 1));                 // drop any "HBA0"-like suffix
+      string antFieldFilename(antFieldPath + stName + "-AntennaField.conf");
+
+      // Tries to locate the filename if no abs path is given, else throws AssertError exc.
+      LOFAR::AntField antField(antFieldFilename);
+
+      // Compute absolute antenna positions from centre + relative.
+      // See AntField.h in ApplCommon for the AFArray typedef and contents (first is shape, second is values).
+      LOFAR::RTCP::StationMetaData stMetaData;
+      stMetaData.available = true;
+      stMetaData.antPositions = antField.AntPos(fieldIdx).second;
+      for (size_t i = 0; i < stMetaData.antPositions.size(); i += 3) {
+        stMetaData.antPositions.at(i + 2) += antField.Centre(fieldIdx).second.at(2);
+        stMetaData.antPositions[i + 1] += antField.Centre(fieldIdx).second[1];
+        stMetaData.antPositions[i] += antField.Centre(fieldIdx).second[0];
+      }
+
+      stMetaData.normalVector = antField.normVector(fieldIdx).second;
+      stMetaData.rotationMatrix = antField.rotationMatrix(fieldIdx).second;
+
+      stMdMap.insert(make_pair(dal::stationNameToID(stName), stMetaData));
+    }
+  } catch (LOFAR::AssertError& exc) {
+    // Throwing AssertError already sends a message to the logger.
+  } catch (dal::DALValueError& exc) {
+    throw LOFAR::RTCP::StorageException(exc.what());
+  }
+
+  return stMdMap;
 }
 
 static int doTBB_Run(const vector<string>& inputStreamNames, const LOFAR::RTCP::Parset& parset,
-                     const LOFAR::RTCP::StationMetaDataMap& stMdMap, struct progArgs& args) {
-	string logPrefix("TBB obs " + LOFAR::formatString("%u", parset.observationID()) + ": ");
-
-	vector<int> thrExitStatus(2 * inputStreamNames.size(), 0);
-	int err = 1;
-	try {
-		// When this obj goes out of scope, worker threads are cancelled and joined with.
-		LOFAR::RTCP::TBB_Writer writer(inputStreamNames, parset, stMdMap, args.outputDir, logPrefix, thrExitStatus);
-
-		/*
-		 * We don't know how much data comes in, so cancel workers when all are idle for a while (timeoutVal).
-		 * In some situations, threads can become active again after idling a bit, so periodically monitor thread timeout stamps.
-		 * Poor man's sync, but per-thread timers to break read() to notify us of idleness does not work.
-		 * This (sucks and :)) could be improved once the LOFAR system tells us how much data will be dumped, or when done.
-		 */
-		struct itimerval timer = {args.timeoutVal, args.timeoutVal};
-		if (setitimer(ITIMER_REAL, &timer, NULL) != 0) {
-			throw LOFAR::SystemCallException("setitimer", errno, THROW_ARGS);
-		}
-
-		bool anyFrameReceived = false; // don't quit if there is no data immediately after starting
-		size_t nrWorkersDone;
-		do {
-			pause();
-			if (sigint_seen) { // typically Ctrl-C
-				args.keepRunning = false; // for main(), not for worker threads
-				break;
-			}
-
-			nrWorkersDone = 0;
-			for (size_t i = 0; i < inputStreamNames.size(); i++) {
-				struct timeval now;
-				gettimeofday(&now, NULL);
-				time_t lastActive_sec = writer.getTimeoutStampSec(i);
-				if (lastActive_sec != 0) {
-					anyFrameReceived = true;
-				}
-				if (anyFrameReceived && lastActive_sec <= now.tv_sec - args.timeoutVal.tv_sec) {
-					nrWorkersDone += 1;
-				}
-			}
-		} while (nrWorkersDone < inputStreamNames.size());
-		err = 0;
-	} catch (LOFAR::Exception& exc) {
-		LOG_FATAL_STR(logPrefix << "LOFAR::Exception: " << exc);
-	} catch (exception& exc) {
-		LOG_FATAL_STR(logPrefix << "std::exception: " << exc.what());
-	}
-
-	// Propagate exit status != 0 from any input or output worker thread.
-	for (unsigned i = 0; i < thrExitStatus.size(); ++i) {
-		if (thrExitStatus[i] != 0) {
-			err = 1;
-			break;
-		}
-	}
-
-	return err;
+                     const LOFAR::RTCP::StationMetaDataMap& stMdMap, struct progArgs& args)
+{
+  string logPrefix("TBB obs " + LOFAR::formatString("%u", parset.observationID()) + ": ");
+
+  vector<int> thrExitStatus(2 * inputStreamNames.size(), 0);
+  int err = 1;
+  try {
+    // When this obj goes out of scope, worker threads are cancelled and joined with.
+    LOFAR::RTCP::TBB_Writer writer(inputStreamNames, parset, stMdMap, args.outputDir, logPrefix, thrExitStatus);
+
+    /*
+     * We don't know how much data comes in, so cancel workers when all are idle for a while (timeoutVal).
+     * In some situations, threads can become active again after idling a bit, so periodically monitor thread timeout stamps.
+     * Poor man's sync, but per-thread timers to break read() to notify us of idleness does not work.
+     * This (sucks and :)) could be improved once the LOFAR system tells us how much data will be dumped, or when done.
+     */
+    struct itimerval timer = {args.timeoutVal, args.timeoutVal};
+    if (setitimer(ITIMER_REAL, &timer, NULL) != 0) {
+      throw LOFAR::SystemCallException("setitimer", errno, THROW_ARGS);
+    }
+
+    bool anyFrameReceived = false;             // don't quit if there is no data immediately after starting
+    size_t nrWorkersDone;
+    do {
+      pause();
+      if (sigint_seen) {                   // typically Ctrl-C
+        args.keepRunning = false;                         // for main(), not for worker threads
+        break;
+      }
+
+      nrWorkersDone = 0;
+      for (size_t i = 0; i < inputStreamNames.size(); i++) {
+        struct timeval now;
+        gettimeofday(&now, NULL);
+        time_t lastActive_sec = writer.getTimeoutStampSec(i);
+        if (lastActive_sec != 0) {
+          anyFrameReceived = true;
+        }
+        if (anyFrameReceived && lastActive_sec <= now.tv_sec - args.timeoutVal.tv_sec) {
+          nrWorkersDone += 1;
+        }
+      }
+    } while (nrWorkersDone < inputStreamNames.size());
+    err = 0;
+  } catch (LOFAR::Exception& exc) {
+    LOG_FATAL_STR(logPrefix << "LOFAR::Exception: " << exc);
+  } catch (exception& exc) {
+    LOG_FATAL_STR(logPrefix << "std::exception: " << exc.what());
+  }
+
+  // Propagate exit status != 0 from any input or output worker thread.
+  for (unsigned i = 0; i < thrExitStatus.size(); ++i) {
+    if (thrExitStatus[i] != 0) {
+      err = 1;
+      break;
+    }
+  }
+
+  return err;
 }
 
-static int isExistingDirname(const string& dirname) {
-	struct stat st;
+static int isExistingDirname(const string& dirname)
+{
+  struct stat st;
 
-	if (stat(dirname.c_str(), &st) != 0) {
-		return errno;
-	}
+  if (stat(dirname.c_str(), &st) != 0) {
+    return errno;
+  }
 
-	// Check if the last component is a dir too (stat() did the rest).
-	if (!S_ISDIR(st.st_mode)) {
-		return ENOTDIR;
-	}
+  // Check if the last component is a dir too (stat() did the rest).
+  if (!S_ISDIR(st.st_mode)) {
+    return ENOTDIR;
+  }
 
-	return 0;
+  return 0;
 }
 
-static void printUsage(const char* progname) {
-	cout << "LOFAR TBB_Writer version: ";
+static void printUsage(const char* progname)
+{
+  cout << "LOFAR TBB_Writer version: ";
 #ifndef TBB_WRITER_VERSION
-	cout << LOFAR::StorageVersion::getVersion();
+  cout << LOFAR::StorageVersion::getVersion();
 #else
-	cout << TBB_WRITER_VERSION;
+  cout << TBB_WRITER_VERSION;
 #endif
-	cout << endl;
-	cout << "Write incoming LOFAR TBB data with meta data to storage in HDF5 format." << endl;
-	cout << "Usage: " << progname << " -p parsets/L12345.parset [OPTION]..." << endl;
-	cout << endl;
-	cout << "Options:" << endl;
-	cout << "  -p, --parset=L12345.parset          path to file with observation settings (mandatory)" << endl;
-	cout << endl;
-	cout << "  -c, --stcaltablesdir=/c/CalTables   path to override SVN retrieval of station calibration tables (like CS001/CalTable_001_mode1.dat)" << endl;
-	cout << "  -a, --antfielddir=/a/AntennaFields  path to override $LOFARROOT and parset path for antenna field files (like CS001-AntennaField.conf)" << endl;
-	cout << "  -o, --outputdir=tbbout              existing output directory" << endl;
-	cout << "  -i, --input=tcp|udp                 input stream(s) or type (default: udp)" << endl;
-	cout << "              file:raw.dat                if file or pipe name has a '%'," << endl;
-	cout << "              pipe:named-%.pipe           then the last '%' is replaced by 0, 1, ..., 11" << endl;
-	cout << "  -b, --portbase=31665                start of range of 12 consecutive udp/tcp ports to receive from" << endl;
-	cout << "  -t, --timeout=10                    seconds of input inactivity until dump is considered completed" << endl;
-	cout << endl;
-	cout << "  -k, --keeprunning[=true|false]      accept new input after a dump completed (default: true)" << endl;
-	cout << endl;
-	cout << "  -h, --help                          print program name, version number and this info, then exit" << endl;
-	cout << "  -v, --version                       same as --help" << endl;
+  cout << endl;
+  cout << "Write incoming LOFAR TBB data with meta data to storage in HDF5 format." << endl;
+  cout << "Usage: " << progname << " -p parsets/L12345.parset [OPTION]..." << endl;
+  cout << endl;
+  cout << "Options:" << endl;
+  cout << "  -p, --parset=L12345.parset          path to file with observation settings (mandatory)" << endl;
+  cout << endl;
+  cout << "  -c, --stcaltablesdir=/c/CalTables   path to override SVN retrieval of station calibration tables (like CS001/CalTable_001_mode1.dat)" << endl;
+  cout << "  -a, --antfielddir=/a/AntennaFields  path to override $LOFARROOT and parset path for antenna field files (like CS001-AntennaField.conf)" << endl;
+  cout << "  -o, --outputdir=tbbout              existing output directory" << endl;
+  cout << "  -i, --input=tcp|udp                 input stream(s) or type (default: udp)" << endl;
+  cout << "              file:raw.dat                if file or pipe name has a '%'," << endl;
+  cout << "              pipe:named-%.pipe           then the last '%' is replaced by 0, 1, ..., 11" << endl;
+  cout << "  -b, --portbase=31665                start of range of 12 consecutive udp/tcp ports to receive from" << endl;
+  cout << "  -t, --timeout=10                    seconds of input inactivity until dump is considered completed" << endl;
+  cout << endl;
+  cout << "  -k, --keeprunning[=true|false]      accept new input after a dump completed (default: true)" << endl;
+  cout << endl;
+  cout << "  -h, --help                          print program name, version number and this info, then exit" << endl;
+  cout << "  -v, --version                       same as --help" << endl;
 }
 
-static int parseArgs(int argc, char *argv[], struct progArgs* args) {
-	int status = 0;
-
-	// Default values
-	args->parsetFilename = "";	// there is no default parset filename, so not passing it is fatal
-	args->stCalTablesDir = "";	// idem, but otherwise, retrieve from svn and not fatal
-	args->antFieldDir = "";		// idem, but otherwise, detect and not fatal
-
-	args->outputDir = "";
-	args->input = "udp";
-	args->port = TBB_DEFAULT_BASE_PORT;
-	args->timeoutVal.tv_sec = 10; // after this default of inactivity cancel all input threads and close output files
-	args->timeoutVal.tv_usec = 0;
-	args->keepRunning = true;
-
-	static const struct option long_opts[] = {
-		// NOTE: If you change this, then also change the code below AND the printUsage() code above!
-		// {const char *name, int has_arg, int *flag, int val}
-		{"parset",         required_argument, NULL, 'p'},
-		{"stcaltablesdir", required_argument, NULL, 'c'}, // station calibration tables
-		{"antfielddir",    required_argument, NULL, 'a'}, // antenna field info
-		{"outputdir",      required_argument, NULL, 'o'},
-		{"input",          required_argument, NULL, 'i'},
-		{"portbase",       required_argument, NULL, 'b'}, // port (b)ase
-		{"timeout",        required_argument, NULL, 't'},
-
-		{"keeprunning",    optional_argument, NULL, 'k'},
-
-		{"help",           no_argument,       NULL, 'h'},
-		{"version",        no_argument,       NULL, 'v'},
-
-		{NULL, 0, NULL, 0}
-	};
-
-	opterr = 0; // prevent error printing to stderr by getopt_long()
-	int opt, err;
-	while ((opt = getopt_long(argc, argv, "hvs:a:o:p:b:t:k::", long_opts, NULL)) != -1) {
-		switch (opt) {
-		case 'p':
-			args->parsetFilename = optarg;
-			break;
-		case 'c':
-			args->stCalTablesDir = optarg;
-			if (args->stCalTablesDir[0] != '\0' && args->stCalTablesDir[args->stCalTablesDir.size() - 1] != '/') {
-				args->stCalTablesDir.push_back('/');
-			}
-			if ((err = isExistingDirname(args->stCalTablesDir)) != 0) {
-				LOG_FATAL_STR("TBB: station cal tab dir argument value " << optarg << ": " << strerror(err));
-				status = 1;
-			}
-			break;
-		case 'a':
-			args->antFieldDir = optarg;
-			if (args->antFieldDir[0] != '\0' && args->antFieldDir[args->antFieldDir.size() - 1] != '/') {
-				args->antFieldDir.push_back('/');
-			}
-			if ((err = isExistingDirname(args->antFieldDir)) != 0) {
-				LOG_FATAL_STR("TBB: antenna field dir argument value " << optarg << ": " << strerror(err));
-				status = 1;
-			}
-			break;
-		case 'o':
-			args->outputDir = optarg;
-			if (args->outputDir[0] != '\0' && args->outputDir[args->outputDir.size() - 1] != '/') {
-				args->outputDir.push_back('/');
-			}
-			if ((err = isExistingDirname(args->outputDir)) != 0) {
-				LOG_FATAL_STR("TBB: output dir argument value " << optarg << ": " << strerror(err));
-				status = 1;
-			}
-			break;
-		case 'i':
-			if (strcmp(optarg, "tcp") == 0 || strcmp(optarg, "udp") == 0 ||
-					strncmp(optarg, "file:", sizeof("file:")-1) == 0 ||
-					strncmp(optarg, "pipe:", sizeof("pipe:")-1) == 0) {
-				args->input = optarg;
-			} else {
-				LOG_FATAL_STR("TBB: Invalid input argument value: " << optarg);
-				status = 1;
-			}
-			break;
-		case 'b':
-			try {
-				args->port = boost::lexical_cast<uint16_t>(optarg);
-				if (args->port > 65536 - (TBB_DEFAULT_LAST_PORT - TBB_DEFAULT_BASE_PORT)) {
-					throw boost::bad_lexical_cast(); // abuse exc type to have single catch
-				}
-			} catch (boost::bad_lexical_cast& /*exc*/) {
-				LOG_FATAL_STR("TBB: Invalid port argument value: " << optarg);
-				status = 1;
-			}
-			break;
-		case 't':
-			try {
-				args->timeoutVal.tv_sec = boost::lexical_cast<unsigned long>(optarg);
-			} catch (boost::bad_lexical_cast& /*exc*/) {
-				LOG_FATAL_STR("TBB: Invalid timeout argument value: " << optarg);
-				status = 1;
-			}
-			break;
-		case 'k':
-			if (optarg == NULL || optarg[0] == '\0') {
-				args->keepRunning = true;
-				break;
-			}
-			try {
-				args->keepRunning = boost::lexical_cast<bool>(optarg);
-			} catch (boost::bad_lexical_cast& /*exc*/) {
-				LOG_FATAL_STR("TBB: Invalid keeprunning argument value: " << optarg);
-				status = 1;
-			}
-			break;
-		case 'h':
-		case 'v':
-			if (status == 0) {
-				status = 2;
-			}
-			break;
-		default: // '?'
-			LOG_FATAL_STR("TBB: Invalid program argument or missing argument value: " << argv[optind-1]);
-			status = 1;
-		}
-	}
-
-	if (optind < argc) {
-		ostringstream oss;
-		oss << "TBB: Failed to recognize arguments:";
-		while (optind < argc) {
-			oss << " " << argv[optind++]; // good enough
-		}
-		LOG_FATAL_STR(oss.str());
-		status = 1;
-	}
-
-	return status;
+static int parseArgs(int argc, char *argv[], struct progArgs* args)
+{
+  int status = 0;
+
+  // Default values
+  args->parsetFilename = "";            // there is no default parset filename, so not passing it is fatal
+  args->stCalTablesDir = "";            // idem, but otherwise, retrieve from svn and not fatal
+  args->antFieldDir = "";               // idem, but otherwise, detect and not fatal
+
+  args->outputDir = "";
+  args->input = "udp";
+  args->port = TBB_DEFAULT_BASE_PORT;
+  args->timeoutVal.tv_sec = 10;       // after this default of inactivity cancel all input threads and close output files
+  args->timeoutVal.tv_usec = 0;
+  args->keepRunning = true;
+
+  static const struct option long_opts[] = {
+    // NOTE: If you change this, then also change the code below AND the printUsage() code above!
+    // {const char *name, int has_arg, int *flag, int val}
+    {"parset",         required_argument, NULL, 'p'},
+    {"stcaltablesdir", required_argument, NULL, 'c'},             // station calibration tables
+    {"antfielddir",    required_argument, NULL, 'a'},             // antenna field info
+    {"outputdir",      required_argument, NULL, 'o'},
+    {"input",          required_argument, NULL, 'i'},
+    {"portbase",       required_argument, NULL, 'b'},             // port (b)ase
+    {"timeout",        required_argument, NULL, 't'},
+
+    {"keeprunning",    optional_argument, NULL, 'k'},
+
+    {"help",           no_argument,       NULL, 'h'},
+    {"version",        no_argument,       NULL, 'v'},
+
+    {NULL, 0, NULL, 0}
+  };
+
+  opterr = 0;       // prevent error printing to stderr by getopt_long()
+  int opt, err;
+  while ((opt = getopt_long(argc, argv, "hvs:a:o:p:b:t:k::", long_opts, NULL)) != -1) {
+    switch (opt) {
+    case 'p':
+      args->parsetFilename = optarg;
+      break;
+    case 'c':
+      args->stCalTablesDir = optarg;
+      if (args->stCalTablesDir[0] != '\0' && args->stCalTablesDir[args->stCalTablesDir.size() - 1] != '/') {
+        args->stCalTablesDir.push_back('/');
+      }
+      if ((err = isExistingDirname(args->stCalTablesDir)) != 0) {
+        LOG_FATAL_STR("TBB: station cal tab dir argument value " << optarg << ": " << strerror(err));
+        status = 1;
+      }
+      break;
+    case 'a':
+      args->antFieldDir = optarg;
+      if (args->antFieldDir[0] != '\0' && args->antFieldDir[args->antFieldDir.size() - 1] != '/') {
+        args->antFieldDir.push_back('/');
+      }
+      if ((err = isExistingDirname(args->antFieldDir)) != 0) {
+        LOG_FATAL_STR("TBB: antenna field dir argument value " << optarg << ": " << strerror(err));
+        status = 1;
+      }
+      break;
+    case 'o':
+      args->outputDir = optarg;
+      if (args->outputDir[0] != '\0' && args->outputDir[args->outputDir.size() - 1] != '/') {
+        args->outputDir.push_back('/');
+      }
+      if ((err = isExistingDirname(args->outputDir)) != 0) {
+        LOG_FATAL_STR("TBB: output dir argument value " << optarg << ": " << strerror(err));
+        status = 1;
+      }
+      break;
+    case 'i':
+      if (strcmp(optarg, "tcp") == 0 || strcmp(optarg, "udp") == 0 ||
+          strncmp(optarg, "file:", sizeof("file:") - 1) == 0 ||
+          strncmp(optarg, "pipe:", sizeof("pipe:") - 1) == 0) {
+        args->input = optarg;
+      } else {
+        LOG_FATAL_STR("TBB: Invalid input argument value: " << optarg);
+        status = 1;
+      }
+      break;
+    case 'b':
+      try {
+        args->port = boost::lexical_cast<uint16_t>(optarg);
+        if (args->port > 65536 - (TBB_DEFAULT_LAST_PORT - TBB_DEFAULT_BASE_PORT)) {
+          throw boost::bad_lexical_cast();                               // abuse exc type to have single catch
+        }
+      } catch (boost::bad_lexical_cast& /*exc*/) {
+        LOG_FATAL_STR("TBB: Invalid port argument value: " << optarg);
+        status = 1;
+      }
+      break;
+    case 't':
+      try {
+        args->timeoutVal.tv_sec = boost::lexical_cast<unsigned long>(optarg);
+      } catch (boost::bad_lexical_cast& /*exc*/) {
+        LOG_FATAL_STR("TBB: Invalid timeout argument value: " << optarg);
+        status = 1;
+      }
+      break;
+    case 'k':
+      if (optarg == NULL || optarg[0] == '\0') {
+        args->keepRunning = true;
+        break;
+      }
+      try {
+        args->keepRunning = boost::lexical_cast<bool>(optarg);
+      } catch (boost::bad_lexical_cast& /*exc*/) {
+        LOG_FATAL_STR("TBB: Invalid keeprunning argument value: " << optarg);
+        status = 1;
+      }
+      break;
+    case 'h':
+    case 'v':
+      if (status == 0) {
+        status = 2;
+      }
+      break;
+    default:             // '?'
+      LOG_FATAL_STR("TBB: Invalid program argument or missing argument value: " << argv[optind - 1]);
+      status = 1;
+    }
+  }
+
+  if (optind < argc) {
+    ostringstream oss;
+    oss << "TBB: Failed to recognize arguments:";
+    while (optind < argc) {
+      oss << " " << argv[optind++];                   // good enough
+    }
+    LOG_FATAL_STR(oss.str());
+    status = 1;
+  }
+
+  return status;
 }
 
-int main(int argc, char* argv[]) {
-	struct progArgs args;
-	int err;
+int main(int argc, char* argv[])
+{
+  struct progArgs args;
+  int err;
 
 #if defined HAVE_LOG4CPLUS || defined HAVE_LOG4CXX
-	struct Log {
-		Log(const char* argv0) {
-			char *dirc = strdup(argv0); // dirname() may clobber its arg
-			if (dirc != NULL) {
-				INIT_LOGGER(string(getenv("LOFARROOT") ? : dirname(dirc)) + "/../etc/Storage_main.log_prop");
-				free(dirc);
-			}
-		}
-
-		~Log() {
-			LOGGER_EXIT_THREAD(); // destroys NDC created by INIT_LOGGER()
-		}
-	} logger(argv[0]);
+  struct Log {
+    Log(const char* argv0)
+    {
+      char *dirc = strdup(argv0);                   // dirname() may clobber its arg
+      if (dirc != NULL) {
+        INIT_LOGGER(string(getenv("LOFARROOT") ? : dirname(dirc)) + "/../etc/Storage_main.log_prop");
+        free(dirc);
+      }
+    }
+
+    ~Log()
+    {
+      LOGGER_EXIT_THREAD();                   // destroys NDC created by INIT_LOGGER()
+    }
+  } logger(argv[0]);
 #endif
 
-	err  = setvbuf(stdout, stdoutbuf, _IOLBF, sizeof stdoutbuf);
-	err |= setvbuf(stderr, stderrbuf, _IOLBF, sizeof stderrbuf);
-	if (err != 0) {
-		LOG_WARN("TBB: failed to change stdout and/or stderr output buffers");
-	}
-
-	if ((err = parseArgs(argc, argv, &args)) != 0) {
-		if (err == 2) err = 0;
-		printUsage(argv[0]);
-		return err;
-	}
-
-	setTermSigsHandler();
-
-	const vector<string> inputStreamNames(getTBB_InputStreamNames(args.input, args.port));
-	if (inputStreamNames.empty()) {
-		LOG_FATAL("TBB: none of the input streams is accessible to read from");
-		return 1;
-	}
-
-	retrieveStationCalTables(args.stCalTablesDir);
-
-	// We don't run alone, so try to increase the QoS we get from the OS to decrease the chance of data loss.
-	setIOpriority(); // reqs CAP_SYS_NICE or CAP_SYS_ADMIN
-	setRTpriority(); // reqs CAP_SYS_NICE
-	lockInMemory();  // reqs CAP_IPC_LOCK
-
-	err = 1;
-	try {
-		LOFAR::RTCP::Parset parset(args.parsetFilename);
-		LOFAR::RTCP::StationMetaDataMap stMdMap(getExternalStationMetaData(parset, args.antFieldDir));
-
-		err = 0;
-		do {
-			err += doTBB_Run(inputStreamNames, parset, stMdMap, args);
-		} while (args.keepRunning && err < 1000);
-		if (err == 1000) { // Nr of dumps per obs was estimated to fit in 3 digits.
-			LOG_FATAL("TBB: Reached max nr of errors seen. Shutting down to avoid filling up storage with logging crap.");
-		}
-
-	// Config exceptions (opening or parsing) are fatal. Too bad we cannot have it in one type.
-	} catch (LOFAR::RTCP::CoInterfaceException& exc) {
-		LOG_FATAL_STR("TBB: Required RTCP parset key/values missing: " << exc);
-	} catch (LOFAR::APSException& exc) {
-		LOG_FATAL_STR("TBB: Parameterset error: " << exc);
-	} catch (LOFAR::RTCP::StorageException& exc) {
-		LOG_FATAL_STR("TBB: Antenna field files: " << exc);
-	}
-
-	return err == 0 ? 0 : 1;
+  err = setvbuf(stdout, stdoutbuf, _IOLBF, sizeof stdoutbuf);
+  err |= setvbuf(stderr, stderrbuf, _IOLBF, sizeof stderrbuf);
+  if (err != 0) {
+    LOG_WARN("TBB: failed to change stdout and/or stderr output buffers");
+  }
+
+  if ((err = parseArgs(argc, argv, &args)) != 0) {
+    if (err == 2) err = 0;
+    printUsage(argv[0]);
+    return err;
+  }
+
+  setTermSigsHandler();
+
+  const vector<string> inputStreamNames(getTBB_InputStreamNames(args.input, args.port));
+  if (inputStreamNames.empty()) {
+    LOG_FATAL("TBB: none of the input streams is accessible to read from");
+    return 1;
+  }
+
+  retrieveStationCalTables(args.stCalTablesDir);
+
+  // We don't run alone, so try to increase the QoS we get from the OS to decrease the chance of data loss.
+  setIOpriority();       // reqs CAP_SYS_NICE or CAP_SYS_ADMIN
+  setRTpriority();       // reqs CAP_SYS_NICE
+  lockInMemory();        // reqs CAP_IPC_LOCK
+
+  err = 1;
+  try {
+    LOFAR::RTCP::Parset parset(args.parsetFilename);
+    LOFAR::RTCP::StationMetaDataMap stMdMap(getExternalStationMetaData(parset, args.antFieldDir));
+
+    err = 0;
+    do {
+      err += doTBB_Run(inputStreamNames, parset, stMdMap, args);
+    } while (args.keepRunning && err < 1000);
+    if (err == 1000) {             // Nr of dumps per obs was estimated to fit in 3 digits.
+      LOG_FATAL("TBB: Reached max nr of errors seen. Shutting down to avoid filling up storage with logging crap.");
+    }
+
+    // Config exceptions (opening or parsing) are fatal. Too bad we cannot have it in one type.
+  } catch (LOFAR::RTCP::CoInterfaceException& exc) {
+    LOG_FATAL_STR("TBB: Required RTCP parset key/values missing: " << exc);
+  } catch (LOFAR::APSException& exc) {
+    LOG_FATAL_STR("TBB: Parameterset error: " << exc);
+  } catch (LOFAR::RTCP::StorageException& exc) {
+    LOG_FATAL_STR("TBB: Antenna field files: " << exc);
+  }
+
+  return err == 0 ? 0 : 1;
 }
 
diff --git a/RTCP/Cobalt/OutputProc/src/createHeaders.cc b/RTCP/Cobalt/OutputProc/src/createHeaders.cc
index 94f689def1eb993d75480bccd4a749bd04632f93..929c7a21430a388ed2d81a4c15c226b6b5c4261c 100644
--- a/RTCP/Cobalt/OutputProc/src/createHeaders.cc
+++ b/RTCP/Cobalt/OutputProc/src/createHeaders.cc
@@ -39,7 +39,7 @@ int main(int argc, char *argv[])
     cout << "parset: the filename of the parset to convert (parset must have been produced by RTCP/Run/src/LOFAR/Parset.py, aka an 'OLAP parset')." << endl;
     cout << "is_bigendian: 1 if data is written big endian (f.e. data comes from the BlueGene/P), 0 otherwise. Default: " << (int)isBigEndian << endl;
     return 1;
-  }  
+  }
 
 #if defined HAVE_LOG4CPLUS
   INIT_LOGGER(string(getenv("LOFARROOT") ? : ".") + "/etc/createHeaders.log_prop");
@@ -57,10 +57,10 @@ int main(int argc, char *argv[])
     Parset parset(argv[1]);
     if (argc > 2) isBigEndian = boost::lexical_cast<bool>(argv[2]);
 
-    for (OutputType outputType = FIRST_OUTPUT_TYPE; outputType < LAST_OUTPUT_TYPE; outputType ++) {
+    for (OutputType outputType = FIRST_OUTPUT_TYPE; outputType < LAST_OUTPUT_TYPE; outputType++) {
       const unsigned nrStreams = parset.nrStreams(outputType);
 
-      for (unsigned streamNr = 0; streamNr < nrStreams; streamNr ++) {
+      for (unsigned streamNr = 0; streamNr < nrStreams; streamNr++) {
         const string logPrefix = str(boost::format("[obs %u type %u stream %3u] ") % parset.observationID() % outputType % streamNr);
 
         try {
@@ -75,7 +75,7 @@ int main(int argc, char *argv[])
           LOG_WARN_STR(logPrefix << "Could not create header: " << ex.what());
         }
       }
-    }   
+    }
   } catch (Exception &ex) {
     LOG_FATAL_STR("[obs unknown] Caught Exception: " << ex);
     return 1;
diff --git a/RTCP/Cobalt/OutputProc/src/outputProc.cc b/RTCP/Cobalt/OutputProc/src/outputProc.cc
index 936b98f46702cdfd37cdda93ab5e2d32d44438a1..368cdc1fba045b693e10de9126c79149b66cdc92 100644
--- a/RTCP/Cobalt/OutputProc/src/outputProc.cc
+++ b/RTCP/Cobalt/OutputProc/src/outputProc.cc
@@ -83,9 +83,9 @@ int main(int argc, char *argv[])
 
     LOG_DEBUG_STR("Started: " << argv[0] << ' ' << argv[1] << ' ' << argv[2] << ' ' << argv[3]);
 
-    int				          observationID = boost::lexical_cast<int>(argv[1]);
-    unsigned				  myRank = boost::lexical_cast<unsigned>(argv[2]);
-    bool				  isBigEndian = boost::lexical_cast<bool>(argv[3]);
+    int observationID = boost::lexical_cast<int>(argv[1]);
+    unsigned myRank = boost::lexical_cast<unsigned>(argv[2]);
+    bool isBigEndian = boost::lexical_cast<bool>(argv[3]);
 
     setIOpriority();
     setRTpriority();
@@ -111,8 +111,8 @@ int main(int argc, char *argv[])
 
       vector<SmartPtr<SubbandWriter> > subbandWriters;
 
-      for (OutputType outputType = FIRST_OUTPUT_TYPE; outputType < LAST_OUTPUT_TYPE; outputType ++) {
-        for (unsigned streamNr = 0; streamNr < parset.nrStreams(outputType); streamNr ++) {
+      for (OutputType outputType = FIRST_OUTPUT_TYPE; outputType < LAST_OUTPUT_TYPE; outputType++) {
+        for (unsigned streamNr = 0; streamNr < parset.nrStreams(outputType); streamNr++) {
           if (parset.getHostName(outputType, streamNr) == myHostName) {
             unsigned writerNr = 0;
 
@@ -137,7 +137,7 @@ int main(int argc, char *argv[])
             }
           }
         }
-      }   
+      }
 
       // Add final meta data (broken tile information, etc)
       // that is obtained after the end of an observation.
diff --git a/RTCP/Cobalt/OutputProc/src/plotMS.cc b/RTCP/Cobalt/OutputProc/src/plotMS.cc
index 9e4ef95cb3119650c42eca96301d275020c87326..a5a2ccd6d36671b15eb20525eeddaed81bc7620d 100644
--- a/RTCP/Cobalt/OutputProc/src/plotMS.cc
+++ b/RTCP/Cobalt/OutputProc/src/plotMS.cc
@@ -38,7 +38,8 @@ Exception::TerminateHandler t(Exception::terminate);
 
 bool shouldSwap = false;
 
-float power( fcomplex s ) {
+float power( fcomplex s )
+{
   float r = real(s);
   float i = imag(s);
 
@@ -47,7 +48,7 @@ float power( fcomplex s ) {
     byteSwap32(&i);
   }
 
-  return r*r + i*i;
+  return r * r + i * i;
 }
 
 static void usage(char *progname, int exitcode)
@@ -74,31 +75,31 @@ int main(int argc, char *argv[])
     int opt;
     const char *parset_filename = 0;
     const char *table_filename = "table.f0data";
-    const char *meta_filename  = "table.f0meta";
+    const char *meta_filename = "table.f0meta";
     const char *baselinestr = 0;
     unsigned baseline = 0;
     int channel = -1;
 
     while ((opt = getopt(argc, argv, "p:b:B:c:")) != -1) {
       switch (opt) {
-        case 'p':
-          parset_filename = strdup(optarg);
-          break;
+      case 'p':
+        parset_filename = strdup(optarg);
+        break;
 
-        case 'b':
-          baseline = atoi(optarg);
-          break;
+      case 'b':
+        baseline = atoi(optarg);
+        break;
 
-        case 'B':
-          baselinestr = strdup(optarg);
-          break;
+      case 'B':
+        baselinestr = strdup(optarg);
+        break;
 
-        case 'c':
-          channel = atoi(optarg);
-          break;
+      case 'c':
+        channel = atoi(optarg);
+        break;
 
-        default: /* '?' */
-          usage(argv[0], 1);
+      default:   /* '?' */
+        usage(argv[0], 1);
       }
     }
 
@@ -110,7 +111,7 @@ int main(int argc, char *argv[])
     CorrelatedData *data = dynamic_cast<CorrelatedData*>(newStreamableData(parset, CORRELATED_DATA));
 
     if (channel == -1)
-      channel = parset.nrChannelsPerSubband() == 1 ? 0 : 1; // default to first useful channel
+      channel = parset.nrChannelsPerSubband() == 1 ? 0 : 1;  // default to first useful channel
 
     ASSERT( data );
     ASSERT( channel >= 0 && (unsigned)channel < parset.nrChannelsPerSubband() );
@@ -137,26 +138,26 @@ int main(int argc, char *argv[])
       ASSERTSTR( station1index < stationNames.size(), "Could not find station " << specified_stations[0] );
       ASSERTSTR( station2index < stationNames.size(), "Could not find station " << specified_stations[1] );
 
-      for (baseline=0; baseline < itsAnt1.size(); baseline++) {
+      for (baseline = 0; baseline < itsAnt1.size(); baseline++) {
         if ((unsigned)itsAnt1[baseline] == station1index
-         && (unsigned)itsAnt2[baseline] == station2index)
-           break;
+            && (unsigned)itsAnt2[baseline] == station2index)
+          break;
 
         if ((unsigned)itsAnt2[baseline] == station1index
-         && (unsigned)itsAnt1[baseline] == station2index)
-           break;
-      }     
+            && (unsigned)itsAnt1[baseline] == station2index)
+          break;
+      }
     }
 
     ASSERTSTR( baseline < parset.nrBaselines(), "The specified baseline is not present in this measurement set." );
 
-    std::string firstStation  = stationNames[itsAnt1[baseline]];
+    std::string firstStation = stationNames[itsAnt1[baseline]];
     std::string secondStation = stationNames[itsAnt2[baseline]];
 
     printf( "# baseline %s - %s channel %d\n", firstStation.c_str(), secondStation.c_str(), channel);
     printf( "# observation %u\n", parset.observationID());
 
-    for(;;) {
+    for(;; ) {
       try {
         data->read(&datafile, true, 512);
       } catch (Stream::EndOfStreamException &) {
@@ -168,11 +169,11 @@ int main(int argc, char *argv[])
       printf( "# valid samples: %u\n", data->nrValidSamples(baseline,channel));
 
       printf( "%6d %10g %10g %10g %10g\n",
-        data->sequenceNumber(),
-        power( data->visibilities[baseline][channel][0][0] ),
-        power( data->visibilities[baseline][channel][0][1] ),
-        power( data->visibilities[baseline][channel][1][0] ),
-        power( data->visibilities[baseline][channel][1][1] ) );
+              data->sequenceNumber(),
+              power( data->visibilities[baseline][channel][0][0] ),
+              power( data->visibilities[baseline][channel][0][1] ),
+              power( data->visibilities[baseline][channel][1][0] ),
+              power( data->visibilities[baseline][channel][1][1] ) );
 
     }
 
diff --git a/RTCP/Cobalt/OutputProc/test/tAH_TestStorage.cc b/RTCP/Cobalt/OutputProc/test/tAH_TestStorage.cc
index 1c0b5b51025d2f36ec8690fbbb4e275a249c2d8e..8bb9514f75032e2700d19cb2fd3f9bd9fde92ed0 100644
--- a/RTCP/Cobalt/OutputProc/test/tAH_TestStorage.cc
+++ b/RTCP/Cobalt/OutputProc/test/tAH_TestStorage.cc
@@ -23,7 +23,7 @@
 //# Always #include <lofar_config.h> first!
 #include <lofar_config.h>
 
-#include <Common/lofar_iostream.h> 
+#include <Common/lofar_iostream.h>
 #include <Common/LofarLogger.h>
 #include <Common/LofarLocators.h>
 #include <CoInterface/Parset.h>
@@ -45,11 +45,11 @@ using namespace LOFAR::RTCP;
 int main(int argc, char *argv[])
 {
   std::string type = "brief";
-  Version::show<StorageVersion> (std::cout, "Storage", type);  
-  
+  Version::show<StorageVersion> (std::cout, "Storage", type);
+
   ConfigLocator aCL;
-  string        progName = basename(argv[0]);
-  string        logPropFile(progName + ".log_prop");
+  string progName = basename(argv[0]);
+  string logPropFile(progName + ".log_prop");
   INIT_LOGGER (aCL.locate(logPropFile).c_str());
   LOG_DEBUG_STR("Initialized logsystem with: " << aCL.locate(logPropFile));
 
diff --git a/RTCP/Cobalt/OutputProc/test/tDAL.cc b/RTCP/Cobalt/OutputProc/test/tDAL.cc
index 70d77bc6698e55dd737fcb02492a94d19f482016..f0639b754b98c5fe3bd397244c6890ae83d71191 100644
--- a/RTCP/Cobalt/OutputProc/test/tDAL.cc
+++ b/RTCP/Cobalt/OutputProc/test/tDAL.cc
@@ -31,18 +31,20 @@
 using namespace std;
 using namespace dal;
 
-int main() {
+int main()
+{
   if (!check_hdf5_versions()) {
     cerr << "HDF5 version mismatch. DAL was compiled with " << version_hdf5_headers_dal() << ", our headers are " << version_hdf5_headers_current() << ", our library is " << version_hdf5() << endl;
     return 1;
   }
-  
+
   return 0;
 }
 
 #else
 
-int main() {
+int main()
+{
   return 0;
 }
 #endif
diff --git a/RTCP/Cobalt/OutputProc/test/tFastFileStream.cc b/RTCP/Cobalt/OutputProc/test/tFastFileStream.cc
index 9866d65743022f68419669abae32996483f4fb52..9b8df40bcb7c1045a6918fb8c897764f0f3d3571 100644
--- a/RTCP/Cobalt/OutputProc/test/tFastFileStream.cc
+++ b/RTCP/Cobalt/OutputProc/test/tFastFileStream.cc
@@ -37,9 +37,11 @@ using namespace std;
 using namespace LOFAR;
 using namespace LOFAR::RTCP;
 
-class TempFile {
+class TempFile
+{
 public:
-  TempFile( const string &dirname = "/tmp/") {
+  TempFile( const string &dirname = "/tmp/")
+  {
     char templ[1024];
     snprintf(templ, sizeof templ, "%stFastFileStreamXXXXXX", dirname.c_str());
 
@@ -47,7 +49,8 @@ public:
 
     filename = templ;
   }
-  ~TempFile() {
+  ~TempFile()
+  {
     if (filename != "") {
       close(fd);
       (void)unlink(filename.c_str());
@@ -134,7 +137,8 @@ void test_skip( size_t bytes1, size_t skip, size_t bytes2 )
   assert(filesize(tmpfile.filename) == bytes1 + skip + bytes2);
 }
 
-int main() {
+int main()
+{
   const size_t blocksize = FastFileStream::alignment;
 
   // test write()
diff --git a/RTCP/Cobalt/OutputProc/test/tMSWriterCorrelated.cc b/RTCP/Cobalt/OutputProc/test/tMSWriterCorrelated.cc
index 9a65e05d555ae59c88c573db836c175d1e85fb62..185e208bfccd56070e1ea4afa3c818a87d92b6a6 100644
--- a/RTCP/Cobalt/OutputProc/test/tMSWriterCorrelated.cc
+++ b/RTCP/Cobalt/OutputProc/test/tMSWriterCorrelated.cc
@@ -37,7 +37,8 @@ const int bigEndian = 1;
 const int bigEndian = 0;
 #endif
 
-int main() {
+int main()
+{
   INIT_LOGGER("tMSWriterCorrelated");
 
   Parset parset("tMSWriterCorrelated.parset");
@@ -72,7 +73,7 @@ int main() {
     fmd.brokenRCUsAtBegin.push_back(rcu);
 
     writer.augment(fmd);
-  }  
+  }
 
   return 0;
 }
diff --git a/RTCP/Cobalt/OutputProc/test/tMSWriterDAL.cc b/RTCP/Cobalt/OutputProc/test/tMSWriterDAL.cc
index d6997bec68717792826ac7dd683c43d3830ace7c..8aa204936f5dc24d1bc91455a805d64e873c0eb9 100644
--- a/RTCP/Cobalt/OutputProc/test/tMSWriterDAL.cc
+++ b/RTCP/Cobalt/OutputProc/test/tMSWriterDAL.cc
@@ -37,7 +37,8 @@ const int bigEndian = 1;
 const int bigEndian = 0;
 #endif
 
-int main() {
+int main()
+{
   Parset parset("tMSWriterDAL.parset");
 
   {
@@ -48,14 +49,15 @@ int main() {
     writer.write(data);
 
     delete data;
-  }  
+  }
 
   return 0;
 }
 
 #else
 
-int main() {
+int main()
+{
   return 0;
 }
 #endif
diff --git a/RTCP/Cobalt/OutputProc/test/tMeasurementSetFormat.cc b/RTCP/Cobalt/OutputProc/test/tMeasurementSetFormat.cc
index 50ebd4c7da203b5afdfa3aa9b41cfcb8cd7c6771..c8558990daf6397e365f6f7dd02da3e3b6433c82 100644
--- a/RTCP/Cobalt/OutputProc/test/tMeasurementSetFormat.cc
+++ b/RTCP/Cobalt/OutputProc/test/tMeasurementSetFormat.cc
@@ -28,7 +28,7 @@ int main()
   for( unsigned i = 0; i < sizeof suffixes / sizeof suffixes[0]; i++ ) {
     try {
       const string parsetName = string("tMeasurementSetFormat.parset") + suffixes[i];
-      const string msName     = string("tMeasurementSetFormat") + suffixes[i] + "_tmp.ms";
+      const string msName = string("tMeasurementSetFormat") + suffixes[i] + "_tmp.ms";
 
       LOG_DEBUG_STR("Testing " << parsetName);
 
@@ -38,7 +38,7 @@ int main()
       // Also create the data file, otherwise it is not a true table.
       ///FILE* file= fopen ("tMeasurementSetFormat_tmp.ms/f0data", "w");
       ///fclose (file);
-      RegularFileIO file(String(msName+"/table.f0data"),
+      RegularFileIO file(String(msName + "/table.f0data"),
                          ByteIO::New);
     } catch (LOFAR::Exception &err) {
       std::cerr << "LOFAR Exception detected: " << err << std::endl;
diff --git a/RTCP/Cobalt/OutputProc/test/tTBB_StaticMapping.cc b/RTCP/Cobalt/OutputProc/test/tTBB_StaticMapping.cc
index bbc2ac214e1b74f174586b0030c12e7fd79a7eb9..aac2e4f70c58364df8d2f9eb8cea46aeb7dbee7f 100644
--- a/RTCP/Cobalt/OutputProc/test/tTBB_StaticMapping.cc
+++ b/RTCP/Cobalt/OutputProc/test/tTBB_StaticMapping.cc
@@ -31,57 +31,58 @@
 using namespace std;
 using namespace LOFAR;
 
-int main(int argc, char *argv[]) {
-	// Locate TBB connection mapping file.
-	// Select from either: argv[1], $LOFARROOT/etc/StaticMetaData/TBBConnections.dat, or ./TBBConnections.dat
-	string tbbMappingFilename;
-	if (argc > 1) {
-		tbbMappingFilename = argv[1];
-	} else {
-		const string defaultTbbMappingFilename("TBBConnections.dat");
-		char* lrpath = getenv("LOFARROOT");
-		if (lrpath != NULL) {
-			tbbMappingFilename = string(lrpath) + "/etc/StaticMetaData/";
-		}
-		tbbMappingFilename.append(defaultTbbMappingFilename);
-	}
+int main(int argc, char *argv[])
+{
+  // Locate TBB connection mapping file.
+  // Select from either: argv[1], $LOFARROOT/etc/StaticMetaData/TBBConnections.dat, or ./TBBConnections.dat
+  string tbbMappingFilename;
+  if (argc > 1) {
+    tbbMappingFilename = argv[1];
+  } else {
+    const string defaultTbbMappingFilename("TBBConnections.dat");
+    char* lrpath = getenv("LOFARROOT");
+    if (lrpath != NULL) {
+      tbbMappingFilename = string(lrpath) + "/etc/StaticMetaData/";
+    }
+    tbbMappingFilename.append(defaultTbbMappingFilename);
+  }
 
-	try {
-		// Open and read in.
-		TBB_StaticMapping tsm(tbbMappingFilename);
+  try {
+    // Open and read in.
+    TBB_StaticMapping tsm(tbbMappingFilename);
 
-		if (tsm.empty()) {
-			throw Exception("Opened tbb static mapping file, but list of station names is empty");
-		}
+    if (tsm.empty()) {
+      throw Exception("Opened tbb static mapping file, but list of station names is empty");
+    }
 
-		// Show all.
-		cout << "Found " << tsm.size() << " nodes with the following station and board names:" << endl;
-		for (multimap<string, pair<string, string> >::const_iterator it(tsm.begin()); it != tsm.end(); ++it) {
-			cout << "node: " << (*it).first << " -> (" << (*it).second.first << ", " << (*it).second.second << ")" << endl;
-		}
-	
-		// Select all station or board names mapped to a given node.
-		const string nodeName("locus029");
+    // Show all.
+    cout << "Found " << tsm.size() << " nodes with the following station and board names:" << endl;
+    for (multimap<string, pair<string, string> >::const_iterator it(tsm.begin()); it != tsm.end(); ++it) {
+      cout << "node: " << (*it).first << " -> (" << (*it).second.first << ", " << (*it).second.second << ")" << endl;
+    }
 
-		vector<string> stations(tsm.getStationNames(nodeName));
-		cout << nodeName << ": ";
-		for (unsigned i = 0; i < stations.size(); i++) {
-			cout << stations[i] << " ";
-		}
-		cout << endl;
+    // Select all station or board names mapped to a given node.
+    const string nodeName("locus029");
 
-		vector<string> boards(tsm.getBoardNames(nodeName));
-		cout << nodeName << ": ";
-		for (unsigned i = 0; i < boards.size(); i++) {
-			cout << boards[i] << " ";
-		}
-		cout << endl;
+    vector<string> stations(tsm.getStationNames(nodeName));
+    cout << nodeName << ": ";
+    for (unsigned i = 0; i < stations.size(); i++) {
+      cout << stations[i] << " ";
+    }
+    cout << endl;
 
-	} catch (Exception& exc) {
-		cerr << exc.what() << endl;
-		return 1;
-	}
+    vector<string> boards(tsm.getBoardNames(nodeName));
+    cout << nodeName << ": ";
+    for (unsigned i = 0; i < boards.size(); i++) {
+      cout << boards[i] << " ";
+    }
+    cout << endl;
 
-	return 0;
+  } catch (Exception& exc) {
+    cerr << exc.what() << endl;
+    return 1;
+  }
+
+  return 0;
 }
 
diff --git a/RTCP/Cobalt/uncrustify.cfg b/RTCP/Cobalt/uncrustify.cfg
new file mode 100644
index 0000000000000000000000000000000000000000..9b17dffb51154418574a83718fd314cb88aac947
--- /dev/null
+++ b/RTCP/Cobalt/uncrustify.cfg
@@ -0,0 +1,118 @@
+tok_split_gte=false
+utf8_byte=false
+utf8_force=false
+indent_cmt_with_tabs=false
+indent_align_string=false
+indent_braces=false
+indent_braces_no_func=false
+indent_braces_no_class=false
+indent_braces_no_struct=false
+indent_brace_parent=false
+indent_namespace=true
+indent_extern=false
+indent_class=true
+indent_class_colon=false
+indent_else_if=false
+indent_var_def_cont=false
+indent_func_call_param=false
+indent_func_def_param=false
+indent_func_proto_param=false
+indent_func_class_param=false
+indent_func_ctor_var_param=false
+indent_template_param=false
+indent_func_param_double=false
+indent_relative_single_line_comments=false
+indent_col1_comment=true
+indent_access_spec_body=false
+indent_paren_nl=false
+indent_comma_paren=false
+indent_bool_paren=false
+indent_first_bool_expr=false
+indent_square_nl=false
+indent_preserve_sql=false
+indent_align_assign=true
+sp_balance_nested_parens=false
+align_keep_tabs=false
+align_with_tabs=false
+align_on_tabstop=false
+align_number_left=false
+align_func_params=false
+align_same_func_call_params=false
+align_var_def_colon=false
+align_var_def_attribute=false
+align_var_def_inline=false
+align_right_cmt_mix=false
+align_on_operator=false
+align_mix_var_proto=false
+align_single_line_func=false
+align_single_line_brace=false
+align_nl_cont=false
+align_left_shift=true
+align_oc_decl_colon=false
+nl_collapse_empty_body=false
+nl_assign_leave_one_liners=false
+nl_class_leave_one_liners=false
+nl_enum_leave_one_liners=false
+nl_getset_leave_one_liners=false
+nl_func_leave_one_liners=false
+nl_if_leave_one_liners=false
+nl_multi_line_cond=false
+nl_multi_line_define=false
+nl_before_case=false
+nl_after_case=false
+nl_after_return=false
+nl_after_semicolon=true
+nl_after_brace_open=false
+nl_after_brace_open_cmt=false
+nl_after_vbrace_open=false
+nl_after_vbrace_open_empty=false
+nl_after_brace_close=false
+nl_after_vbrace_close=false
+nl_define_macro=false
+nl_squeeze_ifdef=false
+nl_ds_struct_enum_cmt=false
+nl_ds_struct_enum_close_brace=false
+nl_create_if_one_liner=false
+nl_create_for_one_liner=false
+nl_create_while_one_liner=false
+ls_for_split_full=false
+ls_func_split_full=false
+nl_after_multiline_comment=false
+eat_blanks_after_open_brace=false
+eat_blanks_before_close_brace=false
+mod_full_brace_if_chain=false
+mod_pawn_semicolon=false
+mod_full_paren_if_bool=false
+mod_remove_extra_semicolon=false
+mod_sort_import=false
+mod_sort_using=false
+mod_sort_include=false
+mod_move_case_break=false
+mod_remove_empty_return=false
+cmt_indent_multi=true
+cmt_c_group=false
+cmt_c_nl_start=false
+cmt_c_nl_end=false
+cmt_cpp_group=false
+cmt_cpp_nl_start=false
+cmt_cpp_nl_end=false
+cmt_cpp_to_c=false
+cmt_star_cont=false
+cmt_multi_check_last=true
+cmt_insert_before_preproc=false
+pp_indent_at_level=false
+pp_region_indent_code=false
+pp_if_indent_code=false
+pp_define_at_level=false
+input_tab_size=8
+indent_columns=2
+indent_namespace_level=2
+indent_access_spec=-2
+newlines=auto
+indent_with_tabs=0
+sp_arith=force
+sp_assign=force
+nl_namespace_brace=add
+nl_template_class=add
+nl_class_brace=add
+nl_fdef_brace=add