Index: src/Common/PassVisitor.impl.h
===================================================================
--- src/Common/PassVisitor.impl.h	(revision ed235b60f3ae5366fcfed2f86f609b40ebe9c0ce)
+++ src/Common/PassVisitor.impl.h	(revision 8024bc8cf76c8f650df1a6445c978552ea39985e)
@@ -66,4 +66,5 @@
 	DeclList_t* beforeDecls = visitor.get_beforeDecls();
 	DeclList_t* afterDecls  = visitor.get_afterDecls();
+	SemanticError errors;
 
 	for ( std::list< Declaration* >::iterator i = decls.begin(); ; ++i ) {
@@ -73,10 +74,18 @@
 		if ( i == decls.end() ) break;
 
-		// run mutator on declaration
-		maybeAccept( *i, visitor );
+		try {
+			// run visitor on declaration
+			maybeAccept( *i, visitor );
+		} catch( SemanticError &e ) {
+			e.set_location( (*i)->location );
+			errors.append( e );
+		}
 
 		// splice in new declarations before current decl
 		if ( !empty( beforeDecls ) ) { decls.splice( i, *beforeDecls ); }
 	}
+	if ( ! errors.isEmpty() ) {
+		throw errors;
+	}
 }
 
@@ -86,4 +95,5 @@
 	DeclList_t* beforeDecls = mutator.get_beforeDecls();
 	DeclList_t* afterDecls  = mutator.get_afterDecls();
+	SemanticError errors;
 
 	for ( std::list< Declaration* >::iterator i = decls.begin(); ; ++i ) {
@@ -92,10 +102,17 @@
 
 		if ( i == decls.end() ) break;
-
-		// run mutator on declaration
-		*i = maybeMutate( *i, mutator );
+		try {
+			// run mutator on declaration
+			*i = maybeMutate( *i, mutator );
+		} catch( SemanticError &e ) {
+			e.set_location( (*i)->location );
+			errors.append( e );
+		}
 
 		// splice in new declarations before current decl
 		if ( !empty( beforeDecls ) ) { decls.splice( i, *beforeDecls ); }
+	}
+	if ( ! errors.isEmpty() ) {
+		throw errors;
 	}
 }
@@ -166,4 +183,5 @@
 
 		} catch ( SemanticError &e ) {
+			e.set_location( (*i)->location );
 			errors.append( e );
 		}
@@ -275,4 +293,22 @@
 //------------------------------------------------------------------------------------------------------------------------------------------------------------------------
 
+// A NOTE ON THE ORDER OF TRAVERSAL
+//
+// Types and typedefs have their base types visited before they are added to the type table.  This is ok, since there is
+// no such thing as a recursive type or typedef.
+//
+//             typedef struct { T *x; } T; // never allowed
+//
+// for structs/unions, it is possible to have recursion, so the decl should be added as if it's incomplete to begin, the
+// members are traversed, and then the complete type should be added (assuming the type is completed by this particular
+// declaration).
+//
+//             struct T { struct T *x; }; // allowed
+//
+// It is important to add the complete type to the symbol table *after* the members/base has been traversed, since that
+// traversal may modify the definition of the type and these modifications should be visible when the symbol table is
+// queried later in this pass.
+//
+// TODO: figure out whether recursive contexts are sensible/possible/reasonable.
 
 //--------------------------------------------------------------------------
@@ -432,5 +468,5 @@
 	indexerAddEnum( node );
 
-	// unlike structs, contexts, and unions, enums inject their members into the global scope
+	// unlike structs, traits, and unions, enums inject their members into the global scope
 	maybeAccept( node->parameters, *this );
 	maybeAccept( node->members   , *this );
@@ -445,5 +481,5 @@
 	indexerAddEnum( node );
 
-	// unlike structs, contexts, and unions, enums inject their members into the global scope
+	// unlike structs, traits, and unions, enums inject their members into the global scope
 	maybeMutateRef( node->parameters, *this );
 	maybeMutateRef( node->members   , *this );
@@ -496,4 +532,7 @@
 	}
 
+	// see A NOTE ON THE ORDER OF TRAVERSAL, above
+	// note that assertions come after the type is added to the symtab, since they are not part of the type proper
+	// and may depend on the type itself
 	indexerAddType( node );
 
@@ -515,4 +554,7 @@
 	}
 
+	// see A NOTE ON THE ORDER OF TRAVERSAL, above
+	// note that assertions come after the type is added to the symtab, since they are not part of the type proper
+	// and may depend on the type itself
 	indexerAddType( node );
 
@@ -641,9 +683,12 @@
 void PassVisitor< pass_type >::visit( IfStmt * node ) {
 	VISIT_START( node );
-
-	visitExpression( node->condition );
-	node->thenPart = visitStatement( node->thenPart );
-	node->elsePart = visitStatement( node->elsePart );
-
+	{
+		// if statements introduce a level of scope (for the initialization)
+		auto guard = makeFuncGuard( [this]() { indexerScopeEnter(); }, [this]() { indexerScopeLeave(); } );
+		acceptAll( node->get_initialization(), *this );
+		visitExpression( node->condition );
+		node->thenPart = visitStatement( node->thenPart );
+		node->elsePart = visitStatement( node->elsePart );
+	}
 	VISIT_END( node );
 }
@@ -653,5 +698,7 @@
 	MUTATE_START( node );
 	{
-		auto guard = makeFuncGuard( [this]() { indexerScopeEnter(); }, [this]() { indexerScopeLeave(); } );
+		// if statements introduce a level of scope (for the initialization)
+		auto guard = makeFuncGuard( [this]() { indexerScopeEnter(); }, [this]() { indexerScopeLeave(); } );
+		maybeMutateRef( node->get_initialization(), *this );
 		node->condition = mutateExpression( node->condition );
 		node->thenPart  = mutateStatement ( node->thenPart  );
@@ -689,4 +736,5 @@
 	VISIT_START( node );
 	{
+		// for statements introduce a level of scope (for the initialization)
 		auto guard = makeFuncGuard( [this]() { indexerScopeEnter(); }, [this]() { indexerScopeLeave(); } );
 		maybeAccept( node->initialization, *this );
@@ -702,4 +750,5 @@
 	MUTATE_START( node );
 	{
+		// for statements introduce a level of scope (for the initialization)
 		auto guard = makeFuncGuard( [this]() { indexerScopeEnter(); }, [this]() { indexerScopeLeave(); } );
 		maybeMutateRef( node->initialization, *this );
@@ -830,4 +879,5 @@
 	VISIT_START( node );
 	{
+		// catch statements introduce a level of scope (for the caught exception)
 		auto guard = makeFuncGuard( [this]() { indexerScopeEnter(); }, [this]() { indexerScopeLeave(); } );
 		maybeAccept( node->decl, *this );
@@ -842,4 +892,5 @@
 	MUTATE_START( node );
 	{
+		// catch statements introduce a level of scope (for the caught exception)
 		auto guard = makeFuncGuard( [this]() { indexerScopeEnter(); }, [this]() { indexerScopeLeave(); } );
 		maybeMutateRef( node->decl, *this );
Index: src/Common/PassVisitor.proto.h
===================================================================
--- src/Common/PassVisitor.proto.h	(revision ed235b60f3ae5366fcfed2f86f609b40ebe9c0ce)
+++ src/Common/PassVisitor.proto.h	(revision 8024bc8cf76c8f650df1a6445c978552ea39985e)
@@ -179,5 +179,5 @@
 
 template<typename pass_type>
-static inline auto indexer_impl_enterScope( pass_type &, int ) {}
+static inline auto indexer_impl_enterScope( pass_type &, long ) {}
 
 template<typename pass_type>
@@ -187,5 +187,5 @@
 
 template<typename pass_type>
-static inline auto indexer_impl_leaveScope( pass_type &, int ) {}
+static inline auto indexer_impl_leaveScope( pass_type &, long ) {}
 
 
@@ -197,5 +197,5 @@
                                                                                                                                \
 template<typename pass_type>                                                                                                   \
-static inline void indexer_impl_##func ( pass_type &, long, type ) {}                                                          \
+static inline void indexer_impl_##func ( pass_type &, long, type ) { }                                                          \
 
 INDEXER_FUNC( addId     , DeclarationWithType * );
@@ -215,5 +215,5 @@
 
 template<typename pass_type>
-static inline auto indexer_impl_addStructFwd( pass_type &, int, StructDecl * ) {}
+static inline auto indexer_impl_addStructFwd( pass_type &, long, StructDecl * ) {}
 
 template<typename pass_type>
@@ -225,5 +225,5 @@
 
 template<typename pass_type>
-static inline auto indexer_impl_addUnionFwd( pass_type &, int, UnionDecl * ) {}
+static inline auto indexer_impl_addUnionFwd( pass_type &, long, UnionDecl * ) {}
 
 template<typename pass_type>
@@ -235,5 +235,5 @@
 
 template<typename pass_type>
-static inline auto indexer_impl_addStruct( pass_type &, int, const std::string & ) {}
+static inline auto indexer_impl_addStruct( pass_type &, long, const std::string & ) {}
 
 template<typename pass_type>
@@ -245,3 +245,3 @@
 
 template<typename pass_type>
-static inline auto indexer_impl_addUnion( pass_type &, int, const std::string & ) {}
+static inline auto indexer_impl_addUnion( pass_type &, long, const std::string & ) {}
Index: src/GenPoly/Box.cc
===================================================================
--- src/GenPoly/Box.cc	(revision ed235b60f3ae5366fcfed2f86f609b40ebe9c0ce)
+++ src/GenPoly/Box.cc	(revision 8024bc8cf76c8f650df1a6445c978552ea39985e)
@@ -628,6 +628,5 @@
 					} else {
 						// xxx - should this be an assertion?
-						std::string x = env ? toString( *env ) : "missing env";
-						throw SemanticError( x + "\n" + "unbound type variable: " + tyParm->first + " in application ", appExpr );
+						throw SemanticError( toString( *env, "\nunbound type variable: ", tyParm->first, " in application " ), appExpr );
 					} // if
 				} // if
@@ -706,7 +705,4 @@
 				if ( concrete == 0 ) {
 					return typeInst;
-					// xxx - should this be an assertion?
-//					std::string x = env ? toString( *env ) : "missing env";
-//					throw SemanticError( x + "\n" + "Unbound type variable " + typeInst->get_name() + " in ", appExpr );
 				} // if
 				return concrete;
Index: src/InitTweak/FixInit.cc
===================================================================
--- src/InitTweak/FixInit.cc	(revision ed235b60f3ae5366fcfed2f86f609b40ebe9c0ce)
+++ src/InitTweak/FixInit.cc	(revision 8024bc8cf76c8f650df1a6445c978552ea39985e)
@@ -70,37 +70,26 @@
 namespace InitTweak {
 	namespace {
-		typedef std::unordered_map< Expression *, TypeSubstitution * > EnvMap;
 		typedef std::unordered_map< int, int > UnqCount;
 
-		class InsertImplicitCalls : public WithTypeSubstitution {
-		public:
+		struct InsertImplicitCalls : public WithTypeSubstitution {
 			/// wrap function application expressions as ImplicitCopyCtorExpr nodes so that it is easy to identify which
 			/// function calls need their parameters to be copy constructed
-			static void insert( std::list< Declaration * > & translationUnit, EnvMap & envMap );
-
-			InsertImplicitCalls( EnvMap & envMap ) : envMap( envMap ) {}
+			static void insert( std::list< Declaration * > & translationUnit );
 
 			Expression * postmutate( ApplicationExpr * appExpr );
-			void premutate( StmtExpr * stmtExpr );
-
-			// collects environments for relevant nodes
-			EnvMap & envMap;
 		};
 
-		class ResolveCopyCtors final : public SymTab::Indexer {
-		public:
+		struct ResolveCopyCtors final : public WithIndexer, public WithShortCircuiting, public WithTypeSubstitution {
 			/// generate temporary ObjectDecls for each argument and return value of each ImplicitCopyCtorExpr,
 			/// generate/resolve copy construction expressions for each, and generate/resolve destructors for both
 			/// arguments and return value temporaries
-			static void resolveImplicitCalls( std::list< Declaration * > & translationUnit, const EnvMap & envMap, UnqCount & unqCount );
-
-			typedef SymTab::Indexer Parent;
-			using Parent::visit;
-
-			ResolveCopyCtors( const EnvMap & envMap, UnqCount & unqCount ) : envMap( envMap ), unqCount( unqCount ) {}
-
-			virtual void visit( ImplicitCopyCtorExpr * impCpCtorExpr ) override;
-			virtual void visit( UniqueExpr * unqExpr ) override;
-			virtual void visit( StmtExpr * stmtExpr ) override;
+			static void resolveImplicitCalls( std::list< Declaration * > & translationUnit, UnqCount & unqCount );
+
+			ResolveCopyCtors( UnqCount & unqCount ) : unqCount( unqCount ) {}
+
+			void postvisit( ImplicitCopyCtorExpr * impCpCtorExpr );
+			void postvisit( StmtExpr * stmtExpr );
+			void previsit( UniqueExpr * unqExpr );
+			void postvisit( UniqueExpr * unqExpr );
 
 			/// create and resolve ctor/dtor expression: fname(var, [cpArg])
@@ -111,7 +100,6 @@
 			void destructRet( ObjectDecl * ret, ImplicitCopyCtorExpr * impCpCtorExpr );
 
-			TypeSubstitution * env;
-			const EnvMap & envMap;
 			UnqCount & unqCount; // count the number of times each unique expr ID appears
+			std::unordered_set< int > vars;
 		};
 
@@ -238,7 +226,5 @@
 		};
 
-		class GenStructMemberCalls final : public SymTab::Indexer {
-		  public:
-			typedef Indexer Parent;
+		struct GenStructMemberCalls final : public WithGuards, public WithShortCircuiting, public WithIndexer {
 			/// generate default/copy ctor and dtor calls for user-defined struct ctor/dtors
 			/// for any member that is missing a corresponding ctor/dtor call.
@@ -246,10 +232,9 @@
 			static void generate( std::list< Declaration * > & translationUnit );
 
-			using Parent::visit;
-
-			virtual void visit( FunctionDecl * funcDecl ) override;
-
-			virtual void visit( MemberExpr * memberExpr ) override;
-			virtual void visit( ApplicationExpr * appExpr ) override;
+			void previsit( FunctionDecl * funcDecl );
+			void postvisit( FunctionDecl * funcDecl );
+
+			void previsit( MemberExpr * memberExpr );
+			void previsit( ApplicationExpr * appExpr );
 
 			SemanticError errors;
@@ -295,9 +280,8 @@
 		InitTweak::fixGlobalInit( translationUnit, filename, inLibrary );
 
-		EnvMap envMap;
 		UnqCount unqCount;
 
-		InsertImplicitCalls::insert( translationUnit, envMap );
-		ResolveCopyCtors::resolveImplicitCalls( translationUnit, envMap, unqCount );
+		InsertImplicitCalls::insert( translationUnit );
+		ResolveCopyCtors::resolveImplicitCalls( translationUnit, unqCount );
 		InsertDtors::insert( translationUnit );
 		FixInit::fixInitializers( translationUnit );
@@ -318,11 +302,11 @@
 
 	namespace {
-		void InsertImplicitCalls::insert( std::list< Declaration * > & translationUnit, EnvMap & envMap ) {
-			PassVisitor<InsertImplicitCalls> inserter( envMap );
+		void InsertImplicitCalls::insert( std::list< Declaration * > & translationUnit ) {
+			PassVisitor<InsertImplicitCalls> inserter;
 			mutateAll( translationUnit, inserter );
 		}
 
-		void ResolveCopyCtors::resolveImplicitCalls( std::list< Declaration * > & translationUnit, const EnvMap & envMap, UnqCount & unqCount ) {
-			ResolveCopyCtors resolver( envMap, unqCount );
+		void ResolveCopyCtors::resolveImplicitCalls( std::list< Declaration * > & translationUnit, UnqCount & unqCount ) {
+			PassVisitor<ResolveCopyCtors> resolver( unqCount );
 			acceptAll( translationUnit, resolver );
 		}
@@ -360,5 +344,5 @@
 
 		void GenStructMemberCalls::generate( std::list< Declaration * > & translationUnit ) {
-			GenStructMemberCalls warner;
+			PassVisitor<GenStructMemberCalls> warner;
 			acceptAll( translationUnit, warner );
 		}
@@ -398,20 +382,11 @@
 			// wrap each function call so that it is easy to identify nodes that have to be copy constructed
 			ImplicitCopyCtorExpr * expr = new ImplicitCopyCtorExpr( appExpr );
-			// save the type substitution into the envMap so that it is easy to find.
+			// Move the type substitution to the new top-level, if it is attached to the appExpr.
 			// Ensure it is not deleted with the ImplicitCopyCtorExpr by removing it before deletion.
 			// The substitution is needed to obtain the type of temporary variables so that copy constructor
-			// calls can be resolved. Normally this is what PolyMutator is for, but the pass that resolves
-			// copy constructor calls must be an Indexer. We could alternatively make a PolyIndexer which
-			// saves the environment, or compute the types of temporaries here, but it's much simpler to
-			// save the environment here, and more cohesive to compute temporary variables and resolve copy
-			// constructor calls together.
+			// calls can be resolved.
 			assert( env );
-			envMap[expr] = env;
+			std::swap( expr->env, appExpr->env );
 			return expr;
-		}
-
-		void InsertImplicitCalls::premutate( StmtExpr * stmtExpr ) {
-			assert( env );
-			envMap[stmtExpr] = env;
 		}
 
@@ -431,5 +406,5 @@
 			// (VariableExpr and already resolved expression)
 			CP_CTOR_PRINT( std::cerr << "ResolvingCtorDtor " << untyped << std::endl; )
-			Expression * resolved = ResolvExpr::findVoidExpression( untyped, *this );
+			Expression * resolved = ResolvExpr::findVoidExpression( untyped, indexer );
 			assert( resolved );
 			if ( resolved->get_env() ) {
@@ -480,9 +455,6 @@
 		}
 
-		void ResolveCopyCtors::visit( ImplicitCopyCtorExpr *impCpCtorExpr ) {
+		void ResolveCopyCtors::postvisit( ImplicitCopyCtorExpr *impCpCtorExpr ) {
 			CP_CTOR_PRINT( std::cerr << "ResolveCopyCtors: " << impCpCtorExpr << std::endl; )
-			Parent::visit( impCpCtorExpr );
-			env = envMap.at(impCpCtorExpr);
-			assert( env );
 
 			ApplicationExpr * appExpr = impCpCtorExpr->get_callExpr();
@@ -513,7 +485,6 @@
 		}
 
-		void ResolveCopyCtors::visit( StmtExpr * stmtExpr ) {
-			Parent::visit( stmtExpr );
-			env = envMap.at(stmtExpr);
+		void ResolveCopyCtors::postvisit( StmtExpr * stmtExpr ) {
+			assert( env );
 			assert( stmtExpr->get_result() );
 			Type * result = stmtExpr->get_result();
@@ -537,16 +508,20 @@
 				stmtExpr->get_dtors().push_front( makeCtorDtor( "^?{}", ret ) );
 			} // if
-
-		}
-
-		void ResolveCopyCtors::visit( UniqueExpr * unqExpr ) {
-			static std::unordered_set< int > vars;
+		}
+
+		void ResolveCopyCtors::previsit( UniqueExpr * unqExpr ) {
 			unqCount[ unqExpr->get_id() ]++;  // count the number of unique expressions for each ID
 			if ( vars.count( unqExpr->get_id() ) ) {
 				// xxx - hack to prevent double-handling of unique exprs, otherwise too many temporary variables and destructors are generated
+				visit_children = false;
+			}
+		}
+
+		void ResolveCopyCtors::postvisit( UniqueExpr * unqExpr ) {
+			if ( vars.count( unqExpr->get_id() ) ) {
+				// xxx - hack to prevent double-handling of unique exprs, otherwise too many temporary variables and destructors are generated
 				return;
 			}
 
-			Parent::visit( unqExpr );
 			// it should never be necessary to wrap a void-returning expression in a UniqueExpr - if this assumption changes, this needs to be rethought
 			assert( unqExpr->get_result() );
@@ -585,5 +560,5 @@
 
 			// xxx - update to work with multiple return values
-			ObjectDecl * returnDecl = returnDecls.empty() ? NULL : returnDecls.front();
+			ObjectDecl * returnDecl = returnDecls.empty() ? nullptr : returnDecls.front();
 			Expression * callExpr = impCpCtorExpr->get_callExpr();
 
@@ -594,6 +569,7 @@
 			tempDecls.clear();
 			returnDecls.clear();
-			impCpCtorExpr->set_callExpr( NULL );
-			impCpCtorExpr->set_env( NULL );
+			impCpCtorExpr->set_callExpr( nullptr );
+			std::swap( impCpCtorExpr->env, callExpr->env );
+			assert( impCpCtorExpr->env == nullptr );
 			delete impCpCtorExpr;
 
@@ -978,11 +954,11 @@
 		}
 
-		void GenStructMemberCalls::visit( FunctionDecl * funcDecl ) {
-			ValueGuard< FunctionDecl * > oldFunction( funcDecl );
-			ValueGuard< std::set< DeclarationWithType * > > oldUnhandled( unhandled );
-			ValueGuard< std::map< DeclarationWithType *, CodeLocation > > oldUsedUninit( usedUninit );
-			ValueGuard< ObjectDecl * > oldThisParam( thisParam );
-			ValueGuard< bool > oldIsCtor( isCtor );
-			ValueGuard< StructDecl * > oldStructDecl( structDecl );
+		void GenStructMemberCalls::previsit( FunctionDecl * funcDecl ) {
+			GuardValue( funcDecl );
+			GuardValue( unhandled );
+			GuardValue( usedUninit );
+			GuardValue( thisParam );
+			GuardValue( isCtor );
+			GuardValue( structDecl );
 			errors = SemanticError();  // clear previous errors
 
@@ -1010,6 +986,20 @@
 				}
 			}
-			Parent::visit( function );
-
+		}
+
+		void addIds( SymTab::Indexer & indexer, const std::list< DeclarationWithType * > & decls ) {
+			for ( auto d : decls ) {
+				indexer.addId( d );
+			}
+		}
+
+		void addTypes( SymTab::Indexer & indexer, const std::list< TypeDecl * > & tds ) {
+			for ( auto td : tds ) {
+				indexer.addType( td );
+				addIds( indexer, td->assertions );
+			}
+		}
+
+		void GenStructMemberCalls::postvisit( FunctionDecl * funcDecl ) {
 			// remove the unhandled objects from usedUninit, because a call is inserted
 			// to handle them - only objects that are later constructed are used uninitialized.
@@ -1032,6 +1022,8 @@
 			if ( ! unhandled.empty() ) {
 				// need to explicitly re-add function parameters to the indexer in order to resolve copy constructors
-				enterScope();
-				maybeAccept( function->get_functionType(), *this );
+				auto guard = makeFuncGuard( [this]() { indexer.enterScope(); }, [this]() { indexer.leaveScope(); } );
+				addTypes( indexer, function->type->forall );
+				addIds( indexer, function->type->returnVals );
+				addIds( indexer, function->type->parameters );
 
 				// need to iterate through members in reverse in order for
@@ -1063,5 +1055,5 @@
 						Statement * callStmt = stmt.front();
 
-						MutatingResolver resolver( *this );
+						MutatingResolver resolver( indexer );
 						try {
 							callStmt->acceptMutator( resolver );
@@ -1077,5 +1069,4 @@
 					}
 				}
-				leaveScope();
 			}
 			if (! errors.isEmpty()) {
@@ -1107,6 +1098,9 @@
 		}
 
-		void GenStructMemberCalls::visit( ApplicationExpr * appExpr ) {
-			if ( ! checkWarnings( function ) ) return;
+		void GenStructMemberCalls::previsit( ApplicationExpr * appExpr ) {
+			if ( ! checkWarnings( function ) ) {
+				visit_children = false;
+				return;
+			}
 
 			std::string fname = getFunctionName( appExpr );
@@ -1127,10 +1121,11 @@
 				}
 			}
-			Parent::visit( appExpr );
-		}
-
-		void GenStructMemberCalls::visit( MemberExpr * memberExpr ) {
-			if ( ! checkWarnings( function ) ) return;
-			if ( ! isCtor ) return;
+		}
+
+		void GenStructMemberCalls::previsit( MemberExpr * memberExpr ) {
+			if ( ! checkWarnings( function ) || ! isCtor ) {
+				visit_children = false;
+				return;
+			}
 
 			if ( isThisExpression( memberExpr->get_aggregate(), thisParam ) ) {
@@ -1140,5 +1135,4 @@
 				}
 			}
-			Parent::visit( memberExpr );
 		}
 
@@ -1161,5 +1155,5 @@
 			// in generated code. If this changes, add mutate methods for entities with
 			// scope and call {enter,leave}Scope explicitly.
-			objectDecl->accept( indexer );
+			indexer.addId( objectDecl );
 			return objectDecl;
 		}
Index: src/Parser/ExpressionNode.cc
===================================================================
--- src/Parser/ExpressionNode.cc	(revision ed235b60f3ae5366fcfed2f86f609b40ebe9c0ce)
+++ src/Parser/ExpressionNode.cc	(revision 8024bc8cf76c8f650df1a6445c978552ea39985e)
@@ -10,6 +10,6 @@
 // Created On       : Sat May 16 13:17:07 2015
 // Last Modified By : Peter A. Buhr
-// Last Modified On : Tue Sep 12 10:00:29 2017
-// Update Count     : 672
+// Last Modified On : Thu Sep 14 23:09:34 2017
+// Update Count     : 690
 //
 
@@ -250,18 +250,22 @@
 	sepString( str, units, '"' );						// separate constant from units
 
-	BasicType::Kind strtype = BasicType::Char;			// default string type
-	switch ( str[0] ) {									// str has >= 2 characters, i.e, null string ""
+	Type * strtype;
+	switch ( str[0] ) {									// str has >= 2 characters, i.e, null string "" => safe to look at subscripts 0/1
 	  case 'u':
-		if ( str[1] == '8' ) break;						// utf-8 characters
-		strtype = BasicType::ShortUnsignedInt;
+		if ( str[1] == '8' ) goto Default;				// utf-8 characters => array of char
+		// lookup type of associated typedef
+		strtype = new TypeInstType( Type::Qualifiers( Type::Const ), "char16_t", false );
 		break;
 	  case 'U':
-		strtype = BasicType::UnsignedInt;
+		strtype = new TypeInstType( Type::Qualifiers( Type::Const ), "char32_t", false );
 		break;
 	  case 'L':
-		strtype = BasicType::SignedInt;
+		strtype = new TypeInstType( Type::Qualifiers( Type::Const ), "wchar_t", false );
 		break;
+	  Default:											// char default string type
+	  default:
+		strtype = new BasicType( Type::Qualifiers( Type::Const ), BasicType::Char );
 	} // switch
-	ArrayType * at = new ArrayType( noQualifiers, new BasicType( Type::Qualifiers( Type::Const ), strtype ),
+	ArrayType * at = new ArrayType( noQualifiers, strtype,
 									new ConstantExpr( Constant::from_ulong( str.size() + 1 - 2 ) ), // +1 for '\0' and -2 for '"'
 									false, false );
@@ -344,12 +348,9 @@
 
 Expression * build_virtual_cast( DeclarationNode * decl_node, ExpressionNode * expr_node ) {
-	Type * targetType = maybeMoveBuildType( decl_node );
-	Expression * castArg = maybeMoveBuild< Expression >( expr_node );
-	return new VirtualCastExpr( castArg, targetType );
+	return new VirtualCastExpr( maybeMoveBuild< Expression >( expr_node ), maybeMoveBuildType( decl_node ) );
 } // build_virtual_cast
 
 Expression * build_fieldSel( ExpressionNode * expr_node, Expression * member ) {
-	UntypedMemberExpr * ret = new UntypedMemberExpr( member, maybeMoveBuild< Expression >(expr_node) );
-	return ret;
+	return new UntypedMemberExpr( member, maybeMoveBuild< Expression >(expr_node) );
 } // build_fieldSel
 
@@ -361,24 +362,4 @@
 	return ret;
 } // build_pfieldSel
-
-Expression * build_addressOf( ExpressionNode * expr_node ) {
-		return new AddressExpr( maybeMoveBuild< Expression >(expr_node) );
-} // build_addressOf
-
-Expression * build_sizeOfexpr( ExpressionNode * expr_node ) {
-	return new SizeofExpr( maybeMoveBuild< Expression >(expr_node) );
-} // build_sizeOfexpr
-
-Expression * build_sizeOftype( DeclarationNode * decl_node ) {
-	return new SizeofExpr( maybeMoveBuildType( decl_node ) );
-} // build_sizeOftype
-
-Expression * build_alignOfexpr( ExpressionNode * expr_node ) {
-	return new AlignofExpr( maybeMoveBuild< Expression >(expr_node) );
-} // build_alignOfexpr
-
-Expression * build_alignOftype( DeclarationNode * decl_node ) {
-	return new AlignofExpr( maybeMoveBuildType( decl_node) );
-} // build_alignOftype
 
 Expression * build_offsetOf( DeclarationNode * decl_node, NameExpr * member ) {
@@ -422,16 +403,4 @@
 } // build_cond
 
-Expression * build_comma( ExpressionNode * expr_node1, ExpressionNode * expr_node2 ) {
-	return new CommaExpr( maybeMoveBuild< Expression >(expr_node1), maybeMoveBuild< Expression >(expr_node2) );
-} // build_comma
-
-Expression * build_attrexpr( NameExpr * var, ExpressionNode * expr_node ) {
-	return new AttrExpr( var, maybeMoveBuild< Expression >(expr_node) );
-} // build_attrexpr
-
-Expression * build_attrtype( NameExpr * var, DeclarationNode * decl_node ) {
-	return new AttrExpr( var, maybeMoveBuildType( decl_node ) );
-} // build_attrtype
-
 Expression * build_tuple( ExpressionNode * expr_node ) {
 	list< Expression * > exprs;
@@ -445,20 +414,4 @@
 	return new UntypedExpr( maybeMoveBuild< Expression >(function), args, nullptr );
 } // build_func
-
-Expression * build_range( ExpressionNode * low, ExpressionNode * high ) {
-	return new RangeExpr( maybeMoveBuild< Expression >( low ), maybeMoveBuild< Expression >( high ) );
-} // build_range
-
-Expression * build_asmexpr( ExpressionNode * inout, Expression * constraint, ExpressionNode * operand ) {
-	return new AsmExpr( maybeMoveBuild< Expression >( inout ), constraint, maybeMoveBuild< Expression >(operand) );
-} // build_asmexpr
-
-Expression * build_valexpr( StatementNode * s ) {
-	return new StmtExpr( dynamic_cast< CompoundStmt * >(maybeMoveBuild< Statement >(s) ) );
-} // build_valexpr
-
-Expression * build_typevalue( DeclarationNode * decl ) {
-	return new TypeExpr( maybeMoveBuildType( decl ) );
-} // build_typevalue
 
 Expression * build_compoundLiteral( DeclarationNode * decl_node, InitializerNode * kids ) {
Index: src/Parser/ParseNode.h
===================================================================
--- src/Parser/ParseNode.h	(revision ed235b60f3ae5366fcfed2f86f609b40ebe9c0ce)
+++ src/Parser/ParseNode.h	(revision 8024bc8cf76c8f650df1a6445c978552ea39985e)
@@ -10,6 +10,6 @@
 // Created On       : Sat May 16 13:28:16 2015
 // Last Modified By : Peter A. Buhr
-// Last Modified On : Sun Sep 10 09:56:32 2017
-// Update Count     : 801
+// Last Modified On : Thu Sep 14 23:09:39 2017
+// Update Count     : 815
 //
 
@@ -122,7 +122,5 @@
 
 	template<typename T>
-	bool isExpressionType() const {
-		return nullptr != dynamic_cast<T>(expr.get());
-	}
+	bool isExpressionType() const {	return nullptr != dynamic_cast<T>(expr.get()); }
 
 	Expression * build() const { return const_cast<ExpressionNode *>(this)->expr.release(); }
@@ -172,5 +170,4 @@
 
 NameExpr * build_varref( const std::string * name );
-Expression * build_typevalue( DeclarationNode * decl );
 
 Expression * build_cast( DeclarationNode * decl_node, ExpressionNode * expr_node );
@@ -178,9 +175,4 @@
 Expression * build_fieldSel( ExpressionNode * expr_node, Expression * member );
 Expression * build_pfieldSel( ExpressionNode * expr_node, Expression * member );
-Expression * build_addressOf( ExpressionNode * expr_node );
-Expression * build_sizeOfexpr( ExpressionNode * expr_node );
-Expression * build_sizeOftype( DeclarationNode * decl_node );
-Expression * build_alignOfexpr( ExpressionNode * expr_node );
-Expression * build_alignOftype( DeclarationNode * decl_node );
 Expression * build_offsetOf( DeclarationNode * decl_node, NameExpr * member );
 Expression * build_and( ExpressionNode * expr_node1, ExpressionNode * expr_node2 );
@@ -191,12 +183,6 @@
 Expression * build_binary_ptr( OperKinds op, ExpressionNode * expr_node1, ExpressionNode * expr_node2 );
 Expression * build_cond( ExpressionNode * expr_node1, ExpressionNode * expr_node2, ExpressionNode * expr_node3 );
-Expression * build_comma( ExpressionNode * expr_node1, ExpressionNode * expr_node2 );
-Expression * build_attrexpr( NameExpr * var, ExpressionNode * expr_node );
-Expression * build_attrtype( NameExpr * var, DeclarationNode * decl_node );
 Expression * build_tuple( ExpressionNode * expr_node = nullptr );
 Expression * build_func( ExpressionNode * function, ExpressionNode * expr_node );
-Expression * build_range( ExpressionNode * low, ExpressionNode * high );
-Expression * build_asmexpr( ExpressionNode * inout, Expression * constraint, ExpressionNode * operand );
-Expression * build_valexpr( StatementNode * s );
 Expression * build_compoundLiteral( DeclarationNode * decl_node, InitializerNode * kids );
 
Index: src/Parser/parser.yy
===================================================================
--- src/Parser/parser.yy	(revision ed235b60f3ae5366fcfed2f86f609b40ebe9c0ce)
+++ src/Parser/parser.yy	(revision 8024bc8cf76c8f650df1a6445c978552ea39985e)
@@ -10,6 +10,6 @@
 // Created On       : Sat Sep  1 20:22:55 2001
 // Last Modified By : Peter A. Buhr
-// Last Modified On : Mon Sep 11 18:12:00 2017
-// Update Count     : 2787
+// Last Modified On : Thu Sep 14 23:07:12 2017
+// Update Count     : 2815
 //
 
@@ -56,4 +56,5 @@
 #include "LinkageSpec.h"
 #include "Common/SemanticError.h"						// error_str
+#include "Common/utility.h"								// for maybeMoveBuild, maybeBuild, CodeLo...
 
 extern DeclarationNode * parseTree;
@@ -438,5 +439,5 @@
 		{ $$ = $2; }
 	| '(' compound_statement ')'						// GCC, lambda expression
-		{ $$ = new ExpressionNode( build_valexpr( $2 ) ); }
+		{ $$ = new ExpressionNode( new StmtExpr( dynamic_cast< CompoundStmt * >(maybeMoveBuild< Statement >($2) ) ) ); }
 	| primary_expression '{' argument_expression_list '}' // CFA, constructor call
 		{
@@ -562,5 +563,5 @@
 			switch ( $1 ) {
 			  case OperKinds::AddressOf:
-				$$ = new ExpressionNode( build_addressOf( $2 ) );
+				$$ = new ExpressionNode( new AddressExpr( maybeMoveBuild< Expression >( $2 ) ) );
 				break;
 			  case OperKinds::PointTo:
@@ -568,5 +569,5 @@
 				break;
 			  case OperKinds::And:
-				$$ = new ExpressionNode( new AddressExpr( build_addressOf( $2 ) ) );
+				$$ = new ExpressionNode( new AddressExpr( new AddressExpr( maybeMoveBuild< Expression >( $2 ) ) ) );
 				break;
 			  default:
@@ -581,19 +582,19 @@
 	  	{ $$ = new ExpressionNode( build_unary_ptr( OperKinds::Decr, $2 ) ); }
 	| SIZEOF unary_expression
-		{ $$ = new ExpressionNode( build_sizeOfexpr( $2 ) ); }
+		{ $$ = new ExpressionNode( new SizeofExpr( maybeMoveBuild< Expression >( $2 ) ) ); }
 	| SIZEOF '(' type_no_function ')'
-		{ $$ = new ExpressionNode( build_sizeOftype( $3 ) ); }
+		{ $$ = new ExpressionNode( new SizeofExpr( maybeMoveBuildType( $3 ) ) ); }
 	| ALIGNOF unary_expression							// GCC, variable alignment
-		{ $$ = new ExpressionNode( build_alignOfexpr( $2 ) ); }
+		{ $$ = new ExpressionNode( new AlignofExpr( maybeMoveBuild< Expression >( $2 ) ) ); }
 	| ALIGNOF '(' type_no_function ')'					// GCC, type alignment
-		{ $$ = new ExpressionNode( build_alignOftype( $3 ) ); }
+		{ $$ = new ExpressionNode( new AlignofExpr( maybeMoveBuildType( $3 ) ) ); }
 	| OFFSETOF '(' type_no_function ',' no_attr_identifier ')'
 		{ $$ = new ExpressionNode( build_offsetOf( $3, build_varref( $5 ) ) ); }
 	| ATTR_IDENTIFIER
-		{ $$ = new ExpressionNode( build_attrexpr( build_varref( $1 ), nullptr ) ); }
+		{ $$ = new ExpressionNode( new AttrExpr( build_varref( $1 ), maybeMoveBuild< Expression >( (ExpressionNode *)nullptr ) ) ); }
 	| ATTR_IDENTIFIER '(' argument_expression ')'
-		{ $$ = new ExpressionNode( build_attrexpr( build_varref( $1 ), $3 ) ); }
+		{ $$ = new ExpressionNode( new AttrExpr( build_varref( $1 ), maybeMoveBuild< Expression >( $3 ) ) ); }
 	| ATTR_IDENTIFIER '(' type ')'
-		{ $$ = new ExpressionNode( build_attrtype( build_varref( $1 ), $3 ) ); }
+		{ $$ = new ExpressionNode( new AttrExpr( build_varref( $1 ), maybeMoveBuildType( $3 ) ) ); }
 	;
 
@@ -618,7 +619,7 @@
 		// VIRTUAL cannot be opt because of look ahead issues
 	| '(' VIRTUAL ')' cast_expression
-		{ $$ = new ExpressionNode( build_virtual_cast( nullptr, $4 ) ); }
+		{ $$ = new ExpressionNode( new VirtualCastExpr( maybeMoveBuild< Expression >( $4 ), maybeMoveBuildType( nullptr ) ) ); }
 	| '(' VIRTUAL type_no_function ')' cast_expression
-		{ $$ = new ExpressionNode( build_virtual_cast( $3, $5 ) ); }
+		{ $$ = new ExpressionNode( new VirtualCastExpr( maybeMoveBuild< Expression >( $5 ), maybeMoveBuildType( $3 ) ) ); }
 //	| '(' type_no_function ')' tuple
 //		{ $$ = new ExpressionNode( build_cast( $2, $4 ) ); }
@@ -771,5 +772,5 @@
 	assignment_expression
 	| comma_expression ',' assignment_expression
-		{ $$ = new ExpressionNode( build_comma( $1, $3 ) ); }
+		{ $$ = new ExpressionNode( new CommaExpr( maybeMoveBuild< Expression >( $1 ), maybeMoveBuild< Expression >( $3 ) ) ); }
 	;
 
@@ -894,5 +895,5 @@
 	constant_expression							{ $$ = $1; }
 	| constant_expression ELLIPSIS constant_expression	// GCC, subrange
-		{ $$ = new ExpressionNode( build_range( $1, $3 ) ); }
+		{ $$ = new ExpressionNode( new RangeExpr( maybeMoveBuild< Expression >( $1 ), maybeMoveBuild< Expression >( $3 ) ) ); }
 	| subrange											// CFA, subrange
 	;
@@ -1154,7 +1155,7 @@
 asm_operand:											// GCC
 	string_literal '(' constant_expression ')'
-		{ $$ = new ExpressionNode( build_asmexpr( 0, $1, $3 ) ); }
+		{ $$ = new ExpressionNode( new AsmExpr( maybeMoveBuild< Expression >( (ExpressionNode *)nullptr ), $1, maybeMoveBuild< Expression >( $3 ) ) ); }
 	| '[' constant_expression ']' string_literal '(' constant_expression ')'
-		{ $$ = new ExpressionNode( build_asmexpr( $2, $4, $6 ) ); }
+		{ $$ = new ExpressionNode( new AsmExpr( maybeMoveBuild< Expression >( $2 ), $4, maybeMoveBuild< Expression >( $6 ) ) ); }
 	;
 
@@ -1165,5 +1166,5 @@
 		{ $$ = new ExpressionNode( $1 ); }
 	| asm_clobbers_list_opt ',' string_literal
-		// set_last return ParseNode *
+		// set_last returns ParseNode *
 		{ $$ = (ExpressionNode *)$1->set_last( new ExpressionNode( $3 ) ); }
 	;
@@ -2088,5 +2089,5 @@
 		{ $$ = $3; }
 	| '[' push constant_expression ELLIPSIS constant_expression pop ']' // GCC, multiple array elements
-		{ $$ = new ExpressionNode( build_range( $3, $5 ) ); }
+		{ $$ = new ExpressionNode( new RangeExpr( maybeMoveBuild< Expression >( $3 ), maybeMoveBuild< Expression >( $5 ) ) ); }
 	| '.' '[' push field_list pop ']'					// CFA, tuple field selector
 		{ $$ = $4; }
@@ -2165,8 +2166,8 @@
 type_list:												// CFA
 	type
-		{ $$ = new ExpressionNode( build_typevalue( $1 ) ); }
+		{ $$ = new ExpressionNode( new TypeExpr( maybeMoveBuildType( $1 ) ) ); }
 	| assignment_expression
 	| type_list ',' type
-		{ $$ = (ExpressionNode *)( $1->set_last( new ExpressionNode( build_typevalue( $3 ) ) ) ); }
+		{ $$ = (ExpressionNode *)( $1->set_last( new ExpressionNode( new TypeExpr( maybeMoveBuildType( $3 ) ) ) ) ); }
 	| type_list ',' assignment_expression
 		{ $$ = (ExpressionNode *)( $1->set_last( $3 )); }
@@ -2406,5 +2407,5 @@
 subrange:
 	constant_expression '~' constant_expression			// CFA, integer subrange
-		{ $$ = new ExpressionNode( build_range( $1, $3 ) ); }
+		{ $$ = new ExpressionNode( new RangeExpr( maybeMoveBuild< Expression >( $1 ), maybeMoveBuild< Expression >( $3 ) ) ); }
 	;
 
Index: src/ResolvExpr/AlternativeFinder.cc
===================================================================
--- src/ResolvExpr/AlternativeFinder.cc	(revision ed235b60f3ae5366fcfed2f86f609b40ebe9c0ce)
+++ src/ResolvExpr/AlternativeFinder.cc	(revision 8024bc8cf76c8f650df1a6445c978552ea39985e)
@@ -523,5 +523,5 @@
 		for ( AssertionSet::iterator i = assertSet.begin(); i != assertSet.end(); ++i ) {
 			if ( i->second.isUsed ) {
-				i->first->accept( indexer );
+				indexer.addId( i->first );
 			}
 		}
Index: src/ResolvExpr/AlternativePrinter.cc
===================================================================
--- src/ResolvExpr/AlternativePrinter.cc	(revision ed235b60f3ae5366fcfed2f86f609b40ebe9c0ce)
+++ src/ResolvExpr/AlternativePrinter.cc	(revision 8024bc8cf76c8f650df1a6445c978552ea39985e)
@@ -26,9 +26,9 @@
 
 namespace ResolvExpr {
-	AlternativePrinter::AlternativePrinter( std::ostream &os ) : SymTab::Indexer( false ), os( os ) {}
+	AlternativePrinter::AlternativePrinter( std::ostream &os ) : os( os ) {}
 
-	void AlternativePrinter::visit( ExprStmt *exprStmt ) {
+	void AlternativePrinter::postvisit( ExprStmt *exprStmt ) {
 		TypeEnvironment env;
-		AlternativeFinder finder( *this, env );
+		AlternativeFinder finder( indexer, env );
 		finder.findWithAdjustment( exprStmt->get_expr() );
 		int count = 1;
Index: src/ResolvExpr/AlternativePrinter.h
===================================================================
--- src/ResolvExpr/AlternativePrinter.h	(revision ed235b60f3ae5366fcfed2f86f609b40ebe9c0ce)
+++ src/ResolvExpr/AlternativePrinter.h	(revision 8024bc8cf76c8f650df1a6445c978552ea39985e)
@@ -18,15 +18,14 @@
 #include <iostream>          // for ostream
 
-#include "SymTab/Indexer.h"  // for Indexer
+#include "Common/PassVisitor.h"
 
 class ExprStmt;
 
 namespace ResolvExpr {
-	class AlternativePrinter final : public SymTab::Indexer {
+	class AlternativePrinter final : public WithIndexer {
 	  public:
 		AlternativePrinter( std::ostream &os );
 
-		using SymTab::Indexer::visit;
-		virtual void visit( ExprStmt *exprStmt ) override;
+		void postvisit( ExprStmt *exprStmt );
 	  private:
 		std::ostream &os;
Index: src/ResolvExpr/Resolver.cc
===================================================================
--- src/ResolvExpr/Resolver.cc	(revision ed235b60f3ae5366fcfed2f86f609b40ebe9c0ce)
+++ src/ResolvExpr/Resolver.cc	(revision 8024bc8cf76c8f650df1a6445c978552ea39985e)
@@ -21,4 +21,5 @@
 #include "Alternative.h"                 // for Alternative, AltList
 #include "AlternativeFinder.h"           // for AlternativeFinder, resolveIn...
+#include "Common/PassVisitor.h"          // for PassVisitor
 #include "Common/SemanticError.h"        // for SemanticError
 #include "Common/utility.h"              // for ValueGuard, group_iterate
@@ -43,41 +44,35 @@
 
 namespace ResolvExpr {
-	class Resolver final : public SymTab::Indexer {
-	  public:
-		Resolver() : SymTab::Indexer( false ) {}
-		Resolver( const SymTab:: Indexer & other ) : SymTab::Indexer( other ) {
-			if ( const Resolver * res = dynamic_cast< const Resolver * >( &other ) ) {
-				functionReturn = res->functionReturn;
-				currentObject = res->currentObject;
-				inEnumDecl = res->inEnumDecl;
-			}
-		}
-
-		typedef SymTab::Indexer Parent;
-		using Parent::visit;
-		virtual void visit( FunctionDecl *functionDecl ) override;
-		virtual void visit( ObjectDecl *functionDecl ) override;
-		virtual void visit( TypeDecl *typeDecl ) override;
-		virtual void visit( EnumDecl * enumDecl ) override;
-
-		virtual void visit( ArrayType * at ) override;
-		virtual void visit( PointerType * at ) override;
-
-		virtual void visit( ExprStmt *exprStmt ) override;
-		virtual void visit( AsmExpr *asmExpr ) override;
-		virtual void visit( AsmStmt *asmStmt ) override;
-		virtual void visit( IfStmt *ifStmt ) override;
-		virtual void visit( WhileStmt *whileStmt ) override;
-		virtual void visit( ForStmt *forStmt ) override;
-		virtual void visit( SwitchStmt *switchStmt ) override;
-		virtual void visit( CaseStmt *caseStmt ) override;
-		virtual void visit( BranchStmt *branchStmt ) override;
-		virtual void visit( ReturnStmt *returnStmt ) override;
-		virtual void visit( ThrowStmt *throwStmt ) override;
-		virtual void visit( CatchStmt *catchStmt ) override;
-
-		virtual void visit( SingleInit *singleInit ) override;
-		virtual void visit( ListInit *listInit ) override;
-		virtual void visit( ConstructorInit *ctorInit ) override;
+	struct Resolver final : public WithIndexer, public WithGuards, public WithVisitorRef<Resolver>, public WithShortCircuiting {
+		Resolver() {}
+		Resolver( const SymTab::Indexer & other ) {
+			indexer = other;
+		}
+
+		void previsit( FunctionDecl *functionDecl );
+		void postvisit( FunctionDecl *functionDecl );
+		void previsit( ObjectDecl *functionDecl );
+		void previsit( TypeDecl *typeDecl );
+		void previsit( EnumDecl * enumDecl );
+
+		void previsit( ArrayType * at );
+		void previsit( PointerType * at );
+
+		void previsit( ExprStmt *exprStmt );
+		void previsit( AsmExpr *asmExpr );
+		void previsit( AsmStmt *asmStmt );
+		void previsit( IfStmt *ifStmt );
+		void previsit( WhileStmt *whileStmt );
+		void previsit( ForStmt *forStmt );
+		void previsit( SwitchStmt *switchStmt );
+		void previsit( CaseStmt *caseStmt );
+		void previsit( BranchStmt *branchStmt );
+		void previsit( ReturnStmt *returnStmt );
+		void previsit( ThrowStmt *throwStmt );
+		void previsit( CatchStmt *catchStmt );
+
+		void previsit( SingleInit *singleInit );
+		void previsit( ListInit *listInit );
+		void previsit( ConstructorInit *ctorInit );
 	  private:
   	typedef std::list< Initializer * >::iterator InitIterator;
@@ -96,13 +91,13 @@
 
 	void resolve( std::list< Declaration * > translationUnit ) {
-		Resolver resolver;
+		PassVisitor<Resolver> resolver;
 		acceptAll( translationUnit, resolver );
 	}
 
+	// used in resolveTypeof
 	Expression *resolveInVoidContext( Expression *expr, const SymTab::Indexer &indexer ) {
 		TypeEnvironment env;
 		return resolveInVoidContext( expr, indexer, env );
 	}
-
 
 	namespace {
@@ -190,6 +185,6 @@
 	}
 
-	void Resolver::visit( ObjectDecl *objectDecl ) {
-		Type *new_type = resolveTypeof( objectDecl->get_type(), *this );
+	void Resolver::previsit( ObjectDecl *objectDecl ) {
+		Type *new_type = resolveTypeof( objectDecl->get_type(), indexer );
 		objectDecl->set_type( new_type );
 		// To handle initialization of routine pointers, e.g., int (*fp)(int) = foo(), means that class-variable
@@ -198,5 +193,5 @@
 		// each value of initContext is retained, so the type on the first analysis is preserved and used for selecting
 		// the RHS.
-		ValueGuard<CurrentObject> temp( currentObject );
+		GuardValue( currentObject );
 		currentObject = CurrentObject( objectDecl->get_type() );
 		if ( inEnumDecl && dynamic_cast< EnumInstType * >( objectDecl->get_type() ) ) {
@@ -205,9 +200,4 @@
 			currentObject = CurrentObject( new BasicType( Type::Qualifiers(), BasicType::SignedInt ) );
 		}
-		Parent::visit( objectDecl );
-		if ( inEnumDecl && dynamic_cast< EnumInstType * >( objectDecl->get_type() ) ) {
-			// delete newly created signed int type
-			// delete currentObject.getType();
-		}
 	}
 
@@ -216,5 +206,5 @@
 		if ( type->get_dimension() ) {
 			CastExpr *castExpr = new CastExpr( type->get_dimension(), SymTab::SizeType->clone() );
-			Expression *newExpr = findSingleExpression( castExpr, *this );
+			Expression *newExpr = findSingleExpression( castExpr, indexer );
 			delete type->get_dimension();
 			type->set_dimension( newExpr );
@@ -222,34 +212,33 @@
 	}
 
-	void Resolver::visit( ArrayType * at ) {
+	void Resolver::previsit( ArrayType * at ) {
 		handlePtrType( at );
-		Parent::visit( at );
-	}
-
-	void Resolver::visit( PointerType * pt ) {
+	}
+
+	void Resolver::previsit( PointerType * pt ) {
 		handlePtrType( pt );
-		Parent::visit( pt );
-	}
-
-	void Resolver::visit( TypeDecl *typeDecl ) {
+	}
+
+	void Resolver::previsit( TypeDecl *typeDecl ) {
 		if ( typeDecl->get_base() ) {
-			Type *new_type = resolveTypeof( typeDecl->get_base(), *this );
+			Type *new_type = resolveTypeof( typeDecl->get_base(), indexer );
 			typeDecl->set_base( new_type );
 		} // if
-		Parent::visit( typeDecl );
-	}
-
-	void Resolver::visit( FunctionDecl *functionDecl ) {
+	}
+
+	void Resolver::previsit( FunctionDecl *functionDecl ) {
 #if 0
-		std::cout << "resolver visiting functiondecl ";
-		functionDecl->print( std::cout );
-		std::cout << std::endl;
+		std::cerr << "resolver visiting functiondecl ";
+		functionDecl->print( std::cerr );
+		std::cerr << std::endl;
 #endif
-		Type *new_type = resolveTypeof( functionDecl->get_type(), *this );
+		Type *new_type = resolveTypeof( functionDecl->get_type(), indexer );
 		functionDecl->set_type( new_type );
-		ValueGuard< Type * > oldFunctionReturn( functionReturn );
+		GuardValue( functionReturn );
 		functionReturn = ResolvExpr::extractResultType( functionDecl->get_functionType() );
-		Parent::visit( functionDecl );
-
+	}
+
+
+	void Resolver::postvisit( FunctionDecl *functionDecl ) {
 		// default value expressions have an environment which shouldn't be there and trips up later passes.
 		// xxx - it might be necessary to somehow keep the information from this environment, but I can't currently
@@ -265,24 +254,25 @@
 	}
 
-	void Resolver::visit( EnumDecl * enumDecl ) {
+	void Resolver::previsit( EnumDecl * ) {
 		// in case we decide to allow nested enums
-		ValueGuard< bool > oldInEnumDecl( inEnumDecl );
+		GuardValue( inEnumDecl );
 		inEnumDecl = true;
-		Parent::visit( enumDecl );
-	}
-
-	void Resolver::visit( ExprStmt *exprStmt ) {
+	}
+
+	void Resolver::previsit( ExprStmt *exprStmt ) {
+		visit_children = false;
 		assertf( exprStmt->get_expr(), "ExprStmt has null Expression in resolver" );
-		Expression *newExpr = findVoidExpression( exprStmt->get_expr(), *this );
+		Expression *newExpr = findVoidExpression( exprStmt->get_expr(), indexer );
 		delete exprStmt->get_expr();
 		exprStmt->set_expr( newExpr );
 	}
 
-	void Resolver::visit( AsmExpr *asmExpr ) {
-		Expression *newExpr = findVoidExpression( asmExpr->get_operand(), *this );
+	void Resolver::previsit( AsmExpr *asmExpr ) {
+		visit_children = false;
+		Expression *newExpr = findVoidExpression( asmExpr->get_operand(), indexer );
 		delete asmExpr->get_operand();
 		asmExpr->set_operand( newExpr );
 		if ( asmExpr->get_inout() ) {
-			newExpr = findVoidExpression( asmExpr->get_inout(), *this );
+			newExpr = findVoidExpression( asmExpr->get_inout(), indexer );
 			delete asmExpr->get_inout();
 			asmExpr->set_inout( newExpr );
@@ -290,28 +280,25 @@
 	}
 
-	void Resolver::visit( AsmStmt *asmStmt ) {
-		acceptAll( asmStmt->get_input(), *this);
-		acceptAll( asmStmt->get_output(), *this);
-	}
-
-	void Resolver::visit( IfStmt *ifStmt ) {
-		Expression *newExpr = findSingleExpression( ifStmt->get_condition(), *this );
+	void Resolver::previsit( AsmStmt *asmStmt ) {
+		visit_children = false;
+		acceptAll( asmStmt->get_input(), *visitor );
+		acceptAll( asmStmt->get_output(), *visitor );
+	}
+
+	void Resolver::previsit( IfStmt *ifStmt ) {
+		Expression *newExpr = findSingleExpression( ifStmt->get_condition(), indexer );
 		delete ifStmt->get_condition();
 		ifStmt->set_condition( newExpr );
-		Parent::visit( ifStmt );
-	}
-
-	void Resolver::visit( WhileStmt *whileStmt ) {
-		Expression *newExpr = findSingleExpression( whileStmt->get_condition(), *this );
+	}
+
+	void Resolver::previsit( WhileStmt *whileStmt ) {
+		Expression *newExpr = findSingleExpression( whileStmt->get_condition(), indexer );
 		delete whileStmt->get_condition();
 		whileStmt->set_condition( newExpr );
-		Parent::visit( whileStmt );
-	}
-
-	void Resolver::visit( ForStmt *forStmt ) {
-		Parent::visit( forStmt );
-
+	}
+
+	void Resolver::previsit( ForStmt *forStmt ) {
 		if ( forStmt->get_condition() ) {
-			Expression * newExpr = findSingleExpression( forStmt->get_condition(), *this );
+			Expression * newExpr = findSingleExpression( forStmt->get_condition(), indexer );
 			delete forStmt->get_condition();
 			forStmt->set_condition( newExpr );
@@ -319,5 +306,5 @@
 
 		if ( forStmt->get_increment() ) {
-			Expression * newExpr = findVoidExpression( forStmt->get_increment(), *this );
+			Expression * newExpr = findVoidExpression( forStmt->get_increment(), indexer );
 			delete forStmt->get_increment();
 			forStmt->set_increment( newExpr );
@@ -325,21 +312,20 @@
 	}
 
-	void Resolver::visit( SwitchStmt *switchStmt ) {
-		ValueGuard< CurrentObject > oldCurrentObject( currentObject );
+	void Resolver::previsit( SwitchStmt *switchStmt ) {
+		GuardValue( currentObject );
 		Expression *newExpr;
-		newExpr = findIntegralExpression( switchStmt->get_condition(), *this );
+		newExpr = findIntegralExpression( switchStmt->get_condition(), indexer );
 		delete switchStmt->get_condition();
 		switchStmt->set_condition( newExpr );
 
 		currentObject = CurrentObject( newExpr->get_result() );
-		Parent::visit( switchStmt );
-	}
-
-	void Resolver::visit( CaseStmt *caseStmt ) {
+	}
+
+	void Resolver::previsit( CaseStmt *caseStmt ) {
 		if ( caseStmt->get_condition() ) {
 			std::list< InitAlternative > initAlts = currentObject.getOptions();
 			assertf( initAlts.size() == 1, "SwitchStmt did not correctly resolve an integral expression." );
 			CastExpr * castExpr = new CastExpr( caseStmt->get_condition(), initAlts.front().type->clone() );
-			Expression * newExpr = findSingleExpression( castExpr, *this );
+			Expression * newExpr = findSingleExpression( castExpr, indexer );
 			castExpr = strict_dynamic_cast< CastExpr * >( newExpr );
 			caseStmt->set_condition( castExpr->get_arg() );
@@ -347,8 +333,8 @@
 			delete castExpr;
 		}
-		Parent::visit( caseStmt );
-	}
-
-	void Resolver::visit( BranchStmt *branchStmt ) {
+	}
+
+	void Resolver::previsit( BranchStmt *branchStmt ) {
+		visit_children = false;
 		// must resolve the argument for a computed goto
 		if ( branchStmt->get_type() == BranchStmt::Goto ) { // check for computed goto statement
@@ -357,5 +343,5 @@
 				PointerType pt( Type::Qualifiers(), v.clone() );
 				CastExpr * castExpr = new CastExpr( arg, pt.clone() );
-				Expression * newExpr = findSingleExpression( castExpr, *this ); // find best expression
+				Expression * newExpr = findSingleExpression( castExpr, indexer ); // find best expression
 				branchStmt->set_target( newExpr );
 			} // if
@@ -363,8 +349,9 @@
 	}
 
-	void Resolver::visit( ReturnStmt *returnStmt ) {
+	void Resolver::previsit( ReturnStmt *returnStmt ) {
+		visit_children = false;
 		if ( returnStmt->get_expr() ) {
 			CastExpr *castExpr = new CastExpr( returnStmt->get_expr(), functionReturn->clone() );
-			Expression *newExpr = findSingleExpression( castExpr, *this );
+			Expression *newExpr = findSingleExpression( castExpr, indexer );
 			delete castExpr;
 			returnStmt->set_expr( newExpr );
@@ -372,9 +359,10 @@
 	}
 
-	void Resolver::visit( ThrowStmt *throwStmt ) {
+	void Resolver::previsit( ThrowStmt *throwStmt ) {
+		visit_children = false;
 		// TODO: Replace *exception type with &exception type.
 		if ( throwStmt->get_expr() ) {
 			StructDecl * exception_decl =
-				lookupStruct( "__cfaehm__base_exception_t" );
+				indexer.lookupStruct( "__cfaehm__base_exception_t" );
 			assert( exception_decl );
 			Expression * wrapped = new CastExpr(
@@ -388,15 +376,10 @@
 					)
 				);
-			Expression * newExpr = findSingleExpression( wrapped, *this );
+			Expression * newExpr = findSingleExpression( wrapped, indexer );
 			throwStmt->set_expr( newExpr );
 		}
 	}
 
-	void Resolver::visit( CatchStmt *catchStmt ) {
-		// inline Indexer::visit so that the exception variable is still in-scope for
-		// findSingleExpression() below
-		Parent::enterScope();
-		Visitor::visit( catchStmt );
-
+	void Resolver::previsit( CatchStmt *catchStmt ) {
 		if ( catchStmt->get_cond() ) {
 			Expression * wrapped = new CastExpr(
@@ -404,8 +387,6 @@
 				new BasicType( noQualifiers, BasicType::Bool )
 				);
-			catchStmt->set_cond( findSingleExpression( wrapped, *this ) );
-		}
-
-		Parent::leaveScope();
+			catchStmt->set_cond( findSingleExpression( wrapped, indexer ) );
+		}
 	}
 
@@ -419,8 +400,9 @@
 	}
 
-	void Resolver::visit( SingleInit *singleInit ) {
+	void Resolver::previsit( SingleInit *singleInit ) {
+		visit_children = false;
 		// resolve initialization using the possibilities as determined by the currentObject cursor
 		UntypedInitExpr * untyped = new UntypedInitExpr( singleInit->get_value(), currentObject.getOptions() );
-		Expression * newExpr = findSingleExpression( untyped, *this );
+		Expression * newExpr = findSingleExpression( untyped, indexer );
 		InitExpr * initExpr = strict_dynamic_cast< InitExpr * >( newExpr );
 
@@ -461,5 +443,6 @@
 	}
 
-	void Resolver::visit( ListInit * listInit ) {
+	void Resolver::previsit( ListInit * listInit ) {
+		visit_children = false;
 		// move cursor into brace-enclosed initializer-list
 		currentObject.enterListInit();
@@ -472,5 +455,5 @@
 			Initializer * init = std::get<1>(p);
 			newDesignations.push_back( currentObject.findNext( des ) );
-			init->accept( *this );
+			init->accept( *visitor );
 		}
 		// set the set of 'resolved' designations and leave the brace-enclosed initializer-list
@@ -501,5 +484,5 @@
 		delete ctorInit->get_dtor();
 		ctorInit->set_dtor( NULL );
-		maybeAccept( ctorInit->get_init(), *this );
+		maybeAccept( ctorInit->get_init(), *visitor );
 	}
 
@@ -507,5 +490,5 @@
 	void resolveCtorInit( ConstructorInit * ctorInit, const SymTab::Indexer & indexer ) {
 		assert( ctorInit );
-		Resolver resolver( indexer );
+		PassVisitor<Resolver> resolver( indexer );
 		ctorInit->accept( resolver );
 	}
@@ -513,12 +496,13 @@
 	void resolveStmtExpr( StmtExpr * stmtExpr, const SymTab::Indexer & indexer ) {
 		assert( stmtExpr );
-		Resolver resolver( indexer );
+		PassVisitor<Resolver> resolver( indexer );
 		stmtExpr->accept( resolver );
 	}
 
-	void Resolver::visit( ConstructorInit *ctorInit ) {
+	void Resolver::previsit( ConstructorInit *ctorInit ) {
+		visit_children = false;
 		// xxx - fallback init has been removed => remove fallbackInit function and remove complexity from FixInit and remove C-init from ConstructorInit
-		maybeAccept( ctorInit->get_ctor(), *this );
-		maybeAccept( ctorInit->get_dtor(), *this );
+		maybeAccept( ctorInit->get_ctor(), *visitor );
+		maybeAccept( ctorInit->get_dtor(), *visitor );
 
 		// found a constructor - can get rid of C-style initializer
Index: src/SymTab/Indexer.cc
===================================================================
--- src/SymTab/Indexer.cc	(revision ed235b60f3ae5366fcfed2f86f609b40ebe9c0ce)
+++ src/SymTab/Indexer.cc	(revision 8024bc8cf76c8f650df1a6445c978552ea39985e)
@@ -37,5 +37,5 @@
 #include "SynTree/Type.h"          // for Type, StructInstType, UnionInstType
 
-#define debugPrint(x) if ( doDebug ) { std::cout << x; }
+#define debugPrint(x) if ( doDebug ) { std::cerr << x; }
 
 namespace SymTab {
@@ -230,349 +230,4 @@
 
 		return *this;
-	}
-
-	void Indexer::visit( ObjectDecl *objectDecl ) {
-		enterScope();
-		maybeAccept( objectDecl->get_type(), *this );
-		leaveScope();
-		maybeAccept( objectDecl->get_init(), *this );
-		maybeAccept( objectDecl->get_bitfieldWidth(), *this );
-		if ( objectDecl->get_name() != "" ) {
-			debugPrint( "Adding object " << objectDecl->get_name() << std::endl );
-			addId( objectDecl );
-		} // if
-	}
-
-	void Indexer::visit( FunctionDecl *functionDecl ) {
-		if ( functionDecl->get_name() == "" ) return;
-		debugPrint( "Adding function " << functionDecl->get_name() << std::endl );
-		addId( functionDecl );
-		enterScope();
-		maybeAccept( functionDecl->get_functionType(), *this );
-		maybeAccept( functionDecl->get_statements(), *this );
-		leaveScope();
-	}
-
-
-// A NOTE ON THE ORDER OF TRAVERSAL
-//
-// Types and typedefs have their base types visited before they are added to the type table.  This is ok, since there is
-// no such thing as a recursive type or typedef.
-//
-//             typedef struct { T *x; } T; // never allowed
-//
-// for structs/unions, it is possible to have recursion, so the decl should be added as if it's incomplete to begin, the
-// members are traversed, and then the complete type should be added (assuming the type is completed by this particular
-// declaration).
-//
-//             struct T { struct T *x; }; // allowed
-//
-// It is important to add the complete type to the symbol table *after* the members/base has been traversed, since that
-// traversal may modify the definition of the type and these modifications should be visible when the symbol table is
-// queried later in this pass.
-//
-// TODO: figure out whether recursive contexts are sensible/possible/reasonable.
-
-
-	void Indexer::visit( TypeDecl *typeDecl ) {
-		// see A NOTE ON THE ORDER OF TRAVERSAL, above
-		// note that assertions come after the type is added to the symtab, since they are not part of the type proper
-		// and may depend on the type itself
-		enterScope();
-		acceptAll( typeDecl->get_parameters(), *this );
-		maybeAccept( typeDecl->get_base(), *this );
-		leaveScope();
-		debugPrint( "Adding type " << typeDecl->get_name() << std::endl );
-		addType( typeDecl );
-		acceptAll( typeDecl->get_assertions(), *this );
-		acceptNewScope( typeDecl->get_init(), *this );
-	}
-
-	void Indexer::visit( TypedefDecl *typeDecl ) {
-		enterScope();
-		acceptAll( typeDecl->get_parameters(), *this );
-		maybeAccept( typeDecl->get_base(), *this );
-		leaveScope();
-		debugPrint( "Adding typedef " << typeDecl->get_name() << std::endl );
-		addType( typeDecl );
-	}
-
-	void Indexer::visit( StructDecl *aggregateDecl ) {
-		// make up a forward declaration and add it before processing the members
-		// needs to be on the heap because addStruct saves the pointer
-		StructDecl &fwdDecl = *new StructDecl( aggregateDecl->get_name() );
-		cloneAll( aggregateDecl->get_parameters(), fwdDecl.get_parameters() );
-		debugPrint( "Adding fwd decl for struct " << fwdDecl.get_name() << std::endl );
-		addStruct( &fwdDecl );
-
-		enterScope();
-		acceptAll( aggregateDecl->get_parameters(), *this );
-		acceptAll( aggregateDecl->get_members(), *this );
-		leaveScope();
-
-		debugPrint( "Adding struct " << aggregateDecl->get_name() << std::endl );
-		// this addition replaces the forward declaration
-		addStruct( aggregateDecl );
-	}
-
-	void Indexer::visit( UnionDecl *aggregateDecl ) {
-		// make up a forward declaration and add it before processing the members
-		UnionDecl fwdDecl( aggregateDecl->get_name() );
-		cloneAll( aggregateDecl->get_parameters(), fwdDecl.get_parameters() );
-		debugPrint( "Adding fwd decl for union " << fwdDecl.get_name() << std::endl );
-		addUnion( &fwdDecl );
-
-		enterScope();
-		acceptAll( aggregateDecl->get_parameters(), *this );
-		acceptAll( aggregateDecl->get_members(), *this );
-		leaveScope();
-
-		debugPrint( "Adding union " << aggregateDecl->get_name() << std::endl );
-		addUnion( aggregateDecl );
-	}
-
-	void Indexer::visit( EnumDecl *aggregateDecl ) {
-		debugPrint( "Adding enum " << aggregateDecl->get_name() << std::endl );
-		addEnum( aggregateDecl );
-		// unlike structs, contexts, and unions, enums inject their members into the global scope
-		acceptAll( aggregateDecl->get_members(), *this );
-	}
-
-	void Indexer::visit( TraitDecl *aggregateDecl ) {
-		enterScope();
-		acceptAll( aggregateDecl->get_parameters(), *this );
-		acceptAll( aggregateDecl->get_members(), *this );
-		leaveScope();
-
-		debugPrint( "Adding trait " << aggregateDecl->get_name() << std::endl );
-		addTrait( aggregateDecl );
-	}
-
-	void Indexer::visit( CompoundStmt *compoundStmt ) {
-		enterScope();
-		acceptAll( compoundStmt->get_kids(), *this );
-		leaveScope();
-	}
-
-	void Indexer::visit( IfStmt *ifStmt ) {
-	    // for statements introduce a level of scope
-	    enterScope();
-	    Visitor::visit( ifStmt );
-	    leaveScope();
-	}
-
-	void Indexer::visit( ForStmt *forStmt ) {
-	    // for statements introduce a level of scope
-	    enterScope();
-	    Visitor::visit( forStmt );
-	    leaveScope();
-	}
-
-	void Indexer::visit( CatchStmt *catchStmt ) {
-		// catch statements introduce a level of scope (for the caught exception)
-		enterScope();
-		Visitor::visit( catchStmt );
-		leaveScope();
-	}
-
-	void Indexer::visit( ApplicationExpr *applicationExpr ) {
-		acceptNewScope( applicationExpr->get_result(), *this );
-		maybeAccept( applicationExpr->get_function(), *this );
-		acceptAll( applicationExpr->get_args(), *this );
-	}
-
-	void Indexer::visit( UntypedExpr *untypedExpr ) {
-		acceptNewScope( untypedExpr->get_result(), *this );
-		acceptAll( untypedExpr->get_args(), *this );
-	}
-
-	void Indexer::visit( NameExpr *nameExpr ) {
-		acceptNewScope( nameExpr->get_result(), *this );
-	}
-
-	void Indexer::visit( AddressExpr *addressExpr ) {
-		acceptNewScope( addressExpr->get_result(), *this );
-		maybeAccept( addressExpr->get_arg(), *this );
-	}
-
-	void Indexer::visit( LabelAddressExpr *labAddressExpr ) {
-		acceptNewScope( labAddressExpr->get_result(), *this );
-	}
-
-	void Indexer::visit( CastExpr *castExpr ) {
-		acceptNewScope( castExpr->get_result(), *this );
-		maybeAccept( castExpr->get_arg(), *this );
-	}
-
-	void Indexer::visit( UntypedMemberExpr *memberExpr ) {
-		acceptNewScope( memberExpr->get_result(), *this );
-		maybeAccept( memberExpr->get_aggregate(), *this );
-	}
-
-	void Indexer::visit( MemberExpr *memberExpr ) {
-		acceptNewScope( memberExpr->get_result(), *this );
-		maybeAccept( memberExpr->get_aggregate(), *this );
-	}
-
-	void Indexer::visit( VariableExpr *variableExpr ) {
-		acceptNewScope( variableExpr->get_result(), *this );
-	}
-
-	void Indexer::visit( ConstantExpr *constantExpr ) {
-		acceptNewScope( constantExpr->get_result(), *this );
-		maybeAccept( constantExpr->get_constant(), *this );
-	}
-
-	void Indexer::visit( SizeofExpr *sizeofExpr ) {
-		acceptNewScope( sizeofExpr->get_result(), *this );
-		if ( sizeofExpr->get_isType() ) {
-			maybeAccept( sizeofExpr->get_type(), *this );
-		} else {
-			maybeAccept( sizeofExpr->get_expr(), *this );
-		}
-	}
-
-	void Indexer::visit( AlignofExpr *alignofExpr ) {
-		acceptNewScope( alignofExpr->get_result(), *this );
-		if ( alignofExpr->get_isType() ) {
-			maybeAccept( alignofExpr->get_type(), *this );
-		} else {
-			maybeAccept( alignofExpr->get_expr(), *this );
-		}
-	}
-
-	void Indexer::visit( UntypedOffsetofExpr *offsetofExpr ) {
-		acceptNewScope( offsetofExpr->get_result(), *this );
-		maybeAccept( offsetofExpr->get_type(), *this );
-	}
-
-	void Indexer::visit( OffsetofExpr *offsetofExpr ) {
-		acceptNewScope( offsetofExpr->get_result(), *this );
-		maybeAccept( offsetofExpr->get_type(), *this );
-		maybeAccept( offsetofExpr->get_member(), *this );
-	}
-
-	void Indexer::visit( OffsetPackExpr *offsetPackExpr ) {
-		acceptNewScope( offsetPackExpr->get_result(), *this );
-		maybeAccept( offsetPackExpr->get_type(), *this );
-	}
-
-	void Indexer::visit( AttrExpr *attrExpr ) {
-		acceptNewScope( attrExpr->get_result(), *this );
-		if ( attrExpr->get_isType() ) {
-			maybeAccept( attrExpr->get_type(), *this );
-		} else {
-			maybeAccept( attrExpr->get_expr(), *this );
-		}
-	}
-
-	void Indexer::visit( LogicalExpr *logicalExpr ) {
-		acceptNewScope( logicalExpr->get_result(), *this );
-		maybeAccept( logicalExpr->get_arg1(), *this );
-		maybeAccept( logicalExpr->get_arg2(), *this );
-	}
-
-	void Indexer::visit( ConditionalExpr *conditionalExpr ) {
-		acceptNewScope( conditionalExpr->get_result(), *this );
-		maybeAccept( conditionalExpr->get_arg1(), *this );
-		maybeAccept( conditionalExpr->get_arg2(), *this );
-		maybeAccept( conditionalExpr->get_arg3(), *this );
-	}
-
-	void Indexer::visit( CommaExpr *commaExpr ) {
-		acceptNewScope( commaExpr->get_result(), *this );
-		maybeAccept( commaExpr->get_arg1(), *this );
-		maybeAccept( commaExpr->get_arg2(), *this );
-	}
-
-	void Indexer::visit( TypeExpr *typeExpr ) {
-		acceptNewScope( typeExpr->get_result(), *this );
-		maybeAccept( typeExpr->get_type(), *this );
-	}
-
-	void Indexer::visit( AsmExpr *asmExpr ) {
-		maybeAccept( asmExpr->get_inout(), *this );
-		maybeAccept( asmExpr->get_constraint(), *this );
-		maybeAccept( asmExpr->get_operand(), *this );
-	}
-
-	void Indexer::visit( ImplicitCopyCtorExpr *impCpCtorExpr ) {
-		acceptNewScope( impCpCtorExpr->get_result(), *this );
-		maybeAccept( impCpCtorExpr->get_callExpr(), *this );
-		acceptAll( impCpCtorExpr->get_tempDecls(), *this );
-		acceptAll( impCpCtorExpr->get_returnDecls(), *this );
-		acceptAll( impCpCtorExpr->get_dtors(), *this );
-	}
-
-	void Indexer::visit( ConstructorExpr * ctorExpr ) {
-		acceptNewScope( ctorExpr->get_result(), *this );
-		maybeAccept( ctorExpr->get_callExpr(), *this );
-	}
-
-	void Indexer::visit( CompoundLiteralExpr *compLitExpr ) {
-		acceptNewScope( compLitExpr->get_result(), *this );
-		maybeAccept( compLitExpr->get_initializer(), *this );
-	}
-
-	void Indexer::visit( RangeExpr *rangeExpr ) {
-		maybeAccept( rangeExpr->get_low(), *this );
-		maybeAccept( rangeExpr->get_high(), *this );
-	}
-
-	void Indexer::visit( UntypedTupleExpr *tupleExpr ) {
-		acceptNewScope( tupleExpr->get_result(), *this );
-		acceptAll( tupleExpr->get_exprs(), *this );
-	}
-
-	void Indexer::visit( TupleExpr *tupleExpr ) {
-		acceptNewScope( tupleExpr->get_result(), *this );
-		acceptAll( tupleExpr->get_exprs(), *this );
-	}
-
-	void Indexer::visit( TupleIndexExpr *tupleExpr ) {
-		acceptNewScope( tupleExpr->get_result(), *this );
-		maybeAccept( tupleExpr->get_tuple(), *this );
-	}
-
-	void Indexer::visit( TupleAssignExpr *tupleExpr ) {
-		acceptNewScope( tupleExpr->get_result(), *this );
-		maybeAccept( tupleExpr->get_stmtExpr(), *this );
-	}
-
-	void Indexer::visit( StmtExpr *stmtExpr ) {
-		acceptNewScope( stmtExpr->get_result(), *this );
-		maybeAccept( stmtExpr->get_statements(), *this );
-		acceptAll( stmtExpr->get_returnDecls(), *this );
-		acceptAll( stmtExpr->get_dtors(), *this );
-	}
-
-	void Indexer::visit( UniqueExpr *uniqueExpr ) {
-		acceptNewScope( uniqueExpr->get_result(), *this );
-		maybeAccept( uniqueExpr->get_expr(), *this );
-	}
-
-
-	void Indexer::visit( TraitInstType *traitInst ) {
-		acceptAll( traitInst->get_parameters(), *this );
-	}
-
-	void Indexer::visit( StructInstType *structInst ) {
-		if ( ! lookupStruct( structInst->get_name() ) ) {
-			debugPrint( "Adding struct " << structInst->get_name() << " from implicit forward declaration" << std::endl );
-			addStruct( structInst->get_name() );
-		}
-		enterScope();
-		acceptAll( structInst->get_parameters(), *this );
-		leaveScope();
-	}
-
-	void Indexer::visit( UnionInstType *unionInst ) {
-		if ( ! lookupUnion( unionInst->get_name() ) ) {
-			debugPrint( "Adding union " << unionInst->get_name() << " from implicit forward declaration" << std::endl );
-			addUnion( unionInst->get_name() );
-		}
-		enterScope();
-		acceptAll( unionInst->get_parameters(), *this );
-		leaveScope();
 	}
 
@@ -762,4 +417,5 @@
 
 	void Indexer::addId( DeclarationWithType *decl ) {
+		debugPrint( "Adding Id " << decl->name << std::endl );
 		makeWritable();
 
@@ -811,4 +467,5 @@
 
 	void Indexer::addType( NamedTypeDecl *decl ) {
+		debugPrint( "Adding type " << decl->name << std::endl );
 		makeWritable();
 
@@ -838,8 +495,10 @@
 
 	void Indexer::addStruct( const std::string &id ) {
+		debugPrint( "Adding fwd decl for struct " << id << std::endl );
 		addStruct( new StructDecl( id ) );
 	}
 
 	void Indexer::addStruct( StructDecl *decl ) {
+		debugPrint( "Adding struct " << decl->name << std::endl );
 		makeWritable();
 
@@ -860,4 +519,5 @@
 
 	void Indexer::addEnum( EnumDecl *decl ) {
+		debugPrint( "Adding enum " << decl->name << std::endl );
 		makeWritable();
 
@@ -878,8 +538,10 @@
 
 	void Indexer::addUnion( const std::string &id ) {
+		debugPrint( "Adding fwd decl for union " << id << std::endl );
 		addUnion( new UnionDecl( id ) );
 	}
 
 	void Indexer::addUnion( UnionDecl *decl ) {
+		debugPrint( "Adding union " << decl->name << std::endl );
 		makeWritable();
 
@@ -900,4 +562,5 @@
 
 	void Indexer::addTrait( TraitDecl *decl ) {
+		debugPrint( "Adding trait " << decl->name << std::endl );
 		makeWritable();
 
Index: src/SymTab/Indexer.h
===================================================================
--- src/SymTab/Indexer.h	(revision ed235b60f3ae5366fcfed2f86f609b40ebe9c0ce)
+++ src/SymTab/Indexer.h	(revision 8024bc8cf76c8f650df1a6445c978552ea39985e)
@@ -24,5 +24,5 @@
 
 namespace SymTab {
-	class Indexer : public Visitor {
+	class Indexer {
 	  public:
 		explicit Indexer( bool useDebug = false );
@@ -33,55 +33,4 @@
 		Indexer& operator= ( const Indexer &that );
 		Indexer& operator= ( Indexer &&that );
-
-		using Visitor::visit;
-		virtual void visit( ObjectDecl *objectDecl );
-		virtual void visit( FunctionDecl *functionDecl );
-		virtual void visit( TypeDecl *typeDecl );
-		virtual void visit( TypedefDecl *typeDecl );
-		virtual void visit( StructDecl *aggregateDecl );
-		virtual void visit( UnionDecl *aggregateDecl );
-		virtual void visit( EnumDecl *aggregateDecl );
-		virtual void visit( TraitDecl *aggregateDecl );
-
-		virtual void visit( CompoundStmt *compoundStmt );
-		virtual void visit( IfStmt *ifStmt );
-		virtual void visit( ForStmt *forStmt );
-		virtual void visit( CatchStmt *catchStmt );
-
-		virtual void visit( ApplicationExpr *applicationExpr );
-		virtual void visit( UntypedExpr *untypedExpr );
-		virtual void visit( NameExpr *nameExpr );
-		virtual void visit( CastExpr *castExpr );
-		virtual void visit( AddressExpr *addressExpr );
-		virtual void visit( LabelAddressExpr *labAddressExpr );
-		virtual void visit( UntypedMemberExpr *memberExpr );
-		virtual void visit( MemberExpr *memberExpr );
-		virtual void visit( VariableExpr *variableExpr );
-		virtual void visit( ConstantExpr *constantExpr );
-		virtual void visit( SizeofExpr *sizeofExpr );
-		virtual void visit( AlignofExpr *alignofExpr );
-		virtual void visit( UntypedOffsetofExpr *offsetofExpr );
-		virtual void visit( OffsetofExpr *offsetofExpr );
-		virtual void visit( OffsetPackExpr *offsetPackExpr );
-		virtual void visit( AttrExpr *attrExpr );
-		virtual void visit( LogicalExpr *logicalExpr );
-		virtual void visit( ConditionalExpr *conditionalExpr );
-		virtual void visit( CommaExpr *commaExpr );
-		virtual void visit( TypeExpr *typeExpr );
-		virtual void visit( AsmExpr *asmExpr );
-		virtual void visit( ImplicitCopyCtorExpr *impCpCtorExpr );
-		virtual void visit( ConstructorExpr * ctorExpr );
-		virtual void visit( CompoundLiteralExpr *compLitExpr );
-		virtual void visit( RangeExpr *rangeExpr );
-		virtual void visit( UntypedTupleExpr *tupleExpr );
-		virtual void visit( TupleExpr *tupleExpr );
-		virtual void visit( TupleIndexExpr *tupleExpr );
-		virtual void visit( TupleAssignExpr *tupleExpr );
-		virtual void visit( StmtExpr * stmtExpr );
-		virtual void visit( UniqueExpr * uniqueExpr );
-
-		virtual void visit( TraitInstType *contextInst );
-		virtual void visit( StructInstType *contextInst );
-		virtual void visit( UnionInstType *contextInst );
 
 		// when using an indexer manually (e.g., within a mutator traversal), it is necessary to tell the indexer
@@ -104,5 +53,5 @@
 
 		void print( std::ostream &os, int indent = 0 ) const;
-	  private:
+
 		/// looks up a specific mangled ID at the given scope
 		DeclarationWithType *lookupIdAtScope( const std::string &id, const std::string &mangleName, unsigned long scope ) const;
@@ -127,4 +76,5 @@
 		void addTrait( TraitDecl *decl );
 
+	  private:
 		struct Impl;
 
Index: src/SymTab/Validate.cc
===================================================================
--- src/SymTab/Validate.cc	(revision ed235b60f3ae5366fcfed2f86f609b40ebe9c0ce)
+++ src/SymTab/Validate.cc	(revision 8024bc8cf76c8f650df1a6445c978552ea39985e)
@@ -123,23 +123,20 @@
 
 	/// Associates forward declarations of aggregates with their definitions
-	class LinkReferenceToTypes final : public Indexer {
-		typedef Indexer Parent;
-	  public:
-		LinkReferenceToTypes( bool doDebug, const Indexer *indexer );
-		using Parent::visit;
-		void visit( TypeInstType *typeInst ) final;
-
-		void visit( EnumInstType *enumInst ) final;
-		void visit( StructInstType *structInst ) final;
-		void visit( UnionInstType *unionInst ) final;
-		void visit( TraitInstType *traitInst ) final;
-
-		void visit( EnumDecl *enumDecl ) final;
-		void visit( StructDecl *structDecl ) final;
-		void visit( UnionDecl *unionDecl ) final;
-		void visit( TraitDecl * traitDecl ) final;
+	struct LinkReferenceToTypes final : public WithIndexer {
+		LinkReferenceToTypes( const Indexer *indexer );
+		void postvisit( TypeInstType *typeInst );
+
+		void postvisit( EnumInstType *enumInst );
+		void postvisit( StructInstType *structInst );
+		void postvisit( UnionInstType *unionInst );
+		void postvisit( TraitInstType *traitInst );
+
+		void postvisit( EnumDecl *enumDecl );
+		void postvisit( StructDecl *structDecl );
+		void postvisit( UnionDecl *unionDecl );
+		void postvisit( TraitDecl * traitDecl );
 
 	  private:
-		const Indexer *indexer;
+		const Indexer *local_indexer;
 
 		typedef std::map< std::string, std::list< EnumInstType * > > ForwardEnumsType;
@@ -152,14 +149,7 @@
 
 	/// Replaces array and function types in forall lists by appropriate pointer type and assigns each Object and Function declaration a unique ID.
-	class ForallPointerDecay final : public Indexer {
-		typedef Indexer Parent;
-	  public:
-	  	using Parent::visit;
-		ForallPointerDecay( const Indexer *indexer );
-
-		virtual void visit( ObjectDecl *object ) override;
-		virtual void visit( FunctionDecl *func ) override;
-
-		const Indexer *indexer;
+	struct ForallPointerDecay final {
+		void previsit( ObjectDecl *object );
+		void previsit( FunctionDecl *func );
 	};
 
@@ -263,8 +253,8 @@
 	};
 
-	void validate( std::list< Declaration * > &translationUnit, bool doDebug ) {
+	void validate( std::list< Declaration * > &translationUnit, __attribute__((unused)) bool doDebug ) {
 		PassVisitor<EnumAndPointerDecay> epc;
-		LinkReferenceToTypes lrt( doDebug, 0 );
-		ForallPointerDecay fpd( 0 );
+		PassVisitor<LinkReferenceToTypes> lrt( nullptr );
+		PassVisitor<ForallPointerDecay> fpd;
 		PassVisitor<CompoundLiteral> compoundliteral;
 		PassVisitor<ValidateGenericParameters> genericParams;
@@ -293,6 +283,6 @@
 	void validateType( Type *type, const Indexer *indexer ) {
 		PassVisitor<EnumAndPointerDecay> epc;
-		LinkReferenceToTypes lrt( false, indexer );
-		ForallPointerDecay fpd( indexer );
+		PassVisitor<LinkReferenceToTypes> lrt( indexer );
+		PassVisitor<ForallPointerDecay> fpd;
 		type->accept( epc );
 		type->accept( lrt );
@@ -408,15 +398,14 @@
 	}
 
-	LinkReferenceToTypes::LinkReferenceToTypes( bool doDebug, const Indexer *other_indexer ) : Indexer( doDebug ) {
+	LinkReferenceToTypes::LinkReferenceToTypes( const Indexer *other_indexer ) {
 		if ( other_indexer ) {
-			indexer = other_indexer;
+			local_indexer = other_indexer;
 		} else {
-			indexer = this;
-		} // if
-	}
-
-	void LinkReferenceToTypes::visit( EnumInstType *enumInst ) {
-		Parent::visit( enumInst );
-		EnumDecl *st = indexer->lookupEnum( enumInst->get_name() );
+			local_indexer = &indexer;
+		} // if
+	}
+
+	void LinkReferenceToTypes::postvisit( EnumInstType *enumInst ) {
+		EnumDecl *st = local_indexer->lookupEnum( enumInst->get_name() );
 		// it's not a semantic error if the enum is not found, just an implicit forward declaration
 		if ( st ) {
@@ -430,7 +419,6 @@
 	}
 
-	void LinkReferenceToTypes::visit( StructInstType *structInst ) {
-		Parent::visit( structInst );
-		StructDecl *st = indexer->lookupStruct( structInst->get_name() );
+	void LinkReferenceToTypes::postvisit( StructInstType *structInst ) {
+		StructDecl *st = local_indexer->lookupStruct( structInst->get_name() );
 		// it's not a semantic error if the struct is not found, just an implicit forward declaration
 		if ( st ) {
@@ -444,7 +432,6 @@
 	}
 
-	void LinkReferenceToTypes::visit( UnionInstType *unionInst ) {
-		Parent::visit( unionInst );
-		UnionDecl *un = indexer->lookupUnion( unionInst->get_name() );
+	void LinkReferenceToTypes::postvisit( UnionInstType *unionInst ) {
+		UnionDecl *un = local_indexer->lookupUnion( unionInst->get_name() );
 		// it's not a semantic error if the union is not found, just an implicit forward declaration
 		if ( un ) {
@@ -499,7 +486,5 @@
 	}
 
-	void LinkReferenceToTypes::visit( TraitDecl * traitDecl ) {
-		Parent::visit( traitDecl );
-
+	void LinkReferenceToTypes::postvisit( TraitDecl * traitDecl ) {
 		if ( traitDecl->name == "sized" ) {
 			// "sized" is a special trait - flick the sized status on for the type variable
@@ -523,8 +508,7 @@
 	}
 
-	void LinkReferenceToTypes::visit( TraitInstType * traitInst ) {
-		Parent::visit( traitInst );
+	void LinkReferenceToTypes::postvisit( TraitInstType * traitInst ) {
 		// handle other traits
-		TraitDecl *traitDecl = indexer->lookupTrait( traitInst->name );
+		TraitDecl *traitDecl = local_indexer->lookupTrait( traitInst->name );
 		if ( ! traitDecl ) {
 			throw SemanticError( "use of undeclared trait " + traitInst->name );
@@ -547,7 +531,6 @@
 	}
 
-	void LinkReferenceToTypes::visit( EnumDecl *enumDecl ) {
+	void LinkReferenceToTypes::postvisit( EnumDecl *enumDecl ) {
 		// visit enum members first so that the types of self-referencing members are updated properly
-		Parent::visit( enumDecl );
 		if ( ! enumDecl->get_members().empty() ) {
 			ForwardEnumsType::iterator fwds = forwardEnums.find( enumDecl->get_name() );
@@ -561,8 +544,7 @@
 	}
 
-	void LinkReferenceToTypes::visit( StructDecl *structDecl ) {
+	void LinkReferenceToTypes::postvisit( StructDecl *structDecl ) {
 		// visit struct members first so that the types of self-referencing members are updated properly
-		// xxx - need to ensure that type parameters match up between forward declarations and definition (most importantly, number of type parameters and and their defaults)
-		Parent::visit( structDecl );
+		// xxx - need to ensure that type parameters match up between forward declarations and definition (most importantly, number of type parameters and their defaults)
 		if ( ! structDecl->get_members().empty() ) {
 			ForwardStructsType::iterator fwds = forwardStructs.find( structDecl->get_name() );
@@ -576,6 +558,5 @@
 	}
 
-	void LinkReferenceToTypes::visit( UnionDecl *unionDecl ) {
-		Parent::visit( unionDecl );
+	void LinkReferenceToTypes::postvisit( UnionDecl *unionDecl ) {
 		if ( ! unionDecl->get_members().empty() ) {
 			ForwardUnionsType::iterator fwds = forwardUnions.find( unionDecl->get_name() );
@@ -589,17 +570,9 @@
 	}
 
-	void LinkReferenceToTypes::visit( TypeInstType *typeInst ) {
-		if ( NamedTypeDecl *namedTypeDecl = lookupType( typeInst->get_name() ) ) {
+	void LinkReferenceToTypes::postvisit( TypeInstType *typeInst ) {
+		if ( NamedTypeDecl *namedTypeDecl = local_indexer->lookupType( typeInst->get_name() ) ) {
 			if ( TypeDecl *typeDecl = dynamic_cast< TypeDecl * >( namedTypeDecl ) ) {
 				typeInst->set_isFtype( typeDecl->get_kind() == TypeDecl::Ftype );
 			} // if
-		} // if
-	}
-
-	ForallPointerDecay::ForallPointerDecay( const Indexer *other_indexer ) :  Indexer( false ) {
-		if ( other_indexer ) {
-			indexer = other_indexer;
-		} else {
-			indexer = this;
 		} // if
 	}
@@ -633,16 +606,14 @@
 	}
 
-	void ForallPointerDecay::visit( ObjectDecl *object ) {
+	void ForallPointerDecay::previsit( ObjectDecl *object ) {
 		forallFixer( object->get_type() );
 		if ( PointerType *pointer = dynamic_cast< PointerType * >( object->get_type() ) ) {
 			forallFixer( pointer->get_base() );
 		} // if
-		Parent::visit( object );
 		object->fixUniqueId();
 	}
 
-	void ForallPointerDecay::visit( FunctionDecl *func ) {
+	void ForallPointerDecay::previsit( FunctionDecl *func ) {
 		forallFixer( func->get_type() );
-		Parent::visit( func );
 		func->fixUniqueId();
 	}
Index: src/libcfa/iostream
===================================================================
--- src/libcfa/iostream	(revision ed235b60f3ae5366fcfed2f86f609b40ebe9c0ce)
+++ src/libcfa/iostream	(revision 8024bc8cf76c8f650df1a6445c978552ea39985e)
@@ -10,12 +10,10 @@
 // Created On       : Wed May 27 17:56:53 2015
 // Last Modified By : Peter A. Buhr
-// Last Modified On : Mon Sep 11 09:17:07 2017
-// Update Count     : 137
+// Last Modified On : Wed Sep 13 12:53:46 2017
+// Update Count     : 138
 //
 
 #pragma once
 
-#include <uchar.h>
-#include <wchar.h>
 #include "iterator"
 
Index: src/main.cc
===================================================================
--- src/main.cc	(revision ed235b60f3ae5366fcfed2f86f609b40ebe9c0ce)
+++ src/main.cc	(revision 8024bc8cf76c8f650df1a6445c978552ea39985e)
@@ -35,4 +35,5 @@
 #include "CodeTools/DeclStats.h"            // for printDeclStats
 #include "CodeTools/TrackLoc.h"             // for fillLocations
+#include "Common/PassVisitor.h"
 #include "Common/CompilerError.h"           // for CompilerError
 #include "Common/SemanticError.h"           // for SemanticError
@@ -250,5 +251,5 @@
 
 		if ( expraltp ) {
-			ResolvExpr::AlternativePrinter printer( cout );
+			PassVisitor<ResolvExpr::AlternativePrinter> printer( cout );
 			acceptAll( translationUnit, printer );
 			return 0;
Index: src/prelude/extras.c
===================================================================
--- src/prelude/extras.c	(revision ed235b60f3ae5366fcfed2f86f609b40ebe9c0ce)
+++ src/prelude/extras.c	(revision 8024bc8cf76c8f650df1a6445c978552ea39985e)
@@ -1,3 +1,5 @@
-#include <stddef.h>
-#include <stdlib.h>
-#include <stdio.h>
+#include <stddef.h>					// size_t, ptrdiff_t
+#include <uchar.h>					// char16_t, char32_t
+#include <wchar.h>					// wchar_t
+#include <stdlib.h>					// malloc, free, exit, atexit, abort
+#include <stdio.h>					// printf
Index: src/prelude/extras.regx
===================================================================
--- src/prelude/extras.regx	(revision ed235b60f3ae5366fcfed2f86f609b40ebe9c0ce)
+++ src/prelude/extras.regx	(revision 8024bc8cf76c8f650df1a6445c978552ea39985e)
@@ -1,8 +1,11 @@
 typedef.* size_t;
 typedef.* ptrdiff_t;
+typedef.* char16_t;
+typedef.* char32_t;
+typedef.* wchar_t;
+extern.*\*malloc\(.*\).*
+extern.* free\(.*\).*
+extern.* exit\(.*\).*
+extern.* atexit\(.*\).*
 extern.* abort\(.*\).*
-extern.* atexit\(.*\).*
-extern.* exit\(.*\).*
-extern.* free\(.*\).*
-extern.*\*malloc\(.*\).*
 extern.* printf\(.*\).*
Index: src/tests/.expect/32/literals.txt
===================================================================
--- src/tests/.expect/32/literals.txt	(revision ed235b60f3ae5366fcfed2f86f609b40ebe9c0ce)
+++ src/tests/.expect/32/literals.txt	(revision 8024bc8cf76c8f650df1a6445c978552ea39985e)
@@ -5,306 +5,4 @@
 __attribute__ ((__nothrow__,__leaf__,__noreturn__)) extern void exit(signed int __status);
 extern signed int printf(const char *__restrict __format, ...);
-union __anonymous0 {
-    unsigned int __wch;
-    char __wchb[((unsigned int )4)];
-};
-static inline void ___constructor__F_R13u__anonymous0_autogen___1(__attribute__ ((unused)) union __anonymous0 *___dst__R13u__anonymous0_1){
-}
-static inline void ___constructor__F_R13u__anonymous013u__anonymous0_autogen___1(union __anonymous0 *___dst__R13u__anonymous0_1, union __anonymous0 ___src__13u__anonymous0_1){
-    ((void)__builtin_memcpy(((void *)___dst__R13u__anonymous0_1), ((const void *)(&___src__13u__anonymous0_1)), sizeof(union __anonymous0 )));
-}
-static inline void ___destructor__F_R13u__anonymous0_autogen___1(__attribute__ ((unused)) union __anonymous0 *___dst__R13u__anonymous0_1){
-}
-static inline union __anonymous0 ___operator_assign__F13u__anonymous0_R13u__anonymous013u__anonymous0_autogen___1(union __anonymous0 *___dst__R13u__anonymous0_1, union __anonymous0 ___src__13u__anonymous0_1){
-    union __anonymous0 ___ret__13u__anonymous0_1;
-    ((void)__builtin_memcpy(((void *)___dst__R13u__anonymous0_1), ((const void *)(&___src__13u__anonymous0_1)), sizeof(union __anonymous0 )));
-    ((void)___constructor__F_R13u__anonymous013u__anonymous0_autogen___1((&___ret__13u__anonymous0_1), ___src__13u__anonymous0_1));
-    return ((union __anonymous0 )___ret__13u__anonymous0_1);
-}
-static inline void ___constructor__F_R13u__anonymous0Ui_autogen___1(__attribute__ ((unused)) union __anonymous0 *___dst__R13u__anonymous0_1, unsigned int __src__Ui_1){
-    ((void)__builtin_memcpy(((void *)___dst__R13u__anonymous0_1), ((const void *)(&__src__Ui_1)), sizeof(unsigned int )));
-}
-struct __anonymous1 {
-    signed int __count;
-    union __anonymous0 __value;
-};
-struct __anonymous1;
-struct __anonymous1;
-__attribute__ ((__nothrow__,__leaf__)) extern unsigned int mbrtoc16(unsigned short int *__restrict __pc16, const char *__restrict __s, unsigned int __n, struct __anonymous1 *__restrict __p);
-__attribute__ ((__nothrow__,__leaf__)) extern unsigned int c16rtomb(char *__restrict __s, unsigned short int __c16, struct __anonymous1 *__restrict __ps);
-__attribute__ ((__nothrow__,__leaf__)) extern unsigned int mbrtoc32(unsigned int *__restrict __pc32, const char *__restrict __s, unsigned int __n, struct __anonymous1 *__restrict __p);
-__attribute__ ((__nothrow__,__leaf__)) extern unsigned int c32rtomb(char *__restrict __s, unsigned int __c32, struct __anonymous1 *__restrict __ps);
-struct _IO_FILE;
-struct _IO_FILE;
-struct _IO_FILE;
-struct tm;
-__attribute__ ((__nothrow__,__leaf__,__nonnull__(1, 2))) extern signed long int *wcscpy(signed long int *__restrict __dest, const signed long int *__restrict __src);
-__attribute__ ((__nothrow__,__leaf__,__nonnull__(1, 2))) extern signed long int *wcsncpy(signed long int *__restrict __dest, const signed long int *__restrict __src, unsigned int __n);
-__attribute__ ((__nothrow__,__leaf__,__nonnull__(1, 2))) extern signed long int *wcscat(signed long int *__restrict __dest, const signed long int *__restrict __src);
-__attribute__ ((__nothrow__,__leaf__,__nonnull__(1, 2))) extern signed long int *wcsncat(signed long int *__restrict __dest, const signed long int *__restrict __src, unsigned int __n);
-__attribute__ ((__nothrow__,__leaf__,__pure__,__nonnull__(1, 2))) extern signed int wcscmp(const signed long int *__s1, const signed long int *__s2);
-__attribute__ ((__nothrow__,__leaf__,__pure__,__nonnull__(1, 2))) extern signed int wcsncmp(const signed long int *__s1, const signed long int *__s2, unsigned int __n);
-__attribute__ ((__nothrow__,__leaf__)) extern signed int wcscasecmp(const signed long int *__s1, const signed long int *__s2);
-__attribute__ ((__nothrow__,__leaf__)) extern signed int wcsncasecmp(const signed long int *__s1, const signed long int *__s2, unsigned int __n);
-struct __locale_struct {
-    struct __locale_data *__locales[((unsigned int )13)];
-    const unsigned short int *__ctype_b;
-    const signed int *__ctype_tolower;
-    const signed int *__ctype_toupper;
-    const char *__names[((unsigned int )13)];
-};
-static inline void ___constructor__F_R16s__locale_struct_autogen___1(struct __locale_struct *___dst__R16s__locale_struct_1);
-static inline void ___constructor__F_R16s__locale_struct16s__locale_struct_autogen___1(struct __locale_struct *___dst__R16s__locale_struct_1, struct __locale_struct ___src__16s__locale_struct_1);
-static inline void ___destructor__F_R16s__locale_struct_autogen___1(struct __locale_struct *___dst__R16s__locale_struct_1);
-static inline struct __locale_struct ___operator_assign__F16s__locale_struct_R16s__locale_struct16s__locale_struct_autogen___1(struct __locale_struct *___dst__R16s__locale_struct_1, struct __locale_struct ___src__16s__locale_struct_1);
-static inline void ___constructor__F_R16s__locale_struct_autogen___1(struct __locale_struct *___dst__R16s__locale_struct_1){
-    {
-        signed int _index0 = ((signed int )0);
-        for (;(_index0<13);((void)(++_index0))) {
-            ((void)((*((struct __locale_data **)(&(*___dst__R16s__locale_struct_1).__locales[_index0])))) /* ?{} */);
-        }
-
-    }
-    ((void)((*___dst__R16s__locale_struct_1).__ctype_b) /* ?{} */);
-    ((void)((*___dst__R16s__locale_struct_1).__ctype_tolower) /* ?{} */);
-    ((void)((*___dst__R16s__locale_struct_1).__ctype_toupper) /* ?{} */);
-    {
-        signed int _index1 = ((signed int )0);
-        for (;(_index1<13);((void)(++_index1))) {
-            ((void)((*((const char **)(&(*___dst__R16s__locale_struct_1).__names[_index1])))) /* ?{} */);
-        }
-
-    }
-}
-static inline void ___constructor__F_R16s__locale_struct16s__locale_struct_autogen___1(struct __locale_struct *___dst__R16s__locale_struct_1, struct __locale_struct ___src__16s__locale_struct_1){
-    {
-        signed int _index2 = ((signed int )0);
-        for (;(_index2<13);((void)(++_index2))) {
-            ((void)((*((struct __locale_data **)(&(*___dst__R16s__locale_struct_1).__locales[_index2])))=___src__16s__locale_struct_1.__locales[_index2]) /* ?{} */);
-        }
-
-    }
-    ((void)((*___dst__R16s__locale_struct_1).__ctype_b=___src__16s__locale_struct_1.__ctype_b) /* ?{} */);
-    ((void)((*___dst__R16s__locale_struct_1).__ctype_tolower=___src__16s__locale_struct_1.__ctype_tolower) /* ?{} */);
-    ((void)((*___dst__R16s__locale_struct_1).__ctype_toupper=___src__16s__locale_struct_1.__ctype_toupper) /* ?{} */);
-    {
-        signed int _index3 = ((signed int )0);
-        for (;(_index3<13);((void)(++_index3))) {
-            ((void)((*((const char **)(&(*___dst__R16s__locale_struct_1).__names[_index3])))=___src__16s__locale_struct_1.__names[_index3]) /* ?{} */);
-        }
-
-    }
-}
-static inline void ___destructor__F_R16s__locale_struct_autogen___1(struct __locale_struct *___dst__R16s__locale_struct_1){
-    {
-        signed int _index4 = ((signed int )(13-1));
-        for (;(_index4>=0);((void)(--_index4))) {
-            ((void)((*((const char **)(&(*___dst__R16s__locale_struct_1).__names[_index4])))) /* ^?{} */);
-        }
-
-    }
-    ((void)((*___dst__R16s__locale_struct_1).__ctype_toupper) /* ^?{} */);
-    ((void)((*___dst__R16s__locale_struct_1).__ctype_tolower) /* ^?{} */);
-    ((void)((*___dst__R16s__locale_struct_1).__ctype_b) /* ^?{} */);
-    {
-        signed int _index5 = ((signed int )(13-1));
-        for (;(_index5>=0);((void)(--_index5))) {
-            ((void)((*((struct __locale_data **)(&(*___dst__R16s__locale_struct_1).__locales[_index5])))) /* ^?{} */);
-        }
-
-    }
-}
-static inline struct __locale_struct ___operator_assign__F16s__locale_struct_R16s__locale_struct16s__locale_struct_autogen___1(struct __locale_struct *___dst__R16s__locale_struct_1, struct __locale_struct ___src__16s__locale_struct_1){
-    struct __locale_struct ___ret__16s__locale_struct_1;
-    {
-        signed int _index6 = ((signed int )0);
-        for (;(_index6<13);((void)(++_index6))) {
-            ((void)((*___dst__R16s__locale_struct_1).__locales[_index6]=___src__16s__locale_struct_1.__locales[_index6]));
-        }
-
-    }
-
-    ((void)((*___dst__R16s__locale_struct_1).__ctype_b=___src__16s__locale_struct_1.__ctype_b));
-    ((void)((*___dst__R16s__locale_struct_1).__ctype_tolower=___src__16s__locale_struct_1.__ctype_tolower));
-    ((void)((*___dst__R16s__locale_struct_1).__ctype_toupper=___src__16s__locale_struct_1.__ctype_toupper));
-    {
-        signed int _index7 = ((signed int )0);
-        for (;(_index7<13);((void)(++_index7))) {
-            ((void)((*___dst__R16s__locale_struct_1).__names[_index7]=___src__16s__locale_struct_1.__names[_index7]));
-        }
-
-    }
-
-    ((void)___constructor__F_R16s__locale_struct16s__locale_struct_autogen___1((&___ret__16s__locale_struct_1), ___src__16s__locale_struct_1));
-    return ((struct __locale_struct )___ret__16s__locale_struct_1);
-}
-static inline void ___constructor__F_R16s__locale_structA0P14s__locale_data_autogen___1(struct __locale_struct *___dst__R16s__locale_struct_1, struct __locale_data *____locales__A0P14s__locale_data_1[((unsigned int )13)]){
-    {
-        signed int _index8 = ((signed int )0);
-        for (;(_index8<13);((void)(++_index8))) {
-            ((void)((*((struct __locale_data **)(&(*___dst__R16s__locale_struct_1).__locales[_index8])))=____locales__A0P14s__locale_data_1[_index8]) /* ?{} */);
-        }
-
-    }
-    ((void)((*___dst__R16s__locale_struct_1).__ctype_b) /* ?{} */);
-    ((void)((*___dst__R16s__locale_struct_1).__ctype_tolower) /* ?{} */);
-    ((void)((*___dst__R16s__locale_struct_1).__ctype_toupper) /* ?{} */);
-    {
-        signed int _index9 = ((signed int )0);
-        for (;(_index9<13);((void)(++_index9))) {
-            ((void)((*((const char **)(&(*___dst__R16s__locale_struct_1).__names[_index9])))) /* ?{} */);
-        }
-
-    }
-}
-static inline void ___constructor__F_R16s__locale_structA0P14s__locale_dataPCUs_autogen___1(struct __locale_struct *___dst__R16s__locale_struct_1, struct __locale_data *____locales__A0P14s__locale_data_1[((unsigned int )13)], const unsigned short int *____ctype_b__PCUs_1){
-    {
-        signed int _index10 = ((signed int )0);
-        for (;(_index10<13);((void)(++_index10))) {
-            ((void)((*((struct __locale_data **)(&(*___dst__R16s__locale_struct_1).__locales[_index10])))=____locales__A0P14s__locale_data_1[_index10]) /* ?{} */);
-        }
-
-    }
-    ((void)((*___dst__R16s__locale_struct_1).__ctype_b=____ctype_b__PCUs_1) /* ?{} */);
-    ((void)((*___dst__R16s__locale_struct_1).__ctype_tolower) /* ?{} */);
-    ((void)((*___dst__R16s__locale_struct_1).__ctype_toupper) /* ?{} */);
-    {
-        signed int _index11 = ((signed int )0);
-        for (;(_index11<13);((void)(++_index11))) {
-            ((void)((*((const char **)(&(*___dst__R16s__locale_struct_1).__names[_index11])))) /* ?{} */);
-        }
-
-    }
-}
-static inline void ___constructor__F_R16s__locale_structA0P14s__locale_dataPCUsPCi_autogen___1(struct __locale_struct *___dst__R16s__locale_struct_1, struct __locale_data *____locales__A0P14s__locale_data_1[((unsigned int )13)], const unsigned short int *____ctype_b__PCUs_1, const signed int *____ctype_tolower__PCi_1){
-    {
-        signed int _index12 = ((signed int )0);
-        for (;(_index12<13);((void)(++_index12))) {
-            ((void)((*((struct __locale_data **)(&(*___dst__R16s__locale_struct_1).__locales[_index12])))=____locales__A0P14s__locale_data_1[_index12]) /* ?{} */);
-        }
-
-    }
-    ((void)((*___dst__R16s__locale_struct_1).__ctype_b=____ctype_b__PCUs_1) /* ?{} */);
-    ((void)((*___dst__R16s__locale_struct_1).__ctype_tolower=____ctype_tolower__PCi_1) /* ?{} */);
-    ((void)((*___dst__R16s__locale_struct_1).__ctype_toupper) /* ?{} */);
-    {
-        signed int _index13 = ((signed int )0);
-        for (;(_index13<13);((void)(++_index13))) {
-            ((void)((*((const char **)(&(*___dst__R16s__locale_struct_1).__names[_index13])))) /* ?{} */);
-        }
-
-    }
-}
-static inline void ___constructor__F_R16s__locale_structA0P14s__locale_dataPCUsPCiPCi_autogen___1(struct __locale_struct *___dst__R16s__locale_struct_1, struct __locale_data *____locales__A0P14s__locale_data_1[((unsigned int )13)], const unsigned short int *____ctype_b__PCUs_1, const signed int *____ctype_tolower__PCi_1, const signed int *____ctype_toupper__PCi_1){
-    {
-        signed int _index14 = ((signed int )0);
-        for (;(_index14<13);((void)(++_index14))) {
-            ((void)((*((struct __locale_data **)(&(*___dst__R16s__locale_struct_1).__locales[_index14])))=____locales__A0P14s__locale_data_1[_index14]) /* ?{} */);
-        }
-
-    }
-    ((void)((*___dst__R16s__locale_struct_1).__ctype_b=____ctype_b__PCUs_1) /* ?{} */);
-    ((void)((*___dst__R16s__locale_struct_1).__ctype_tolower=____ctype_tolower__PCi_1) /* ?{} */);
-    ((void)((*___dst__R16s__locale_struct_1).__ctype_toupper=____ctype_toupper__PCi_1) /* ?{} */);
-    {
-        signed int _index15 = ((signed int )0);
-        for (;(_index15<13);((void)(++_index15))) {
-            ((void)((*((const char **)(&(*___dst__R16s__locale_struct_1).__names[_index15])))) /* ?{} */);
-        }
-
-    }
-}
-static inline void ___constructor__F_R16s__locale_structA0P14s__locale_dataPCUsPCiPCiA0PCc_autogen___1(struct __locale_struct *___dst__R16s__locale_struct_1, struct __locale_data *____locales__A0P14s__locale_data_1[((unsigned int )13)], const unsigned short int *____ctype_b__PCUs_1, const signed int *____ctype_tolower__PCi_1, const signed int *____ctype_toupper__PCi_1, const char *____names__A0PCc_1[((unsigned int )13)]){
-    {
-        signed int _index16 = ((signed int )0);
-        for (;(_index16<13);((void)(++_index16))) {
-            ((void)((*((struct __locale_data **)(&(*___dst__R16s__locale_struct_1).__locales[_index16])))=____locales__A0P14s__locale_data_1[_index16]) /* ?{} */);
-        }
-
-    }
-    ((void)((*___dst__R16s__locale_struct_1).__ctype_b=____ctype_b__PCUs_1) /* ?{} */);
-    ((void)((*___dst__R16s__locale_struct_1).__ctype_tolower=____ctype_tolower__PCi_1) /* ?{} */);
-    ((void)((*___dst__R16s__locale_struct_1).__ctype_toupper=____ctype_toupper__PCi_1) /* ?{} */);
-    {
-        signed int _index17 = ((signed int )0);
-        for (;(_index17<13);((void)(++_index17))) {
-            ((void)((*((const char **)(&(*___dst__R16s__locale_struct_1).__names[_index17])))=____names__A0PCc_1[_index17]) /* ?{} */);
-        }
-
-    }
-}
-struct __locale_struct;
-struct __locale_struct;
-__attribute__ ((__nothrow__,__leaf__)) extern signed int wcscasecmp_l(const signed long int *__s1, const signed long int *__s2, struct __locale_struct *__loc);
-__attribute__ ((__nothrow__,__leaf__)) extern signed int wcsncasecmp_l(const signed long int *__s1, const signed long int *__s2, unsigned int __n, struct __locale_struct *__loc);
-__attribute__ ((__nothrow__,__leaf__)) extern signed int wcscoll(const signed long int *__s1, const signed long int *__s2);
-__attribute__ ((__nothrow__,__leaf__)) extern unsigned int wcsxfrm(signed long int *__restrict __s1, const signed long int *__restrict __s2, unsigned int __n);
-__attribute__ ((__nothrow__,__leaf__)) extern signed int wcscoll_l(const signed long int *__s1, const signed long int *__s2, struct __locale_struct *__loc);
-__attribute__ ((__nothrow__,__leaf__)) extern unsigned int wcsxfrm_l(signed long int *__s1, const signed long int *__s2, unsigned int __n, struct __locale_struct *__loc);
-__attribute__ ((__nothrow__,__leaf__,__malloc__)) extern signed long int *wcsdup(const signed long int *__s);
-__attribute__ ((__nothrow__,__leaf__,__pure__)) extern signed long int *wcschr(const signed long int *__wcs, signed long int __wc);
-__attribute__ ((__nothrow__,__leaf__,__pure__)) extern signed long int *wcsrchr(const signed long int *__wcs, signed long int __wc);
-__attribute__ ((__nothrow__,__leaf__,__pure__)) extern unsigned int wcscspn(const signed long int *__wcs, const signed long int *__reject);
-__attribute__ ((__nothrow__,__leaf__,__pure__)) extern unsigned int wcsspn(const signed long int *__wcs, const signed long int *__accept);
-__attribute__ ((__nothrow__,__leaf__,__pure__)) extern signed long int *wcspbrk(const signed long int *__wcs, const signed long int *__accept);
-__attribute__ ((__nothrow__,__leaf__,__pure__)) extern signed long int *wcsstr(const signed long int *__haystack, const signed long int *__needle);
-__attribute__ ((__nothrow__,__leaf__)) extern signed long int *wcstok(signed long int *__restrict __s, const signed long int *__restrict __delim, signed long int **__restrict __ptr);
-__attribute__ ((__nothrow__,__leaf__,__pure__)) extern unsigned int wcslen(const signed long int *__s);
-__attribute__ ((__nothrow__,__leaf__,__pure__)) extern unsigned int wcsnlen(const signed long int *__s, unsigned int __maxlen);
-__attribute__ ((__nothrow__,__leaf__,__pure__)) extern signed long int *wmemchr(const signed long int *__s, signed long int __c, unsigned int __n);
-__attribute__ ((__nothrow__,__leaf__,__pure__)) extern signed int wmemcmp(const signed long int *__s1, const signed long int *__s2, unsigned int __n);
-__attribute__ ((__nothrow__,__leaf__)) extern signed long int *wmemcpy(signed long int *__restrict __s1, const signed long int *__restrict __s2, unsigned int __n);
-__attribute__ ((__nothrow__,__leaf__)) extern signed long int *wmemmove(signed long int *__s1, const signed long int *__s2, unsigned int __n);
-__attribute__ ((__nothrow__,__leaf__)) extern signed long int *wmemset(signed long int *__s, signed long int __c, unsigned int __n);
-__attribute__ ((__nothrow__,__leaf__)) extern unsigned int btowc(signed int __c);
-__attribute__ ((__nothrow__,__leaf__)) extern signed int wctob(unsigned int __c);
-__attribute__ ((__nothrow__,__leaf__,__pure__)) extern signed int mbsinit(const struct __anonymous1 *__ps);
-__attribute__ ((__nothrow__,__leaf__)) extern unsigned int mbrtowc(signed long int *__restrict __pwc, const char *__restrict __s, unsigned int __n, struct __anonymous1 *__restrict __p);
-__attribute__ ((__nothrow__,__leaf__)) extern unsigned int wcrtomb(char *__restrict __s, signed long int __wc, struct __anonymous1 *__restrict __ps);
-__attribute__ ((__nothrow__,__leaf__)) extern unsigned int __mbrlen(const char *__restrict __s, unsigned int __n, struct __anonymous1 *__restrict __ps);
-__attribute__ ((__nothrow__,__leaf__)) extern unsigned int mbrlen(const char *__restrict __s, unsigned int __n, struct __anonymous1 *__restrict __ps);
-__attribute__ ((__nothrow__,__leaf__)) extern unsigned int mbsrtowcs(signed long int *__restrict __dst, const char **__restrict __src, unsigned int __len, struct __anonymous1 *__restrict __ps);
-__attribute__ ((__nothrow__,__leaf__)) extern unsigned int wcsrtombs(char *__restrict __dst, const signed long int **__restrict __src, unsigned int __len, struct __anonymous1 *__restrict __ps);
-__attribute__ ((__nothrow__,__leaf__)) extern unsigned int mbsnrtowcs(signed long int *__restrict __dst, const char **__restrict __src, unsigned int __nmc, unsigned int __len, struct __anonymous1 *__restrict __ps);
-__attribute__ ((__nothrow__,__leaf__)) extern unsigned int wcsnrtombs(char *__restrict __dst, const signed long int **__restrict __src, unsigned int __nwc, unsigned int __len, struct __anonymous1 *__restrict __ps);
-__attribute__ ((__nothrow__,__leaf__)) extern double wcstod(const signed long int *__restrict __nptr, signed long int **__restrict __endptr);
-__attribute__ ((__nothrow__,__leaf__)) extern float wcstof(const signed long int *__restrict __nptr, signed long int **__restrict __endptr);
-__attribute__ ((__nothrow__,__leaf__)) extern long double wcstold(const signed long int *__restrict __nptr, signed long int **__restrict __endptr);
-__attribute__ ((__nothrow__,__leaf__)) extern signed long int wcstol(const signed long int *__restrict __nptr, signed long int **__restrict __endptr, signed int __base);
-__attribute__ ((__nothrow__,__leaf__)) extern unsigned long int wcstoul(const signed long int *__restrict __nptr, signed long int **__restrict __endptr, signed int __base);
-__extension__ __attribute__ ((__nothrow__,__leaf__)) extern signed long long int wcstoll(const signed long int *__restrict __nptr, signed long int **__restrict __endptr, signed int __base);
-__extension__ __attribute__ ((__nothrow__,__leaf__)) extern unsigned long long int wcstoull(const signed long int *__restrict __nptr, signed long int **__restrict __endptr, signed int __base);
-__attribute__ ((__nothrow__,__leaf__)) extern signed long int *wcpcpy(signed long int *__restrict __dest, const signed long int *__restrict __src);
-__attribute__ ((__nothrow__,__leaf__)) extern signed long int *wcpncpy(signed long int *__restrict __dest, const signed long int *__restrict __src, unsigned int __n);
-__attribute__ ((__nothrow__,__leaf__)) extern struct _IO_FILE *open_wmemstream(signed long int **__bufloc, unsigned int *__sizeloc);
-__attribute__ ((__nothrow__,__leaf__)) extern signed int fwide(struct _IO_FILE *__fp, signed int __mode);
-extern signed int fwprintf(struct _IO_FILE *__restrict __stream, const signed long int *__restrict __format, ...);
-extern signed int wprintf(const signed long int *__restrict __format, ...);
-__attribute__ ((__nothrow__,__leaf__)) extern signed int swprintf(signed long int *__restrict __s, unsigned int __n, const signed long int *__restrict __format, ...);
-extern signed int vfwprintf(struct _IO_FILE *__restrict __s, const signed long int *__restrict __format, __builtin_va_list __arg);
-extern signed int vwprintf(const signed long int *__restrict __format, __builtin_va_list __arg);
-__attribute__ ((__nothrow__,__leaf__)) extern signed int vswprintf(signed long int *__restrict __s, unsigned int __n, const signed long int *__restrict __format, __builtin_va_list __arg);
-extern signed int fwscanf(struct _IO_FILE *__restrict __stream, const signed long int *__restrict __format, ...);
-extern signed int wscanf(const signed long int *__restrict __format, ...);
-__attribute__ ((__nothrow__,__leaf__)) extern signed int swscanf(const signed long int *__restrict __s, const signed long int *__restrict __format, ...);
-extern signed int fwscanf(struct _IO_FILE *__restrict __stream, const signed long int *__restrict __format, ...) asm ( "" "__isoc99_fwscanf" );
-extern signed int wscanf(const signed long int *__restrict __format, ...) asm ( "" "__isoc99_wscanf" );
-__attribute__ ((__nothrow__,__leaf__)) extern signed int swscanf(const signed long int *__restrict __s, const signed long int *__restrict __format, ...) asm ( "" "__isoc99_swscanf" );
-extern signed int vfwscanf(struct _IO_FILE *__restrict __s, const signed long int *__restrict __format, __builtin_va_list __arg);
-extern signed int vwscanf(const signed long int *__restrict __format, __builtin_va_list __arg);
-__attribute__ ((__nothrow__,__leaf__)) extern signed int vswscanf(const signed long int *__restrict __s, const signed long int *__restrict __format, __builtin_va_list __arg);
-extern signed int vfwscanf(struct _IO_FILE *__restrict __s, const signed long int *__restrict __format, __builtin_va_list __arg) asm ( "" "__isoc99_vfwscanf" );
-extern signed int vwscanf(const signed long int *__restrict __format, __builtin_va_list __arg) asm ( "" "__isoc99_vwscanf" );
-__attribute__ ((__nothrow__,__leaf__)) extern signed int vswscanf(const signed long int *__restrict __s, const signed long int *__restrict __format, __builtin_va_list __arg) asm ( "" "__isoc99_vswscanf" );
-extern unsigned int fgetwc(struct _IO_FILE *__stream);
-extern unsigned int getwc(struct _IO_FILE *__stream);
-extern unsigned int getwchar(void);
-extern unsigned int fputwc(signed long int __wc, struct _IO_FILE *__stream);
-extern unsigned int putwc(signed long int __wc, struct _IO_FILE *__stream);
-extern unsigned int putwchar(signed long int __wc);
-extern signed long int *fgetws(signed long int *__restrict __ws, signed int __n, struct _IO_FILE *__restrict __stream);
-extern signed int fputws(const signed long int *__restrict __ws, struct _IO_FILE *__restrict __stream);
-extern unsigned int ungetwc(unsigned int __wc, struct _IO_FILE *__stream);
-__attribute__ ((__nothrow__,__leaf__)) extern unsigned int wcsftime(signed long int *__restrict __s, unsigned int __maxsize, const signed long int *__restrict __format, const struct tm *__restrict __tp);
 void __for_each__A2_0_0_0____operator_assign__PFt0_Rt0t0____constructor__PF_Rt0____constructor__PF_Rt0t0____destructor__PF_Rt0____operator_assign__PFt1_Rt1t1____constructor__PF_Rt1____constructor__PF_Rt1t1____destructor__PF_Rt1____operator_preincr__PFt0_Rt0____operator_predecr__PFt0_Rt0____operator_equal__PFi_t0t0____operator_notequal__PFi_t0t0____operator_deref__PFRt1_t0__F_t0t0PF_t1___1(__attribute__ ((unused)) void (*_adapterF_9telt_type__P)(void (*__anonymous_object0)(), void *__anonymous_object1), __attribute__ ((unused)) void *(*_adapterFP9telt_type_14titerator_type_M_P)(void (*__anonymous_object2)(), void *__anonymous_object3), __attribute__ ((unused)) signed int (*_adapterFi_14titerator_type14titerator_type_M_PP)(void (*__anonymous_object4)(), void *__anonymous_object5, void *__anonymous_object6), __attribute__ ((unused)) void (*_adapterF14titerator_type_P14titerator_type_P_M)(void (*__anonymous_object7)(), __attribute__ ((unused)) void *___retval__operator_preincr__14titerator_type_1, void *__anonymous_object8), __attribute__ ((unused)) void (*_adapterF_P9telt_type9telt_type__MP)(void (*__anonymous_object9)(), void *__anonymous_object10, void *__anonymous_object11), __attribute__ ((unused)) void (*_adapterF9telt_type_P9telt_type9telt_type_P_MP)(void (*__anonymous_object12)(), __attribute__ ((unused)) void *___retval__operator_assign__9telt_type_1, void *__anonymous_object13, void *__anonymous_object14), __attribute__ ((unused)) void (*_adapterF_P14titerator_type14titerator_type__MP)(void (*__anonymous_object15)(), void *__anonymous_object16, void *__anonymous_object17), __attribute__ ((unused)) void (*_adapterF14titerator_type_P14titerator_type14titerator_type_P_MP)(void (*__anonymous_object18)(), __attribute__ ((unused)) void *___retval__operator_assign__14titerator_type_1, void *__anonymous_object19, void *__anonymous_object20), __attribute__ ((unused)) unsigned long int _sizeof_14titerator_type, __attribute__ ((unused)) unsigned long int _alignof_14titerator_type, __attribute__ ((unused)) unsigned long int _sizeof_9telt_type, __attribute__ ((unused)) unsigned long int _alignof_9telt_type, __attribute__ ((unused)) void *(*___operator_assign__PF14titerator_type_R14titerator_type14titerator_type__1)(void *__anonymous_object21, void *__anonymous_object22), __attribute__ ((unused)) void (*___constructor__PF_R14titerator_type__1)(void *__anonymous_object23), __attribute__ ((unused)) void (*___constructor__PF_R14titerator_type14titerator_type__1)(void *__anonymous_object24, void *__anonymous_object25), __attribute__ ((unused)) void (*___destructor__PF_R14titerator_type__1)(void *__anonymous_object26), __attribute__ ((unused)) void *(*___operator_assign__PF9telt_type_R9telt_type9telt_type__1)(void *__anonymous_object27, void *__anonymous_object28), __attribute__ ((unused)) void (*___constructor__PF_R9telt_type__1)(void *__anonymous_object29), __attribute__ ((unused)) void (*___constructor__PF_R9telt_type9telt_type__1)(void *__anonymous_object30, void *__anonymous_object31), __attribute__ ((unused)) void (*___destructor__PF_R9telt_type__1)(void *__anonymous_object32), __attribute__ ((unused)) void *(*___operator_preincr__PF14titerator_type_R14titerator_type__1)(void *__anonymous_object33), __attribute__ ((unused)) void *(*___operator_predecr__PF14titerator_type_R14titerator_type__1)(void *__anonymous_object34), __attribute__ ((unused)) signed int (*___operator_equal__PFi_14titerator_type14titerator_type__1)(void *__anonymous_object35, void *__anonymous_object36), __attribute__ ((unused)) signed int (*___operator_notequal__PFi_14titerator_type14titerator_type__1)(void *__anonymous_object37, void *__anonymous_object38), __attribute__ ((unused)) void *(*___operator_deref__PFR9telt_type_14titerator_type__1)(void *__anonymous_object39), void *__begin__14titerator_type_1, void *__end__14titerator_type_1, void (*__func__PF_9telt_type__1)(void *__anonymous_object40));
 void __for_each_reverse__A2_0_0_0____operator_assign__PFt0_Rt0t0____constructor__PF_Rt0____constructor__PF_Rt0t0____destructor__PF_Rt0____operator_assign__PFt1_Rt1t1____constructor__PF_Rt1____constructor__PF_Rt1t1____destructor__PF_Rt1____operator_preincr__PFt0_Rt0____operator_predecr__PFt0_Rt0____operator_equal__PFi_t0t0____operator_notequal__PFi_t0t0____operator_deref__PFRt1_t0__F_t0t0PF_t1___1(__attribute__ ((unused)) void (*_adapterF_9telt_type__P)(void (*__anonymous_object41)(), void *__anonymous_object42), __attribute__ ((unused)) void *(*_adapterFP9telt_type_14titerator_type_M_P)(void (*__anonymous_object43)(), void *__anonymous_object44), __attribute__ ((unused)) signed int (*_adapterFi_14titerator_type14titerator_type_M_PP)(void (*__anonymous_object45)(), void *__anonymous_object46, void *__anonymous_object47), __attribute__ ((unused)) void (*_adapterF14titerator_type_P14titerator_type_P_M)(void (*__anonymous_object48)(), __attribute__ ((unused)) void *___retval__operator_preincr__14titerator_type_1, void *__anonymous_object49), __attribute__ ((unused)) void (*_adapterF_P9telt_type9telt_type__MP)(void (*__anonymous_object50)(), void *__anonymous_object51, void *__anonymous_object52), __attribute__ ((unused)) void (*_adapterF9telt_type_P9telt_type9telt_type_P_MP)(void (*__anonymous_object53)(), __attribute__ ((unused)) void *___retval__operator_assign__9telt_type_1, void *__anonymous_object54, void *__anonymous_object55), __attribute__ ((unused)) void (*_adapterF_P14titerator_type14titerator_type__MP)(void (*__anonymous_object56)(), void *__anonymous_object57, void *__anonymous_object58), __attribute__ ((unused)) void (*_adapterF14titerator_type_P14titerator_type14titerator_type_P_MP)(void (*__anonymous_object59)(), __attribute__ ((unused)) void *___retval__operator_assign__14titerator_type_1, void *__anonymous_object60, void *__anonymous_object61), __attribute__ ((unused)) unsigned long int _sizeof_14titerator_type, __attribute__ ((unused)) unsigned long int _alignof_14titerator_type, __attribute__ ((unused)) unsigned long int _sizeof_9telt_type, __attribute__ ((unused)) unsigned long int _alignof_9telt_type, __attribute__ ((unused)) void *(*___operator_assign__PF14titerator_type_R14titerator_type14titerator_type__1)(void *__anonymous_object62, void *__anonymous_object63), __attribute__ ((unused)) void (*___constructor__PF_R14titerator_type__1)(void *__anonymous_object64), __attribute__ ((unused)) void (*___constructor__PF_R14titerator_type14titerator_type__1)(void *__anonymous_object65, void *__anonymous_object66), __attribute__ ((unused)) void (*___destructor__PF_R14titerator_type__1)(void *__anonymous_object67), __attribute__ ((unused)) void *(*___operator_assign__PF9telt_type_R9telt_type9telt_type__1)(void *__anonymous_object68, void *__anonymous_object69), __attribute__ ((unused)) void (*___constructor__PF_R9telt_type__1)(void *__anonymous_object70), __attribute__ ((unused)) void (*___constructor__PF_R9telt_type9telt_type__1)(void *__anonymous_object71, void *__anonymous_object72), __attribute__ ((unused)) void (*___destructor__PF_R9telt_type__1)(void *__anonymous_object73), __attribute__ ((unused)) void *(*___operator_preincr__PF14titerator_type_R14titerator_type__1)(void *__anonymous_object74), __attribute__ ((unused)) void *(*___operator_predecr__PF14titerator_type_R14titerator_type__1)(void *__anonymous_object75), __attribute__ ((unused)) signed int (*___operator_equal__PFi_14titerator_type14titerator_type__1)(void *__anonymous_object76, void *__anonymous_object77), __attribute__ ((unused)) signed int (*___operator_notequal__PFi_14titerator_type14titerator_type__1)(void *__anonymous_object78, void *__anonymous_object79), __attribute__ ((unused)) void *(*___operator_deref__PFR9telt_type_14titerator_type__1)(void *__anonymous_object80), void *__begin__14titerator_type_1, void *__end__14titerator_type_1, void (*__func__PF_9telt_type__1)(void *__anonymous_object81));
@@ -423,6 +121,6 @@
 struct _Istream_cstrC __cstr__F15s_Istream_cstrC_Pci__1(char *__anonymous_object1283, signed int __size__i_1);
 void *___operator_bitor__A0_1_0_0___fail__PFi_Pd0___eof__PFi_Pd0___open__PF_Pd0PCcPCc___close__PF_Pd0___read__PFPd0_Pd0PcUl___ungetc__PFPd0_Pd0c___fmt__PFi_Pd0PCc__FPd0_Pd015s_Istream_cstrC__1(__attribute__ ((unused)) signed int (*__fail__PFi_P7tistype__1)(void *__anonymous_object1284), __attribute__ ((unused)) signed int (*__eof__PFi_P7tistype__1)(void *__anonymous_object1285), __attribute__ ((unused)) void (*__open__PF_P7tistypePCcPCc__1)(void *__is__P7tistype_1, const char *__name__PCc_1, const char *__mode__PCc_1), __attribute__ ((unused)) void (*__close__PF_P7tistype__1)(void *__is__P7tistype_1), __attribute__ ((unused)) void *(*__read__PFP7tistype_P7tistypePcUl__1)(void *__anonymous_object1286, char *__anonymous_object1287, unsigned long int __anonymous_object1288), __attribute__ ((unused)) void *(*__ungetc__PFP7tistype_P7tistypec__1)(void *__anonymous_object1289, char __anonymous_object1290), __attribute__ ((unused)) signed int (*__fmt__PFi_P7tistypePCc__1)(void *__anonymous_object1291, const char *__fmt__PCc_1, ...), void *__anonymous_object1292, struct _Istream_cstrC __anonymous_object1293);
-enum __anonymous2 {
-    __sepSize__C13e__anonymous2_1 = ((signed int )16),
+enum __anonymous0 {
+    __sepSize__C13e__anonymous0_1 = ((signed int )16),
 };
 struct ofstream {
@@ -432,6 +130,6 @@
     _Bool __sawNL__b_1;
     const char *__sepCur__PCc_1;
-    char __separator__A0c_1[((unsigned int )__sepSize__C13e__anonymous2_1)];
-    char __tupleSeparator__A0c_1[((unsigned int )__sepSize__C13e__anonymous2_1)];
+    char __separator__A0c_1[((unsigned int )__sepSize__C13e__anonymous0_1)];
+    char __tupleSeparator__A0c_1[((unsigned int )__sepSize__C13e__anonymous0_1)];
 };
 static inline void ___constructor__F_R9sofstream_autogen___1(struct ofstream *___dst__R9sofstream_1);
@@ -446,14 +144,14 @@
     ((void)((*___dst__R9sofstream_1).__sepCur__PCc_1) /* ?{} */);
     {
-        signed int _index18 = ((signed int )0);
-        for (;(_index18<((signed int )__sepSize__C13e__anonymous2_1));((void)(++_index18))) {
-            ((void)((*((char *)(&(*___dst__R9sofstream_1).__separator__A0c_1[_index18])))) /* ?{} */);
-        }
-
-    }
-    {
-        signed int _index19 = ((signed int )0);
-        for (;(_index19<((signed int )__sepSize__C13e__anonymous2_1));((void)(++_index19))) {
-            ((void)((*((char *)(&(*___dst__R9sofstream_1).__tupleSeparator__A0c_1[_index19])))) /* ?{} */);
+        signed int _index0 = ((signed int )0);
+        for (;(_index0<((signed int )__sepSize__C13e__anonymous0_1));((void)(++_index0))) {
+            ((void)((*((char *)(&(*___dst__R9sofstream_1).__separator__A0c_1[_index0])))) /* ?{} */);
+        }
+
+    }
+    {
+        signed int _index1 = ((signed int )0);
+        for (;(_index1<((signed int )__sepSize__C13e__anonymous0_1));((void)(++_index1))) {
+            ((void)((*((char *)(&(*___dst__R9sofstream_1).__tupleSeparator__A0c_1[_index1])))) /* ?{} */);
         }
 
@@ -467,14 +165,14 @@
     ((void)((*___dst__R9sofstream_1).__sepCur__PCc_1=___src__9sofstream_1.__sepCur__PCc_1) /* ?{} */);
     {
-        signed int _index20 = ((signed int )0);
-        for (;(_index20<((signed int )__sepSize__C13e__anonymous2_1));((void)(++_index20))) {
-            ((void)((*((char *)(&(*___dst__R9sofstream_1).__separator__A0c_1[_index20])))=___src__9sofstream_1.__separator__A0c_1[_index20]) /* ?{} */);
-        }
-
-    }
-    {
-        signed int _index21 = ((signed int )0);
-        for (;(_index21<((signed int )__sepSize__C13e__anonymous2_1));((void)(++_index21))) {
-            ((void)((*((char *)(&(*___dst__R9sofstream_1).__tupleSeparator__A0c_1[_index21])))=___src__9sofstream_1.__tupleSeparator__A0c_1[_index21]) /* ?{} */);
+        signed int _index2 = ((signed int )0);
+        for (;(_index2<((signed int )__sepSize__C13e__anonymous0_1));((void)(++_index2))) {
+            ((void)((*((char *)(&(*___dst__R9sofstream_1).__separator__A0c_1[_index2])))=___src__9sofstream_1.__separator__A0c_1[_index2]) /* ?{} */);
+        }
+
+    }
+    {
+        signed int _index3 = ((signed int )0);
+        for (;(_index3<((signed int )__sepSize__C13e__anonymous0_1));((void)(++_index3))) {
+            ((void)((*((char *)(&(*___dst__R9sofstream_1).__tupleSeparator__A0c_1[_index3])))=___src__9sofstream_1.__tupleSeparator__A0c_1[_index3]) /* ?{} */);
         }
 
@@ -483,14 +181,14 @@
 static inline void ___destructor__F_R9sofstream_autogen___1(struct ofstream *___dst__R9sofstream_1){
     {
-        signed int _index22 = ((signed int )(((signed int )__sepSize__C13e__anonymous2_1)-1));
-        for (;(_index22>=0);((void)(--_index22))) {
-            ((void)((*((char *)(&(*___dst__R9sofstream_1).__tupleSeparator__A0c_1[_index22])))) /* ^?{} */);
-        }
-
-    }
-    {
-        signed int _index23 = ((signed int )(((signed int )__sepSize__C13e__anonymous2_1)-1));
-        for (;(_index23>=0);((void)(--_index23))) {
-            ((void)((*((char *)(&(*___dst__R9sofstream_1).__separator__A0c_1[_index23])))) /* ^?{} */);
+        signed int _index4 = ((signed int )(((signed int )__sepSize__C13e__anonymous0_1)-1));
+        for (;(_index4>=0);((void)(--_index4))) {
+            ((void)((*((char *)(&(*___dst__R9sofstream_1).__tupleSeparator__A0c_1[_index4])))) /* ^?{} */);
+        }
+
+    }
+    {
+        signed int _index5 = ((signed int )(((signed int )__sepSize__C13e__anonymous0_1)-1));
+        for (;(_index5>=0);((void)(--_index5))) {
+            ((void)((*((char *)(&(*___dst__R9sofstream_1).__separator__A0c_1[_index5])))) /* ^?{} */);
         }
 
@@ -510,15 +208,15 @@
     ((void)((*___dst__R9sofstream_1).__sepCur__PCc_1=___src__9sofstream_1.__sepCur__PCc_1));
     {
-        signed int _index24 = ((signed int )0);
-        for (;(_index24<((signed int )__sepSize__C13e__anonymous2_1));((void)(++_index24))) {
-            ((void)((*___dst__R9sofstream_1).__separator__A0c_1[_index24]=___src__9sofstream_1.__separator__A0c_1[_index24]));
-        }
-
-    }
-
-    {
-        signed int _index25 = ((signed int )0);
-        for (;(_index25<((signed int )__sepSize__C13e__anonymous2_1));((void)(++_index25))) {
-            ((void)((*___dst__R9sofstream_1).__tupleSeparator__A0c_1[_index25]=___src__9sofstream_1.__tupleSeparator__A0c_1[_index25]));
+        signed int _index6 = ((signed int )0);
+        for (;(_index6<((signed int )__sepSize__C13e__anonymous0_1));((void)(++_index6))) {
+            ((void)((*___dst__R9sofstream_1).__separator__A0c_1[_index6]=___src__9sofstream_1.__separator__A0c_1[_index6]));
+        }
+
+    }
+
+    {
+        signed int _index7 = ((signed int )0);
+        for (;(_index7<((signed int )__sepSize__C13e__anonymous0_1));((void)(++_index7))) {
+            ((void)((*___dst__R9sofstream_1).__tupleSeparator__A0c_1[_index7]=___src__9sofstream_1.__tupleSeparator__A0c_1[_index7]));
         }
 
@@ -535,14 +233,14 @@
     ((void)((*___dst__R9sofstream_1).__sepCur__PCc_1) /* ?{} */);
     {
-        signed int _index26 = ((signed int )0);
-        for (;(_index26<((signed int )__sepSize__C13e__anonymous2_1));((void)(++_index26))) {
-            ((void)((*((char *)(&(*___dst__R9sofstream_1).__separator__A0c_1[_index26])))) /* ?{} */);
-        }
-
-    }
-    {
-        signed int _index27 = ((signed int )0);
-        for (;(_index27<((signed int )__sepSize__C13e__anonymous2_1));((void)(++_index27))) {
-            ((void)((*((char *)(&(*___dst__R9sofstream_1).__tupleSeparator__A0c_1[_index27])))) /* ?{} */);
+        signed int _index8 = ((signed int )0);
+        for (;(_index8<((signed int )__sepSize__C13e__anonymous0_1));((void)(++_index8))) {
+            ((void)((*((char *)(&(*___dst__R9sofstream_1).__separator__A0c_1[_index8])))) /* ?{} */);
+        }
+
+    }
+    {
+        signed int _index9 = ((signed int )0);
+        for (;(_index9<((signed int )__sepSize__C13e__anonymous0_1));((void)(++_index9))) {
+            ((void)((*((char *)(&(*___dst__R9sofstream_1).__tupleSeparator__A0c_1[_index9])))) /* ?{} */);
         }
 
@@ -556,14 +254,14 @@
     ((void)((*___dst__R9sofstream_1).__sepCur__PCc_1) /* ?{} */);
     {
-        signed int _index28 = ((signed int )0);
-        for (;(_index28<((signed int )__sepSize__C13e__anonymous2_1));((void)(++_index28))) {
-            ((void)((*((char *)(&(*___dst__R9sofstream_1).__separator__A0c_1[_index28])))) /* ?{} */);
-        }
-
-    }
-    {
-        signed int _index29 = ((signed int )0);
-        for (;(_index29<((signed int )__sepSize__C13e__anonymous2_1));((void)(++_index29))) {
-            ((void)((*((char *)(&(*___dst__R9sofstream_1).__tupleSeparator__A0c_1[_index29])))) /* ?{} */);
+        signed int _index10 = ((signed int )0);
+        for (;(_index10<((signed int )__sepSize__C13e__anonymous0_1));((void)(++_index10))) {
+            ((void)((*((char *)(&(*___dst__R9sofstream_1).__separator__A0c_1[_index10])))) /* ?{} */);
+        }
+
+    }
+    {
+        signed int _index11 = ((signed int )0);
+        for (;(_index11<((signed int )__sepSize__C13e__anonymous0_1));((void)(++_index11))) {
+            ((void)((*((char *)(&(*___dst__R9sofstream_1).__tupleSeparator__A0c_1[_index11])))) /* ?{} */);
         }
 
@@ -577,14 +275,14 @@
     ((void)((*___dst__R9sofstream_1).__sepCur__PCc_1) /* ?{} */);
     {
-        signed int _index30 = ((signed int )0);
-        for (;(_index30<((signed int )__sepSize__C13e__anonymous2_1));((void)(++_index30))) {
-            ((void)((*((char *)(&(*___dst__R9sofstream_1).__separator__A0c_1[_index30])))) /* ?{} */);
-        }
-
-    }
-    {
-        signed int _index31 = ((signed int )0);
-        for (;(_index31<((signed int )__sepSize__C13e__anonymous2_1));((void)(++_index31))) {
-            ((void)((*((char *)(&(*___dst__R9sofstream_1).__tupleSeparator__A0c_1[_index31])))) /* ?{} */);
+        signed int _index12 = ((signed int )0);
+        for (;(_index12<((signed int )__sepSize__C13e__anonymous0_1));((void)(++_index12))) {
+            ((void)((*((char *)(&(*___dst__R9sofstream_1).__separator__A0c_1[_index12])))) /* ?{} */);
+        }
+
+    }
+    {
+        signed int _index13 = ((signed int )0);
+        for (;(_index13<((signed int )__sepSize__C13e__anonymous0_1));((void)(++_index13))) {
+            ((void)((*((char *)(&(*___dst__R9sofstream_1).__tupleSeparator__A0c_1[_index13])))) /* ?{} */);
         }
 
@@ -598,14 +296,14 @@
     ((void)((*___dst__R9sofstream_1).__sepCur__PCc_1) /* ?{} */);
     {
-        signed int _index32 = ((signed int )0);
-        for (;(_index32<((signed int )__sepSize__C13e__anonymous2_1));((void)(++_index32))) {
-            ((void)((*((char *)(&(*___dst__R9sofstream_1).__separator__A0c_1[_index32])))) /* ?{} */);
-        }
-
-    }
-    {
-        signed int _index33 = ((signed int )0);
-        for (;(_index33<((signed int )__sepSize__C13e__anonymous2_1));((void)(++_index33))) {
-            ((void)((*((char *)(&(*___dst__R9sofstream_1).__tupleSeparator__A0c_1[_index33])))) /* ?{} */);
+        signed int _index14 = ((signed int )0);
+        for (;(_index14<((signed int )__sepSize__C13e__anonymous0_1));((void)(++_index14))) {
+            ((void)((*((char *)(&(*___dst__R9sofstream_1).__separator__A0c_1[_index14])))) /* ?{} */);
+        }
+
+    }
+    {
+        signed int _index15 = ((signed int )0);
+        for (;(_index15<((signed int )__sepSize__C13e__anonymous0_1));((void)(++_index15))) {
+            ((void)((*((char *)(&(*___dst__R9sofstream_1).__tupleSeparator__A0c_1[_index15])))) /* ?{} */);
         }
 
@@ -619,19 +317,19 @@
     ((void)((*___dst__R9sofstream_1).__sepCur__PCc_1=__sepCur__PCc_1) /* ?{} */);
     {
-        signed int _index34 = ((signed int )0);
-        for (;(_index34<((signed int )__sepSize__C13e__anonymous2_1));((void)(++_index34))) {
-            ((void)((*((char *)(&(*___dst__R9sofstream_1).__separator__A0c_1[_index34])))) /* ?{} */);
-        }
-
-    }
-    {
-        signed int _index35 = ((signed int )0);
-        for (;(_index35<((signed int )__sepSize__C13e__anonymous2_1));((void)(++_index35))) {
-            ((void)((*((char *)(&(*___dst__R9sofstream_1).__tupleSeparator__A0c_1[_index35])))) /* ?{} */);
-        }
-
-    }
-}
-static inline void ___constructor__F_R9sofstreamPvbbbPCcA0c_autogen___1(struct ofstream *___dst__R9sofstream_1, void *__file__Pv_1, _Bool __sepDefault__b_1, _Bool __sepOnOff__b_1, _Bool __sawNL__b_1, const char *__sepCur__PCc_1, char __separator__A0c_1[((unsigned int )__sepSize__C13e__anonymous2_1)]){
+        signed int _index16 = ((signed int )0);
+        for (;(_index16<((signed int )__sepSize__C13e__anonymous0_1));((void)(++_index16))) {
+            ((void)((*((char *)(&(*___dst__R9sofstream_1).__separator__A0c_1[_index16])))) /* ?{} */);
+        }
+
+    }
+    {
+        signed int _index17 = ((signed int )0);
+        for (;(_index17<((signed int )__sepSize__C13e__anonymous0_1));((void)(++_index17))) {
+            ((void)((*((char *)(&(*___dst__R9sofstream_1).__tupleSeparator__A0c_1[_index17])))) /* ?{} */);
+        }
+
+    }
+}
+static inline void ___constructor__F_R9sofstreamPvbbbPCcA0c_autogen___1(struct ofstream *___dst__R9sofstream_1, void *__file__Pv_1, _Bool __sepDefault__b_1, _Bool __sepOnOff__b_1, _Bool __sawNL__b_1, const char *__sepCur__PCc_1, char __separator__A0c_1[((unsigned int )__sepSize__C13e__anonymous0_1)]){
     ((void)((*___dst__R9sofstream_1).__file__Pv_1=__file__Pv_1) /* ?{} */);
     ((void)((*___dst__R9sofstream_1).__sepDefault__b_1=__sepDefault__b_1) /* ?{} */);
@@ -640,19 +338,19 @@
     ((void)((*___dst__R9sofstream_1).__sepCur__PCc_1=__sepCur__PCc_1) /* ?{} */);
     {
-        signed int _index36 = ((signed int )0);
-        for (;(_index36<((signed int )__sepSize__C13e__anonymous2_1));((void)(++_index36))) {
-            ((void)((*((char *)(&(*___dst__R9sofstream_1).__separator__A0c_1[_index36])))=__separator__A0c_1[_index36]) /* ?{} */);
-        }
-
-    }
-    {
-        signed int _index37 = ((signed int )0);
-        for (;(_index37<((signed int )__sepSize__C13e__anonymous2_1));((void)(++_index37))) {
-            ((void)((*((char *)(&(*___dst__R9sofstream_1).__tupleSeparator__A0c_1[_index37])))) /* ?{} */);
-        }
-
-    }
-}
-static inline void ___constructor__F_R9sofstreamPvbbbPCcA0cA0c_autogen___1(struct ofstream *___dst__R9sofstream_1, void *__file__Pv_1, _Bool __sepDefault__b_1, _Bool __sepOnOff__b_1, _Bool __sawNL__b_1, const char *__sepCur__PCc_1, char __separator__A0c_1[((unsigned int )__sepSize__C13e__anonymous2_1)], char __tupleSeparator__A0c_1[((unsigned int )__sepSize__C13e__anonymous2_1)]){
+        signed int _index18 = ((signed int )0);
+        for (;(_index18<((signed int )__sepSize__C13e__anonymous0_1));((void)(++_index18))) {
+            ((void)((*((char *)(&(*___dst__R9sofstream_1).__separator__A0c_1[_index18])))=__separator__A0c_1[_index18]) /* ?{} */);
+        }
+
+    }
+    {
+        signed int _index19 = ((signed int )0);
+        for (;(_index19<((signed int )__sepSize__C13e__anonymous0_1));((void)(++_index19))) {
+            ((void)((*((char *)(&(*___dst__R9sofstream_1).__tupleSeparator__A0c_1[_index19])))) /* ?{} */);
+        }
+
+    }
+}
+static inline void ___constructor__F_R9sofstreamPvbbbPCcA0cA0c_autogen___1(struct ofstream *___dst__R9sofstream_1, void *__file__Pv_1, _Bool __sepDefault__b_1, _Bool __sepOnOff__b_1, _Bool __sawNL__b_1, const char *__sepCur__PCc_1, char __separator__A0c_1[((unsigned int )__sepSize__C13e__anonymous0_1)], char __tupleSeparator__A0c_1[((unsigned int )__sepSize__C13e__anonymous0_1)]){
     ((void)((*___dst__R9sofstream_1).__file__Pv_1=__file__Pv_1) /* ?{} */);
     ((void)((*___dst__R9sofstream_1).__sepDefault__b_1=__sepDefault__b_1) /* ?{} */);
@@ -661,14 +359,14 @@
     ((void)((*___dst__R9sofstream_1).__sepCur__PCc_1=__sepCur__PCc_1) /* ?{} */);
     {
-        signed int _index38 = ((signed int )0);
-        for (;(_index38<((signed int )__sepSize__C13e__anonymous2_1));((void)(++_index38))) {
-            ((void)((*((char *)(&(*___dst__R9sofstream_1).__separator__A0c_1[_index38])))=__separator__A0c_1[_index38]) /* ?{} */);
-        }
-
-    }
-    {
-        signed int _index39 = ((signed int )0);
-        for (;(_index39<((signed int )__sepSize__C13e__anonymous2_1));((void)(++_index39))) {
-            ((void)((*((char *)(&(*___dst__R9sofstream_1).__tupleSeparator__A0c_1[_index39])))=__tupleSeparator__A0c_1[_index39]) /* ?{} */);
+        signed int _index20 = ((signed int )0);
+        for (;(_index20<((signed int )__sepSize__C13e__anonymous0_1));((void)(++_index20))) {
+            ((void)((*((char *)(&(*___dst__R9sofstream_1).__separator__A0c_1[_index20])))=__separator__A0c_1[_index20]) /* ?{} */);
+        }
+
+    }
+    {
+        signed int _index21 = ((signed int )0);
+        for (;(_index21<((signed int )__sepSize__C13e__anonymous0_1));((void)(++_index21))) {
+            ((void)((*((char *)(&(*___dst__R9sofstream_1).__tupleSeparator__A0c_1[_index21])))=__tupleSeparator__A0c_1[_index21]) /* ?{} */);
         }
 
Index: src/tests/.expect/64/literals.txt
===================================================================
--- src/tests/.expect/64/literals.txt	(revision ed235b60f3ae5366fcfed2f86f609b40ebe9c0ce)
+++ src/tests/.expect/64/literals.txt	(revision 8024bc8cf76c8f650df1a6445c978552ea39985e)
@@ -5,691 +5,4 @@
 __attribute__ ((__nothrow__,__leaf__,__noreturn__)) extern void exit(signed int __status);
 extern signed int printf(const char *__restrict __format, ...);
-union __anonymous0 {
-    unsigned int __wch;
-    char __wchb[((unsigned long int )4)];
-};
-static inline void ___constructor__F_R13u__anonymous0_autogen___1(__attribute__ ((unused)) union __anonymous0 *___dst__R13u__anonymous0_1){
-}
-static inline void ___constructor__F_R13u__anonymous013u__anonymous0_autogen___1(union __anonymous0 *___dst__R13u__anonymous0_1, union __anonymous0 ___src__13u__anonymous0_1){
-    ((void)__builtin_memcpy(((void *)___dst__R13u__anonymous0_1), ((const void *)(&___src__13u__anonymous0_1)), sizeof(union __anonymous0 )));
-}
-static inline void ___destructor__F_R13u__anonymous0_autogen___1(__attribute__ ((unused)) union __anonymous0 *___dst__R13u__anonymous0_1){
-}
-static inline union __anonymous0 ___operator_assign__F13u__anonymous0_R13u__anonymous013u__anonymous0_autogen___1(union __anonymous0 *___dst__R13u__anonymous0_1, union __anonymous0 ___src__13u__anonymous0_1){
-    union __anonymous0 ___ret__13u__anonymous0_1;
-    ((void)__builtin_memcpy(((void *)___dst__R13u__anonymous0_1), ((const void *)(&___src__13u__anonymous0_1)), sizeof(union __anonymous0 )));
-    ((void)___constructor__F_R13u__anonymous013u__anonymous0_autogen___1((&___ret__13u__anonymous0_1), ___src__13u__anonymous0_1));
-    return ((union __anonymous0 )___ret__13u__anonymous0_1);
-}
-static inline void ___constructor__F_R13u__anonymous0Ui_autogen___1(__attribute__ ((unused)) union __anonymous0 *___dst__R13u__anonymous0_1, unsigned int __src__Ui_1){
-    ((void)__builtin_memcpy(((void *)___dst__R13u__anonymous0_1), ((const void *)(&__src__Ui_1)), sizeof(unsigned int )));
-}
-struct __anonymous1 {
-    signed int __count;
-    union __anonymous0 __value;
-};
-struct __anonymous1;
-struct __anonymous1;
-__attribute__ ((__nothrow__,__leaf__)) extern unsigned long int mbrtoc16(unsigned short int *__restrict __pc16, const char *__restrict __s, unsigned long int __n, struct __anonymous1 *__restrict __p);
-__attribute__ ((__nothrow__,__leaf__)) extern unsigned long int c16rtomb(char *__restrict __s, unsigned short int __c16, struct __anonymous1 *__restrict __ps);
-__attribute__ ((__nothrow__,__leaf__)) extern unsigned long int mbrtoc32(unsigned int *__restrict __pc32, const char *__restrict __s, unsigned long int __n, struct __anonymous1 *__restrict __p);
-__attribute__ ((__nothrow__,__leaf__)) extern unsigned long int c32rtomb(char *__restrict __s, unsigned int __c32, struct __anonymous1 *__restrict __ps);
-struct _IO_FILE;
-struct _IO_FILE;
-struct _IO_FILE;
-struct tm;
-__attribute__ ((__nothrow__,__leaf__,__nonnull__(1, 2))) extern signed int *wcscpy(signed int *__restrict __dest, const signed int *__restrict __src);
-__attribute__ ((__nothrow__,__leaf__,__nonnull__(1, 2))) extern signed int *wcsncpy(signed int *__restrict __dest, const signed int *__restrict __src, unsigned long int __n);
-__attribute__ ((__nothrow__,__leaf__,__nonnull__(1, 2))) extern signed int *wcscat(signed int *__restrict __dest, const signed int *__restrict __src);
-__attribute__ ((__nothrow__,__leaf__,__nonnull__(1, 2))) extern signed int *wcsncat(signed int *__restrict __dest, const signed int *__restrict __src, unsigned long int __n);
-__attribute__ ((__nothrow__,__leaf__,__pure__,__nonnull__(1, 2))) extern signed int wcscmp(const signed int *__s1, const signed int *__s2);
-__attribute__ ((__nothrow__,__leaf__,__pure__,__nonnull__(1, 2))) extern signed int wcsncmp(const signed int *__s1, const signed int *__s2, unsigned long int __n);
-__attribute__ ((__nothrow__,__leaf__)) extern signed int wcscasecmp(const signed int *__s1, const signed int *__s2);
-__attribute__ ((__nothrow__,__leaf__)) extern signed int wcsncasecmp(const signed int *__s1, const signed int *__s2, unsigned long int __n);
-struct __locale_struct {
-    struct __locale_data *__locales[((unsigned long int )13)];
-    const unsigned short int *__ctype_b;
-    const signed int *__ctype_tolower;
-    const signed int *__ctype_toupper;
-    const char *__names[((unsigned long int )13)];
-};
-static inline void ___constructor__F_R16s__locale_struct_autogen___1(struct __locale_struct *___dst__R16s__locale_struct_1);
-static inline void ___constructor__F_R16s__locale_struct16s__locale_struct_autogen___1(struct __locale_struct *___dst__R16s__locale_struct_1, struct __locale_struct ___src__16s__locale_struct_1);
-static inline void ___destructor__F_R16s__locale_struct_autogen___1(struct __locale_struct *___dst__R16s__locale_struct_1);
-static inline struct __locale_struct ___operator_assign__F16s__locale_struct_R16s__locale_struct16s__locale_struct_autogen___1(struct __locale_struct *___dst__R16s__locale_struct_1, struct __locale_struct ___src__16s__locale_struct_1);
-static inline void ___constructor__F_R16s__locale_struct_autogen___1(struct __locale_struct *___dst__R16s__locale_struct_1){
-    {
-        signed int _index0 = ((signed int )0);
-        for (;(_index0<13);((void)(++_index0))) {
-            ((void)((*((struct __locale_data **)(&(*___dst__R16s__locale_struct_1).__locales[((signed long int )_index0)])))) /* ?{} */);
-        }
-
-    }
-    ((void)((*___dst__R16s__locale_struct_1).__ctype_b) /* ?{} */);
-    ((void)((*___dst__R16s__locale_struct_1).__ctype_tolower) /* ?{} */);
-    ((void)((*___dst__R16s__locale_struct_1).__ctype_toupper) /* ?{} */);
-    {
-        signed int _index1 = ((signed int )0);
-        for (;(_index1<13);((void)(++_index1))) {
-            ((void)((*((const char **)(&(*___dst__R16s__locale_struct_1).__names[((signed long int )_index1)])))) /* ?{} */);
-        }
-
-    }
-}
-static inline void ___constructor__F_R16s__locale_struct16s__locale_struct_autogen___1(struct __locale_struct *___dst__R16s__locale_struct_1, struct __locale_struct ___src__16s__locale_struct_1){
-    {
-        signed int _index2 = ((signed int )0);
-        for (;(_index2<13);((void)(++_index2))) {
-            ((void)((*((struct __locale_data **)(&(*___dst__R16s__locale_struct_1).__locales[((signed long int )_index2)])))=___src__16s__locale_struct_1.__locales[((signed long int )_index2)]) /* ?{} */);
-        }
-
-    }
-    ((void)((*___dst__R16s__locale_struct_1).__ctype_b=___src__16s__locale_struct_1.__ctype_b) /* ?{} */);
-    ((void)((*___dst__R16s__locale_struct_1).__ctype_tolower=___src__16s__locale_struct_1.__ctype_tolower) /* ?{} */);
-    ((void)((*___dst__R16s__locale_struct_1).__ctype_toupper=___src__16s__locale_struct_1.__ctype_toupper) /* ?{} */);
-    {
-        signed int _index3 = ((signed int )0);
-        for (;(_index3<13);((void)(++_index3))) {
-            ((void)((*((const char **)(&(*___dst__R16s__locale_struct_1).__names[((signed long int )_index3)])))=___src__16s__locale_struct_1.__names[((signed long int )_index3)]) /* ?{} */);
-        }
-
-    }
-}
-static inline void ___destructor__F_R16s__locale_struct_autogen___1(struct __locale_struct *___dst__R16s__locale_struct_1){
-    {
-        signed int _index4 = ((signed int )(13-1));
-        for (;(_index4>=0);((void)(--_index4))) {
-            ((void)((*((const char **)(&(*___dst__R16s__locale_struct_1).__names[((signed long int )_index4)])))) /* ^?{} */);
-        }
-
-    }
-    ((void)((*___dst__R16s__locale_struct_1).__ctype_toupper) /* ^?{} */);
-    ((void)((*___dst__R16s__locale_struct_1).__ctype_tolower) /* ^?{} */);
-    ((void)((*___dst__R16s__locale_struct_1).__ctype_b) /* ^?{} */);
-    {
-        signed int _index5 = ((signed int )(13-1));
-        for (;(_index5>=0);((void)(--_index5))) {
-            ((void)((*((struct __locale_data **)(&(*___dst__R16s__locale_struct_1).__locales[((signed long int )_index5)])))) /* ^?{} */);
-        }
-
-    }
-}
-static inline struct __locale_struct ___operator_assign__F16s__locale_struct_R16s__locale_struct16s__locale_struct_autogen___1(struct __locale_struct *___dst__R16s__locale_struct_1, struct __locale_struct ___src__16s__locale_struct_1){
-    struct __locale_struct ___ret__16s__locale_struct_1;
-    {
-        signed int _index6 = ((signed int )0);
-        for (;(_index6<13);((void)(++_index6))) {
-            ((void)((*___dst__R16s__locale_struct_1).__locales[((signed long int )_index6)]=___src__16s__locale_struct_1.__locales[((signed long int )_index6)]));
-        }
-
-    }
-
-    ((void)((*___dst__R16s__locale_struct_1).__ctype_b=___src__16s__locale_struct_1.__ctype_b));
-    ((void)((*___dst__R16s__locale_struct_1).__ctype_tolower=___src__16s__locale_struct_1.__ctype_tolower));
-    ((void)((*___dst__R16s__locale_struct_1).__ctype_toupper=___src__16s__locale_struct_1.__ctype_toupper));
-    {
-        signed int _index7 = ((signed int )0);
-        for (;(_index7<13);((void)(++_index7))) {
-            ((void)((*___dst__R16s__locale_struct_1).__names[((signed long int )_index7)]=___src__16s__locale_struct_1.__names[((signed long int )_index7)]));
-        }
-
-    }
-
-    ((void)___constructor__F_R16s__locale_struct16s__locale_struct_autogen___1((&___ret__16s__locale_struct_1), ___src__16s__locale_struct_1));
-    return ((struct __locale_struct )___ret__16s__locale_struct_1);
-}
-static inline void ___constructor__F_R16s__locale_structA0P14s__locale_data_autogen___1(struct __locale_struct *___dst__R16s__locale_struct_1, struct __locale_data *____locales__A0P14s__locale_data_1[((unsigned long int )13)]){
-    {
-        signed int _index8 = ((signed int )0);
-        for (;(_index8<13);((void)(++_index8))) {
-            ((void)((*((struct __locale_data **)(&(*___dst__R16s__locale_struct_1).__locales[((signed long int )_index8)])))=____locales__A0P14s__locale_data_1[((signed long int )_index8)]) /* ?{} */);
-        }
-
-    }
-    ((void)((*___dst__R16s__locale_struct_1).__ctype_b) /* ?{} */);
-    ((void)((*___dst__R16s__locale_struct_1).__ctype_tolower) /* ?{} */);
-    ((void)((*___dst__R16s__locale_struct_1).__ctype_toupper) /* ?{} */);
-    {
-        signed int _index9 = ((signed int )0);
-        for (;(_index9<13);((void)(++_index9))) {
-            ((void)((*((const char **)(&(*___dst__R16s__locale_struct_1).__names[((signed long int )_index9)])))) /* ?{} */);
-        }
-
-    }
-}
-static inline void ___constructor__F_R16s__locale_structA0P14s__locale_dataPCUs_autogen___1(struct __locale_struct *___dst__R16s__locale_struct_1, struct __locale_data *____locales__A0P14s__locale_data_1[((unsigned long int )13)], const unsigned short int *____ctype_b__PCUs_1){
-    {
-        signed int _index10 = ((signed int )0);
-        for (;(_index10<13);((void)(++_index10))) {
-            ((void)((*((struct __locale_data **)(&(*___dst__R16s__locale_struct_1).__locales[((signed long int )_index10)])))=____locales__A0P14s__locale_data_1[((signed long int )_index10)]) /* ?{} */);
-        }
-
-    }
-    ((void)((*___dst__R16s__locale_struct_1).__ctype_b=____ctype_b__PCUs_1) /* ?{} */);
-    ((void)((*___dst__R16s__locale_struct_1).__ctype_tolower) /* ?{} */);
-    ((void)((*___dst__R16s__locale_struct_1).__ctype_toupper) /* ?{} */);
-    {
-        signed int _index11 = ((signed int )0);
-        for (;(_index11<13);((void)(++_index11))) {
-            ((void)((*((const char **)(&(*___dst__R16s__locale_struct_1).__names[((signed long int )_index11)])))) /* ?{} */);
-        }
-
-    }
-}
-static inline void ___constructor__F_R16s__locale_structA0P14s__locale_dataPCUsPCi_autogen___1(struct __locale_struct *___dst__R16s__locale_struct_1, struct __locale_data *____locales__A0P14s__locale_data_1[((unsigned long int )13)], const unsigned short int *____ctype_b__PCUs_1, const signed int *____ctype_tolower__PCi_1){
-    {
-        signed int _index12 = ((signed int )0);
-        for (;(_index12<13);((void)(++_index12))) {
-            ((void)((*((struct __locale_data **)(&(*___dst__R16s__locale_struct_1).__locales[((signed long int )_index12)])))=____locales__A0P14s__locale_data_1[((signed long int )_index12)]) /* ?{} */);
-        }
-
-    }
-    ((void)((*___dst__R16s__locale_struct_1).__ctype_b=____ctype_b__PCUs_1) /* ?{} */);
-    ((void)((*___dst__R16s__locale_struct_1).__ctype_tolower=____ctype_tolower__PCi_1) /* ?{} */);
-    ((void)((*___dst__R16s__locale_struct_1).__ctype_toupper) /* ?{} */);
-    {
-        signed int _index13 = ((signed int )0);
-        for (;(_index13<13);((void)(++_index13))) {
-            ((void)((*((const char **)(&(*___dst__R16s__locale_struct_1).__names[((signed long int )_index13)])))) /* ?{} */);
-        }
-
-    }
-}
-static inline void ___constructor__F_R16s__locale_structA0P14s__locale_dataPCUsPCiPCi_autogen___1(struct __locale_struct *___dst__R16s__locale_struct_1, struct __locale_data *____locales__A0P14s__locale_data_1[((unsigned long int )13)], const unsigned short int *____ctype_b__PCUs_1, const signed int *____ctype_tolower__PCi_1, const signed int *____ctype_toupper__PCi_1){
-    {
-        signed int _index14 = ((signed int )0);
-        for (;(_index14<13);((void)(++_index14))) {
-            ((void)((*((struct __locale_data **)(&(*___dst__R16s__locale_struct_1).__locales[((signed long int )_index14)])))=____locales__A0P14s__locale_data_1[((signed long int )_index14)]) /* ?{} */);
-        }
-
-    }
-    ((void)((*___dst__R16s__locale_struct_1).__ctype_b=____ctype_b__PCUs_1) /* ?{} */);
-    ((void)((*___dst__R16s__locale_struct_1).__ctype_tolower=____ctype_tolower__PCi_1) /* ?{} */);
-    ((void)((*___dst__R16s__locale_struct_1).__ctype_toupper=____ctype_toupper__PCi_1) /* ?{} */);
-    {
-        signed int _index15 = ((signed int )0);
-        for (;(_index15<13);((void)(++_index15))) {
-            ((void)((*((const char **)(&(*___dst__R16s__locale_struct_1).__names[((signed long int )_index15)])))) /* ?{} */);
-        }
-
-    }
-}
-static inline void ___constructor__F_R16s__locale_structA0P14s__locale_dataPCUsPCiPCiA0PCc_autogen___1(struct __locale_struct *___dst__R16s__locale_struct_1, struct __locale_data *____locales__A0P14s__locale_data_1[((unsigned long int )13)], const unsigned short int *____ctype_b__PCUs_1, const signed int *____ctype_tolower__PCi_1, const signed int *____ctype_toupper__PCi_1, const char *____names__A0PCc_1[((unsigned long int )13)]){
-    {
-        signed int _index16 = ((signed int )0);
-        for (;(_index16<13);((void)(++_index16))) {
-            ((void)((*((struct __locale_data **)(&(*___dst__R16s__locale_struct_1).__locales[((signed long int )_index16)])))=____locales__A0P14s__locale_data_1[((signed long int )_index16)]) /* ?{} */);
-        }
-
-    }
-    ((void)((*___dst__R16s__locale_struct_1).__ctype_b=____ctype_b__PCUs_1) /* ?{} */);
-    ((void)((*___dst__R16s__locale_struct_1).__ctype_tolower=____ctype_tolower__PCi_1) /* ?{} */);
-    ((void)((*___dst__R16s__locale_struct_1).__ctype_toupper=____ctype_toupper__PCi_1) /* ?{} */);
-    {
-        signed int _index17 = ((signed int )0);
-        for (;(_index17<13);((void)(++_index17))) {
-            ((void)((*((const char **)(&(*___dst__R16s__locale_struct_1).__names[((signed long int )_index17)])))=____names__A0PCc_1[((signed long int )_index17)]) /* ?{} */);
-        }
-
-    }
-}
-struct __locale_struct;
-struct __locale_struct;
-__attribute__ ((__nothrow__,__leaf__)) extern signed int wcscasecmp_l(const signed int *__s1, const signed int *__s2, struct __locale_struct *__loc);
-__attribute__ ((__nothrow__,__leaf__)) extern signed int wcsncasecmp_l(const signed int *__s1, const signed int *__s2, unsigned long int __n, struct __locale_struct *__loc);
-__attribute__ ((__nothrow__,__leaf__)) extern signed int wcscoll(const signed int *__s1, const signed int *__s2);
-__attribute__ ((__nothrow__,__leaf__)) extern unsigned long int wcsxfrm(signed int *__restrict __s1, const signed int *__restrict __s2, unsigned long int __n);
-__attribute__ ((__nothrow__,__leaf__)) extern signed int wcscoll_l(const signed int *__s1, const signed int *__s2, struct __locale_struct *__loc);
-__attribute__ ((__nothrow__,__leaf__)) extern unsigned long int wcsxfrm_l(signed int *__s1, const signed int *__s2, unsigned long int __n, struct __locale_struct *__loc);
-__attribute__ ((__nothrow__,__leaf__,__malloc__)) extern signed int *wcsdup(const signed int *__s);
-__attribute__ ((__nothrow__,__leaf__,__pure__)) extern signed int *wcschr(const signed int *__wcs, signed int __wc);
-__attribute__ ((__nothrow__,__leaf__,__pure__)) extern signed int *wcsrchr(const signed int *__wcs, signed int __wc);
-__attribute__ ((__nothrow__,__leaf__,__pure__)) extern unsigned long int wcscspn(const signed int *__wcs, const signed int *__reject);
-__attribute__ ((__nothrow__,__leaf__,__pure__)) extern unsigned long int wcsspn(const signed int *__wcs, const signed int *__accept);
-__attribute__ ((__nothrow__,__leaf__,__pure__)) extern signed int *wcspbrk(const signed int *__wcs, const signed int *__accept);
-__attribute__ ((__nothrow__,__leaf__,__pure__)) extern signed int *wcsstr(const signed int *__haystack, const signed int *__needle);
-__attribute__ ((__nothrow__,__leaf__)) extern signed int *wcstok(signed int *__restrict __s, const signed int *__restrict __delim, signed int **__restrict __ptr);
-__attribute__ ((__nothrow__,__leaf__,__pure__)) extern unsigned long int wcslen(const signed int *__s);
-__attribute__ ((__nothrow__,__leaf__,__pure__)) extern unsigned long int wcsnlen(const signed int *__s, unsigned long int __maxlen);
-__attribute__ ((__nothrow__,__leaf__,__pure__)) extern signed int *wmemchr(const signed int *__s, signed int __c, unsigned long int __n);
-__attribute__ ((__nothrow__,__leaf__,__pure__)) extern signed int wmemcmp(const signed int *__s1, const signed int *__s2, unsigned long int __n);
-__attribute__ ((__nothrow__,__leaf__)) extern signed int *wmemcpy(signed int *__restrict __s1, const signed int *__restrict __s2, unsigned long int __n);
-__attribute__ ((__nothrow__,__leaf__)) extern signed int *wmemmove(signed int *__s1, const signed int *__s2, unsigned long int __n);
-__attribute__ ((__nothrow__,__leaf__)) extern signed int *wmemset(signed int *__s, signed int __c, unsigned long int __n);
-__attribute__ ((__nothrow__,__leaf__)) extern unsigned int btowc(signed int __c);
-__attribute__ ((__nothrow__,__leaf__)) extern signed int wctob(unsigned int __c);
-__attribute__ ((__nothrow__,__leaf__,__pure__)) extern signed int mbsinit(const struct __anonymous1 *__ps);
-__attribute__ ((__nothrow__,__leaf__)) extern unsigned long int mbrtowc(signed int *__restrict __pwc, const char *__restrict __s, unsigned long int __n, struct __anonymous1 *__restrict __p);
-__attribute__ ((__nothrow__,__leaf__)) extern unsigned long int wcrtomb(char *__restrict __s, signed int __wc, struct __anonymous1 *__restrict __ps);
-__attribute__ ((__nothrow__,__leaf__)) extern unsigned long int __mbrlen(const char *__restrict __s, unsigned long int __n, struct __anonymous1 *__restrict __ps);
-__attribute__ ((__nothrow__,__leaf__)) extern unsigned long int mbrlen(const char *__restrict __s, unsigned long int __n, struct __anonymous1 *__restrict __ps);
-extern unsigned int __btowc_alias(signed int __c) asm ( "btowc" );
-__attribute__ ((__nothrow__,__leaf__)) extern inline unsigned int btowc(signed int __c){
-    __attribute__ ((unused)) unsigned int ___retval_btowc__Ui_1;
-    unsigned int _tmp_cp_ret0;
-    ((void)(___retval_btowc__Ui_1=(((signed int )((((signed int )((((signed int )(__builtin_constant_p(__c)!=((signed int )0))) && ((signed int )((__c>=((signed int )'\0'))!=((signed int )0))))!=((signed int )0))) && ((signed int )((__c<=((signed int )'\x7f'))!=((signed int )0))))!=((signed int )0))) ? ((unsigned int )__c) : (((void)(_tmp_cp_ret0=__btowc_alias(__c))) , _tmp_cp_ret0))) /* ?{} */);
-    ((void)(_tmp_cp_ret0) /* ^?{} */);
-    return ((unsigned int )___retval_btowc__Ui_1);
-}
-extern signed int __wctob_alias(unsigned int __c) asm ( "wctob" );
-__attribute__ ((__nothrow__,__leaf__)) extern inline signed int wctob(unsigned int __wc){
-    __attribute__ ((unused)) signed int ___retval_wctob__i_1;
-    signed int _tmp_cp_ret1;
-    ((void)(___retval_wctob__i_1=(((signed int )((((signed int )((((signed int )(__builtin_constant_p(__wc)!=((signed int )0))) && ((signed int )((__wc>=((unsigned int )L'\0'))!=((signed int )0))))!=((signed int )0))) && ((signed int )((__wc<=((unsigned int )L'\x7f'))!=((signed int )0))))!=((signed int )0))) ? ((signed int )__wc) : (((void)(_tmp_cp_ret1=__wctob_alias(__wc))) , _tmp_cp_ret1))) /* ?{} */);
-    ((void)(_tmp_cp_ret1) /* ^?{} */);
-    return ((signed int )___retval_wctob__i_1);
-}
-__attribute__ ((__nothrow__,__leaf__)) extern inline unsigned long int mbrlen(const char *__restrict __s, unsigned long int __n, struct __anonymous1 *__restrict __ps){
-    __attribute__ ((unused)) unsigned long int ___retval_mbrlen__Ul_1;
-    unsigned long int _tmp_cp_ret2;
-    unsigned long int _tmp_cp_ret3;
-    ((void)(___retval_mbrlen__Ul_1=(((signed int )((((long int )__ps)!=((long int )((void *)0)))!=((signed int )0))) ? (((void)(_tmp_cp_ret2=mbrtowc(((signed int *__restrict )((void *)0)), __s, __n, __ps))) , _tmp_cp_ret2) : (((void)(_tmp_cp_ret3=__mbrlen(__s, __n, ((struct __anonymous1 *__restrict )((void *)0))))) , _tmp_cp_ret3))) /* ?{} */);
-    ((void)(_tmp_cp_ret2) /* ^?{} */);
-    ((void)(_tmp_cp_ret3) /* ^?{} */);
-    return ((unsigned long int )___retval_mbrlen__Ul_1);
-}
-__attribute__ ((__nothrow__,__leaf__)) extern unsigned long int mbsrtowcs(signed int *__restrict __dst, const char **__restrict __src, unsigned long int __len, struct __anonymous1 *__restrict __ps);
-__attribute__ ((__nothrow__,__leaf__)) extern unsigned long int wcsrtombs(char *__restrict __dst, const signed int **__restrict __src, unsigned long int __len, struct __anonymous1 *__restrict __ps);
-__attribute__ ((__nothrow__,__leaf__)) extern unsigned long int mbsnrtowcs(signed int *__restrict __dst, const char **__restrict __src, unsigned long int __nmc, unsigned long int __len, struct __anonymous1 *__restrict __ps);
-__attribute__ ((__nothrow__,__leaf__)) extern unsigned long int wcsnrtombs(char *__restrict __dst, const signed int **__restrict __src, unsigned long int __nwc, unsigned long int __len, struct __anonymous1 *__restrict __ps);
-__attribute__ ((__nothrow__,__leaf__)) extern double wcstod(const signed int *__restrict __nptr, signed int **__restrict __endptr);
-__attribute__ ((__nothrow__,__leaf__)) extern float wcstof(const signed int *__restrict __nptr, signed int **__restrict __endptr);
-__attribute__ ((__nothrow__,__leaf__)) extern long double wcstold(const signed int *__restrict __nptr, signed int **__restrict __endptr);
-__attribute__ ((__nothrow__,__leaf__)) extern signed long int wcstol(const signed int *__restrict __nptr, signed int **__restrict __endptr, signed int __base);
-__attribute__ ((__nothrow__,__leaf__)) extern unsigned long int wcstoul(const signed int *__restrict __nptr, signed int **__restrict __endptr, signed int __base);
-__extension__ __attribute__ ((__nothrow__,__leaf__)) extern signed long long int wcstoll(const signed int *__restrict __nptr, signed int **__restrict __endptr, signed int __base);
-__extension__ __attribute__ ((__nothrow__,__leaf__)) extern unsigned long long int wcstoull(const signed int *__restrict __nptr, signed int **__restrict __endptr, signed int __base);
-__attribute__ ((__nothrow__,__leaf__)) extern signed int *wcpcpy(signed int *__restrict __dest, const signed int *__restrict __src);
-__attribute__ ((__nothrow__,__leaf__)) extern signed int *wcpncpy(signed int *__restrict __dest, const signed int *__restrict __src, unsigned long int __n);
-__attribute__ ((__nothrow__,__leaf__)) extern struct _IO_FILE *open_wmemstream(signed int **__bufloc, unsigned long int *__sizeloc);
-__attribute__ ((__nothrow__,__leaf__)) extern signed int fwide(struct _IO_FILE *__fp, signed int __mode);
-extern signed int fwprintf(struct _IO_FILE *__restrict __stream, const signed int *__restrict __format, ...);
-extern signed int wprintf(const signed int *__restrict __format, ...);
-__attribute__ ((__nothrow__,__leaf__)) extern signed int swprintf(signed int *__restrict __s, unsigned long int __n, const signed int *__restrict __format, ...);
-extern signed int vfwprintf(struct _IO_FILE *__restrict __s, const signed int *__restrict __format, __builtin_va_list __arg);
-extern signed int vwprintf(const signed int *__restrict __format, __builtin_va_list __arg);
-__attribute__ ((__nothrow__,__leaf__)) extern signed int vswprintf(signed int *__restrict __s, unsigned long int __n, const signed int *__restrict __format, __builtin_va_list __arg);
-extern signed int fwscanf(struct _IO_FILE *__restrict __stream, const signed int *__restrict __format, ...);
-extern signed int wscanf(const signed int *__restrict __format, ...);
-__attribute__ ((__nothrow__,__leaf__)) extern signed int swscanf(const signed int *__restrict __s, const signed int *__restrict __format, ...);
-extern signed int fwscanf(struct _IO_FILE *__restrict __stream, const signed int *__restrict __format, ...) asm ( "" "__isoc99_fwscanf" );
-extern signed int wscanf(const signed int *__restrict __format, ...) asm ( "" "__isoc99_wscanf" );
-__attribute__ ((__nothrow__,__leaf__)) extern signed int swscanf(const signed int *__restrict __s, const signed int *__restrict __format, ...) asm ( "" "__isoc99_swscanf" );
-extern signed int vfwscanf(struct _IO_FILE *__restrict __s, const signed int *__restrict __format, __builtin_va_list __arg);
-extern signed int vwscanf(const signed int *__restrict __format, __builtin_va_list __arg);
-__attribute__ ((__nothrow__,__leaf__)) extern signed int vswscanf(const signed int *__restrict __s, const signed int *__restrict __format, __builtin_va_list __arg);
-extern signed int vfwscanf(struct _IO_FILE *__restrict __s, const signed int *__restrict __format, __builtin_va_list __arg) asm ( "" "__isoc99_vfwscanf" );
-extern signed int vwscanf(const signed int *__restrict __format, __builtin_va_list __arg) asm ( "" "__isoc99_vwscanf" );
-__attribute__ ((__nothrow__,__leaf__)) extern signed int vswscanf(const signed int *__restrict __s, const signed int *__restrict __format, __builtin_va_list __arg) asm ( "" "__isoc99_vswscanf" );
-extern unsigned int fgetwc(struct _IO_FILE *__stream);
-extern unsigned int getwc(struct _IO_FILE *__stream);
-extern unsigned int getwchar(void);
-extern unsigned int fputwc(signed int __wc, struct _IO_FILE *__stream);
-extern unsigned int putwc(signed int __wc, struct _IO_FILE *__stream);
-extern unsigned int putwchar(signed int __wc);
-extern signed int *fgetws(signed int *__restrict __ws, signed int __n, struct _IO_FILE *__restrict __stream);
-extern signed int fputws(const signed int *__restrict __ws, struct _IO_FILE *__restrict __stream);
-extern unsigned int ungetwc(unsigned int __wc, struct _IO_FILE *__stream);
-__attribute__ ((__nothrow__,__leaf__)) extern unsigned long int wcsftime(signed int *__restrict __s, unsigned long int __maxsize, const signed int *__restrict __format, const struct tm *__restrict __tp);
-__attribute__ ((__nothrow__,__leaf__)) extern signed int *__wmemcpy_chk(signed int *__restrict __s1, const signed int *__restrict __s2, unsigned long int __n, unsigned long int __ns1);
-__attribute__ ((__nothrow__,__leaf__)) extern signed int *__wmemcpy_alias(signed int *__restrict __s1, const signed int *__restrict __s2, unsigned long int __n) asm ( "" "wmemcpy" );
-__attribute__ ((__nothrow__,__leaf__,__warning__("wmemcpy called with length bigger than size of destination " "buffer"))) extern signed int *__wmemcpy_chk_warn(signed int *__restrict __s1, const signed int *__restrict __s2, unsigned long int __n, unsigned long int __ns1) asm ( "" "__wmemcpy_chk" );
-__attribute__ ((__artificial__,__always_inline__,__nothrow__,__leaf__)) extern inline signed int *wmemcpy(signed int *__restrict __s1, const signed int *__restrict __s2, unsigned long int __n){
-    __attribute__ ((unused)) signed int *___retval_wmemcpy__Pi_1;
-    if ( ((signed int )((__builtin_object_size(((const void *)__s1), ((signed int )0))!=((unsigned long int )(-((signed int )1))))!=((signed int )0))) ) {
-        if ( ((signed int )((!__builtin_constant_p(__n))!=((signed int )0))) ) {
-            signed int *_tmp_cp_ret4;
-            ((void)(___retval_wmemcpy__Pi_1=(((void)(_tmp_cp_ret4=__wmemcpy_chk(__s1, __s2, __n, (__builtin_object_size(((const void *)__s1), ((signed int )0))/sizeof(signed int ))))) , _tmp_cp_ret4)) /* ?{} */);
-            ((void)(_tmp_cp_ret4) /* ^?{} */);
-            return ((signed int *)___retval_wmemcpy__Pi_1);
-        }
-
-        if ( ((signed int )((__n>(__builtin_object_size(((const void *)__s1), ((signed int )0))/sizeof(signed int )))!=((signed int )0))) ) {
-            signed int *_tmp_cp_ret5;
-            ((void)(___retval_wmemcpy__Pi_1=(((void)(_tmp_cp_ret5=__wmemcpy_chk_warn(__s1, __s2, __n, (__builtin_object_size(((const void *)__s1), ((signed int )0))/sizeof(signed int ))))) , _tmp_cp_ret5)) /* ?{} */);
-            ((void)(_tmp_cp_ret5) /* ^?{} */);
-            return ((signed int *)___retval_wmemcpy__Pi_1);
-        }
-
-    }
-
-    signed int *_tmp_cp_ret6;
-    ((void)(___retval_wmemcpy__Pi_1=(((void)(_tmp_cp_ret6=__wmemcpy_alias(__s1, __s2, __n))) , _tmp_cp_ret6)) /* ?{} */);
-    ((void)(_tmp_cp_ret6) /* ^?{} */);
-    return ((signed int *)___retval_wmemcpy__Pi_1);
-}
-__attribute__ ((__nothrow__,__leaf__)) extern signed int *__wmemmove_chk(signed int *__s1, const signed int *__s2, unsigned long int __n, unsigned long int __ns1);
-__attribute__ ((__nothrow__,__leaf__)) extern signed int *__wmemmove_alias(signed int *__s1, const signed int *__s2, unsigned long int __n) asm ( "" "wmemmove" );
-__attribute__ ((__nothrow__,__leaf__,__warning__("wmemmove called with length bigger than size of destination " "buffer"))) extern signed int *__wmemmove_chk_warn(signed int *__s1, const signed int *__s2, unsigned long int __n, unsigned long int __ns1) asm ( "" "__wmemmove_chk" );
-__attribute__ ((__artificial__,__always_inline__,__nothrow__,__leaf__)) extern inline signed int *wmemmove(signed int *__s1, const signed int *__s2, unsigned long int __n){
-    __attribute__ ((unused)) signed int *___retval_wmemmove__Pi_1;
-    if ( ((signed int )((__builtin_object_size(((const void *)__s1), ((signed int )0))!=((unsigned long int )(-((signed int )1))))!=((signed int )0))) ) {
-        if ( ((signed int )((!__builtin_constant_p(__n))!=((signed int )0))) ) {
-            signed int *_tmp_cp_ret7;
-            ((void)(___retval_wmemmove__Pi_1=(((void)(_tmp_cp_ret7=__wmemmove_chk(__s1, __s2, __n, (__builtin_object_size(((const void *)__s1), ((signed int )0))/sizeof(signed int ))))) , _tmp_cp_ret7)) /* ?{} */);
-            ((void)(_tmp_cp_ret7) /* ^?{} */);
-            return ((signed int *)___retval_wmemmove__Pi_1);
-        }
-
-        if ( ((signed int )((__n>(__builtin_object_size(((const void *)__s1), ((signed int )0))/sizeof(signed int )))!=((signed int )0))) ) {
-            signed int *_tmp_cp_ret8;
-            ((void)(___retval_wmemmove__Pi_1=(((void)(_tmp_cp_ret8=__wmemmove_chk_warn(__s1, __s2, __n, (__builtin_object_size(((const void *)__s1), ((signed int )0))/sizeof(signed int ))))) , _tmp_cp_ret8)) /* ?{} */);
-            ((void)(_tmp_cp_ret8) /* ^?{} */);
-            return ((signed int *)___retval_wmemmove__Pi_1);
-        }
-
-    }
-
-    signed int *_tmp_cp_ret9;
-    ((void)(___retval_wmemmove__Pi_1=(((void)(_tmp_cp_ret9=__wmemmove_alias(__s1, __s2, __n))) , _tmp_cp_ret9)) /* ?{} */);
-    ((void)(_tmp_cp_ret9) /* ^?{} */);
-    return ((signed int *)___retval_wmemmove__Pi_1);
-}
-__attribute__ ((__nothrow__,__leaf__)) extern signed int *__wmemset_chk(signed int *__s, signed int __c, unsigned long int __n, unsigned long int __ns);
-__attribute__ ((__nothrow__,__leaf__)) extern signed int *__wmemset_alias(signed int *__s, signed int __c, unsigned long int __n) asm ( "" "wmemset" );
-__attribute__ ((__nothrow__,__leaf__,__warning__("wmemset called with length bigger than size of destination " "buffer"))) extern signed int *__wmemset_chk_warn(signed int *__s, signed int __c, unsigned long int __n, unsigned long int __ns) asm ( "" "__wmemset_chk" );
-__attribute__ ((__artificial__,__always_inline__,__nothrow__,__leaf__)) extern inline signed int *wmemset(signed int *__s, signed int __c, unsigned long int __n){
-    __attribute__ ((unused)) signed int *___retval_wmemset__Pi_1;
-    if ( ((signed int )((__builtin_object_size(((const void *)__s), ((signed int )0))!=((unsigned long int )(-((signed int )1))))!=((signed int )0))) ) {
-        if ( ((signed int )((!__builtin_constant_p(__n))!=((signed int )0))) ) {
-            signed int *_tmp_cp_ret10;
-            ((void)(___retval_wmemset__Pi_1=(((void)(_tmp_cp_ret10=__wmemset_chk(__s, __c, __n, (__builtin_object_size(((const void *)__s), ((signed int )0))/sizeof(signed int ))))) , _tmp_cp_ret10)) /* ?{} */);
-            ((void)(_tmp_cp_ret10) /* ^?{} */);
-            return ((signed int *)___retval_wmemset__Pi_1);
-        }
-
-        if ( ((signed int )((__n>(__builtin_object_size(((const void *)__s), ((signed int )0))/sizeof(signed int )))!=((signed int )0))) ) {
-            signed int *_tmp_cp_ret11;
-            ((void)(___retval_wmemset__Pi_1=(((void)(_tmp_cp_ret11=__wmemset_chk_warn(__s, __c, __n, (__builtin_object_size(((const void *)__s), ((signed int )0))/sizeof(signed int ))))) , _tmp_cp_ret11)) /* ?{} */);
-            ((void)(_tmp_cp_ret11) /* ^?{} */);
-            return ((signed int *)___retval_wmemset__Pi_1);
-        }
-
-    }
-
-    signed int *_tmp_cp_ret12;
-    ((void)(___retval_wmemset__Pi_1=(((void)(_tmp_cp_ret12=__wmemset_alias(__s, __c, __n))) , _tmp_cp_ret12)) /* ?{} */);
-    ((void)(_tmp_cp_ret12) /* ^?{} */);
-    return ((signed int *)___retval_wmemset__Pi_1);
-}
-__attribute__ ((__nothrow__,__leaf__)) extern signed int *__wcscpy_chk(signed int *__restrict __dest, const signed int *__restrict __src, unsigned long int __n);
-__attribute__ ((__nothrow__,__leaf__)) extern signed int *__wcscpy_alias(signed int *__restrict __dest, const signed int *__restrict __src) asm ( "" "wcscpy" );
-__attribute__ ((__artificial__,__always_inline__,__nothrow__,__leaf__)) extern inline signed int *wcscpy(signed int *__restrict __dest, const signed int *__restrict __src){
-    __attribute__ ((unused)) signed int *___retval_wcscpy__Pi_1;
-    if ( ((signed int )((__builtin_object_size(((const void *)__dest), (2>((signed int )1)))!=((unsigned long int )(-((signed int )1))))!=((signed int )0))) ) {
-        signed int *_tmp_cp_ret13;
-        ((void)(___retval_wcscpy__Pi_1=(((void)(_tmp_cp_ret13=__wcscpy_chk(__dest, __src, (__builtin_object_size(((const void *)__dest), (2>((signed int )1)))/sizeof(signed int ))))) , _tmp_cp_ret13)) /* ?{} */);
-        ((void)(_tmp_cp_ret13) /* ^?{} */);
-        return ((signed int *)___retval_wcscpy__Pi_1);
-    }
-
-    signed int *_tmp_cp_ret14;
-    ((void)(___retval_wcscpy__Pi_1=(((void)(_tmp_cp_ret14=__wcscpy_alias(__dest, __src))) , _tmp_cp_ret14)) /* ?{} */);
-    ((void)(_tmp_cp_ret14) /* ^?{} */);
-    return ((signed int *)___retval_wcscpy__Pi_1);
-}
-__attribute__ ((__nothrow__,__leaf__)) extern signed int *__wcpcpy_chk(signed int *__restrict __dest, const signed int *__restrict __src, unsigned long int __destlen);
-__attribute__ ((__nothrow__,__leaf__)) extern signed int *__wcpcpy_alias(signed int *__restrict __dest, const signed int *__restrict __src) asm ( "" "wcpcpy" );
-__attribute__ ((__artificial__,__always_inline__,__nothrow__,__leaf__)) extern inline signed int *wcpcpy(signed int *__restrict __dest, const signed int *__restrict __src){
-    __attribute__ ((unused)) signed int *___retval_wcpcpy__Pi_1;
-    if ( ((signed int )((__builtin_object_size(((const void *)__dest), (2>((signed int )1)))!=((unsigned long int )(-((signed int )1))))!=((signed int )0))) ) {
-        signed int *_tmp_cp_ret15;
-        ((void)(___retval_wcpcpy__Pi_1=(((void)(_tmp_cp_ret15=__wcpcpy_chk(__dest, __src, (__builtin_object_size(((const void *)__dest), (2>((signed int )1)))/sizeof(signed int ))))) , _tmp_cp_ret15)) /* ?{} */);
-        ((void)(_tmp_cp_ret15) /* ^?{} */);
-        return ((signed int *)___retval_wcpcpy__Pi_1);
-    }
-
-    signed int *_tmp_cp_ret16;
-    ((void)(___retval_wcpcpy__Pi_1=(((void)(_tmp_cp_ret16=__wcpcpy_alias(__dest, __src))) , _tmp_cp_ret16)) /* ?{} */);
-    ((void)(_tmp_cp_ret16) /* ^?{} */);
-    return ((signed int *)___retval_wcpcpy__Pi_1);
-}
-__attribute__ ((__nothrow__,__leaf__)) extern signed int *__wcsncpy_chk(signed int *__restrict __dest, const signed int *__restrict __src, unsigned long int __n, unsigned long int __destlen);
-__attribute__ ((__nothrow__,__leaf__)) extern signed int *__wcsncpy_alias(signed int *__restrict __dest, const signed int *__restrict __src, unsigned long int __n) asm ( "" "wcsncpy" );
-__attribute__ ((__nothrow__,__leaf__,__warning__("wcsncpy called with length bigger than size of destination " "buffer"))) extern signed int *__wcsncpy_chk_warn(signed int *__restrict __dest, const signed int *__restrict __src, unsigned long int __n, unsigned long int __destlen) asm ( "" "__wcsncpy_chk" );
-__attribute__ ((__artificial__,__always_inline__,__nothrow__,__leaf__)) extern inline signed int *wcsncpy(signed int *__restrict __dest, const signed int *__restrict __src, unsigned long int __n){
-    __attribute__ ((unused)) signed int *___retval_wcsncpy__Pi_1;
-    if ( ((signed int )((__builtin_object_size(((const void *)__dest), (2>((signed int )1)))!=((unsigned long int )(-((signed int )1))))!=((signed int )0))) ) {
-        if ( ((signed int )((!__builtin_constant_p(__n))!=((signed int )0))) ) {
-            signed int *_tmp_cp_ret17;
-            ((void)(___retval_wcsncpy__Pi_1=(((void)(_tmp_cp_ret17=__wcsncpy_chk(__dest, __src, __n, (__builtin_object_size(((const void *)__dest), (2>((signed int )1)))/sizeof(signed int ))))) , _tmp_cp_ret17)) /* ?{} */);
-            ((void)(_tmp_cp_ret17) /* ^?{} */);
-            return ((signed int *)___retval_wcsncpy__Pi_1);
-        }
-
-        if ( ((signed int )((__n>(__builtin_object_size(((const void *)__dest), (2>((signed int )1)))/sizeof(signed int )))!=((signed int )0))) ) {
-            signed int *_tmp_cp_ret18;
-            ((void)(___retval_wcsncpy__Pi_1=(((void)(_tmp_cp_ret18=__wcsncpy_chk_warn(__dest, __src, __n, (__builtin_object_size(((const void *)__dest), (2>((signed int )1)))/sizeof(signed int ))))) , _tmp_cp_ret18)) /* ?{} */);
-            ((void)(_tmp_cp_ret18) /* ^?{} */);
-            return ((signed int *)___retval_wcsncpy__Pi_1);
-        }
-
-    }
-
-    signed int *_tmp_cp_ret19;
-    ((void)(___retval_wcsncpy__Pi_1=(((void)(_tmp_cp_ret19=__wcsncpy_alias(__dest, __src, __n))) , _tmp_cp_ret19)) /* ?{} */);
-    ((void)(_tmp_cp_ret19) /* ^?{} */);
-    return ((signed int *)___retval_wcsncpy__Pi_1);
-}
-__attribute__ ((__nothrow__,__leaf__)) extern signed int *__wcpncpy_chk(signed int *__restrict __dest, const signed int *__restrict __src, unsigned long int __n, unsigned long int __destlen);
-__attribute__ ((__nothrow__,__leaf__)) extern signed int *__wcpncpy_alias(signed int *__restrict __dest, const signed int *__restrict __src, unsigned long int __n) asm ( "" "wcpncpy" );
-__attribute__ ((__nothrow__,__leaf__,__warning__("wcpncpy called with length bigger than size of destination " "buffer"))) extern signed int *__wcpncpy_chk_warn(signed int *__restrict __dest, const signed int *__restrict __src, unsigned long int __n, unsigned long int __destlen) asm ( "" "__wcpncpy_chk" );
-__attribute__ ((__artificial__,__always_inline__,__nothrow__,__leaf__)) extern inline signed int *wcpncpy(signed int *__restrict __dest, const signed int *__restrict __src, unsigned long int __n){
-    __attribute__ ((unused)) signed int *___retval_wcpncpy__Pi_1;
-    if ( ((signed int )((__builtin_object_size(((const void *)__dest), (2>((signed int )1)))!=((unsigned long int )(-((signed int )1))))!=((signed int )0))) ) {
-        if ( ((signed int )((!__builtin_constant_p(__n))!=((signed int )0))) ) {
-            signed int *_tmp_cp_ret20;
-            ((void)(___retval_wcpncpy__Pi_1=(((void)(_tmp_cp_ret20=__wcpncpy_chk(__dest, __src, __n, (__builtin_object_size(((const void *)__dest), (2>((signed int )1)))/sizeof(signed int ))))) , _tmp_cp_ret20)) /* ?{} */);
-            ((void)(_tmp_cp_ret20) /* ^?{} */);
-            return ((signed int *)___retval_wcpncpy__Pi_1);
-        }
-
-        if ( ((signed int )((__n>(__builtin_object_size(((const void *)__dest), (2>((signed int )1)))/sizeof(signed int )))!=((signed int )0))) ) {
-            signed int *_tmp_cp_ret21;
-            ((void)(___retval_wcpncpy__Pi_1=(((void)(_tmp_cp_ret21=__wcpncpy_chk_warn(__dest, __src, __n, (__builtin_object_size(((const void *)__dest), (2>((signed int )1)))/sizeof(signed int ))))) , _tmp_cp_ret21)) /* ?{} */);
-            ((void)(_tmp_cp_ret21) /* ^?{} */);
-            return ((signed int *)___retval_wcpncpy__Pi_1);
-        }
-
-    }
-
-    signed int *_tmp_cp_ret22;
-    ((void)(___retval_wcpncpy__Pi_1=(((void)(_tmp_cp_ret22=__wcpncpy_alias(__dest, __src, __n))) , _tmp_cp_ret22)) /* ?{} */);
-    ((void)(_tmp_cp_ret22) /* ^?{} */);
-    return ((signed int *)___retval_wcpncpy__Pi_1);
-}
-__attribute__ ((__nothrow__,__leaf__)) extern signed int *__wcscat_chk(signed int *__restrict __dest, const signed int *__restrict __src, unsigned long int __destlen);
-__attribute__ ((__nothrow__,__leaf__)) extern signed int *__wcscat_alias(signed int *__restrict __dest, const signed int *__restrict __src) asm ( "" "wcscat" );
-__attribute__ ((__artificial__,__always_inline__,__nothrow__,__leaf__)) extern inline signed int *wcscat(signed int *__restrict __dest, const signed int *__restrict __src){
-    __attribute__ ((unused)) signed int *___retval_wcscat__Pi_1;
-    if ( ((signed int )((__builtin_object_size(((const void *)__dest), (2>((signed int )1)))!=((unsigned long int )(-((signed int )1))))!=((signed int )0))) ) {
-        signed int *_tmp_cp_ret23;
-        ((void)(___retval_wcscat__Pi_1=(((void)(_tmp_cp_ret23=__wcscat_chk(__dest, __src, (__builtin_object_size(((const void *)__dest), (2>((signed int )1)))/sizeof(signed int ))))) , _tmp_cp_ret23)) /* ?{} */);
-        ((void)(_tmp_cp_ret23) /* ^?{} */);
-        return ((signed int *)___retval_wcscat__Pi_1);
-    }
-
-    signed int *_tmp_cp_ret24;
-    ((void)(___retval_wcscat__Pi_1=(((void)(_tmp_cp_ret24=__wcscat_alias(__dest, __src))) , _tmp_cp_ret24)) /* ?{} */);
-    ((void)(_tmp_cp_ret24) /* ^?{} */);
-    return ((signed int *)___retval_wcscat__Pi_1);
-}
-__attribute__ ((__nothrow__,__leaf__)) extern signed int *__wcsncat_chk(signed int *__restrict __dest, const signed int *__restrict __src, unsigned long int __n, unsigned long int __destlen);
-__attribute__ ((__nothrow__,__leaf__)) extern signed int *__wcsncat_alias(signed int *__restrict __dest, const signed int *__restrict __src, unsigned long int __n) asm ( "" "wcsncat" );
-__attribute__ ((__artificial__,__always_inline__,__nothrow__,__leaf__)) extern inline signed int *wcsncat(signed int *__restrict __dest, const signed int *__restrict __src, unsigned long int __n){
-    __attribute__ ((unused)) signed int *___retval_wcsncat__Pi_1;
-    if ( ((signed int )((__builtin_object_size(((const void *)__dest), (2>((signed int )1)))!=((unsigned long int )(-((signed int )1))))!=((signed int )0))) ) {
-        signed int *_tmp_cp_ret25;
-        ((void)(___retval_wcsncat__Pi_1=(((void)(_tmp_cp_ret25=__wcsncat_chk(__dest, __src, __n, (__builtin_object_size(((const void *)__dest), (2>((signed int )1)))/sizeof(signed int ))))) , _tmp_cp_ret25)) /* ?{} */);
-        ((void)(_tmp_cp_ret25) /* ^?{} */);
-        return ((signed int *)___retval_wcsncat__Pi_1);
-    }
-
-    signed int *_tmp_cp_ret26;
-    ((void)(___retval_wcsncat__Pi_1=(((void)(_tmp_cp_ret26=__wcsncat_alias(__dest, __src, __n))) , _tmp_cp_ret26)) /* ?{} */);
-    ((void)(_tmp_cp_ret26) /* ^?{} */);
-    return ((signed int *)___retval_wcsncat__Pi_1);
-}
-__attribute__ ((__nothrow__,__leaf__)) extern signed int __swprintf_chk(signed int *__restrict __s, unsigned long int __n, signed int __flag, unsigned long int __s_len, const signed int *__restrict __format, ...);
-__attribute__ ((__nothrow__,__leaf__)) extern signed int __swprintf_alias(signed int *__restrict __s, unsigned long int __n, const signed int *__restrict __fmt, ...) asm ( "" "swprintf" );
-__attribute__ ((__nothrow__,__leaf__,__artificial__,__always_inline__)) extern inline signed int swprintf(signed int *__restrict __s, unsigned long int __n, const signed int *__restrict __fmt, ...){
-    __attribute__ ((unused)) signed int ___retval_swprintf__i_1;
-    if ( ((signed int )((((signed int )((__builtin_object_size(((const void *)__s), (2>((signed int )1)))!=((unsigned long int )(-((signed int )1))))!=((signed int )0))) || ((signed int )((2>((signed int )1))!=((signed int )0))))!=((signed int )0))) ) {
-        signed int _tmp_cp_ret27;
-        ((void)(___retval_swprintf__i_1=(((void)(_tmp_cp_ret27=__swprintf_chk(__s, __n, (2-((signed int )1)), (__builtin_object_size(((const void *)__s), (2>((signed int )1)))/sizeof(signed int )), __fmt, __builtin_va_arg_pack()))) , _tmp_cp_ret27)) /* ?{} */);
-        ((void)(_tmp_cp_ret27) /* ^?{} */);
-        return ((signed int )___retval_swprintf__i_1);
-    }
-
-    signed int _tmp_cp_ret28;
-    ((void)(___retval_swprintf__i_1=(((void)(_tmp_cp_ret28=__swprintf_alias(__s, __n, __fmt, __builtin_va_arg_pack()))) , _tmp_cp_ret28)) /* ?{} */);
-    ((void)(_tmp_cp_ret28) /* ^?{} */);
-    return ((signed int )___retval_swprintf__i_1);
-}
-__attribute__ ((__nothrow__,__leaf__)) extern signed int __vswprintf_chk(signed int *__restrict __s, unsigned long int __n, signed int __flag, unsigned long int __s_len, const signed int *__restrict __format, __builtin_va_list __arg);
-__attribute__ ((__nothrow__,__leaf__)) extern signed int __vswprintf_alias(signed int *__restrict __s, unsigned long int __n, const signed int *__restrict __fmt, __builtin_va_list __ap) asm ( "" "vswprintf" );
-__attribute__ ((__nothrow__,__leaf__,__artificial__,__always_inline__)) extern inline signed int vswprintf(signed int *__restrict __s, unsigned long int __n, const signed int *__restrict __fmt, __builtin_va_list __ap){
-    __attribute__ ((unused)) signed int ___retval_vswprintf__i_1;
-    if ( ((signed int )((((signed int )((__builtin_object_size(((const void *)__s), (2>((signed int )1)))!=((unsigned long int )(-((signed int )1))))!=((signed int )0))) || ((signed int )((2>((signed int )1))!=((signed int )0))))!=((signed int )0))) ) {
-        signed int _tmp_cp_ret29;
-        ((void)(___retval_vswprintf__i_1=(((void)(_tmp_cp_ret29=__vswprintf_chk(__s, __n, (2-((signed int )1)), (__builtin_object_size(((const void *)__s), (2>((signed int )1)))/sizeof(signed int )), __fmt, __ap))) , _tmp_cp_ret29)) /* ?{} */);
-        ((void)(_tmp_cp_ret29) /* ^?{} */);
-        return ((signed int )___retval_vswprintf__i_1);
-    }
-
-    signed int _tmp_cp_ret30;
-    ((void)(___retval_vswprintf__i_1=(((void)(_tmp_cp_ret30=__vswprintf_alias(__s, __n, __fmt, __ap))) , _tmp_cp_ret30)) /* ?{} */);
-    ((void)(_tmp_cp_ret30) /* ^?{} */);
-    return ((signed int )___retval_vswprintf__i_1);
-}
-extern signed int __fwprintf_chk(struct _IO_FILE *__restrict __stream, signed int __flag, const signed int *__restrict __format, ...);
-extern signed int __wprintf_chk(signed int __flag, const signed int *__restrict __format, ...);
-extern signed int __vfwprintf_chk(struct _IO_FILE *__restrict __stream, signed int __flag, const signed int *__restrict __format, __builtin_va_list __ap);
-extern signed int __vwprintf_chk(signed int __flag, const signed int *__restrict __format, __builtin_va_list __ap);
-__attribute__ ((__artificial__,__always_inline__)) extern inline signed int wprintf(const signed int *__restrict __fmt, ...){
-    __attribute__ ((unused)) signed int ___retval_wprintf__i_1;
-    signed int _tmp_cp_ret31;
-    ((void)(___retval_wprintf__i_1=(((void)(_tmp_cp_ret31=__wprintf_chk((2-((signed int )1)), __fmt, __builtin_va_arg_pack()))) , _tmp_cp_ret31)) /* ?{} */);
-    ((void)(_tmp_cp_ret31) /* ^?{} */);
-    return ((signed int )___retval_wprintf__i_1);
-}
-__attribute__ ((__artificial__,__always_inline__)) extern inline signed int fwprintf(struct _IO_FILE *__restrict __stream, const signed int *__restrict __fmt, ...){
-    __attribute__ ((unused)) signed int ___retval_fwprintf__i_1;
-    signed int _tmp_cp_ret32;
-    ((void)(___retval_fwprintf__i_1=(((void)(_tmp_cp_ret32=__fwprintf_chk(__stream, (2-((signed int )1)), __fmt, __builtin_va_arg_pack()))) , _tmp_cp_ret32)) /* ?{} */);
-    ((void)(_tmp_cp_ret32) /* ^?{} */);
-    return ((signed int )___retval_fwprintf__i_1);
-}
-__attribute__ ((__artificial__,__always_inline__)) extern inline signed int vwprintf(const signed int *__restrict __fmt, __builtin_va_list __ap){
-    __attribute__ ((unused)) signed int ___retval_vwprintf__i_1;
-    signed int _tmp_cp_ret33;
-    ((void)(___retval_vwprintf__i_1=(((void)(_tmp_cp_ret33=__vwprintf_chk((2-((signed int )1)), __fmt, __ap))) , _tmp_cp_ret33)) /* ?{} */);
-    ((void)(_tmp_cp_ret33) /* ^?{} */);
-    return ((signed int )___retval_vwprintf__i_1);
-}
-__attribute__ ((__artificial__,__always_inline__)) extern inline signed int vfwprintf(struct _IO_FILE *__restrict __stream, const signed int *__restrict __fmt, __builtin_va_list __ap){
-    __attribute__ ((unused)) signed int ___retval_vfwprintf__i_1;
-    signed int _tmp_cp_ret34;
-    ((void)(___retval_vfwprintf__i_1=(((void)(_tmp_cp_ret34=__vfwprintf_chk(__stream, (2-((signed int )1)), __fmt, __ap))) , _tmp_cp_ret34)) /* ?{} */);
-    ((void)(_tmp_cp_ret34) /* ^?{} */);
-    return ((signed int )___retval_vfwprintf__i_1);
-}
-__attribute__ ((__warn_unused_result__)) extern signed int *__fgetws_chk(signed int *__restrict __s, unsigned long int __size, signed int __n, struct _IO_FILE *__restrict __stream);
-__attribute__ ((__warn_unused_result__)) extern signed int *__fgetws_alias(signed int *__restrict __s, signed int __n, struct _IO_FILE *__restrict __stream) asm ( "" "fgetws" );
-__attribute__ ((__warn_unused_result__,__warning__("fgetws called with bigger size than length " "of destination buffer"))) extern signed int *__fgetws_chk_warn(signed int *__restrict __s, unsigned long int __size, signed int __n, struct _IO_FILE *__restrict __stream) asm ( "" "__fgetws_chk" );
-__attribute__ ((__warn_unused_result__,__artificial__,__always_inline__)) extern inline signed int *fgetws(signed int *__restrict __s, signed int __n, struct _IO_FILE *__restrict __stream){
-    __attribute__ ((unused)) signed int *___retval_fgetws__Pi_1;
-    if ( ((signed int )((__builtin_object_size(((const void *)__s), (2>((signed int )1)))!=((unsigned long int )(-((signed int )1))))!=((signed int )0))) ) {
-        if ( ((signed int )((((signed int )((!__builtin_constant_p(__n))!=((signed int )0))) || ((signed int )((__n<=((signed int )0))!=((signed int )0))))!=((signed int )0))) ) {
-            signed int *_tmp_cp_ret35;
-            ((void)(___retval_fgetws__Pi_1=(((void)(_tmp_cp_ret35=__fgetws_chk(__s, (__builtin_object_size(((const void *)__s), (2>((signed int )1)))/sizeof(signed int )), __n, __stream))) , _tmp_cp_ret35)) /* ?{} */);
-            ((void)(_tmp_cp_ret35) /* ^?{} */);
-            return ((signed int *)___retval_fgetws__Pi_1);
-        }
-
-        if ( ((signed int )((((unsigned long int )__n)>(__builtin_object_size(((const void *)__s), (2>((signed int )1)))/sizeof(signed int )))!=((signed int )0))) ) {
-            signed int *_tmp_cp_ret36;
-            ((void)(___retval_fgetws__Pi_1=(((void)(_tmp_cp_ret36=__fgetws_chk_warn(__s, (__builtin_object_size(((const void *)__s), (2>((signed int )1)))/sizeof(signed int )), __n, __stream))) , _tmp_cp_ret36)) /* ?{} */);
-            ((void)(_tmp_cp_ret36) /* ^?{} */);
-            return ((signed int *)___retval_fgetws__Pi_1);
-        }
-
-    }
-
-    signed int *_tmp_cp_ret37;
-    ((void)(___retval_fgetws__Pi_1=(((void)(_tmp_cp_ret37=__fgetws_alias(__s, __n, __stream))) , _tmp_cp_ret37)) /* ?{} */);
-    ((void)(_tmp_cp_ret37) /* ^?{} */);
-    return ((signed int *)___retval_fgetws__Pi_1);
-}
-__attribute__ ((__nothrow__,__leaf__,__warn_unused_result__)) extern unsigned long int __wcrtomb_chk(char *__restrict __s, signed int __wchar, struct __anonymous1 *__restrict __p, unsigned long int __buflen);
-__attribute__ ((__nothrow__,__leaf__,__warn_unused_result__)) extern unsigned long int __wcrtomb_alias(char *__restrict __s, signed int __wchar, struct __anonymous1 *__restrict __ps) asm ( "" "wcrtomb" );
-__attribute__ ((__nothrow__,__leaf__,__warn_unused_result__,__artificial__,__always_inline__)) extern inline unsigned long int wcrtomb(char *__restrict __s, signed int __wchar, struct __anonymous1 *__restrict __ps){
-    __attribute__ ((unused)) unsigned long int ___retval_wcrtomb__Ul_1;
-    if ( ((signed int )((((signed int )((__builtin_object_size(((const void *)__s), (2>((signed int )1)))!=((unsigned long int )(-((signed int )1))))!=((signed int )0))) && ((signed int )((((unsigned long int )16)>__builtin_object_size(((const void *)__s), (2>((signed int )1))))!=((signed int )0))))!=((signed int )0))) ) {
-        unsigned long int _tmp_cp_ret38;
-        ((void)(___retval_wcrtomb__Ul_1=(((void)(_tmp_cp_ret38=__wcrtomb_chk(__s, __wchar, __ps, __builtin_object_size(((const void *)__s), (2>((signed int )1)))))) , _tmp_cp_ret38)) /* ?{} */);
-        ((void)(_tmp_cp_ret38) /* ^?{} */);
-        return ((unsigned long int )___retval_wcrtomb__Ul_1);
-    }
-
-    unsigned long int _tmp_cp_ret39;
-    ((void)(___retval_wcrtomb__Ul_1=(((void)(_tmp_cp_ret39=__wcrtomb_alias(__s, __wchar, __ps))) , _tmp_cp_ret39)) /* ?{} */);
-    ((void)(_tmp_cp_ret39) /* ^?{} */);
-    return ((unsigned long int )___retval_wcrtomb__Ul_1);
-}
-__attribute__ ((__nothrow__,__leaf__)) extern unsigned long int __mbsrtowcs_chk(signed int *__restrict __dst, const char **__restrict __src, unsigned long int __len, struct __anonymous1 *__restrict __ps, unsigned long int __dstlen);
-__attribute__ ((__nothrow__,__leaf__)) extern unsigned long int __mbsrtowcs_alias(signed int *__restrict __dst, const char **__restrict __src, unsigned long int __len, struct __anonymous1 *__restrict __ps) asm ( "" "mbsrtowcs" );
-__attribute__ ((__nothrow__,__leaf__,__warning__("mbsrtowcs called with dst buffer smaller than len " "* sizeof (wchar_t)"))) extern unsigned long int __mbsrtowcs_chk_warn(signed int *__restrict __dst, const char **__restrict __src, unsigned long int __len, struct __anonymous1 *__restrict __ps, unsigned long int __dstlen) asm ( "" "__mbsrtowcs_chk" );
-__attribute__ ((__nothrow__,__leaf__,__artificial__,__always_inline__)) extern inline unsigned long int mbsrtowcs(signed int *__restrict __dst, const char **__restrict __src, unsigned long int __len, struct __anonymous1 *__restrict __ps){
-    __attribute__ ((unused)) unsigned long int ___retval_mbsrtowcs__Ul_1;
-    if ( ((signed int )((__builtin_object_size(((const void *)__dst), (2>((signed int )1)))!=((unsigned long int )(-((signed int )1))))!=((signed int )0))) ) {
-        if ( ((signed int )((!__builtin_constant_p(__len))!=((signed int )0))) ) {
-            unsigned long int _tmp_cp_ret40;
-            ((void)(___retval_mbsrtowcs__Ul_1=(((void)(_tmp_cp_ret40=__mbsrtowcs_chk(__dst, __src, __len, __ps, (__builtin_object_size(((const void *)__dst), (2>((signed int )1)))/sizeof(signed int ))))) , _tmp_cp_ret40)) /* ?{} */);
-            ((void)(_tmp_cp_ret40) /* ^?{} */);
-            return ((unsigned long int )___retval_mbsrtowcs__Ul_1);
-        }
-
-        if ( ((signed int )((__len>(__builtin_object_size(((const void *)__dst), (2>((signed int )1)))/sizeof(signed int )))!=((signed int )0))) ) {
-            unsigned long int _tmp_cp_ret41;
-            ((void)(___retval_mbsrtowcs__Ul_1=(((void)(_tmp_cp_ret41=__mbsrtowcs_chk_warn(__dst, __src, __len, __ps, (__builtin_object_size(((const void *)__dst), (2>((signed int )1)))/sizeof(signed int ))))) , _tmp_cp_ret41)) /* ?{} */);
-            ((void)(_tmp_cp_ret41) /* ^?{} */);
-            return ((unsigned long int )___retval_mbsrtowcs__Ul_1);
-        }
-
-    }
-
-    unsigned long int _tmp_cp_ret42;
-    ((void)(___retval_mbsrtowcs__Ul_1=(((void)(_tmp_cp_ret42=__mbsrtowcs_alias(__dst, __src, __len, __ps))) , _tmp_cp_ret42)) /* ?{} */);
-    ((void)(_tmp_cp_ret42) /* ^?{} */);
-    return ((unsigned long int )___retval_mbsrtowcs__Ul_1);
-}
-__attribute__ ((__nothrow__,__leaf__)) extern unsigned long int __wcsrtombs_chk(char *__restrict __dst, const signed int **__restrict __src, unsigned long int __len, struct __anonymous1 *__restrict __ps, unsigned long int __dstlen);
-__attribute__ ((__nothrow__,__leaf__)) extern unsigned long int __wcsrtombs_alias(char *__restrict __dst, const signed int **__restrict __src, unsigned long int __len, struct __anonymous1 *__restrict __ps) asm ( "" "wcsrtombs" );
-__attribute__ ((__nothrow__,__leaf__,__warning__("wcsrtombs called with dst buffer smaller than len"))) extern unsigned long int __wcsrtombs_chk_warn(char *__restrict __dst, const signed int **__restrict __src, unsigned long int __len, struct __anonymous1 *__restrict __ps, unsigned long int __dstlen) asm ( "" "__wcsrtombs_chk" );
-__attribute__ ((__nothrow__,__leaf__,__artificial__,__always_inline__)) extern inline unsigned long int wcsrtombs(char *__restrict __dst, const signed int **__restrict __src, unsigned long int __len, struct __anonymous1 *__restrict __ps){
-    __attribute__ ((unused)) unsigned long int ___retval_wcsrtombs__Ul_1;
-    if ( ((signed int )((__builtin_object_size(((const void *)__dst), (2>((signed int )1)))!=((unsigned long int )(-((signed int )1))))!=((signed int )0))) ) {
-        if ( ((signed int )((!__builtin_constant_p(__len))!=((signed int )0))) ) {
-            unsigned long int _tmp_cp_ret43;
-            ((void)(___retval_wcsrtombs__Ul_1=(((void)(_tmp_cp_ret43=__wcsrtombs_chk(__dst, __src, __len, __ps, __builtin_object_size(((const void *)__dst), (2>((signed int )1)))))) , _tmp_cp_ret43)) /* ?{} */);
-            ((void)(_tmp_cp_ret43) /* ^?{} */);
-            return ((unsigned long int )___retval_wcsrtombs__Ul_1);
-        }
-
-        if ( ((signed int )((__len>__builtin_object_size(((const void *)__dst), (2>((signed int )1))))!=((signed int )0))) ) {
-            unsigned long int _tmp_cp_ret44;
-            ((void)(___retval_wcsrtombs__Ul_1=(((void)(_tmp_cp_ret44=__wcsrtombs_chk_warn(__dst, __src, __len, __ps, __builtin_object_size(((const void *)__dst), (2>((signed int )1)))))) , _tmp_cp_ret44)) /* ?{} */);
-            ((void)(_tmp_cp_ret44) /* ^?{} */);
-            return ((unsigned long int )___retval_wcsrtombs__Ul_1);
-        }
-
-    }
-
-    unsigned long int _tmp_cp_ret45;
-    ((void)(___retval_wcsrtombs__Ul_1=(((void)(_tmp_cp_ret45=__wcsrtombs_alias(__dst, __src, __len, __ps))) , _tmp_cp_ret45)) /* ?{} */);
-    ((void)(_tmp_cp_ret45) /* ^?{} */);
-    return ((unsigned long int )___retval_wcsrtombs__Ul_1);
-}
 void __for_each__A2_0_0_0____operator_assign__PFt0_Rt0t0____constructor__PF_Rt0____constructor__PF_Rt0t0____destructor__PF_Rt0____operator_assign__PFt1_Rt1t1____constructor__PF_Rt1____constructor__PF_Rt1t1____destructor__PF_Rt1____operator_preincr__PFt0_Rt0____operator_predecr__PFt0_Rt0____operator_equal__PFi_t0t0____operator_notequal__PFi_t0t0____operator_deref__PFRt1_t0__F_t0t0PF_t1___1(__attribute__ ((unused)) void (*_adapterF_9telt_type__P)(void (*__anonymous_object0)(), void *__anonymous_object1), __attribute__ ((unused)) void *(*_adapterFP9telt_type_14titerator_type_M_P)(void (*__anonymous_object2)(), void *__anonymous_object3), __attribute__ ((unused)) signed int (*_adapterFi_14titerator_type14titerator_type_M_PP)(void (*__anonymous_object4)(), void *__anonymous_object5, void *__anonymous_object6), __attribute__ ((unused)) void (*_adapterF14titerator_type_P14titerator_type_P_M)(void (*__anonymous_object7)(), __attribute__ ((unused)) void *___retval__operator_preincr__14titerator_type_1, void *__anonymous_object8), __attribute__ ((unused)) void (*_adapterF_P9telt_type9telt_type__MP)(void (*__anonymous_object9)(), void *__anonymous_object10, void *__anonymous_object11), __attribute__ ((unused)) void (*_adapterF9telt_type_P9telt_type9telt_type_P_MP)(void (*__anonymous_object12)(), __attribute__ ((unused)) void *___retval__operator_assign__9telt_type_1, void *__anonymous_object13, void *__anonymous_object14), __attribute__ ((unused)) void (*_adapterF_P14titerator_type14titerator_type__MP)(void (*__anonymous_object15)(), void *__anonymous_object16, void *__anonymous_object17), __attribute__ ((unused)) void (*_adapterF14titerator_type_P14titerator_type14titerator_type_P_MP)(void (*__anonymous_object18)(), __attribute__ ((unused)) void *___retval__operator_assign__14titerator_type_1, void *__anonymous_object19, void *__anonymous_object20), __attribute__ ((unused)) unsigned long int _sizeof_14titerator_type, __attribute__ ((unused)) unsigned long int _alignof_14titerator_type, __attribute__ ((unused)) unsigned long int _sizeof_9telt_type, __attribute__ ((unused)) unsigned long int _alignof_9telt_type, __attribute__ ((unused)) void *(*___operator_assign__PF14titerator_type_R14titerator_type14titerator_type__1)(void *__anonymous_object21, void *__anonymous_object22), __attribute__ ((unused)) void (*___constructor__PF_R14titerator_type__1)(void *__anonymous_object23), __attribute__ ((unused)) void (*___constructor__PF_R14titerator_type14titerator_type__1)(void *__anonymous_object24, void *__anonymous_object25), __attribute__ ((unused)) void (*___destructor__PF_R14titerator_type__1)(void *__anonymous_object26), __attribute__ ((unused)) void *(*___operator_assign__PF9telt_type_R9telt_type9telt_type__1)(void *__anonymous_object27, void *__anonymous_object28), __attribute__ ((unused)) void (*___constructor__PF_R9telt_type__1)(void *__anonymous_object29), __attribute__ ((unused)) void (*___constructor__PF_R9telt_type9telt_type__1)(void *__anonymous_object30, void *__anonymous_object31), __attribute__ ((unused)) void (*___destructor__PF_R9telt_type__1)(void *__anonymous_object32), __attribute__ ((unused)) void *(*___operator_preincr__PF14titerator_type_R14titerator_type__1)(void *__anonymous_object33), __attribute__ ((unused)) void *(*___operator_predecr__PF14titerator_type_R14titerator_type__1)(void *__anonymous_object34), __attribute__ ((unused)) signed int (*___operator_equal__PFi_14titerator_type14titerator_type__1)(void *__anonymous_object35, void *__anonymous_object36), __attribute__ ((unused)) signed int (*___operator_notequal__PFi_14titerator_type14titerator_type__1)(void *__anonymous_object37, void *__anonymous_object38), __attribute__ ((unused)) void *(*___operator_deref__PFR9telt_type_14titerator_type__1)(void *__anonymous_object39), void *__begin__14titerator_type_1, void *__end__14titerator_type_1, void (*__func__PF_9telt_type__1)(void *__anonymous_object40));
 void __for_each_reverse__A2_0_0_0____operator_assign__PFt0_Rt0t0____constructor__PF_Rt0____constructor__PF_Rt0t0____destructor__PF_Rt0____operator_assign__PFt1_Rt1t1____constructor__PF_Rt1____constructor__PF_Rt1t1____destructor__PF_Rt1____operator_preincr__PFt0_Rt0____operator_predecr__PFt0_Rt0____operator_equal__PFi_t0t0____operator_notequal__PFi_t0t0____operator_deref__PFRt1_t0__F_t0t0PF_t1___1(__attribute__ ((unused)) void (*_adapterF_9telt_type__P)(void (*__anonymous_object41)(), void *__anonymous_object42), __attribute__ ((unused)) void *(*_adapterFP9telt_type_14titerator_type_M_P)(void (*__anonymous_object43)(), void *__anonymous_object44), __attribute__ ((unused)) signed int (*_adapterFi_14titerator_type14titerator_type_M_PP)(void (*__anonymous_object45)(), void *__anonymous_object46, void *__anonymous_object47), __attribute__ ((unused)) void (*_adapterF14titerator_type_P14titerator_type_P_M)(void (*__anonymous_object48)(), __attribute__ ((unused)) void *___retval__operator_preincr__14titerator_type_1, void *__anonymous_object49), __attribute__ ((unused)) void (*_adapterF_P9telt_type9telt_type__MP)(void (*__anonymous_object50)(), void *__anonymous_object51, void *__anonymous_object52), __attribute__ ((unused)) void (*_adapterF9telt_type_P9telt_type9telt_type_P_MP)(void (*__anonymous_object53)(), __attribute__ ((unused)) void *___retval__operator_assign__9telt_type_1, void *__anonymous_object54, void *__anonymous_object55), __attribute__ ((unused)) void (*_adapterF_P14titerator_type14titerator_type__MP)(void (*__anonymous_object56)(), void *__anonymous_object57, void *__anonymous_object58), __attribute__ ((unused)) void (*_adapterF14titerator_type_P14titerator_type14titerator_type_P_MP)(void (*__anonymous_object59)(), __attribute__ ((unused)) void *___retval__operator_assign__14titerator_type_1, void *__anonymous_object60, void *__anonymous_object61), __attribute__ ((unused)) unsigned long int _sizeof_14titerator_type, __attribute__ ((unused)) unsigned long int _alignof_14titerator_type, __attribute__ ((unused)) unsigned long int _sizeof_9telt_type, __attribute__ ((unused)) unsigned long int _alignof_9telt_type, __attribute__ ((unused)) void *(*___operator_assign__PF14titerator_type_R14titerator_type14titerator_type__1)(void *__anonymous_object62, void *__anonymous_object63), __attribute__ ((unused)) void (*___constructor__PF_R14titerator_type__1)(void *__anonymous_object64), __attribute__ ((unused)) void (*___constructor__PF_R14titerator_type14titerator_type__1)(void *__anonymous_object65, void *__anonymous_object66), __attribute__ ((unused)) void (*___destructor__PF_R14titerator_type__1)(void *__anonymous_object67), __attribute__ ((unused)) void *(*___operator_assign__PF9telt_type_R9telt_type9telt_type__1)(void *__anonymous_object68, void *__anonymous_object69), __attribute__ ((unused)) void (*___constructor__PF_R9telt_type__1)(void *__anonymous_object70), __attribute__ ((unused)) void (*___constructor__PF_R9telt_type9telt_type__1)(void *__anonymous_object71, void *__anonymous_object72), __attribute__ ((unused)) void (*___destructor__PF_R9telt_type__1)(void *__anonymous_object73), __attribute__ ((unused)) void *(*___operator_preincr__PF14titerator_type_R14titerator_type__1)(void *__anonymous_object74), __attribute__ ((unused)) void *(*___operator_predecr__PF14titerator_type_R14titerator_type__1)(void *__anonymous_object75), __attribute__ ((unused)) signed int (*___operator_equal__PFi_14titerator_type14titerator_type__1)(void *__anonymous_object76, void *__anonymous_object77), __attribute__ ((unused)) signed int (*___operator_notequal__PFi_14titerator_type14titerator_type__1)(void *__anonymous_object78, void *__anonymous_object79), __attribute__ ((unused)) void *(*___operator_deref__PFR9telt_type_14titerator_type__1)(void *__anonymous_object80), void *__begin__14titerator_type_1, void *__end__14titerator_type_1, void (*__func__PF_9telt_type__1)(void *__anonymous_object81));
@@ -808,6 +121,6 @@
 struct _Istream_cstrC __cstr__F15s_Istream_cstrC_Pci__1(char *__anonymous_object1283, signed int __size__i_1);
 void *___operator_bitor__A0_1_0_0___fail__PFi_Pd0___eof__PFi_Pd0___open__PF_Pd0PCcPCc___close__PF_Pd0___read__PFPd0_Pd0PcUl___ungetc__PFPd0_Pd0c___fmt__PFi_Pd0PCc__FPd0_Pd015s_Istream_cstrC__1(__attribute__ ((unused)) signed int (*__fail__PFi_P7tistype__1)(void *__anonymous_object1284), __attribute__ ((unused)) signed int (*__eof__PFi_P7tistype__1)(void *__anonymous_object1285), __attribute__ ((unused)) void (*__open__PF_P7tistypePCcPCc__1)(void *__is__P7tistype_1, const char *__name__PCc_1, const char *__mode__PCc_1), __attribute__ ((unused)) void (*__close__PF_P7tistype__1)(void *__is__P7tistype_1), __attribute__ ((unused)) void *(*__read__PFP7tistype_P7tistypePcUl__1)(void *__anonymous_object1286, char *__anonymous_object1287, unsigned long int __anonymous_object1288), __attribute__ ((unused)) void *(*__ungetc__PFP7tistype_P7tistypec__1)(void *__anonymous_object1289, char __anonymous_object1290), __attribute__ ((unused)) signed int (*__fmt__PFi_P7tistypePCc__1)(void *__anonymous_object1291, const char *__fmt__PCc_1, ...), void *__anonymous_object1292, struct _Istream_cstrC __anonymous_object1293);
-enum __anonymous2 {
-    __sepSize__C13e__anonymous2_1 = ((signed int )16),
+enum __anonymous0 {
+    __sepSize__C13e__anonymous0_1 = ((signed int )16),
 };
 struct ofstream {
@@ -817,6 +130,6 @@
     _Bool __sawNL__b_1;
     const char *__sepCur__PCc_1;
-    char __separator__A0c_1[((unsigned long int )__sepSize__C13e__anonymous2_1)];
-    char __tupleSeparator__A0c_1[((unsigned long int )__sepSize__C13e__anonymous2_1)];
+    char __separator__A0c_1[((unsigned long int )__sepSize__C13e__anonymous0_1)];
+    char __tupleSeparator__A0c_1[((unsigned long int )__sepSize__C13e__anonymous0_1)];
 };
 static inline void ___constructor__F_R9sofstream_autogen___1(struct ofstream *___dst__R9sofstream_1);
@@ -831,14 +144,14 @@
     ((void)((*___dst__R9sofstream_1).__sepCur__PCc_1) /* ?{} */);
     {
-        signed int _index18 = ((signed int )0);
-        for (;(_index18<((signed int )__sepSize__C13e__anonymous2_1));((void)(++_index18))) {
-            ((void)((*((char *)(&(*___dst__R9sofstream_1).__separator__A0c_1[((signed long int )_index18)])))) /* ?{} */);
-        }
-
-    }
-    {
-        signed int _index19 = ((signed int )0);
-        for (;(_index19<((signed int )__sepSize__C13e__anonymous2_1));((void)(++_index19))) {
-            ((void)((*((char *)(&(*___dst__R9sofstream_1).__tupleSeparator__A0c_1[((signed long int )_index19)])))) /* ?{} */);
+        signed int _index0 = ((signed int )0);
+        for (;(_index0<((signed int )__sepSize__C13e__anonymous0_1));((void)(++_index0))) {
+            ((void)((*((char *)(&(*___dst__R9sofstream_1).__separator__A0c_1[((signed long int )_index0)])))) /* ?{} */);
+        }
+
+    }
+    {
+        signed int _index1 = ((signed int )0);
+        for (;(_index1<((signed int )__sepSize__C13e__anonymous0_1));((void)(++_index1))) {
+            ((void)((*((char *)(&(*___dst__R9sofstream_1).__tupleSeparator__A0c_1[((signed long int )_index1)])))) /* ?{} */);
         }
 
@@ -852,14 +165,14 @@
     ((void)((*___dst__R9sofstream_1).__sepCur__PCc_1=___src__9sofstream_1.__sepCur__PCc_1) /* ?{} */);
     {
-        signed int _index20 = ((signed int )0);
-        for (;(_index20<((signed int )__sepSize__C13e__anonymous2_1));((void)(++_index20))) {
-            ((void)((*((char *)(&(*___dst__R9sofstream_1).__separator__A0c_1[((signed long int )_index20)])))=___src__9sofstream_1.__separator__A0c_1[((signed long int )_index20)]) /* ?{} */);
-        }
-
-    }
-    {
-        signed int _index21 = ((signed int )0);
-        for (;(_index21<((signed int )__sepSize__C13e__anonymous2_1));((void)(++_index21))) {
-            ((void)((*((char *)(&(*___dst__R9sofstream_1).__tupleSeparator__A0c_1[((signed long int )_index21)])))=___src__9sofstream_1.__tupleSeparator__A0c_1[((signed long int )_index21)]) /* ?{} */);
+        signed int _index2 = ((signed int )0);
+        for (;(_index2<((signed int )__sepSize__C13e__anonymous0_1));((void)(++_index2))) {
+            ((void)((*((char *)(&(*___dst__R9sofstream_1).__separator__A0c_1[((signed long int )_index2)])))=___src__9sofstream_1.__separator__A0c_1[((signed long int )_index2)]) /* ?{} */);
+        }
+
+    }
+    {
+        signed int _index3 = ((signed int )0);
+        for (;(_index3<((signed int )__sepSize__C13e__anonymous0_1));((void)(++_index3))) {
+            ((void)((*((char *)(&(*___dst__R9sofstream_1).__tupleSeparator__A0c_1[((signed long int )_index3)])))=___src__9sofstream_1.__tupleSeparator__A0c_1[((signed long int )_index3)]) /* ?{} */);
         }
 
@@ -868,14 +181,14 @@
 static inline void ___destructor__F_R9sofstream_autogen___1(struct ofstream *___dst__R9sofstream_1){
     {
-        signed int _index22 = ((signed int )(((signed int )__sepSize__C13e__anonymous2_1)-1));
-        for (;(_index22>=0);((void)(--_index22))) {
-            ((void)((*((char *)(&(*___dst__R9sofstream_1).__tupleSeparator__A0c_1[((signed long int )_index22)])))) /* ^?{} */);
-        }
-
-    }
-    {
-        signed int _index23 = ((signed int )(((signed int )__sepSize__C13e__anonymous2_1)-1));
-        for (;(_index23>=0);((void)(--_index23))) {
-            ((void)((*((char *)(&(*___dst__R9sofstream_1).__separator__A0c_1[((signed long int )_index23)])))) /* ^?{} */);
+        signed int _index4 = ((signed int )(((signed int )__sepSize__C13e__anonymous0_1)-1));
+        for (;(_index4>=0);((void)(--_index4))) {
+            ((void)((*((char *)(&(*___dst__R9sofstream_1).__tupleSeparator__A0c_1[((signed long int )_index4)])))) /* ^?{} */);
+        }
+
+    }
+    {
+        signed int _index5 = ((signed int )(((signed int )__sepSize__C13e__anonymous0_1)-1));
+        for (;(_index5>=0);((void)(--_index5))) {
+            ((void)((*((char *)(&(*___dst__R9sofstream_1).__separator__A0c_1[((signed long int )_index5)])))) /* ^?{} */);
         }
 
@@ -895,15 +208,15 @@
     ((void)((*___dst__R9sofstream_1).__sepCur__PCc_1=___src__9sofstream_1.__sepCur__PCc_1));
     {
-        signed int _index24 = ((signed int )0);
-        for (;(_index24<((signed int )__sepSize__C13e__anonymous2_1));((void)(++_index24))) {
-            ((void)((*___dst__R9sofstream_1).__separator__A0c_1[((signed long int )_index24)]=___src__9sofstream_1.__separator__A0c_1[((signed long int )_index24)]));
-        }
-
-    }
-
-    {
-        signed int _index25 = ((signed int )0);
-        for (;(_index25<((signed int )__sepSize__C13e__anonymous2_1));((void)(++_index25))) {
-            ((void)((*___dst__R9sofstream_1).__tupleSeparator__A0c_1[((signed long int )_index25)]=___src__9sofstream_1.__tupleSeparator__A0c_1[((signed long int )_index25)]));
+        signed int _index6 = ((signed int )0);
+        for (;(_index6<((signed int )__sepSize__C13e__anonymous0_1));((void)(++_index6))) {
+            ((void)((*___dst__R9sofstream_1).__separator__A0c_1[((signed long int )_index6)]=___src__9sofstream_1.__separator__A0c_1[((signed long int )_index6)]));
+        }
+
+    }
+
+    {
+        signed int _index7 = ((signed int )0);
+        for (;(_index7<((signed int )__sepSize__C13e__anonymous0_1));((void)(++_index7))) {
+            ((void)((*___dst__R9sofstream_1).__tupleSeparator__A0c_1[((signed long int )_index7)]=___src__9sofstream_1.__tupleSeparator__A0c_1[((signed long int )_index7)]));
         }
 
@@ -920,14 +233,14 @@
     ((void)((*___dst__R9sofstream_1).__sepCur__PCc_1) /* ?{} */);
     {
-        signed int _index26 = ((signed int )0);
-        for (;(_index26<((signed int )__sepSize__C13e__anonymous2_1));((void)(++_index26))) {
-            ((void)((*((char *)(&(*___dst__R9sofstream_1).__separator__A0c_1[((signed long int )_index26)])))) /* ?{} */);
-        }
-
-    }
-    {
-        signed int _index27 = ((signed int )0);
-        for (;(_index27<((signed int )__sepSize__C13e__anonymous2_1));((void)(++_index27))) {
-            ((void)((*((char *)(&(*___dst__R9sofstream_1).__tupleSeparator__A0c_1[((signed long int )_index27)])))) /* ?{} */);
+        signed int _index8 = ((signed int )0);
+        for (;(_index8<((signed int )__sepSize__C13e__anonymous0_1));((void)(++_index8))) {
+            ((void)((*((char *)(&(*___dst__R9sofstream_1).__separator__A0c_1[((signed long int )_index8)])))) /* ?{} */);
+        }
+
+    }
+    {
+        signed int _index9 = ((signed int )0);
+        for (;(_index9<((signed int )__sepSize__C13e__anonymous0_1));((void)(++_index9))) {
+            ((void)((*((char *)(&(*___dst__R9sofstream_1).__tupleSeparator__A0c_1[((signed long int )_index9)])))) /* ?{} */);
         }
 
@@ -941,14 +254,14 @@
     ((void)((*___dst__R9sofstream_1).__sepCur__PCc_1) /* ?{} */);
     {
-        signed int _index28 = ((signed int )0);
-        for (;(_index28<((signed int )__sepSize__C13e__anonymous2_1));((void)(++_index28))) {
-            ((void)((*((char *)(&(*___dst__R9sofstream_1).__separator__A0c_1[((signed long int )_index28)])))) /* ?{} */);
-        }
-
-    }
-    {
-        signed int _index29 = ((signed int )0);
-        for (;(_index29<((signed int )__sepSize__C13e__anonymous2_1));((void)(++_index29))) {
-            ((void)((*((char *)(&(*___dst__R9sofstream_1).__tupleSeparator__A0c_1[((signed long int )_index29)])))) /* ?{} */);
+        signed int _index10 = ((signed int )0);
+        for (;(_index10<((signed int )__sepSize__C13e__anonymous0_1));((void)(++_index10))) {
+            ((void)((*((char *)(&(*___dst__R9sofstream_1).__separator__A0c_1[((signed long int )_index10)])))) /* ?{} */);
+        }
+
+    }
+    {
+        signed int _index11 = ((signed int )0);
+        for (;(_index11<((signed int )__sepSize__C13e__anonymous0_1));((void)(++_index11))) {
+            ((void)((*((char *)(&(*___dst__R9sofstream_1).__tupleSeparator__A0c_1[((signed long int )_index11)])))) /* ?{} */);
         }
 
@@ -962,14 +275,14 @@
     ((void)((*___dst__R9sofstream_1).__sepCur__PCc_1) /* ?{} */);
     {
-        signed int _index30 = ((signed int )0);
-        for (;(_index30<((signed int )__sepSize__C13e__anonymous2_1));((void)(++_index30))) {
-            ((void)((*((char *)(&(*___dst__R9sofstream_1).__separator__A0c_1[((signed long int )_index30)])))) /* ?{} */);
-        }
-
-    }
-    {
-        signed int _index31 = ((signed int )0);
-        for (;(_index31<((signed int )__sepSize__C13e__anonymous2_1));((void)(++_index31))) {
-            ((void)((*((char *)(&(*___dst__R9sofstream_1).__tupleSeparator__A0c_1[((signed long int )_index31)])))) /* ?{} */);
+        signed int _index12 = ((signed int )0);
+        for (;(_index12<((signed int )__sepSize__C13e__anonymous0_1));((void)(++_index12))) {
+            ((void)((*((char *)(&(*___dst__R9sofstream_1).__separator__A0c_1[((signed long int )_index12)])))) /* ?{} */);
+        }
+
+    }
+    {
+        signed int _index13 = ((signed int )0);
+        for (;(_index13<((signed int )__sepSize__C13e__anonymous0_1));((void)(++_index13))) {
+            ((void)((*((char *)(&(*___dst__R9sofstream_1).__tupleSeparator__A0c_1[((signed long int )_index13)])))) /* ?{} */);
         }
 
@@ -983,14 +296,14 @@
     ((void)((*___dst__R9sofstream_1).__sepCur__PCc_1) /* ?{} */);
     {
-        signed int _index32 = ((signed int )0);
-        for (;(_index32<((signed int )__sepSize__C13e__anonymous2_1));((void)(++_index32))) {
-            ((void)((*((char *)(&(*___dst__R9sofstream_1).__separator__A0c_1[((signed long int )_index32)])))) /* ?{} */);
-        }
-
-    }
-    {
-        signed int _index33 = ((signed int )0);
-        for (;(_index33<((signed int )__sepSize__C13e__anonymous2_1));((void)(++_index33))) {
-            ((void)((*((char *)(&(*___dst__R9sofstream_1).__tupleSeparator__A0c_1[((signed long int )_index33)])))) /* ?{} */);
+        signed int _index14 = ((signed int )0);
+        for (;(_index14<((signed int )__sepSize__C13e__anonymous0_1));((void)(++_index14))) {
+            ((void)((*((char *)(&(*___dst__R9sofstream_1).__separator__A0c_1[((signed long int )_index14)])))) /* ?{} */);
+        }
+
+    }
+    {
+        signed int _index15 = ((signed int )0);
+        for (;(_index15<((signed int )__sepSize__C13e__anonymous0_1));((void)(++_index15))) {
+            ((void)((*((char *)(&(*___dst__R9sofstream_1).__tupleSeparator__A0c_1[((signed long int )_index15)])))) /* ?{} */);
         }
 
@@ -1004,19 +317,19 @@
     ((void)((*___dst__R9sofstream_1).__sepCur__PCc_1=__sepCur__PCc_1) /* ?{} */);
     {
-        signed int _index34 = ((signed int )0);
-        for (;(_index34<((signed int )__sepSize__C13e__anonymous2_1));((void)(++_index34))) {
-            ((void)((*((char *)(&(*___dst__R9sofstream_1).__separator__A0c_1[((signed long int )_index34)])))) /* ?{} */);
-        }
-
-    }
-    {
-        signed int _index35 = ((signed int )0);
-        for (;(_index35<((signed int )__sepSize__C13e__anonymous2_1));((void)(++_index35))) {
-            ((void)((*((char *)(&(*___dst__R9sofstream_1).__tupleSeparator__A0c_1[((signed long int )_index35)])))) /* ?{} */);
-        }
-
-    }
-}
-static inline void ___constructor__F_R9sofstreamPvbbbPCcA0c_autogen___1(struct ofstream *___dst__R9sofstream_1, void *__file__Pv_1, _Bool __sepDefault__b_1, _Bool __sepOnOff__b_1, _Bool __sawNL__b_1, const char *__sepCur__PCc_1, char __separator__A0c_1[((unsigned long int )__sepSize__C13e__anonymous2_1)]){
+        signed int _index16 = ((signed int )0);
+        for (;(_index16<((signed int )__sepSize__C13e__anonymous0_1));((void)(++_index16))) {
+            ((void)((*((char *)(&(*___dst__R9sofstream_1).__separator__A0c_1[((signed long int )_index16)])))) /* ?{} */);
+        }
+
+    }
+    {
+        signed int _index17 = ((signed int )0);
+        for (;(_index17<((signed int )__sepSize__C13e__anonymous0_1));((void)(++_index17))) {
+            ((void)((*((char *)(&(*___dst__R9sofstream_1).__tupleSeparator__A0c_1[((signed long int )_index17)])))) /* ?{} */);
+        }
+
+    }
+}
+static inline void ___constructor__F_R9sofstreamPvbbbPCcA0c_autogen___1(struct ofstream *___dst__R9sofstream_1, void *__file__Pv_1, _Bool __sepDefault__b_1, _Bool __sepOnOff__b_1, _Bool __sawNL__b_1, const char *__sepCur__PCc_1, char __separator__A0c_1[((unsigned long int )__sepSize__C13e__anonymous0_1)]){
     ((void)((*___dst__R9sofstream_1).__file__Pv_1=__file__Pv_1) /* ?{} */);
     ((void)((*___dst__R9sofstream_1).__sepDefault__b_1=__sepDefault__b_1) /* ?{} */);
@@ -1025,19 +338,19 @@
     ((void)((*___dst__R9sofstream_1).__sepCur__PCc_1=__sepCur__PCc_1) /* ?{} */);
     {
-        signed int _index36 = ((signed int )0);
-        for (;(_index36<((signed int )__sepSize__C13e__anonymous2_1));((void)(++_index36))) {
-            ((void)((*((char *)(&(*___dst__R9sofstream_1).__separator__A0c_1[((signed long int )_index36)])))=__separator__A0c_1[((signed long int )_index36)]) /* ?{} */);
-        }
-
-    }
-    {
-        signed int _index37 = ((signed int )0);
-        for (;(_index37<((signed int )__sepSize__C13e__anonymous2_1));((void)(++_index37))) {
-            ((void)((*((char *)(&(*___dst__R9sofstream_1).__tupleSeparator__A0c_1[((signed long int )_index37)])))) /* ?{} */);
-        }
-
-    }
-}
-static inline void ___constructor__F_R9sofstreamPvbbbPCcA0cA0c_autogen___1(struct ofstream *___dst__R9sofstream_1, void *__file__Pv_1, _Bool __sepDefault__b_1, _Bool __sepOnOff__b_1, _Bool __sawNL__b_1, const char *__sepCur__PCc_1, char __separator__A0c_1[((unsigned long int )__sepSize__C13e__anonymous2_1)], char __tupleSeparator__A0c_1[((unsigned long int )__sepSize__C13e__anonymous2_1)]){
+        signed int _index18 = ((signed int )0);
+        for (;(_index18<((signed int )__sepSize__C13e__anonymous0_1));((void)(++_index18))) {
+            ((void)((*((char *)(&(*___dst__R9sofstream_1).__separator__A0c_1[((signed long int )_index18)])))=__separator__A0c_1[((signed long int )_index18)]) /* ?{} */);
+        }
+
+    }
+    {
+        signed int _index19 = ((signed int )0);
+        for (;(_index19<((signed int )__sepSize__C13e__anonymous0_1));((void)(++_index19))) {
+            ((void)((*((char *)(&(*___dst__R9sofstream_1).__tupleSeparator__A0c_1[((signed long int )_index19)])))) /* ?{} */);
+        }
+
+    }
+}
+static inline void ___constructor__F_R9sofstreamPvbbbPCcA0cA0c_autogen___1(struct ofstream *___dst__R9sofstream_1, void *__file__Pv_1, _Bool __sepDefault__b_1, _Bool __sepOnOff__b_1, _Bool __sawNL__b_1, const char *__sepCur__PCc_1, char __separator__A0c_1[((unsigned long int )__sepSize__C13e__anonymous0_1)], char __tupleSeparator__A0c_1[((unsigned long int )__sepSize__C13e__anonymous0_1)]){
     ((void)((*___dst__R9sofstream_1).__file__Pv_1=__file__Pv_1) /* ?{} */);
     ((void)((*___dst__R9sofstream_1).__sepDefault__b_1=__sepDefault__b_1) /* ?{} */);
@@ -1046,14 +359,14 @@
     ((void)((*___dst__R9sofstream_1).__sepCur__PCc_1=__sepCur__PCc_1) /* ?{} */);
     {
-        signed int _index38 = ((signed int )0);
-        for (;(_index38<((signed int )__sepSize__C13e__anonymous2_1));((void)(++_index38))) {
-            ((void)((*((char *)(&(*___dst__R9sofstream_1).__separator__A0c_1[((signed long int )_index38)])))=__separator__A0c_1[((signed long int )_index38)]) /* ?{} */);
-        }
-
-    }
-    {
-        signed int _index39 = ((signed int )0);
-        for (;(_index39<((signed int )__sepSize__C13e__anonymous2_1));((void)(++_index39))) {
-            ((void)((*((char *)(&(*___dst__R9sofstream_1).__tupleSeparator__A0c_1[((signed long int )_index39)])))=__tupleSeparator__A0c_1[((signed long int )_index39)]) /* ?{} */);
+        signed int _index20 = ((signed int )0);
+        for (;(_index20<((signed int )__sepSize__C13e__anonymous0_1));((void)(++_index20))) {
+            ((void)((*((char *)(&(*___dst__R9sofstream_1).__separator__A0c_1[((signed long int )_index20)])))=__separator__A0c_1[((signed long int )_index20)]) /* ?{} */);
+        }
+
+    }
+    {
+        signed int _index21 = ((signed int )0);
+        for (;(_index21<((signed int )__sepSize__C13e__anonymous0_1));((void)(++_index21))) {
+            ((void)((*((char *)(&(*___dst__R9sofstream_1).__tupleSeparator__A0c_1[((signed long int )_index21)])))=__tupleSeparator__A0c_1[((signed long int )_index21)]) /* ?{} */);
         }
 
@@ -1118,74 +431,74 @@
 extern struct ifstream *__sin__P9sifstream_1;
 void __f__F_c__1(char __v__c_1){
-    struct ofstream *_tmp_cp_ret46;
-    struct ofstream *_tmp_cp_ret47;
-    struct ofstream *_tmp_cp_ret48;
+    struct ofstream *_tmp_cp_ret0;
+    struct ofstream *_tmp_cp_ret1;
+    struct ofstream *_tmp_cp_ret2;
     __attribute__ ((unused)) struct ofstream *_thunk0(struct ofstream *_p0){
         return __endl__A0_1_0_0___sepPrt__PFb_Pd0___sepReset__PF_Pd0___sepReset__PF_Pd0b___sepGetCur__PFPCc_Pd0___sepSetCur__PF_Pd0PCc___getNL__PFb_Pd0___setNL__PF_Pd0b___sepOn__PF_Pd0___sepOff__PF_Pd0___sepDisable__PFb_Pd0___sepEnable__PFb_Pd0___sepGet__PFPCc_Pd0___sepSet__PF_Pd0PCc___sepGetTuple__PFPCc_Pd0___sepSetTuple__PF_Pd0PCc___fail__PFi_Pd0___flush__PFi_Pd0___open__PF_Pd0PCcPCc___close__PF_Pd0___write__PFPd0_Pd0PCcUl___fmt__PFi_Pd0PCc__FPd0_Pd0__1(((_Bool (*)(void *__anonymous_object1322))__sepPrt__Fb_P9sofstream__1), ((void (*)(void *__anonymous_object1323))__sepReset__F_P9sofstream__1), ((void (*)(void *__anonymous_object1324, _Bool __anonymous_object1325))__sepReset__F_P9sofstreamb__1), ((const char *(*)(void *__anonymous_object1326))__sepGetCur__FPCc_P9sofstream__1), ((void (*)(void *__anonymous_object1327, const char *__anonymous_object1328))__sepSetCur__F_P9sofstreamPCc__1), ((_Bool (*)(void *__anonymous_object1329))__getNL__Fb_P9sofstream__1), ((void (*)(void *__anonymous_object1330, _Bool __anonymous_object1331))__setNL__F_P9sofstreamb__1), ((void (*)(void *__anonymous_object1332))__sepOn__F_P9sofstream__1), ((void (*)(void *__anonymous_object1333))__sepOff__F_P9sofstream__1), ((_Bool (*)(void *__anonymous_object1334))__sepDisable__Fb_P9sofstream__1), ((_Bool (*)(void *__anonymous_object1335))__sepEnable__Fb_P9sofstream__1), ((const char *(*)(void *__anonymous_object1336))__sepGet__FPCc_P9sofstream__1), ((void (*)(void *__anonymous_object1337, const char *__anonymous_object1338))__sepSet__F_P9sofstreamPCc__1), ((const char *(*)(void *__anonymous_object1339))__sepGetTuple__FPCc_P9sofstream__1), ((void (*)(void *__anonymous_object1340, const char *__anonymous_object1341))__sepSetTuple__F_P9sofstreamPCc__1), ((signed int (*)(void *__anonymous_object1342))__fail__Fi_P9sofstream__1), ((signed int (*)(void *__anonymous_object1343))__flush__Fi_P9sofstream__1), ((void (*)(void *__os__P7tostype_1, const char *__name__PCc_1, const char *__mode__PCc_1))__open__F_P9sofstreamPCcPCc__1), ((void (*)(void *__os__P7tostype_1))__close__F_P9sofstream__1), ((void *(*)(void *__anonymous_object1344, const char *__anonymous_object1345, unsigned long int __anonymous_object1346))__write__FP9sofstream_P9sofstreamPCcUl__1), ((signed int (*)(void *__anonymous_object1347, const char *__fmt__PCc_1, ...))__fmt__Fi_P9sofstreamPCc__1), _p0);
     }
-    ((void)(((void)(_tmp_cp_ret48=___operator_bitor__A0_1_0_0___sepPrt__PFb_Pd0___sepReset__PF_Pd0___sepReset__PF_Pd0b___sepGetCur__PFPCc_Pd0___sepSetCur__PF_Pd0PCc___getNL__PFb_Pd0___setNL__PF_Pd0b___sepOn__PF_Pd0___sepOff__PF_Pd0___sepDisable__PFb_Pd0___sepEnable__PFb_Pd0___sepGet__PFPCc_Pd0___sepSet__PF_Pd0PCc___sepGetTuple__PFPCc_Pd0___sepSetTuple__PF_Pd0PCc___fail__PFi_Pd0___flush__PFi_Pd0___open__PF_Pd0PCcPCc___close__PF_Pd0___write__PFPd0_Pd0PCcUl___fmt__PFi_Pd0PCc__FPd0_Pd0PFPd0_Pd0___1(((_Bool (*)(void *__anonymous_object1348))__sepPrt__Fb_P9sofstream__1), ((void (*)(void *__anonymous_object1349))__sepReset__F_P9sofstream__1), ((void (*)(void *__anonymous_object1350, _Bool __anonymous_object1351))__sepReset__F_P9sofstreamb__1), ((const char *(*)(void *__anonymous_object1352))__sepGetCur__FPCc_P9sofstream__1), ((void (*)(void *__anonymous_object1353, const char *__anonymous_object1354))__sepSetCur__F_P9sofstreamPCc__1), ((_Bool (*)(void *__anonymous_object1355))__getNL__Fb_P9sofstream__1), ((void (*)(void *__anonymous_object1356, _Bool __anonymous_object1357))__setNL__F_P9sofstreamb__1), ((void (*)(void *__anonymous_object1358))__sepOn__F_P9sofstream__1), ((void (*)(void *__anonymous_object1359))__sepOff__F_P9sofstream__1), ((_Bool (*)(void *__anonymous_object1360))__sepDisable__Fb_P9sofstream__1), ((_Bool (*)(void *__anonymous_object1361))__sepEnable__Fb_P9sofstream__1), ((const char *(*)(void *__anonymous_object1362))__sepGet__FPCc_P9sofstream__1), ((void (*)(void *__anonymous_object1363, const char *__anonymous_object1364))__sepSet__F_P9sofstreamPCc__1), ((const char *(*)(void *__anonymous_object1365))__sepGetTuple__FPCc_P9sofstream__1), ((void (*)(void *__anonymous_object1366, const char *__anonymous_object1367))__sepSetTuple__F_P9sofstreamPCc__1), ((signed int (*)(void *__anonymous_object1368))__fail__Fi_P9sofstream__1), ((signed int (*)(void *__anonymous_object1369))__flush__Fi_P9sofstream__1), ((void (*)(void *__os__P7tostype_1, const char *__name__PCc_1, const char *__mode__PCc_1))__open__F_P9sofstreamPCcPCc__1), ((void (*)(void *__os__P7tostype_1))__close__F_P9sofstream__1), ((void *(*)(void *__anonymous_object1370, const char *__anonymous_object1371, unsigned long int __anonymous_object1372))__write__FP9sofstream_P9sofstreamPCcUl__1), ((signed int (*)(void *__anonymous_object1373, const char *__fmt__PCc_1, ...))__fmt__Fi_P9sofstreamPCc__1), (((void)(_tmp_cp_ret47=___operator_bitor__A0_1_0_0___sepPrt__PFb_Pd0___sepReset__PF_Pd0___sepReset__PF_Pd0b___sepGetCur__PFPCc_Pd0___sepSetCur__PF_Pd0PCc___getNL__PFb_Pd0___setNL__PF_Pd0b___sepOn__PF_Pd0___sepOff__PF_Pd0___sepDisable__PFb_Pd0___sepEnable__PFb_Pd0___sepGet__PFPCc_Pd0___sepSet__PF_Pd0PCc___sepGetTuple__PFPCc_Pd0___sepSetTuple__PF_Pd0PCc___fail__PFi_Pd0___flush__PFi_Pd0___open__PF_Pd0PCcPCc___close__PF_Pd0___write__PFPd0_Pd0PCcUl___fmt__PFi_Pd0PCc__FPd0_Pd0c__1(((_Bool (*)(void *__anonymous_object1374))__sepPrt__Fb_P9sofstream__1), ((void (*)(void *__anonymous_object1375))__sepReset__F_P9sofstream__1), ((void (*)(void *__anonymous_object1376, _Bool __anonymous_object1377))__sepReset__F_P9sofstreamb__1), ((const char *(*)(void *__anonymous_object1378))__sepGetCur__FPCc_P9sofstream__1), ((void (*)(void *__anonymous_object1379, const char *__anonymous_object1380))__sepSetCur__F_P9sofstreamPCc__1), ((_Bool (*)(void *__anonymous_object1381))__getNL__Fb_P9sofstream__1), ((void (*)(void *__anonymous_object1382, _Bool __anonymous_object1383))__setNL__F_P9sofstreamb__1), ((void (*)(void *__anonymous_object1384))__sepOn__F_P9sofstream__1), ((void (*)(void *__anonymous_object1385))__sepOff__F_P9sofstream__1), ((_Bool (*)(void *__anonymous_object1386))__sepDisable__Fb_P9sofstream__1), ((_Bool (*)(void *__anonymous_object1387))__sepEnable__Fb_P9sofstream__1), ((const char *(*)(void *__anonymous_object1388))__sepGet__FPCc_P9sofstream__1), ((void (*)(void *__anonymous_object1389, const char *__anonymous_object1390))__sepSet__F_P9sofstreamPCc__1), ((const char *(*)(void *__anonymous_object1391))__sepGetTuple__FPCc_P9sofstream__1), ((void (*)(void *__anonymous_object1392, const char *__anonymous_object1393))__sepSetTuple__F_P9sofstreamPCc__1), ((signed int (*)(void *__anonymous_object1394))__fail__Fi_P9sofstream__1), ((signed int (*)(void *__anonymous_object1395))__flush__Fi_P9sofstream__1), ((void (*)(void *__os__P7tostype_1, const char *__name__PCc_1, const char *__mode__PCc_1))__open__F_P9sofstreamPCcPCc__1), ((void (*)(void *__os__P7tostype_1))__close__F_P9sofstream__1), ((void *(*)(void *__anonymous_object1396, const char *__anonymous_object1397, unsigned long int __anonymous_object1398))__write__FP9sofstream_P9sofstreamPCcUl__1), ((signed int (*)(void *__anonymous_object1399, const char *__fmt__PCc_1, ...))__fmt__Fi_P9sofstreamPCc__1), (((void)(_tmp_cp_ret46=___operator_bitor__A0_1_0_0___sepPrt__PFb_Pd0___sepReset__PF_Pd0___sepReset__PF_Pd0b___sepGetCur__PFPCc_Pd0___sepSetCur__PF_Pd0PCc___getNL__PFb_Pd0___setNL__PF_Pd0b___sepOn__PF_Pd0___sepOff__PF_Pd0___sepDisable__PFb_Pd0___sepEnable__PFb_Pd0___sepGet__PFPCc_Pd0___sepSet__PF_Pd0PCc___sepGetTuple__PFPCc_Pd0___sepSetTuple__PF_Pd0PCc___fail__PFi_Pd0___flush__PFi_Pd0___open__PF_Pd0PCcPCc___close__PF_Pd0___write__PFPd0_Pd0PCcUl___fmt__PFi_Pd0PCc__FPd0_Pd0PCc__1(((_Bool (*)(void *__anonymous_object1400))__sepPrt__Fb_P9sofstream__1), ((void (*)(void *__anonymous_object1401))__sepReset__F_P9sofstream__1), ((void (*)(void *__anonymous_object1402, _Bool __anonymous_object1403))__sepReset__F_P9sofstreamb__1), ((const char *(*)(void *__anonymous_object1404))__sepGetCur__FPCc_P9sofstream__1), ((void (*)(void *__anonymous_object1405, const char *__anonymous_object1406))__sepSetCur__F_P9sofstreamPCc__1), ((_Bool (*)(void *__anonymous_object1407))__getNL__Fb_P9sofstream__1), ((void (*)(void *__anonymous_object1408, _Bool __anonymous_object1409))__setNL__F_P9sofstreamb__1), ((void (*)(void *__anonymous_object1410))__sepOn__F_P9sofstream__1), ((void (*)(void *__anonymous_object1411))__sepOff__F_P9sofstream__1), ((_Bool (*)(void *__anonymous_object1412))__sepDisable__Fb_P9sofstream__1), ((_Bool (*)(void *__anonymous_object1413))__sepEnable__Fb_P9sofstream__1), ((const char *(*)(void *__anonymous_object1414))__sepGet__FPCc_P9sofstream__1), ((void (*)(void *__anonymous_object1415, const char *__anonymous_object1416))__sepSet__F_P9sofstreamPCc__1), ((const char *(*)(void *__anonymous_object1417))__sepGetTuple__FPCc_P9sofstream__1), ((void (*)(void *__anonymous_object1418, const char *__anonymous_object1419))__sepSetTuple__F_P9sofstreamPCc__1), ((signed int (*)(void *__anonymous_object1420))__fail__Fi_P9sofstream__1), ((signed int (*)(void *__anonymous_object1421))__flush__Fi_P9sofstream__1), ((void (*)(void *__os__P7tostype_1, const char *__name__PCc_1, const char *__mode__PCc_1))__open__F_P9sofstreamPCcPCc__1), ((void (*)(void *__os__P7tostype_1))__close__F_P9sofstream__1), ((void *(*)(void *__anonymous_object1422, const char *__anonymous_object1423, unsigned long int __anonymous_object1424))__write__FP9sofstream_P9sofstreamPCcUl__1), ((signed int (*)(void *__anonymous_object1425, const char *__fmt__PCc_1, ...))__fmt__Fi_P9sofstreamPCc__1), __sout__P9sofstream_1, "char "))) , _tmp_cp_ret46), __v__c_1))) , _tmp_cp_ret47), ((void *(*)(void *__anonymous_object1426))(&_thunk0))))) , _tmp_cp_ret48));
-    ((void)(_tmp_cp_ret46) /* ^?{} */);
-    ((void)(_tmp_cp_ret47) /* ^?{} */);
-    ((void)(_tmp_cp_ret48) /* ^?{} */);
+    ((void)(((void)(_tmp_cp_ret2=___operator_bitor__A0_1_0_0___sepPrt__PFb_Pd0___sepReset__PF_Pd0___sepReset__PF_Pd0b___sepGetCur__PFPCc_Pd0___sepSetCur__PF_Pd0PCc___getNL__PFb_Pd0___setNL__PF_Pd0b___sepOn__PF_Pd0___sepOff__PF_Pd0___sepDisable__PFb_Pd0___sepEnable__PFb_Pd0___sepGet__PFPCc_Pd0___sepSet__PF_Pd0PCc___sepGetTuple__PFPCc_Pd0___sepSetTuple__PF_Pd0PCc___fail__PFi_Pd0___flush__PFi_Pd0___open__PF_Pd0PCcPCc___close__PF_Pd0___write__PFPd0_Pd0PCcUl___fmt__PFi_Pd0PCc__FPd0_Pd0PFPd0_Pd0___1(((_Bool (*)(void *__anonymous_object1348))__sepPrt__Fb_P9sofstream__1), ((void (*)(void *__anonymous_object1349))__sepReset__F_P9sofstream__1), ((void (*)(void *__anonymous_object1350, _Bool __anonymous_object1351))__sepReset__F_P9sofstreamb__1), ((const char *(*)(void *__anonymous_object1352))__sepGetCur__FPCc_P9sofstream__1), ((void (*)(void *__anonymous_object1353, const char *__anonymous_object1354))__sepSetCur__F_P9sofstreamPCc__1), ((_Bool (*)(void *__anonymous_object1355))__getNL__Fb_P9sofstream__1), ((void (*)(void *__anonymous_object1356, _Bool __anonymous_object1357))__setNL__F_P9sofstreamb__1), ((void (*)(void *__anonymous_object1358))__sepOn__F_P9sofstream__1), ((void (*)(void *__anonymous_object1359))__sepOff__F_P9sofstream__1), ((_Bool (*)(void *__anonymous_object1360))__sepDisable__Fb_P9sofstream__1), ((_Bool (*)(void *__anonymous_object1361))__sepEnable__Fb_P9sofstream__1), ((const char *(*)(void *__anonymous_object1362))__sepGet__FPCc_P9sofstream__1), ((void (*)(void *__anonymous_object1363, const char *__anonymous_object1364))__sepSet__F_P9sofstreamPCc__1), ((const char *(*)(void *__anonymous_object1365))__sepGetTuple__FPCc_P9sofstream__1), ((void (*)(void *__anonymous_object1366, const char *__anonymous_object1367))__sepSetTuple__F_P9sofstreamPCc__1), ((signed int (*)(void *__anonymous_object1368))__fail__Fi_P9sofstream__1), ((signed int (*)(void *__anonymous_object1369))__flush__Fi_P9sofstream__1), ((void (*)(void *__os__P7tostype_1, const char *__name__PCc_1, const char *__mode__PCc_1))__open__F_P9sofstreamPCcPCc__1), ((void (*)(void *__os__P7tostype_1))__close__F_P9sofstream__1), ((void *(*)(void *__anonymous_object1370, const char *__anonymous_object1371, unsigned long int __anonymous_object1372))__write__FP9sofstream_P9sofstreamPCcUl__1), ((signed int (*)(void *__anonymous_object1373, const char *__fmt__PCc_1, ...))__fmt__Fi_P9sofstreamPCc__1), (((void)(_tmp_cp_ret1=___operator_bitor__A0_1_0_0___sepPrt__PFb_Pd0___sepReset__PF_Pd0___sepReset__PF_Pd0b___sepGetCur__PFPCc_Pd0___sepSetCur__PF_Pd0PCc___getNL__PFb_Pd0___setNL__PF_Pd0b___sepOn__PF_Pd0___sepOff__PF_Pd0___sepDisable__PFb_Pd0___sepEnable__PFb_Pd0___sepGet__PFPCc_Pd0___sepSet__PF_Pd0PCc___sepGetTuple__PFPCc_Pd0___sepSetTuple__PF_Pd0PCc___fail__PFi_Pd0___flush__PFi_Pd0___open__PF_Pd0PCcPCc___close__PF_Pd0___write__PFPd0_Pd0PCcUl___fmt__PFi_Pd0PCc__FPd0_Pd0c__1(((_Bool (*)(void *__anonymous_object1374))__sepPrt__Fb_P9sofstream__1), ((void (*)(void *__anonymous_object1375))__sepReset__F_P9sofstream__1), ((void (*)(void *__anonymous_object1376, _Bool __anonymous_object1377))__sepReset__F_P9sofstreamb__1), ((const char *(*)(void *__anonymous_object1378))__sepGetCur__FPCc_P9sofstream__1), ((void (*)(void *__anonymous_object1379, const char *__anonymous_object1380))__sepSetCur__F_P9sofstreamPCc__1), ((_Bool (*)(void *__anonymous_object1381))__getNL__Fb_P9sofstream__1), ((void (*)(void *__anonymous_object1382, _Bool __anonymous_object1383))__setNL__F_P9sofstreamb__1), ((void (*)(void *__anonymous_object1384))__sepOn__F_P9sofstream__1), ((void (*)(void *__anonymous_object1385))__sepOff__F_P9sofstream__1), ((_Bool (*)(void *__anonymous_object1386))__sepDisable__Fb_P9sofstream__1), ((_Bool (*)(void *__anonymous_object1387))__sepEnable__Fb_P9sofstream__1), ((const char *(*)(void *__anonymous_object1388))__sepGet__FPCc_P9sofstream__1), ((void (*)(void *__anonymous_object1389, const char *__anonymous_object1390))__sepSet__F_P9sofstreamPCc__1), ((const char *(*)(void *__anonymous_object1391))__sepGetTuple__FPCc_P9sofstream__1), ((void (*)(void *__anonymous_object1392, const char *__anonymous_object1393))__sepSetTuple__F_P9sofstreamPCc__1), ((signed int (*)(void *__anonymous_object1394))__fail__Fi_P9sofstream__1), ((signed int (*)(void *__anonymous_object1395))__flush__Fi_P9sofstream__1), ((void (*)(void *__os__P7tostype_1, const char *__name__PCc_1, const char *__mode__PCc_1))__open__F_P9sofstreamPCcPCc__1), ((void (*)(void *__os__P7tostype_1))__close__F_P9sofstream__1), ((void *(*)(void *__anonymous_object1396, const char *__anonymous_object1397, unsigned long int __anonymous_object1398))__write__FP9sofstream_P9sofstreamPCcUl__1), ((signed int (*)(void *__anonymous_object1399, const char *__fmt__PCc_1, ...))__fmt__Fi_P9sofstreamPCc__1), (((void)(_tmp_cp_ret0=___operator_bitor__A0_1_0_0___sepPrt__PFb_Pd0___sepReset__PF_Pd0___sepReset__PF_Pd0b___sepGetCur__PFPCc_Pd0___sepSetCur__PF_Pd0PCc___getNL__PFb_Pd0___setNL__PF_Pd0b___sepOn__PF_Pd0___sepOff__PF_Pd0___sepDisable__PFb_Pd0___sepEnable__PFb_Pd0___sepGet__PFPCc_Pd0___sepSet__PF_Pd0PCc___sepGetTuple__PFPCc_Pd0___sepSetTuple__PF_Pd0PCc___fail__PFi_Pd0___flush__PFi_Pd0___open__PF_Pd0PCcPCc___close__PF_Pd0___write__PFPd0_Pd0PCcUl___fmt__PFi_Pd0PCc__FPd0_Pd0PCc__1(((_Bool (*)(void *__anonymous_object1400))__sepPrt__Fb_P9sofstream__1), ((void (*)(void *__anonymous_object1401))__sepReset__F_P9sofstream__1), ((void (*)(void *__anonymous_object1402, _Bool __anonymous_object1403))__sepReset__F_P9sofstreamb__1), ((const char *(*)(void *__anonymous_object1404))__sepGetCur__FPCc_P9sofstream__1), ((void (*)(void *__anonymous_object1405, const char *__anonymous_object1406))__sepSetCur__F_P9sofstreamPCc__1), ((_Bool (*)(void *__anonymous_object1407))__getNL__Fb_P9sofstream__1), ((void (*)(void *__anonymous_object1408, _Bool __anonymous_object1409))__setNL__F_P9sofstreamb__1), ((void (*)(void *__anonymous_object1410))__sepOn__F_P9sofstream__1), ((void (*)(void *__anonymous_object1411))__sepOff__F_P9sofstream__1), ((_Bool (*)(void *__anonymous_object1412))__sepDisable__Fb_P9sofstream__1), ((_Bool (*)(void *__anonymous_object1413))__sepEnable__Fb_P9sofstream__1), ((const char *(*)(void *__anonymous_object1414))__sepGet__FPCc_P9sofstream__1), ((void (*)(void *__anonymous_object1415, const char *__anonymous_object1416))__sepSet__F_P9sofstreamPCc__1), ((const char *(*)(void *__anonymous_object1417))__sepGetTuple__FPCc_P9sofstream__1), ((void (*)(void *__anonymous_object1418, const char *__anonymous_object1419))__sepSetTuple__F_P9sofstreamPCc__1), ((signed int (*)(void *__anonymous_object1420))__fail__Fi_P9sofstream__1), ((signed int (*)(void *__anonymous_object1421))__flush__Fi_P9sofstream__1), ((void (*)(void *__os__P7tostype_1, const char *__name__PCc_1, const char *__mode__PCc_1))__open__F_P9sofstreamPCcPCc__1), ((void (*)(void *__os__P7tostype_1))__close__F_P9sofstream__1), ((void *(*)(void *__anonymous_object1422, const char *__anonymous_object1423, unsigned long int __anonymous_object1424))__write__FP9sofstream_P9sofstreamPCcUl__1), ((signed int (*)(void *__anonymous_object1425, const char *__fmt__PCc_1, ...))__fmt__Fi_P9sofstreamPCc__1), __sout__P9sofstream_1, "char "))) , _tmp_cp_ret0), __v__c_1))) , _tmp_cp_ret1), ((void *(*)(void *__anonymous_object1426))(&_thunk0))))) , _tmp_cp_ret2));
+    ((void)(_tmp_cp_ret0) /* ^?{} */);
+    ((void)(_tmp_cp_ret1) /* ^?{} */);
+    ((void)(_tmp_cp_ret2) /* ^?{} */);
 }
 void __f__F_Sc__1(signed char __v__Sc_1){
-    struct ofstream *_tmp_cp_ret49;
-    struct ofstream *_tmp_cp_ret50;
-    struct ofstream *_tmp_cp_ret51;
+    struct ofstream *_tmp_cp_ret3;
+    struct ofstream *_tmp_cp_ret4;
+    struct ofstream *_tmp_cp_ret5;
     __attribute__ ((unused)) struct ofstream *_thunk1(struct ofstream *_p0){
         return __endl__A0_1_0_0___sepPrt__PFb_Pd0___sepReset__PF_Pd0___sepReset__PF_Pd0b___sepGetCur__PFPCc_Pd0___sepSetCur__PF_Pd0PCc___getNL__PFb_Pd0___setNL__PF_Pd0b___sepOn__PF_Pd0___sepOff__PF_Pd0___sepDisable__PFb_Pd0___sepEnable__PFb_Pd0___sepGet__PFPCc_Pd0___sepSet__PF_Pd0PCc___sepGetTuple__PFPCc_Pd0___sepSetTuple__PF_Pd0PCc___fail__PFi_Pd0___flush__PFi_Pd0___open__PF_Pd0PCcPCc___close__PF_Pd0___write__PFPd0_Pd0PCcUl___fmt__PFi_Pd0PCc__FPd0_Pd0__1(((_Bool (*)(void *__anonymous_object1427))__sepPrt__Fb_P9sofstream__1), ((void (*)(void *__anonymous_object1428))__sepReset__F_P9sofstream__1), ((void (*)(void *__anonymous_object1429, _Bool __anonymous_object1430))__sepReset__F_P9sofstreamb__1), ((const char *(*)(void *__anonymous_object1431))__sepGetCur__FPCc_P9sofstream__1), ((void (*)(void *__anonymous_object1432, const char *__anonymous_object1433))__sepSetCur__F_P9sofstreamPCc__1), ((_Bool (*)(void *__anonymous_object1434))__getNL__Fb_P9sofstream__1), ((void (*)(void *__anonymous_object1435, _Bool __anonymous_object1436))__setNL__F_P9sofstreamb__1), ((void (*)(void *__anonymous_object1437))__sepOn__F_P9sofstream__1), ((void (*)(void *__anonymous_object1438))__sepOff__F_P9sofstream__1), ((_Bool (*)(void *__anonymous_object1439))__sepDisable__Fb_P9sofstream__1), ((_Bool (*)(void *__anonymous_object1440))__sepEnable__Fb_P9sofstream__1), ((const char *(*)(void *__anonymous_object1441))__sepGet__FPCc_P9sofstream__1), ((void (*)(void *__anonymous_object1442, const char *__anonymous_object1443))__sepSet__F_P9sofstreamPCc__1), ((const char *(*)(void *__anonymous_object1444))__sepGetTuple__FPCc_P9sofstream__1), ((void (*)(void *__anonymous_object1445, const char *__anonymous_object1446))__sepSetTuple__F_P9sofstreamPCc__1), ((signed int (*)(void *__anonymous_object1447))__fail__Fi_P9sofstream__1), ((signed int (*)(void *__anonymous_object1448))__flush__Fi_P9sofstream__1), ((void (*)(void *__os__P7tostype_1, const char *__name__PCc_1, const char *__mode__PCc_1))__open__F_P9sofstreamPCcPCc__1), ((void (*)(void *__os__P7tostype_1))__close__F_P9sofstream__1), ((void *(*)(void *__anonymous_object1449, const char *__anonymous_object1450, unsigned long int __anonymous_object1451))__write__FP9sofstream_P9sofstreamPCcUl__1), ((signed int (*)(void *__anonymous_object1452, const char *__fmt__PCc_1, ...))__fmt__Fi_P9sofstreamPCc__1), _p0);
     }
-    ((void)(((void)(_tmp_cp_ret51=___operator_bitor__A0_1_0_0___sepPrt__PFb_Pd0___sepReset__PF_Pd0___sepReset__PF_Pd0b___sepGetCur__PFPCc_Pd0___sepSetCur__PF_Pd0PCc___getNL__PFb_Pd0___setNL__PF_Pd0b___sepOn__PF_Pd0___sepOff__PF_Pd0___sepDisable__PFb_Pd0___sepEnable__PFb_Pd0___sepGet__PFPCc_Pd0___sepSet__PF_Pd0PCc___sepGetTuple__PFPCc_Pd0___sepSetTuple__PF_Pd0PCc___fail__PFi_Pd0___flush__PFi_Pd0___open__PF_Pd0PCcPCc___close__PF_Pd0___write__PFPd0_Pd0PCcUl___fmt__PFi_Pd0PCc__FPd0_Pd0PFPd0_Pd0___1(((_Bool (*)(void *__anonymous_object1453))__sepPrt__Fb_P9sofstream__1), ((void (*)(void *__anonymous_object1454))__sepReset__F_P9sofstream__1), ((void (*)(void *__anonymous_object1455, _Bool __anonymous_object1456))__sepReset__F_P9sofstreamb__1), ((const char *(*)(void *__anonymous_object1457))__sepGetCur__FPCc_P9sofstream__1), ((void (*)(void *__anonymous_object1458, const char *__anonymous_object1459))__sepSetCur__F_P9sofstreamPCc__1), ((_Bool (*)(void *__anonymous_object1460))__getNL__Fb_P9sofstream__1), ((void (*)(void *__anonymous_object1461, _Bool __anonymous_object1462))__setNL__F_P9sofstreamb__1), ((void (*)(void *__anonymous_object1463))__sepOn__F_P9sofstream__1), ((void (*)(void *__anonymous_object1464))__sepOff__F_P9sofstream__1), ((_Bool (*)(void *__anonymous_object1465))__sepDisable__Fb_P9sofstream__1), ((_Bool (*)(void *__anonymous_object1466))__sepEnable__Fb_P9sofstream__1), ((const char *(*)(void *__anonymous_object1467))__sepGet__FPCc_P9sofstream__1), ((void (*)(void *__anonymous_object1468, const char *__anonymous_object1469))__sepSet__F_P9sofstreamPCc__1), ((const char *(*)(void *__anonymous_object1470))__sepGetTuple__FPCc_P9sofstream__1), ((void (*)(void *__anonymous_object1471, const char *__anonymous_object1472))__sepSetTuple__F_P9sofstreamPCc__1), ((signed int (*)(void *__anonymous_object1473))__fail__Fi_P9sofstream__1), ((signed int (*)(void *__anonymous_object1474))__flush__Fi_P9sofstream__1), ((void (*)(void *__os__P7tostype_1, const char *__name__PCc_1, const char *__mode__PCc_1))__open__F_P9sofstreamPCcPCc__1), ((void (*)(void *__os__P7tostype_1))__close__F_P9sofstream__1), ((void *(*)(void *__anonymous_object1475, const char *__anonymous_object1476, unsigned long int __anonymous_object1477))__write__FP9sofstream_P9sofstreamPCcUl__1), ((signed int (*)(void *__anonymous_object1478, const char *__fmt__PCc_1, ...))__fmt__Fi_P9sofstreamPCc__1), (((void)(_tmp_cp_ret50=___operator_bitor__A0_1_0_0___sepPrt__PFb_Pd0___sepReset__PF_Pd0___sepReset__PF_Pd0b___sepGetCur__PFPCc_Pd0___sepSetCur__PF_Pd0PCc___getNL__PFb_Pd0___setNL__PF_Pd0b___sepOn__PF_Pd0___sepOff__PF_Pd0___sepDisable__PFb_Pd0___sepEnable__PFb_Pd0___sepGet__PFPCc_Pd0___sepSet__PF_Pd0PCc___sepGetTuple__PFPCc_Pd0___sepSetTuple__PF_Pd0PCc___fail__PFi_Pd0___flush__PFi_Pd0___open__PF_Pd0PCcPCc___close__PF_Pd0___write__PFPd0_Pd0PCcUl___fmt__PFi_Pd0PCc__FPd0_Pd0Sc__1(((_Bool (*)(void *__anonymous_object1479))__sepPrt__Fb_P9sofstream__1), ((void (*)(void *__anonymous_object1480))__sepReset__F_P9sofstream__1), ((void (*)(void *__anonymous_object1481, _Bool __anonymous_object1482))__sepReset__F_P9sofstreamb__1), ((const char *(*)(void *__anonymous_object1483))__sepGetCur__FPCc_P9sofstream__1), ((void (*)(void *__anonymous_object1484, const char *__anonymous_object1485))__sepSetCur__F_P9sofstreamPCc__1), ((_Bool (*)(void *__anonymous_object1486))__getNL__Fb_P9sofstream__1), ((void (*)(void *__anonymous_object1487, _Bool __anonymous_object1488))__setNL__F_P9sofstreamb__1), ((void (*)(void *__anonymous_object1489))__sepOn__F_P9sofstream__1), ((void (*)(void *__anonymous_object1490))__sepOff__F_P9sofstream__1), ((_Bool (*)(void *__anonymous_object1491))__sepDisable__Fb_P9sofstream__1), ((_Bool (*)(void *__anonymous_object1492))__sepEnable__Fb_P9sofstream__1), ((const char *(*)(void *__anonymous_object1493))__sepGet__FPCc_P9sofstream__1), ((void (*)(void *__anonymous_object1494, const char *__anonymous_object1495))__sepSet__F_P9sofstreamPCc__1), ((const char *(*)(void *__anonymous_object1496))__sepGetTuple__FPCc_P9sofstream__1), ((void (*)(void *__anonymous_object1497, const char *__anonymous_object1498))__sepSetTuple__F_P9sofstreamPCc__1), ((signed int (*)(void *__anonymous_object1499))__fail__Fi_P9sofstream__1), ((signed int (*)(void *__anonymous_object1500))__flush__Fi_P9sofstream__1), ((void (*)(void *__os__P7tostype_1, const char *__name__PCc_1, const char *__mode__PCc_1))__open__F_P9sofstreamPCcPCc__1), ((void (*)(void *__os__P7tostype_1))__close__F_P9sofstream__1), ((void *(*)(void *__anonymous_object1501, const char *__anonymous_object1502, unsigned long int __anonymous_object1503))__write__FP9sofstream_P9sofstreamPCcUl__1), ((signed int (*)(void *__anonymous_object1504, const char *__fmt__PCc_1, ...))__fmt__Fi_P9sofstreamPCc__1), (((void)(_tmp_cp_ret49=___operator_bitor__A0_1_0_0___sepPrt__PFb_Pd0___sepReset__PF_Pd0___sepReset__PF_Pd0b___sepGetCur__PFPCc_Pd0___sepSetCur__PF_Pd0PCc___getNL__PFb_Pd0___setNL__PF_Pd0b___sepOn__PF_Pd0___sepOff__PF_Pd0___sepDisable__PFb_Pd0___sepEnable__PFb_Pd0___sepGet__PFPCc_Pd0___sepSet__PF_Pd0PCc___sepGetTuple__PFPCc_Pd0___sepSetTuple__PF_Pd0PCc___fail__PFi_Pd0___flush__PFi_Pd0___open__PF_Pd0PCcPCc___close__PF_Pd0___write__PFPd0_Pd0PCcUl___fmt__PFi_Pd0PCc__FPd0_Pd0PCc__1(((_Bool (*)(void *__anonymous_object1505))__sepPrt__Fb_P9sofstream__1), ((void (*)(void *__anonymous_object1506))__sepReset__F_P9sofstream__1), ((void (*)(void *__anonymous_object1507, _Bool __anonymous_object1508))__sepReset__F_P9sofstreamb__1), ((const char *(*)(void *__anonymous_object1509))__sepGetCur__FPCc_P9sofstream__1), ((void (*)(void *__anonymous_object1510, const char *__anonymous_object1511))__sepSetCur__F_P9sofstreamPCc__1), ((_Bool (*)(void *__anonymous_object1512))__getNL__Fb_P9sofstream__1), ((void (*)(void *__anonymous_object1513, _Bool __anonymous_object1514))__setNL__F_P9sofstreamb__1), ((void (*)(void *__anonymous_object1515))__sepOn__F_P9sofstream__1), ((void (*)(void *__anonymous_object1516))__sepOff__F_P9sofstream__1), ((_Bool (*)(void *__anonymous_object1517))__sepDisable__Fb_P9sofstream__1), ((_Bool (*)(void *__anonymous_object1518))__sepEnable__Fb_P9sofstream__1), ((const char *(*)(void *__anonymous_object1519))__sepGet__FPCc_P9sofstream__1), ((void (*)(void *__anonymous_object1520, const char *__anonymous_object1521))__sepSet__F_P9sofstreamPCc__1), ((const char *(*)(void *__anonymous_object1522))__sepGetTuple__FPCc_P9sofstream__1), ((void (*)(void *__anonymous_object1523, const char *__anonymous_object1524))__sepSetTuple__F_P9sofstreamPCc__1), ((signed int (*)(void *__anonymous_object1525))__fail__Fi_P9sofstream__1), ((signed int (*)(void *__anonymous_object1526))__flush__Fi_P9sofstream__1), ((void (*)(void *__os__P7tostype_1, const char *__name__PCc_1, const char *__mode__PCc_1))__open__F_P9sofstreamPCcPCc__1), ((void (*)(void *__os__P7tostype_1))__close__F_P9sofstream__1), ((void *(*)(void *__anonymous_object1527, const char *__anonymous_object1528, unsigned long int __anonymous_object1529))__write__FP9sofstream_P9sofstreamPCcUl__1), ((signed int (*)(void *__anonymous_object1530, const char *__fmt__PCc_1, ...))__fmt__Fi_P9sofstreamPCc__1), __sout__P9sofstream_1, "signed char "))) , _tmp_cp_ret49), __v__Sc_1))) , _tmp_cp_ret50), ((void *(*)(void *__anonymous_object1531))(&_thunk1))))) , _tmp_cp_ret51));
-    ((void)(_tmp_cp_ret49) /* ^?{} */);
-    ((void)(_tmp_cp_ret50) /* ^?{} */);
-    ((void)(_tmp_cp_ret51) /* ^?{} */);
+    ((void)(((void)(_tmp_cp_ret5=___operator_bitor__A0_1_0_0___sepPrt__PFb_Pd0___sepReset__PF_Pd0___sepReset__PF_Pd0b___sepGetCur__PFPCc_Pd0___sepSetCur__PF_Pd0PCc___getNL__PFb_Pd0___setNL__PF_Pd0b___sepOn__PF_Pd0___sepOff__PF_Pd0___sepDisable__PFb_Pd0___sepEnable__PFb_Pd0___sepGet__PFPCc_Pd0___sepSet__PF_Pd0PCc___sepGetTuple__PFPCc_Pd0___sepSetTuple__PF_Pd0PCc___fail__PFi_Pd0___flush__PFi_Pd0___open__PF_Pd0PCcPCc___close__PF_Pd0___write__PFPd0_Pd0PCcUl___fmt__PFi_Pd0PCc__FPd0_Pd0PFPd0_Pd0___1(((_Bool (*)(void *__anonymous_object1453))__sepPrt__Fb_P9sofstream__1), ((void (*)(void *__anonymous_object1454))__sepReset__F_P9sofstream__1), ((void (*)(void *__anonymous_object1455, _Bool __anonymous_object1456))__sepReset__F_P9sofstreamb__1), ((const char *(*)(void *__anonymous_object1457))__sepGetCur__FPCc_P9sofstream__1), ((void (*)(void *__anonymous_object1458, const char *__anonymous_object1459))__sepSetCur__F_P9sofstreamPCc__1), ((_Bool (*)(void *__anonymous_object1460))__getNL__Fb_P9sofstream__1), ((void (*)(void *__anonymous_object1461, _Bool __anonymous_object1462))__setNL__F_P9sofstreamb__1), ((void (*)(void *__anonymous_object1463))__sepOn__F_P9sofstream__1), ((void (*)(void *__anonymous_object1464))__sepOff__F_P9sofstream__1), ((_Bool (*)(void *__anonymous_object1465))__sepDisable__Fb_P9sofstream__1), ((_Bool (*)(void *__anonymous_object1466))__sepEnable__Fb_P9sofstream__1), ((const char *(*)(void *__anonymous_object1467))__sepGet__FPCc_P9sofstream__1), ((void (*)(void *__anonymous_object1468, const char *__anonymous_object1469))__sepSet__F_P9sofstreamPCc__1), ((const char *(*)(void *__anonymous_object1470))__sepGetTuple__FPCc_P9sofstream__1), ((void (*)(void *__anonymous_object1471, const char *__anonymous_object1472))__sepSetTuple__F_P9sofstreamPCc__1), ((signed int (*)(void *__anonymous_object1473))__fail__Fi_P9sofstream__1), ((signed int (*)(void *__anonymous_object1474))__flush__Fi_P9sofstream__1), ((void (*)(void *__os__P7tostype_1, const char *__name__PCc_1, const char *__mode__PCc_1))__open__F_P9sofstreamPCcPCc__1), ((void (*)(void *__os__P7tostype_1))__close__F_P9sofstream__1), ((void *(*)(void *__anonymous_object1475, const char *__anonymous_object1476, unsigned long int __anonymous_object1477))__write__FP9sofstream_P9sofstreamPCcUl__1), ((signed int (*)(void *__anonymous_object1478, const char *__fmt__PCc_1, ...))__fmt__Fi_P9sofstreamPCc__1), (((void)(_tmp_cp_ret4=___operator_bitor__A0_1_0_0___sepPrt__PFb_Pd0___sepReset__PF_Pd0___sepReset__PF_Pd0b___sepGetCur__PFPCc_Pd0___sepSetCur__PF_Pd0PCc___getNL__PFb_Pd0___setNL__PF_Pd0b___sepOn__PF_Pd0___sepOff__PF_Pd0___sepDisable__PFb_Pd0___sepEnable__PFb_Pd0___sepGet__PFPCc_Pd0___sepSet__PF_Pd0PCc___sepGetTuple__PFPCc_Pd0___sepSetTuple__PF_Pd0PCc___fail__PFi_Pd0___flush__PFi_Pd0___open__PF_Pd0PCcPCc___close__PF_Pd0___write__PFPd0_Pd0PCcUl___fmt__PFi_Pd0PCc__FPd0_Pd0Sc__1(((_Bool (*)(void *__anonymous_object1479))__sepPrt__Fb_P9sofstream__1), ((void (*)(void *__anonymous_object1480))__sepReset__F_P9sofstream__1), ((void (*)(void *__anonymous_object1481, _Bool __anonymous_object1482))__sepReset__F_P9sofstreamb__1), ((const char *(*)(void *__anonymous_object1483))__sepGetCur__FPCc_P9sofstream__1), ((void (*)(void *__anonymous_object1484, const char *__anonymous_object1485))__sepSetCur__F_P9sofstreamPCc__1), ((_Bool (*)(void *__anonymous_object1486))__getNL__Fb_P9sofstream__1), ((void (*)(void *__anonymous_object1487, _Bool __anonymous_object1488))__setNL__F_P9sofstreamb__1), ((void (*)(void *__anonymous_object1489))__sepOn__F_P9sofstream__1), ((void (*)(void *__anonymous_object1490))__sepOff__F_P9sofstream__1), ((_Bool (*)(void *__anonymous_object1491))__sepDisable__Fb_P9sofstream__1), ((_Bool (*)(void *__anonymous_object1492))__sepEnable__Fb_P9sofstream__1), ((const char *(*)(void *__anonymous_object1493))__sepGet__FPCc_P9sofstream__1), ((void (*)(void *__anonymous_object1494, const char *__anonymous_object1495))__sepSet__F_P9sofstreamPCc__1), ((const char *(*)(void *__anonymous_object1496))__sepGetTuple__FPCc_P9sofstream__1), ((void (*)(void *__anonymous_object1497, const char *__anonymous_object1498))__sepSetTuple__F_P9sofstreamPCc__1), ((signed int (*)(void *__anonymous_object1499))__fail__Fi_P9sofstream__1), ((signed int (*)(void *__anonymous_object1500))__flush__Fi_P9sofstream__1), ((void (*)(void *__os__P7tostype_1, const char *__name__PCc_1, const char *__mode__PCc_1))__open__F_P9sofstreamPCcPCc__1), ((void (*)(void *__os__P7tostype_1))__close__F_P9sofstream__1), ((void *(*)(void *__anonymous_object1501, const char *__anonymous_object1502, unsigned long int __anonymous_object1503))__write__FP9sofstream_P9sofstreamPCcUl__1), ((signed int (*)(void *__anonymous_object1504, const char *__fmt__PCc_1, ...))__fmt__Fi_P9sofstreamPCc__1), (((void)(_tmp_cp_ret3=___operator_bitor__A0_1_0_0___sepPrt__PFb_Pd0___sepReset__PF_Pd0___sepReset__PF_Pd0b___sepGetCur__PFPCc_Pd0___sepSetCur__PF_Pd0PCc___getNL__PFb_Pd0___setNL__PF_Pd0b___sepOn__PF_Pd0___sepOff__PF_Pd0___sepDisable__PFb_Pd0___sepEnable__PFb_Pd0___sepGet__PFPCc_Pd0___sepSet__PF_Pd0PCc___sepGetTuple__PFPCc_Pd0___sepSetTuple__PF_Pd0PCc___fail__PFi_Pd0___flush__PFi_Pd0___open__PF_Pd0PCcPCc___close__PF_Pd0___write__PFPd0_Pd0PCcUl___fmt__PFi_Pd0PCc__FPd0_Pd0PCc__1(((_Bool (*)(void *__anonymous_object1505))__sepPrt__Fb_P9sofstream__1), ((void (*)(void *__anonymous_object1506))__sepReset__F_P9sofstream__1), ((void (*)(void *__anonymous_object1507, _Bool __anonymous_object1508))__sepReset__F_P9sofstreamb__1), ((const char *(*)(void *__anonymous_object1509))__sepGetCur__FPCc_P9sofstream__1), ((void (*)(void *__anonymous_object1510, const char *__anonymous_object1511))__sepSetCur__F_P9sofstreamPCc__1), ((_Bool (*)(void *__anonymous_object1512))__getNL__Fb_P9sofstream__1), ((void (*)(void *__anonymous_object1513, _Bool __anonymous_object1514))__setNL__F_P9sofstreamb__1), ((void (*)(void *__anonymous_object1515))__sepOn__F_P9sofstream__1), ((void (*)(void *__anonymous_object1516))__sepOff__F_P9sofstream__1), ((_Bool (*)(void *__anonymous_object1517))__sepDisable__Fb_P9sofstream__1), ((_Bool (*)(void *__anonymous_object1518))__sepEnable__Fb_P9sofstream__1), ((const char *(*)(void *__anonymous_object1519))__sepGet__FPCc_P9sofstream__1), ((void (*)(void *__anonymous_object1520, const char *__anonymous_object1521))__sepSet__F_P9sofstreamPCc__1), ((const char *(*)(void *__anonymous_object1522))__sepGetTuple__FPCc_P9sofstream__1), ((void (*)(void *__anonymous_object1523, const char *__anonymous_object1524))__sepSetTuple__F_P9sofstreamPCc__1), ((signed int (*)(void *__anonymous_object1525))__fail__Fi_P9sofstream__1), ((signed int (*)(void *__anonymous_object1526))__flush__Fi_P9sofstream__1), ((void (*)(void *__os__P7tostype_1, const char *__name__PCc_1, const char *__mode__PCc_1))__open__F_P9sofstreamPCcPCc__1), ((void (*)(void *__os__P7tostype_1))__close__F_P9sofstream__1), ((void *(*)(void *__anonymous_object1527, const char *__anonymous_object1528, unsigned long int __anonymous_object1529))__write__FP9sofstream_P9sofstreamPCcUl__1), ((signed int (*)(void *__anonymous_object1530, const char *__fmt__PCc_1, ...))__fmt__Fi_P9sofstreamPCc__1), __sout__P9sofstream_1, "signed char "))) , _tmp_cp_ret3), __v__Sc_1))) , _tmp_cp_ret4), ((void *(*)(void *__anonymous_object1531))(&_thunk1))))) , _tmp_cp_ret5));
+    ((void)(_tmp_cp_ret3) /* ^?{} */);
+    ((void)(_tmp_cp_ret4) /* ^?{} */);
+    ((void)(_tmp_cp_ret5) /* ^?{} */);
 }
 void __f__F_Uc__1(unsigned char __v__Uc_1){
-    struct ofstream *_tmp_cp_ret52;
-    struct ofstream *_tmp_cp_ret53;
-    struct ofstream *_tmp_cp_ret54;
+    struct ofstream *_tmp_cp_ret6;
+    struct ofstream *_tmp_cp_ret7;
+    struct ofstream *_tmp_cp_ret8;
     __attribute__ ((unused)) struct ofstream *_thunk2(struct ofstream *_p0){
         return __endl__A0_1_0_0___sepPrt__PFb_Pd0___sepReset__PF_Pd0___sepReset__PF_Pd0b___sepGetCur__PFPCc_Pd0___sepSetCur__PF_Pd0PCc___getNL__PFb_Pd0___setNL__PF_Pd0b___sepOn__PF_Pd0___sepOff__PF_Pd0___sepDisable__PFb_Pd0___sepEnable__PFb_Pd0___sepGet__PFPCc_Pd0___sepSet__PF_Pd0PCc___sepGetTuple__PFPCc_Pd0___sepSetTuple__PF_Pd0PCc___fail__PFi_Pd0___flush__PFi_Pd0___open__PF_Pd0PCcPCc___close__PF_Pd0___write__PFPd0_Pd0PCcUl___fmt__PFi_Pd0PCc__FPd0_Pd0__1(((_Bool (*)(void *__anonymous_object1532))__sepPrt__Fb_P9sofstream__1), ((void (*)(void *__anonymous_object1533))__sepReset__F_P9sofstream__1), ((void (*)(void *__anonymous_object1534, _Bool __anonymous_object1535))__sepReset__F_P9sofstreamb__1), ((const char *(*)(void *__anonymous_object1536))__sepGetCur__FPCc_P9sofstream__1), ((void (*)(void *__anonymous_object1537, const char *__anonymous_object1538))__sepSetCur__F_P9sofstreamPCc__1), ((_Bool (*)(void *__anonymous_object1539))__getNL__Fb_P9sofstream__1), ((void (*)(void *__anonymous_object1540, _Bool __anonymous_object1541))__setNL__F_P9sofstreamb__1), ((void (*)(void *__anonymous_object1542))__sepOn__F_P9sofstream__1), ((void (*)(void *__anonymous_object1543))__sepOff__F_P9sofstream__1), ((_Bool (*)(void *__anonymous_object1544))__sepDisable__Fb_P9sofstream__1), ((_Bool (*)(void *__anonymous_object1545))__sepEnable__Fb_P9sofstream__1), ((const char *(*)(void *__anonymous_object1546))__sepGet__FPCc_P9sofstream__1), ((void (*)(void *__anonymous_object1547, const char *__anonymous_object1548))__sepSet__F_P9sofstreamPCc__1), ((const char *(*)(void *__anonymous_object1549))__sepGetTuple__FPCc_P9sofstream__1), ((void (*)(void *__anonymous_object1550, const char *__anonymous_object1551))__sepSetTuple__F_P9sofstreamPCc__1), ((signed int (*)(void *__anonymous_object1552))__fail__Fi_P9sofstream__1), ((signed int (*)(void *__anonymous_object1553))__flush__Fi_P9sofstream__1), ((void (*)(void *__os__P7tostype_1, const char *__name__PCc_1, const char *__mode__PCc_1))__open__F_P9sofstreamPCcPCc__1), ((void (*)(void *__os__P7tostype_1))__close__F_P9sofstream__1), ((void *(*)(void *__anonymous_object1554, const char *__anonymous_object1555, unsigned long int __anonymous_object1556))__write__FP9sofstream_P9sofstreamPCcUl__1), ((signed int (*)(void *__anonymous_object1557, const char *__fmt__PCc_1, ...))__fmt__Fi_P9sofstreamPCc__1), _p0);
     }
-    ((void)(((void)(_tmp_cp_ret54=___operator_bitor__A0_1_0_0___sepPrt__PFb_Pd0___sepReset__PF_Pd0___sepReset__PF_Pd0b___sepGetCur__PFPCc_Pd0___sepSetCur__PF_Pd0PCc___getNL__PFb_Pd0___setNL__PF_Pd0b___sepOn__PF_Pd0___sepOff__PF_Pd0___sepDisable__PFb_Pd0___sepEnable__PFb_Pd0___sepGet__PFPCc_Pd0___sepSet__PF_Pd0PCc___sepGetTuple__PFPCc_Pd0___sepSetTuple__PF_Pd0PCc___fail__PFi_Pd0___flush__PFi_Pd0___open__PF_Pd0PCcPCc___close__PF_Pd0___write__PFPd0_Pd0PCcUl___fmt__PFi_Pd0PCc__FPd0_Pd0PFPd0_Pd0___1(((_Bool (*)(void *__anonymous_object1558))__sepPrt__Fb_P9sofstream__1), ((void (*)(void *__anonymous_object1559))__sepReset__F_P9sofstream__1), ((void (*)(void *__anonymous_object1560, _Bool __anonymous_object1561))__sepReset__F_P9sofstreamb__1), ((const char *(*)(void *__anonymous_object1562))__sepGetCur__FPCc_P9sofstream__1), ((void (*)(void *__anonymous_object1563, const char *__anonymous_object1564))__sepSetCur__F_P9sofstreamPCc__1), ((_Bool (*)(void *__anonymous_object1565))__getNL__Fb_P9sofstream__1), ((void (*)(void *__anonymous_object1566, _Bool __anonymous_object1567))__setNL__F_P9sofstreamb__1), ((void (*)(void *__anonymous_object1568))__sepOn__F_P9sofstream__1), ((void (*)(void *__anonymous_object1569))__sepOff__F_P9sofstream__1), ((_Bool (*)(void *__anonymous_object1570))__sepDisable__Fb_P9sofstream__1), ((_Bool (*)(void *__anonymous_object1571))__sepEnable__Fb_P9sofstream__1), ((const char *(*)(void *__anonymous_object1572))__sepGet__FPCc_P9sofstream__1), ((void (*)(void *__anonymous_object1573, const char *__anonymous_object1574))__sepSet__F_P9sofstreamPCc__1), ((const char *(*)(void *__anonymous_object1575))__sepGetTuple__FPCc_P9sofstream__1), ((void (*)(void *__anonymous_object1576, const char *__anonymous_object1577))__sepSetTuple__F_P9sofstreamPCc__1), ((signed int (*)(void *__anonymous_object1578))__fail__Fi_P9sofstream__1), ((signed int (*)(void *__anonymous_object1579))__flush__Fi_P9sofstream__1), ((void (*)(void *__os__P7tostype_1, const char *__name__PCc_1, const char *__mode__PCc_1))__open__F_P9sofstreamPCcPCc__1), ((void (*)(void *__os__P7tostype_1))__close__F_P9sofstream__1), ((void *(*)(void *__anonymous_object1580, const char *__anonymous_object1581, unsigned long int __anonymous_object1582))__write__FP9sofstream_P9sofstreamPCcUl__1), ((signed int (*)(void *__anonymous_object1583, const char *__fmt__PCc_1, ...))__fmt__Fi_P9sofstreamPCc__1), (((void)(_tmp_cp_ret53=___operator_bitor__A0_1_0_0___sepPrt__PFb_Pd0___sepReset__PF_Pd0___sepReset__PF_Pd0b___sepGetCur__PFPCc_Pd0___sepSetCur__PF_Pd0PCc___getNL__PFb_Pd0___setNL__PF_Pd0b___sepOn__PF_Pd0___sepOff__PF_Pd0___sepDisable__PFb_Pd0___sepEnable__PFb_Pd0___sepGet__PFPCc_Pd0___sepSet__PF_Pd0PCc___sepGetTuple__PFPCc_Pd0___sepSetTuple__PF_Pd0PCc___fail__PFi_Pd0___flush__PFi_Pd0___open__PF_Pd0PCcPCc___close__PF_Pd0___write__PFPd0_Pd0PCcUl___fmt__PFi_Pd0PCc__FPd0_Pd0Uc__1(((_Bool (*)(void *__anonymous_object1584))__sepPrt__Fb_P9sofstream__1), ((void (*)(void *__anonymous_object1585))__sepReset__F_P9sofstream__1), ((void (*)(void *__anonymous_object1586, _Bool __anonymous_object1587))__sepReset__F_P9sofstreamb__1), ((const char *(*)(void *__anonymous_object1588))__sepGetCur__FPCc_P9sofstream__1), ((void (*)(void *__anonymous_object1589, const char *__anonymous_object1590))__sepSetCur__F_P9sofstreamPCc__1), ((_Bool (*)(void *__anonymous_object1591))__getNL__Fb_P9sofstream__1), ((void (*)(void *__anonymous_object1592, _Bool __anonymous_object1593))__setNL__F_P9sofstreamb__1), ((void (*)(void *__anonymous_object1594))__sepOn__F_P9sofstream__1), ((void (*)(void *__anonymous_object1595))__sepOff__F_P9sofstream__1), ((_Bool (*)(void *__anonymous_object1596))__sepDisable__Fb_P9sofstream__1), ((_Bool (*)(void *__anonymous_object1597))__sepEnable__Fb_P9sofstream__1), ((const char *(*)(void *__anonymous_object1598))__sepGet__FPCc_P9sofstream__1), ((void (*)(void *__anonymous_object1599, const char *__anonymous_object1600))__sepSet__F_P9sofstreamPCc__1), ((const char *(*)(void *__anonymous_object1601))__sepGetTuple__FPCc_P9sofstream__1), ((void (*)(void *__anonymous_object1602, const char *__anonymous_object1603))__sepSetTuple__F_P9sofstreamPCc__1), ((signed int (*)(void *__anonymous_object1604))__fail__Fi_P9sofstream__1), ((signed int (*)(void *__anonymous_object1605))__flush__Fi_P9sofstream__1), ((void (*)(void *__os__P7tostype_1, const char *__name__PCc_1, const char *__mode__PCc_1))__open__F_P9sofstreamPCcPCc__1), ((void (*)(void *__os__P7tostype_1))__close__F_P9sofstream__1), ((void *(*)(void *__anonymous_object1606, const char *__anonymous_object1607, unsigned long int __anonymous_object1608))__write__FP9sofstream_P9sofstreamPCcUl__1), ((signed int (*)(void *__anonymous_object1609, const char *__fmt__PCc_1, ...))__fmt__Fi_P9sofstreamPCc__1), (((void)(_tmp_cp_ret52=___operator_bitor__A0_1_0_0___sepPrt__PFb_Pd0___sepReset__PF_Pd0___sepReset__PF_Pd0b___sepGetCur__PFPCc_Pd0___sepSetCur__PF_Pd0PCc___getNL__PFb_Pd0___setNL__PF_Pd0b___sepOn__PF_Pd0___sepOff__PF_Pd0___sepDisable__PFb_Pd0___sepEnable__PFb_Pd0___sepGet__PFPCc_Pd0___sepSet__PF_Pd0PCc___sepGetTuple__PFPCc_Pd0___sepSetTuple__PF_Pd0PCc___fail__PFi_Pd0___flush__PFi_Pd0___open__PF_Pd0PCcPCc___close__PF_Pd0___write__PFPd0_Pd0PCcUl___fmt__PFi_Pd0PCc__FPd0_Pd0PCc__1(((_Bool (*)(void *__anonymous_object1610))__sepPrt__Fb_P9sofstream__1), ((void (*)(void *__anonymous_object1611))__sepReset__F_P9sofstream__1), ((void (*)(void *__anonymous_object1612, _Bool __anonymous_object1613))__sepReset__F_P9sofstreamb__1), ((const char *(*)(void *__anonymous_object1614))__sepGetCur__FPCc_P9sofstream__1), ((void (*)(void *__anonymous_object1615, const char *__anonymous_object1616))__sepSetCur__F_P9sofstreamPCc__1), ((_Bool (*)(void *__anonymous_object1617))__getNL__Fb_P9sofstream__1), ((void (*)(void *__anonymous_object1618, _Bool __anonymous_object1619))__setNL__F_P9sofstreamb__1), ((void (*)(void *__anonymous_object1620))__sepOn__F_P9sofstream__1), ((void (*)(void *__anonymous_object1621))__sepOff__F_P9sofstream__1), ((_Bool (*)(void *__anonymous_object1622))__sepDisable__Fb_P9sofstream__1), ((_Bool (*)(void *__anonymous_object1623))__sepEnable__Fb_P9sofstream__1), ((const char *(*)(void *__anonymous_object1624))__sepGet__FPCc_P9sofstream__1), ((void (*)(void *__anonymous_object1625, const char *__anonymous_object1626))__sepSet__F_P9sofstreamPCc__1), ((const char *(*)(void *__anonymous_object1627))__sepGetTuple__FPCc_P9sofstream__1), ((void (*)(void *__anonymous_object1628, const char *__anonymous_object1629))__sepSetTuple__F_P9sofstreamPCc__1), ((signed int (*)(void *__anonymous_object1630))__fail__Fi_P9sofstream__1), ((signed int (*)(void *__anonymous_object1631))__flush__Fi_P9sofstream__1), ((void (*)(void *__os__P7tostype_1, const char *__name__PCc_1, const char *__mode__PCc_1))__open__F_P9sofstreamPCcPCc__1), ((void (*)(void *__os__P7tostype_1))__close__F_P9sofstream__1), ((void *(*)(void *__anonymous_object1632, const char *__anonymous_object1633, unsigned long int __anonymous_object1634))__write__FP9sofstream_P9sofstreamPCcUl__1), ((signed int (*)(void *__anonymous_object1635, const char *__fmt__PCc_1, ...))__fmt__Fi_P9sofstreamPCc__1), __sout__P9sofstream_1, "unsigned char "))) , _tmp_cp_ret52), __v__Uc_1))) , _tmp_cp_ret53), ((void *(*)(void *__anonymous_object1636))(&_thunk2))))) , _tmp_cp_ret54));
-    ((void)(_tmp_cp_ret52) /* ^?{} */);
-    ((void)(_tmp_cp_ret53) /* ^?{} */);
-    ((void)(_tmp_cp_ret54) /* ^?{} */);
+    ((void)(((void)(_tmp_cp_ret8=___operator_bitor__A0_1_0_0___sepPrt__PFb_Pd0___sepReset__PF_Pd0___sepReset__PF_Pd0b___sepGetCur__PFPCc_Pd0___sepSetCur__PF_Pd0PCc___getNL__PFb_Pd0___setNL__PF_Pd0b___sepOn__PF_Pd0___sepOff__PF_Pd0___sepDisable__PFb_Pd0___sepEnable__PFb_Pd0___sepGet__PFPCc_Pd0___sepSet__PF_Pd0PCc___sepGetTuple__PFPCc_Pd0___sepSetTuple__PF_Pd0PCc___fail__PFi_Pd0___flush__PFi_Pd0___open__PF_Pd0PCcPCc___close__PF_Pd0___write__PFPd0_Pd0PCcUl___fmt__PFi_Pd0PCc__FPd0_Pd0PFPd0_Pd0___1(((_Bool (*)(void *__anonymous_object1558))__sepPrt__Fb_P9sofstream__1), ((void (*)(void *__anonymous_object1559))__sepReset__F_P9sofstream__1), ((void (*)(void *__anonymous_object1560, _Bool __anonymous_object1561))__sepReset__F_P9sofstreamb__1), ((const char *(*)(void *__anonymous_object1562))__sepGetCur__FPCc_P9sofstream__1), ((void (*)(void *__anonymous_object1563, const char *__anonymous_object1564))__sepSetCur__F_P9sofstreamPCc__1), ((_Bool (*)(void *__anonymous_object1565))__getNL__Fb_P9sofstream__1), ((void (*)(void *__anonymous_object1566, _Bool __anonymous_object1567))__setNL__F_P9sofstreamb__1), ((void (*)(void *__anonymous_object1568))__sepOn__F_P9sofstream__1), ((void (*)(void *__anonymous_object1569))__sepOff__F_P9sofstream__1), ((_Bool (*)(void *__anonymous_object1570))__sepDisable__Fb_P9sofstream__1), ((_Bool (*)(void *__anonymous_object1571))__sepEnable__Fb_P9sofstream__1), ((const char *(*)(void *__anonymous_object1572))__sepGet__FPCc_P9sofstream__1), ((void (*)(void *__anonymous_object1573, const char *__anonymous_object1574))__sepSet__F_P9sofstreamPCc__1), ((const char *(*)(void *__anonymous_object1575))__sepGetTuple__FPCc_P9sofstream__1), ((void (*)(void *__anonymous_object1576, const char *__anonymous_object1577))__sepSetTuple__F_P9sofstreamPCc__1), ((signed int (*)(void *__anonymous_object1578))__fail__Fi_P9sofstream__1), ((signed int (*)(void *__anonymous_object1579))__flush__Fi_P9sofstream__1), ((void (*)(void *__os__P7tostype_1, const char *__name__PCc_1, const char *__mode__PCc_1))__open__F_P9sofstreamPCcPCc__1), ((void (*)(void *__os__P7tostype_1))__close__F_P9sofstream__1), ((void *(*)(void *__anonymous_object1580, const char *__anonymous_object1581, unsigned long int __anonymous_object1582))__write__FP9sofstream_P9sofstreamPCcUl__1), ((signed int (*)(void *__anonymous_object1583, const char *__fmt__PCc_1, ...))__fmt__Fi_P9sofstreamPCc__1), (((void)(_tmp_cp_ret7=___operator_bitor__A0_1_0_0___sepPrt__PFb_Pd0___sepReset__PF_Pd0___sepReset__PF_Pd0b___sepGetCur__PFPCc_Pd0___sepSetCur__PF_Pd0PCc___getNL__PFb_Pd0___setNL__PF_Pd0b___sepOn__PF_Pd0___sepOff__PF_Pd0___sepDisable__PFb_Pd0___sepEnable__PFb_Pd0___sepGet__PFPCc_Pd0___sepSet__PF_Pd0PCc___sepGetTuple__PFPCc_Pd0___sepSetTuple__PF_Pd0PCc___fail__PFi_Pd0___flush__PFi_Pd0___open__PF_Pd0PCcPCc___close__PF_Pd0___write__PFPd0_Pd0PCcUl___fmt__PFi_Pd0PCc__FPd0_Pd0Uc__1(((_Bool (*)(void *__anonymous_object1584))__sepPrt__Fb_P9sofstream__1), ((void (*)(void *__anonymous_object1585))__sepReset__F_P9sofstream__1), ((void (*)(void *__anonymous_object1586, _Bool __anonymous_object1587))__sepReset__F_P9sofstreamb__1), ((const char *(*)(void *__anonymous_object1588))__sepGetCur__FPCc_P9sofstream__1), ((void (*)(void *__anonymous_object1589, const char *__anonymous_object1590))__sepSetCur__F_P9sofstreamPCc__1), ((_Bool (*)(void *__anonymous_object1591))__getNL__Fb_P9sofstream__1), ((void (*)(void *__anonymous_object1592, _Bool __anonymous_object1593))__setNL__F_P9sofstreamb__1), ((void (*)(void *__anonymous_object1594))__sepOn__F_P9sofstream__1), ((void (*)(void *__anonymous_object1595))__sepOff__F_P9sofstream__1), ((_Bool (*)(void *__anonymous_object1596))__sepDisable__Fb_P9sofstream__1), ((_Bool (*)(void *__anonymous_object1597))__sepEnable__Fb_P9sofstream__1), ((const char *(*)(void *__anonymous_object1598))__sepGet__FPCc_P9sofstream__1), ((void (*)(void *__anonymous_object1599, const char *__anonymous_object1600))__sepSet__F_P9sofstreamPCc__1), ((const char *(*)(void *__anonymous_object1601))__sepGetTuple__FPCc_P9sofstream__1), ((void (*)(void *__anonymous_object1602, const char *__anonymous_object1603))__sepSetTuple__F_P9sofstreamPCc__1), ((signed int (*)(void *__anonymous_object1604))__fail__Fi_P9sofstream__1), ((signed int (*)(void *__anonymous_object1605))__flush__Fi_P9sofstream__1), ((void (*)(void *__os__P7tostype_1, const char *__name__PCc_1, const char *__mode__PCc_1))__open__F_P9sofstreamPCcPCc__1), ((void (*)(void *__os__P7tostype_1))__close__F_P9sofstream__1), ((void *(*)(void *__anonymous_object1606, const char *__anonymous_object1607, unsigned long int __anonymous_object1608))__write__FP9sofstream_P9sofstreamPCcUl__1), ((signed int (*)(void *__anonymous_object1609, const char *__fmt__PCc_1, ...))__fmt__Fi_P9sofstreamPCc__1), (((void)(_tmp_cp_ret6=___operator_bitor__A0_1_0_0___sepPrt__PFb_Pd0___sepReset__PF_Pd0___sepReset__PF_Pd0b___sepGetCur__PFPCc_Pd0___sepSetCur__PF_Pd0PCc___getNL__PFb_Pd0___setNL__PF_Pd0b___sepOn__PF_Pd0___sepOff__PF_Pd0___sepDisable__PFb_Pd0___sepEnable__PFb_Pd0___sepGet__PFPCc_Pd0___sepSet__PF_Pd0PCc___sepGetTuple__PFPCc_Pd0___sepSetTuple__PF_Pd0PCc___fail__PFi_Pd0___flush__PFi_Pd0___open__PF_Pd0PCcPCc___close__PF_Pd0___write__PFPd0_Pd0PCcUl___fmt__PFi_Pd0PCc__FPd0_Pd0PCc__1(((_Bool (*)(void *__anonymous_object1610))__sepPrt__Fb_P9sofstream__1), ((void (*)(void *__anonymous_object1611))__sepReset__F_P9sofstream__1), ((void (*)(void *__anonymous_object1612, _Bool __anonymous_object1613))__sepReset__F_P9sofstreamb__1), ((const char *(*)(void *__anonymous_object1614))__sepGetCur__FPCc_P9sofstream__1), ((void (*)(void *__anonymous_object1615, const char *__anonymous_object1616))__sepSetCur__F_P9sofstreamPCc__1), ((_Bool (*)(void *__anonymous_object1617))__getNL__Fb_P9sofstream__1), ((void (*)(void *__anonymous_object1618, _Bool __anonymous_object1619))__setNL__F_P9sofstreamb__1), ((void (*)(void *__anonymous_object1620))__sepOn__F_P9sofstream__1), ((void (*)(void *__anonymous_object1621))__sepOff__F_P9sofstream__1), ((_Bool (*)(void *__anonymous_object1622))__sepDisable__Fb_P9sofstream__1), ((_Bool (*)(void *__anonymous_object1623))__sepEnable__Fb_P9sofstream__1), ((const char *(*)(void *__anonymous_object1624))__sepGet__FPCc_P9sofstream__1), ((void (*)(void *__anonymous_object1625, const char *__anonymous_object1626))__sepSet__F_P9sofstreamPCc__1), ((const char *(*)(void *__anonymous_object1627))__sepGetTuple__FPCc_P9sofstream__1), ((void (*)(void *__anonymous_object1628, const char *__anonymous_object1629))__sepSetTuple__F_P9sofstreamPCc__1), ((signed int (*)(void *__anonymous_object1630))__fail__Fi_P9sofstream__1), ((signed int (*)(void *__anonymous_object1631))__flush__Fi_P9sofstream__1), ((void (*)(void *__os__P7tostype_1, const char *__name__PCc_1, const char *__mode__PCc_1))__open__F_P9sofstreamPCcPCc__1), ((void (*)(void *__os__P7tostype_1))__close__F_P9sofstream__1), ((void *(*)(void *__anonymous_object1632, const char *__anonymous_object1633, unsigned long int __anonymous_object1634))__write__FP9sofstream_P9sofstreamPCcUl__1), ((signed int (*)(void *__anonymous_object1635, const char *__fmt__PCc_1, ...))__fmt__Fi_P9sofstreamPCc__1), __sout__P9sofstream_1, "unsigned char "))) , _tmp_cp_ret6), __v__Uc_1))) , _tmp_cp_ret7), ((void *(*)(void *__anonymous_object1636))(&_thunk2))))) , _tmp_cp_ret8));
+    ((void)(_tmp_cp_ret6) /* ^?{} */);
+    ((void)(_tmp_cp_ret7) /* ^?{} */);
+    ((void)(_tmp_cp_ret8) /* ^?{} */);
 }
 void __f__F_s__1(signed short int __v__s_1){
-    struct ofstream *_tmp_cp_ret55;
-    struct ofstream *_tmp_cp_ret56;
-    struct ofstream *_tmp_cp_ret57;
+    struct ofstream *_tmp_cp_ret9;
+    struct ofstream *_tmp_cp_ret10;
+    struct ofstream *_tmp_cp_ret11;
     __attribute__ ((unused)) struct ofstream *_thunk3(struct ofstream *_p0){
         return __endl__A0_1_0_0___sepPrt__PFb_Pd0___sepReset__PF_Pd0___sepReset__PF_Pd0b___sepGetCur__PFPCc_Pd0___sepSetCur__PF_Pd0PCc___getNL__PFb_Pd0___setNL__PF_Pd0b___sepOn__PF_Pd0___sepOff__PF_Pd0___sepDisable__PFb_Pd0___sepEnable__PFb_Pd0___sepGet__PFPCc_Pd0___sepSet__PF_Pd0PCc___sepGetTuple__PFPCc_Pd0___sepSetTuple__PF_Pd0PCc___fail__PFi_Pd0___flush__PFi_Pd0___open__PF_Pd0PCcPCc___close__PF_Pd0___write__PFPd0_Pd0PCcUl___fmt__PFi_Pd0PCc__FPd0_Pd0__1(((_Bool (*)(void *__anonymous_object1637))__sepPrt__Fb_P9sofstream__1), ((void (*)(void *__anonymous_object1638))__sepReset__F_P9sofstream__1), ((void (*)(void *__anonymous_object1639, _Bool __anonymous_object1640))__sepReset__F_P9sofstreamb__1), ((const char *(*)(void *__anonymous_object1641))__sepGetCur__FPCc_P9sofstream__1), ((void (*)(void *__anonymous_object1642, const char *__anonymous_object1643))__sepSetCur__F_P9sofstreamPCc__1), ((_Bool (*)(void *__anonymous_object1644))__getNL__Fb_P9sofstream__1), ((void (*)(void *__anonymous_object1645, _Bool __anonymous_object1646))__setNL__F_P9sofstreamb__1), ((void (*)(void *__anonymous_object1647))__sepOn__F_P9sofstream__1), ((void (*)(void *__anonymous_object1648))__sepOff__F_P9sofstream__1), ((_Bool (*)(void *__anonymous_object1649))__sepDisable__Fb_P9sofstream__1), ((_Bool (*)(void *__anonymous_object1650))__sepEnable__Fb_P9sofstream__1), ((const char *(*)(void *__anonymous_object1651))__sepGet__FPCc_P9sofstream__1), ((void (*)(void *__anonymous_object1652, const char *__anonymous_object1653))__sepSet__F_P9sofstreamPCc__1), ((const char *(*)(void *__anonymous_object1654))__sepGetTuple__FPCc_P9sofstream__1), ((void (*)(void *__anonymous_object1655, const char *__anonymous_object1656))__sepSetTuple__F_P9sofstreamPCc__1), ((signed int (*)(void *__anonymous_object1657))__fail__Fi_P9sofstream__1), ((signed int (*)(void *__anonymous_object1658))__flush__Fi_P9sofstream__1), ((void (*)(void *__os__P7tostype_1, const char *__name__PCc_1, const char *__mode__PCc_1))__open__F_P9sofstreamPCcPCc__1), ((void (*)(void *__os__P7tostype_1))__close__F_P9sofstream__1), ((void *(*)(void *__anonymous_object1659, const char *__anonymous_object1660, unsigned long int __anonymous_object1661))__write__FP9sofstream_P9sofstreamPCcUl__1), ((signed int (*)(void *__anonymous_object1662, const char *__fmt__PCc_1, ...))__fmt__Fi_P9sofstreamPCc__1), _p0);
     }
-    ((void)(((void)(_tmp_cp_ret57=___operator_bitor__A0_1_0_0___sepPrt__PFb_Pd0___sepReset__PF_Pd0___sepReset__PF_Pd0b___sepGetCur__PFPCc_Pd0___sepSetCur__PF_Pd0PCc___getNL__PFb_Pd0___setNL__PF_Pd0b___sepOn__PF_Pd0___sepOff__PF_Pd0___sepDisable__PFb_Pd0___sepEnable__PFb_Pd0___sepGet__PFPCc_Pd0___sepSet__PF_Pd0PCc___sepGetTuple__PFPCc_Pd0___sepSetTuple__PF_Pd0PCc___fail__PFi_Pd0___flush__PFi_Pd0___open__PF_Pd0PCcPCc___close__PF_Pd0___write__PFPd0_Pd0PCcUl___fmt__PFi_Pd0PCc__FPd0_Pd0PFPd0_Pd0___1(((_Bool (*)(void *__anonymous_object1663))__sepPrt__Fb_P9sofstream__1), ((void (*)(void *__anonymous_object1664))__sepReset__F_P9sofstream__1), ((void (*)(void *__anonymous_object1665, _Bool __anonymous_object1666))__sepReset__F_P9sofstreamb__1), ((const char *(*)(void *__anonymous_object1667))__sepGetCur__FPCc_P9sofstream__1), ((void (*)(void *__anonymous_object1668, const char *__anonymous_object1669))__sepSetCur__F_P9sofstreamPCc__1), ((_Bool (*)(void *__anonymous_object1670))__getNL__Fb_P9sofstream__1), ((void (*)(void *__anonymous_object1671, _Bool __anonymous_object1672))__setNL__F_P9sofstreamb__1), ((void (*)(void *__anonymous_object1673))__sepOn__F_P9sofstream__1), ((void (*)(void *__anonymous_object1674))__sepOff__F_P9sofstream__1), ((_Bool (*)(void *__anonymous_object1675))__sepDisable__Fb_P9sofstream__1), ((_Bool (*)(void *__anonymous_object1676))__sepEnable__Fb_P9sofstream__1), ((const char *(*)(void *__anonymous_object1677))__sepGet__FPCc_P9sofstream__1), ((void (*)(void *__anonymous_object1678, const char *__anonymous_object1679))__sepSet__F_P9sofstreamPCc__1), ((const char *(*)(void *__anonymous_object1680))__sepGetTuple__FPCc_P9sofstream__1), ((void (*)(void *__anonymous_object1681, const char *__anonymous_object1682))__sepSetTuple__F_P9sofstreamPCc__1), ((signed int (*)(void *__anonymous_object1683))__fail__Fi_P9sofstream__1), ((signed int (*)(void *__anonymous_object1684))__flush__Fi_P9sofstream__1), ((void (*)(void *__os__P7tostype_1, const char *__name__PCc_1, const char *__mode__PCc_1))__open__F_P9sofstreamPCcPCc__1), ((void (*)(void *__os__P7tostype_1))__close__F_P9sofstream__1), ((void *(*)(void *__anonymous_object1685, const char *__anonymous_object1686, unsigned long int __anonymous_object1687))__write__FP9sofstream_P9sofstreamPCcUl__1), ((signed int (*)(void *__anonymous_object1688, const char *__fmt__PCc_1, ...))__fmt__Fi_P9sofstreamPCc__1), (((void)(_tmp_cp_ret56=___operator_bitor__A0_1_0_0___sepPrt__PFb_Pd0___sepReset__PF_Pd0___sepReset__PF_Pd0b___sepGetCur__PFPCc_Pd0___sepSetCur__PF_Pd0PCc___getNL__PFb_Pd0___setNL__PF_Pd0b___sepOn__PF_Pd0___sepOff__PF_Pd0___sepDisable__PFb_Pd0___sepEnable__PFb_Pd0___sepGet__PFPCc_Pd0___sepSet__PF_Pd0PCc___sepGetTuple__PFPCc_Pd0___sepSetTuple__PF_Pd0PCc___fail__PFi_Pd0___flush__PFi_Pd0___open__PF_Pd0PCcPCc___close__PF_Pd0___write__PFPd0_Pd0PCcUl___fmt__PFi_Pd0PCc__FPd0_Pd0s__1(((_Bool (*)(void *__anonymous_object1689))__sepPrt__Fb_P9sofstream__1), ((void (*)(void *__anonymous_object1690))__sepReset__F_P9sofstream__1), ((void (*)(void *__anonymous_object1691, _Bool __anonymous_object1692))__sepReset__F_P9sofstreamb__1), ((const char *(*)(void *__anonymous_object1693))__sepGetCur__FPCc_P9sofstream__1), ((void (*)(void *__anonymous_object1694, const char *__anonymous_object1695))__sepSetCur__F_P9sofstreamPCc__1), ((_Bool (*)(void *__anonymous_object1696))__getNL__Fb_P9sofstream__1), ((void (*)(void *__anonymous_object1697, _Bool __anonymous_object1698))__setNL__F_P9sofstreamb__1), ((void (*)(void *__anonymous_object1699))__sepOn__F_P9sofstream__1), ((void (*)(void *__anonymous_object1700))__sepOff__F_P9sofstream__1), ((_Bool (*)(void *__anonymous_object1701))__sepDisable__Fb_P9sofstream__1), ((_Bool (*)(void *__anonymous_object1702))__sepEnable__Fb_P9sofstream__1), ((const char *(*)(void *__anonymous_object1703))__sepGet__FPCc_P9sofstream__1), ((void (*)(void *__anonymous_object1704, const char *__anonymous_object1705))__sepSet__F_P9sofstreamPCc__1), ((const char *(*)(void *__anonymous_object1706))__sepGetTuple__FPCc_P9sofstream__1), ((void (*)(void *__anonymous_object1707, const char *__anonymous_object1708))__sepSetTuple__F_P9sofstreamPCc__1), ((signed int (*)(void *__anonymous_object1709))__fail__Fi_P9sofstream__1), ((signed int (*)(void *__anonymous_object1710))__flush__Fi_P9sofstream__1), ((void (*)(void *__os__P7tostype_1, const char *__name__PCc_1, const char *__mode__PCc_1))__open__F_P9sofstreamPCcPCc__1), ((void (*)(void *__os__P7tostype_1))__close__F_P9sofstream__1), ((void *(*)(void *__anonymous_object1711, const char *__anonymous_object1712, unsigned long int __anonymous_object1713))__write__FP9sofstream_P9sofstreamPCcUl__1), ((signed int (*)(void *__anonymous_object1714, const char *__fmt__PCc_1, ...))__fmt__Fi_P9sofstreamPCc__1), (((void)(_tmp_cp_ret55=___operator_bitor__A0_1_0_0___sepPrt__PFb_Pd0___sepReset__PF_Pd0___sepReset__PF_Pd0b___sepGetCur__PFPCc_Pd0___sepSetCur__PF_Pd0PCc___getNL__PFb_Pd0___setNL__PF_Pd0b___sepOn__PF_Pd0___sepOff__PF_Pd0___sepDisable__PFb_Pd0___sepEnable__PFb_Pd0___sepGet__PFPCc_Pd0___sepSet__PF_Pd0PCc___sepGetTuple__PFPCc_Pd0___sepSetTuple__PF_Pd0PCc___fail__PFi_Pd0___flush__PFi_Pd0___open__PF_Pd0PCcPCc___close__PF_Pd0___write__PFPd0_Pd0PCcUl___fmt__PFi_Pd0PCc__FPd0_Pd0PCc__1(((_Bool (*)(void *__anonymous_object1715))__sepPrt__Fb_P9sofstream__1), ((void (*)(void *__anonymous_object1716))__sepReset__F_P9sofstream__1), ((void (*)(void *__anonymous_object1717, _Bool __anonymous_object1718))__sepReset__F_P9sofstreamb__1), ((const char *(*)(void *__anonymous_object1719))__sepGetCur__FPCc_P9sofstream__1), ((void (*)(void *__anonymous_object1720, const char *__anonymous_object1721))__sepSetCur__F_P9sofstreamPCc__1), ((_Bool (*)(void *__anonymous_object1722))__getNL__Fb_P9sofstream__1), ((void (*)(void *__anonymous_object1723, _Bool __anonymous_object1724))__setNL__F_P9sofstreamb__1), ((void (*)(void *__anonymous_object1725))__sepOn__F_P9sofstream__1), ((void (*)(void *__anonymous_object1726))__sepOff__F_P9sofstream__1), ((_Bool (*)(void *__anonymous_object1727))__sepDisable__Fb_P9sofstream__1), ((_Bool (*)(void *__anonymous_object1728))__sepEnable__Fb_P9sofstream__1), ((const char *(*)(void *__anonymous_object1729))__sepGet__FPCc_P9sofstream__1), ((void (*)(void *__anonymous_object1730, const char *__anonymous_object1731))__sepSet__F_P9sofstreamPCc__1), ((const char *(*)(void *__anonymous_object1732))__sepGetTuple__FPCc_P9sofstream__1), ((void (*)(void *__anonymous_object1733, const char *__anonymous_object1734))__sepSetTuple__F_P9sofstreamPCc__1), ((signed int (*)(void *__anonymous_object1735))__fail__Fi_P9sofstream__1), ((signed int (*)(void *__anonymous_object1736))__flush__Fi_P9sofstream__1), ((void (*)(void *__os__P7tostype_1, const char *__name__PCc_1, const char *__mode__PCc_1))__open__F_P9sofstreamPCcPCc__1), ((void (*)(void *__os__P7tostype_1))__close__F_P9sofstream__1), ((void *(*)(void *__anonymous_object1737, const char *__anonymous_object1738, unsigned long int __anonymous_object1739))__write__FP9sofstream_P9sofstreamPCcUl__1), ((signed int (*)(void *__anonymous_object1740, const char *__fmt__PCc_1, ...))__fmt__Fi_P9sofstreamPCc__1), __sout__P9sofstream_1, "signed short int"))) , _tmp_cp_ret55), __v__s_1))) , _tmp_cp_ret56), ((void *(*)(void *__anonymous_object1741))(&_thunk3))))) , _tmp_cp_ret57));
-    ((void)(_tmp_cp_ret55) /* ^?{} */);
-    ((void)(_tmp_cp_ret56) /* ^?{} */);
-    ((void)(_tmp_cp_ret57) /* ^?{} */);
+    ((void)(((void)(_tmp_cp_ret11=___operator_bitor__A0_1_0_0___sepPrt__PFb_Pd0___sepReset__PF_Pd0___sepReset__PF_Pd0b___sepGetCur__PFPCc_Pd0___sepSetCur__PF_Pd0PCc___getNL__PFb_Pd0___setNL__PF_Pd0b___sepOn__PF_Pd0___sepOff__PF_Pd0___sepDisable__PFb_Pd0___sepEnable__PFb_Pd0___sepGet__PFPCc_Pd0___sepSet__PF_Pd0PCc___sepGetTuple__PFPCc_Pd0___sepSetTuple__PF_Pd0PCc___fail__PFi_Pd0___flush__PFi_Pd0___open__PF_Pd0PCcPCc___close__PF_Pd0___write__PFPd0_Pd0PCcUl___fmt__PFi_Pd0PCc__FPd0_Pd0PFPd0_Pd0___1(((_Bool (*)(void *__anonymous_object1663))__sepPrt__Fb_P9sofstream__1), ((void (*)(void *__anonymous_object1664))__sepReset__F_P9sofstream__1), ((void (*)(void *__anonymous_object1665, _Bool __anonymous_object1666))__sepReset__F_P9sofstreamb__1), ((const char *(*)(void *__anonymous_object1667))__sepGetCur__FPCc_P9sofstream__1), ((void (*)(void *__anonymous_object1668, const char *__anonymous_object1669))__sepSetCur__F_P9sofstreamPCc__1), ((_Bool (*)(void *__anonymous_object1670))__getNL__Fb_P9sofstream__1), ((void (*)(void *__anonymous_object1671, _Bool __anonymous_object1672))__setNL__F_P9sofstreamb__1), ((void (*)(void *__anonymous_object1673))__sepOn__F_P9sofstream__1), ((void (*)(void *__anonymous_object1674))__sepOff__F_P9sofstream__1), ((_Bool (*)(void *__anonymous_object1675))__sepDisable__Fb_P9sofstream__1), ((_Bool (*)(void *__anonymous_object1676))__sepEnable__Fb_P9sofstream__1), ((const char *(*)(void *__anonymous_object1677))__sepGet__FPCc_P9sofstream__1), ((void (*)(void *__anonymous_object1678, const char *__anonymous_object1679))__sepSet__F_P9sofstreamPCc__1), ((const char *(*)(void *__anonymous_object1680))__sepGetTuple__FPCc_P9sofstream__1), ((void (*)(void *__anonymous_object1681, const char *__anonymous_object1682))__sepSetTuple__F_P9sofstreamPCc__1), ((signed int (*)(void *__anonymous_object1683))__fail__Fi_P9sofstream__1), ((signed int (*)(void *__anonymous_object1684))__flush__Fi_P9sofstream__1), ((void (*)(void *__os__P7tostype_1, const char *__name__PCc_1, const char *__mode__PCc_1))__open__F_P9sofstreamPCcPCc__1), ((void (*)(void *__os__P7tostype_1))__close__F_P9sofstream__1), ((void *(*)(void *__anonymous_object1685, const char *__anonymous_object1686, unsigned long int __anonymous_object1687))__write__FP9sofstream_P9sofstreamPCcUl__1), ((signed int (*)(void *__anonymous_object1688, const char *__fmt__PCc_1, ...))__fmt__Fi_P9sofstreamPCc__1), (((void)(_tmp_cp_ret10=___operator_bitor__A0_1_0_0___sepPrt__PFb_Pd0___sepReset__PF_Pd0___sepReset__PF_Pd0b___sepGetCur__PFPCc_Pd0___sepSetCur__PF_Pd0PCc___getNL__PFb_Pd0___setNL__PF_Pd0b___sepOn__PF_Pd0___sepOff__PF_Pd0___sepDisable__PFb_Pd0___sepEnable__PFb_Pd0___sepGet__PFPCc_Pd0___sepSet__PF_Pd0PCc___sepGetTuple__PFPCc_Pd0___sepSetTuple__PF_Pd0PCc___fail__PFi_Pd0___flush__PFi_Pd0___open__PF_Pd0PCcPCc___close__PF_Pd0___write__PFPd0_Pd0PCcUl___fmt__PFi_Pd0PCc__FPd0_Pd0s__1(((_Bool (*)(void *__anonymous_object1689))__sepPrt__Fb_P9sofstream__1), ((void (*)(void *__anonymous_object1690))__sepReset__F_P9sofstream__1), ((void (*)(void *__anonymous_object1691, _Bool __anonymous_object1692))__sepReset__F_P9sofstreamb__1), ((const char *(*)(void *__anonymous_object1693))__sepGetCur__FPCc_P9sofstream__1), ((void (*)(void *__anonymous_object1694, const char *__anonymous_object1695))__sepSetCur__F_P9sofstreamPCc__1), ((_Bool (*)(void *__anonymous_object1696))__getNL__Fb_P9sofstream__1), ((void (*)(void *__anonymous_object1697, _Bool __anonymous_object1698))__setNL__F_P9sofstreamb__1), ((void (*)(void *__anonymous_object1699))__sepOn__F_P9sofstream__1), ((void (*)(void *__anonymous_object1700))__sepOff__F_P9sofstream__1), ((_Bool (*)(void *__anonymous_object1701))__sepDisable__Fb_P9sofstream__1), ((_Bool (*)(void *__anonymous_object1702))__sepEnable__Fb_P9sofstream__1), ((const char *(*)(void *__anonymous_object1703))__sepGet__FPCc_P9sofstream__1), ((void (*)(void *__anonymous_object1704, const char *__anonymous_object1705))__sepSet__F_P9sofstreamPCc__1), ((const char *(*)(void *__anonymous_object1706))__sepGetTuple__FPCc_P9sofstream__1), ((void (*)(void *__anonymous_object1707, const char *__anonymous_object1708))__sepSetTuple__F_P9sofstreamPCc__1), ((signed int (*)(void *__anonymous_object1709))__fail__Fi_P9sofstream__1), ((signed int (*)(void *__anonymous_object1710))__flush__Fi_P9sofstream__1), ((void (*)(void *__os__P7tostype_1, const char *__name__PCc_1, const char *__mode__PCc_1))__open__F_P9sofstreamPCcPCc__1), ((void (*)(void *__os__P7tostype_1))__close__F_P9sofstream__1), ((void *(*)(void *__anonymous_object1711, const char *__anonymous_object1712, unsigned long int __anonymous_object1713))__write__FP9sofstream_P9sofstreamPCcUl__1), ((signed int (*)(void *__anonymous_object1714, const char *__fmt__PCc_1, ...))__fmt__Fi_P9sofstreamPCc__1), (((void)(_tmp_cp_ret9=___operator_bitor__A0_1_0_0___sepPrt__PFb_Pd0___sepReset__PF_Pd0___sepReset__PF_Pd0b___sepGetCur__PFPCc_Pd0___sepSetCur__PF_Pd0PCc___getNL__PFb_Pd0___setNL__PF_Pd0b___sepOn__PF_Pd0___sepOff__PF_Pd0___sepDisable__PFb_Pd0___sepEnable__PFb_Pd0___sepGet__PFPCc_Pd0___sepSet__PF_Pd0PCc___sepGetTuple__PFPCc_Pd0___sepSetTuple__PF_Pd0PCc___fail__PFi_Pd0___flush__PFi_Pd0___open__PF_Pd0PCcPCc___close__PF_Pd0___write__PFPd0_Pd0PCcUl___fmt__PFi_Pd0PCc__FPd0_Pd0PCc__1(((_Bool (*)(void *__anonymous_object1715))__sepPrt__Fb_P9sofstream__1), ((void (*)(void *__anonymous_object1716))__sepReset__F_P9sofstream__1), ((void (*)(void *__anonymous_object1717, _Bool __anonymous_object1718))__sepReset__F_P9sofstreamb__1), ((const char *(*)(void *__anonymous_object1719))__sepGetCur__FPCc_P9sofstream__1), ((void (*)(void *__anonymous_object1720, const char *__anonymous_object1721))__sepSetCur__F_P9sofstreamPCc__1), ((_Bool (*)(void *__anonymous_object1722))__getNL__Fb_P9sofstream__1), ((void (*)(void *__anonymous_object1723, _Bool __anonymous_object1724))__setNL__F_P9sofstreamb__1), ((void (*)(void *__anonymous_object1725))__sepOn__F_P9sofstream__1), ((void (*)(void *__anonymous_object1726))__sepOff__F_P9sofstream__1), ((_Bool (*)(void *__anonymous_object1727))__sepDisable__Fb_P9sofstream__1), ((_Bool (*)(void *__anonymous_object1728))__sepEnable__Fb_P9sofstream__1), ((const char *(*)(void *__anonymous_object1729))__sepGet__FPCc_P9sofstream__1), ((void (*)(void *__anonymous_object1730, const char *__anonymous_object1731))__sepSet__F_P9sofstreamPCc__1), ((const char *(*)(void *__anonymous_object1732))__sepGetTuple__FPCc_P9sofstream__1), ((void (*)(void *__anonymous_object1733, const char *__anonymous_object1734))__sepSetTuple__F_P9sofstreamPCc__1), ((signed int (*)(void *__anonymous_object1735))__fail__Fi_P9sofstream__1), ((signed int (*)(void *__anonymous_object1736))__flush__Fi_P9sofstream__1), ((void (*)(void *__os__P7tostype_1, const char *__name__PCc_1, const char *__mode__PCc_1))__open__F_P9sofstreamPCcPCc__1), ((void (*)(void *__os__P7tostype_1))__close__F_P9sofstream__1), ((void *(*)(void *__anonymous_object1737, const char *__anonymous_object1738, unsigned long int __anonymous_object1739))__write__FP9sofstream_P9sofstreamPCcUl__1), ((signed int (*)(void *__anonymous_object1740, const char *__fmt__PCc_1, ...))__fmt__Fi_P9sofstreamPCc__1), __sout__P9sofstream_1, "signed short int"))) , _tmp_cp_ret9), __v__s_1))) , _tmp_cp_ret10), ((void *(*)(void *__anonymous_object1741))(&_thunk3))))) , _tmp_cp_ret11));
+    ((void)(_tmp_cp_ret9) /* ^?{} */);
+    ((void)(_tmp_cp_ret10) /* ^?{} */);
+    ((void)(_tmp_cp_ret11) /* ^?{} */);
 }
 void __f__F_Us__1(unsigned short int __v__Us_1){
-    struct ofstream *_tmp_cp_ret58;
-    struct ofstream *_tmp_cp_ret59;
-    struct ofstream *_tmp_cp_ret60;
+    struct ofstream *_tmp_cp_ret12;
+    struct ofstream *_tmp_cp_ret13;
+    struct ofstream *_tmp_cp_ret14;
     __attribute__ ((unused)) struct ofstream *_thunk4(struct ofstream *_p0){
         return __endl__A0_1_0_0___sepPrt__PFb_Pd0___sepReset__PF_Pd0___sepReset__PF_Pd0b___sepGetCur__PFPCc_Pd0___sepSetCur__PF_Pd0PCc___getNL__PFb_Pd0___setNL__PF_Pd0b___sepOn__PF_Pd0___sepOff__PF_Pd0___sepDisable__PFb_Pd0___sepEnable__PFb_Pd0___sepGet__PFPCc_Pd0___sepSet__PF_Pd0PCc___sepGetTuple__PFPCc_Pd0___sepSetTuple__PF_Pd0PCc___fail__PFi_Pd0___flush__PFi_Pd0___open__PF_Pd0PCcPCc___close__PF_Pd0___write__PFPd0_Pd0PCcUl___fmt__PFi_Pd0PCc__FPd0_Pd0__1(((_Bool (*)(void *__anonymous_object1742))__sepPrt__Fb_P9sofstream__1), ((void (*)(void *__anonymous_object1743))__sepReset__F_P9sofstream__1), ((void (*)(void *__anonymous_object1744, _Bool __anonymous_object1745))__sepReset__F_P9sofstreamb__1), ((const char *(*)(void *__anonymous_object1746))__sepGetCur__FPCc_P9sofstream__1), ((void (*)(void *__anonymous_object1747, const char *__anonymous_object1748))__sepSetCur__F_P9sofstreamPCc__1), ((_Bool (*)(void *__anonymous_object1749))__getNL__Fb_P9sofstream__1), ((void (*)(void *__anonymous_object1750, _Bool __anonymous_object1751))__setNL__F_P9sofstreamb__1), ((void (*)(void *__anonymous_object1752))__sepOn__F_P9sofstream__1), ((void (*)(void *__anonymous_object1753))__sepOff__F_P9sofstream__1), ((_Bool (*)(void *__anonymous_object1754))__sepDisable__Fb_P9sofstream__1), ((_Bool (*)(void *__anonymous_object1755))__sepEnable__Fb_P9sofstream__1), ((const char *(*)(void *__anonymous_object1756))__sepGet__FPCc_P9sofstream__1), ((void (*)(void *__anonymous_object1757, const char *__anonymous_object1758))__sepSet__F_P9sofstreamPCc__1), ((const char *(*)(void *__anonymous_object1759))__sepGetTuple__FPCc_P9sofstream__1), ((void (*)(void *__anonymous_object1760, const char *__anonymous_object1761))__sepSetTuple__F_P9sofstreamPCc__1), ((signed int (*)(void *__anonymous_object1762))__fail__Fi_P9sofstream__1), ((signed int (*)(void *__anonymous_object1763))__flush__Fi_P9sofstream__1), ((void (*)(void *__os__P7tostype_1, const char *__name__PCc_1, const char *__mode__PCc_1))__open__F_P9sofstreamPCcPCc__1), ((void (*)(void *__os__P7tostype_1))__close__F_P9sofstream__1), ((void *(*)(void *__anonymous_object1764, const char *__anonymous_object1765, unsigned long int __anonymous_object1766))__write__FP9sofstream_P9sofstreamPCcUl__1), ((signed int (*)(void *__anonymous_object1767, const char *__fmt__PCc_1, ...))__fmt__Fi_P9sofstreamPCc__1), _p0);
     }
-    ((void)(((void)(_tmp_cp_ret60=___operator_bitor__A0_1_0_0___sepPrt__PFb_Pd0___sepReset__PF_Pd0___sepReset__PF_Pd0b___sepGetCur__PFPCc_Pd0___sepSetCur__PF_Pd0PCc___getNL__PFb_Pd0___setNL__PF_Pd0b___sepOn__PF_Pd0___sepOff__PF_Pd0___sepDisable__PFb_Pd0___sepEnable__PFb_Pd0___sepGet__PFPCc_Pd0___sepSet__PF_Pd0PCc___sepGetTuple__PFPCc_Pd0___sepSetTuple__PF_Pd0PCc___fail__PFi_Pd0___flush__PFi_Pd0___open__PF_Pd0PCcPCc___close__PF_Pd0___write__PFPd0_Pd0PCcUl___fmt__PFi_Pd0PCc__FPd0_Pd0PFPd0_Pd0___1(((_Bool (*)(void *__anonymous_object1768))__sepPrt__Fb_P9sofstream__1), ((void (*)(void *__anonymous_object1769))__sepReset__F_P9sofstream__1), ((void (*)(void *__anonymous_object1770, _Bool __anonymous_object1771))__sepReset__F_P9sofstreamb__1), ((const char *(*)(void *__anonymous_object1772))__sepGetCur__FPCc_P9sofstream__1), ((void (*)(void *__anonymous_object1773, const char *__anonymous_object1774))__sepSetCur__F_P9sofstreamPCc__1), ((_Bool (*)(void *__anonymous_object1775))__getNL__Fb_P9sofstream__1), ((void (*)(void *__anonymous_object1776, _Bool __anonymous_object1777))__setNL__F_P9sofstreamb__1), ((void (*)(void *__anonymous_object1778))__sepOn__F_P9sofstream__1), ((void (*)(void *__anonymous_object1779))__sepOff__F_P9sofstream__1), ((_Bool (*)(void *__anonymous_object1780))__sepDisable__Fb_P9sofstream__1), ((_Bool (*)(void *__anonymous_object1781))__sepEnable__Fb_P9sofstream__1), ((const char *(*)(void *__anonymous_object1782))__sepGet__FPCc_P9sofstream__1), ((void (*)(void *__anonymous_object1783, const char *__anonymous_object1784))__sepSet__F_P9sofstreamPCc__1), ((const char *(*)(void *__anonymous_object1785))__sepGetTuple__FPCc_P9sofstream__1), ((void (*)(void *__anonymous_object1786, const char *__anonymous_object1787))__sepSetTuple__F_P9sofstreamPCc__1), ((signed int (*)(void *__anonymous_object1788))__fail__Fi_P9sofstream__1), ((signed int (*)(void *__anonymous_object1789))__flush__Fi_P9sofstream__1), ((void (*)(void *__os__P7tostype_1, const char *__name__PCc_1, const char *__mode__PCc_1))__open__F_P9sofstreamPCcPCc__1), ((void (*)(void *__os__P7tostype_1))__close__F_P9sofstream__1), ((void *(*)(void *__anonymous_object1790, const char *__anonymous_object1791, unsigned long int __anonymous_object1792))__write__FP9sofstream_P9sofstreamPCcUl__1), ((signed int (*)(void *__anonymous_object1793, const char *__fmt__PCc_1, ...))__fmt__Fi_P9sofstreamPCc__1), (((void)(_tmp_cp_ret59=___operator_bitor__A0_1_0_0___sepPrt__PFb_Pd0___sepReset__PF_Pd0___sepReset__PF_Pd0b___sepGetCur__PFPCc_Pd0___sepSetCur__PF_Pd0PCc___getNL__PFb_Pd0___setNL__PF_Pd0b___sepOn__PF_Pd0___sepOff__PF_Pd0___sepDisable__PFb_Pd0___sepEnable__PFb_Pd0___sepGet__PFPCc_Pd0___sepSet__PF_Pd0PCc___sepGetTuple__PFPCc_Pd0___sepSetTuple__PF_Pd0PCc___fail__PFi_Pd0___flush__PFi_Pd0___open__PF_Pd0PCcPCc___close__PF_Pd0___write__PFPd0_Pd0PCcUl___fmt__PFi_Pd0PCc__FPd0_Pd0Us__1(((_Bool (*)(void *__anonymous_object1794))__sepPrt__Fb_P9sofstream__1), ((void (*)(void *__anonymous_object1795))__sepReset__F_P9sofstream__1), ((void (*)(void *__anonymous_object1796, _Bool __anonymous_object1797))__sepReset__F_P9sofstreamb__1), ((const char *(*)(void *__anonymous_object1798))__sepGetCur__FPCc_P9sofstream__1), ((void (*)(void *__anonymous_object1799, const char *__anonymous_object1800))__sepSetCur__F_P9sofstreamPCc__1), ((_Bool (*)(void *__anonymous_object1801))__getNL__Fb_P9sofstream__1), ((void (*)(void *__anonymous_object1802, _Bool __anonymous_object1803))__setNL__F_P9sofstreamb__1), ((void (*)(void *__anonymous_object1804))__sepOn__F_P9sofstream__1), ((void (*)(void *__anonymous_object1805))__sepOff__F_P9sofstream__1), ((_Bool (*)(void *__anonymous_object1806))__sepDisable__Fb_P9sofstream__1), ((_Bool (*)(void *__anonymous_object1807))__sepEnable__Fb_P9sofstream__1), ((const char *(*)(void *__anonymous_object1808))__sepGet__FPCc_P9sofstream__1), ((void (*)(void *__anonymous_object1809, const char *__anonymous_object1810))__sepSet__F_P9sofstreamPCc__1), ((const char *(*)(void *__anonymous_object1811))__sepGetTuple__FPCc_P9sofstream__1), ((void (*)(void *__anonymous_object1812, const char *__anonymous_object1813))__sepSetTuple__F_P9sofstreamPCc__1), ((signed int (*)(void *__anonymous_object1814))__fail__Fi_P9sofstream__1), ((signed int (*)(void *__anonymous_object1815))__flush__Fi_P9sofstream__1), ((void (*)(void *__os__P7tostype_1, const char *__name__PCc_1, const char *__mode__PCc_1))__open__F_P9sofstreamPCcPCc__1), ((void (*)(void *__os__P7tostype_1))__close__F_P9sofstream__1), ((void *(*)(void *__anonymous_object1816, const char *__anonymous_object1817, unsigned long int __anonymous_object1818))__write__FP9sofstream_P9sofstreamPCcUl__1), ((signed int (*)(void *__anonymous_object1819, const char *__fmt__PCc_1, ...))__fmt__Fi_P9sofstreamPCc__1), (((void)(_tmp_cp_ret58=___operator_bitor__A0_1_0_0___sepPrt__PFb_Pd0___sepReset__PF_Pd0___sepReset__PF_Pd0b___sepGetCur__PFPCc_Pd0___sepSetCur__PF_Pd0PCc___getNL__PFb_Pd0___setNL__PF_Pd0b___sepOn__PF_Pd0___sepOff__PF_Pd0___sepDisable__PFb_Pd0___sepEnable__PFb_Pd0___sepGet__PFPCc_Pd0___sepSet__PF_Pd0PCc___sepGetTuple__PFPCc_Pd0___sepSetTuple__PF_Pd0PCc___fail__PFi_Pd0___flush__PFi_Pd0___open__PF_Pd0PCcPCc___close__PF_Pd0___write__PFPd0_Pd0PCcUl___fmt__PFi_Pd0PCc__FPd0_Pd0PCc__1(((_Bool (*)(void *__anonymous_object1820))__sepPrt__Fb_P9sofstream__1), ((void (*)(void *__anonymous_object1821))__sepReset__F_P9sofstream__1), ((void (*)(void *__anonymous_object1822, _Bool __anonymous_object1823))__sepReset__F_P9sofstreamb__1), ((const char *(*)(void *__anonymous_object1824))__sepGetCur__FPCc_P9sofstream__1), ((void (*)(void *__anonymous_object1825, const char *__anonymous_object1826))__sepSetCur__F_P9sofstreamPCc__1), ((_Bool (*)(void *__anonymous_object1827))__getNL__Fb_P9sofstream__1), ((void (*)(void *__anonymous_object1828, _Bool __anonymous_object1829))__setNL__F_P9sofstreamb__1), ((void (*)(void *__anonymous_object1830))__sepOn__F_P9sofstream__1), ((void (*)(void *__anonymous_object1831))__sepOff__F_P9sofstream__1), ((_Bool (*)(void *__anonymous_object1832))__sepDisable__Fb_P9sofstream__1), ((_Bool (*)(void *__anonymous_object1833))__sepEnable__Fb_P9sofstream__1), ((const char *(*)(void *__anonymous_object1834))__sepGet__FPCc_P9sofstream__1), ((void (*)(void *__anonymous_object1835, const char *__anonymous_object1836))__sepSet__F_P9sofstreamPCc__1), ((const char *(*)(void *__anonymous_object1837))__sepGetTuple__FPCc_P9sofstream__1), ((void (*)(void *__anonymous_object1838, const char *__anonymous_object1839))__sepSetTuple__F_P9sofstreamPCc__1), ((signed int (*)(void *__anonymous_object1840))__fail__Fi_P9sofstream__1), ((signed int (*)(void *__anonymous_object1841))__flush__Fi_P9sofstream__1), ((void (*)(void *__os__P7tostype_1, const char *__name__PCc_1, const char *__mode__PCc_1))__open__F_P9sofstreamPCcPCc__1), ((void (*)(void *__os__P7tostype_1))__close__F_P9sofstream__1), ((void *(*)(void *__anonymous_object1842, const char *__anonymous_object1843, unsigned long int __anonymous_object1844))__write__FP9sofstream_P9sofstreamPCcUl__1), ((signed int (*)(void *__anonymous_object1845, const char *__fmt__PCc_1, ...))__fmt__Fi_P9sofstreamPCc__1), __sout__P9sofstream_1, "unsigned short int"))) , _tmp_cp_ret58), __v__Us_1))) , _tmp_cp_ret59), ((void *(*)(void *__anonymous_object1846))(&_thunk4))))) , _tmp_cp_ret60));
-    ((void)(_tmp_cp_ret58) /* ^?{} */);
-    ((void)(_tmp_cp_ret59) /* ^?{} */);
-    ((void)(_tmp_cp_ret60) /* ^?{} */);
+    ((void)(((void)(_tmp_cp_ret14=___operator_bitor__A0_1_0_0___sepPrt__PFb_Pd0___sepReset__PF_Pd0___sepReset__PF_Pd0b___sepGetCur__PFPCc_Pd0___sepSetCur__PF_Pd0PCc___getNL__PFb_Pd0___setNL__PF_Pd0b___sepOn__PF_Pd0___sepOff__PF_Pd0___sepDisable__PFb_Pd0___sepEnable__PFb_Pd0___sepGet__PFPCc_Pd0___sepSet__PF_Pd0PCc___sepGetTuple__PFPCc_Pd0___sepSetTuple__PF_Pd0PCc___fail__PFi_Pd0___flush__PFi_Pd0___open__PF_Pd0PCcPCc___close__PF_Pd0___write__PFPd0_Pd0PCcUl___fmt__PFi_Pd0PCc__FPd0_Pd0PFPd0_Pd0___1(((_Bool (*)(void *__anonymous_object1768))__sepPrt__Fb_P9sofstream__1), ((void (*)(void *__anonymous_object1769))__sepReset__F_P9sofstream__1), ((void (*)(void *__anonymous_object1770, _Bool __anonymous_object1771))__sepReset__F_P9sofstreamb__1), ((const char *(*)(void *__anonymous_object1772))__sepGetCur__FPCc_P9sofstream__1), ((void (*)(void *__anonymous_object1773, const char *__anonymous_object1774))__sepSetCur__F_P9sofstreamPCc__1), ((_Bool (*)(void *__anonymous_object1775))__getNL__Fb_P9sofstream__1), ((void (*)(void *__anonymous_object1776, _Bool __anonymous_object1777))__setNL__F_P9sofstreamb__1), ((void (*)(void *__anonymous_object1778))__sepOn__F_P9sofstream__1), ((void (*)(void *__anonymous_object1779))__sepOff__F_P9sofstream__1), ((_Bool (*)(void *__anonymous_object1780))__sepDisable__Fb_P9sofstream__1), ((_Bool (*)(void *__anonymous_object1781))__sepEnable__Fb_P9sofstream__1), ((const char *(*)(void *__anonymous_object1782))__sepGet__FPCc_P9sofstream__1), ((void (*)(void *__anonymous_object1783, const char *__anonymous_object1784))__sepSet__F_P9sofstreamPCc__1), ((const char *(*)(void *__anonymous_object1785))__sepGetTuple__FPCc_P9sofstream__1), ((void (*)(void *__anonymous_object1786, const char *__anonymous_object1787))__sepSetTuple__F_P9sofstreamPCc__1), ((signed int (*)(void *__anonymous_object1788))__fail__Fi_P9sofstream__1), ((signed int (*)(void *__anonymous_object1789))__flush__Fi_P9sofstream__1), ((void (*)(void *__os__P7tostype_1, const char *__name__PCc_1, const char *__mode__PCc_1))__open__F_P9sofstreamPCcPCc__1), ((void (*)(void *__os__P7tostype_1))__close__F_P9sofstream__1), ((void *(*)(void *__anonymous_object1790, const char *__anonymous_object1791, unsigned long int __anonymous_object1792))__write__FP9sofstream_P9sofstreamPCcUl__1), ((signed int (*)(void *__anonymous_object1793, const char *__fmt__PCc_1, ...))__fmt__Fi_P9sofstreamPCc__1), (((void)(_tmp_cp_ret13=___operator_bitor__A0_1_0_0___sepPrt__PFb_Pd0___sepReset__PF_Pd0___sepReset__PF_Pd0b___sepGetCur__PFPCc_Pd0___sepSetCur__PF_Pd0PCc___getNL__PFb_Pd0___setNL__PF_Pd0b___sepOn__PF_Pd0___sepOff__PF_Pd0___sepDisable__PFb_Pd0___sepEnable__PFb_Pd0___sepGet__PFPCc_Pd0___sepSet__PF_Pd0PCc___sepGetTuple__PFPCc_Pd0___sepSetTuple__PF_Pd0PCc___fail__PFi_Pd0___flush__PFi_Pd0___open__PF_Pd0PCcPCc___close__PF_Pd0___write__PFPd0_Pd0PCcUl___fmt__PFi_Pd0PCc__FPd0_Pd0Us__1(((_Bool (*)(void *__anonymous_object1794))__sepPrt__Fb_P9sofstream__1), ((void (*)(void *__anonymous_object1795))__sepReset__F_P9sofstream__1), ((void (*)(void *__anonymous_object1796, _Bool __anonymous_object1797))__sepReset__F_P9sofstreamb__1), ((const char *(*)(void *__anonymous_object1798))__sepGetCur__FPCc_P9sofstream__1), ((void (*)(void *__anonymous_object1799, const char *__anonymous_object1800))__sepSetCur__F_P9sofstreamPCc__1), ((_Bool (*)(void *__anonymous_object1801))__getNL__Fb_P9sofstream__1), ((void (*)(void *__anonymous_object1802, _Bool __anonymous_object1803))__setNL__F_P9sofstreamb__1), ((void (*)(void *__anonymous_object1804))__sepOn__F_P9sofstream__1), ((void (*)(void *__anonymous_object1805))__sepOff__F_P9sofstream__1), ((_Bool (*)(void *__anonymous_object1806))__sepDisable__Fb_P9sofstream__1), ((_Bool (*)(void *__anonymous_object1807))__sepEnable__Fb_P9sofstream__1), ((const char *(*)(void *__anonymous_object1808))__sepGet__FPCc_P9sofstream__1), ((void (*)(void *__anonymous_object1809, const char *__anonymous_object1810))__sepSet__F_P9sofstreamPCc__1), ((const char *(*)(void *__anonymous_object1811))__sepGetTuple__FPCc_P9sofstream__1), ((void (*)(void *__anonymous_object1812, const char *__anonymous_object1813))__sepSetTuple__F_P9sofstreamPCc__1), ((signed int (*)(void *__anonymous_object1814))__fail__Fi_P9sofstream__1), ((signed int (*)(void *__anonymous_object1815))__flush__Fi_P9sofstream__1), ((void (*)(void *__os__P7tostype_1, const char *__name__PCc_1, const char *__mode__PCc_1))__open__F_P9sofstreamPCcPCc__1), ((void (*)(void *__os__P7tostype_1))__close__F_P9sofstream__1), ((void *(*)(void *__anonymous_object1816, const char *__anonymous_object1817, unsigned long int __anonymous_object1818))__write__FP9sofstream_P9sofstreamPCcUl__1), ((signed int (*)(void *__anonymous_object1819, const char *__fmt__PCc_1, ...))__fmt__Fi_P9sofstreamPCc__1), (((void)(_tmp_cp_ret12=___operator_bitor__A0_1_0_0___sepPrt__PFb_Pd0___sepReset__PF_Pd0___sepReset__PF_Pd0b___sepGetCur__PFPCc_Pd0___sepSetCur__PF_Pd0PCc___getNL__PFb_Pd0___setNL__PF_Pd0b___sepOn__PF_Pd0___sepOff__PF_Pd0___sepDisable__PFb_Pd0___sepEnable__PFb_Pd0___sepGet__PFPCc_Pd0___sepSet__PF_Pd0PCc___sepGetTuple__PFPCc_Pd0___sepSetTuple__PF_Pd0PCc___fail__PFi_Pd0___flush__PFi_Pd0___open__PF_Pd0PCcPCc___close__PF_Pd0___write__PFPd0_Pd0PCcUl___fmt__PFi_Pd0PCc__FPd0_Pd0PCc__1(((_Bool (*)(void *__anonymous_object1820))__sepPrt__Fb_P9sofstream__1), ((void (*)(void *__anonymous_object1821))__sepReset__F_P9sofstream__1), ((void (*)(void *__anonymous_object1822, _Bool __anonymous_object1823))__sepReset__F_P9sofstreamb__1), ((const char *(*)(void *__anonymous_object1824))__sepGetCur__FPCc_P9sofstream__1), ((void (*)(void *__anonymous_object1825, const char *__anonymous_object1826))__sepSetCur__F_P9sofstreamPCc__1), ((_Bool (*)(void *__anonymous_object1827))__getNL__Fb_P9sofstream__1), ((void (*)(void *__anonymous_object1828, _Bool __anonymous_object1829))__setNL__F_P9sofstreamb__1), ((void (*)(void *__anonymous_object1830))__sepOn__F_P9sofstream__1), ((void (*)(void *__anonymous_object1831))__sepOff__F_P9sofstream__1), ((_Bool (*)(void *__anonymous_object1832))__sepDisable__Fb_P9sofstream__1), ((_Bool (*)(void *__anonymous_object1833))__sepEnable__Fb_P9sofstream__1), ((const char *(*)(void *__anonymous_object1834))__sepGet__FPCc_P9sofstream__1), ((void (*)(void *__anonymous_object1835, const char *__anonymous_object1836))__sepSet__F_P9sofstreamPCc__1), ((const char *(*)(void *__anonymous_object1837))__sepGetTuple__FPCc_P9sofstream__1), ((void (*)(void *__anonymous_object1838, const char *__anonymous_object1839))__sepSetTuple__F_P9sofstreamPCc__1), ((signed int (*)(void *__anonymous_object1840))__fail__Fi_P9sofstream__1), ((signed int (*)(void *__anonymous_object1841))__flush__Fi_P9sofstream__1), ((void (*)(void *__os__P7tostype_1, const char *__name__PCc_1, const char *__mode__PCc_1))__open__F_P9sofstreamPCcPCc__1), ((void (*)(void *__os__P7tostype_1))__close__F_P9sofstream__1), ((void *(*)(void *__anonymous_object1842, const char *__anonymous_object1843, unsigned long int __anonymous_object1844))__write__FP9sofstream_P9sofstreamPCcUl__1), ((signed int (*)(void *__anonymous_object1845, const char *__fmt__PCc_1, ...))__fmt__Fi_P9sofstreamPCc__1), __sout__P9sofstream_1, "unsigned short int"))) , _tmp_cp_ret12), __v__Us_1))) , _tmp_cp_ret13), ((void *(*)(void *__anonymous_object1846))(&_thunk4))))) , _tmp_cp_ret14));
+    ((void)(_tmp_cp_ret12) /* ^?{} */);
+    ((void)(_tmp_cp_ret13) /* ^?{} */);
+    ((void)(_tmp_cp_ret14) /* ^?{} */);
 }
 void __f__F_Ul__1(unsigned long int __v__Ul_1){
-    struct ofstream *_tmp_cp_ret61;
-    struct ofstream *_tmp_cp_ret62;
-    struct ofstream *_tmp_cp_ret63;
+    struct ofstream *_tmp_cp_ret15;
+    struct ofstream *_tmp_cp_ret16;
+    struct ofstream *_tmp_cp_ret17;
     __attribute__ ((unused)) struct ofstream *_thunk5(struct ofstream *_p0){
         return __endl__A0_1_0_0___sepPrt__PFb_Pd0___sepReset__PF_Pd0___sepReset__PF_Pd0b___sepGetCur__PFPCc_Pd0___sepSetCur__PF_Pd0PCc___getNL__PFb_Pd0___setNL__PF_Pd0b___sepOn__PF_Pd0___sepOff__PF_Pd0___sepDisable__PFb_Pd0___sepEnable__PFb_Pd0___sepGet__PFPCc_Pd0___sepSet__PF_Pd0PCc___sepGetTuple__PFPCc_Pd0___sepSetTuple__PF_Pd0PCc___fail__PFi_Pd0___flush__PFi_Pd0___open__PF_Pd0PCcPCc___close__PF_Pd0___write__PFPd0_Pd0PCcUl___fmt__PFi_Pd0PCc__FPd0_Pd0__1(((_Bool (*)(void *__anonymous_object1847))__sepPrt__Fb_P9sofstream__1), ((void (*)(void *__anonymous_object1848))__sepReset__F_P9sofstream__1), ((void (*)(void *__anonymous_object1849, _Bool __anonymous_object1850))__sepReset__F_P9sofstreamb__1), ((const char *(*)(void *__anonymous_object1851))__sepGetCur__FPCc_P9sofstream__1), ((void (*)(void *__anonymous_object1852, const char *__anonymous_object1853))__sepSetCur__F_P9sofstreamPCc__1), ((_Bool (*)(void *__anonymous_object1854))__getNL__Fb_P9sofstream__1), ((void (*)(void *__anonymous_object1855, _Bool __anonymous_object1856))__setNL__F_P9sofstreamb__1), ((void (*)(void *__anonymous_object1857))__sepOn__F_P9sofstream__1), ((void (*)(void *__anonymous_object1858))__sepOff__F_P9sofstream__1), ((_Bool (*)(void *__anonymous_object1859))__sepDisable__Fb_P9sofstream__1), ((_Bool (*)(void *__anonymous_object1860))__sepEnable__Fb_P9sofstream__1), ((const char *(*)(void *__anonymous_object1861))__sepGet__FPCc_P9sofstream__1), ((void (*)(void *__anonymous_object1862, const char *__anonymous_object1863))__sepSet__F_P9sofstreamPCc__1), ((const char *(*)(void *__anonymous_object1864))__sepGetTuple__FPCc_P9sofstream__1), ((void (*)(void *__anonymous_object1865, const char *__anonymous_object1866))__sepSetTuple__F_P9sofstreamPCc__1), ((signed int (*)(void *__anonymous_object1867))__fail__Fi_P9sofstream__1), ((signed int (*)(void *__anonymous_object1868))__flush__Fi_P9sofstream__1), ((void (*)(void *__os__P7tostype_1, const char *__name__PCc_1, const char *__mode__PCc_1))__open__F_P9sofstreamPCcPCc__1), ((void (*)(void *__os__P7tostype_1))__close__F_P9sofstream__1), ((void *(*)(void *__anonymous_object1869, const char *__anonymous_object1870, unsigned long int __anonymous_object1871))__write__FP9sofstream_P9sofstreamPCcUl__1), ((signed int (*)(void *__anonymous_object1872, const char *__fmt__PCc_1, ...))__fmt__Fi_P9sofstreamPCc__1), _p0);
     }
-    ((void)(((void)(_tmp_cp_ret63=___operator_bitor__A0_1_0_0___sepPrt__PFb_Pd0___sepReset__PF_Pd0___sepReset__PF_Pd0b___sepGetCur__PFPCc_Pd0___sepSetCur__PF_Pd0PCc___getNL__PFb_Pd0___setNL__PF_Pd0b___sepOn__PF_Pd0___sepOff__PF_Pd0___sepDisable__PFb_Pd0___sepEnable__PFb_Pd0___sepGet__PFPCc_Pd0___sepSet__PF_Pd0PCc___sepGetTuple__PFPCc_Pd0___sepSetTuple__PF_Pd0PCc___fail__PFi_Pd0___flush__PFi_Pd0___open__PF_Pd0PCcPCc___close__PF_Pd0___write__PFPd0_Pd0PCcUl___fmt__PFi_Pd0PCc__FPd0_Pd0PFPd0_Pd0___1(((_Bool (*)(void *__anonymous_object1873))__sepPrt__Fb_P9sofstream__1), ((void (*)(void *__anonymous_object1874))__sepReset__F_P9sofstream__1), ((void (*)(void *__anonymous_object1875, _Bool __anonymous_object1876))__sepReset__F_P9sofstreamb__1), ((const char *(*)(void *__anonymous_object1877))__sepGetCur__FPCc_P9sofstream__1), ((void (*)(void *__anonymous_object1878, const char *__anonymous_object1879))__sepSetCur__F_P9sofstreamPCc__1), ((_Bool (*)(void *__anonymous_object1880))__getNL__Fb_P9sofstream__1), ((void (*)(void *__anonymous_object1881, _Bool __anonymous_object1882))__setNL__F_P9sofstreamb__1), ((void (*)(void *__anonymous_object1883))__sepOn__F_P9sofstream__1), ((void (*)(void *__anonymous_object1884))__sepOff__F_P9sofstream__1), ((_Bool (*)(void *__anonymous_object1885))__sepDisable__Fb_P9sofstream__1), ((_Bool (*)(void *__anonymous_object1886))__sepEnable__Fb_P9sofstream__1), ((const char *(*)(void *__anonymous_object1887))__sepGet__FPCc_P9sofstream__1), ((void (*)(void *__anonymous_object1888, const char *__anonymous_object1889))__sepSet__F_P9sofstreamPCc__1), ((const char *(*)(void *__anonymous_object1890))__sepGetTuple__FPCc_P9sofstream__1), ((void (*)(void *__anonymous_object1891, const char *__anonymous_object1892))__sepSetTuple__F_P9sofstreamPCc__1), ((signed int (*)(void *__anonymous_object1893))__fail__Fi_P9sofstream__1), ((signed int (*)(void *__anonymous_object1894))__flush__Fi_P9sofstream__1), ((void (*)(void *__os__P7tostype_1, const char *__name__PCc_1, const char *__mode__PCc_1))__open__F_P9sofstreamPCcPCc__1), ((void (*)(void *__os__P7tostype_1))__close__F_P9sofstream__1), ((void *(*)(void *__anonymous_object1895, const char *__anonymous_object1896, unsigned long int __anonymous_object1897))__write__FP9sofstream_P9sofstreamPCcUl__1), ((signed int (*)(void *__anonymous_object1898, const char *__fmt__PCc_1, ...))__fmt__Fi_P9sofstreamPCc__1), (((void)(_tmp_cp_ret62=___operator_bitor__A0_1_0_0___sepPrt__PFb_Pd0___sepReset__PF_Pd0___sepReset__PF_Pd0b___sepGetCur__PFPCc_Pd0___sepSetCur__PF_Pd0PCc___getNL__PFb_Pd0___setNL__PF_Pd0b___sepOn__PF_Pd0___sepOff__PF_Pd0___sepDisable__PFb_Pd0___sepEnable__PFb_Pd0___sepGet__PFPCc_Pd0___sepSet__PF_Pd0PCc___sepGetTuple__PFPCc_Pd0___sepSetTuple__PF_Pd0PCc___fail__PFi_Pd0___flush__PFi_Pd0___open__PF_Pd0PCcPCc___close__PF_Pd0___write__PFPd0_Pd0PCcUl___fmt__PFi_Pd0PCc__FPd0_Pd0Ul__1(((_Bool (*)(void *__anonymous_object1899))__sepPrt__Fb_P9sofstream__1), ((void (*)(void *__anonymous_object1900))__sepReset__F_P9sofstream__1), ((void (*)(void *__anonymous_object1901, _Bool __anonymous_object1902))__sepReset__F_P9sofstreamb__1), ((const char *(*)(void *__anonymous_object1903))__sepGetCur__FPCc_P9sofstream__1), ((void (*)(void *__anonymous_object1904, const char *__anonymous_object1905))__sepSetCur__F_P9sofstreamPCc__1), ((_Bool (*)(void *__anonymous_object1906))__getNL__Fb_P9sofstream__1), ((void (*)(void *__anonymous_object1907, _Bool __anonymous_object1908))__setNL__F_P9sofstreamb__1), ((void (*)(void *__anonymous_object1909))__sepOn__F_P9sofstream__1), ((void (*)(void *__anonymous_object1910))__sepOff__F_P9sofstream__1), ((_Bool (*)(void *__anonymous_object1911))__sepDisable__Fb_P9sofstream__1), ((_Bool (*)(void *__anonymous_object1912))__sepEnable__Fb_P9sofstream__1), ((const char *(*)(void *__anonymous_object1913))__sepGet__FPCc_P9sofstream__1), ((void (*)(void *__anonymous_object1914, const char *__anonymous_object1915))__sepSet__F_P9sofstreamPCc__1), ((const char *(*)(void *__anonymous_object1916))__sepGetTuple__FPCc_P9sofstream__1), ((void (*)(void *__anonymous_object1917, const char *__anonymous_object1918))__sepSetTuple__F_P9sofstreamPCc__1), ((signed int (*)(void *__anonymous_object1919))__fail__Fi_P9sofstream__1), ((signed int (*)(void *__anonymous_object1920))__flush__Fi_P9sofstream__1), ((void (*)(void *__os__P7tostype_1, const char *__name__PCc_1, const char *__mode__PCc_1))__open__F_P9sofstreamPCcPCc__1), ((void (*)(void *__os__P7tostype_1))__close__F_P9sofstream__1), ((void *(*)(void *__anonymous_object1921, const char *__anonymous_object1922, unsigned long int __anonymous_object1923))__write__FP9sofstream_P9sofstreamPCcUl__1), ((signed int (*)(void *__anonymous_object1924, const char *__fmt__PCc_1, ...))__fmt__Fi_P9sofstreamPCc__1), (((void)(_tmp_cp_ret61=___operator_bitor__A0_1_0_0___sepPrt__PFb_Pd0___sepReset__PF_Pd0___sepReset__PF_Pd0b___sepGetCur__PFPCc_Pd0___sepSetCur__PF_Pd0PCc___getNL__PFb_Pd0___setNL__PF_Pd0b___sepOn__PF_Pd0___sepOff__PF_Pd0___sepDisable__PFb_Pd0___sepEnable__PFb_Pd0___sepGet__PFPCc_Pd0___sepSet__PF_Pd0PCc___sepGetTuple__PFPCc_Pd0___sepSetTuple__PF_Pd0PCc___fail__PFi_Pd0___flush__PFi_Pd0___open__PF_Pd0PCcPCc___close__PF_Pd0___write__PFPd0_Pd0PCcUl___fmt__PFi_Pd0PCc__FPd0_Pd0PCc__1(((_Bool (*)(void *__anonymous_object1925))__sepPrt__Fb_P9sofstream__1), ((void (*)(void *__anonymous_object1926))__sepReset__F_P9sofstream__1), ((void (*)(void *__anonymous_object1927, _Bool __anonymous_object1928))__sepReset__F_P9sofstreamb__1), ((const char *(*)(void *__anonymous_object1929))__sepGetCur__FPCc_P9sofstream__1), ((void (*)(void *__anonymous_object1930, const char *__anonymous_object1931))__sepSetCur__F_P9sofstreamPCc__1), ((_Bool (*)(void *__anonymous_object1932))__getNL__Fb_P9sofstream__1), ((void (*)(void *__anonymous_object1933, _Bool __anonymous_object1934))__setNL__F_P9sofstreamb__1), ((void (*)(void *__anonymous_object1935))__sepOn__F_P9sofstream__1), ((void (*)(void *__anonymous_object1936))__sepOff__F_P9sofstream__1), ((_Bool (*)(void *__anonymous_object1937))__sepDisable__Fb_P9sofstream__1), ((_Bool (*)(void *__anonymous_object1938))__sepEnable__Fb_P9sofstream__1), ((const char *(*)(void *__anonymous_object1939))__sepGet__FPCc_P9sofstream__1), ((void (*)(void *__anonymous_object1940, const char *__anonymous_object1941))__sepSet__F_P9sofstreamPCc__1), ((const char *(*)(void *__anonymous_object1942))__sepGetTuple__FPCc_P9sofstream__1), ((void (*)(void *__anonymous_object1943, const char *__anonymous_object1944))__sepSetTuple__F_P9sofstreamPCc__1), ((signed int (*)(void *__anonymous_object1945))__fail__Fi_P9sofstream__1), ((signed int (*)(void *__anonymous_object1946))__flush__Fi_P9sofstream__1), ((void (*)(void *__os__P7tostype_1, const char *__name__PCc_1, const char *__mode__PCc_1))__open__F_P9sofstreamPCcPCc__1), ((void (*)(void *__os__P7tostype_1))__close__F_P9sofstream__1), ((void *(*)(void *__anonymous_object1947, const char *__anonymous_object1948, unsigned long int __anonymous_object1949))__write__FP9sofstream_P9sofstreamPCcUl__1), ((signed int (*)(void *__anonymous_object1950, const char *__fmt__PCc_1, ...))__fmt__Fi_P9sofstreamPCc__1), __sout__P9sofstream_1, "size_t"))) , _tmp_cp_ret61), __v__Ul_1))) , _tmp_cp_ret62), ((void *(*)(void *__anonymous_object1951))(&_thunk5))))) , _tmp_cp_ret63));
-    ((void)(_tmp_cp_ret61) /* ^?{} */);
-    ((void)(_tmp_cp_ret62) /* ^?{} */);
-    ((void)(_tmp_cp_ret63) /* ^?{} */);
+    ((void)(((void)(_tmp_cp_ret17=___operator_bitor__A0_1_0_0___sepPrt__PFb_Pd0___sepReset__PF_Pd0___sepReset__PF_Pd0b___sepGetCur__PFPCc_Pd0___sepSetCur__PF_Pd0PCc___getNL__PFb_Pd0___setNL__PF_Pd0b___sepOn__PF_Pd0___sepOff__PF_Pd0___sepDisable__PFb_Pd0___sepEnable__PFb_Pd0___sepGet__PFPCc_Pd0___sepSet__PF_Pd0PCc___sepGetTuple__PFPCc_Pd0___sepSetTuple__PF_Pd0PCc___fail__PFi_Pd0___flush__PFi_Pd0___open__PF_Pd0PCcPCc___close__PF_Pd0___write__PFPd0_Pd0PCcUl___fmt__PFi_Pd0PCc__FPd0_Pd0PFPd0_Pd0___1(((_Bool (*)(void *__anonymous_object1873))__sepPrt__Fb_P9sofstream__1), ((void (*)(void *__anonymous_object1874))__sepReset__F_P9sofstream__1), ((void (*)(void *__anonymous_object1875, _Bool __anonymous_object1876))__sepReset__F_P9sofstreamb__1), ((const char *(*)(void *__anonymous_object1877))__sepGetCur__FPCc_P9sofstream__1), ((void (*)(void *__anonymous_object1878, const char *__anonymous_object1879))__sepSetCur__F_P9sofstreamPCc__1), ((_Bool (*)(void *__anonymous_object1880))__getNL__Fb_P9sofstream__1), ((void (*)(void *__anonymous_object1881, _Bool __anonymous_object1882))__setNL__F_P9sofstreamb__1), ((void (*)(void *__anonymous_object1883))__sepOn__F_P9sofstream__1), ((void (*)(void *__anonymous_object1884))__sepOff__F_P9sofstream__1), ((_Bool (*)(void *__anonymous_object1885))__sepDisable__Fb_P9sofstream__1), ((_Bool (*)(void *__anonymous_object1886))__sepEnable__Fb_P9sofstream__1), ((const char *(*)(void *__anonymous_object1887))__sepGet__FPCc_P9sofstream__1), ((void (*)(void *__anonymous_object1888, const char *__anonymous_object1889))__sepSet__F_P9sofstreamPCc__1), ((const char *(*)(void *__anonymous_object1890))__sepGetTuple__FPCc_P9sofstream__1), ((void (*)(void *__anonymous_object1891, const char *__anonymous_object1892))__sepSetTuple__F_P9sofstreamPCc__1), ((signed int (*)(void *__anonymous_object1893))__fail__Fi_P9sofstream__1), ((signed int (*)(void *__anonymous_object1894))__flush__Fi_P9sofstream__1), ((void (*)(void *__os__P7tostype_1, const char *__name__PCc_1, const char *__mode__PCc_1))__open__F_P9sofstreamPCcPCc__1), ((void (*)(void *__os__P7tostype_1))__close__F_P9sofstream__1), ((void *(*)(void *__anonymous_object1895, const char *__anonymous_object1896, unsigned long int __anonymous_object1897))__write__FP9sofstream_P9sofstreamPCcUl__1), ((signed int (*)(void *__anonymous_object1898, const char *__fmt__PCc_1, ...))__fmt__Fi_P9sofstreamPCc__1), (((void)(_tmp_cp_ret16=___operator_bitor__A0_1_0_0___sepPrt__PFb_Pd0___sepReset__PF_Pd0___sepReset__PF_Pd0b___sepGetCur__PFPCc_Pd0___sepSetCur__PF_Pd0PCc___getNL__PFb_Pd0___setNL__PF_Pd0b___sepOn__PF_Pd0___sepOff__PF_Pd0___sepDisable__PFb_Pd0___sepEnable__PFb_Pd0___sepGet__PFPCc_Pd0___sepSet__PF_Pd0PCc___sepGetTuple__PFPCc_Pd0___sepSetTuple__PF_Pd0PCc___fail__PFi_Pd0___flush__PFi_Pd0___open__PF_Pd0PCcPCc___close__PF_Pd0___write__PFPd0_Pd0PCcUl___fmt__PFi_Pd0PCc__FPd0_Pd0Ul__1(((_Bool (*)(void *__anonymous_object1899))__sepPrt__Fb_P9sofstream__1), ((void (*)(void *__anonymous_object1900))__sepReset__F_P9sofstream__1), ((void (*)(void *__anonymous_object1901, _Bool __anonymous_object1902))__sepReset__F_P9sofstreamb__1), ((const char *(*)(void *__anonymous_object1903))__sepGetCur__FPCc_P9sofstream__1), ((void (*)(void *__anonymous_object1904, const char *__anonymous_object1905))__sepSetCur__F_P9sofstreamPCc__1), ((_Bool (*)(void *__anonymous_object1906))__getNL__Fb_P9sofstream__1), ((void (*)(void *__anonymous_object1907, _Bool __anonymous_object1908))__setNL__F_P9sofstreamb__1), ((void (*)(void *__anonymous_object1909))__sepOn__F_P9sofstream__1), ((void (*)(void *__anonymous_object1910))__sepOff__F_P9sofstream__1), ((_Bool (*)(void *__anonymous_object1911))__sepDisable__Fb_P9sofstream__1), ((_Bool (*)(void *__anonymous_object1912))__sepEnable__Fb_P9sofstream__1), ((const char *(*)(void *__anonymous_object1913))__sepGet__FPCc_P9sofstream__1), ((void (*)(void *__anonymous_object1914, const char *__anonymous_object1915))__sepSet__F_P9sofstreamPCc__1), ((const char *(*)(void *__anonymous_object1916))__sepGetTuple__FPCc_P9sofstream__1), ((void (*)(void *__anonymous_object1917, const char *__anonymous_object1918))__sepSetTuple__F_P9sofstreamPCc__1), ((signed int (*)(void *__anonymous_object1919))__fail__Fi_P9sofstream__1), ((signed int (*)(void *__anonymous_object1920))__flush__Fi_P9sofstream__1), ((void (*)(void *__os__P7tostype_1, const char *__name__PCc_1, const char *__mode__PCc_1))__open__F_P9sofstreamPCcPCc__1), ((void (*)(void *__os__P7tostype_1))__close__F_P9sofstream__1), ((void *(*)(void *__anonymous_object1921, const char *__anonymous_object1922, unsigned long int __anonymous_object1923))__write__FP9sofstream_P9sofstreamPCcUl__1), ((signed int (*)(void *__anonymous_object1924, const char *__fmt__PCc_1, ...))__fmt__Fi_P9sofstreamPCc__1), (((void)(_tmp_cp_ret15=___operator_bitor__A0_1_0_0___sepPrt__PFb_Pd0___sepReset__PF_Pd0___sepReset__PF_Pd0b___sepGetCur__PFPCc_Pd0___sepSetCur__PF_Pd0PCc___getNL__PFb_Pd0___setNL__PF_Pd0b___sepOn__PF_Pd0___sepOff__PF_Pd0___sepDisable__PFb_Pd0___sepEnable__PFb_Pd0___sepGet__PFPCc_Pd0___sepSet__PF_Pd0PCc___sepGetTuple__PFPCc_Pd0___sepSetTuple__PF_Pd0PCc___fail__PFi_Pd0___flush__PFi_Pd0___open__PF_Pd0PCcPCc___close__PF_Pd0___write__PFPd0_Pd0PCcUl___fmt__PFi_Pd0PCc__FPd0_Pd0PCc__1(((_Bool (*)(void *__anonymous_object1925))__sepPrt__Fb_P9sofstream__1), ((void (*)(void *__anonymous_object1926))__sepReset__F_P9sofstream__1), ((void (*)(void *__anonymous_object1927, _Bool __anonymous_object1928))__sepReset__F_P9sofstreamb__1), ((const char *(*)(void *__anonymous_object1929))__sepGetCur__FPCc_P9sofstream__1), ((void (*)(void *__anonymous_object1930, const char *__anonymous_object1931))__sepSetCur__F_P9sofstreamPCc__1), ((_Bool (*)(void *__anonymous_object1932))__getNL__Fb_P9sofstream__1), ((void (*)(void *__anonymous_object1933, _Bool __anonymous_object1934))__setNL__F_P9sofstreamb__1), ((void (*)(void *__anonymous_object1935))__sepOn__F_P9sofstream__1), ((void (*)(void *__anonymous_object1936))__sepOff__F_P9sofstream__1), ((_Bool (*)(void *__anonymous_object1937))__sepDisable__Fb_P9sofstream__1), ((_Bool (*)(void *__anonymous_object1938))__sepEnable__Fb_P9sofstream__1), ((const char *(*)(void *__anonymous_object1939))__sepGet__FPCc_P9sofstream__1), ((void (*)(void *__anonymous_object1940, const char *__anonymous_object1941))__sepSet__F_P9sofstreamPCc__1), ((const char *(*)(void *__anonymous_object1942))__sepGetTuple__FPCc_P9sofstream__1), ((void (*)(void *__anonymous_object1943, const char *__anonymous_object1944))__sepSetTuple__F_P9sofstreamPCc__1), ((signed int (*)(void *__anonymous_object1945))__fail__Fi_P9sofstream__1), ((signed int (*)(void *__anonymous_object1946))__flush__Fi_P9sofstream__1), ((void (*)(void *__os__P7tostype_1, const char *__name__PCc_1, const char *__mode__PCc_1))__open__F_P9sofstreamPCcPCc__1), ((void (*)(void *__os__P7tostype_1))__close__F_P9sofstream__1), ((void *(*)(void *__anonymous_object1947, const char *__anonymous_object1948, unsigned long int __anonymous_object1949))__write__FP9sofstream_P9sofstreamPCcUl__1), ((signed int (*)(void *__anonymous_object1950, const char *__fmt__PCc_1, ...))__fmt__Fi_P9sofstreamPCc__1), __sout__P9sofstream_1, "size_t"))) , _tmp_cp_ret15), __v__Ul_1))) , _tmp_cp_ret16), ((void *(*)(void *__anonymous_object1951))(&_thunk5))))) , _tmp_cp_ret17));
+    ((void)(_tmp_cp_ret15) /* ^?{} */);
+    ((void)(_tmp_cp_ret16) /* ^?{} */);
+    ((void)(_tmp_cp_ret17) /* ^?{} */);
 }
 signed int __main__Fi___1(){
