Index: Jenkinsfile
===================================================================
--- Jenkinsfile	(revision 2d019af1e5dc0df0ad2bbe9c215b4c34968890c0)
+++ Jenkinsfile	(revision e867b44d29a219d9ae0b5a5cbb9ef66e02f065fa)
@@ -148,4 +148,9 @@
 def test() {
 	try {
+		// Print potential limits before testing
+		// in case jenkins messes with them
+		sh 'free -h'
+		sh 'ulimit -a'
+
 		Tools.BuildStage('Test: short', !Settings.RunAllTests) {
 			dir (BuildDir) {
Index: benchmark/Makefile.am
===================================================================
--- benchmark/Makefile.am	(revision 2d019af1e5dc0df0ad2bbe9c215b4c34968890c0)
+++ benchmark/Makefile.am	(revision e867b44d29a219d9ae0b5a5cbb9ef66e02f065fa)
@@ -502,5 +502,5 @@
 
 compile-io$(EXEEXT):
-	$(CFACOMPILE) -DNO_COMPILED_PRAGMA -fsyntax-only -w $(testdir)/io1.cfa
+	$(CFACOMPILE) -DNO_COMPILED_PRAGMA -fsyntax-only -w $(testdir)/io/io.cfa
 
 compile-monitor$(EXEEXT):
Index: benchmark/readyQ/locality.cc
===================================================================
--- benchmark/readyQ/locality.cc	(revision e867b44d29a219d9ae0b5a5cbb9ef66e02f065fa)
+++ benchmark/readyQ/locality.cc	(revision e867b44d29a219d9ae0b5a5cbb9ef66e02f065fa)
@@ -0,0 +1,328 @@
+#include "rq_bench.hpp"
+
+#include <pthread.h>
+#include <semaphore.h>
+#include <sched.h>
+#include <unistd.h>
+
+#include <iostream>
+
+struct Result {
+	uint64_t count = 0;
+	uint64_t dmigs = 0;
+	uint64_t gmigs = 0;
+};
+
+struct Pthread {
+	static int usleep(useconds_t usec) {
+		return ::usleep(usec);
+	}
+};
+
+// ==================================================
+struct __attribute__((aligned(128))) MyData {
+	uint64_t _p1[16];  // padding
+	uint64_t * data;
+	size_t len;
+	int ttid;
+	size_t id;
+	uint64_t _p2[16];  // padding
+
+	MyData(size_t id, size_t size)
+		: data( (uintptr_t *)aligned_alloc(128, size * sizeof(uint64_t)) )
+		, len( size )
+		, ttid( sched_getcpu() )
+		, id( id )
+	{
+		for(size_t i = 0; i < this->len; i++) {
+			this->data[i] = 0;
+		}
+	}
+
+	uint64_t moved(int ttid) {
+		if(this->ttid == ttid) {
+			return 0;
+		}
+		this->ttid = ttid;
+		return 1;
+	}
+
+	__attribute__((noinline)) void access(size_t idx) {
+		size_t l = this->len;
+		this->data[idx % l] += 1;
+	}
+};
+
+// ==================================================
+struct __attribute__((aligned(128))) MyCtx {
+	struct MyData * volatile data;
+
+	struct {
+		struct MySpot ** ptr;
+		size_t len;
+	} spots;
+
+	sem_t sem;
+
+	Result result;
+
+	bool share;
+	size_t cnt;
+	int ttid;
+	size_t id;
+
+	MyCtx(MyData * d, MySpot ** spots, size_t len, size_t cnt, bool share, size_t id)
+		: data( d )
+		, spots{ .ptr = spots, .len = len }
+		, share( share )
+		, cnt( cnt )
+		, ttid( sched_getcpu() )
+		, id( id )
+	{
+		int ret = sem_init( &sem, false, 0 );
+		if(ret != 0) std::abort();
+	}
+
+	~MyCtx() {
+		int ret = sem_destroy( &sem );
+		if(ret != 0) std::abort();
+	}
+
+	uint64_t moved(int ttid) {
+		if(this->ttid == ttid) {
+			return 0;
+		}
+		this->ttid = ttid;
+		return 1;
+	}
+};
+
+// ==================================================
+// Atomic object where a single thread can wait
+// May exchanges data
+struct __attribute__((aligned(128))) MySpot {
+	MyCtx * volatile ptr;
+	size_t id;
+	uint64_t _p1[16];  // padding
+
+	MySpot(size_t id) : ptr( nullptr ), id( id ) {}
+
+
+	static inline MyCtx * one() {
+		return reinterpret_cast<MyCtx *>(1);
+	}
+
+	// Main handshake of the code
+	// Single seat, first thread arriving waits
+	// Next threads unblocks current one and blocks in its place
+	// if share == true, exchange data in the process
+	bool put( MyCtx & ctx, MyData * data, bool share) {
+		// Attempt to CAS our context into the seat
+		for(;;) {
+			MyCtx * expected = this->ptr;
+			if (expected == one()) { // Seat is closed, return
+				return true;
+			}
+
+			if (__atomic_compare_exchange_n(&this->ptr, &expected, &ctx, false, __ATOMIC_SEQ_CST, __ATOMIC_SEQ_CST)) {
+				if(expected) {
+					if(share) {
+						expected->data = data;
+					}
+					sem_post(&expected->sem);
+				}
+				break; // We got the seat
+			}
+		}
+
+		// Block once on the seat
+		sem_wait(&ctx.sem);
+
+		// Someone woke us up, get the new data
+		return false;
+	}
+
+	// Shutdown the spot
+	// Wake current thread and mark seat as closed
+	void release() {
+		struct MyCtx * val = __atomic_exchange_n(&this->ptr, one(), __ATOMIC_SEQ_CST);
+		if (!val) {
+			return;
+		}
+
+		// Someone was there, release them
+		sem_post(&val->sem);
+	}
+};
+
+// ==================================================
+// Random number generator, Go's native one is to slow and global
+uint64_t __xorshift64( uint64_t & state ) {
+	uint64_t x = state;
+	x ^= x << 13;
+	x ^= x >> 7;
+	x ^= x << 17;
+	return state = x;
+}
+
+// ==================================================
+// Do some work by accessing 'cnt' cells in the array
+__attribute__((noinline)) void work(MyData & data, size_t cnt, uint64_t & state) {
+	for (size_t i = 0; i < cnt; i++) {
+		data.access(__xorshift64(state));
+	}
+}
+
+void thread_main( MyCtx & ctx ) {
+	uint64_t state = ctx.id;
+
+	// Wait for start
+	sem_wait(&ctx.sem);
+
+	// Main loop
+	for(;;) {
+		// Touch our current data, write to invalidate remote cache lines
+		work( *ctx.data, ctx.cnt, state );
+
+		// Wait on a random spot
+		uint64_t idx = __xorshift64(state) % ctx.spots.len;
+		bool closed = ctx.spots.ptr[idx]->put(ctx, ctx.data, ctx.share);
+
+		// Check if the experiment is over
+		if (closed) break;
+		if ( clock_mode && stop) break;
+		if (!clock_mode && ctx.result.count >= stop_count) break;
+
+		// Check everything is consistent
+		assert( ctx.data );
+
+		// write down progress and check migrations
+		int ttid = sched_getcpu();
+		ctx.result.count += 1;
+		ctx.result.gmigs += ctx.moved(ttid);
+		ctx.result.dmigs += ctx.data->moved(ttid);
+	}
+
+	__atomic_fetch_add(&threads_left, -1, __ATOMIC_SEQ_CST);
+}
+
+// ==================================================
+int main(int argc, char * argv[]) {
+	unsigned wsize = 2;
+	unsigned wcnt  = 2;
+	unsigned nspots = 0;
+	bool share = false;
+	option_t opt[] = {
+		BENCH_OPT,
+		{ 'n', "nspots", "Number of spots where threads sleep (nthreads - nspots are active at the same time)", nspots},
+		{ 'w', "worksize", "Size of the array for each threads, in words (64bit)", wsize},
+		{ 'c', "workcnt" , "Number of words to touch when working (random pick, cells can be picked more than once)", wcnt },
+		{ 's', "share"   , "Pass the work data to the next thread when blocking", share, parse_truefalse }
+	};
+	BENCH_OPT_PARSE("libfibre cycle benchmark");
+
+	std::cout.imbue(std::locale(""));
+	setlocale(LC_ALL, "");
+
+	unsigned long long global_count = 0;
+	unsigned long long global_gmigs = 0;
+	unsigned long long global_dmigs = 0;
+
+	if( nspots == 0 ) { nspots = nthreads - nprocs; }
+
+	uint64_t start, end;
+	{
+		cpu_set_t cpuset;
+		int ret = pthread_getaffinity_np( pthread_self(), sizeof(cpuset), &cpuset );
+		if(ret != 0) std::abort();
+
+		unsigned cnt = CPU_COUNT_S(sizeof(cpuset), &cpuset);
+		if(cnt > nprocs) {
+			unsigned extras = cnt - nprocs;
+			for(int i = 0; i < CPU_SETSIZE && extras > 0; i++) {
+				if(CPU_ISSET_S(i, sizeof(cpuset), &cpuset)) {
+					CPU_CLR_S(i, sizeof(cpuset), &cpuset);
+					extras--;
+				}
+			}
+
+			ret = pthread_setaffinity_np( pthread_self(), sizeof(cpuset), &cpuset );
+			if(ret != 0) std::abort();
+		}
+	}
+
+	{
+		MyData * data_arrays[nthreads];
+		for(size_t i = 0; i < nthreads; i++) {
+			data_arrays[i] = new MyData( i, wsize );
+		}
+
+		MySpot * spots[nspots];
+		for(unsigned i = 0; i < nspots; i++) {
+			spots[i] = new MySpot{ i };
+		}
+
+		threads_left = nthreads - nspots;
+		pthread_t threads[nthreads];
+		MyCtx * thddata[nthreads];
+		{
+			for(size_t i = 0; i < nthreads; i++) {
+				thddata[i] = new MyCtx(
+					data_arrays[i],
+					spots,
+					nspots,
+					wcnt,
+					share,
+					i
+				);
+				int ret = pthread_create( &threads[i], nullptr, reinterpret_cast<void * (*)(void *)>(thread_main), thddata[i] );
+				if(ret != 0) std::abort();
+			}
+
+			bool is_tty = isatty(STDOUT_FILENO);
+			start = getTimeNsec();
+
+			for(size_t i = 0; i < nthreads; i++) {
+				sem_post(&thddata[i]->sem);
+			}
+			wait<Pthread>(start, is_tty);
+
+			stop = true;
+			end = getTimeNsec();
+			printf("\nDone\n");
+
+			for(size_t i = 0; i < nthreads; i++) {
+				sem_post(&thddata[i]->sem);
+				int ret = pthread_join( threads[i], nullptr );
+				if(ret != 0) std::abort();
+				global_count += thddata[i]->result.count;
+				global_gmigs += thddata[i]->result.gmigs;
+				global_dmigs += thddata[i]->result.dmigs;
+			}
+		}
+
+		for(size_t i = 0; i < nthreads; i++) {
+			delete( data_arrays[i] );
+		}
+
+		for(size_t i = 0; i < nspots; i++) {
+			delete( spots[i] );
+		}
+	}
+
+	printf("Duration (ms)          : %'ld\n", to_miliseconds(end - start));
+	printf("Number of processors   : %'d\n", nprocs);
+	printf("Number of threads      : %'d\n", nthreads);
+	printf("Number of spots        : %'d\n", nspots);
+	printf("Work size (64bit words): %'15u\n", wsize);
+	printf("Total Operations(ops)  : %'15llu\n", global_count);
+	printf("Total G Migrations     : %'15llu\n", global_gmigs);
+	printf("Total D Migrations     : %'15llu\n", global_dmigs);
+	printf("Ops per second         : %'18.2lf\n", ((double)global_count) / to_fseconds(end - start));
+	printf("ns per ops             : %'18.2lf\n", ((double)(end - start)) / global_count);
+	printf("Ops per threads        : %'15llu\n", global_count / nthreads);
+	printf("Ops per procs          : %'15llu\n", global_count / nprocs);
+	printf("Ops/sec/procs          : %'18.2lf\n", (((double)global_count) / nprocs) / to_fseconds(end - start));
+	printf("ns per ops/procs       : %'18.2lf\n", ((double)(end - start)) / (global_count / nprocs));
+	fflush(stdout);
+}
Index: doc/LaTeXmacros/lstlang.sty
===================================================================
--- doc/LaTeXmacros/lstlang.sty	(revision 2d019af1e5dc0df0ad2bbe9c215b4c34968890c0)
+++ doc/LaTeXmacros/lstlang.sty	(revision e867b44d29a219d9ae0b5a5cbb9ef66e02f065fa)
@@ -8,6 +8,6 @@
 %% Created On       : Sat May 13 16:34:42 2017
 %% Last Modified By : Peter A. Buhr
-%% Last Modified On : Wed Sep 23 22:40:04 2020
-%% Update Count     : 24
+%% Last Modified On : Wed Feb 17 09:21:15 2021
+%% Update Count     : 27
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 
@@ -113,10 +113,10 @@
 	morekeywords={
 		_Alignas, _Alignof, __alignof, __alignof__, asm, __asm, __asm__, __attribute, __attribute__,
-		auto, _Bool, catch, catchResume, choose, _Complex, __complex, __complex__, __const, __const__,
-		coroutine, disable, dtype, enable, exception, __extension__, fallthrough, fallthru, finally,
+		auto, basetypeof, _Bool, catch, catchResume, choose, _Complex, __complex, __complex__, __const, __const__,
+		coroutine, disable, dtype, enable, exception, __extension__, fallthrough, fallthru, finally, fixup,
 		__float80, float80, __float128, float128, forall, ftype, generator, _Generic, _Imaginary, __imag, __imag__,
 		inline, __inline, __inline__, __int128, int128, __label__, monitor, mutex, _Noreturn, one_t, or,
-		otype, restrict, __restrict, __restrict__, __signed, __signed__, _Static_assert, suspend, thread,
-		_Thread_local, throw, throwResume, timeout, trait, try, ttype, typeof, __typeof, __typeof__,
+		otype, restrict, __restrict, __restrict__, recover, report, __signed, __signed__, _Static_assert, suspend,
+		thread, _Thread_local, throw, throwResume, timeout, trait, try, ttype, typeof, __typeof, __typeof__,
 		virtual, __volatile, __volatile__, waitfor, when, with, zero_t,
     },
Index: doc/theses/andrew_beach_MMath/existing.tex
===================================================================
--- doc/theses/andrew_beach_MMath/existing.tex	(revision 2d019af1e5dc0df0ad2bbe9c215b4c34968890c0)
+++ doc/theses/andrew_beach_MMath/existing.tex	(revision e867b44d29a219d9ae0b5a5cbb9ef66e02f065fa)
@@ -14,5 +14,5 @@
 \section{Overloading and \lstinline{extern}}
 \CFA has extensive overloading, allowing multiple definitions of the same name
-to be defined.~\cite{Moss18}
+to be defined~\cite{Moss18}.
 \begin{cfa}
 char i; int i; double i;			$\C[3.75in]{// variable overload}$
@@ -46,5 +46,5 @@
 pointers using the ampersand (@&@) instead of the pointer asterisk (@*@). \CFA
 references may also be mutable or non-mutable. If mutable, a reference variable
-may be assigned to using the address-of operator (@&@), which converts the
+may be assigned using the address-of operator (@&@), which converts the
 reference to a pointer.
 \begin{cfa}
@@ -58,5 +58,5 @@
 \section{Constructors and Destructors}
 
-Both constructors and destructors are operators, which means they are just
+Both constructors and destructors are operators, which means they are
 functions with special operator names rather than type names in \Cpp. The
 special operator names may be used to call the functions explicitly (not
@@ -64,5 +64,5 @@
 
 In general, operator names in \CFA are constructed by bracketing an operator
-token with @?@, which indicates where the arguments. For example, infixed
+token with @?@, which indicates the position of the arguments. For example, infixed
 multiplication is @?*?@ while prefix dereference is @*?@. This syntax make it
 easy to tell the difference between prefix operations (such as @++?@) and
@@ -89,5 +89,5 @@
 definition, \CFA creates a default and copy constructor, destructor and
 assignment (like \Cpp). It is possible to define constructors/destructors for
-basic and existing types.
+basic and existing types (unlike \Cpp).
 
 \section{Polymorphism}
@@ -120,6 +120,6 @@
 	do_once(value);
 }
-void do_once(int i) { ... }  // provide assertion
-int i;
+void do_once(@int@ i) { ... }  // provide assertion
+@int@ i;
 do_twice(i); // implicitly pass assertion do_once to do_twice
 \end{cfa}
@@ -172,20 +172,21 @@
 declarations instead of parameters, returns, and local variable declarations.
 \begin{cfa}
-forall(dtype T)
+forall(dtype @T@)
 struct node {
-	node(T) * next;  // generic linked node
-	T * data;
-}
+	node(@T@) * next;  // generic linked node
+	@T@ * data;
+}
+node(@int@) inode;
 \end{cfa}
 The generic type @node(T)@ is an example of a polymorphic-type usage.  Like \Cpp
-templates usage, a polymorphic-type usage must specify a type parameter.
+template usage, a polymorphic-type usage must specify a type parameter.
 
 There are many other polymorphism features in \CFA but these are the ones used
 by the exception system.
 
-\section{Concurrency}
-\CFA has a number of concurrency features: @thread@, @monitor@, @mutex@
-parameters, @coroutine@ and @generator@. The two features that interact with
-the exception system are @thread@ and @coroutine@; they and their supporting
+\section{Control Flow}
+\CFA has a number of advanced control-flow features: @generator@, @coroutine@, @monitor@, @mutex@ parameters, and @thread@.
+The two features that interact with
+the exception system are @coroutine@ and @thread@; they and their supporting
 constructs are described here.
 
@@ -216,5 +217,5 @@
 CountUp countup;
 \end{cfa}
-Each coroutine has @main@ function, which takes a reference to a coroutine
+Each coroutine has a @main@ function, which takes a reference to a coroutine
 object and returns @void@.
 \begin{cfa}[numbers=left]
@@ -230,5 +231,5 @@
 In this function, or functions called by this function (helper functions), the
 @suspend@ statement is used to return execution to the coroutine's caller
-without terminating the coroutine.
+without terminating the coroutine's function.
 
 A coroutine is resumed by calling the @resume@ function, \eg @resume(countup)@.
@@ -242,5 +243,5 @@
 @resume(countup).next@.
 
-\subsection{Monitors and Mutex}
+\subsection{Monitor and Mutex Parameter}
 Concurrency does not guarantee ordering; without ordering results are
 non-deterministic. To claw back ordering, \CFA uses monitors and @mutex@
@@ -260,5 +261,5 @@
 and only one runs at a time.
 
-\subsection{Threads}
+\subsection{Thread}
 Functions, generators, and coroutines are sequential so there is only a single
 (but potentially sophisticated) execution path in a program. Threads introduce
@@ -268,6 +269,6 @@
 monitors and mutex parameters. For threads to work safely with other threads,
 also requires mutual exclusion in the form of a communication rendezvous, which
-also supports internal synchronization as for mutex objects. For exceptions
-only the basic two basic operations are important: thread fork and join.
+also supports internal synchronization as for mutex objects. For exceptions,
+only two basic thread operations are important: fork and join.
 
 Threads are created like coroutines with an associated @main@ function:
Index: doc/theses/mubeen_zulfiqar_MMath/.gitignore
===================================================================
--- doc/theses/mubeen_zulfiqar_MMath/.gitignore	(revision e867b44d29a219d9ae0b5a5cbb9ef66e02f065fa)
+++ doc/theses/mubeen_zulfiqar_MMath/.gitignore	(revision e867b44d29a219d9ae0b5a5cbb9ef66e02f065fa)
@@ -0,0 +1,8 @@
+# Intermediate Results:
+out/
+
+# Final Files:
+*.pdf
+
+# The Makefile here is not generated.
+!Makefile
Index: doc/theses/mubeen_zulfiqar_MMath/Makefile
===================================================================
--- doc/theses/mubeen_zulfiqar_MMath/Makefile	(revision e867b44d29a219d9ae0b5a5cbb9ef66e02f065fa)
+++ doc/theses/mubeen_zulfiqar_MMath/Makefile	(revision e867b44d29a219d9ae0b5a5cbb9ef66e02f065fa)
@@ -0,0 +1,45 @@
+### Makefile from Andrew Beach's Masters Thesis
+
+DOC=thesis.pdf
+BUILD=out
+TEXSRC=$(wildcard *.tex)
+BIBSRC=$(wildcard *.bib)
+STYSRC=$(wildcard *.sty)
+CLSSRC=$(wildcard *.cls)
+TEXLIB= .:../../LaTeXmacros:${BUILD}:
+BIBLIB= .:../../bibliography
+
+# Since tex programs like to add their own file extensions:
+BASE= ${DOC:%.pdf=%}
+
+### Special Rules:
+
+.PHONY: all clean deepclean
+
+### Commands:
+LATEX=TEXINPUTS=${TEXLIB} pdflatex -halt-on-error -output-directory=${BUILD}
+#BIBTEX=BIBINPUTS=${BIBLIB} bibtex
+#GLOSSARY=INDEXSTYLE=${BUILD} makeglossaries-lite
+
+### Rules and Recipies:
+
+all: ${DOC}
+
+${BUILD}/${DOC}: ${TEXSRC} ${BIBSRC} ${STYSRC} ${CLSSRC} Makefile | ${BUILD}
+	${LATEX} ${BASE}
+#	${BIBTEX} ${BUILD}/${BASE}
+#	${LATEX} ${BASE}
+#	${GLOSSARY} ${BUILD}/${BASE}
+#	${LATEX} ${BASE}
+
+${DOC}: ${BUILD}/${DOC}
+	cp $< $@
+
+${BUILD}:
+	mkdir $@
+
+clean:
+	-@rm -rv ${BUILD}
+
+deepclean: clean
+	-@rm -v ${DOC}
Index: doc/theses/mubeen_zulfiqar_MMath/thesis.tex
===================================================================
--- doc/theses/mubeen_zulfiqar_MMath/thesis.tex	(revision e867b44d29a219d9ae0b5a5cbb9ef66e02f065fa)
+++ doc/theses/mubeen_zulfiqar_MMath/thesis.tex	(revision e867b44d29a219d9ae0b5a5cbb9ef66e02f065fa)
@@ -0,0 +1,12 @@
+\documentclass[letterpaper,12pt,titlepage,oneside,final]{book}
+
+\usepackage{amsmath,amssymb,amsfonts}
+
+\begin{document}
+
+\section{Benchmark Suite}
+
+\section{Memory Allocator}
+
+\end{document}
+
Index: doc/user/user.tex
===================================================================
--- doc/user/user.tex	(revision 2d019af1e5dc0df0ad2bbe9c215b4c34968890c0)
+++ doc/user/user.tex	(revision e867b44d29a219d9ae0b5a5cbb9ef66e02f065fa)
@@ -11,6 +11,6 @@
 %% Created On       : Wed Apr  6 14:53:29 2016
 %% Last Modified By : Peter A. Buhr
-%% Last Modified On : Mon Feb 15 13:48:53 2021
-%% Update Count     : 4452
+%% Last Modified On : Sun Mar  7 21:50:24 2021
+%% Update Count     : 4574
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 
@@ -4076,4 +4076,117 @@
 
 
+\subsection{Concurrent Stream Access}
+
+When a stream is shared by multiple threads, input or output characters can be intermixed or cause failure.
+For example, if two threads execute the following:
+\begin{cfa}
+$\emph{thread\(_1\)}$ : sout | "abc " | "def ";
+$\emph{thread\(_2\)}$ : sout | "uvw " | "xyz ";
+\end{cfa}
+possible outputs are:
+\begin{cquote}
+\begin{tabular}{@{}l|l|l|l|l@{}}
+\begin{cfa}
+abc def
+uvw xyz 
+\end{cfa}
+&
+\begin{cfa}
+abc uvw xyz 
+def 
+\end{cfa}
+&
+\begin{cfa}
+uvw abc xyz def
+
+\end{cfa}
+&
+\begin{cfa}
+abuvwc dexf
+yz
+\end{cfa}
+&
+\begin{cfa}
+uvw abc def 
+xyz 
+\end{cfa}
+\end{tabular}
+\end{cquote}
+Concurrent operations can even corrupt the internal state of the stream resulting in failure.
+As a result, some form of mutual exclusion is required for concurrent stream access.
+
+A coarse-grained solution is to perform all stream operations via a single thread or within a monitor providing the necessary mutual exclusion for the stream.
+A fine-grained solution is to have a lock for each stream, which is acquired and released around stream operations by each thread.
+\CFA provides a fine-grained solution where a \Index{recursive lock} is acquired and released indirectly via a manipulator ©acquire© or instantiating an \Index{RAII} type specific for the kind of stream: ©osacquire©\index{ostream@©ostream©!osacquire@©osacquire©} for output streams and ©isacquire©\index{isacquire@©isacquire©}\index{istream@©istream©!isacquire@©isacquire©} for input streams.
+
+The common usage is manipulator ©acquire©\index{ostream@©ostream©!acquire@©acquire©} to lock a stream during a single cascaded I/O expression, where it should appear as the first item in a cascade list, \eg:
+\begin{cfa}
+$\emph{thread\(_1\)}$ : sout | @acquire@ | "abc " | "def ";   // manipulator
+$\emph{thread\(_2\)}$ : sout | @acquire@ | "uvw " | "xyz ";
+\end{cfa}
+Now, the order of the thread execution is still non-deterministic, but the output is constrained to two possible lines in either order.
+\begin{cquote}
+\def\VRfont{\fontfamily{pcr}\upshape\selectfont}
+\begin{tabular}{@{}l|l@{}}
+\begin{cfa}
+abc def
+uvw xyz
+\end{cfa}
+&
+\begin{cfa}
+uvw xyz
+abc def
+\end{cfa}
+\end{tabular}
+\end{cquote}
+In summary, the stream lock is acquired by the ©acquire© manipulator and implicitly released at the end of the cascaded I/O expression ensuring all operations in the expression occur atomically.
+
+To lock a stream across multiple I/O operations, declare an instance of the appropriate ©osacquire© or ©isacquire© type to implicitly acquire and release the stream lock for the object's duration, \eg:
+\begin{cfa}
+{	// acquire sout for block duration
+	@osacquire@ acq = { sout };				$\C{// named stream locker}$
+	sout | 1;
+	sout | @acquire@ | 2 | 3;				$\C{// unnecessary, but ok to acquire and release again}$
+	sout | 4;
+}	// implicitly release the lock when "acq" is deallocated
+\end{cfa}
+Note, the unnecessary ©acquire© manipulator works because the recursive stream-lock can be acquired/released multiple times by the owner thread.
+Hence, calls to functions that also acquire a stream lock for their output do not result in \Index{deadlock}.
+
+The previous values written by threads 1 and 2 can be read in concurrently:
+\begin{cfa}
+{	// acquire sin lock for block duration
+	@isacquire acq = { sin };@				$\C{// named stream locker}$
+	int x, y, z, w;
+	sin | x;
+	sin | @acquire@ | y | z;				$\C{// unnecessary, but ok to acquire and release again}$
+	sin | w;
+}	// implicitly release the lock when "acq" is deallocated
+\end{cfa}
+Again, the order of the reading threads is non-deterministic.
+Note, non-deterministic reading is rare.
+
+\Textbf{WARNING:} The general problem of \Index{nested locking} can occur if routines are called in an I/O sequence that block, \eg:
+\begin{cfa}
+sout | @acquire@ | "data:" | rtn( mon );	$\C{// mutex call on monitor}$
+\end{cfa}
+If the thread executing the I/O expression blocks in the monitor with the ©sout© lock, other threads writing to ©sout© also block until the thread holding the lock is unblocked and releases it.
+This scenario can lead to \Index{deadlock}, if the thread that is going to unblock the thread waiting in the monitor first writes to ©sout© (deadly embrace).
+To prevent nested locking, a simple precaution is to factor out the blocking call from the expression, \eg:
+\begin{cfa}
+int @data@ = rtn( mon );
+sout | acquire | "data:" | @data@;
+\end{cfa}
+
+\Textbf{WARNING:} ©printf©\index{printf@©printf©}, ©scanf©\index{scanf@©scanf©} and their derivatives are unsafe when used with user-level threading, as in \CFA.
+These stream routines use kernel-thread locking (©futex©\index{futex@©futex©}), which block kernel threads, to prevent interleaving of I/O.
+However, the following simple example illustrates how a deadlock can occur (other complex scenarios are possible).
+Assume a single kernel thread and two user-level threads calling ©printf©.
+One user-level thread acquires the I/O lock and is time-sliced while performing ©printf©.
+The other user-level thread then starts execution, calls ©printf©, and blocks the only kernel thread because it cannot acquire the I/O lock.
+It does not help if the kernel lock is multiple acquisition, \ie, the lock owner can acquire it multiple times, because it then results in two user threads in the ©printf© critical section, corrupting the stream.
+
+
+\begin{comment}
 \section{Types}
 
@@ -4154,4 +4267,5 @@
 process((int) s); // type is converted, no function is called
 \end{cfa}
+\end{comment}
 
 
@@ -4369,5 +4483,59 @@
 \begin{table}[hbt]
 \centering
-\input{../refrat/operidents}
+\begin{tabular}{@{}l@{\hspace{\parindentlnth}}l@{\hspace{\parindentlnth}}l@{}}
+\begin{tabular}{@{}ll@{}}
+©?[?]©	& subscripting \impl{?[?]}					\\
+©?()©	& function call \impl{?()}					\\
+©?++©	& postfix increment \impl{?++}				\\
+©?--©	& postfix decrement \impl{?--}				\\
+©++?©	& prefix increment \impl{++?}				\\
+©--?©	& prefix decrement \impl{--?}				\\
+©*?©	& dereference \impl{*?}						\\
+©+?©	& unary plus \impl{+?}						\\
+©-?©	& arithmetic negation \impl{-?}				\\
+©~?©	& bitwise negation \impl{~?}				\\
+©!?©	& logical complement \impl{"!?}				\\
+©?\?©	& exponentiation \impl{?\?}					\\
+©?*?©	& multiplication \impl{?*?}					\\
+©?/?©	& division \impl{?/?}						\\
+©?%?©	& remainder \impl{?%?}						\\
+\end{tabular}
+&
+\begin{tabular}{@{}ll@{}}
+©?+?©	& addition \impl{?+?}						\\
+©?-?©	& subtraction \impl{?-?}					\\
+©?<<?©	& left shift \impl{?<<?}					\\
+©?>>?©	& right shift \impl{?>>?}					\\
+©?<?©	& less than \impl{?<?}						\\
+©?<=?©	& less than or equal \impl{?<=?}			\\
+©?>=?©	& greater than or equal \impl{?>=?}			\\
+©?>?©	& greater than \impl{?>?}					\\
+©?==?©	& equality \impl{?==?}						\\
+©?!=?©	& inequality \impl{?"!=?}					\\
+©?&?©	& bitwise AND \impl{?&?}					\\
+©?^?©	& exclusive OR \impl{?^?}					\\
+©?|?©	& inclusive OR \impl{?"|?}					\\
+													\\
+													\\
+\end{tabular}
+&
+\begin{tabular}{@{}ll@{}}
+©?=?©	& simple assignment \impl{?=?}				\\
+©?\=?©	& exponentiation assignment \impl{?\=?}		\\
+©?*=?©	& multiplication assignment \impl{?*=?}		\\
+©?/=?©	& division assignment \impl{?/=?}			\\
+©?%=?©	& remainder assignment \impl{?%=?}			\\
+©?+=?©	& addition assignment \impl{?+=?}			\\
+©?-=?©	& subtraction assignment \impl{?-=?}		\\
+©?<<=?©	& left-shift assignment \impl{?<<=?}		\\
+©?>>=?©	& right-shift assignment \impl{?>>=?}		\\
+©?&=?©	& bitwise AND assignment \impl{?&=?}		\\
+©?^=?©	& exclusive OR assignment \impl{?^=?}		\\
+©?|=?©	& inclusive OR assignment \impl{?"|=?}		\\
+													\\
+													\\
+													\\
+\end{tabular}
+\end{tabular}
 \caption{Operator Identifiers}
 \label{opids}
@@ -6502,10 +6670,74 @@
 \label{s:CFAKeywords}
 
-\CFA introduces the following new keywords.
+\CFA introduces the following new \Index{keyword}s, which cannot be used as identifiers.
 
 \begin{cquote}
-\input{../refrat/keywords}
+\begin{tabular}{@{}lllllll@{}}
+\begin{tabular}{@{}l@{}}
+\Indexc{basetypeof}		\\
+\Indexc{choose}			\\
+\Indexc{coroutine}		\\
+\Indexc{disable}		\\
+\end{tabular}
+&
+\begin{tabular}{@{}l@{}}
+\Indexc{enable}			\\
+\Indexc{exception}		\\
+\Indexc{fallthrough}	\\
+\Indexc{fallthru}		\\
+\end{tabular}
+&
+\begin{tabular}{@{}l@{}}
+\Indexc{finally}		\\
+\Indexc{fixup}			\\
+\Indexc{forall}			\\
+\Indexc{generator}		\\
+\end{tabular}
+&
+\begin{tabular}{@{}l@{}}
+\Indexc{int128}			\\
+\Indexc{monitor}		\\
+\Indexc{mutex}			\\
+\Indexc{one_t}			\\
+\end{tabular}
+&
+\begin{tabular}{@{}l@{}}
+\Indexc{report}			\\
+\Indexc{suspend}		\\
+\Indexc{throw}			\\
+\Indexc{throwResume}	\\
+\end{tabular}
+&
+\begin{tabular}{@{}l@{}}
+\Indexc{trait}			\\
+\Indexc{try}			\\
+\Indexc{virtual}		\\
+\Indexc{waitfor}		\\
+\end{tabular}
+&
+\begin{tabular}{@{}l@{}}
+\Indexc{when}			\\
+\Indexc{with}			\\
+\Indexc{zero_t}			\\
+						\\
+\end{tabular}
+\end{tabular}
 \end{cquote}
-
+\CFA introduces the following new \Index{quasi-keyword}s, which can be used as identifiers.
+\begin{cquote}
+\begin{tabular}{@{}ll@{}}
+\begin{tabular}{@{}l@{}}
+\Indexc{catch}			\\
+\Indexc{catchResume}	\\
+\Indexc{finally}		\\
+\end{tabular}
+&
+\begin{tabular}{@{}l@{}}
+\Indexc{fixup}			\\
+\Indexc{or}				\\
+\Indexc{timeout}		\\
+\end{tabular}
+\end{tabular}
+\end{cquote}
 
 \section{Standard Headers}
Index: libcfa/src/bits/weakso_locks.hfa
===================================================================
--- libcfa/src/bits/weakso_locks.hfa	(revision 2d019af1e5dc0df0ad2bbe9c215b4c34968890c0)
+++ libcfa/src/bits/weakso_locks.hfa	(revision e867b44d29a219d9ae0b5a5cbb9ef66e02f065fa)
@@ -69,7 +69,8 @@
 static inline void  ?{}( multiple_acquisition_lock & this ) {((blocking_lock &)this){ true, false };}
 static inline void ^?{}( multiple_acquisition_lock & this ) {}
-static inline void   lock     ( multiple_acquisition_lock & this ) { lock   ( (blocking_lock &)this ); }
-static inline void   unlock   ( multiple_acquisition_lock & this ) { unlock ( (blocking_lock &)this ); }
-static inline void   on_wait  ( multiple_acquisition_lock & this ) { on_wait( (blocking_lock &)this ); }
+static inline void   lock     ( multiple_acquisition_lock & this ) { lock    ( (blocking_lock &)this ); }
+static inline void   try_lock ( multiple_acquisition_lock & this ) { try_lock( (blocking_lock &)this ); }
+static inline void   unlock   ( multiple_acquisition_lock & this ) { unlock  ( (blocking_lock &)this ); }
+static inline void   on_wait  ( multiple_acquisition_lock & this ) { on_wait ( (blocking_lock &)this ); }
 static inline void   on_notify( multiple_acquisition_lock & this, struct $thread * t ){ on_notify( (blocking_lock &)this, t ); }
 static inline void   set_recursion_count( multiple_acquisition_lock & this, size_t recursion ){ set_recursion_count( (blocking_lock &)this, recursion ); }
Index: libcfa/src/concurrency/clib/cfathread.cfa
===================================================================
--- libcfa/src/concurrency/clib/cfathread.cfa	(revision 2d019af1e5dc0df0ad2bbe9c215b4c34968890c0)
+++ libcfa/src/concurrency/clib/cfathread.cfa	(revision e867b44d29a219d9ae0b5a5cbb9ef66e02f065fa)
@@ -14,17 +14,53 @@
 //
 
+#include "fstream.hfa"
+#include "locks.hfa"
 #include "kernel.hfa"
 #include "thread.hfa"
-
-thread CRunner {
-	void (*themain)( CRunner * );
+#include "time.hfa"
+
+#include "cfathread.h"
+
+struct cfathread_object {
+	$thread self;
+	void * (*themain)( void * );
+	void * arg;
+	void * ret;
 };
-
-static void ?{}( CRunner & this, void (*themain)( CRunner * ) ) {
+void main(cfathread_object & this);
+void ^?{}(cfathread_object & mutex this);
+
+static inline $thread * get_thread( cfathread_object & this ) { return &this.self; }
+
+typedef ThreadCancelled(cfathread_object) cfathread_exception;
+typedef ThreadCancelled_vtable(cfathread_object) cfathread_vtable;
+
+void defaultResumptionHandler(ThreadCancelled(cfathread_object) & except) {
+	abort | "A thread was cancelled";
+}
+
+cfathread_vtable _cfathread_vtable_instance;
+
+cfathread_vtable const & get_exception_vtable(cfathread_exception *) {
+	return _cfathread_vtable_instance;
+}
+
+static void ?{}( cfathread_object & this, cluster & cl, void *(*themain)( void * ), void * arg ) {
 	this.themain = themain;
-}
-
-void main( CRunner & this ) {
-	this.themain( &this );
+	this.arg = arg;
+	((thread&)this){"C-thread", cl};
+	__thrd_start(this, main);
+}
+
+void ^?{}(cfathread_object & mutex this) {
+	^(this.self){};
+}
+
+void main( cfathread_object & this ) {
+	__attribute__((unused)) void * const thrd_obj = (void*)&this;
+	__attribute__((unused)) void * const thrd_hdl = (void*)active_thread();
+	/* paranoid */ verify( thrd_obj == thrd_hdl );
+
+	this.ret = this.themain( this.arg );
 }
 
@@ -33,12 +69,69 @@
 
 extern "C" {
-	//--------------------
-	// Basic thread management
-	CRunner * cfathread_create( void (*main)( CRunner * ) ) {
-		return new( main );
-	}
-
-	void cfathread_join( CRunner * thrd ) {
+	int cfathread_cluster_create(cfathread_cluster_t * cl) __attribute__((nonnull(1))) {
+		*cl = new();
+		return 0;
+	}
+
+	cfathread_cluster_t cfathread_cluster_self(void) {
+		return active_cluster();
+	}
+
+	int cfathread_cluster_add_worker(cfathread_cluster_t cl, pthread_t* tid, void (*init_routine) (void *), void * arg) {
+		// processor * proc = new("C-processor", *cl, init_routine, arg);
+		processor * proc = alloc();
+		(*proc){ "C-processor", *cl, init_routine, arg };
+		if(tid) *tid = proc->kernel_thread;
+		return 0;
+	}
+
+	int cfathread_cluster_pause (cfathread_cluster_t) {
+		abort | "Pausing clusters is not supported";
+		exit(1);
+	}
+
+	int cfathread_cluster_resume(cfathread_cluster_t) {
+		abort | "Resuming clusters is not supported";
+		exit(1);
+	}
+
+	//--------------------
+	// Thread attributes
+	int cfathread_attr_init(cfathread_attr_t *attr) __attribute__((nonnull (1))) {
+		attr->cl = active_cluster();
+		return 0;
+	}
+
+	//--------------------
+	// Thread
+	int cfathread_create( cfathread_t * handle, cfathread_attr_t * attr, void *(*main)( void * ), void * arg ) __attribute__((nonnull (1))) {
+		cluster * cl = attr ? attr->cl : active_cluster();
+		cfathread_t thrd = alloc();
+		(*thrd){ *cl, main, arg };
+		*handle = thrd;
+		return 0;
+	}
+
+	int cfathread_join( cfathread_t thrd, void ** retval ) {
+		void * ret = join( *thrd ).ret;
 		delete( thrd );
+		if(retval) {
+			*retval = ret;
+		}
+		return 0;
+	}
+
+	cfathread_t cfathread_self(void) {
+		return (cfathread_t)active_thread();
+	}
+
+	int cfathread_usleep(useconds_t usecs) {
+		sleep(usecs`us);
+		return 0;
+	}
+
+	int cfathread_sleep(unsigned int secs) {
+		sleep(secs`s);
+		return 0;
 	}
 
@@ -47,5 +140,5 @@
 	}
 
-	void cfathread_unpark( CRunner * thrd ) {
+	void cfathread_unpark( cfathread_t thrd ) {
 		unpark( *thrd );
 	}
@@ -55,12 +148,109 @@
 	}
 
-	//--------------------
-	// Basic kernel features
-	void cfathread_setproccnt( int ncnt ) {
-		assert( ncnt >= 1 );
-		adelete( procs );
-
-		proc_cnt = ncnt - 1;
-		procs = anew(proc_cnt);
-	}
-}
+	typedef struct cfathread_mutex * cfathread_mutex_t;
+
+	//--------------------
+	// Mutex
+	struct cfathread_mutex {
+		single_acquisition_lock impl;
+	};
+	int cfathread_mutex_init(cfathread_mutex_t *restrict mut, const cfathread_mutexattr_t *restrict) __attribute__((nonnull (1))) { *mut = new(); return 0; }
+	int cfathread_mutex_destroy(cfathread_mutex_t *mut) __attribute__((nonnull (1))) { delete( *mut ); return 0; }
+	int cfathread_mutex_lock   (cfathread_mutex_t *mut) __attribute__((nonnull (1))) { lock    ( (*mut)->impl ); return 0; }
+	int cfathread_mutex_trylock(cfathread_mutex_t *mut) __attribute__((nonnull (1))) { try_lock( (*mut)->impl ); return 0; }
+	int cfathread_mutex_unlock (cfathread_mutex_t *mut) __attribute__((nonnull (1))) { unlock  ( (*mut)->impl ); return 0; }
+
+	//--------------------
+	// Condition
+	struct cfathread_condition {
+		condition_variable(single_acquisition_lock) impl;
+	};
+	int cfathread_cond_init(cfathread_cond_t *restrict cond, const cfathread_condattr_t *restrict) __attribute__((nonnull (1))) { *cond = new(); return 0; }
+	int cfathread_cond_signal(cfathread_cond_t *cond) __attribute__((nonnull (1)))  { notify_one( (*cond)->impl ); return 0; }
+	int cfathread_cond_wait(cfathread_cond_t *restrict cond, cfathread_mutex_t *restrict mut) __attribute__((nonnull (1,2))) { wait( (*cond)->impl, (*mut)->impl ); return 0; }
+	int cfathread_cond_timedwait(cfathread_cond_t *restrict cond, cfathread_mutex_t *restrict mut, const struct timespec *restrict abstime) __attribute__((nonnull (1,2,3))) {
+		Time t = { *abstime };
+		if( wait( (*cond)->impl, (*mut)->impl, t ) ) {
+			return 0;
+		}
+		errno = ETIMEDOUT;
+		return ETIMEDOUT;
+	}
+}
+
+#include <iofwd.hfa>
+
+extern "C" {
+	#include <unistd.h>
+	#include <sys/types.h>
+	#include <sys/socket.h>
+
+	//--------------------
+	// IO operations
+	int cfathread_socket(int domain, int type, int protocol) {
+		return socket(domain, type, protocol);
+	}
+	int cfathread_bind(int socket, const struct sockaddr *address, socklen_t address_len) {
+		return bind(socket, address, address_len);
+	}
+
+	int cfathread_listen(int socket, int backlog) {
+		return listen(socket, backlog);
+	}
+
+	int cfathread_accept(int socket, struct sockaddr *restrict address, socklen_t *restrict address_len) {
+		return cfa_accept4(socket, address, address_len, 0, CFA_IO_LAZY);
+	}
+
+	int cfathread_connect(int socket, const struct sockaddr *address, socklen_t address_len) {
+		return cfa_connect(socket, address, address_len, CFA_IO_LAZY);
+	}
+
+	int cfathread_dup(int fildes) {
+		return dup(fildes);
+	}
+
+	int cfathread_close(int fildes) {
+		return cfa_close(fildes, CFA_IO_LAZY);
+	}
+
+	ssize_t cfathread_sendmsg(int socket, const struct msghdr *message, int flags) {
+		return cfa_sendmsg(socket, message, flags, CFA_IO_LAZY);
+	}
+
+	ssize_t cfathread_write(int fildes, const void *buf, size_t nbyte) {
+		return cfa_write(fildes, buf, nbyte, CFA_IO_LAZY);
+	}
+
+	ssize_t cfathread_recvfrom(int socket, void *restrict buffer, size_t length, int flags, struct sockaddr *restrict address, socklen_t *restrict address_len)  {
+		struct iovec iov;
+		iov.iov_base = buffer;
+		iov.iov_len = length;
+
+		struct msghdr msg;
+		msg.msg_name = address;
+		msg.msg_namelen = address_len ? (socklen_t)*address_len : (socklen_t)0;
+		msg.msg_iov = &iov;
+		msg.msg_iovlen = 1;
+		msg.msg_control = 0p;
+		msg.msg_controllen = 0;
+
+		ssize_t ret = cfa_recvmsg(socket, &msg, flags, CFA_IO_LAZY);
+
+		if(address_len) *address_len = msg.msg_namelen;
+		return ret;
+	}
+
+	ssize_t cfathread_read(int fildes, void *buf, size_t nbyte) {
+		return cfa_read(fildes, buf, nbyte, CFA_IO_LAZY);
+	}
+
+	void cfathread_suspendFD(int) {
+		abort | "Suspending File Descriptors is not supported";
+	}
+
+	void cfathread_resumeFD (int) {
+		abort | "Resuming File Descriptors is not supported";
+	}
+
+}
Index: libcfa/src/concurrency/clib/cfathread.h
===================================================================
--- libcfa/src/concurrency/clib/cfathread.h	(revision 2d019af1e5dc0df0ad2bbe9c215b4c34968890c0)
+++ libcfa/src/concurrency/clib/cfathread.h	(revision e867b44d29a219d9ae0b5a5cbb9ef66e02f065fa)
@@ -20,13 +20,44 @@
 extern "C" {
 #endif
+	#include <asm/types.h>
+	#include <errno.h>
+	#include <unistd.h>
+
+
 	//--------------------
 	// Basic types
-	struct cfathread_CRunner_t;
-	typedef struct cfathread_CRunner_t * cfathread_t;
+
+	typedef struct cluster * cfathread_cluster_t;
+
+	int cfathread_cluster_create(cfathread_cluster_t * cluster) __attribute__((nonnull(1)));
+	cfathread_cluster_t cfathread_cluster_self(void);
+	int cfathread_cluster_add_worker(cfathread_cluster_t cluster, pthread_t* tid, void (*init_routine) (void *), void * arg);
+	int cfathread_cluster_pause (cfathread_cluster_t cluster);
+	int cfathread_cluster_resume(cfathread_cluster_t cluster);
 
 	//--------------------
-	// Basic thread support
-	cfathread_t cfathread_create( void (*main)( cfathread_t ) );
-	void cfathread_join( cfathread_t );
+	// thread attribute
+	typedef struct cfathread_attr {
+		cfathread_cluster_t cl;
+	} cfathread_attr_t;
+
+	int cfathread_attr_init(cfathread_attr_t * attr) __attribute__((nonnull (1)));
+	static inline int cfathread_attr_destroy(cfathread_attr_t * attr) __attribute__((nonnull (1))) { return 0; }
+	static inline int cfathread_attr_setbackground(cfathread_attr_t * attr, int background) __attribute__((nonnull (1))) { return 0; }
+	static inline int cfathread_attr_setcluster(cfathread_attr_t * attr, cfathread_cluster_t cl) __attribute__((nonnull (1))) { attr->cl = cl; return 0; }
+
+	//--------------------
+	// thread type
+	struct cfathread_object;
+	typedef struct cfathread_object * cfathread_t;
+
+	int cfathread_create( cfathread_t * h, cfathread_attr_t * a, void *(*main)( void * ), void * arg ) __attribute__((nonnull (1)));
+	int cfathread_join( cfathread_t, void ** retval );
+
+	int cfathread_get_errno(void);
+	cfathread_t cfathread_self(void);
+
+	int cfathread_usleep(useconds_t usecs);
+	int cfathread_sleep(unsigned int secs);
 
 	void cfathread_park( void );
@@ -35,7 +66,42 @@
 
 	//--------------------
-	// Basic kernel features
-	void cfathread_setproccnt( int );
+	// mutex and condition
+	struct timespec;
 
+	typedef struct cfathread_mutex_attr {
+	} cfathread_mutexattr_t;
+	typedef struct cfathread_mutex * cfathread_mutex_t;
+	int cfathread_mutex_init(cfathread_mutex_t *restrict mut, const cfathread_mutexattr_t *restrict attr) __attribute__((nonnull (1)));
+	int cfathread_mutex_destroy(cfathread_mutex_t *mut) __attribute__((nonnull (1)));
+	int cfathread_mutex_lock(cfathread_mutex_t *mut) __attribute__((nonnull (1)));
+	int cfathread_mutex_trylock(cfathread_mutex_t *mut) __attribute__((nonnull (1)));
+	int cfathread_mutex_unlock(cfathread_mutex_t *mut) __attribute__((nonnull (1)));
+
+	typedef struct cfathread_cond_attr {
+	} cfathread_condattr_t;
+	typedef struct cfathread_condition * cfathread_cond_t;
+	int cfathread_cond_init(cfathread_cond_t *restrict cond, const cfathread_condattr_t *restrict attr) __attribute__((nonnull (1)));
+	int cfathread_cond_wait(cfathread_cond_t *restrict cond, cfathread_mutex_t *restrict mut) __attribute__((nonnull (1,2)));
+	int cfathread_cond_timedwait(cfathread_cond_t *restrict cond, cfathread_mutex_t *restrict mut, const struct timespec *restrict abstime) __attribute__((nonnull (1,2,3)));
+	int cfathread_cond_signal(cfathread_cond_t *cond) __attribute__((nonnull (1)));
+
+	//--------------------
+	// IO operations
+	struct sockaddr;
+	struct msghdr;
+	int cfathread_socket(int domain, int type, int protocol);
+	int cfathread_bind(int socket, const struct sockaddr *address, socklen_t address_len);
+	int cfathread_listen(int socket, int backlog);
+	int cfathread_accept(int socket, struct sockaddr *restrict address, socklen_t *restrict address_len);
+	int cfathread_connect(int socket, const struct sockaddr *address, socklen_t address_len);
+	int cfathread_dup(int fildes);
+	int cfathread_close(int fildes);
+	ssize_t cfathread_sendmsg(int socket, const struct msghdr *message, int flags);
+	ssize_t cfathread_write(int fildes, const void *buf, size_t nbyte);
+	ssize_t cfathread_recvfrom(int socket, void *restrict buffer, size_t length, int flags, struct sockaddr *restrict address, socklen_t *restrict address_len);
+	ssize_t cfathread_read(int fildes, void *buf, size_t nbyte);
+
+	void cfathread_suspendFD(int fd);
+	void cfathread_resumeFD (int fd);
 
 #if defined(__cforall) || defined(__cplusplus)
Index: libcfa/src/concurrency/io/call.cfa.in
===================================================================
--- libcfa/src/concurrency/io/call.cfa.in	(revision 2d019af1e5dc0df0ad2bbe9c215b4c34968890c0)
+++ libcfa/src/concurrency/io/call.cfa.in	(revision e867b44d29a219d9ae0b5a5cbb9ef66e02f065fa)
@@ -132,5 +132,5 @@
 	extern int epoll_ctl(int epfd, int op, int fd, struct epoll_event *event);
 
-	extern ssize_t splice(int fd_in, loff_t *off_in, int fd_out, loff_t *off_out, size_t len, unsigned int flags);
+	extern ssize_t splice(int fd_in, __off64_t *off_in, int fd_out, __off64_t *off_out, size_t len, unsigned int flags);
 	extern ssize_t tee(int fd_in, int fd_out, size_t len, unsigned int flags);
 }
@@ -366,5 +366,5 @@
 	}),
 	# CFA_HAVE_IORING_OP_SPLICE
-	Call('SPLICE', 'ssize_t splice(int fd_in, loff_t *off_in, int fd_out, loff_t *off_out, size_t len, unsigned int flags)', {
+	Call('SPLICE', 'ssize_t splice(int fd_in, __off64_t *off_in, int fd_out, __off64_t *off_out, size_t len, unsigned int flags)', {
 		'splice_fd_in': 'fd_in',
 		'splice_off_in': 'off_in ? (__u64)*off_in : (__u64)-1',
Index: libcfa/src/concurrency/iofwd.hfa
===================================================================
--- libcfa/src/concurrency/iofwd.hfa	(revision 2d019af1e5dc0df0ad2bbe9c215b4c34968890c0)
+++ libcfa/src/concurrency/iofwd.hfa	(revision e867b44d29a219d9ae0b5a5cbb9ef66e02f065fa)
@@ -56,4 +56,6 @@
 struct epoll_event;
 
+struct io_uring_sqe;
+
 //----------
 // underlying calls
@@ -91,5 +93,5 @@
 extern ssize_t cfa_read(int fd, void * buf, size_t count, __u64 submit_flags);
 extern ssize_t cfa_write(int fd, void * buf, size_t count, __u64 submit_flags);
-extern ssize_t cfa_splice(int fd_in, loff_t *off_in, int fd_out, loff_t *off_out, size_t len, unsigned int flags, __u64 submit_flags);
+extern ssize_t cfa_splice(int fd_in, __off64_t *off_in, int fd_out, __off64_t *off_out, size_t len, unsigned int flags, __u64 submit_flags);
 extern ssize_t cfa_tee(int fd_in, int fd_out, size_t len, unsigned int flags, __u64 submit_flags);
 
@@ -124,5 +126,5 @@
 void async_read(io_future_t & future, int fd, void * buf, size_t count, __u64 submit_flags);
 extern void async_write(io_future_t & future, int fd, void * buf, size_t count, __u64 submit_flags);
-extern void async_splice(io_future_t & future, int fd_in, loff_t *off_in, int fd_out, loff_t *off_out, size_t len, unsigned int flags, __u64 submit_flags);
+extern void async_splice(io_future_t & future, int fd_in, __off64_t *off_in, int fd_out, __off64_t *off_out, size_t len, unsigned int flags, __u64 submit_flags);
 extern void async_tee(io_future_t & future, int fd_in, int fd_out, size_t len, unsigned int flags, __u64 submit_flags);
 
Index: libcfa/src/concurrency/kernel.cfa
===================================================================
--- libcfa/src/concurrency/kernel.cfa	(revision 2d019af1e5dc0df0ad2bbe9c215b4c34968890c0)
+++ libcfa/src/concurrency/kernel.cfa	(revision e867b44d29a219d9ae0b5a5cbb9ef66e02f065fa)
@@ -149,4 +149,9 @@
 	#endif
 
+	// if we need to run some special setup, now is the time to do it.
+	if(this->init.fnc) {
+		this->init.fnc(this->init.arg);
+	}
+
 	{
 		// Setup preemption data
Index: libcfa/src/concurrency/kernel.hfa
===================================================================
--- libcfa/src/concurrency/kernel.hfa	(revision 2d019af1e5dc0df0ad2bbe9c215b4c34968890c0)
+++ libcfa/src/concurrency/kernel.hfa	(revision e867b44d29a219d9ae0b5a5cbb9ef66e02f065fa)
@@ -107,4 +107,13 @@
 	DLISTED_MGD_IMPL_IN(processor)
 
+	// special init fields
+	// This is needed for memcached integration
+	// once memcached experiments are done this should probably be removed
+	// it is not a particularly safe scheme as it can make processors less homogeneous
+	struct {
+		void (*fnc) (void *);
+		void * arg;
+	} init;
+
 	#if !defined(__CFA_NO_STATISTICS__)
 		int print_stats;
@@ -118,10 +127,10 @@
 };
 
-void  ?{}(processor & this, const char name[], struct cluster & cltr);
+void  ?{}(processor & this, const char name[], struct cluster & cltr, void (*init) (void *), void * arg);
 void ^?{}(processor & this);
 
-static inline void  ?{}(processor & this)                    { this{ "Anonymous Processor", *mainCluster}; }
-static inline void  ?{}(processor & this, struct cluster & cltr)    { this{ "Anonymous Processor", cltr}; }
-static inline void  ?{}(processor & this, const char name[]) { this{name, *mainCluster }; }
+static inline void  ?{}(processor & this)                        { this{ "Anonymous Processor", *mainCluster, 0p, 0p}; }
+static inline void  ?{}(processor & this, struct cluster & cltr) { this{ "Anonymous Processor", cltr, 0p, 0p}; }
+static inline void  ?{}(processor & this, const char name[])     { this{name, *mainCluster, 0p, 0p }; }
 
 DLISTED_MGD_IMPL_OUT(processor)
Index: libcfa/src/concurrency/kernel/startup.cfa
===================================================================
--- libcfa/src/concurrency/kernel/startup.cfa	(revision 2d019af1e5dc0df0ad2bbe9c215b4c34968890c0)
+++ libcfa/src/concurrency/kernel/startup.cfa	(revision e867b44d29a219d9ae0b5a5cbb9ef66e02f065fa)
@@ -73,5 +73,5 @@
 static void __kernel_first_resume( processor * this );
 static void __kernel_last_resume ( processor * this );
-static void init(processor & this, const char name[], cluster & _cltr);
+static void init(processor & this, const char name[], cluster & _cltr, void (*fnc) (void *), void * arg);
 static void deinit(processor & this);
 static void doregister( struct cluster & cltr );
@@ -198,5 +198,5 @@
 		( this.terminated ){};
 		( this.runner ){};
-		init( this, "Main Processor", *mainCluster );
+		init( this, "Main Processor", *mainCluster, 0p, 0p );
 		kernel_thread = pthread_self();
 
@@ -452,5 +452,5 @@
 }
 
-static void init(processor & this, const char name[], cluster & _cltr) with( this ) {
+static void init(processor & this, const char name[], cluster & _cltr, void (*fnc) (void *), void * arg) with( this ) {
 	this.name = name;
 	this.cltr = &_cltr;
@@ -464,4 +464,7 @@
 	this.io.dirty   = false;
 
+	this.init.fnc = fnc;
+	this.init.arg = arg;
+
 	this.idle = eventfd(0, 0);
 	if (idle < 0) {
@@ -513,10 +516,10 @@
 }
 
-void ?{}(processor & this, const char name[], cluster & _cltr) {
+void ?{}(processor & this, const char name[], cluster & _cltr, void (*fnc) (void *), void * arg) {
 	( this.terminated ){};
 	( this.runner ){};
 
 	disable_interrupts();
-		init( this, name, _cltr );
+		init( this, name, _cltr, fnc, arg );
 	enable_interrupts( __cfaabi_dbg_ctx );
 
Index: libcfa/src/concurrency/locks.hfa
===================================================================
--- libcfa/src/concurrency/locks.hfa	(revision 2d019af1e5dc0df0ad2bbe9c215b4c34968890c0)
+++ libcfa/src/concurrency/locks.hfa	(revision e867b44d29a219d9ae0b5a5cbb9ef66e02f065fa)
@@ -31,7 +31,8 @@
 static inline void  ?{}( single_acquisition_lock & this ) {((blocking_lock &)this){ false, false };}
 static inline void ^?{}( single_acquisition_lock & this ) {}
-static inline void   lock      ( single_acquisition_lock & this ) { lock   ( (blocking_lock &)this ); }
-static inline void   unlock    ( single_acquisition_lock & this ) { unlock ( (blocking_lock &)this ); }
-static inline void   on_wait   ( single_acquisition_lock & this ) { on_wait( (blocking_lock &)this ); }
+static inline void   lock      ( single_acquisition_lock & this ) { lock    ( (blocking_lock &)this ); }
+static inline void   try_lock  ( single_acquisition_lock & this ) { try_lock( (blocking_lock &)this ); }
+static inline void   unlock    ( single_acquisition_lock & this ) { unlock  ( (blocking_lock &)this ); }
+static inline void   on_wait   ( single_acquisition_lock & this ) { on_wait ( (blocking_lock &)this ); }
 static inline void   on_notify ( single_acquisition_lock & this, struct $thread * t ) { on_notify( (blocking_lock &)this, t ); }
 static inline void   set_recursion_count( single_acquisition_lock & this, size_t recursion ) { set_recursion_count( (blocking_lock &)this, recursion ); }
@@ -45,7 +46,8 @@
 static inline void  ?{}( owner_lock & this ) {((blocking_lock &)this){ true, true };}
 static inline void ^?{}( owner_lock & this ) {}
-static inline void   lock     ( owner_lock & this ) { lock   ( (blocking_lock &)this ); }
-static inline void   unlock   ( owner_lock & this ) { unlock ( (blocking_lock &)this ); }
-static inline void   on_wait  ( owner_lock & this ) { on_wait( (blocking_lock &)this ); }
+static inline void   lock     ( owner_lock & this ) { lock    ( (blocking_lock &)this ); }
+static inline void   try_lock ( owner_lock & this ) { try_lock( (blocking_lock &)this ); }
+static inline void   unlock   ( owner_lock & this ) { unlock  ( (blocking_lock &)this ); }
+static inline void   on_wait  ( owner_lock & this ) { on_wait ( (blocking_lock &)this ); }
 static inline void   on_notify( owner_lock & this, struct $thread * t ) { on_notify( (blocking_lock &)this, t ); }
 static inline void   set_recursion_count( owner_lock & this, size_t recursion ) { set_recursion_count( (blocking_lock &)this, recursion ); }
Index: libcfa/src/concurrency/monitor.hfa
===================================================================
--- libcfa/src/concurrency/monitor.hfa	(revision 2d019af1e5dc0df0ad2bbe9c215b4c34968890c0)
+++ libcfa/src/concurrency/monitor.hfa	(revision e867b44d29a219d9ae0b5a5cbb9ef66e02f065fa)
@@ -61,5 +61,5 @@
 static inline forall( T & | sized(T) | { void ^?{}( T & mutex ); } )
 void delete( T * th ) {
-	^(*th){};
+	if(th) ^(*th){};
 	free( th );
 }
Index: libcfa/src/concurrency/thread.hfa
===================================================================
--- libcfa/src/concurrency/thread.hfa	(revision 2d019af1e5dc0df0ad2bbe9c215b4c34968890c0)
+++ libcfa/src/concurrency/thread.hfa	(revision e867b44d29a219d9ae0b5a5cbb9ef66e02f065fa)
@@ -42,7 +42,4 @@
 forall(T &)
 const char * msg(ThreadCancelled(T) *);
-
-// define that satisfies the trait without using the thread keyword
-#define DECL_THREAD(X) $thread* get_thread(X& this) __attribute__((const)) { return &this.__thrd; } void main(X& this)
 
 // Inline getters for threads/coroutines/monitors
Index: src/main.cc
===================================================================
--- src/main.cc	(revision 2d019af1e5dc0df0ad2bbe9c215b4c34968890c0)
+++ src/main.cc	(revision e867b44d29a219d9ae0b5a5cbb9ef66e02f065fa)
@@ -9,7 +9,7 @@
 // Author           : Peter Buhr and Rob Schluntz
 // Created On       : Fri May 15 23:12:02 2015
-// Last Modified By : Andrew Beach
-// Last Modified On : Fri Feb 19 14:59:00 2021
-// Update Count     : 643
+// Last Modified By : Peter A. Buhr
+// Last Modified On : Sat Mar  6 15:49:00 2021
+// Update Count     : 656
 //
 
@@ -101,5 +101,5 @@
 static string PreludeDirector = "";
 
-static void parse_cmdline( int argc, char *argv[] );
+static void parse_cmdline( int argc, char * argv[] );
 static void parse( FILE * input, LinkageSpec::Spec linkage, bool shouldExit = false );
 static void dump( list< Declaration * > & translationUnit, ostream & out = cout );
@@ -159,5 +159,5 @@
 #define SIGPARMS int sig __attribute__(( unused )), siginfo_t * sfp __attribute__(( unused )), ucontext_t * cxt __attribute__(( unused ))
 
-static void Signal( int sig, void (*handler)(SIGPARMS), int flags ) {
+static void Signal( int sig, void (* handler)(SIGPARMS), int flags ) {
 	struct sigaction act;
 
@@ -166,5 +166,5 @@
 
 	if ( sigaction( sig, &act, nullptr ) == -1 ) {
-	    cerr << "*CFA runtime error* problem installing signal handler, error(" << errno << ") " << strerror( errno ) << endl;
+	    cerr << "*cfa-cpp compilation error* problem installing signal handler, error(" << errno << ") " << strerror( errno ) << endl;
 	    _exit( EXIT_FAILURE );
 	} // if
@@ -421,5 +421,5 @@
 			delete output;
 		} // if
-	} catch ( SemanticErrorException &e ) {
+	} catch ( SemanticErrorException & e ) {
 		if ( errorp ) {
 			cerr << "---AST at error:---" << endl;
@@ -432,5 +432,5 @@
 		} // if
 		return EXIT_FAILURE;
-	} catch ( UnimplementedError &e ) {
+	} catch ( UnimplementedError & e ) {
 		cout << "Sorry, " << e.get_what() << " is not currently implemented" << endl;
 		if ( output != &cout ) {
@@ -438,5 +438,5 @@
 		} // if
 		return EXIT_FAILURE;
-	} catch ( CompilerError &e ) {
+	} catch ( CompilerError & e ) {
 		cerr << "Compiler Error: " << e.get_what() << endl;
 		cerr << "(please report bugs to [REDACTED])" << endl;
@@ -445,4 +445,8 @@
 		} // if
 		return EXIT_FAILURE;
+	} catch ( std::bad_alloc & ) {
+		cerr << "*cfa-cpp compilation error* std::bad_alloc" << endl;
+		backtrace( 1 );
+		abort();
 	} catch ( ... ) {
 		exception_ptr eptr = current_exception();
@@ -451,8 +455,8 @@
 				rethrow_exception(eptr);
 			} else {
-				cerr << "Exception Uncaught and Unknown" << endl;
-			} // if
-		} catch(const exception& e) {
-			cerr << "Uncaught Exception \"" << e.what() << "\"\n";
+				cerr << "*cfa-cpp compilation error* exception uncaught and unknown" << endl;
+			} // if
+		} catch( const exception & e ) {
+			cerr << "*cfa-cpp compilation error* uncaught exception \"" << e.what() << "\"\n";
 		} // try
 		return EXIT_FAILURE;
@@ -544,5 +548,5 @@
 enum { printoptsSize = sizeof( printopts ) / sizeof( printopts[0] ) };
 
-static void usage( char *argv[] ) {
+static void usage( char * argv[] ) {
     cout << "Usage: " << argv[0] << " [options] [input-file (default stdin)] [output-file (default stdout)], where options are:" << endl;
 	int i = 0, j = 1;									// j skips starting colon
Index: sts/.expect/manipulatorsInput.arm64.txt
===================================================================
--- tests/.expect/manipulatorsInput.arm64.txt	(revision 2d019af1e5dc0df0ad2bbe9c215b4c34968890c0)
+++ 	(revision )
@@ -1,107 +1,0 @@
-1 yyyyyyyyyyyyyyyyyyyy
-2 abcxxx
-3 abcxxx
-4 aaaaaaaa
-5 aaaaaaaa
-6 aabbccbb
-7 dddwww
-8 dddwww
-9 dddwww
-10 aaaaaaaa
-11 wwwwwwww
-12 wwwwwwww
-13 wwwwwwww
-1 yyyyyyyyyyyyyyyyyyyy
-2 abcxxx
-3 abcxxx
-4 aaaaaaaa
-5 aaaaaaaa
-6 aabbccbb
-7 dddwww
-8 dddwww
-9 dddwww
-10 aaaaaaaa
-11 wwwwwwww
-12 wwwwwwww
-13 wwwwwwww
-a
-a
--1
-15
-15
-15
-255
-15
-15
-15
-255
-15
-15
-15
-255
-15
-15
-15
-255
-15
-15
-15
-255
-15
-15
-15
-255
-15
-15
-15
-255
-15
-15
-15
-255
-15
-15
-15
-255
-15
-15
-15
-3.5
-345.6
-345.6
-345.6
-3.5
-345.6
-345.6
-345.6
-3.5
-345.6
-345.6
-345.6
-3.5+3.5i
-345.6+345.6i
-345.6+345.6i
-345.6+345.6i
-3.5+3.5i
-345.6+345.6i
-345.6+345.6i
-345.6+345.6i
-3.5+3.5i
-345.6+345.6i
-345.6+345.6i
-345.6+345.6i
-25
--25
-42798
-1402432282
-1505850196993244515
-394749758663249135511342
-12935154696204706112391834394
-423859149128410414395372834994551
-13889016598639747063234935497057631587
-170141183460469231731687303715884105727
--1
-1
--1
-1234567890123456789
--1234567890123456789
Index: sts/.expect/manipulatorsInput.x64.txt
===================================================================
--- tests/.expect/manipulatorsInput.x64.txt	(revision 2d019af1e5dc0df0ad2bbe9c215b4c34968890c0)
+++ 	(revision )
@@ -1,107 +1,0 @@
-1 yyyyyyyyyyyyyyyyyyyy
-2 abcxxx
-3 abcxxx
-4 aaaaaaaa
-5 aaaaaaaa
-6 aabbccbb
-7 dddwww
-8 dddwww
-9 dddwww
-10 aaaaaaaa
-11 wwwwwwww
-12 wwwwwwww
-13 wwwwwwww
-1 yyyyyyyyyyyyyyyyyyyy
-2 abcxxx
-3 abcxxx
-4 aaaaaaaa
-5 aaaaaaaa
-6 aabbccbb
-7 dddwww
-8 dddwww
-9 dddwww
-10 aaaaaaaa
-11 wwwwwwww
-12 wwwwwwww
-13 wwwwwwww
-a
-a
--1
-15
-15
-15
-255
-15
-15
-15
-255
-15
-15
-15
-255
-15
-15
-15
-255
-15
-15
-15
-255
-15
-15
-15
-255
-15
-15
-15
-255
-15
-15
-15
-255
-15
-15
-15
-255
-15
-15
-15
-3.5
-345.6
-345.6
-345.6
-3.5
-345.6
-345.6
-345.6
-3.5
-345.6
-345.6
-345.6
-3.5+3.5i
-345.6+345.6i
-345.6+345.6i
-345.6+345.6i
-3.5+3.5i
-345.6+345.6i
-345.6+345.6i
-345.6+345.6i
-3.5+3.5i
-345.6+345.6i
-345.6+345.6i
-345.6+345.6i
-25
--25
-42798
-1402432282
-1505850196993244515
-394749758663249135511342
-12935154696204706112391834394
-423859149128410414395372834994551
-13889016598639747063234935497057631587
-170141183460469231731687303715884105727
--1
-1
--1
-1234567890123456789
--1234567890123456789
Index: sts/.expect/manipulatorsInput.x86.txt
===================================================================
--- tests/.expect/manipulatorsInput.x86.txt	(revision 2d019af1e5dc0df0ad2bbe9c215b4c34968890c0)
+++ 	(revision )
@@ -1,92 +1,0 @@
-1 yyyyyyyyyyyyyyyyyyyy
-2 abcxxx
-3 abcxxx
-4 aaaaaaaa
-5 aaaaaaaa
-6 aabbccbb
-7 dddwww
-8 dddwww
-9 dddwww
-10 aaaaaaaa
-11 wwwwwwww
-12 wwwwwwww
-13 wwwwwwww
-1 yyyyyyyyyyyyyyyyyyyy
-2 abcxxx
-3 abcxxx
-4 aaaaaaaa
-5 aaaaaaaa
-6 aabbccbb
-7 dddwww
-8 dddwww
-9 dddwww
-10 aaaaaaaa
-11 wwwwwwww
-12 wwwwwwww
-13 wwwwwwww
-a
-a
--1
-15
-15
-15
-255
-15
-15
-15
-255
-15
-15
-15
-255
-15
-15
-15
-255
-15
-15
-15
-255
-15
-15
-15
-255
-15
-15
-15
-255
-15
-15
-15
-255
-15
-15
-15
-255
-15
-15
-15
-3.5
-345.6
-345.6
-345.6
-3.5
-345.6
-345.6
-345.6
-3.5
-345.6
-345.6
-345.6
-3.5+3.5i
-345.6+345.6i
-345.6+345.6i
-345.6+345.6i
-3.5+3.5i
-345.6+345.6i
-345.6+345.6i
-345.6+345.6i
-3.5+3.5i
-345.6+345.6i
-345.6+345.6i
-345.6+345.6i
Index: sts/.expect/manipulatorsOutput1.arm64.txt
===================================================================
--- tests/.expect/manipulatorsOutput1.arm64.txt	(revision 2d019af1e5dc0df0ad2bbe9c215b4c34968890c0)
+++ 	(revision )
@@ -1,50 +1,0 @@
-signed char
--12 -12   -12 -12   364 0364 f4 0xf4     0xf4 0x00000000f4    0X0F4 -012     -0000012
--12 -12   -12 -12   364 0364 f4 0xf4     0xf4 0x00000000f4    0X0F4 -012     -0000012
-unsigned char
-12 12    12 12    14 014 c 0xc      0xc 0x000000000c    0X00C 012      00000012
-12 12    12 12    14 014 c 0xc      0xc 0x000000000c    0X00C 012      00000012
-signed short int
--12 -12   -12 -12   177764 0177764 fff4 0xfff4   0xfff4 0x000000fff4   0XFFF4 -012     -0000012
--12 -12   -12 -12   177764 0177764 fff4 0xfff4   0xfff4 0x000000fff4   0XFFF4 -012     -0000012
-unsigned short int
-12 12    12 12    14 014 c 0xc      0xc 0x000000000c    0X00C 012      00000012
-12 12    12 12    14 014 c 0xc      0xc 0x000000000c    0X00C 012      00000012
-signed int
--12 -12   -12 -12   37777777764 037777777764 fffffff4 0xfffffff4 0xfffffff4 0x00fffffff4 0XFFFFFFF4 -012     -0000012
--12 -12   -12 -12   37777777764 037777777764 fffffff4 0xfffffff4 0xfffffff4 0x00fffffff4 0XFFFFFFF4 -012     -0000012
-unsigned int
-12 12    12 12    14 014 c 0xc      0xc 0x000000000c    0X00C 012      00000012
-12 12    12 12    14 014 c 0xc      0xc 0x000000000c    0X00C 012      00000012
-signed long long int
--12 -12   -12 -12   1777777777777777777764 01777777777777777777764 fffffffffffffff4 0xfffffffffffffff4 0xfffffffffffffff4 0xfffffffffffffff4 0XFFFFFFFFFFFFFFF4 -012     -0000012
--12 -12   -12 -12   1777777777777777777764 01777777777777777777764 fffffffffffffff4 0xfffffffffffffff4 0xfffffffffffffff4 0xfffffffffffffff4 0XFFFFFFFFFFFFFFF4 -012     -0000012
-unsigned long long int
-12 12    12 12    14 014 c 0xc      0xc 0x000000000c    0X00C 012      00000012
-12 12    12 12    14 014 c 0xc      0xc 0x000000000c    0X00C 012      00000012
-
-binary integral
-0b0 0b1101 0B1101 1101 0b1101     0b1101 0b1101   0b001101 0b0000001101 0b001101
-
-float
-0         3  3.00000 3.537    3.537        4       4.      3.5      3.5 3        3.5      3.5      +3.5     +3.5     000003.5 3.54E+00 0x1.c5p+1 0X1.C5P+1 3.54e+00
-0. 3.000000 3.000000 3.537 3.537000        4        4      3.5      3.5 3.       3.5      3.5      +3.5     +3.5     000003.5 3.54E+00 0x1.c5p+1 0X1.C5P+1 3.54e+00
-double
-0  3.000000 3.537 3.537000       4.        4     3.54 3.54     +3.54    00003.54 3.54E+00 0x1.c5p+1 0X1.C5P+1 3.54e+00
-0. 3.000000 3.537 3.537000        4       4.     3.54 3.54     +3.54    00003.54 3.54E+00 0x1.c5p+1 0X1.C5P+1 3.54e+00
-long double
-0  3.000000 3.537 3.537000       4.        4     3.54 3.54     +3.54    00003.54 3.54E+00 0x1.c5p+1 0X1.C5P+1 3.54e+00
-0. 3.000000 3.53699999999999992184029906638898 3.537000        4       4.     3.54 3.54     +3.54    00003.54 3.54E+00 0x1.c5p+1 0X1.C5P+1 3.54e+00
-
-char
-a  a     a a     141 0141 61 0x61     0x61     0X61 a               a
-a  a     a a     141 0141 61 0x61     0x61     0X61 a               a
-
-string
-abcd     abcd   abcd abcd    
-abcd     abcd   abcd abcd    
-
-binary string
-0b110000 0b1100001 0b1100010 0b1100011 0b1100100 0141 0142 0143 0144 0x61 0x62 0x63 0x64
-110000 1100001 1100010 1100011 1100100 141 142 143 144 61 62 63 64
-  110000  1100001  1100010  1100011  1100100  141  142  143  144  61  62  63  64
Index: sts/.expect/manipulatorsOutput1.x64.txt
===================================================================
--- tests/.expect/manipulatorsOutput1.x64.txt	(revision 2d019af1e5dc0df0ad2bbe9c215b4c34968890c0)
+++ 	(revision )
@@ -1,50 +1,0 @@
-signed char
--12 -12   -12 -12   364 0364 f4 0xf4     0xf4 0x00000000f4    0X0F4 -012     -0000012
--12 -12   -12 -12   364 0364 f4 0xf4     0xf4 0x00000000f4    0X0F4 -012     -0000012
-unsigned char
-12 12    12 12    14 014 c 0xc      0xc 0x000000000c    0X00C 012      00000012
-12 12    12 12    14 014 c 0xc      0xc 0x000000000c    0X00C 012      00000012
-signed short int
--12 -12   -12 -12   177764 0177764 fff4 0xfff4   0xfff4 0x000000fff4   0XFFF4 -012     -0000012
--12 -12   -12 -12   177764 0177764 fff4 0xfff4   0xfff4 0x000000fff4   0XFFF4 -012     -0000012
-unsigned short int
-12 12    12 12    14 014 c 0xc      0xc 0x000000000c    0X00C 012      00000012
-12 12    12 12    14 014 c 0xc      0xc 0x000000000c    0X00C 012      00000012
-signed int
--12 -12   -12 -12   37777777764 037777777764 fffffff4 0xfffffff4 0xfffffff4 0x00fffffff4 0XFFFFFFF4 -012     -0000012
--12 -12   -12 -12   37777777764 037777777764 fffffff4 0xfffffff4 0xfffffff4 0x00fffffff4 0XFFFFFFF4 -012     -0000012
-unsigned int
-12 12    12 12    14 014 c 0xc      0xc 0x000000000c    0X00C 012      00000012
-12 12    12 12    14 014 c 0xc      0xc 0x000000000c    0X00C 012      00000012
-signed long long int
--12 -12   -12 -12   1777777777777777777764 01777777777777777777764 fffffffffffffff4 0xfffffffffffffff4 0xfffffffffffffff4 0xfffffffffffffff4 0XFFFFFFFFFFFFFFF4 -012     -0000012
--12 -12   -12 -12   1777777777777777777764 01777777777777777777764 fffffffffffffff4 0xfffffffffffffff4 0xfffffffffffffff4 0xfffffffffffffff4 0XFFFFFFFFFFFFFFF4 -012     -0000012
-unsigned long long int
-12 12    12 12    14 014 c 0xc      0xc 0x000000000c    0X00C 012      00000012
-12 12    12 12    14 014 c 0xc      0xc 0x000000000c    0X00C 012      00000012
-
-binary integral
-0b0 0b1101 0B1101 1101 0b1101     0b1101 0b1101   0b001101 0b0000001101 0b001101
-
-float
-0         3  3.00000 3.537    3.537        4       4.      3.5      3.5 3        3.5      3.5      +3.5     +3.5     000003.5 3.54E+00 0x1.c5p+1 0X1.C5P+1 3.54e+00
-0. 3.000000 3.000000 3.537 3.537000        4        4      3.5      3.5 3.       3.5      3.5      +3.5     +3.5     000003.5 3.54E+00 0x1.c5p+1 0X1.C5P+1 3.54e+00
-double
-0  3.000000 3.537 3.537000       4.        4     3.54 3.54     +3.54    00003.54 3.54E+00 0x1.c5p+1 0X1.C5P+1 3.54e+00
-0. 3.000000 3.537 3.537000        4       4.     3.54 3.54     +3.54    00003.54 3.54E+00 0x1.c5p+1 0X1.C5P+1 3.54e+00
-long double
-0  3.000000 3.537 3.537000       4.        4     3.54 3.54     +3.54    00003.54 3.54E+00 0xe.26p-2 0XE.26P-2 3.54e+00
-0. 3.000000 3.53699999999999992 3.537000        4       4.     3.54 3.54     +3.54    00003.54 3.54E+00 0xe.26p-2 0XE.26P-2 3.54e+00
-
-char
-a  a     a a     141 0141 61 0x61     0x61     0X61 a               a
-a  a     a a     141 0141 61 0x61     0x61     0X61 a               a
-
-string
-abcd     abcd   abcd abcd    
-abcd     abcd   abcd abcd    
-
-binary string
-0b110000 0b1100001 0b1100010 0b1100011 0b1100100 0141 0142 0143 0144 0x61 0x62 0x63 0x64
-110000 1100001 1100010 1100011 1100100 141 142 143 144 61 62 63 64
-  110000  1100001  1100010  1100011  1100100  141  142  143  144  61  62  63  64
Index: sts/.expect/manipulatorsOutput1.x86.txt
===================================================================
--- tests/.expect/manipulatorsOutput1.x86.txt	(revision 2d019af1e5dc0df0ad2bbe9c215b4c34968890c0)
+++ 	(revision )
@@ -1,50 +1,0 @@
-signed char
--12 -12   -12 -12   364 0364 f4 0xf4     0xf4 0x00000000f4    0X0F4 -012     -0000012
--12 -12   -12 -12   364 0364 f4 0xf4     0xf4 0x00000000f4    0X0F4 -012     -0000012
-unsigned char
-12 12    12 12    14 014 c 0xc      0xc 0x000000000c    0X00C 012      00000012
-12 12    12 12    14 014 c 0xc      0xc 0x000000000c    0X00C 012      00000012
-signed short int
--12 -12   -12 -12   177764 0177764 fff4 0xfff4   0xfff4 0x000000fff4   0XFFF4 -012     -0000012
--12 -12   -12 -12   177764 0177764 fff4 0xfff4   0xfff4 0x000000fff4   0XFFF4 -012     -0000012
-unsigned short int
-12 12    12 12    14 014 c 0xc      0xc 0x000000000c    0X00C 012      00000012
-12 12    12 12    14 014 c 0xc      0xc 0x000000000c    0X00C 012      00000012
-signed int
--12 -12   -12 -12   37777777764 037777777764 fffffff4 0xfffffff4 0xfffffff4 0x00fffffff4 0XFFFFFFF4 -012     -0000012
--12 -12   -12 -12   37777777764 037777777764 fffffff4 0xfffffff4 0xfffffff4 0x00fffffff4 0XFFFFFFF4 -012     -0000012
-unsigned int
-12 12    12 12    14 014 c 0xc      0xc 0x000000000c    0X00C 012      00000012
-12 12    12 12    14 014 c 0xc      0xc 0x000000000c    0X00C 012      00000012
-signed long long int
--12 -12   -12 -12   1777777777777777777764 01777777777777777777764 fffffffffffffff4 0xfffffffffffffff4 0xfffffffffffffff4 0xfffffffffffffff4 0XFFFFFFFFFFFFFFF4 -012     -0000012
--12 -12   -12 -12   1777777777777777777764 01777777777777777777764 fffffffffffffff4 0xfffffffffffffff4 0xfffffffffffffff4 0xfffffffffffffff4 0XFFFFFFFFFFFFFFF4 -012     -0000012
-unsigned long long int
-12 12    12 12    14 014 c 0xc      0xc 0x000000000c    0X00C 012      00000012
-12 12    12 12    14 014 c 0xc      0xc 0x000000000c    0X00C 012      00000012
-
-binary integral
-0b0 0b1101 0B1101 1101 0b1101     0b1101 0b1101   0b001101 0b0000001101 0b001101
-
-float
-0         3  3.00000 3.537    3.537        4       4.      3.5      3.5 3        3.5      3.5      +3.5     +3.5     000003.5 3.54E+00 0x1.c5p+1 0X1.C5P+1 3.54e+00
-0. 3.000000 3.000000 3.537 3.537000        4        4      3.5      3.5 3.       3.5      3.5      +3.5     +3.5     000003.5 3.54E+00 0x1.c5p+1 0X1.C5P+1 3.54e+00
-double
-0  3.000000 3.537 3.537000       4.        4     3.54 3.54     +3.54    00003.54 3.54E+00 0x1.c5p+1 0X1.C5P+1 3.54e+00
-0. 3.000000 3.537 3.537000        4       4.     3.54 3.54     +3.54    00003.54 3.54E+00 0x1.c5p+1 0X1.C5P+1 3.54e+00
-long double
-0  3.000000 3.537 3.537000       4.        4     3.54 3.54     +3.54    00003.54 3.54E+00 0xe.26p-2 0XE.26P-2 3.54e+00
-0. 3.000000 3.53699999999999992 3.537000        4       4.     3.54 3.54     +3.54    00003.54 3.54E+00 0xe.26p-2 0XE.26P-2 3.54e+00
-
-char
-a  a     a a     141 0141 61 0x61     0x61     0X61 a               a
-a  a     a a     141 0141 61 0x61     0x61     0X61 a               a
-
-string
-abcd     abcd   abcd abcd    
-abcd     abcd   abcd abcd    
-
-binary string
-0b110000 0b1100001 0b1100010 0b1100011 0b1100100 0141 0142 0143 0144 0x61 0x62 0x63 0x64
-110000 1100001 1100010 1100011 1100100 141 142 143 144 61 62 63 64
-  110000  1100001  1100010  1100011  1100100  141  142  143  144  61  62  63  64
Index: sts/.expect/manipulatorsOutput2.arm64.txt
===================================================================
--- tests/.expect/manipulatorsOutput2.arm64.txt	(revision 2d019af1e5dc0df0ad2bbe9c215b4c34968890c0)
+++ 	(revision )
@@ -1,32 +1,0 @@
-
-0b0 0b11011 0b11011 0b11011 0b11011
-0b11100101 0b1111111111100101 0b11111111111111111111111111100101 0b1111111111111111111111111111111111111111111111111111111111100101
-0 033 033 033 033
-0345 0177745 037777777745 01777777777777777777745
-0 0x1b 0x1b 0x1b 0x1b
-0xe5 0xffe5 0xffffffe5 0xffffffffffffffe5
-0x0p+0. 0x1.b8p+4 0x1.b8p+4 0x1.b8p+4
--0x1.b8p+4 -0x1.b8p+4 -0x1.b8p+4
-0.000000e+00 2.750000e+01 -2.750000e+01
-0B11011 0X1B 2.75E-09 0X1.B8P+4
-11011 33 1b
-0. 0 27. 27 27.5
-+27 -27 +27 -27 +27.5 -27.5
-  34  34 34
-  4.000000  4.000000 4.000000
-  ab  ab ab
-34567 34567 34567
-3456.000000 3456.000000 3456.000000
-abcde abcde abcde
- 034     0034 0000000034
-3456     3456       3456
-     0000000034
-27.500     27.5      28. 27.50000000
-27.000 27.500     27.5      28. 27.50000000
-27   27.000000  27.500000  027  27.500    
-234.567 234.57  234.6   235.
-234567. 2.3457e+05 2.346e+05 2.35e+05
-234567. 234567. 234567. 234567.
-  abcd     abcd abcd
-  abcd abcdefgh    abc
-0027  027 0027.500
Index: sts/.expect/manipulatorsOutput2.x64.txt
===================================================================
--- tests/.expect/manipulatorsOutput2.x64.txt	(revision 2d019af1e5dc0df0ad2bbe9c215b4c34968890c0)
+++ 	(revision )
@@ -1,32 +1,0 @@
-
-0b0 0b11011 0b11011 0b11011 0b11011
-0b11100101 0b1111111111100101 0b11111111111111111111111111100101 0b1111111111111111111111111111111111111111111111111111111111100101
-0 033 033 033 033
-0345 0177745 037777777745 01777777777777777777745
-0 0x1b 0x1b 0x1b 0x1b
-0xe5 0xffe5 0xffffffe5 0xffffffffffffffe5
-0x0p+0. 0x1.b8p+4 0x1.b8p+4 0xd.cp+1
--0x1.b8p+4 -0x1.b8p+4 -0xd.cp+1
-0.000000e+00 2.750000e+01 -2.750000e+01
-0B11011 0X1B 2.75E-09 0X1.B8P+4
-11011 33 1b
-0. 0 27. 27 27.5
-+27 -27 +27 -27 +27.5 -27.5
-  34  34 34
-  4.000000  4.000000 4.000000
-  ab  ab ab
-34567 34567 34567
-3456.000000 3456.000000 3456.000000
-abcde abcde abcde
- 034     0034 0000000034
-3456     3456       3456
-     0000000034
-27.500     27.5      28. 27.50000000
-27.000 27.500     27.5      28. 27.50000000
-27   27.000000  27.500000  027  27.500    
-234.567 234.57  234.6   235.
-234567. 2.3457e+05 2.346e+05 2.35e+05
-234567. 234567. 234567. 234567.
-  abcd     abcd abcd
-  abcd abcdefgh    abc
-0027  027 0027.500
Index: sts/.expect/manipulatorsOutput2.x86.txt
===================================================================
--- tests/.expect/manipulatorsOutput2.x86.txt	(revision 2d019af1e5dc0df0ad2bbe9c215b4c34968890c0)
+++ 	(revision )
@@ -1,32 +1,0 @@
-
-0b0 0b11011 0b11011 0b11011 0b11011
-0b11100101 0b1111111111100101 0b11111111111111111111111111100101 0b11111111111111111111111111100101
-0 033 033 033 033
-0345 0177745 037777777745 037777777745
-0 0x1b 0x1b 0x1b 0x1b
-0xe5 0xffe5 0xffffffe5 0xffffffe5
-0x0p+0. 0x1.b8p+4 0x1.b8p+4 0xd.cp+1
--0x1.b8p+4 -0x1.b8p+4 -0xd.cp+1
-0.000000e+00 2.750000e+01 -2.750000e+01
-0B11011 0X1B 2.75E-09 0X1.B8P+4
-11011 33 1b
-0. 0 27. 27 27.5
-+27 -27 +27 -27 +27.5 -27.5
-  34  34 34
-  4.000000  4.000000 4.000000
-  ab  ab ab
-34567 34567 34567
-3456.000000 3456.000000 3456.000000
-abcde abcde abcde
- 034     0034 0000000034
-3456     3456       3456
-     0000000034
-27.500     27.5      28. 27.50000000
-27.000 27.500     27.5      28. 27.50000000
-27   27.000000  27.500000  027  27.500    
-234.567 234.57  234.6   235.
-234567. 2.3457e+05 2.346e+05 2.35e+05
-234567. 234567. 234567. 234567.
-  abcd     abcd abcd
-  abcd abcdefgh    abc
-0027  027 0027.500
Index: sts/.expect/manipulatorsOutput3.arm64.txt
===================================================================
--- tests/.expect/manipulatorsOutput3.arm64.txt	(revision 2d019af1e5dc0df0ad2bbe9c215b4c34968890c0)
+++ 	(revision )
@@ -1,437 +1,0 @@
--1208907372870555465220095
--1208907372870555465220095
-+1208907372870555465220095
-
-base 2
-0b11111111111111110000000000000000000000000000000000000000000000001111111111111111
-0B11111111111111110000000000000000000000000000000000000000000000001111111111111111
-11111111111111110000000000000000000000000000000000000000000000001111111111111111
-             0B11111111111111110000000000000000000000000000000000000000000000001111111111111111
-   0B000000000011111111111111110000000000000000000000000000000000000000000000001111111111111111
-0X0000000000FFFF000000000000FFFF
-
-0b1001011001110110101011000110010011111001100011011000100011110100000000000000000
-0B1001011001110110101011000110010011111001100011011000100011110100000000000000000
-0B1001011001110110101011000110010011111001100011011000100011110100000000000000000
-0B1001011001110110101011000110010011111001100011011000100011110100000000000000000
-0B1001011001110110101011000110010011111001100011011000100011110100000000000000000
-0B1001011001110110101011000110010011111001100011011000100011110100000000000000000
-0B1001011001110110101011000110010011111001100011011000100011110100000000000000000
-
-base 8
-0000000123
-0000000123
-0377776000000000000000177777
-377776000000000000000177777
-                                         0123
-     0000000000000000000000000000000000000123
-000000000000000000000000000000000000000000123
-                 0377776000000000000000177777
-     0000000000000377776000000000000000177777
-000000000000000000377776000000000000000177777
-0123                                         X
-0377776000000000000000177777                 X
-05000000000000000000123                      X
-0000000000000000000000000000000000000123     X
-0000000000000377776000000000000000177777     X
-0000000000000000005000000000000000000123     X
-000000000000000000000000000000000000000000123X
-000000000000000000377776000000000000000177777X
-000000000000000000000005000000000000000000123X
-0000000123X
-0000000123X
-0000000123                              X
-0000000123                              X
-0377776000000000000000177777            X
-05000000000000000000123                 X
-0000000000000000000000000000000000000123X
-0000000000000377776000000000000000177777X
-0000000000000000005000000000000000000123X
-0000000000000000000000000000000000000000001234567X
-03777777777777777777777777777777777776543211Y
-03777777777777777777777777777777777776543211Y
-
-0113166530623714330436400000
-          0113166530623714330436400000
-            0113166530623714330436400000
-  00000000000113166530623714330436400000
-          000113166530623714330436400000
-  00000000000113166530623714330436400000
-
-base 10
-355272055279601493606400
-355272055279601493606400
-355272055279601493606400
-355272055279601493606400
-355272055279601493606400
-              355272055279601493606400
-               355272055279601493606400
-                355272055279601493606400
-          000000355272055279601493606400
-  00000000000000355272055279601493606400
-0000000000000000355272055279601493606400
-0000000000000000355272055279601493606400
-+000000000000000355272055279601493606400
-
-base 16
-0xffff000000000000ffff
-0XFFFF000000000000FFFF
-ffff000000000000ffff
-                       0XFFFF000000000000FFFF
-   0X00000000000000000000FFFF000000000000FFFF
-0X00000000000000000000000000000FFFF000000000000FFFF
-0XFFFF000000000000FFFF                       X
-0X00000000000000000000FFFF000000000000FFFF   X
-0X00000000000000000000000000000FFFF000000000000FFFFX
-
-0X4B3B56327CC6C47A0000
-                0X4B3B56327CC6C47A0000
-                  0X4B3B56327CC6C47A0000
-0X0000000000000000004B3B56327CC6C47A0000
-        0X00000000004B3B56327CC6C47A0000
-0X0000000000000000004B3B56327CC6C47A0000
-
-extras
-0b1001011001110110101011000110010011111001100011011000100011110100000000000000000
-0B1001011001110110101011000110010011111001100011011000100011110100000000000000000
-0113166530623714330436400000
-0x4b3b56327cc6c47a0000
-0X4B3B56327CC6C47A0000
-1001011001110110101011000110010011111001100011011000100011110100000000000000000 113166530623714330436400000 4b3b56327cc6c47a0000
-+355272055279601493606400
--355272055279601493606400
--355272055279601493606400
-355272055279601493606400
-355272055279601493606400
-355272055279601493606400                X
-+355272055279601493606400               X
-+0000000000000000355272055279601493606400X
-+0000000000000000000000000000000123456789X
--1000 0xfffffffffffffffffffffffffffffc18 03777777777777777777777777777777777777776030
-0b11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111110000011000
--999 0xfffffffffffffffffffffffffffffc19 03777777777777777777777777777777777777776031
-0b11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111110000011001
--998 0xfffffffffffffffffffffffffffffc1a 03777777777777777777777777777777777777776032
-0b11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111110000011010
--997 0xfffffffffffffffffffffffffffffc1b 03777777777777777777777777777777777777776033
-0b11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111110000011011
--996 0xfffffffffffffffffffffffffffffc1c 03777777777777777777777777777777777777776034
-0b11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111110000011100
--995 0xfffffffffffffffffffffffffffffc1d 03777777777777777777777777777777777777776035
-0b11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111110000011101
--994 0xfffffffffffffffffffffffffffffc1e 03777777777777777777777777777777777777776036
-0b11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111110000011110
--993 0xfffffffffffffffffffffffffffffc1f 03777777777777777777777777777777777777776037
-0b11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111110000011111
--992 0xfffffffffffffffffffffffffffffc20 03777777777777777777777777777777777777776040
-0b11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111110000100000
--991 0xfffffffffffffffffffffffffffffc21 03777777777777777777777777777777777777776041
-0b11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111110000100001
-
-
--990                                                                                                                                                            
--990
-0xfffffffffffffffffffffffffffffc22
-03777777777777777777777777777777777777776042
-0b11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111110000100010
--990
-0xfffffffffffffffffffffffffffffc22
-03777777777777777777777777777777777777776042
-0b11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111110000100010
--990                            
-0xfffffffffffffffffffffffffffffc22
-03777777777777777777777777777777777777776042
-0b11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111110000100010
--990                                                                                                                                                            
-0xfffffffffffffffffffffffffffffc22                                                                                                                              
-03777777777777777777777777777777777777776042                                                                                                                    
-0b11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111110000100010                              
--990                                                                                                                                                            
-0XFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC22                                                                                                                              
-03777777777777777777777777777777777777776042                                                                                                                    
-0B11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111110000100010                              
-22763282186957586699822X
-                   04644000000000000000013056X
-04644000000000000000013056                   X
-                   04644000000000000000013056X
-04644000000000000000013056                   X
-                   04644000000000000000013056X
-04644000000000000000013056                   X
-         000000000004644000000000000000013056X
-000000000004644000000000000000013056         X
-0000000000000000000004644000000000000000013056X
-0000000000000000000004644000000000000000013056X
-04644000000000000000013056                   X
-04644000000000000000013056                   X
-04644000000000000000013056                   X
-04644000000000000000013056                   X
-0004644000000000000000013056                 X
-03777777777777777773133777777777777777764722Y
-03777777777777777773133777777777777777764722Y
-03777777777777777773133777777777777777764722Y
-03777777777777777773133777777777777777764722Y
-03777777777777777773133777777777777777764722Y
-03777777777777777773133777777777777777764722Y
-03777777777777777773133777777777777777764722 Y
-0000003777777777777777773133777777777777777764722Y
-03777777777777777773133777777777777777764722 Y
-0123                                         X
-04644000000000000000013056                   X
-0000000000000000000000000000000000000123     X
-0000000000000004644000000000000000013056     X
-000000000000000000000000000000000000000000123X
-000000000000000000004644000000000000000013056X
-0000000123                              X
-04644000000000000000013056              X
-03777777777777777773133777777777777777764722X
-0000000000000000000000000000000000000123X
-0000000000000004644000000000000000013056X
-03777777777777777773133777777777777777764722X
-1777777777777777777777
-2777777777777777777777
-3777777777777777777777
-4777777777777777777777
-5777777777777777777777
-6777777777777777777777
-7777777777777777777777
-10777777777777777777777
-0b11111111111111110000000000000000000000000000000000000000000000001111111111111111
-0B11111111111111110000000000000000000000000000000000000000000000001111111111111111
-11111111111111110000000000000000000000000000000000000000000000001111111111111111
-             0B11111111111111110000000000000000000000000000000000000000000000001111111111111111
-   0B000000000011111111111111110000000000000000000000000000000000000000000000001111111111111111
-0B00000000000000011111111111111110000000000000000000000000000000000000000000000001111111111111111
-0b11111111111111110000000000000000000000000000000000000000000000001111111111111111
-0B11111111111111110000000000000000000000000000000000000000000000001111111111111111
-11111111111111110000000000000000000000000000000000000000000000001111111111111111
-0B11111111111111110000000000000000000000000000000000000000000000001111111111111111             
-0B000000000011111111111111110000000000000000000000000000000000000000000000001111111111111111   
-0B011111111111111110000000000000000000000000000000000000000000000001111111111111111            
-0B11111111111111110000000000000000000000000000000000000000000000001111111111111111             
-0B11111111111111110000000000000000000000000000000000000000000000001111111111111111             
-0B000000000000000000000000000000000000000000000000000000000000000000000000001111111111111111   
-0B0000000000000000000000000000000000000000000000001111111111111111  
-0B00000000000000011111111111111110000000000000000000000000000000000000000000000001111111111111111
-   0X000000000000000000000FFFF
-   0X000000000000000000000FFFF
-0X00000000000000000000000000FFFF
-0X00000000000000000000000000FFFF
-05000000000000000000123
-                      05000000000000000000123
-05000000000000000000123                      X
-0000000123                              X
-0377776000000000000000177777            X
-05000000000000000000123                 X
-0000000000000000000000000000000000000123X
-0000000000000377776000000000000000177777X
-0000000000000000005000000000000000000123X
--10                  0xfffffffffffffffffffffffffffffff6 03777777777777777777777777777777777777777766
-0b11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111110110
--9                   0xfffffffffffffffffffffffffffffff7 03777777777777777777777777777777777777777767
-0b11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111110111
--8                   0xfffffffffffffffffffffffffffffff8 03777777777777777777777777777777777777777770
-0b11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111000
--7                   0xfffffffffffffffffffffffffffffff9 03777777777777777777777777777777777777777771
-0b11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111001
--6                   0xfffffffffffffffffffffffffffffffa 03777777777777777777777777777777777777777772
-0b11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111010
--5                   0xfffffffffffffffffffffffffffffffb 03777777777777777777777777777777777777777773
-0b11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111011
--4                   0xfffffffffffffffffffffffffffffffc 03777777777777777777777777777777777777777774
-0b11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111100
--3                   0xfffffffffffffffffffffffffffffffd 03777777777777777777777777777777777777777775
-0b11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111101
--2                   0xfffffffffffffffffffffffffffffffe 03777777777777777777777777777777777777777776
-0b11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111110
--1                   0xffffffffffffffffffffffffffffffff 03777777777777777777777777777777777777777777
-0b11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
-+0                   0                    0                   
-0b0                 
-+1                   0x1                  01                  
-0b1                 
-+2                   0x2                  02                  
-0b10                
-+3                   0x3                  03                  
-0b11                
-+4                   0x4                  04                  
-0b100               
-+5                   0x5                  05                  
-0b101               
-+6                   0x6                  06                  
-0b110               
-+7                   0x7                  07                  
-0b111               
-+8                   0x8                  010                 
-0b1000              
-+9                   0x9                  011                 
-0b1001              
-+10                  0xa                  012                 
-0b1010              
-+11                  0xb                  013                 
-0b1011              
-+12                  0xc                  014                 
-0b1100              
-+13                  0xd                  015                 
-0b1101              
-+14                  0xe                  016                 
-0b1110              
-
-170141183460469231731687303715884105722
-+170141183460469231731687303715884105722       0x7ffffffffffffffffffffffffffffffa            01777777777777777777777777777777777777777772 
-0b1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111010
-170141183460469231731687303715884105723
-+170141183460469231731687303715884105723       0x7ffffffffffffffffffffffffffffffb            01777777777777777777777777777777777777777773 
-0b1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111011
-170141183460469231731687303715884105724
-+170141183460469231731687303715884105724       0x7ffffffffffffffffffffffffffffffc            01777777777777777777777777777777777777777774 
-0b1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111100
-170141183460469231731687303715884105725
-+170141183460469231731687303715884105725       0x7ffffffffffffffffffffffffffffffd            01777777777777777777777777777777777777777775 
-0b1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111101
-170141183460469231731687303715884105726
-+170141183460469231731687303715884105726       0x7ffffffffffffffffffffffffffffffe            01777777777777777777777777777777777777777776 
-0b1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111110
-170141183460469231731687303715884105727
-+170141183460469231731687303715884105727       0x7fffffffffffffffffffffffffffffff            01777777777777777777777777777777777777777777 
-0b1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
--170141183460469231731687303715884105728
--170141183460469231731687303715884105728       0x80000000000000000000000000000000            02000000000000000000000000000000000000000000 
-0b10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
--170141183460469231731687303715884105727
--170141183460469231731687303715884105727       0x80000000000000000000000000000001            02000000000000000000000000000000000000000001 
-0b10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001
--170141183460469231731687303715884105726
--170141183460469231731687303715884105726       0x80000000000000000000000000000002            02000000000000000000000000000000000000000002 
-0b10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010
--170141183460469231731687303715884105725
--170141183460469231731687303715884105725       0x80000000000000000000000000000003            02000000000000000000000000000000000000000003 
-0b10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000011
--170141183460469231731687303715884105724
--170141183460469231731687303715884105724       0x80000000000000000000000000000004            02000000000000000000000000000000000000000004 
-0b10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100
--170141183460469231731687303715884105723
--170141183460469231731687303715884105723       0x80000000000000000000000000000005            02000000000000000000000000000000000000000005 
-0b10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000101
--170141183460469231731687303715884105722
--170141183460469231731687303715884105722       0x80000000000000000000000000000006            02000000000000000000000000000000000000000006 
-0b10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000110
--170141183460469231731687303715884105721
--170141183460469231731687303715884105721       0x80000000000000000000000000000007            02000000000000000000000000000000000000000007 
-0b10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000111
--170141183460469231731687303715884105720
--170141183460469231731687303715884105720       0x80000000000000000000000000000008            02000000000000000000000000000000000000000010 
-0b10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000
--170141183460469231731687303715884105719
--170141183460469231731687303715884105719       0x80000000000000000000000000000009            02000000000000000000000000000000000000000011 
-0b10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001001
--170141183460469231731687303715884105718
--170141183460469231731687303715884105718       0x8000000000000000000000000000000a            02000000000000000000000000000000000000000012 
-0b10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001010
--170141183460469231731687303715884105717
--170141183460469231731687303715884105717       0x8000000000000000000000000000000b            02000000000000000000000000000000000000000013 
-0b10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001011
--170141183460469231731687303715884105716
--170141183460469231731687303715884105716       0x8000000000000000000000000000000c            02000000000000000000000000000000000000000014 
-0b10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001100
--170141183460469231731687303715884105715
--170141183460469231731687303715884105715       0x8000000000000000000000000000000d            02000000000000000000000000000000000000000015 
-0b10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001101
-
-170141183460469231731687303715884105722
-170141183460469231731687303715884105723
-170141183460469231731687303715884105724
-170141183460469231731687303715884105725
-170141183460469231731687303715884105726
-170141183460469231731687303715884105727
-170141183460469231731687303715884105728
-170141183460469231731687303715884105729
-170141183460469231731687303715884105730
-170141183460469231731687303715884105731
-170141183460469231731687303715884105732
-170141183460469231731687303715884105733
-170141183460469231731687303715884105734
-170141183460469231731687303715884105735
-170141183460469231731687303715884105736
-170141183460469231731687303715884105737
-170141183460469231731687303715884105738
-170141183460469231731687303715884105739
-170141183460469231731687303715884105740
-170141183460469231731687303715884105741
-
-340282366920938463463374607431768211450
-340282366920938463463374607431768211451
-340282366920938463463374607431768211452
-340282366920938463463374607431768211453
-340282366920938463463374607431768211454
-340282366920938463463374607431768211455
-0
-1
-2
-3
-4
-5
-6
-7
-8
-9
-10
-11
-12
-13
-0xfffffffffffffffffffe
-0xfffffffffffffffffffe
-
-binary
-0b11111111111111111111111111111111111111111111111111111111111111111111111111111110
-0b11111111111111111111111111111111
-0b1111111111111111111111111111111111111111111111111111111111111111
-0b111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
-0b11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
-0xa2345678
-0xa2345678a7654321
-0xa2345678a7654321c2345678
-0xa2345678a7654321c2345678d7554321
-
-octal
-0377777777777777777777777776
-0123456
-012345665432
-01234566543234567
-0123456654323456776543
-012345665432345677654323456
-01234566543234567765432345665432
-0123456654323456776543234566543234567
-012345665432345677654323456654323456776543
-01111111111111111111
-011111111111111111111
-0111111111111111111111
-
-decimal
-1208925819614629174706174
-42798 0123456
-1402432282 012345665432
-45954901031287 01234566543234567
-1505850196993244515 0123456654323456776543
-394749758663249135511342 0123456665432345677654323456
-12935154696204706112391834394 012345665432234567765432345665432
-423859149128410414395372834994551 01234566543234567776543234566543234567
-13889016598639747063234935497057631587 0123456654323456776543323456654323456776543
-1234567890123456789
-1234567890123456789
-170141183460469231731687303715884105727
-340282366920938463463374607431768211455
-9223372036854775808
-340282366920938463463374607431768211455
-170141183460469231731687303715884105727
-
-hexadecimal
-0xfffffffffffffffffffe
-0xffffffff
-0xffffffffffffffff
-0xffffffffffffffffffffffff
-0xffffffffffffffffffffffffffffffff
-0xa2345678
-0xa2345678b7654321
-0xa2345678b7654321c2345678
-0xa2345678b7654321c2345678d7654321
-
Index: sts/.expect/manipulatorsOutput3.x64.txt
===================================================================
--- tests/.expect/manipulatorsOutput3.x64.txt	(revision 2d019af1e5dc0df0ad2bbe9c215b4c34968890c0)
+++ 	(revision )
@@ -1,437 +1,0 @@
--1208907372870555465220095
--1208907372870555465220095
-+1208907372870555465220095
-
-base 2
-0b11111111111111110000000000000000000000000000000000000000000000001111111111111111
-0B11111111111111110000000000000000000000000000000000000000000000001111111111111111
-11111111111111110000000000000000000000000000000000000000000000001111111111111111
-             0B11111111111111110000000000000000000000000000000000000000000000001111111111111111
-   0B000000000011111111111111110000000000000000000000000000000000000000000000001111111111111111
-0X0000000000FFFF000000000000FFFF
-
-0b1001011001110110101011000110010011111001100011011000100011110100000000000000000
-0B1001011001110110101011000110010011111001100011011000100011110100000000000000000
-0B1001011001110110101011000110010011111001100011011000100011110100000000000000000
-0B1001011001110110101011000110010011111001100011011000100011110100000000000000000
-0B1001011001110110101011000110010011111001100011011000100011110100000000000000000
-0B1001011001110110101011000110010011111001100011011000100011110100000000000000000
-0B1001011001110110101011000110010011111001100011011000100011110100000000000000000
-
-base 8
-0000000123
-0000000123
-0377776000000000000000177777
-377776000000000000000177777
-                                         0123
-     0000000000000000000000000000000000000123
-000000000000000000000000000000000000000000123
-                 0377776000000000000000177777
-     0000000000000377776000000000000000177777
-000000000000000000377776000000000000000177777
-0123                                         X
-0377776000000000000000177777                 X
-05000000000000000000123                      X
-0000000000000000000000000000000000000123     X
-0000000000000377776000000000000000177777     X
-0000000000000000005000000000000000000123     X
-000000000000000000000000000000000000000000123X
-000000000000000000377776000000000000000177777X
-000000000000000000000005000000000000000000123X
-0000000123X
-0000000123X
-0000000123                              X
-0000000123                              X
-0377776000000000000000177777            X
-05000000000000000000123                 X
-0000000000000000000000000000000000000123X
-0000000000000377776000000000000000177777X
-0000000000000000005000000000000000000123X
-0000000000000000000000000000000000000000001234567X
-03777777777777777777777777777777777776543211Y
-03777777777777777777777777777777777776543211Y
-
-0113166530623714330436400000
-          0113166530623714330436400000
-            0113166530623714330436400000
-  00000000000113166530623714330436400000
-          000113166530623714330436400000
-  00000000000113166530623714330436400000
-
-base 10
-355272055279601493606400
-355272055279601493606400
-355272055279601493606400
-355272055279601493606400
-355272055279601493606400
-              355272055279601493606400
-               355272055279601493606400
-                355272055279601493606400
-          000000355272055279601493606400
-  00000000000000355272055279601493606400
-0000000000000000355272055279601493606400
-0000000000000000355272055279601493606400
-+000000000000000355272055279601493606400
-
-base 16
-0xffff000000000000ffff
-0XFFFF000000000000FFFF
-ffff000000000000ffff
-                       0XFFFF000000000000FFFF
-   0X00000000000000000000FFFF000000000000FFFF
-0X00000000000000000000000000000FFFF000000000000FFFF
-0XFFFF000000000000FFFF                       X
-0X00000000000000000000FFFF000000000000FFFF   X
-0X00000000000000000000000000000FFFF000000000000FFFFX
-
-0X4B3B56327CC6C47A0000
-                0X4B3B56327CC6C47A0000
-                  0X4B3B56327CC6C47A0000
-0X0000000000000000004B3B56327CC6C47A0000
-        0X00000000004B3B56327CC6C47A0000
-0X0000000000000000004B3B56327CC6C47A0000
-
-extras
-0b1001011001110110101011000110010011111001100011011000100011110100000000000000000
-0B1001011001110110101011000110010011111001100011011000100011110100000000000000000
-0113166530623714330436400000
-0x4b3b56327cc6c47a0000
-0X4B3B56327CC6C47A0000
-1001011001110110101011000110010011111001100011011000100011110100000000000000000 113166530623714330436400000 4b3b56327cc6c47a0000
-+355272055279601493606400
--355272055279601493606400
--355272055279601493606400
-355272055279601493606400
-355272055279601493606400
-355272055279601493606400                X
-+355272055279601493606400               X
-+0000000000000000355272055279601493606400X
-+0000000000000000000000000000000123456789X
--1000 0xfffffffffffffffffffffffffffffc18 03777777777777777777777777777777777777776030
-0b11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111110000011000
--999 0xfffffffffffffffffffffffffffffc19 03777777777777777777777777777777777777776031
-0b11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111110000011001
--998 0xfffffffffffffffffffffffffffffc1a 03777777777777777777777777777777777777776032
-0b11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111110000011010
--997 0xfffffffffffffffffffffffffffffc1b 03777777777777777777777777777777777777776033
-0b11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111110000011011
--996 0xfffffffffffffffffffffffffffffc1c 03777777777777777777777777777777777777776034
-0b11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111110000011100
--995 0xfffffffffffffffffffffffffffffc1d 03777777777777777777777777777777777777776035
-0b11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111110000011101
--994 0xfffffffffffffffffffffffffffffc1e 03777777777777777777777777777777777777776036
-0b11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111110000011110
--993 0xfffffffffffffffffffffffffffffc1f 03777777777777777777777777777777777777776037
-0b11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111110000011111
--992 0xfffffffffffffffffffffffffffffc20 03777777777777777777777777777777777777776040
-0b11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111110000100000
--991 0xfffffffffffffffffffffffffffffc21 03777777777777777777777777777777777777776041
-0b11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111110000100001
-
-
--990                                                                                                                                                            
--990
-0xfffffffffffffffffffffffffffffc22
-03777777777777777777777777777777777777776042
-0b11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111110000100010
--990
-0xfffffffffffffffffffffffffffffc22
-03777777777777777777777777777777777777776042
-0b11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111110000100010
--990                            
-0xfffffffffffffffffffffffffffffc22
-03777777777777777777777777777777777777776042
-0b11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111110000100010
--990                                                                                                                                                            
-0xfffffffffffffffffffffffffffffc22                                                                                                                              
-03777777777777777777777777777777777777776042                                                                                                                    
-0b11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111110000100010                              
--990                                                                                                                                                            
-0XFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC22                                                                                                                              
-03777777777777777777777777777777777777776042                                                                                                                    
-0B11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111110000100010                              
-22763282186957586699822X
-                   04644000000000000000013056X
-04644000000000000000013056                   X
-                   04644000000000000000013056X
-04644000000000000000013056                   X
-                   04644000000000000000013056X
-04644000000000000000013056                   X
-         000000000004644000000000000000013056X
-000000000004644000000000000000013056         X
-0000000000000000000004644000000000000000013056X
-0000000000000000000004644000000000000000013056X
-04644000000000000000013056                   X
-04644000000000000000013056                   X
-04644000000000000000013056                   X
-04644000000000000000013056                   X
-0004644000000000000000013056                 X
-03777777777777777773133777777777777777764722Y
-03777777777777777773133777777777777777764722Y
-03777777777777777773133777777777777777764722Y
-03777777777777777773133777777777777777764722Y
-03777777777777777773133777777777777777764722Y
-03777777777777777773133777777777777777764722Y
-03777777777777777773133777777777777777764722 Y
-0000003777777777777777773133777777777777777764722Y
-03777777777777777773133777777777777777764722 Y
-0123                                         X
-04644000000000000000013056                   X
-0000000000000000000000000000000000000123     X
-0000000000000004644000000000000000013056     X
-000000000000000000000000000000000000000000123X
-000000000000000000004644000000000000000013056X
-0000000123                              X
-04644000000000000000013056              X
-03777777777777777773133777777777777777764722X
-0000000000000000000000000000000000000123X
-0000000000000004644000000000000000013056X
-03777777777777777773133777777777777777764722X
-1777777777777777777777
-2777777777777777777777
-3777777777777777777777
-4777777777777777777777
-5777777777777777777777
-6777777777777777777777
-7777777777777777777777
-10777777777777777777777
-0b11111111111111110000000000000000000000000000000000000000000000001111111111111111
-0B11111111111111110000000000000000000000000000000000000000000000001111111111111111
-11111111111111110000000000000000000000000000000000000000000000001111111111111111
-             0B11111111111111110000000000000000000000000000000000000000000000001111111111111111
-   0B000000000011111111111111110000000000000000000000000000000000000000000000001111111111111111
-0B00000000000000011111111111111110000000000000000000000000000000000000000000000001111111111111111
-0b11111111111111110000000000000000000000000000000000000000000000001111111111111111
-0B11111111111111110000000000000000000000000000000000000000000000001111111111111111
-11111111111111110000000000000000000000000000000000000000000000001111111111111111
-0B11111111111111110000000000000000000000000000000000000000000000001111111111111111             
-0B000000000011111111111111110000000000000000000000000000000000000000000000001111111111111111   
-0B011111111111111110000000000000000000000000000000000000000000000001111111111111111            
-0B11111111111111110000000000000000000000000000000000000000000000001111111111111111             
-0B11111111111111110000000000000000000000000000000000000000000000001111111111111111             
-0B000000000000000000000000000000000000000000000000000000000000000000000000001111111111111111   
-0B0000000000000000000000000000000000000000000000001111111111111111  
-0B00000000000000011111111111111110000000000000000000000000000000000000000000000001111111111111111
-   0X000000000000000000000FFFF
-   0X000000000000000000000FFFF
-0X00000000000000000000000000FFFF
-0X00000000000000000000000000FFFF
-05000000000000000000123
-                      05000000000000000000123
-05000000000000000000123                      X
-0000000123                              X
-0377776000000000000000177777            X
-05000000000000000000123                 X
-0000000000000000000000000000000000000123X
-0000000000000377776000000000000000177777X
-0000000000000000005000000000000000000123X
--10                  0xfffffffffffffffffffffffffffffff6 03777777777777777777777777777777777777777766
-0b11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111110110
--9                   0xfffffffffffffffffffffffffffffff7 03777777777777777777777777777777777777777767
-0b11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111110111
--8                   0xfffffffffffffffffffffffffffffff8 03777777777777777777777777777777777777777770
-0b11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111000
--7                   0xfffffffffffffffffffffffffffffff9 03777777777777777777777777777777777777777771
-0b11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111001
--6                   0xfffffffffffffffffffffffffffffffa 03777777777777777777777777777777777777777772
-0b11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111010
--5                   0xfffffffffffffffffffffffffffffffb 03777777777777777777777777777777777777777773
-0b11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111011
--4                   0xfffffffffffffffffffffffffffffffc 03777777777777777777777777777777777777777774
-0b11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111100
--3                   0xfffffffffffffffffffffffffffffffd 03777777777777777777777777777777777777777775
-0b11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111101
--2                   0xfffffffffffffffffffffffffffffffe 03777777777777777777777777777777777777777776
-0b11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111110
--1                   0xffffffffffffffffffffffffffffffff 03777777777777777777777777777777777777777777
-0b11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
-+0                   0                    0                   
-0b0                 
-+1                   0x1                  01                  
-0b1                 
-+2                   0x2                  02                  
-0b10                
-+3                   0x3                  03                  
-0b11                
-+4                   0x4                  04                  
-0b100               
-+5                   0x5                  05                  
-0b101               
-+6                   0x6                  06                  
-0b110               
-+7                   0x7                  07                  
-0b111               
-+8                   0x8                  010                 
-0b1000              
-+9                   0x9                  011                 
-0b1001              
-+10                  0xa                  012                 
-0b1010              
-+11                  0xb                  013                 
-0b1011              
-+12                  0xc                  014                 
-0b1100              
-+13                  0xd                  015                 
-0b1101              
-+14                  0xe                  016                 
-0b1110              
-
-170141183460469231731687303715884105722
-+170141183460469231731687303715884105722       0x7ffffffffffffffffffffffffffffffa            01777777777777777777777777777777777777777772 
-0b1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111010
-170141183460469231731687303715884105723
-+170141183460469231731687303715884105723       0x7ffffffffffffffffffffffffffffffb            01777777777777777777777777777777777777777773 
-0b1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111011
-170141183460469231731687303715884105724
-+170141183460469231731687303715884105724       0x7ffffffffffffffffffffffffffffffc            01777777777777777777777777777777777777777774 
-0b1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111100
-170141183460469231731687303715884105725
-+170141183460469231731687303715884105725       0x7ffffffffffffffffffffffffffffffd            01777777777777777777777777777777777777777775 
-0b1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111101
-170141183460469231731687303715884105726
-+170141183460469231731687303715884105726       0x7ffffffffffffffffffffffffffffffe            01777777777777777777777777777777777777777776 
-0b1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111110
-170141183460469231731687303715884105727
-+170141183460469231731687303715884105727       0x7fffffffffffffffffffffffffffffff            01777777777777777777777777777777777777777777 
-0b1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
--170141183460469231731687303715884105728
--170141183460469231731687303715884105728       0x80000000000000000000000000000000            02000000000000000000000000000000000000000000 
-0b10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
--170141183460469231731687303715884105727
--170141183460469231731687303715884105727       0x80000000000000000000000000000001            02000000000000000000000000000000000000000001 
-0b10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001
--170141183460469231731687303715884105726
--170141183460469231731687303715884105726       0x80000000000000000000000000000002            02000000000000000000000000000000000000000002 
-0b10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010
--170141183460469231731687303715884105725
--170141183460469231731687303715884105725       0x80000000000000000000000000000003            02000000000000000000000000000000000000000003 
-0b10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000011
--170141183460469231731687303715884105724
--170141183460469231731687303715884105724       0x80000000000000000000000000000004            02000000000000000000000000000000000000000004 
-0b10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100
--170141183460469231731687303715884105723
--170141183460469231731687303715884105723       0x80000000000000000000000000000005            02000000000000000000000000000000000000000005 
-0b10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000101
--170141183460469231731687303715884105722
--170141183460469231731687303715884105722       0x80000000000000000000000000000006            02000000000000000000000000000000000000000006 
-0b10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000110
--170141183460469231731687303715884105721
--170141183460469231731687303715884105721       0x80000000000000000000000000000007            02000000000000000000000000000000000000000007 
-0b10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000111
--170141183460469231731687303715884105720
--170141183460469231731687303715884105720       0x80000000000000000000000000000008            02000000000000000000000000000000000000000010 
-0b10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000
--170141183460469231731687303715884105719
--170141183460469231731687303715884105719       0x80000000000000000000000000000009            02000000000000000000000000000000000000000011 
-0b10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001001
--170141183460469231731687303715884105718
--170141183460469231731687303715884105718       0x8000000000000000000000000000000a            02000000000000000000000000000000000000000012 
-0b10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001010
--170141183460469231731687303715884105717
--170141183460469231731687303715884105717       0x8000000000000000000000000000000b            02000000000000000000000000000000000000000013 
-0b10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001011
--170141183460469231731687303715884105716
--170141183460469231731687303715884105716       0x8000000000000000000000000000000c            02000000000000000000000000000000000000000014 
-0b10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001100
--170141183460469231731687303715884105715
--170141183460469231731687303715884105715       0x8000000000000000000000000000000d            02000000000000000000000000000000000000000015 
-0b10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001101
-
-170141183460469231731687303715884105722
-170141183460469231731687303715884105723
-170141183460469231731687303715884105724
-170141183460469231731687303715884105725
-170141183460469231731687303715884105726
-170141183460469231731687303715884105727
-170141183460469231731687303715884105728
-170141183460469231731687303715884105729
-170141183460469231731687303715884105730
-170141183460469231731687303715884105731
-170141183460469231731687303715884105732
-170141183460469231731687303715884105733
-170141183460469231731687303715884105734
-170141183460469231731687303715884105735
-170141183460469231731687303715884105736
-170141183460469231731687303715884105737
-170141183460469231731687303715884105738
-170141183460469231731687303715884105739
-170141183460469231731687303715884105740
-170141183460469231731687303715884105741
-
-340282366920938463463374607431768211450
-340282366920938463463374607431768211451
-340282366920938463463374607431768211452
-340282366920938463463374607431768211453
-340282366920938463463374607431768211454
-340282366920938463463374607431768211455
-0
-1
-2
-3
-4
-5
-6
-7
-8
-9
-10
-11
-12
-13
-0xfffffffffffffffffffe
-0xfffffffffffffffffffe
-
-binary
-0b11111111111111111111111111111111111111111111111111111111111111111111111111111110
-0b11111111111111111111111111111111
-0b1111111111111111111111111111111111111111111111111111111111111111
-0b111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
-0b11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
-0xa2345678
-0xa2345678a7654321
-0xa2345678a7654321c2345678
-0xa2345678a7654321c2345678d7554321
-
-octal
-0377777777777777777777777776
-0123456
-012345665432
-01234566543234567
-0123456654323456776543
-012345665432345677654323456
-01234566543234567765432345665432
-0123456654323456776543234566543234567
-012345665432345677654323456654323456776543
-01111111111111111111
-011111111111111111111
-0111111111111111111111
-
-decimal
-1208925819614629174706174
-42798 0123456
-1402432282 012345665432
-45954901031287 01234566543234567
-1505850196993244515 0123456654323456776543
-394749758663249135511342 0123456665432345677654323456
-12935154696204706112391834394 012345665432234567765432345665432
-423859149128410414395372834994551 01234566543234567776543234566543234567
-13889016598639747063234935497057631587 0123456654323456776543323456654323456776543
-1234567890123456789
-1234567890123456789
-170141183460469231731687303715884105727
-340282366920938463463374607431768211455
-9223372036854775808
-340282366920938463463374607431768211455
-170141183460469231731687303715884105727
-
-hexadecimal
-0xfffffffffffffffffffe
-0xffffffff
-0xffffffffffffffff
-0xffffffffffffffffffffffff
-0xffffffffffffffffffffffffffffffff
-0xa2345678
-0xa2345678b7654321
-0xa2345678b7654321c2345678
-0xa2345678b7654321c2345678d7654321
-
Index: sts/.in/manipulatorsInput.txt
===================================================================
--- tests/.in/manipulatorsInput.txt	(revision 2d019af1e5dc0df0ad2bbe9c215b4c34968890c0)
+++ 	(revision )
@@ -1,42 +1,0 @@
-abc 
-abc 
-xx
-abcxxx
-abcyyy
-aaaaaaaaxxxxxxxxaabbccbbdddwwwbbbbbbbbwwwwwwwwaaaaaaaawwwwwwww
-abc 
-xx
-abcxxx
-abcyyy
-aaaaaaaaxxxxxxxxaabbccbbdddwwwbbbbbbbbwwwwwwwwaaaaaaaawwwwwwww
-ab
-0xff 017 15-15
-0xff 017 15-15
-0xff 017 15-15
-0xff 017 15-15
-0xff 017 15-15
-0xff 017 15-15
-0xff 017 15-15
-0xff 017 15-15
-0xff 017 15-15
-0xff 017 15-15
-3.5 3.456E+2 -0x1.2p-3 0X1.23p3
-3.5 3.456E+2 -0x1.2p-3 0X1.23p3
-3.5 3.456E+2 -0x1.2p-3 0X1.23p3
-3.5 3.5 3.456E+23.456E+2 -0x1.2p-3 3.5 0X1.23p3     3.5
-3.5 3.5 3.456E+23.456E+2 -0x1.2p-3 3.5 0X1.23p3     3.5
-3.5 3.5 3.456E+23.456E+2 -0x1.2p-3 3.5 0X1.23p3     3.5
-25 -25 42798
-1402432282 1505850196993244515
-394749758663249135511342
-12935154696204706112391834394
-
-423859149128410414395372834994551
-
-
-13889016598639747063234935497057631587
-170141183460469231731687303715884105727
-340282366920938463463374607431768211455
--340282366920938463463374607431768211455
-340282366920938463463374607431768211455999
-1234567890123456789 -1234567890123456789
Index: tests/concurrent/clib.c
===================================================================
--- tests/concurrent/clib.c	(revision 2d019af1e5dc0df0ad2bbe9c215b4c34968890c0)
+++ tests/concurrent/clib.c	(revision e867b44d29a219d9ae0b5a5cbb9ef66e02f065fa)
@@ -1,6 +1,9 @@
+#include <stdio.h>
+#include <stdlib.h>
 #include <clib/cfathread.h>
 
-#include <stdio.h>
-#include <stdlib.h>
+extern "C" {
+void _exit(int status);
+}
 
 thread_local struct drand48_data buffer = { 0 };
@@ -15,5 +18,5 @@
 cfathread_t volatile blocked[blocked_size];
 
-void Worker( cfathread_t this ) {
+void * Worker( void * ) {
 	for(int i = 0; i < 1000; i++) {
 		int idx = myrand() % blocked_size;
@@ -22,5 +25,5 @@
 			cfathread_unpark( thrd );
 		} else {
-			cfathread_t thrd = __atomic_exchange_n(&blocked[idx], this, __ATOMIC_SEQ_CST);
+			cfathread_t thrd = __atomic_exchange_n(&blocked[idx], cfathread_self(), __ATOMIC_SEQ_CST);
 			cfathread_unpark( thrd );
 			cfathread_park();
@@ -28,8 +31,9 @@
 	}
 	printf("Done\n");
+	return NULL;
 }
 
 volatile bool stop;
-void Unparker( cfathread_t this ) {
+void * Unparker( void * ) {
 	while(!stop) {
 		int idx = myrand() % blocked_size;
@@ -42,4 +46,5 @@
 	}
 	printf("Done Unparker\n");
+	return NULL;
 }
 
@@ -51,17 +56,23 @@
 	}
 
-	cfathread_setproccnt( 4 );
-	cfathread_t u = cfathread_create( Unparker );
+	cfathread_cluster_t cl = cfathread_cluster_self();
+
+	cfathread_cluster_add_worker( cl, NULL, NULL, NULL );
+	cfathread_cluster_add_worker( cl, NULL, NULL, NULL );
+	cfathread_cluster_add_worker( cl, NULL, NULL, NULL );
+	cfathread_t u;
+	cfathread_create( &u, NULL, Unparker, NULL );
 	{
 		cfathread_t t[20];
 		for(int i = 0; i < 20; i++) {
-			t[i] = cfathread_create( Worker );
+			cfathread_create( &t[i], NULL, Worker, NULL );
 		}
 		for(int i = 0; i < 20; i++) {
-			cfathread_join( t[i] );
+			cfathread_join( t[i], NULL );
 		}
 	}
 	stop = true;
-	cfathread_join(u);
-	cfathread_setproccnt( 1 );
+	cfathread_join(u, NULL);
+	fflush(stdout);
+	_exit(0);
 }
Index: tests/io/.expect/manipulatorsInput.arm64.txt
===================================================================
--- tests/io/.expect/manipulatorsInput.arm64.txt	(revision e867b44d29a219d9ae0b5a5cbb9ef66e02f065fa)
+++ tests/io/.expect/manipulatorsInput.arm64.txt	(revision e867b44d29a219d9ae0b5a5cbb9ef66e02f065fa)
@@ -0,0 +1,107 @@
+1 yyyyyyyyyyyyyyyyyyyy
+2 abcxxx
+3 abcxxx
+4 aaaaaaaa
+5 aaaaaaaa
+6 aabbccbb
+7 dddwww
+8 dddwww
+9 dddwww
+10 aaaaaaaa
+11 wwwwwwww
+12 wwwwwwww
+13 wwwwwwww
+1 yyyyyyyyyyyyyyyyyyyy
+2 abcxxx
+3 abcxxx
+4 aaaaaaaa
+5 aaaaaaaa
+6 aabbccbb
+7 dddwww
+8 dddwww
+9 dddwww
+10 aaaaaaaa
+11 wwwwwwww
+12 wwwwwwww
+13 wwwwwwww
+a
+a
+-1
+15
+15
+15
+255
+15
+15
+15
+255
+15
+15
+15
+255
+15
+15
+15
+255
+15
+15
+15
+255
+15
+15
+15
+255
+15
+15
+15
+255
+15
+15
+15
+255
+15
+15
+15
+255
+15
+15
+15
+3.5
+345.6
+345.6
+345.6
+3.5
+345.6
+345.6
+345.6
+3.5
+345.6
+345.6
+345.6
+3.5+3.5i
+345.6+345.6i
+345.6+345.6i
+345.6+345.6i
+3.5+3.5i
+345.6+345.6i
+345.6+345.6i
+345.6+345.6i
+3.5+3.5i
+345.6+345.6i
+345.6+345.6i
+345.6+345.6i
+25
+-25
+42798
+1402432282
+1505850196993244515
+394749758663249135511342
+12935154696204706112391834394
+423859149128410414395372834994551
+13889016598639747063234935497057631587
+170141183460469231731687303715884105727
+-1
+1
+-1
+1234567890123456789
+-1234567890123456789
Index: tests/io/.expect/manipulatorsInput.x64.txt
===================================================================
--- tests/io/.expect/manipulatorsInput.x64.txt	(revision e867b44d29a219d9ae0b5a5cbb9ef66e02f065fa)
+++ tests/io/.expect/manipulatorsInput.x64.txt	(revision e867b44d29a219d9ae0b5a5cbb9ef66e02f065fa)
@@ -0,0 +1,107 @@
+1 yyyyyyyyyyyyyyyyyyyy
+2 abcxxx
+3 abcxxx
+4 aaaaaaaa
+5 aaaaaaaa
+6 aabbccbb
+7 dddwww
+8 dddwww
+9 dddwww
+10 aaaaaaaa
+11 wwwwwwww
+12 wwwwwwww
+13 wwwwwwww
+1 yyyyyyyyyyyyyyyyyyyy
+2 abcxxx
+3 abcxxx
+4 aaaaaaaa
+5 aaaaaaaa
+6 aabbccbb
+7 dddwww
+8 dddwww
+9 dddwww
+10 aaaaaaaa
+11 wwwwwwww
+12 wwwwwwww
+13 wwwwwwww
+a
+a
+-1
+15
+15
+15
+255
+15
+15
+15
+255
+15
+15
+15
+255
+15
+15
+15
+255
+15
+15
+15
+255
+15
+15
+15
+255
+15
+15
+15
+255
+15
+15
+15
+255
+15
+15
+15
+255
+15
+15
+15
+3.5
+345.6
+345.6
+345.6
+3.5
+345.6
+345.6
+345.6
+3.5
+345.6
+345.6
+345.6
+3.5+3.5i
+345.6+345.6i
+345.6+345.6i
+345.6+345.6i
+3.5+3.5i
+345.6+345.6i
+345.6+345.6i
+345.6+345.6i
+3.5+3.5i
+345.6+345.6i
+345.6+345.6i
+345.6+345.6i
+25
+-25
+42798
+1402432282
+1505850196993244515
+394749758663249135511342
+12935154696204706112391834394
+423859149128410414395372834994551
+13889016598639747063234935497057631587
+170141183460469231731687303715884105727
+-1
+1
+-1
+1234567890123456789
+-1234567890123456789
Index: tests/io/.expect/manipulatorsInput.x86.txt
===================================================================
--- tests/io/.expect/manipulatorsInput.x86.txt	(revision e867b44d29a219d9ae0b5a5cbb9ef66e02f065fa)
+++ tests/io/.expect/manipulatorsInput.x86.txt	(revision e867b44d29a219d9ae0b5a5cbb9ef66e02f065fa)
@@ -0,0 +1,92 @@
+1 yyyyyyyyyyyyyyyyyyyy
+2 abcxxx
+3 abcxxx
+4 aaaaaaaa
+5 aaaaaaaa
+6 aabbccbb
+7 dddwww
+8 dddwww
+9 dddwww
+10 aaaaaaaa
+11 wwwwwwww
+12 wwwwwwww
+13 wwwwwwww
+1 yyyyyyyyyyyyyyyyyyyy
+2 abcxxx
+3 abcxxx
+4 aaaaaaaa
+5 aaaaaaaa
+6 aabbccbb
+7 dddwww
+8 dddwww
+9 dddwww
+10 aaaaaaaa
+11 wwwwwwww
+12 wwwwwwww
+13 wwwwwwww
+a
+a
+-1
+15
+15
+15
+255
+15
+15
+15
+255
+15
+15
+15
+255
+15
+15
+15
+255
+15
+15
+15
+255
+15
+15
+15
+255
+15
+15
+15
+255
+15
+15
+15
+255
+15
+15
+15
+255
+15
+15
+15
+3.5
+345.6
+345.6
+345.6
+3.5
+345.6
+345.6
+345.6
+3.5
+345.6
+345.6
+345.6
+3.5+3.5i
+345.6+345.6i
+345.6+345.6i
+345.6+345.6i
+3.5+3.5i
+345.6+345.6i
+345.6+345.6i
+345.6+345.6i
+3.5+3.5i
+345.6+345.6i
+345.6+345.6i
+345.6+345.6i
Index: tests/io/.expect/manipulatorsOutput1.arm64.txt
===================================================================
--- tests/io/.expect/manipulatorsOutput1.arm64.txt	(revision e867b44d29a219d9ae0b5a5cbb9ef66e02f065fa)
+++ tests/io/.expect/manipulatorsOutput1.arm64.txt	(revision e867b44d29a219d9ae0b5a5cbb9ef66e02f065fa)
@@ -0,0 +1,50 @@
+signed char
+-12 -12   -12 -12   364 0364 f4 0xf4     0xf4 0x00000000f4    0X0F4 -012     -0000012
+-12 -12   -12 -12   364 0364 f4 0xf4     0xf4 0x00000000f4    0X0F4 -012     -0000012
+unsigned char
+12 12    12 12    14 014 c 0xc      0xc 0x000000000c    0X00C 012      00000012
+12 12    12 12    14 014 c 0xc      0xc 0x000000000c    0X00C 012      00000012
+signed short int
+-12 -12   -12 -12   177764 0177764 fff4 0xfff4   0xfff4 0x000000fff4   0XFFF4 -012     -0000012
+-12 -12   -12 -12   177764 0177764 fff4 0xfff4   0xfff4 0x000000fff4   0XFFF4 -012     -0000012
+unsigned short int
+12 12    12 12    14 014 c 0xc      0xc 0x000000000c    0X00C 012      00000012
+12 12    12 12    14 014 c 0xc      0xc 0x000000000c    0X00C 012      00000012
+signed int
+-12 -12   -12 -12   37777777764 037777777764 fffffff4 0xfffffff4 0xfffffff4 0x00fffffff4 0XFFFFFFF4 -012     -0000012
+-12 -12   -12 -12   37777777764 037777777764 fffffff4 0xfffffff4 0xfffffff4 0x00fffffff4 0XFFFFFFF4 -012     -0000012
+unsigned int
+12 12    12 12    14 014 c 0xc      0xc 0x000000000c    0X00C 012      00000012
+12 12    12 12    14 014 c 0xc      0xc 0x000000000c    0X00C 012      00000012
+signed long long int
+-12 -12   -12 -12   1777777777777777777764 01777777777777777777764 fffffffffffffff4 0xfffffffffffffff4 0xfffffffffffffff4 0xfffffffffffffff4 0XFFFFFFFFFFFFFFF4 -012     -0000012
+-12 -12   -12 -12   1777777777777777777764 01777777777777777777764 fffffffffffffff4 0xfffffffffffffff4 0xfffffffffffffff4 0xfffffffffffffff4 0XFFFFFFFFFFFFFFF4 -012     -0000012
+unsigned long long int
+12 12    12 12    14 014 c 0xc      0xc 0x000000000c    0X00C 012      00000012
+12 12    12 12    14 014 c 0xc      0xc 0x000000000c    0X00C 012      00000012
+
+binary integral
+0b0 0b1101 0B1101 1101 0b1101     0b1101 0b1101   0b001101 0b0000001101 0b001101
+
+float
+0         3  3.00000 3.537    3.537        4       4.      3.5      3.5 3        3.5      3.5      +3.5     +3.5     000003.5 3.54E+00 0x1.c5p+1 0X1.C5P+1 3.54e+00
+0. 3.000000 3.000000 3.537 3.537000        4        4      3.5      3.5 3.       3.5      3.5      +3.5     +3.5     000003.5 3.54E+00 0x1.c5p+1 0X1.C5P+1 3.54e+00
+double
+0  3.000000 3.537 3.537000       4.        4     3.54 3.54     +3.54    00003.54 3.54E+00 0x1.c5p+1 0X1.C5P+1 3.54e+00
+0. 3.000000 3.537 3.537000        4       4.     3.54 3.54     +3.54    00003.54 3.54E+00 0x1.c5p+1 0X1.C5P+1 3.54e+00
+long double
+0  3.000000 3.537 3.537000       4.        4     3.54 3.54     +3.54    00003.54 3.54E+00 0x1.c5p+1 0X1.C5P+1 3.54e+00
+0. 3.000000 3.53699999999999992184029906638898 3.537000        4       4.     3.54 3.54     +3.54    00003.54 3.54E+00 0x1.c5p+1 0X1.C5P+1 3.54e+00
+
+char
+a  a     a a     141 0141 61 0x61     0x61     0X61 a               a
+a  a     a a     141 0141 61 0x61     0x61     0X61 a               a
+
+string
+abcd     abcd   abcd abcd    
+abcd     abcd   abcd abcd    
+
+binary string
+0b110000 0b1100001 0b1100010 0b1100011 0b1100100 0141 0142 0143 0144 0x61 0x62 0x63 0x64
+110000 1100001 1100010 1100011 1100100 141 142 143 144 61 62 63 64
+  110000  1100001  1100010  1100011  1100100  141  142  143  144  61  62  63  64
Index: tests/io/.expect/manipulatorsOutput1.x64.txt
===================================================================
--- tests/io/.expect/manipulatorsOutput1.x64.txt	(revision e867b44d29a219d9ae0b5a5cbb9ef66e02f065fa)
+++ tests/io/.expect/manipulatorsOutput1.x64.txt	(revision e867b44d29a219d9ae0b5a5cbb9ef66e02f065fa)
@@ -0,0 +1,50 @@
+signed char
+-12 -12   -12 -12   364 0364 f4 0xf4     0xf4 0x00000000f4    0X0F4 -012     -0000012
+-12 -12   -12 -12   364 0364 f4 0xf4     0xf4 0x00000000f4    0X0F4 -012     -0000012
+unsigned char
+12 12    12 12    14 014 c 0xc      0xc 0x000000000c    0X00C 012      00000012
+12 12    12 12    14 014 c 0xc      0xc 0x000000000c    0X00C 012      00000012
+signed short int
+-12 -12   -12 -12   177764 0177764 fff4 0xfff4   0xfff4 0x000000fff4   0XFFF4 -012     -0000012
+-12 -12   -12 -12   177764 0177764 fff4 0xfff4   0xfff4 0x000000fff4   0XFFF4 -012     -0000012
+unsigned short int
+12 12    12 12    14 014 c 0xc      0xc 0x000000000c    0X00C 012      00000012
+12 12    12 12    14 014 c 0xc      0xc 0x000000000c    0X00C 012      00000012
+signed int
+-12 -12   -12 -12   37777777764 037777777764 fffffff4 0xfffffff4 0xfffffff4 0x00fffffff4 0XFFFFFFF4 -012     -0000012
+-12 -12   -12 -12   37777777764 037777777764 fffffff4 0xfffffff4 0xfffffff4 0x00fffffff4 0XFFFFFFF4 -012     -0000012
+unsigned int
+12 12    12 12    14 014 c 0xc      0xc 0x000000000c    0X00C 012      00000012
+12 12    12 12    14 014 c 0xc      0xc 0x000000000c    0X00C 012      00000012
+signed long long int
+-12 -12   -12 -12   1777777777777777777764 01777777777777777777764 fffffffffffffff4 0xfffffffffffffff4 0xfffffffffffffff4 0xfffffffffffffff4 0XFFFFFFFFFFFFFFF4 -012     -0000012
+-12 -12   -12 -12   1777777777777777777764 01777777777777777777764 fffffffffffffff4 0xfffffffffffffff4 0xfffffffffffffff4 0xfffffffffffffff4 0XFFFFFFFFFFFFFFF4 -012     -0000012
+unsigned long long int
+12 12    12 12    14 014 c 0xc      0xc 0x000000000c    0X00C 012      00000012
+12 12    12 12    14 014 c 0xc      0xc 0x000000000c    0X00C 012      00000012
+
+binary integral
+0b0 0b1101 0B1101 1101 0b1101     0b1101 0b1101   0b001101 0b0000001101 0b001101
+
+float
+0         3  3.00000 3.537    3.537        4       4.      3.5      3.5 3        3.5      3.5      +3.5     +3.5     000003.5 3.54E+00 0x1.c5p+1 0X1.C5P+1 3.54e+00
+0. 3.000000 3.000000 3.537 3.537000        4        4      3.5      3.5 3.       3.5      3.5      +3.5     +3.5     000003.5 3.54E+00 0x1.c5p+1 0X1.C5P+1 3.54e+00
+double
+0  3.000000 3.537 3.537000       4.        4     3.54 3.54     +3.54    00003.54 3.54E+00 0x1.c5p+1 0X1.C5P+1 3.54e+00
+0. 3.000000 3.537 3.537000        4       4.     3.54 3.54     +3.54    00003.54 3.54E+00 0x1.c5p+1 0X1.C5P+1 3.54e+00
+long double
+0  3.000000 3.537 3.537000       4.        4     3.54 3.54     +3.54    00003.54 3.54E+00 0xe.26p-2 0XE.26P-2 3.54e+00
+0. 3.000000 3.53699999999999992 3.537000        4       4.     3.54 3.54     +3.54    00003.54 3.54E+00 0xe.26p-2 0XE.26P-2 3.54e+00
+
+char
+a  a     a a     141 0141 61 0x61     0x61     0X61 a               a
+a  a     a a     141 0141 61 0x61     0x61     0X61 a               a
+
+string
+abcd     abcd   abcd abcd    
+abcd     abcd   abcd abcd    
+
+binary string
+0b110000 0b1100001 0b1100010 0b1100011 0b1100100 0141 0142 0143 0144 0x61 0x62 0x63 0x64
+110000 1100001 1100010 1100011 1100100 141 142 143 144 61 62 63 64
+  110000  1100001  1100010  1100011  1100100  141  142  143  144  61  62  63  64
Index: tests/io/.expect/manipulatorsOutput1.x86.txt
===================================================================
--- tests/io/.expect/manipulatorsOutput1.x86.txt	(revision e867b44d29a219d9ae0b5a5cbb9ef66e02f065fa)
+++ tests/io/.expect/manipulatorsOutput1.x86.txt	(revision e867b44d29a219d9ae0b5a5cbb9ef66e02f065fa)
@@ -0,0 +1,50 @@
+signed char
+-12 -12   -12 -12   364 0364 f4 0xf4     0xf4 0x00000000f4    0X0F4 -012     -0000012
+-12 -12   -12 -12   364 0364 f4 0xf4     0xf4 0x00000000f4    0X0F4 -012     -0000012
+unsigned char
+12 12    12 12    14 014 c 0xc      0xc 0x000000000c    0X00C 012      00000012
+12 12    12 12    14 014 c 0xc      0xc 0x000000000c    0X00C 012      00000012
+signed short int
+-12 -12   -12 -12   177764 0177764 fff4 0xfff4   0xfff4 0x000000fff4   0XFFF4 -012     -0000012
+-12 -12   -12 -12   177764 0177764 fff4 0xfff4   0xfff4 0x000000fff4   0XFFF4 -012     -0000012
+unsigned short int
+12 12    12 12    14 014 c 0xc      0xc 0x000000000c    0X00C 012      00000012
+12 12    12 12    14 014 c 0xc      0xc 0x000000000c    0X00C 012      00000012
+signed int
+-12 -12   -12 -12   37777777764 037777777764 fffffff4 0xfffffff4 0xfffffff4 0x00fffffff4 0XFFFFFFF4 -012     -0000012
+-12 -12   -12 -12   37777777764 037777777764 fffffff4 0xfffffff4 0xfffffff4 0x00fffffff4 0XFFFFFFF4 -012     -0000012
+unsigned int
+12 12    12 12    14 014 c 0xc      0xc 0x000000000c    0X00C 012      00000012
+12 12    12 12    14 014 c 0xc      0xc 0x000000000c    0X00C 012      00000012
+signed long long int
+-12 -12   -12 -12   1777777777777777777764 01777777777777777777764 fffffffffffffff4 0xfffffffffffffff4 0xfffffffffffffff4 0xfffffffffffffff4 0XFFFFFFFFFFFFFFF4 -012     -0000012
+-12 -12   -12 -12   1777777777777777777764 01777777777777777777764 fffffffffffffff4 0xfffffffffffffff4 0xfffffffffffffff4 0xfffffffffffffff4 0XFFFFFFFFFFFFFFF4 -012     -0000012
+unsigned long long int
+12 12    12 12    14 014 c 0xc      0xc 0x000000000c    0X00C 012      00000012
+12 12    12 12    14 014 c 0xc      0xc 0x000000000c    0X00C 012      00000012
+
+binary integral
+0b0 0b1101 0B1101 1101 0b1101     0b1101 0b1101   0b001101 0b0000001101 0b001101
+
+float
+0         3  3.00000 3.537    3.537        4       4.      3.5      3.5 3        3.5      3.5      +3.5     +3.5     000003.5 3.54E+00 0x1.c5p+1 0X1.C5P+1 3.54e+00
+0. 3.000000 3.000000 3.537 3.537000        4        4      3.5      3.5 3.       3.5      3.5      +3.5     +3.5     000003.5 3.54E+00 0x1.c5p+1 0X1.C5P+1 3.54e+00
+double
+0  3.000000 3.537 3.537000       4.        4     3.54 3.54     +3.54    00003.54 3.54E+00 0x1.c5p+1 0X1.C5P+1 3.54e+00
+0. 3.000000 3.537 3.537000        4       4.     3.54 3.54     +3.54    00003.54 3.54E+00 0x1.c5p+1 0X1.C5P+1 3.54e+00
+long double
+0  3.000000 3.537 3.537000       4.        4     3.54 3.54     +3.54    00003.54 3.54E+00 0xe.26p-2 0XE.26P-2 3.54e+00
+0. 3.000000 3.53699999999999992 3.537000        4       4.     3.54 3.54     +3.54    00003.54 3.54E+00 0xe.26p-2 0XE.26P-2 3.54e+00
+
+char
+a  a     a a     141 0141 61 0x61     0x61     0X61 a               a
+a  a     a a     141 0141 61 0x61     0x61     0X61 a               a
+
+string
+abcd     abcd   abcd abcd    
+abcd     abcd   abcd abcd    
+
+binary string
+0b110000 0b1100001 0b1100010 0b1100011 0b1100100 0141 0142 0143 0144 0x61 0x62 0x63 0x64
+110000 1100001 1100010 1100011 1100100 141 142 143 144 61 62 63 64
+  110000  1100001  1100010  1100011  1100100  141  142  143  144  61  62  63  64
Index: tests/io/.expect/manipulatorsOutput2.arm64.txt
===================================================================
--- tests/io/.expect/manipulatorsOutput2.arm64.txt	(revision e867b44d29a219d9ae0b5a5cbb9ef66e02f065fa)
+++ tests/io/.expect/manipulatorsOutput2.arm64.txt	(revision e867b44d29a219d9ae0b5a5cbb9ef66e02f065fa)
@@ -0,0 +1,32 @@
+
+0b0 0b11011 0b11011 0b11011 0b11011
+0b11100101 0b1111111111100101 0b11111111111111111111111111100101 0b1111111111111111111111111111111111111111111111111111111111100101
+0 033 033 033 033
+0345 0177745 037777777745 01777777777777777777745
+0 0x1b 0x1b 0x1b 0x1b
+0xe5 0xffe5 0xffffffe5 0xffffffffffffffe5
+0x0p+0. 0x1.b8p+4 0x1.b8p+4 0x1.b8p+4
+-0x1.b8p+4 -0x1.b8p+4 -0x1.b8p+4
+0.000000e+00 2.750000e+01 -2.750000e+01
+0B11011 0X1B 2.75E-09 0X1.B8P+4
+11011 33 1b
+0. 0 27. 27 27.5
++27 -27 +27 -27 +27.5 -27.5
+  34  34 34
+  4.000000  4.000000 4.000000
+  ab  ab ab
+34567 34567 34567
+3456.000000 3456.000000 3456.000000
+abcde abcde abcde
+ 034     0034 0000000034
+3456     3456       3456
+     0000000034
+27.500     27.5      28. 27.50000000
+27.000 27.500     27.5      28. 27.50000000
+27   27.000000  27.500000  027  27.500    
+234.567 234.57  234.6   235.
+234567. 2.3457e+05 2.346e+05 2.35e+05
+234567. 234567. 234567. 234567.
+  abcd     abcd abcd
+  abcd abcdefgh    abc
+0027  027 0027.500
Index: tests/io/.expect/manipulatorsOutput2.x64.txt
===================================================================
--- tests/io/.expect/manipulatorsOutput2.x64.txt	(revision e867b44d29a219d9ae0b5a5cbb9ef66e02f065fa)
+++ tests/io/.expect/manipulatorsOutput2.x64.txt	(revision e867b44d29a219d9ae0b5a5cbb9ef66e02f065fa)
@@ -0,0 +1,32 @@
+
+0b0 0b11011 0b11011 0b11011 0b11011
+0b11100101 0b1111111111100101 0b11111111111111111111111111100101 0b1111111111111111111111111111111111111111111111111111111111100101
+0 033 033 033 033
+0345 0177745 037777777745 01777777777777777777745
+0 0x1b 0x1b 0x1b 0x1b
+0xe5 0xffe5 0xffffffe5 0xffffffffffffffe5
+0x0p+0. 0x1.b8p+4 0x1.b8p+4 0xd.cp+1
+-0x1.b8p+4 -0x1.b8p+4 -0xd.cp+1
+0.000000e+00 2.750000e+01 -2.750000e+01
+0B11011 0X1B 2.75E-09 0X1.B8P+4
+11011 33 1b
+0. 0 27. 27 27.5
++27 -27 +27 -27 +27.5 -27.5
+  34  34 34
+  4.000000  4.000000 4.000000
+  ab  ab ab
+34567 34567 34567
+3456.000000 3456.000000 3456.000000
+abcde abcde abcde
+ 034     0034 0000000034
+3456     3456       3456
+     0000000034
+27.500     27.5      28. 27.50000000
+27.000 27.500     27.5      28. 27.50000000
+27   27.000000  27.500000  027  27.500    
+234.567 234.57  234.6   235.
+234567. 2.3457e+05 2.346e+05 2.35e+05
+234567. 234567. 234567. 234567.
+  abcd     abcd abcd
+  abcd abcdefgh    abc
+0027  027 0027.500
Index: tests/io/.expect/manipulatorsOutput2.x86.txt
===================================================================
--- tests/io/.expect/manipulatorsOutput2.x86.txt	(revision e867b44d29a219d9ae0b5a5cbb9ef66e02f065fa)
+++ tests/io/.expect/manipulatorsOutput2.x86.txt	(revision e867b44d29a219d9ae0b5a5cbb9ef66e02f065fa)
@@ -0,0 +1,32 @@
+
+0b0 0b11011 0b11011 0b11011 0b11011
+0b11100101 0b1111111111100101 0b11111111111111111111111111100101 0b11111111111111111111111111100101
+0 033 033 033 033
+0345 0177745 037777777745 037777777745
+0 0x1b 0x1b 0x1b 0x1b
+0xe5 0xffe5 0xffffffe5 0xffffffe5
+0x0p+0. 0x1.b8p+4 0x1.b8p+4 0xd.cp+1
+-0x1.b8p+4 -0x1.b8p+4 -0xd.cp+1
+0.000000e+00 2.750000e+01 -2.750000e+01
+0B11011 0X1B 2.75E-09 0X1.B8P+4
+11011 33 1b
+0. 0 27. 27 27.5
++27 -27 +27 -27 +27.5 -27.5
+  34  34 34
+  4.000000  4.000000 4.000000
+  ab  ab ab
+34567 34567 34567
+3456.000000 3456.000000 3456.000000
+abcde abcde abcde
+ 034     0034 0000000034
+3456     3456       3456
+     0000000034
+27.500     27.5      28. 27.50000000
+27.000 27.500     27.5      28. 27.50000000
+27   27.000000  27.500000  027  27.500    
+234.567 234.57  234.6   235.
+234567. 2.3457e+05 2.346e+05 2.35e+05
+234567. 234567. 234567. 234567.
+  abcd     abcd abcd
+  abcd abcdefgh    abc
+0027  027 0027.500
Index: tests/io/.expect/manipulatorsOutput3.arm64.txt
===================================================================
--- tests/io/.expect/manipulatorsOutput3.arm64.txt	(revision e867b44d29a219d9ae0b5a5cbb9ef66e02f065fa)
+++ tests/io/.expect/manipulatorsOutput3.arm64.txt	(revision e867b44d29a219d9ae0b5a5cbb9ef66e02f065fa)
@@ -0,0 +1,437 @@
+-1208907372870555465220095
+-1208907372870555465220095
++1208907372870555465220095
+
+base 2
+0b11111111111111110000000000000000000000000000000000000000000000001111111111111111
+0B11111111111111110000000000000000000000000000000000000000000000001111111111111111
+11111111111111110000000000000000000000000000000000000000000000001111111111111111
+             0B11111111111111110000000000000000000000000000000000000000000000001111111111111111
+   0B000000000011111111111111110000000000000000000000000000000000000000000000001111111111111111
+0X0000000000FFFF000000000000FFFF
+
+0b1001011001110110101011000110010011111001100011011000100011110100000000000000000
+0B1001011001110110101011000110010011111001100011011000100011110100000000000000000
+0B1001011001110110101011000110010011111001100011011000100011110100000000000000000
+0B1001011001110110101011000110010011111001100011011000100011110100000000000000000
+0B1001011001110110101011000110010011111001100011011000100011110100000000000000000
+0B1001011001110110101011000110010011111001100011011000100011110100000000000000000
+0B1001011001110110101011000110010011111001100011011000100011110100000000000000000
+
+base 8
+0000000123
+0000000123
+0377776000000000000000177777
+377776000000000000000177777
+                                         0123
+     0000000000000000000000000000000000000123
+000000000000000000000000000000000000000000123
+                 0377776000000000000000177777
+     0000000000000377776000000000000000177777
+000000000000000000377776000000000000000177777
+0123                                         X
+0377776000000000000000177777                 X
+05000000000000000000123                      X
+0000000000000000000000000000000000000123     X
+0000000000000377776000000000000000177777     X
+0000000000000000005000000000000000000123     X
+000000000000000000000000000000000000000000123X
+000000000000000000377776000000000000000177777X
+000000000000000000000005000000000000000000123X
+0000000123X
+0000000123X
+0000000123                              X
+0000000123                              X
+0377776000000000000000177777            X
+05000000000000000000123                 X
+0000000000000000000000000000000000000123X
+0000000000000377776000000000000000177777X
+0000000000000000005000000000000000000123X
+0000000000000000000000000000000000000000001234567X
+03777777777777777777777777777777777776543211Y
+03777777777777777777777777777777777776543211Y
+
+0113166530623714330436400000
+          0113166530623714330436400000
+            0113166530623714330436400000
+  00000000000113166530623714330436400000
+          000113166530623714330436400000
+  00000000000113166530623714330436400000
+
+base 10
+355272055279601493606400
+355272055279601493606400
+355272055279601493606400
+355272055279601493606400
+355272055279601493606400
+              355272055279601493606400
+               355272055279601493606400
+                355272055279601493606400
+          000000355272055279601493606400
+  00000000000000355272055279601493606400
+0000000000000000355272055279601493606400
+0000000000000000355272055279601493606400
++000000000000000355272055279601493606400
+
+base 16
+0xffff000000000000ffff
+0XFFFF000000000000FFFF
+ffff000000000000ffff
+                       0XFFFF000000000000FFFF
+   0X00000000000000000000FFFF000000000000FFFF
+0X00000000000000000000000000000FFFF000000000000FFFF
+0XFFFF000000000000FFFF                       X
+0X00000000000000000000FFFF000000000000FFFF   X
+0X00000000000000000000000000000FFFF000000000000FFFFX
+
+0X4B3B56327CC6C47A0000
+                0X4B3B56327CC6C47A0000
+                  0X4B3B56327CC6C47A0000
+0X0000000000000000004B3B56327CC6C47A0000
+        0X00000000004B3B56327CC6C47A0000
+0X0000000000000000004B3B56327CC6C47A0000
+
+extras
+0b1001011001110110101011000110010011111001100011011000100011110100000000000000000
+0B1001011001110110101011000110010011111001100011011000100011110100000000000000000
+0113166530623714330436400000
+0x4b3b56327cc6c47a0000
+0X4B3B56327CC6C47A0000
+1001011001110110101011000110010011111001100011011000100011110100000000000000000 113166530623714330436400000 4b3b56327cc6c47a0000
++355272055279601493606400
+-355272055279601493606400
+-355272055279601493606400
+355272055279601493606400
+355272055279601493606400
+355272055279601493606400                X
++355272055279601493606400               X
++0000000000000000355272055279601493606400X
++0000000000000000000000000000000123456789X
+-1000 0xfffffffffffffffffffffffffffffc18 03777777777777777777777777777777777777776030
+0b11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111110000011000
+-999 0xfffffffffffffffffffffffffffffc19 03777777777777777777777777777777777777776031
+0b11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111110000011001
+-998 0xfffffffffffffffffffffffffffffc1a 03777777777777777777777777777777777777776032
+0b11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111110000011010
+-997 0xfffffffffffffffffffffffffffffc1b 03777777777777777777777777777777777777776033
+0b11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111110000011011
+-996 0xfffffffffffffffffffffffffffffc1c 03777777777777777777777777777777777777776034
+0b11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111110000011100
+-995 0xfffffffffffffffffffffffffffffc1d 03777777777777777777777777777777777777776035
+0b11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111110000011101
+-994 0xfffffffffffffffffffffffffffffc1e 03777777777777777777777777777777777777776036
+0b11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111110000011110
+-993 0xfffffffffffffffffffffffffffffc1f 03777777777777777777777777777777777777776037
+0b11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111110000011111
+-992 0xfffffffffffffffffffffffffffffc20 03777777777777777777777777777777777777776040
+0b11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111110000100000
+-991 0xfffffffffffffffffffffffffffffc21 03777777777777777777777777777777777777776041
+0b11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111110000100001
+
+
+-990                                                                                                                                                            
+-990
+0xfffffffffffffffffffffffffffffc22
+03777777777777777777777777777777777777776042
+0b11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111110000100010
+-990
+0xfffffffffffffffffffffffffffffc22
+03777777777777777777777777777777777777776042
+0b11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111110000100010
+-990                            
+0xfffffffffffffffffffffffffffffc22
+03777777777777777777777777777777777777776042
+0b11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111110000100010
+-990                                                                                                                                                            
+0xfffffffffffffffffffffffffffffc22                                                                                                                              
+03777777777777777777777777777777777777776042                                                                                                                    
+0b11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111110000100010                              
+-990                                                                                                                                                            
+0XFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC22                                                                                                                              
+03777777777777777777777777777777777777776042                                                                                                                    
+0B11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111110000100010                              
+22763282186957586699822X
+                   04644000000000000000013056X
+04644000000000000000013056                   X
+                   04644000000000000000013056X
+04644000000000000000013056                   X
+                   04644000000000000000013056X
+04644000000000000000013056                   X
+         000000000004644000000000000000013056X
+000000000004644000000000000000013056         X
+0000000000000000000004644000000000000000013056X
+0000000000000000000004644000000000000000013056X
+04644000000000000000013056                   X
+04644000000000000000013056                   X
+04644000000000000000013056                   X
+04644000000000000000013056                   X
+0004644000000000000000013056                 X
+03777777777777777773133777777777777777764722Y
+03777777777777777773133777777777777777764722Y
+03777777777777777773133777777777777777764722Y
+03777777777777777773133777777777777777764722Y
+03777777777777777773133777777777777777764722Y
+03777777777777777773133777777777777777764722Y
+03777777777777777773133777777777777777764722 Y
+0000003777777777777777773133777777777777777764722Y
+03777777777777777773133777777777777777764722 Y
+0123                                         X
+04644000000000000000013056                   X
+0000000000000000000000000000000000000123     X
+0000000000000004644000000000000000013056     X
+000000000000000000000000000000000000000000123X
+000000000000000000004644000000000000000013056X
+0000000123                              X
+04644000000000000000013056              X
+03777777777777777773133777777777777777764722X
+0000000000000000000000000000000000000123X
+0000000000000004644000000000000000013056X
+03777777777777777773133777777777777777764722X
+1777777777777777777777
+2777777777777777777777
+3777777777777777777777
+4777777777777777777777
+5777777777777777777777
+6777777777777777777777
+7777777777777777777777
+10777777777777777777777
+0b11111111111111110000000000000000000000000000000000000000000000001111111111111111
+0B11111111111111110000000000000000000000000000000000000000000000001111111111111111
+11111111111111110000000000000000000000000000000000000000000000001111111111111111
+             0B11111111111111110000000000000000000000000000000000000000000000001111111111111111
+   0B000000000011111111111111110000000000000000000000000000000000000000000000001111111111111111
+0B00000000000000011111111111111110000000000000000000000000000000000000000000000001111111111111111
+0b11111111111111110000000000000000000000000000000000000000000000001111111111111111
+0B11111111111111110000000000000000000000000000000000000000000000001111111111111111
+11111111111111110000000000000000000000000000000000000000000000001111111111111111
+0B11111111111111110000000000000000000000000000000000000000000000001111111111111111             
+0B000000000011111111111111110000000000000000000000000000000000000000000000001111111111111111   
+0B011111111111111110000000000000000000000000000000000000000000000001111111111111111            
+0B11111111111111110000000000000000000000000000000000000000000000001111111111111111             
+0B11111111111111110000000000000000000000000000000000000000000000001111111111111111             
+0B000000000000000000000000000000000000000000000000000000000000000000000000001111111111111111   
+0B0000000000000000000000000000000000000000000000001111111111111111  
+0B00000000000000011111111111111110000000000000000000000000000000000000000000000001111111111111111
+   0X000000000000000000000FFFF
+   0X000000000000000000000FFFF
+0X00000000000000000000000000FFFF
+0X00000000000000000000000000FFFF
+05000000000000000000123
+                      05000000000000000000123
+05000000000000000000123                      X
+0000000123                              X
+0377776000000000000000177777            X
+05000000000000000000123                 X
+0000000000000000000000000000000000000123X
+0000000000000377776000000000000000177777X
+0000000000000000005000000000000000000123X
+-10                  0xfffffffffffffffffffffffffffffff6 03777777777777777777777777777777777777777766
+0b11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111110110
+-9                   0xfffffffffffffffffffffffffffffff7 03777777777777777777777777777777777777777767
+0b11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111110111
+-8                   0xfffffffffffffffffffffffffffffff8 03777777777777777777777777777777777777777770
+0b11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111000
+-7                   0xfffffffffffffffffffffffffffffff9 03777777777777777777777777777777777777777771
+0b11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111001
+-6                   0xfffffffffffffffffffffffffffffffa 03777777777777777777777777777777777777777772
+0b11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111010
+-5                   0xfffffffffffffffffffffffffffffffb 03777777777777777777777777777777777777777773
+0b11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111011
+-4                   0xfffffffffffffffffffffffffffffffc 03777777777777777777777777777777777777777774
+0b11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111100
+-3                   0xfffffffffffffffffffffffffffffffd 03777777777777777777777777777777777777777775
+0b11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111101
+-2                   0xfffffffffffffffffffffffffffffffe 03777777777777777777777777777777777777777776
+0b11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111110
+-1                   0xffffffffffffffffffffffffffffffff 03777777777777777777777777777777777777777777
+0b11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
++0                   0                    0                   
+0b0                 
++1                   0x1                  01                  
+0b1                 
++2                   0x2                  02                  
+0b10                
++3                   0x3                  03                  
+0b11                
++4                   0x4                  04                  
+0b100               
++5                   0x5                  05                  
+0b101               
++6                   0x6                  06                  
+0b110               
++7                   0x7                  07                  
+0b111               
++8                   0x8                  010                 
+0b1000              
++9                   0x9                  011                 
+0b1001              
++10                  0xa                  012                 
+0b1010              
++11                  0xb                  013                 
+0b1011              
++12                  0xc                  014                 
+0b1100              
++13                  0xd                  015                 
+0b1101              
++14                  0xe                  016                 
+0b1110              
+
+170141183460469231731687303715884105722
++170141183460469231731687303715884105722       0x7ffffffffffffffffffffffffffffffa            01777777777777777777777777777777777777777772 
+0b1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111010
+170141183460469231731687303715884105723
++170141183460469231731687303715884105723       0x7ffffffffffffffffffffffffffffffb            01777777777777777777777777777777777777777773 
+0b1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111011
+170141183460469231731687303715884105724
++170141183460469231731687303715884105724       0x7ffffffffffffffffffffffffffffffc            01777777777777777777777777777777777777777774 
+0b1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111100
+170141183460469231731687303715884105725
++170141183460469231731687303715884105725       0x7ffffffffffffffffffffffffffffffd            01777777777777777777777777777777777777777775 
+0b1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111101
+170141183460469231731687303715884105726
++170141183460469231731687303715884105726       0x7ffffffffffffffffffffffffffffffe            01777777777777777777777777777777777777777776 
+0b1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111110
+170141183460469231731687303715884105727
++170141183460469231731687303715884105727       0x7fffffffffffffffffffffffffffffff            01777777777777777777777777777777777777777777 
+0b1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
+-170141183460469231731687303715884105728
+-170141183460469231731687303715884105728       0x80000000000000000000000000000000            02000000000000000000000000000000000000000000 
+0b10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+-170141183460469231731687303715884105727
+-170141183460469231731687303715884105727       0x80000000000000000000000000000001            02000000000000000000000000000000000000000001 
+0b10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001
+-170141183460469231731687303715884105726
+-170141183460469231731687303715884105726       0x80000000000000000000000000000002            02000000000000000000000000000000000000000002 
+0b10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010
+-170141183460469231731687303715884105725
+-170141183460469231731687303715884105725       0x80000000000000000000000000000003            02000000000000000000000000000000000000000003 
+0b10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000011
+-170141183460469231731687303715884105724
+-170141183460469231731687303715884105724       0x80000000000000000000000000000004            02000000000000000000000000000000000000000004 
+0b10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100
+-170141183460469231731687303715884105723
+-170141183460469231731687303715884105723       0x80000000000000000000000000000005            02000000000000000000000000000000000000000005 
+0b10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000101
+-170141183460469231731687303715884105722
+-170141183460469231731687303715884105722       0x80000000000000000000000000000006            02000000000000000000000000000000000000000006 
+0b10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000110
+-170141183460469231731687303715884105721
+-170141183460469231731687303715884105721       0x80000000000000000000000000000007            02000000000000000000000000000000000000000007 
+0b10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000111
+-170141183460469231731687303715884105720
+-170141183460469231731687303715884105720       0x80000000000000000000000000000008            02000000000000000000000000000000000000000010 
+0b10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000
+-170141183460469231731687303715884105719
+-170141183460469231731687303715884105719       0x80000000000000000000000000000009            02000000000000000000000000000000000000000011 
+0b10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001001
+-170141183460469231731687303715884105718
+-170141183460469231731687303715884105718       0x8000000000000000000000000000000a            02000000000000000000000000000000000000000012 
+0b10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001010
+-170141183460469231731687303715884105717
+-170141183460469231731687303715884105717       0x8000000000000000000000000000000b            02000000000000000000000000000000000000000013 
+0b10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001011
+-170141183460469231731687303715884105716
+-170141183460469231731687303715884105716       0x8000000000000000000000000000000c            02000000000000000000000000000000000000000014 
+0b10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001100
+-170141183460469231731687303715884105715
+-170141183460469231731687303715884105715       0x8000000000000000000000000000000d            02000000000000000000000000000000000000000015 
+0b10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001101
+
+170141183460469231731687303715884105722
+170141183460469231731687303715884105723
+170141183460469231731687303715884105724
+170141183460469231731687303715884105725
+170141183460469231731687303715884105726
+170141183460469231731687303715884105727
+170141183460469231731687303715884105728
+170141183460469231731687303715884105729
+170141183460469231731687303715884105730
+170141183460469231731687303715884105731
+170141183460469231731687303715884105732
+170141183460469231731687303715884105733
+170141183460469231731687303715884105734
+170141183460469231731687303715884105735
+170141183460469231731687303715884105736
+170141183460469231731687303715884105737
+170141183460469231731687303715884105738
+170141183460469231731687303715884105739
+170141183460469231731687303715884105740
+170141183460469231731687303715884105741
+
+340282366920938463463374607431768211450
+340282366920938463463374607431768211451
+340282366920938463463374607431768211452
+340282366920938463463374607431768211453
+340282366920938463463374607431768211454
+340282366920938463463374607431768211455
+0
+1
+2
+3
+4
+5
+6
+7
+8
+9
+10
+11
+12
+13
+0xfffffffffffffffffffe
+0xfffffffffffffffffffe
+
+binary
+0b11111111111111111111111111111111111111111111111111111111111111111111111111111110
+0b11111111111111111111111111111111
+0b1111111111111111111111111111111111111111111111111111111111111111
+0b111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
+0b11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
+0xa2345678
+0xa2345678a7654321
+0xa2345678a7654321c2345678
+0xa2345678a7654321c2345678d7554321
+
+octal
+0377777777777777777777777776
+0123456
+012345665432
+01234566543234567
+0123456654323456776543
+012345665432345677654323456
+01234566543234567765432345665432
+0123456654323456776543234566543234567
+012345665432345677654323456654323456776543
+01111111111111111111
+011111111111111111111
+0111111111111111111111
+
+decimal
+1208925819614629174706174
+42798 0123456
+1402432282 012345665432
+45954901031287 01234566543234567
+1505850196993244515 0123456654323456776543
+394749758663249135511342 0123456665432345677654323456
+12935154696204706112391834394 012345665432234567765432345665432
+423859149128410414395372834994551 01234566543234567776543234566543234567
+13889016598639747063234935497057631587 0123456654323456776543323456654323456776543
+1234567890123456789
+1234567890123456789
+170141183460469231731687303715884105727
+340282366920938463463374607431768211455
+9223372036854775808
+340282366920938463463374607431768211455
+170141183460469231731687303715884105727
+
+hexadecimal
+0xfffffffffffffffffffe
+0xffffffff
+0xffffffffffffffff
+0xffffffffffffffffffffffff
+0xffffffffffffffffffffffffffffffff
+0xa2345678
+0xa2345678b7654321
+0xa2345678b7654321c2345678
+0xa2345678b7654321c2345678d7654321
+
Index: tests/io/.expect/manipulatorsOutput3.x64.txt
===================================================================
--- tests/io/.expect/manipulatorsOutput3.x64.txt	(revision e867b44d29a219d9ae0b5a5cbb9ef66e02f065fa)
+++ tests/io/.expect/manipulatorsOutput3.x64.txt	(revision e867b44d29a219d9ae0b5a5cbb9ef66e02f065fa)
@@ -0,0 +1,437 @@
+-1208907372870555465220095
+-1208907372870555465220095
++1208907372870555465220095
+
+base 2
+0b11111111111111110000000000000000000000000000000000000000000000001111111111111111
+0B11111111111111110000000000000000000000000000000000000000000000001111111111111111
+11111111111111110000000000000000000000000000000000000000000000001111111111111111
+             0B11111111111111110000000000000000000000000000000000000000000000001111111111111111
+   0B000000000011111111111111110000000000000000000000000000000000000000000000001111111111111111
+0X0000000000FFFF000000000000FFFF
+
+0b1001011001110110101011000110010011111001100011011000100011110100000000000000000
+0B1001011001110110101011000110010011111001100011011000100011110100000000000000000
+0B1001011001110110101011000110010011111001100011011000100011110100000000000000000
+0B1001011001110110101011000110010011111001100011011000100011110100000000000000000
+0B1001011001110110101011000110010011111001100011011000100011110100000000000000000
+0B1001011001110110101011000110010011111001100011011000100011110100000000000000000
+0B1001011001110110101011000110010011111001100011011000100011110100000000000000000
+
+base 8
+0000000123
+0000000123
+0377776000000000000000177777
+377776000000000000000177777
+                                         0123
+     0000000000000000000000000000000000000123
+000000000000000000000000000000000000000000123
+                 0377776000000000000000177777
+     0000000000000377776000000000000000177777
+000000000000000000377776000000000000000177777
+0123                                         X
+0377776000000000000000177777                 X
+05000000000000000000123                      X
+0000000000000000000000000000000000000123     X
+0000000000000377776000000000000000177777     X
+0000000000000000005000000000000000000123     X
+000000000000000000000000000000000000000000123X
+000000000000000000377776000000000000000177777X
+000000000000000000000005000000000000000000123X
+0000000123X
+0000000123X
+0000000123                              X
+0000000123                              X
+0377776000000000000000177777            X
+05000000000000000000123                 X
+0000000000000000000000000000000000000123X
+0000000000000377776000000000000000177777X
+0000000000000000005000000000000000000123X
+0000000000000000000000000000000000000000001234567X
+03777777777777777777777777777777777776543211Y
+03777777777777777777777777777777777776543211Y
+
+0113166530623714330436400000
+          0113166530623714330436400000
+            0113166530623714330436400000
+  00000000000113166530623714330436400000
+          000113166530623714330436400000
+  00000000000113166530623714330436400000
+
+base 10
+355272055279601493606400
+355272055279601493606400
+355272055279601493606400
+355272055279601493606400
+355272055279601493606400
+              355272055279601493606400
+               355272055279601493606400
+                355272055279601493606400
+          000000355272055279601493606400
+  00000000000000355272055279601493606400
+0000000000000000355272055279601493606400
+0000000000000000355272055279601493606400
++000000000000000355272055279601493606400
+
+base 16
+0xffff000000000000ffff
+0XFFFF000000000000FFFF
+ffff000000000000ffff
+                       0XFFFF000000000000FFFF
+   0X00000000000000000000FFFF000000000000FFFF
+0X00000000000000000000000000000FFFF000000000000FFFF
+0XFFFF000000000000FFFF                       X
+0X00000000000000000000FFFF000000000000FFFF   X
+0X00000000000000000000000000000FFFF000000000000FFFFX
+
+0X4B3B56327CC6C47A0000
+                0X4B3B56327CC6C47A0000
+                  0X4B3B56327CC6C47A0000
+0X0000000000000000004B3B56327CC6C47A0000
+        0X00000000004B3B56327CC6C47A0000
+0X0000000000000000004B3B56327CC6C47A0000
+
+extras
+0b1001011001110110101011000110010011111001100011011000100011110100000000000000000
+0B1001011001110110101011000110010011111001100011011000100011110100000000000000000
+0113166530623714330436400000
+0x4b3b56327cc6c47a0000
+0X4B3B56327CC6C47A0000
+1001011001110110101011000110010011111001100011011000100011110100000000000000000 113166530623714330436400000 4b3b56327cc6c47a0000
++355272055279601493606400
+-355272055279601493606400
+-355272055279601493606400
+355272055279601493606400
+355272055279601493606400
+355272055279601493606400                X
++355272055279601493606400               X
++0000000000000000355272055279601493606400X
++0000000000000000000000000000000123456789X
+-1000 0xfffffffffffffffffffffffffffffc18 03777777777777777777777777777777777777776030
+0b11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111110000011000
+-999 0xfffffffffffffffffffffffffffffc19 03777777777777777777777777777777777777776031
+0b11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111110000011001
+-998 0xfffffffffffffffffffffffffffffc1a 03777777777777777777777777777777777777776032
+0b11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111110000011010
+-997 0xfffffffffffffffffffffffffffffc1b 03777777777777777777777777777777777777776033
+0b11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111110000011011
+-996 0xfffffffffffffffffffffffffffffc1c 03777777777777777777777777777777777777776034
+0b11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111110000011100
+-995 0xfffffffffffffffffffffffffffffc1d 03777777777777777777777777777777777777776035
+0b11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111110000011101
+-994 0xfffffffffffffffffffffffffffffc1e 03777777777777777777777777777777777777776036
+0b11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111110000011110
+-993 0xfffffffffffffffffffffffffffffc1f 03777777777777777777777777777777777777776037
+0b11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111110000011111
+-992 0xfffffffffffffffffffffffffffffc20 03777777777777777777777777777777777777776040
+0b11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111110000100000
+-991 0xfffffffffffffffffffffffffffffc21 03777777777777777777777777777777777777776041
+0b11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111110000100001
+
+
+-990                                                                                                                                                            
+-990
+0xfffffffffffffffffffffffffffffc22
+03777777777777777777777777777777777777776042
+0b11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111110000100010
+-990
+0xfffffffffffffffffffffffffffffc22
+03777777777777777777777777777777777777776042
+0b11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111110000100010
+-990                            
+0xfffffffffffffffffffffffffffffc22
+03777777777777777777777777777777777777776042
+0b11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111110000100010
+-990                                                                                                                                                            
+0xfffffffffffffffffffffffffffffc22                                                                                                                              
+03777777777777777777777777777777777777776042                                                                                                                    
+0b11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111110000100010                              
+-990                                                                                                                                                            
+0XFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC22                                                                                                                              
+03777777777777777777777777777777777777776042                                                                                                                    
+0B11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111110000100010                              
+22763282186957586699822X
+                   04644000000000000000013056X
+04644000000000000000013056                   X
+                   04644000000000000000013056X
+04644000000000000000013056                   X
+                   04644000000000000000013056X
+04644000000000000000013056                   X
+         000000000004644000000000000000013056X
+000000000004644000000000000000013056         X
+0000000000000000000004644000000000000000013056X
+0000000000000000000004644000000000000000013056X
+04644000000000000000013056                   X
+04644000000000000000013056                   X
+04644000000000000000013056                   X
+04644000000000000000013056                   X
+0004644000000000000000013056                 X
+03777777777777777773133777777777777777764722Y
+03777777777777777773133777777777777777764722Y
+03777777777777777773133777777777777777764722Y
+03777777777777777773133777777777777777764722Y
+03777777777777777773133777777777777777764722Y
+03777777777777777773133777777777777777764722Y
+03777777777777777773133777777777777777764722 Y
+0000003777777777777777773133777777777777777764722Y
+03777777777777777773133777777777777777764722 Y
+0123                                         X
+04644000000000000000013056                   X
+0000000000000000000000000000000000000123     X
+0000000000000004644000000000000000013056     X
+000000000000000000000000000000000000000000123X
+000000000000000000004644000000000000000013056X
+0000000123                              X
+04644000000000000000013056              X
+03777777777777777773133777777777777777764722X
+0000000000000000000000000000000000000123X
+0000000000000004644000000000000000013056X
+03777777777777777773133777777777777777764722X
+1777777777777777777777
+2777777777777777777777
+3777777777777777777777
+4777777777777777777777
+5777777777777777777777
+6777777777777777777777
+7777777777777777777777
+10777777777777777777777
+0b11111111111111110000000000000000000000000000000000000000000000001111111111111111
+0B11111111111111110000000000000000000000000000000000000000000000001111111111111111
+11111111111111110000000000000000000000000000000000000000000000001111111111111111
+             0B11111111111111110000000000000000000000000000000000000000000000001111111111111111
+   0B000000000011111111111111110000000000000000000000000000000000000000000000001111111111111111
+0B00000000000000011111111111111110000000000000000000000000000000000000000000000001111111111111111
+0b11111111111111110000000000000000000000000000000000000000000000001111111111111111
+0B11111111111111110000000000000000000000000000000000000000000000001111111111111111
+11111111111111110000000000000000000000000000000000000000000000001111111111111111
+0B11111111111111110000000000000000000000000000000000000000000000001111111111111111             
+0B000000000011111111111111110000000000000000000000000000000000000000000000001111111111111111   
+0B011111111111111110000000000000000000000000000000000000000000000001111111111111111            
+0B11111111111111110000000000000000000000000000000000000000000000001111111111111111             
+0B11111111111111110000000000000000000000000000000000000000000000001111111111111111             
+0B000000000000000000000000000000000000000000000000000000000000000000000000001111111111111111   
+0B0000000000000000000000000000000000000000000000001111111111111111  
+0B00000000000000011111111111111110000000000000000000000000000000000000000000000001111111111111111
+   0X000000000000000000000FFFF
+   0X000000000000000000000FFFF
+0X00000000000000000000000000FFFF
+0X00000000000000000000000000FFFF
+05000000000000000000123
+                      05000000000000000000123
+05000000000000000000123                      X
+0000000123                              X
+0377776000000000000000177777            X
+05000000000000000000123                 X
+0000000000000000000000000000000000000123X
+0000000000000377776000000000000000177777X
+0000000000000000005000000000000000000123X
+-10                  0xfffffffffffffffffffffffffffffff6 03777777777777777777777777777777777777777766
+0b11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111110110
+-9                   0xfffffffffffffffffffffffffffffff7 03777777777777777777777777777777777777777767
+0b11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111110111
+-8                   0xfffffffffffffffffffffffffffffff8 03777777777777777777777777777777777777777770
+0b11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111000
+-7                   0xfffffffffffffffffffffffffffffff9 03777777777777777777777777777777777777777771
+0b11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111001
+-6                   0xfffffffffffffffffffffffffffffffa 03777777777777777777777777777777777777777772
+0b11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111010
+-5                   0xfffffffffffffffffffffffffffffffb 03777777777777777777777777777777777777777773
+0b11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111011
+-4                   0xfffffffffffffffffffffffffffffffc 03777777777777777777777777777777777777777774
+0b11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111100
+-3                   0xfffffffffffffffffffffffffffffffd 03777777777777777777777777777777777777777775
+0b11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111101
+-2                   0xfffffffffffffffffffffffffffffffe 03777777777777777777777777777777777777777776
+0b11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111110
+-1                   0xffffffffffffffffffffffffffffffff 03777777777777777777777777777777777777777777
+0b11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
++0                   0                    0                   
+0b0                 
++1                   0x1                  01                  
+0b1                 
++2                   0x2                  02                  
+0b10                
++3                   0x3                  03                  
+0b11                
++4                   0x4                  04                  
+0b100               
++5                   0x5                  05                  
+0b101               
++6                   0x6                  06                  
+0b110               
++7                   0x7                  07                  
+0b111               
++8                   0x8                  010                 
+0b1000              
++9                   0x9                  011                 
+0b1001              
++10                  0xa                  012                 
+0b1010              
++11                  0xb                  013                 
+0b1011              
++12                  0xc                  014                 
+0b1100              
++13                  0xd                  015                 
+0b1101              
++14                  0xe                  016                 
+0b1110              
+
+170141183460469231731687303715884105722
++170141183460469231731687303715884105722       0x7ffffffffffffffffffffffffffffffa            01777777777777777777777777777777777777777772 
+0b1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111010
+170141183460469231731687303715884105723
++170141183460469231731687303715884105723       0x7ffffffffffffffffffffffffffffffb            01777777777777777777777777777777777777777773 
+0b1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111011
+170141183460469231731687303715884105724
++170141183460469231731687303715884105724       0x7ffffffffffffffffffffffffffffffc            01777777777777777777777777777777777777777774 
+0b1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111100
+170141183460469231731687303715884105725
++170141183460469231731687303715884105725       0x7ffffffffffffffffffffffffffffffd            01777777777777777777777777777777777777777775 
+0b1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111101
+170141183460469231731687303715884105726
++170141183460469231731687303715884105726       0x7ffffffffffffffffffffffffffffffe            01777777777777777777777777777777777777777776 
+0b1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111110
+170141183460469231731687303715884105727
++170141183460469231731687303715884105727       0x7fffffffffffffffffffffffffffffff            01777777777777777777777777777777777777777777 
+0b1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
+-170141183460469231731687303715884105728
+-170141183460469231731687303715884105728       0x80000000000000000000000000000000            02000000000000000000000000000000000000000000 
+0b10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+-170141183460469231731687303715884105727
+-170141183460469231731687303715884105727       0x80000000000000000000000000000001            02000000000000000000000000000000000000000001 
+0b10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001
+-170141183460469231731687303715884105726
+-170141183460469231731687303715884105726       0x80000000000000000000000000000002            02000000000000000000000000000000000000000002 
+0b10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010
+-170141183460469231731687303715884105725
+-170141183460469231731687303715884105725       0x80000000000000000000000000000003            02000000000000000000000000000000000000000003 
+0b10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000011
+-170141183460469231731687303715884105724
+-170141183460469231731687303715884105724       0x80000000000000000000000000000004            02000000000000000000000000000000000000000004 
+0b10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100
+-170141183460469231731687303715884105723
+-170141183460469231731687303715884105723       0x80000000000000000000000000000005            02000000000000000000000000000000000000000005 
+0b10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000101
+-170141183460469231731687303715884105722
+-170141183460469231731687303715884105722       0x80000000000000000000000000000006            02000000000000000000000000000000000000000006 
+0b10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000110
+-170141183460469231731687303715884105721
+-170141183460469231731687303715884105721       0x80000000000000000000000000000007            02000000000000000000000000000000000000000007 
+0b10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000111
+-170141183460469231731687303715884105720
+-170141183460469231731687303715884105720       0x80000000000000000000000000000008            02000000000000000000000000000000000000000010 
+0b10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000
+-170141183460469231731687303715884105719
+-170141183460469231731687303715884105719       0x80000000000000000000000000000009            02000000000000000000000000000000000000000011 
+0b10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001001
+-170141183460469231731687303715884105718
+-170141183460469231731687303715884105718       0x8000000000000000000000000000000a            02000000000000000000000000000000000000000012 
+0b10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001010
+-170141183460469231731687303715884105717
+-170141183460469231731687303715884105717       0x8000000000000000000000000000000b            02000000000000000000000000000000000000000013 
+0b10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001011
+-170141183460469231731687303715884105716
+-170141183460469231731687303715884105716       0x8000000000000000000000000000000c            02000000000000000000000000000000000000000014 
+0b10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001100
+-170141183460469231731687303715884105715
+-170141183460469231731687303715884105715       0x8000000000000000000000000000000d            02000000000000000000000000000000000000000015 
+0b10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001101
+
+170141183460469231731687303715884105722
+170141183460469231731687303715884105723
+170141183460469231731687303715884105724
+170141183460469231731687303715884105725
+170141183460469231731687303715884105726
+170141183460469231731687303715884105727
+170141183460469231731687303715884105728
+170141183460469231731687303715884105729
+170141183460469231731687303715884105730
+170141183460469231731687303715884105731
+170141183460469231731687303715884105732
+170141183460469231731687303715884105733
+170141183460469231731687303715884105734
+170141183460469231731687303715884105735
+170141183460469231731687303715884105736
+170141183460469231731687303715884105737
+170141183460469231731687303715884105738
+170141183460469231731687303715884105739
+170141183460469231731687303715884105740
+170141183460469231731687303715884105741
+
+340282366920938463463374607431768211450
+340282366920938463463374607431768211451
+340282366920938463463374607431768211452
+340282366920938463463374607431768211453
+340282366920938463463374607431768211454
+340282366920938463463374607431768211455
+0
+1
+2
+3
+4
+5
+6
+7
+8
+9
+10
+11
+12
+13
+0xfffffffffffffffffffe
+0xfffffffffffffffffffe
+
+binary
+0b11111111111111111111111111111111111111111111111111111111111111111111111111111110
+0b11111111111111111111111111111111
+0b1111111111111111111111111111111111111111111111111111111111111111
+0b111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
+0b11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
+0xa2345678
+0xa2345678a7654321
+0xa2345678a7654321c2345678
+0xa2345678a7654321c2345678d7554321
+
+octal
+0377777777777777777777777776
+0123456
+012345665432
+01234566543234567
+0123456654323456776543
+012345665432345677654323456
+01234566543234567765432345665432
+0123456654323456776543234566543234567
+012345665432345677654323456654323456776543
+01111111111111111111
+011111111111111111111
+0111111111111111111111
+
+decimal
+1208925819614629174706174
+42798 0123456
+1402432282 012345665432
+45954901031287 01234566543234567
+1505850196993244515 0123456654323456776543
+394749758663249135511342 0123456665432345677654323456
+12935154696204706112391834394 012345665432234567765432345665432
+423859149128410414395372834994551 01234566543234567776543234566543234567
+13889016598639747063234935497057631587 0123456654323456776543323456654323456776543
+1234567890123456789
+1234567890123456789
+170141183460469231731687303715884105727
+340282366920938463463374607431768211455
+9223372036854775808
+340282366920938463463374607431768211455
+170141183460469231731687303715884105727
+
+hexadecimal
+0xfffffffffffffffffffe
+0xffffffff
+0xffffffffffffffff
+0xffffffffffffffffffffffff
+0xffffffffffffffffffffffffffffffff
+0xa2345678
+0xa2345678b7654321
+0xa2345678b7654321c2345678
+0xa2345678b7654321c2345678d7654321
+
Index: tests/io/.in/manipulatorsInput.txt
===================================================================
--- tests/io/.in/manipulatorsInput.txt	(revision e867b44d29a219d9ae0b5a5cbb9ef66e02f065fa)
+++ tests/io/.in/manipulatorsInput.txt	(revision e867b44d29a219d9ae0b5a5cbb9ef66e02f065fa)
@@ -0,0 +1,42 @@
+abc 
+abc 
+xx
+abcxxx
+abcyyy
+aaaaaaaaxxxxxxxxaabbccbbdddwwwbbbbbbbbwwwwwwwwaaaaaaaawwwwwwww
+abc 
+xx
+abcxxx
+abcyyy
+aaaaaaaaxxxxxxxxaabbccbbdddwwwbbbbbbbbwwwwwwwwaaaaaaaawwwwwwww
+ab
+0xff 017 15-15
+0xff 017 15-15
+0xff 017 15-15
+0xff 017 15-15
+0xff 017 15-15
+0xff 017 15-15
+0xff 017 15-15
+0xff 017 15-15
+0xff 017 15-15
+0xff 017 15-15
+3.5 3.456E+2 -0x1.2p-3 0X1.23p3
+3.5 3.456E+2 -0x1.2p-3 0X1.23p3
+3.5 3.456E+2 -0x1.2p-3 0X1.23p3
+3.5 3.5 3.456E+23.456E+2 -0x1.2p-3 3.5 0X1.23p3     3.5
+3.5 3.5 3.456E+23.456E+2 -0x1.2p-3 3.5 0X1.23p3     3.5
+3.5 3.5 3.456E+23.456E+2 -0x1.2p-3 3.5 0X1.23p3     3.5
+25 -25 42798
+1402432282 1505850196993244515
+394749758663249135511342
+12935154696204706112391834394
+
+423859149128410414395372834994551
+
+
+13889016598639747063234935497057631587
+170141183460469231731687303715884105727
+340282366920938463463374607431768211455
+-340282366920938463463374607431768211455
+340282366920938463463374607431768211455999
+1234567890123456789 -1234567890123456789
Index: tests/io/manipulatorsInput.cfa
===================================================================
--- tests/io/manipulatorsInput.cfa	(revision e867b44d29a219d9ae0b5a5cbb9ef66e02f065fa)
+++ tests/io/manipulatorsInput.cfa	(revision e867b44d29a219d9ae0b5a5cbb9ef66e02f065fa)
@@ -0,0 +1,168 @@
+// 
+// Cforall Version 1.0.0 Copyright (C) 2019 University of Waterloo
+// 
+// manipulatorsInput.cfa -- 
+// 
+// Author           : Peter A. Buhr
+// Created On       : Sat Jun  8 17:58:54 2019
+// Last Modified By : Peter A. Buhr
+// Last Modified On : Wed Jul 15 15:56:03 2020
+// Update Count     : 47
+// 
+
+#include <fstream.hfa>
+#include <stdio.h>					// scanf
+
+int main() {
+	{
+		char s[] = "yyyyyyyyyyyyyyyyyyyy";
+		const char sk[] = "abc";
+		scanf( "abc " ); scanf( sk ); for ( 5 ) scanf( "%*c" );	printf( "1 %s\n", s );
+		scanf( "%s", s );						printf( "2 %s\n", s );
+		scanf( "%*s" );							printf( "3 %s\n", s );
+		scanf( "%8s", s );						printf( "4 %s\n", s );
+		scanf( "%*8s" );						printf( "5 %s\n", s );
+
+		scanf( "%[abc]", s );					printf( "6 %s\n", s );
+		scanf( "%[^abc]", s );					printf( "7 %s\n", s );
+		scanf( "%*[abc]" );						printf( "8 %s\n", s );
+		scanf( "%*[^abc]" );					printf( "9 %s\n", s );
+		scanf( "%8[abc]", s );					printf( "10 %s\n", s );
+		scanf( "%8[^abc]", s );					printf( "11 %s\n", s );
+		scanf( "%*8[abc]" );					printf( "12 %s\n", s );
+		scanf( "%*8[^abc]" );					printf( "13 %s\n", s );
+	}
+	{
+		char s[] = "yyyyyyyyyyyyyyyyyyyy";
+		char sk[] = "abc";
+		sin /*| "abc "*/ | skip( sk ) | skip( 5 );	sout | "1" | s;
+		sin | s;								sout | "2" | s;
+		sin | ignore( s );						sout | "3" | s;
+ 		sin | wdi( 8, s );						sout | "4" | s;
+		sin | ignore( wdi( 8, s ) );			sout | "5" | s;
+
+		sin | incl( "abc", s );					sout | "6" | s;
+		sin | excl( "abc", s );					sout | "7" | s;
+		sin | ignore( incl( "abc", s ) );		sout | "8" | s;
+		sin | ignore( excl( "abc", s ) );		sout | "9" | s;
+		sin | wdi( 8, incl( "abc", s ) );		sout | "10" | s;
+		sin | wdi( 8, excl( "abc", s ) );		sout | "11" | s;
+		sin | ignore( wdi( 8, incl( "abc", s ) ) );	sout | "12" | s;
+		sin | ignore( wdi( 8, excl( "abc", s ) ) );	sout | "13" | s;
+	}
+	{
+		char c;
+		sin | c;								sout | c;
+		sin | ignore( c );						sout | c;
+
+		signed char sc;
+		sin | sc;								sout | sc;
+		sin | wdi( 3, sc );						sout | sc;
+		sin | ignore( sc );						sout | sc;
+		sin | ignore( wdi( 3, sc ) );			sout | sc;
+
+		unsigned char usc;
+		sin | usc;								sout | usc;
+		sin | wdi( 3, usc );					sout | usc;
+		sin | ignore( usc );					sout | usc;
+		sin | ignore( wdi( 3, usc ) );			sout | usc;
+
+		signed short int ssi;
+		sin | ssi;								sout | ssi;
+		sin | wdi( 3, ssi );					sout | ssi;
+		sin | ignore( ssi );					sout | ssi;
+		sin | ignore( wdi( 3, ssi ) );			sout | ssi;
+
+		unsigned short int usi;
+		sin | usi;								sout | usi;
+		sin | wdi( 3, usi );					sout | usi;
+		sin | ignore( usi );					sout | usi;
+		sin | ignore( wdi( 3, usi ) );			sout | usi;
+
+		signed int si;
+		sin | si;								sout | si;
+		sin | wdi( 3, si );						sout | si;
+		sin | ignore( si );						sout | si;
+		sin | ignore( wdi( 3, si ) );			sout | si;
+
+		unsigned int ui;
+		sin | ui;								sout | ui;
+		sin | wdi( 3, ui );						sout | ui;
+		sin | ignore( ui );						sout | ui;
+		sin | ignore( wdi( 3, ui ) );			sout | ui;
+
+		signed long int sli;
+		sin | sli;								sout | sli;
+		sin | wdi( 3, sli );					sout | sli;
+		sin | ignore( sli );					sout | sli;
+		sin | ignore( wdi( 3, sli ) );			sout | sli;
+
+		unsigned long int uli;
+		sin | uli;								sout | uli;
+		sin | wdi( 3, uli );					sout | uli;
+		sin | ignore( uli );					sout | uli;
+		sin | ignore( wdi( 3, uli ) );			sout | uli;
+
+		signed long long int slli;
+		sin | slli;								sout | slli;
+		sin | wdi( 3, slli );					sout | slli;
+		sin | ignore( slli );					sout | slli;
+		sin | ignore( wdi( 3, slli ) );			sout | slli;
+
+		unsigned long long int ulli;
+		sin | ulli;								sout | ulli;
+		sin | wdi( 3, ulli );					sout | ulli;
+		sin | ignore( ulli );					sout | ulli;
+		sin | ignore( wdi( 3, ulli ) );			sout | ulli;
+
+		float f;
+		sin | f;								sout | f;
+		sin | wdi( 8, f );						sout | f;
+		sin | ignore( f );						sout | f;
+		sin | ignore( wdi( 8, f ) );			sout | f;
+
+		double d;
+		sin | d;								sout | d;
+		sin | wdi( 8, d );						sout | d;
+		sin | ignore( d );						sout | d;
+		sin | ignore( wdi( 8, d ) );			sout | d;
+
+		long double ld;
+		sin | ld;								sout | ld;
+		sin | wdi( 8, ld );						sout | ld;
+		sin | ignore( ld );						sout | ld;
+		sin | ignore( wdi( 8, ld ) );			sout | ld;
+
+		float _Complex fc;
+		sin | fc;								sout | fc;
+		sin | wdi( 8, fc );						sout | fc;
+		sin | ignore( fc );						sout | fc;
+		sin | ignore( wdi( 8, fc ) );			sout | fc;
+
+		double _Complex dc;
+		sin | dc;								sout | dc;
+		sin | wdi( 8, dc );						sout | dc;
+		sin | ignore( dc );						sout | dc;
+		sin | ignore( wdi( 8, dc ) );			sout | dc;
+
+		long double _Complex ldc;
+		sin | ldc;								sout | ldc;
+		sin | wdi( 8, ldc );					sout | ldc;
+		sin | ignore( ldc );					sout | ldc;
+		sin | ignore( wdi( 8, ldc ) );			sout | ldc;
+	}
+#if defined( __SIZEOF_INT128__ )
+	{
+		int128 val;
+		for ( 15 ) {
+			sin | val;
+			sout | val;
+		}
+	}
+#endif // __SIZEOF_INT128__
+} // main
+
+// Local Variables: //
+// tab-width: 4 //
+// compile-command: "cfa -Wall -Wextra manipulatorsInput.cfa" //
+// End: //
Index: tests/io/manipulatorsOutput1.cfa
===================================================================
--- tests/io/manipulatorsOutput1.cfa	(revision e867b44d29a219d9ae0b5a5cbb9ef66e02f065fa)
+++ tests/io/manipulatorsOutput1.cfa	(revision e867b44d29a219d9ae0b5a5cbb9ef66e02f065fa)
@@ -0,0 +1,120 @@
+// 
+// Cforall Version 1.0.0 Copyright (C) 2019 University of Waterloo
+// 
+// manipulatorsOutput1.cfa -- 
+// 
+// Author           : Peter A. Buhr
+// Created On       : Sat Jun  8 18:04:11 2019
+// Last Modified By : Peter A. Buhr
+// Last Modified On : Fri May  1 11:51:44 2020
+// Update Count     : 9
+// 
+
+#include <fstream.hfa>
+
+int main() {
+	sout | "signed char";
+	signed char sc = -12;
+	printf( "%hhd %2hhd %5.2hhd %-5.2hhd %hho %#hho %hhx %#hhx %#8hhx %#8.10hhx %#8.3hhX %+-8.3hhd %08hhd\n", sc, sc, sc, sc, sc, sc, sc, sc, sc, sc, sc, sc, sc );
+	sout | sc | wd(2,sc) | wd(5,2,sc) | left(wd(5,2,sc)) | nobase(oct(sc)) | oct(sc) | nonl;
+	sout | nobase(hex(sc)) | hex(sc) | wd(8,hex(sc)) | wd(8,10,hex(sc)) | upcase(wd(8,3,hex(sc))) | nonl;
+	sout | left(sign(upcase(wd(8,3,sc)))) | pad0(wd(8,sc));
+
+	sout | "unsigned char";
+	unsigned char usc = 12;
+	printf( "%hhu %2hhu %5.2hhu %-5.2hhu %hho %#hho %hhx %#hhx %#8hhx %#8.10hhx %#8.3hhX %-8.3hhu %08hhu\n", usc, usc, usc, usc, usc, usc, usc, usc, usc, usc, usc, usc, usc );
+	sout | usc | wd(2,usc) | wd(5,2,usc) | left(wd(5,2,usc)) | nobase(oct(usc)) | oct(usc) | nonl;
+	sout | nobase(hex(usc)) | hex(usc) | wd(8,hex(usc)) | wd(8,10,hex(usc)) | upcase(wd(8,3,hex(usc))) | nonl;
+	sout | left(upcase(wd(8,3,usc))) | pad0(wd(8,usc));
+
+	sout | "signed short int";
+	signed short int si = -12;
+	printf( "%hd %2hd %5.2hd %-5.2hd %ho %#ho %hx %#hx %#8hx %#8.10hx %#8.3hX %+-8.3hd %08hd\n", si, si, si, si, si, si, si, si, si, si, si, si, si );
+	sout | si | wd(2,si) | wd(5,2,si) | left(wd(5,2,si)) | nobase(oct(si)) | oct(si) | nonl;
+	sout | nobase(hex(si)) | hex(si) | wd(8,hex(si)) | wd(8,10,hex(si)) | upcase(wd(8,3,hex(si))) | nonl;
+	sout | left(sign(upcase(wd(8,3,si)))) | pad0(wd(8,si));
+
+	sout | "unsigned short int";
+	unsigned short int usi = 12;
+	printf( "%hu %2hu %5.2hu %-5.2hu %ho %#ho %hx %#hx %#8hx %#8.10hx %#8.3hX %-8.3hu %08hu\n", usi, usi, usi, usi, usi, usi, usi, usi, usi, usi, usi, usi, usi );
+	sout | usi | wd(2,usi) | wd(5,2,usi) | left(wd(5,2,usi)) | nobase(oct(usi)) | oct(usi) | nonl;
+	sout | nobase(hex(usi)) | hex(usi) | wd(8,hex(usi)) | wd(8,10,hex(usi)) | upcase(wd(8,3,hex(usi))) | nonl;
+	sout | left(upcase(wd(8,3,usi))) | pad0(wd(8,usi));
+
+	sout | "signed int";
+	signed int i = -12;
+	printf( "%d %2d %5.2d %-5.2d %o %#o %x %#x %#8x %#8.10x %#8.3X %+-8.3d %08d\n", i, i, i, i, i, i, i, i, i, i, i, i, i );
+	sout | i | wd(2,i) | wd(5,2,i) | left(wd(5,2,i)) | nobase(oct(i)) | oct(i) | nonl;
+	sout | nobase(hex(i)) | hex(i) | wd(8,hex(i)) | wd(8,10,hex(i)) | upcase(wd(8,3,hex(i))) | nonl;
+	sout | left(sign(upcase(wd(8,3,i)))) | pad0(wd(8,i));
+
+	sout | "unsigned int";
+	unsigned int ui = 12;
+	printf( "%u %2u %5.2u %-5.2u %o %#o %x %#x %#8x %#8.10x %#8.3X %-8.3u %08u\n", ui, ui, ui, ui, ui, ui, ui, ui, ui, ui, ui, ui, ui );
+	sout | ui | wd(2,ui) | wd(5,2,ui) | left(wd(5,2,ui)) | nobase(oct(ui)) | oct(ui) | nonl;
+	sout | nobase(hex(ui)) | hex(ui) | wd(8,hex(ui)) | wd(8,10,hex(ui)) | upcase(wd(8,3,hex(ui))) | nonl;
+	sout | left(upcase(wd(8,3,ui))) | pad0(wd(8,ui));
+
+	sout | "signed long long int";
+	signed long long int lli = -12;
+	printf( "%lld %2lld %5.2lld %-5.2lld %llo %#llo %llx %#llx %#8llx %#8.10llx %#8.3llX %+-8.3lld %08lld\n", lli, lli, lli, lli, lli, lli, lli, lli, lli, lli, lli, lli, lli );
+	sout | lli | wd(2,lli) | wd(5,2,lli) | left(wd(5,2,lli)) | nobase(oct(lli)) | oct(lli) | nonl;
+	sout | nobase(hex(lli)) | hex(lli) | wd(8,hex(lli)) | wd(8,10,hex(lli)) | upcase(wd(8,3,hex(lli))) | nonl;
+	sout | left(sign(upcase(wd(8,3,lli)))) | pad0(wd(8,lli));
+
+	sout | "unsigned long long int";
+	unsigned long long int ulli = 12;
+	printf( "%llu %2llu %5.2llu %-5.2llu %llo %#llo %llx %#llx %#8llx %#8.10llx %#8.3llX %-8.3llu %08llu\n", ulli, ulli, ulli, ulli, ulli, ulli, ulli, ulli, ulli, ulli, ulli, ulli, ulli );
+	sout | ulli | wd(2,ulli) | wd(5,2,ulli) | left(wd(5,2,ulli)) | nobase(oct(ulli)) | oct(ulli) | nonl;
+	sout | nobase(hex(ulli)) | hex(ulli) | wd(8,hex(ulli)) | wd(8,10,hex(ulli)) | upcase(wd(8,3,hex(ulli))) | nonl;
+	sout | left(upcase(wd(8,3,ulli))) | pad0(wd(8,ulli));
+
+	sout | nl | "binary integral";
+	sout | bin(0) | bin(13) | upcase(bin(13)) | nobase(bin(13)) | left(wd(8,bin(13))) | wd(8,bin(13)) | nonl;
+	sout | pad0(left(wd(8,bin(13)))) | pad0(wd(8,bin(13))) | pad0(wd(8,10,bin(13))) | pad0(wd(8,6,bin(13)));
+
+
+	sout | nl | "float";
+	float f = 3.537;
+	printf( "%g  %8g %#8g %g %8g %8.0g %#8.0g %8.2g %#8.2g %-8.2g %-8.2g %-#8.2g %-+8.2g %-+#8.2g %08.2g %8.2E %8.2a %#8.2A %#8.2e\n",
+		    0.0,3.0F,3.0F, f,  f,    f,     f,    f,     f,  3.0F,      f,      f,      f,       f,     f,    f,    f,     f,     f );
+	sout | 0.0 | wd(8, 3.0F) | nodp(wd(8, 3.0F)) | f | wd(8, f) | ws(8,0, f) | nodp(ws(8,0, f)) | ws(8,2, f) | nodp(ws(8,2, f)) | nonl;
+	sout | left(ws(8,2, 3.0F)) | left(ws(8,2, f)) | left(nodp(ws(8,2, f))) | left(sign(ws(8,2, f))) | left(sign(nodp(ws(8,2, f)))) | nonl;
+	sout | pad0(ws(8,2, f)) | upcase(wd(8,2, sci(f))) | wd(8,2, hex(f)) | upcase(wd(8,2, hex(f))) | nodp(wd(8,2, sci(f)));
+
+	sout | "double";
+	double d = 3.537;
+	printf( "%g  %#8f %g %8f %#8.0f %8.0f %8.2f %-8.2f %-+#8.2f %08.2F %8.2E %8.2a %8.2A %8.2e\n",
+			0.0,  3.0, d,  d,     d,    d,    d,     d,       d,     d,    d,    d,    d,    d );
+	sout | 0.0 | wd(8, 3.0) | d | wd(8, d) | nodp(wd(8,0, d)) | wd(8,0, d) | wd(8,2, d) | nonl;
+	sout | left(wd(8,2, d)) | left(sign(wd(8,2, d))) | pad0(upcase(wd(8,2, d))) | upcase(wd(8,2, sci(d))) | wd(8,2, hex(d)) | upcase(wd(8,2, hex(d))) | wd(8,2, sci(d));
+
+	sout | "long double";
+	long double ld = 3.537;
+	printf( "%Lg  %#8Lf %Lg %8Lf %#8.0Lf %8.0Lf %8.2Lf %-8.2Lf %-+#8.2Lf %08.2LF %8.2LE %8.2La %8.2LA %8.2Le\n",
+			0.0L,  3.0L, ld,  ld,     ld,    ld,    ld,     ld,       ld,     ld,    ld,    ld,    ld,    ld );
+	sout | 0.0L | wd(8, 3.0L) | ld | wd(8, ld) | nodp(wd(8,0, ld)) | wd(8,0, ld) | wd(8,2, ld) | nonl;
+	sout | left(wd(8,2, ld)) | left(sign(wd(8,2, ld))) | pad0(upcase(wd(8,2, ld))) | upcase(wd(8,2, sci(ld))) | wd(8,2, hex(ld)) | upcase(wd(8,2, hex(ld))) | wd(8,2, sci(ld));
+
+
+	sout | nl | "char";
+	char c = 'a';
+	printf( "%c %2c %5c %-5c %hho %#hho %hhx %#hhx %#8hhx %#8hhX %-8c %8c\n", c, c, c, c, c, c, c, c, c, c, c, c );
+	sout | c | ' ' | wd(2,c) | wd(5,c) | left(wd(5,c)) | nobase(oct(c)) | oct(c) | nonl;
+	sout | nobase(hex(c)) | hex(c) | wd(8,hex(c)) | upcase(wd(8,hex(c))) | left(wd(8,c)) | wd(8,c);
+
+	sout | nl | "string";
+	const char * s = "abcd";
+	printf( "%s %8s %6.8s %-8s\n", s, s, s, s );
+	sout | s | wd(8,s) | wd(6,8,s) | left(wd(8,s));
+
+	sout | nl | "binary string";
+	sout | bin("0") | bin(s) | oct(s) | hex(s);
+	sout | nobase(bin("0")) | nobase(bin(s)) | nobase(oct(s)) | nobase(hex(s));
+	sout | nobase(wd(8,bin("0"))) | nobase(wd(8,bin(s))) | nobase(wd(4,oct(s))) | nobase(wd(3,hex(s)));
+}
+
+// Local Variables: //
+// tab-width: 4 //
+// compile-command: "cfa -Wall -Wextra amanipulatorsOutput1.cfa" //
+// End: //
Index: tests/io/manipulatorsOutput2.cfa
===================================================================
--- tests/io/manipulatorsOutput2.cfa	(revision e867b44d29a219d9ae0b5a5cbb9ef66e02f065fa)
+++ tests/io/manipulatorsOutput2.cfa	(revision e867b44d29a219d9ae0b5a5cbb9ef66e02f065fa)
@@ -0,0 +1,55 @@
+// 
+// Cforall Version 1.0.0 Copyright (C) 2019 University of Waterloo
+// 
+// manipulatorsOutput2.cfa -- 
+// 
+// Author           : Peter A. Buhr
+// Created On       : Sat Jun  8 18:04:11 2019
+// Last Modified By : Peter A. Buhr
+// Last Modified On : Sun Nov 15 08:11:53 2020
+// Update Count     : 9
+// 
+
+#include <fstream.hfa>
+
+int main() {
+	sout | nl;
+    sout | bin(0) | bin(27HH) | bin(27H) | bin(27) | bin(27L);
+    sout | bin(-27HH) | bin(-27H) | bin(-27) | bin(-27L);
+    sout | oct(0) | oct(27HH) | oct(27H) | oct(27) | oct(27L);
+    sout | oct(-27HH) | oct(-27H) | oct(-27) | oct(-27L);
+    sout | hex(0) | hex(27HH) | hex(27H) | hex(27) | hex(27L);
+    sout | hex(-27HH) | hex(-27H) | hex(-27) | hex(-27L);
+    sout | hex(0.0) | hex(27.5F) | hex(27.5) | hex(27.5L);
+    sout | hex(-27.5F) | hex(-27.5) | hex(-27.5L);
+	sout | sci(0.0) | sci(27.5) | sci(-27.5);
+	sout | upcase(bin(27)) | upcase(hex(27)) | upcase(27.5e-10) | upcase(hex(27.5));
+	sout | nobase(bin(27)) | nobase(oct(27)) | nobase(hex(27));
+    sout | 0. | nodp(0.) | 27.0 | nodp(27.0) | nodp(27.5);
+    sout | sign(27) | sign(-27) | sign(27.) | sign(-27.) | sign(27.5) | sign(-27.5);
+	sout | wd( 4, 34) | wd( 3, 34 ) | wd( 2, 34 );
+	sout | wd( 10, 4.) | wd( 9, 4. ) | wd( 8, 4. );
+	sout | wd( 4, "ab" ) | wd( 3, "ab" ) | wd( 2, "ab" );
+	sout | wd( 4, 34567 ) | wd( 3, 34567 ) | wd( 2, 34567 );
+	sout | wd( 4, 3456. ) | wd( 3, 3456. ) | wd( 2, 3456. );
+	sout | wd( 4, "abcde" ) | wd( 3, "abcde" ) | wd( 2,"abcde" );
+	sout | wd(4,3, 34) | wd(8,4, 34) | wd(10,10, 34);
+	sout | wd( 4,1, 3456 ) | wd( 8,2, 3456 ) | wd( 10,3, 3456 );
+	sout | wd( 4,0, 0 ) | wd( 3,10, 34 );
+	sout | wd(6,3, 27.5) | wd(8,1, 27.5) | wd(8,0, 27.5) | wd(3,8, 27.5);
+	sout | wd(6,3, 27.0) | wd(6,3, 27.5) | wd(8,1, 27.5) | wd(8,0, 27.5) | wd(3,8, 27.5);
+	sout | left(wd(4,27)) | left(wd(10,27.)) | left(wd(10,27.5)) | left(wd(4,3,27)) | left(wd(10,3,27.5));
+	sout | ws(6,6, 234.567) | ws(6,5, 234.567) | ws(6,4, 234.567) | ws(6,3, 234.567);
+	sout | ws(6,6, 234567.) | ws(6,5, 234567.) | ws(6,4, 234567.) | ws(6,3, 234567.);
+	sout | ws(3,6, 234567.) | ws(4,6, 234567.) | ws(5,6, 234567.) | ws(6,6, 234567.);
+	sout | wd(6, "abcd") | wd(8, "abcd") | wd(2, "abcd");
+	sout | wd(6,8, "abcd") | wd(6,8, "abcdefghijk") | wd(6,3, "abcd");
+    sout | pad0(wd(4,27)) | pad0(wd(4,3,27)) | pad0(wd(8,3,27.5));
+
+//	sexit | 3 | 4;
+}
+
+// Local Variables: //
+// tab-width: 4 //
+// compile-command: "cfa -Wall -Wextra manipulatorsOutput2.cfa" //
+// End: //
Index: tests/io/manipulatorsOutput3.cfa
===================================================================
--- tests/io/manipulatorsOutput3.cfa	(revision e867b44d29a219d9ae0b5a5cbb9ef66e02f065fa)
+++ tests/io/manipulatorsOutput3.cfa	(revision e867b44d29a219d9ae0b5a5cbb9ef66e02f065fa)
@@ -0,0 +1,387 @@
+#include <fstream.hfa>
+
+int main() {
+	// int128 printing
+	int128 x = 0xffff, y = 0x2;
+
+	x <<= 64;
+	x += 0xffff;
+	y <<= 64;
+	y += 0123;
+	y |= 0x8000000000000000;
+	x = -x;
+	sout | x;
+	sout | sign(x);
+	x = -x;
+	sout | sign(x);
+	sout | nl;
+
+	int128 divisor = 0x4b3b4ca85a86c47a;
+	divisor <<= 16;
+	divisor += 0x98a224000000000;
+	
+	// base 2
+	sout | "base 2";
+	sout | bin(x);
+	sout | upcase(bin(x));
+	sout | nobase(bin(x));
+	sout | wd( 95, upcase(bin(x)) );
+	sout | wd( 95,90, upcase(bin(x)) );
+	sout | wd( 25,30, upcase(hex(x)) );
+	sout | nl;
+
+	sout | bin(divisor);
+	sout | upcase(bin(divisor));
+	sout | wd(38, upcase(bin(divisor)));
+	sout | wd(40, upcase(bin(divisor)));
+	sout | wd(40, 38, upcase(bin(divisor)));
+	sout | wd(40, 30, upcase(bin(divisor)));
+	sout | pad0(sign(wd(40, 38, upcase(bin(divisor)))));
+	sout | nl;
+	
+	// oct
+	sout | "base 8";
+	printf( "%#.10o\n", 0123 );
+	sout | wd( 1,10, oct(0123) );
+	sout | oct(x);
+	sout | nobase(oct(x));
+	sout | wd( 45, oct(0123) );
+	sout | wd( 45,40, oct(0123) );
+	sout | wd( 40,45, oct(0123) );
+	sout | wd( 45, oct(x) );
+	sout | wd( 45,40, oct(x) );
+	sout | wd( 40,45, oct(x) );
+
+	sout | left(wd( 45, oct(0123) )) | 'X';
+	sout | left(wd( 45, oct(x) )) | 'X';
+	sout | left(wd( 45, oct(y) )) | 'X';
+	sout | left(wd( 45,40, oct(0123) )) | 'X';
+	sout | left(wd( 45,40, oct(x) )) | 'X';
+	sout | left(wd( 45,40, oct(y) )) | 'X';
+	sout | left(wd( 40,45, oct(0123) )) | 'X';
+	sout | left(wd( 40,45, oct(x) )) | 'X';
+	sout | left(wd( 40,45, oct(y) )) | 'X';
+	printf( "%#-1.10oX\n", 0123 );
+	sout | left(wd( 1,10, oct(0123) )) | 'X';
+	printf( "%#-40.10oX\n", 0123 );
+	sout | left(wd( 40,10, oct(0123) )) | 'X';
+	sout | left(wd( 40,10, oct(x) )) | 'X';
+	sout | left(wd( 40,10, oct(y) )) | 'X';
+	sout | left(wd( 10,40, oct(0123) )) | 'X';
+	sout | left(wd( 10,40, oct(x) )) | 'X';
+	sout | left(wd( 10,40, oct(y) )) | 'X';
+
+	y = 01234567;
+	sout | left(wd( 45, 49, oct(y) )) | 'X';
+	y = -y;
+	sout | wd(0, oct(y)) | 'Y';
+	sout | left(wd(0, oct(y))) | 'Y';
+	sout | nl;
+
+	sout | upcase(oct(divisor));
+	sout | wd(38, upcase(oct(divisor)));
+	sout | wd(40, upcase(oct(divisor)));
+	sout | wd(40, 38, upcase(oct(divisor)));
+	sout | wd(40, 30, upcase(oct(divisor)));
+	sout | pad0(sign(wd(40, 38, upcase(oct(divisor)))));
+	sout | nl;
+
+	// decimal
+	sout | "base 10";
+	sout | divisor;
+	sout | wd(2, divisor);
+	sout | wd(3, divisor);
+	sout | wd(10, divisor);
+	sout | wd(24, divisor);
+	sout | wd(38, divisor);
+	sout | wd(39, divisor);
+	sout | wd(40, divisor);
+	
+	sout | wd(40, 30, divisor);
+	sout | wd(40, 38, divisor);
+	sout | wd(40, 40, divisor);
+	sout | pad0(wd(40, divisor));
+	sout | pad0(sign(wd(40,divisor)));
+	sout | nl;
+	
+	// hex
+	sout | "base 16";
+
+	sout | hex(x);
+	sout | upcase(hex(x));
+	sout | nobase(hex(x));
+	sout | wd( 45, upcase(hex(x)) );
+	sout | wd( 45,40, upcase(hex(x)) );
+	sout | wd( 45,49, upcase(hex(x)) );
+	sout | left(wd( 45, upcase(hex(x)) )) | 'X';
+	sout | left(wd( 45,40, upcase(hex(x)) )) | 'X';
+	sout | left(wd( 45,49, upcase(hex(x)) )) | 'X';
+	sout | nl;
+
+	sout | upcase(hex(divisor));
+	sout | wd(38, upcase(hex(divisor)));
+	sout | wd(40, upcase(hex(divisor)));
+	sout | wd(40, 38, upcase(hex(divisor)));
+	sout | wd(40, 30, upcase(hex(divisor)));
+	sout | pad0(sign(wd(40, 38, upcase(hex(divisor)))));
+	sout | nl;
+
+	// extras
+	sout | "extras";
+	sout | bin(divisor);
+	sout | upcase(bin(divisor));
+	sout | oct(divisor);
+	sout | hex(divisor);
+	sout | upcase(hex(divisor));
+	sout | nobase(bin(divisor)) | nobase(oct(divisor)) | nobase(hex(divisor));
+	sout | sign(divisor);
+	sout | -divisor;
+	sout | sign(-divisor);
+	sout | wd(2, divisor);
+	sout | wd(3,10,divisor);
+	sout | left(wd(40,divisor)) | 'X';
+	sout | left(sign(wd(40, divisor))) | 'X';
+	sout | left(sign(wd(0,40, divisor))) | 'X';
+	printf( "%-+1.40dX\n", 123456789 );
+
+	int128 i128;
+	unsigned int128 ui128;
+	i128 = -1000;
+	for ( 10 ) {
+		sout | left( sign( wd( 2, i128 ) ) ) | left( wd( 2, hex( i128 ) ) ) | left( wd( 2, oct( i128 ) ) );
+		sout | left( wd( 2, bin( i128 ) ) );
+		i128 += 1;
+	}
+	sout | nl;
+	sout | nl;
+
+	sout | left( wd( 160, i128 ) );
+	sout | left( sign( wd( 0, i128 ) ) );
+	sout | left( wd( 0, hex( i128 ) ) );
+	sout | left( wd( 0, oct( i128 ) ) );
+	sout | left( wd( 0, bin( i128 ) ) );
+	sout | left( sign( wd( 1, i128 ) ) );
+	sout | left( wd( 1, hex( i128 ) ) );
+	sout | left( wd( 1, oct( i128 ) ) );
+	sout | left( wd( 1, bin( i128 ) ) );
+	sout | left( sign( wd( 32, i128 ) ) );
+	sout | left( wd( 32, hex( i128 ) ) );
+	sout | left( wd( 32, oct( i128 ) ) );
+	sout | left( wd( 32, bin( i128 ) ) );
+	sout | left( sign( wd( 160, i128 ) ) );
+	sout | left( wd( 160, hex( i128 ) ) );
+	sout | left( wd( 160, oct( i128 ) ) );
+	sout | left( wd( 160, bin( i128 ) ) );
+	sout | left( sign( wd( 160, i128 ) ) );
+	sout | left( wd( 160, upcase( hex( i128 ) ) ) );
+	sout | left( wd( 160, upcase( oct( i128 ) ) ) );
+	sout | left( wd( 160, upcase( bin( i128 ) ) ) );
+
+	x = 1234;
+	x <<= 64;
+	x += 5678;
+	sout | x | 'X';
+	sout | wd(45, 20, oct(x)) | 'X';
+	sout | left(wd(45, 20, oct(x))) | 'X';
+	sout | wd(45, 21, oct(x)) | 'X';
+	sout | left(wd(45, 21, oct(x))) | 'X';
+	sout | wd(45, 22, oct(x)) | 'X';
+	sout | left(wd(45, 22, oct(x))) | 'X';
+	sout | wd(45, 36, oct(x)) | 'X';
+	sout | left(wd(45, 36, oct(x))) | 'X';
+	sout | wd(45, 46, oct(x)) | 'X';
+	sout | left(wd(45, 46, oct(x))) | 'X';
+	sout | left(wd(45, 20, oct(x))) | 'X';
+	sout | left(wd(45, 22, oct(x))) | 'X';
+	sout | left(wd(45, 24, oct(x))) | 'X';
+	sout | left(wd(45, 26, oct(x))) | 'X';
+	sout | left(wd(45, 28, oct(x))) | 'X';
+
+	y = -x;
+	sout | oct(y) | 'Y';
+	sout | left(wd(0, oct(y))) | 'Y';
+	sout | left(wd(20, oct(y))) | 'Y';
+	sout | left(wd(26, oct(y))) | 'Y';
+	sout | left(wd(40, oct(y))) | 'Y';
+	sout | left(wd(41, oct(y))) | 'Y';
+	sout | left(wd(45, oct(y))) | 'Y';
+	sout | left(wd(45, 49, oct(y))) | 'Y';
+	sout | left(wd(45, 4, oct(y))) | 'Y';
+	sout | left(wd( 45, oct(0123) )) | 'X';
+	sout | left(wd( 45, oct(x) )) | 'X';
+	sout | left(wd( 45,40, oct(0123) )) | 'X';
+	sout | left(wd( 45,40, oct(x) )) | 'X';
+	sout | left(wd( 40,45, oct(0123) )) | 'X';
+	sout | left(wd( 40,45, oct(x) )) | 'X'; 
+	sout | left(wd( 40,10, oct(0123) )) | 'X';
+	sout | left(wd( 40,10, oct(x) )) | 'X';
+	sout | left(wd( 40,10, oct(y) )) | 'X';
+	sout | left(wd( 10,40, oct(0123) )) | 'X';
+	sout | left(wd( 10,40, oct(x) )) | 'X';
+	sout | left(wd( 10,40, oct(y) )) | 'X';
+
+	x = 0xffff, y = 0x2;
+	int128 z = 0x_ffff_ffff_ffff_ffff;
+	x <<= 64;
+	x += 0xffff;
+	y <<= 64;
+	y += 0123;
+	y |= 0x8000000000000000;
+
+	for ( int128 i = 0; i < 8; i += 1 ) {
+		sout | nobase(oct(z + 0x8000000000000000 * i));
+	} // for
+
+	sout | bin(x);
+	sout | upcase(bin(x));
+	sout | nobase(bin(x));
+
+	sout | wd( 95, upcase(bin(x)) );
+	sout | wd( 95,90, upcase(bin(x)) );
+	sout | wd( 90,95, upcase(bin(x)) );
+
+	sout | left(bin(x));
+	sout | left(upcase(bin(x)));
+	sout | left(nobase(bin(x)));
+
+	sout | left(wd( 95, upcase(bin(x)) ));
+	sout | left(wd( 95,90, upcase(bin(x)) ));
+	sout | left(wd( 95,81, upcase(bin(x)) ));
+
+	sout | left(wd( 95,80, upcase(bin(x)) ));
+	sout | left(wd( 95,79, upcase(bin(x)) ));
+	sout | left(wd( 95,90, upcase(bin(0xffff)) ));
+
+	sout | left(wd( 68,64, upcase(bin(0xffff)) ));
+	sout | left(wd( 90,95, upcase(bin(x)) ));
+
+	printf( "%#30.25X\n", 0xffff );
+	sout | wd( 30,25, upcase(hex(0xffff)) );
+	printf( "%#25.30X\n", 0xffff );
+	sout | wd( 25,30, upcase(hex(0xffff)) );
+
+	sout | oct(y);
+	sout | wd( 45, oct(y) );
+	sout | left(wd( 45, oct(y) )) | 'X';
+
+	sout | left(wd( 40,10, oct(0123) )) | 'X';
+	sout | left(wd( 40,10, oct(x) )) | 'X';
+	sout | left(wd( 40,10, oct(y) )) | 'X';
+	sout | left(wd( 10,40, oct(0123) )) | 'X';
+	sout | left(wd( 10,40, oct(x) )) | 'X';
+	sout | left(wd( 10,40, oct(y) )) | 'X';
+
+	i128 = -10;
+	for ( 25 ) {
+		sout | left( sign( wd( 20, i128 ) ) ) | left( wd( 20, hex( i128 ) ) ) | left( wd( 20, oct( i128 ) ) );
+		sout | left( wd( 20, bin( i128 ) ) );
+		i128 += 1;
+	} // for
+	sout | nl;
+
+	i128 = 0x7fffffffffffffff;
+	i128 <<= 64;
+	i128 += 0xfffffffffffffffa;
+
+//	for ( 20 ) {
+	volatile int stop = 20;								// gcc compiler bug
+	for ( int i = 0; i < stop; i += 1 ) {
+		sout | i128;
+		sout | left( sign( wd( 45, i128 ) ) ) | left( wd( 45, hex( i128 ) ) ) | left( wd( 45, oct( i128 ) ) );
+		sout | left( wd( 45, bin( i128 ) ) );
+		i128 += 1;
+	} // for
+	sout | nl;
+
+	ui128 = 0x7fffffffffffffff;
+	ui128 <<= 64;
+	ui128 += 0xfffffffffffffffa;
+	
+	for ( 20 ) {
+		sout | ui128;
+		ui128 += 1;
+	}
+	sout | nl;
+
+	ui128 = 0xffffffffffffffff;
+	ui128 <<= 64;
+	ui128 += 0xfffffffffffffffa;
+	
+	for ( 20 ) {
+		sout | ui128;
+		ui128 += 1;
+	}
+
+	// int128 constants (and printing)
+	int128 v = 0xffff_ffffffff_ffffffff_L128 + 0xffffffff_ffffffff_ffffffff_ffffffff_L128;
+	sout | hex(v);
+	v = 0xffff_ffffffff_ffffffff_L128 + 0xffffffff_ffffffff_ffffffff_ffffffff_L128;
+	sout | hex(v);
+	sout | nl;
+
+	sout | "binary";
+	sout | bin(v);
+	sout | bin(0b_11111111111111111111111111111111_L128);
+	sout | bin(0b_11111111111111111111111111111111_11111111111111111111111111111111_L128);
+	sout | bin(0b_11111111111111111111111111111111_11111111111111111111111111111111_11111111111111111111111111111111_L128);
+	sout | bin(0b_11111111111111111111111111111111_11111111111111111111111111111111_11111111111111111111111111111111_11111111111111111111111111111111_L128);
+	sout | hex(0b_10100010001101000101011001111000_L128);
+	sout | hex(0b_10100010001101000101011001111000_10100111011001010100001100100001_L128);
+	sout | hex(0b_10100010001101000101011001111000_10100111011001010100001100100001_11000010001101000101011001111000_L128);
+	sout | hex(0b_10100010001101000101011001111000_10100111011001010100001100100001_11000010001101000101011001111000_11010111010101010100001100100001_L128);
+	sout | nl;
+
+	sout | "octal";
+	sout | oct(v);
+	sout | oct(0_123456_L128u);
+	sout | oct(0_123456_65432_uL128);
+	sout | oct(0_123456_65432_34567_L128);
+	sout | oct(0_123456_65432_34567_76543_L128);
+	sout | oct(0_123456_65432_34567_76543_23456_L128);
+	sout | oct(0_123456_65432_34567_76543_23456_65432_L128);
+	sout | oct(0_123456_65432_34567_76543_23456_65432_34567_L128);
+	sout | oct(0_123456_65432_34567_76543_23456_65432_34567_76543_L128);
+	sout | oct(0_1111111111111111111L);
+	sout | oct(0_11111111111111111111L);
+	sout | oct(0_111111111111111111111L);
+	sout | nl;
+
+	sout | "decimal";
+	sout | v;
+	sout | 42_798_L128 | oct(42_798_L128);
+	sout | 1_402_432_282_L128 | oct(1_402_432_282_L128);
+	sout | 45_954_901_031_287_L128 | oct(45_954_901_031_287_L128);
+	sout | 1_505_850_196_993_244_515_L128 | oct(1_505_850_196_993_244_515_L128);
+	sout | 394_749_758_663_249_135_511_342_L128 | oct(394_749_758_663_249_135_511_342_L128);
+	sout | 12_935_154_696_204_706_112_391_834_394_L128 | oct(12_935_154_696_204_706_112_391_834_394_L128);
+	sout | 423_859_149_128_410_414_395_372_834_994_551_L128 | oct(423_859_149_128_410_414_395_372_834_994_551_L128);
+	sout | 13_889_016_598_639_747_063_234_935_497_057_631_587_L128 | oct(13_889_016_598_639_747_063_234_935_497_057_631_587_L128);
+	sout | 1234567890123456789_uL128;
+	sout | 1234567890123456789_L128u;
+	sout | 0x_7fffffff_ffffffff_ffffffff_ffffffff_L128;
+	sout | 0x_ffffffff_ffffffff_ffffffff_ffffffff_L128;
+	sout | 0x_80000000_00000000_00000000_00000000_L128;
+	unsigned int128 vv;
+	vv = 340282366920938463463374607431768211455_L128u;
+	sout | vv;
+	vv = 170141183460469231731687303715884105727_L128;
+	sout | vv;
+	sout | nl;
+
+	sout | "hexadecimal";
+	sout | hex(v);
+	sout | hex(0x_ffffffff_L128);
+	sout | hex(0x_ffffffff_ffffffff_L128);
+	sout | hex(0x_ffffffff_ffffffff_ffffffff_L128);
+	sout | hex(0xffffffff_ffffffff_ffffffff_ffffffff_L128);
+	sout | hex(0x_a2345678_L128);
+	sout | hex(0x_a2345678_b7654321_L128);
+	sout | hex(0x_a2345678_b7654321_c2345678_L128);
+	sout | hex(0x_a2345678_b7654321_c2345678_d7654321_L128);
+	sout | nl;
+} // main
+
+// Local Variables: //
+// tab-width: 4 //
+// compile-command: "cfa -Wall -Wextra manipulatorsOutput3.cfa" //
+// End: //
Index: sts/manipulatorsInput.cfa
===================================================================
--- tests/manipulatorsInput.cfa	(revision 2d019af1e5dc0df0ad2bbe9c215b4c34968890c0)
+++ 	(revision )
@@ -1,168 +1,0 @@
-// 
-// Cforall Version 1.0.0 Copyright (C) 2019 University of Waterloo
-// 
-// manipulatorsInput.cfa -- 
-// 
-// Author           : Peter A. Buhr
-// Created On       : Sat Jun  8 17:58:54 2019
-// Last Modified By : Peter A. Buhr
-// Last Modified On : Wed Jul 15 15:56:03 2020
-// Update Count     : 47
-// 
-
-#include <fstream.hfa>
-#include <stdio.h>					// scanf
-
-int main() {
-	{
-		char s[] = "yyyyyyyyyyyyyyyyyyyy";
-		const char sk[] = "abc";
-		scanf( "abc " ); scanf( sk ); for ( 5 ) scanf( "%*c" );	printf( "1 %s\n", s );
-		scanf( "%s", s );						printf( "2 %s\n", s );
-		scanf( "%*s" );							printf( "3 %s\n", s );
-		scanf( "%8s", s );						printf( "4 %s\n", s );
-		scanf( "%*8s" );						printf( "5 %s\n", s );
-
-		scanf( "%[abc]", s );					printf( "6 %s\n", s );
-		scanf( "%[^abc]", s );					printf( "7 %s\n", s );
-		scanf( "%*[abc]" );						printf( "8 %s\n", s );
-		scanf( "%*[^abc]" );					printf( "9 %s\n", s );
-		scanf( "%8[abc]", s );					printf( "10 %s\n", s );
-		scanf( "%8[^abc]", s );					printf( "11 %s\n", s );
-		scanf( "%*8[abc]" );					printf( "12 %s\n", s );
-		scanf( "%*8[^abc]" );					printf( "13 %s\n", s );
-	}
-	{
-		char s[] = "yyyyyyyyyyyyyyyyyyyy";
-		char sk[] = "abc";
-		sin /*| "abc "*/ | skip( sk ) | skip( 5 );	sout | "1" | s;
-		sin | s;								sout | "2" | s;
-		sin | ignore( s );						sout | "3" | s;
- 		sin | wdi( 8, s );						sout | "4" | s;
-		sin | ignore( wdi( 8, s ) );			sout | "5" | s;
-
-		sin | incl( "abc", s );					sout | "6" | s;
-		sin | excl( "abc", s );					sout | "7" | s;
-		sin | ignore( incl( "abc", s ) );		sout | "8" | s;
-		sin | ignore( excl( "abc", s ) );		sout | "9" | s;
-		sin | wdi( 8, incl( "abc", s ) );		sout | "10" | s;
-		sin | wdi( 8, excl( "abc", s ) );		sout | "11" | s;
-		sin | ignore( wdi( 8, incl( "abc", s ) ) );	sout | "12" | s;
-		sin | ignore( wdi( 8, excl( "abc", s ) ) );	sout | "13" | s;
-	}
-	{
-		char c;
-		sin | c;								sout | c;
-		sin | ignore( c );						sout | c;
-
-		signed char sc;
-		sin | sc;								sout | sc;
-		sin | wdi( 3, sc );						sout | sc;
-		sin | ignore( sc );						sout | sc;
-		sin | ignore( wdi( 3, sc ) );			sout | sc;
-
-		unsigned char usc;
-		sin | usc;								sout | usc;
-		sin | wdi( 3, usc );					sout | usc;
-		sin | ignore( usc );					sout | usc;
-		sin | ignore( wdi( 3, usc ) );			sout | usc;
-
-		signed short int ssi;
-		sin | ssi;								sout | ssi;
-		sin | wdi( 3, ssi );					sout | ssi;
-		sin | ignore( ssi );					sout | ssi;
-		sin | ignore( wdi( 3, ssi ) );			sout | ssi;
-
-		unsigned short int usi;
-		sin | usi;								sout | usi;
-		sin | wdi( 3, usi );					sout | usi;
-		sin | ignore( usi );					sout | usi;
-		sin | ignore( wdi( 3, usi ) );			sout | usi;
-
-		signed int si;
-		sin | si;								sout | si;
-		sin | wdi( 3, si );						sout | si;
-		sin | ignore( si );						sout | si;
-		sin | ignore( wdi( 3, si ) );			sout | si;
-
-		unsigned int ui;
-		sin | ui;								sout | ui;
-		sin | wdi( 3, ui );						sout | ui;
-		sin | ignore( ui );						sout | ui;
-		sin | ignore( wdi( 3, ui ) );			sout | ui;
-
-		signed long int sli;
-		sin | sli;								sout | sli;
-		sin | wdi( 3, sli );					sout | sli;
-		sin | ignore( sli );					sout | sli;
-		sin | ignore( wdi( 3, sli ) );			sout | sli;
-
-		unsigned long int uli;
-		sin | uli;								sout | uli;
-		sin | wdi( 3, uli );					sout | uli;
-		sin | ignore( uli );					sout | uli;
-		sin | ignore( wdi( 3, uli ) );			sout | uli;
-
-		signed long long int slli;
-		sin | slli;								sout | slli;
-		sin | wdi( 3, slli );					sout | slli;
-		sin | ignore( slli );					sout | slli;
-		sin | ignore( wdi( 3, slli ) );			sout | slli;
-
-		unsigned long long int ulli;
-		sin | ulli;								sout | ulli;
-		sin | wdi( 3, ulli );					sout | ulli;
-		sin | ignore( ulli );					sout | ulli;
-		sin | ignore( wdi( 3, ulli ) );			sout | ulli;
-
-		float f;
-		sin | f;								sout | f;
-		sin | wdi( 8, f );						sout | f;
-		sin | ignore( f );						sout | f;
-		sin | ignore( wdi( 8, f ) );			sout | f;
-
-		double d;
-		sin | d;								sout | d;
-		sin | wdi( 8, d );						sout | d;
-		sin | ignore( d );						sout | d;
-		sin | ignore( wdi( 8, d ) );			sout | d;
-
-		long double ld;
-		sin | ld;								sout | ld;
-		sin | wdi( 8, ld );						sout | ld;
-		sin | ignore( ld );						sout | ld;
-		sin | ignore( wdi( 8, ld ) );			sout | ld;
-
-		float _Complex fc;
-		sin | fc;								sout | fc;
-		sin | wdi( 8, fc );						sout | fc;
-		sin | ignore( fc );						sout | fc;
-		sin | ignore( wdi( 8, fc ) );			sout | fc;
-
-		double _Complex dc;
-		sin | dc;								sout | dc;
-		sin | wdi( 8, dc );						sout | dc;
-		sin | ignore( dc );						sout | dc;
-		sin | ignore( wdi( 8, dc ) );			sout | dc;
-
-		long double _Complex ldc;
-		sin | ldc;								sout | ldc;
-		sin | wdi( 8, ldc );					sout | ldc;
-		sin | ignore( ldc );					sout | ldc;
-		sin | ignore( wdi( 8, ldc ) );			sout | ldc;
-	}
-#if defined( __SIZEOF_INT128__ )
-	{
-		int128 val;
-		for ( 15 ) {
-			sin | val;
-			sout | val;
-		}
-	}
-#endif // __SIZEOF_INT128__
-} // main
-
-// Local Variables: //
-// tab-width: 4 //
-// compile-command: "cfa -Wall -Wextra manipulatorsInput.cfa" //
-// End: //
Index: sts/manipulatorsOutput1.cfa
===================================================================
--- tests/manipulatorsOutput1.cfa	(revision 2d019af1e5dc0df0ad2bbe9c215b4c34968890c0)
+++ 	(revision )
@@ -1,120 +1,0 @@
-// 
-// Cforall Version 1.0.0 Copyright (C) 2019 University of Waterloo
-// 
-// manipulatorsOutput1.cfa -- 
-// 
-// Author           : Peter A. Buhr
-// Created On       : Sat Jun  8 18:04:11 2019
-// Last Modified By : Peter A. Buhr
-// Last Modified On : Fri May  1 11:51:44 2020
-// Update Count     : 9
-// 
-
-#include <fstream.hfa>
-
-int main() {
-	sout | "signed char";
-	signed char sc = -12;
-	printf( "%hhd %2hhd %5.2hhd %-5.2hhd %hho %#hho %hhx %#hhx %#8hhx %#8.10hhx %#8.3hhX %+-8.3hhd %08hhd\n", sc, sc, sc, sc, sc, sc, sc, sc, sc, sc, sc, sc, sc );
-	sout | sc | wd(2,sc) | wd(5,2,sc) | left(wd(5,2,sc)) | nobase(oct(sc)) | oct(sc) | nonl;
-	sout | nobase(hex(sc)) | hex(sc) | wd(8,hex(sc)) | wd(8,10,hex(sc)) | upcase(wd(8,3,hex(sc))) | nonl;
-	sout | left(sign(upcase(wd(8,3,sc)))) | pad0(wd(8,sc));
-
-	sout | "unsigned char";
-	unsigned char usc = 12;
-	printf( "%hhu %2hhu %5.2hhu %-5.2hhu %hho %#hho %hhx %#hhx %#8hhx %#8.10hhx %#8.3hhX %-8.3hhu %08hhu\n", usc, usc, usc, usc, usc, usc, usc, usc, usc, usc, usc, usc, usc );
-	sout | usc | wd(2,usc) | wd(5,2,usc) | left(wd(5,2,usc)) | nobase(oct(usc)) | oct(usc) | nonl;
-	sout | nobase(hex(usc)) | hex(usc) | wd(8,hex(usc)) | wd(8,10,hex(usc)) | upcase(wd(8,3,hex(usc))) | nonl;
-	sout | left(upcase(wd(8,3,usc))) | pad0(wd(8,usc));
-
-	sout | "signed short int";
-	signed short int si = -12;
-	printf( "%hd %2hd %5.2hd %-5.2hd %ho %#ho %hx %#hx %#8hx %#8.10hx %#8.3hX %+-8.3hd %08hd\n", si, si, si, si, si, si, si, si, si, si, si, si, si );
-	sout | si | wd(2,si) | wd(5,2,si) | left(wd(5,2,si)) | nobase(oct(si)) | oct(si) | nonl;
-	sout | nobase(hex(si)) | hex(si) | wd(8,hex(si)) | wd(8,10,hex(si)) | upcase(wd(8,3,hex(si))) | nonl;
-	sout | left(sign(upcase(wd(8,3,si)))) | pad0(wd(8,si));
-
-	sout | "unsigned short int";
-	unsigned short int usi = 12;
-	printf( "%hu %2hu %5.2hu %-5.2hu %ho %#ho %hx %#hx %#8hx %#8.10hx %#8.3hX %-8.3hu %08hu\n", usi, usi, usi, usi, usi, usi, usi, usi, usi, usi, usi, usi, usi );
-	sout | usi | wd(2,usi) | wd(5,2,usi) | left(wd(5,2,usi)) | nobase(oct(usi)) | oct(usi) | nonl;
-	sout | nobase(hex(usi)) | hex(usi) | wd(8,hex(usi)) | wd(8,10,hex(usi)) | upcase(wd(8,3,hex(usi))) | nonl;
-	sout | left(upcase(wd(8,3,usi))) | pad0(wd(8,usi));
-
-	sout | "signed int";
-	signed int i = -12;
-	printf( "%d %2d %5.2d %-5.2d %o %#o %x %#x %#8x %#8.10x %#8.3X %+-8.3d %08d\n", i, i, i, i, i, i, i, i, i, i, i, i, i );
-	sout | i | wd(2,i) | wd(5,2,i) | left(wd(5,2,i)) | nobase(oct(i)) | oct(i) | nonl;
-	sout | nobase(hex(i)) | hex(i) | wd(8,hex(i)) | wd(8,10,hex(i)) | upcase(wd(8,3,hex(i))) | nonl;
-	sout | left(sign(upcase(wd(8,3,i)))) | pad0(wd(8,i));
-
-	sout | "unsigned int";
-	unsigned int ui = 12;
-	printf( "%u %2u %5.2u %-5.2u %o %#o %x %#x %#8x %#8.10x %#8.3X %-8.3u %08u\n", ui, ui, ui, ui, ui, ui, ui, ui, ui, ui, ui, ui, ui );
-	sout | ui | wd(2,ui) | wd(5,2,ui) | left(wd(5,2,ui)) | nobase(oct(ui)) | oct(ui) | nonl;
-	sout | nobase(hex(ui)) | hex(ui) | wd(8,hex(ui)) | wd(8,10,hex(ui)) | upcase(wd(8,3,hex(ui))) | nonl;
-	sout | left(upcase(wd(8,3,ui))) | pad0(wd(8,ui));
-
-	sout | "signed long long int";
-	signed long long int lli = -12;
-	printf( "%lld %2lld %5.2lld %-5.2lld %llo %#llo %llx %#llx %#8llx %#8.10llx %#8.3llX %+-8.3lld %08lld\n", lli, lli, lli, lli, lli, lli, lli, lli, lli, lli, lli, lli, lli );
-	sout | lli | wd(2,lli) | wd(5,2,lli) | left(wd(5,2,lli)) | nobase(oct(lli)) | oct(lli) | nonl;
-	sout | nobase(hex(lli)) | hex(lli) | wd(8,hex(lli)) | wd(8,10,hex(lli)) | upcase(wd(8,3,hex(lli))) | nonl;
-	sout | left(sign(upcase(wd(8,3,lli)))) | pad0(wd(8,lli));
-
-	sout | "unsigned long long int";
-	unsigned long long int ulli = 12;
-	printf( "%llu %2llu %5.2llu %-5.2llu %llo %#llo %llx %#llx %#8llx %#8.10llx %#8.3llX %-8.3llu %08llu\n", ulli, ulli, ulli, ulli, ulli, ulli, ulli, ulli, ulli, ulli, ulli, ulli, ulli );
-	sout | ulli | wd(2,ulli) | wd(5,2,ulli) | left(wd(5,2,ulli)) | nobase(oct(ulli)) | oct(ulli) | nonl;
-	sout | nobase(hex(ulli)) | hex(ulli) | wd(8,hex(ulli)) | wd(8,10,hex(ulli)) | upcase(wd(8,3,hex(ulli))) | nonl;
-	sout | left(upcase(wd(8,3,ulli))) | pad0(wd(8,ulli));
-
-	sout | nl | "binary integral";
-	sout | bin(0) | bin(13) | upcase(bin(13)) | nobase(bin(13)) | left(wd(8,bin(13))) | wd(8,bin(13)) | nonl;
-	sout | pad0(left(wd(8,bin(13)))) | pad0(wd(8,bin(13))) | pad0(wd(8,10,bin(13))) | pad0(wd(8,6,bin(13)));
-
-
-	sout | nl | "float";
-	float f = 3.537;
-	printf( "%g  %8g %#8g %g %8g %8.0g %#8.0g %8.2g %#8.2g %-8.2g %-8.2g %-#8.2g %-+8.2g %-+#8.2g %08.2g %8.2E %8.2a %#8.2A %#8.2e\n",
-		    0.0,3.0F,3.0F, f,  f,    f,     f,    f,     f,  3.0F,      f,      f,      f,       f,     f,    f,    f,     f,     f );
-	sout | 0.0 | wd(8, 3.0F) | nodp(wd(8, 3.0F)) | f | wd(8, f) | ws(8,0, f) | nodp(ws(8,0, f)) | ws(8,2, f) | nodp(ws(8,2, f)) | nonl;
-	sout | left(ws(8,2, 3.0F)) | left(ws(8,2, f)) | left(nodp(ws(8,2, f))) | left(sign(ws(8,2, f))) | left(sign(nodp(ws(8,2, f)))) | nonl;
-	sout | pad0(ws(8,2, f)) | upcase(wd(8,2, sci(f))) | wd(8,2, hex(f)) | upcase(wd(8,2, hex(f))) | nodp(wd(8,2, sci(f)));
-
-	sout | "double";
-	double d = 3.537;
-	printf( "%g  %#8f %g %8f %#8.0f %8.0f %8.2f %-8.2f %-+#8.2f %08.2F %8.2E %8.2a %8.2A %8.2e\n",
-			0.0,  3.0, d,  d,     d,    d,    d,     d,       d,     d,    d,    d,    d,    d );
-	sout | 0.0 | wd(8, 3.0) | d | wd(8, d) | nodp(wd(8,0, d)) | wd(8,0, d) | wd(8,2, d) | nonl;
-	sout | left(wd(8,2, d)) | left(sign(wd(8,2, d))) | pad0(upcase(wd(8,2, d))) | upcase(wd(8,2, sci(d))) | wd(8,2, hex(d)) | upcase(wd(8,2, hex(d))) | wd(8,2, sci(d));
-
-	sout | "long double";
-	long double ld = 3.537;
-	printf( "%Lg  %#8Lf %Lg %8Lf %#8.0Lf %8.0Lf %8.2Lf %-8.2Lf %-+#8.2Lf %08.2LF %8.2LE %8.2La %8.2LA %8.2Le\n",
-			0.0L,  3.0L, ld,  ld,     ld,    ld,    ld,     ld,       ld,     ld,    ld,    ld,    ld,    ld );
-	sout | 0.0L | wd(8, 3.0L) | ld | wd(8, ld) | nodp(wd(8,0, ld)) | wd(8,0, ld) | wd(8,2, ld) | nonl;
-	sout | left(wd(8,2, ld)) | left(sign(wd(8,2, ld))) | pad0(upcase(wd(8,2, ld))) | upcase(wd(8,2, sci(ld))) | wd(8,2, hex(ld)) | upcase(wd(8,2, hex(ld))) | wd(8,2, sci(ld));
-
-
-	sout | nl | "char";
-	char c = 'a';
-	printf( "%c %2c %5c %-5c %hho %#hho %hhx %#hhx %#8hhx %#8hhX %-8c %8c\n", c, c, c, c, c, c, c, c, c, c, c, c );
-	sout | c | ' ' | wd(2,c) | wd(5,c) | left(wd(5,c)) | nobase(oct(c)) | oct(c) | nonl;
-	sout | nobase(hex(c)) | hex(c) | wd(8,hex(c)) | upcase(wd(8,hex(c))) | left(wd(8,c)) | wd(8,c);
-
-	sout | nl | "string";
-	const char * s = "abcd";
-	printf( "%s %8s %6.8s %-8s\n", s, s, s, s );
-	sout | s | wd(8,s) | wd(6,8,s) | left(wd(8,s));
-
-	sout | nl | "binary string";
-	sout | bin("0") | bin(s) | oct(s) | hex(s);
-	sout | nobase(bin("0")) | nobase(bin(s)) | nobase(oct(s)) | nobase(hex(s));
-	sout | nobase(wd(8,bin("0"))) | nobase(wd(8,bin(s))) | nobase(wd(4,oct(s))) | nobase(wd(3,hex(s)));
-}
-
-// Local Variables: //
-// tab-width: 4 //
-// compile-command: "cfa -Wall -Wextra amanipulatorsOutput1.cfa" //
-// End: //
Index: sts/manipulatorsOutput2.cfa
===================================================================
--- tests/manipulatorsOutput2.cfa	(revision 2d019af1e5dc0df0ad2bbe9c215b4c34968890c0)
+++ 	(revision )
@@ -1,55 +1,0 @@
-// 
-// Cforall Version 1.0.0 Copyright (C) 2019 University of Waterloo
-// 
-// manipulatorsOutput2.cfa -- 
-// 
-// Author           : Peter A. Buhr
-// Created On       : Sat Jun  8 18:04:11 2019
-// Last Modified By : Peter A. Buhr
-// Last Modified On : Sun Nov 15 08:11:53 2020
-// Update Count     : 9
-// 
-
-#include <fstream.hfa>
-
-int main() {
-	sout | nl;
-    sout | bin(0) | bin(27HH) | bin(27H) | bin(27) | bin(27L);
-    sout | bin(-27HH) | bin(-27H) | bin(-27) | bin(-27L);
-    sout | oct(0) | oct(27HH) | oct(27H) | oct(27) | oct(27L);
-    sout | oct(-27HH) | oct(-27H) | oct(-27) | oct(-27L);
-    sout | hex(0) | hex(27HH) | hex(27H) | hex(27) | hex(27L);
-    sout | hex(-27HH) | hex(-27H) | hex(-27) | hex(-27L);
-    sout | hex(0.0) | hex(27.5F) | hex(27.5) | hex(27.5L);
-    sout | hex(-27.5F) | hex(-27.5) | hex(-27.5L);
-	sout | sci(0.0) | sci(27.5) | sci(-27.5);
-	sout | upcase(bin(27)) | upcase(hex(27)) | upcase(27.5e-10) | upcase(hex(27.5));
-	sout | nobase(bin(27)) | nobase(oct(27)) | nobase(hex(27));
-    sout | 0. | nodp(0.) | 27.0 | nodp(27.0) | nodp(27.5);
-    sout | sign(27) | sign(-27) | sign(27.) | sign(-27.) | sign(27.5) | sign(-27.5);
-	sout | wd( 4, 34) | wd( 3, 34 ) | wd( 2, 34 );
-	sout | wd( 10, 4.) | wd( 9, 4. ) | wd( 8, 4. );
-	sout | wd( 4, "ab" ) | wd( 3, "ab" ) | wd( 2, "ab" );
-	sout | wd( 4, 34567 ) | wd( 3, 34567 ) | wd( 2, 34567 );
-	sout | wd( 4, 3456. ) | wd( 3, 3456. ) | wd( 2, 3456. );
-	sout | wd( 4, "abcde" ) | wd( 3, "abcde" ) | wd( 2,"abcde" );
-	sout | wd(4,3, 34) | wd(8,4, 34) | wd(10,10, 34);
-	sout | wd( 4,1, 3456 ) | wd( 8,2, 3456 ) | wd( 10,3, 3456 );
-	sout | wd( 4,0, 0 ) | wd( 3,10, 34 );
-	sout | wd(6,3, 27.5) | wd(8,1, 27.5) | wd(8,0, 27.5) | wd(3,8, 27.5);
-	sout | wd(6,3, 27.0) | wd(6,3, 27.5) | wd(8,1, 27.5) | wd(8,0, 27.5) | wd(3,8, 27.5);
-	sout | left(wd(4,27)) | left(wd(10,27.)) | left(wd(10,27.5)) | left(wd(4,3,27)) | left(wd(10,3,27.5));
-	sout | ws(6,6, 234.567) | ws(6,5, 234.567) | ws(6,4, 234.567) | ws(6,3, 234.567);
-	sout | ws(6,6, 234567.) | ws(6,5, 234567.) | ws(6,4, 234567.) | ws(6,3, 234567.);
-	sout | ws(3,6, 234567.) | ws(4,6, 234567.) | ws(5,6, 234567.) | ws(6,6, 234567.);
-	sout | wd(6, "abcd") | wd(8, "abcd") | wd(2, "abcd");
-	sout | wd(6,8, "abcd") | wd(6,8, "abcdefghijk") | wd(6,3, "abcd");
-    sout | pad0(wd(4,27)) | pad0(wd(4,3,27)) | pad0(wd(8,3,27.5));
-
-//	sexit | 3 | 4;
-}
-
-// Local Variables: //
-// tab-width: 4 //
-// compile-command: "cfa -Wall -Wextra manipulatorsOutput2.cfa" //
-// End: //
Index: sts/manipulatorsOutput3.cfa
===================================================================
--- tests/manipulatorsOutput3.cfa	(revision 2d019af1e5dc0df0ad2bbe9c215b4c34968890c0)
+++ 	(revision )
@@ -1,387 +1,0 @@
-#include <fstream.hfa>
-
-int main() {
-	// int128 printing
-	int128 x = 0xffff, y = 0x2;
-
-	x <<= 64;
-	x += 0xffff;
-	y <<= 64;
-	y += 0123;
-	y |= 0x8000000000000000;
-	x = -x;
-	sout | x;
-	sout | sign(x);
-	x = -x;
-	sout | sign(x);
-	sout | nl;
-
-	int128 divisor = 0x4b3b4ca85a86c47a;
-	divisor <<= 16;
-	divisor += 0x98a224000000000;
-	
-	// base 2
-	sout | "base 2";
-	sout | bin(x);
-	sout | upcase(bin(x));
-	sout | nobase(bin(x));
-	sout | wd( 95, upcase(bin(x)) );
-	sout | wd( 95,90, upcase(bin(x)) );
-	sout | wd( 25,30, upcase(hex(x)) );
-	sout | nl;
-
-	sout | bin(divisor);
-	sout | upcase(bin(divisor));
-	sout | wd(38, upcase(bin(divisor)));
-	sout | wd(40, upcase(bin(divisor)));
-	sout | wd(40, 38, upcase(bin(divisor)));
-	sout | wd(40, 30, upcase(bin(divisor)));
-	sout | pad0(sign(wd(40, 38, upcase(bin(divisor)))));
-	sout | nl;
-	
-	// oct
-	sout | "base 8";
-	printf( "%#.10o\n", 0123 );
-	sout | wd( 1,10, oct(0123) );
-	sout | oct(x);
-	sout | nobase(oct(x));
-	sout | wd( 45, oct(0123) );
-	sout | wd( 45,40, oct(0123) );
-	sout | wd( 40,45, oct(0123) );
-	sout | wd( 45, oct(x) );
-	sout | wd( 45,40, oct(x) );
-	sout | wd( 40,45, oct(x) );
-
-	sout | left(wd( 45, oct(0123) )) | 'X';
-	sout | left(wd( 45, oct(x) )) | 'X';
-	sout | left(wd( 45, oct(y) )) | 'X';
-	sout | left(wd( 45,40, oct(0123) )) | 'X';
-	sout | left(wd( 45,40, oct(x) )) | 'X';
-	sout | left(wd( 45,40, oct(y) )) | 'X';
-	sout | left(wd( 40,45, oct(0123) )) | 'X';
-	sout | left(wd( 40,45, oct(x) )) | 'X';
-	sout | left(wd( 40,45, oct(y) )) | 'X';
-	printf( "%#-1.10oX\n", 0123 );
-	sout | left(wd( 1,10, oct(0123) )) | 'X';
-	printf( "%#-40.10oX\n", 0123 );
-	sout | left(wd( 40,10, oct(0123) )) | 'X';
-	sout | left(wd( 40,10, oct(x) )) | 'X';
-	sout | left(wd( 40,10, oct(y) )) | 'X';
-	sout | left(wd( 10,40, oct(0123) )) | 'X';
-	sout | left(wd( 10,40, oct(x) )) | 'X';
-	sout | left(wd( 10,40, oct(y) )) | 'X';
-
-	y = 01234567;
-	sout | left(wd( 45, 49, oct(y) )) | 'X';
-	y = -y;
-	sout | wd(0, oct(y)) | 'Y';
-	sout | left(wd(0, oct(y))) | 'Y';
-	sout | nl;
-
-	sout | upcase(oct(divisor));
-	sout | wd(38, upcase(oct(divisor)));
-	sout | wd(40, upcase(oct(divisor)));
-	sout | wd(40, 38, upcase(oct(divisor)));
-	sout | wd(40, 30, upcase(oct(divisor)));
-	sout | pad0(sign(wd(40, 38, upcase(oct(divisor)))));
-	sout | nl;
-
-	// decimal
-	sout | "base 10";
-	sout | divisor;
-	sout | wd(2, divisor);
-	sout | wd(3, divisor);
-	sout | wd(10, divisor);
-	sout | wd(24, divisor);
-	sout | wd(38, divisor);
-	sout | wd(39, divisor);
-	sout | wd(40, divisor);
-	
-	sout | wd(40, 30, divisor);
-	sout | wd(40, 38, divisor);
-	sout | wd(40, 40, divisor);
-	sout | pad0(wd(40, divisor));
-	sout | pad0(sign(wd(40,divisor)));
-	sout | nl;
-	
-	// hex
-	sout | "base 16";
-
-	sout | hex(x);
-	sout | upcase(hex(x));
-	sout | nobase(hex(x));
-	sout | wd( 45, upcase(hex(x)) );
-	sout | wd( 45,40, upcase(hex(x)) );
-	sout | wd( 45,49, upcase(hex(x)) );
-	sout | left(wd( 45, upcase(hex(x)) )) | 'X';
-	sout | left(wd( 45,40, upcase(hex(x)) )) | 'X';
-	sout | left(wd( 45,49, upcase(hex(x)) )) | 'X';
-	sout | nl;
-
-	sout | upcase(hex(divisor));
-	sout | wd(38, upcase(hex(divisor)));
-	sout | wd(40, upcase(hex(divisor)));
-	sout | wd(40, 38, upcase(hex(divisor)));
-	sout | wd(40, 30, upcase(hex(divisor)));
-	sout | pad0(sign(wd(40, 38, upcase(hex(divisor)))));
-	sout | nl;
-
-	// extras
-	sout | "extras";
-	sout | bin(divisor);
-	sout | upcase(bin(divisor));
-	sout | oct(divisor);
-	sout | hex(divisor);
-	sout | upcase(hex(divisor));
-	sout | nobase(bin(divisor)) | nobase(oct(divisor)) | nobase(hex(divisor));
-	sout | sign(divisor);
-	sout | -divisor;
-	sout | sign(-divisor);
-	sout | wd(2, divisor);
-	sout | wd(3,10,divisor);
-	sout | left(wd(40,divisor)) | 'X';
-	sout | left(sign(wd(40, divisor))) | 'X';
-	sout | left(sign(wd(0,40, divisor))) | 'X';
-	printf( "%-+1.40dX\n", 123456789 );
-
-	int128 i128;
-	unsigned int128 ui128;
-	i128 = -1000;
-	for ( 10 ) {
-		sout | left( sign( wd( 2, i128 ) ) ) | left( wd( 2, hex( i128 ) ) ) | left( wd( 2, oct( i128 ) ) );
-		sout | left( wd( 2, bin( i128 ) ) );
-		i128 += 1;
-	}
-	sout | nl;
-	sout | nl;
-
-	sout | left( wd( 160, i128 ) );
-	sout | left( sign( wd( 0, i128 ) ) );
-	sout | left( wd( 0, hex( i128 ) ) );
-	sout | left( wd( 0, oct( i128 ) ) );
-	sout | left( wd( 0, bin( i128 ) ) );
-	sout | left( sign( wd( 1, i128 ) ) );
-	sout | left( wd( 1, hex( i128 ) ) );
-	sout | left( wd( 1, oct( i128 ) ) );
-	sout | left( wd( 1, bin( i128 ) ) );
-	sout | left( sign( wd( 32, i128 ) ) );
-	sout | left( wd( 32, hex( i128 ) ) );
-	sout | left( wd( 32, oct( i128 ) ) );
-	sout | left( wd( 32, bin( i128 ) ) );
-	sout | left( sign( wd( 160, i128 ) ) );
-	sout | left( wd( 160, hex( i128 ) ) );
-	sout | left( wd( 160, oct( i128 ) ) );
-	sout | left( wd( 160, bin( i128 ) ) );
-	sout | left( sign( wd( 160, i128 ) ) );
-	sout | left( wd( 160, upcase( hex( i128 ) ) ) );
-	sout | left( wd( 160, upcase( oct( i128 ) ) ) );
-	sout | left( wd( 160, upcase( bin( i128 ) ) ) );
-
-	x = 1234;
-	x <<= 64;
-	x += 5678;
-	sout | x | 'X';
-	sout | wd(45, 20, oct(x)) | 'X';
-	sout | left(wd(45, 20, oct(x))) | 'X';
-	sout | wd(45, 21, oct(x)) | 'X';
-	sout | left(wd(45, 21, oct(x))) | 'X';
-	sout | wd(45, 22, oct(x)) | 'X';
-	sout | left(wd(45, 22, oct(x))) | 'X';
-	sout | wd(45, 36, oct(x)) | 'X';
-	sout | left(wd(45, 36, oct(x))) | 'X';
-	sout | wd(45, 46, oct(x)) | 'X';
-	sout | left(wd(45, 46, oct(x))) | 'X';
-	sout | left(wd(45, 20, oct(x))) | 'X';
-	sout | left(wd(45, 22, oct(x))) | 'X';
-	sout | left(wd(45, 24, oct(x))) | 'X';
-	sout | left(wd(45, 26, oct(x))) | 'X';
-	sout | left(wd(45, 28, oct(x))) | 'X';
-
-	y = -x;
-	sout | oct(y) | 'Y';
-	sout | left(wd(0, oct(y))) | 'Y';
-	sout | left(wd(20, oct(y))) | 'Y';
-	sout | left(wd(26, oct(y))) | 'Y';
-	sout | left(wd(40, oct(y))) | 'Y';
-	sout | left(wd(41, oct(y))) | 'Y';
-	sout | left(wd(45, oct(y))) | 'Y';
-	sout | left(wd(45, 49, oct(y))) | 'Y';
-	sout | left(wd(45, 4, oct(y))) | 'Y';
-	sout | left(wd( 45, oct(0123) )) | 'X';
-	sout | left(wd( 45, oct(x) )) | 'X';
-	sout | left(wd( 45,40, oct(0123) )) | 'X';
-	sout | left(wd( 45,40, oct(x) )) | 'X';
-	sout | left(wd( 40,45, oct(0123) )) | 'X';
-	sout | left(wd( 40,45, oct(x) )) | 'X'; 
-	sout | left(wd( 40,10, oct(0123) )) | 'X';
-	sout | left(wd( 40,10, oct(x) )) | 'X';
-	sout | left(wd( 40,10, oct(y) )) | 'X';
-	sout | left(wd( 10,40, oct(0123) )) | 'X';
-	sout | left(wd( 10,40, oct(x) )) | 'X';
-	sout | left(wd( 10,40, oct(y) )) | 'X';
-
-	x = 0xffff, y = 0x2;
-	int128 z = 0x_ffff_ffff_ffff_ffff;
-	x <<= 64;
-	x += 0xffff;
-	y <<= 64;
-	y += 0123;
-	y |= 0x8000000000000000;
-
-	for ( int128 i = 0; i < 8; i += 1 ) {
-		sout | nobase(oct(z + 0x8000000000000000 * i));
-	} // for
-
-	sout | bin(x);
-	sout | upcase(bin(x));
-	sout | nobase(bin(x));
-
-	sout | wd( 95, upcase(bin(x)) );
-	sout | wd( 95,90, upcase(bin(x)) );
-	sout | wd( 90,95, upcase(bin(x)) );
-
-	sout | left(bin(x));
-	sout | left(upcase(bin(x)));
-	sout | left(nobase(bin(x)));
-
-	sout | left(wd( 95, upcase(bin(x)) ));
-	sout | left(wd( 95,90, upcase(bin(x)) ));
-	sout | left(wd( 95,81, upcase(bin(x)) ));
-
-	sout | left(wd( 95,80, upcase(bin(x)) ));
-	sout | left(wd( 95,79, upcase(bin(x)) ));
-	sout | left(wd( 95,90, upcase(bin(0xffff)) ));
-
-	sout | left(wd( 68,64, upcase(bin(0xffff)) ));
-	sout | left(wd( 90,95, upcase(bin(x)) ));
-
-	printf( "%#30.25X\n", 0xffff );
-	sout | wd( 30,25, upcase(hex(0xffff)) );
-	printf( "%#25.30X\n", 0xffff );
-	sout | wd( 25,30, upcase(hex(0xffff)) );
-
-	sout | oct(y);
-	sout | wd( 45, oct(y) );
-	sout | left(wd( 45, oct(y) )) | 'X';
-
-	sout | left(wd( 40,10, oct(0123) )) | 'X';
-	sout | left(wd( 40,10, oct(x) )) | 'X';
-	sout | left(wd( 40,10, oct(y) )) | 'X';
-	sout | left(wd( 10,40, oct(0123) )) | 'X';
-	sout | left(wd( 10,40, oct(x) )) | 'X';
-	sout | left(wd( 10,40, oct(y) )) | 'X';
-
-	i128 = -10;
-	for ( 25 ) {
-		sout | left( sign( wd( 20, i128 ) ) ) | left( wd( 20, hex( i128 ) ) ) | left( wd( 20, oct( i128 ) ) );
-		sout | left( wd( 20, bin( i128 ) ) );
-		i128 += 1;
-	} // for
-	sout | nl;
-
-	i128 = 0x7fffffffffffffff;
-	i128 <<= 64;
-	i128 += 0xfffffffffffffffa;
-
-//	for ( 20 ) {
-	volatile int stop = 20;								// gcc compiler bug
-	for ( int i = 0; i < stop; i += 1 ) {
-		sout | i128;
-		sout | left( sign( wd( 45, i128 ) ) ) | left( wd( 45, hex( i128 ) ) ) | left( wd( 45, oct( i128 ) ) );
-		sout | left( wd( 45, bin( i128 ) ) );
-		i128 += 1;
-	} // for
-	sout | nl;
-
-	ui128 = 0x7fffffffffffffff;
-	ui128 <<= 64;
-	ui128 += 0xfffffffffffffffa;
-	
-	for ( 20 ) {
-		sout | ui128;
-		ui128 += 1;
-	}
-	sout | nl;
-
-	ui128 = 0xffffffffffffffff;
-	ui128 <<= 64;
-	ui128 += 0xfffffffffffffffa;
-	
-	for ( 20 ) {
-		sout | ui128;
-		ui128 += 1;
-	}
-
-	// int128 constants (and printing)
-	int128 v = 0xffff_ffffffff_ffffffff_L128 + 0xffffffff_ffffffff_ffffffff_ffffffff_L128;
-	sout | hex(v);
-	v = 0xffff_ffffffff_ffffffff_L128 + 0xffffffff_ffffffff_ffffffff_ffffffff_L128;
-	sout | hex(v);
-	sout | nl;
-
-	sout | "binary";
-	sout | bin(v);
-	sout | bin(0b_11111111111111111111111111111111_L128);
-	sout | bin(0b_11111111111111111111111111111111_11111111111111111111111111111111_L128);
-	sout | bin(0b_11111111111111111111111111111111_11111111111111111111111111111111_11111111111111111111111111111111_L128);
-	sout | bin(0b_11111111111111111111111111111111_11111111111111111111111111111111_11111111111111111111111111111111_11111111111111111111111111111111_L128);
-	sout | hex(0b_10100010001101000101011001111000_L128);
-	sout | hex(0b_10100010001101000101011001111000_10100111011001010100001100100001_L128);
-	sout | hex(0b_10100010001101000101011001111000_10100111011001010100001100100001_11000010001101000101011001111000_L128);
-	sout | hex(0b_10100010001101000101011001111000_10100111011001010100001100100001_11000010001101000101011001111000_11010111010101010100001100100001_L128);
-	sout | nl;
-
-	sout | "octal";
-	sout | oct(v);
-	sout | oct(0_123456_L128u);
-	sout | oct(0_123456_65432_uL128);
-	sout | oct(0_123456_65432_34567_L128);
-	sout | oct(0_123456_65432_34567_76543_L128);
-	sout | oct(0_123456_65432_34567_76543_23456_L128);
-	sout | oct(0_123456_65432_34567_76543_23456_65432_L128);
-	sout | oct(0_123456_65432_34567_76543_23456_65432_34567_L128);
-	sout | oct(0_123456_65432_34567_76543_23456_65432_34567_76543_L128);
-	sout | oct(0_1111111111111111111L);
-	sout | oct(0_11111111111111111111L);
-	sout | oct(0_111111111111111111111L);
-	sout | nl;
-
-	sout | "decimal";
-	sout | v;
-	sout | 42_798_L128 | oct(42_798_L128);
-	sout | 1_402_432_282_L128 | oct(1_402_432_282_L128);
-	sout | 45_954_901_031_287_L128 | oct(45_954_901_031_287_L128);
-	sout | 1_505_850_196_993_244_515_L128 | oct(1_505_850_196_993_244_515_L128);
-	sout | 394_749_758_663_249_135_511_342_L128 | oct(394_749_758_663_249_135_511_342_L128);
-	sout | 12_935_154_696_204_706_112_391_834_394_L128 | oct(12_935_154_696_204_706_112_391_834_394_L128);
-	sout | 423_859_149_128_410_414_395_372_834_994_551_L128 | oct(423_859_149_128_410_414_395_372_834_994_551_L128);
-	sout | 13_889_016_598_639_747_063_234_935_497_057_631_587_L128 | oct(13_889_016_598_639_747_063_234_935_497_057_631_587_L128);
-	sout | 1234567890123456789_uL128;
-	sout | 1234567890123456789_L128u;
-	sout | 0x_7fffffff_ffffffff_ffffffff_ffffffff_L128;
-	sout | 0x_ffffffff_ffffffff_ffffffff_ffffffff_L128;
-	sout | 0x_80000000_00000000_00000000_00000000_L128;
-	unsigned int128 vv;
-	vv = 340282366920938463463374607431768211455_L128u;
-	sout | vv;
-	vv = 170141183460469231731687303715884105727_L128;
-	sout | vv;
-	sout | nl;
-
-	sout | "hexadecimal";
-	sout | hex(v);
-	sout | hex(0x_ffffffff_L128);
-	sout | hex(0x_ffffffff_ffffffff_L128);
-	sout | hex(0x_ffffffff_ffffffff_ffffffff_L128);
-	sout | hex(0xffffffff_ffffffff_ffffffff_ffffffff_L128);
-	sout | hex(0x_a2345678_L128);
-	sout | hex(0x_a2345678_b7654321_L128);
-	sout | hex(0x_a2345678_b7654321_c2345678_L128);
-	sout | hex(0x_a2345678_b7654321_c2345678_d7654321_L128);
-	sout | nl;
-} // main
-
-// Local Variables: //
-// tab-width: 4 //
-// compile-command: "cfa -Wall -Wextra manipulatorsOutput3.cfa" //
-// End: //
