diff --git a/acompare2/src/AutomatonCompare.h b/acompare2/src/AutomatonCompare.h
index 0919e8d6ca5248a9a70b29bbac46aefceef434ba..4473125fc4d3c1c07a9c6c06b17f65f852a4b44e 100644
--- a/acompare2/src/AutomatonCompare.h
+++ b/acompare2/src/AutomatonCompare.h
@@ -73,10 +73,10 @@ private:
 	template<class SymbolType, class StateType>
 	static void printCompare(const automaton::CompactNFA < SymbolType, StateType > & a, const automaton::CompactNFA < SymbolType, StateType > & b);
 
-	template<class SymbolType, class EpsilonType, class StateType>
-	static bool testCompare(const automaton::DPDA < SymbolType, EpsilonType, StateType > & a, const automaton::DPDA < SymbolType, EpsilonType, StateType > & b);
-	template<class SymbolType, class EpsilonType, class StateType>
-	static void printCompare(const automaton::DPDA < SymbolType, EpsilonType, StateType > & a, const automaton::DPDA < SymbolType, EpsilonType, StateType > & b);
+	template<class InputSymbolType, class EpsilonType, class PushdownStoreSymbolType, class StateType>
+	static bool testCompare(const automaton::DPDA < InputSymbolType, EpsilonType, PushdownStoreSymbolType, StateType > & a, const automaton::DPDA < InputSymbolType, EpsilonType, PushdownStoreSymbolType, StateType > & b);
+	template<class InputSymbolType, class EpsilonType, class PushdownStoreSymbolType, class StateType>
+	static void printCompare(const automaton::DPDA < InputSymbolType, EpsilonType, PushdownStoreSymbolType, StateType > & a, const automaton::DPDA < InputSymbolType, EpsilonType, PushdownStoreSymbolType, StateType > & b);
 
 	template<class SymbolType, class EpsilonType, class StateType>
 	static bool testCompare(const automaton::NPDA < SymbolType, EpsilonType, StateType > & a, const automaton::NPDA < SymbolType, EpsilonType, StateType > & b);
@@ -160,8 +160,8 @@ public:
 	template<class SymbolType, class RankType, class StateType>
 	static int compare(const automaton::NFTA < SymbolType, RankType, StateType > & a, const automaton::NFTA < SymbolType, RankType, StateType > & b);
 
-	template<class SymbolType, class EpsilonType, class StateType>
-	static int compare(const automaton::DPDA < SymbolType, EpsilonType, StateType > & a, const automaton::DPDA < SymbolType, EpsilonType, StateType > & b);
+	template<class InputSymbolType, class EpsilonType, class PushdownStoreSymbolType, class StateType>
+	static int compare(const automaton::DPDA < InputSymbolType, EpsilonType, PushdownStoreSymbolType, StateType > & a, const automaton::DPDA < InputSymbolType, EpsilonType, PushdownStoreSymbolType, StateType > & b);
 	template<class SymbolType, class EpsilonType, class StateType>
 	static int compare(const automaton::NPDA < SymbolType, EpsilonType, StateType > & a, const automaton::NPDA < SymbolType, EpsilonType, StateType > & b);
 	template<class SymbolType, class StateType>
@@ -257,8 +257,8 @@ bool AutomatonCompare::testCompare(const automaton::NFTA < SymbolType, RankType,
 			a.getTransitions()    == b.getTransitions()    ;
 }
 
-template<class SymbolType, class EpsilonType, class StateType>
-bool AutomatonCompare::testCompare(const automaton::DPDA < SymbolType, EpsilonType, StateType > & a, const automaton::DPDA < SymbolType, EpsilonType, StateType > & b) {
+template<class InputSymbolType, class EpsilonType, class PushdownStoreSymbolType, class StateType>
+bool AutomatonCompare::testCompare(const automaton::DPDA < InputSymbolType, EpsilonType, PushdownStoreSymbolType, StateType > & a, const automaton::DPDA < InputSymbolType, EpsilonType, PushdownStoreSymbolType, StateType > & b) {
 	return  	a.getFinalStates()    == b.getFinalStates()    &&
 			a.getInitialState()   == b.getInitialState()   &&
 //			a.getInputAlphabet()  == b.getInputAlphabet()  &&
@@ -718,8 +718,8 @@ void AutomatonCompare::printCompare(const automaton::NFTA < SymbolType, RankType
 	}
 }
 
-template<class SymbolType, class EpsilonType, class StateType>
-void AutomatonCompare::printCompare(const automaton::DPDA < SymbolType, EpsilonType, StateType > & a, const automaton::DPDA < SymbolType, EpsilonType, StateType > & b) {
+template<class InputSymbolType, class EpsilonType, class PushdownStoreSymbolType, class StateType>
+void AutomatonCompare::printCompare(const automaton::DPDA < InputSymbolType, EpsilonType, PushdownStoreSymbolType, StateType > & a, const automaton::DPDA < InputSymbolType, EpsilonType, PushdownStoreSymbolType, StateType > & b) {
 	std::cout << "AutomatonCompareer" << std::endl;
 
 	if(a.getFinalStates() != b.getFinalStates()){
@@ -1439,8 +1439,8 @@ int AutomatonCompare::compare(const automaton::NFTA < SymbolType, RankType, Stat
 	}
 }
 
-template<class SymbolType, class EpsilonType, class StateType>
-int AutomatonCompare::compare(const automaton::DPDA < SymbolType, EpsilonType, StateType > & a, const automaton::DPDA < SymbolType, EpsilonType, StateType > & b) {
+template<class InputSymbolType, class EpsilonType, class PushdownStoreSymbolType, class StateType>
+int AutomatonCompare::compare(const automaton::DPDA < InputSymbolType, EpsilonType, PushdownStoreSymbolType, StateType > & a, const automaton::DPDA < InputSymbolType, EpsilonType, PushdownStoreSymbolType, StateType > & b) {
 	if(!AutomatonCompare::testCompare(a, b)) {
 	  AutomatonCompare::printCompare(a, b);
 	  return 1;
diff --git a/aconvert2/src/DotConverter.h b/aconvert2/src/DotConverter.h
index d7415254b1a0b436689bac1e23fdcd92193efc41..48dc860e8e95ca5788f43e8b4b389d798bbbc39e 100644
--- a/aconvert2/src/DotConverter.h
+++ b/aconvert2/src/DotConverter.h
@@ -73,8 +73,8 @@ class DotConverter : public std::SingleDispatchFirstStaticParam<DotConverter, vo
 	template < class SymbolType, class RankType, class StateType >
 	static void transitions(const automaton::DFTA < SymbolType, RankType, StateType > & fsm, const std::map < StateType, int > & states, std::ostream & out);
 
-	template < class SymbolType, class EpsilonType, class StateType >
-	static void transitions(const automaton::DPDA < SymbolType, EpsilonType, StateType > & pda, const std::map < StateType, int > & states, std::ostream & out);
+	template < class InputSymbolType, class EpsilonType, class PushdownStoreSymbolType, class StateType >
+	static void transitions(const automaton::DPDA < InputSymbolType, EpsilonType, PushdownStoreSymbolType, StateType > & pda, const std::map < StateType, int > & states, std::ostream & out);
 
 	template < class SymbolType, class EpsilonType, class StateType >
 	static void transitions(const automaton::NPDA < SymbolType, EpsilonType, StateType > & pda, const std::map < StateType, int > & states, std::ostream & out);
@@ -132,8 +132,8 @@ public:
 	template < class SymbolType, class RankType, class StateType >
 	static void convert(std::ostream& out, const automaton::DFTA < SymbolType, RankType, StateType > & a);
 
-	template < class SymbolType, class EpsilonType, class StateType >
-	static void convert(std::ostream& out, const automaton::DPDA < SymbolType, EpsilonType, StateType > & a);
+	template < class InputSymbolType, class EpsilonType, class PushdownStoreSymbolType, class StateType >
+	static void convert(std::ostream& out, const automaton::DPDA < InputSymbolType, EpsilonType, PushdownStoreSymbolType, StateType > & a);
 
 	template < class SymbolType, class EpsilonType, class StateType >
 	static void convert(std::ostream& out, const automaton::NPDA < SymbolType, EpsilonType, StateType > & a);
@@ -416,8 +416,8 @@ void DotConverter::convert(std::ostream& out, const automaton::DFTA < SymbolType
 	out << "}";
 }
 
-template < class SymbolType, class EpsilonType, class StateType >
-void DotConverter::convert(std::ostream& out, const automaton::DPDA < SymbolType, EpsilonType, StateType > & a) {
+template < class InputSymbolType, class EpsilonType, class PushdownStoreSymbolType, class StateType >
+void DotConverter::convert(std::ostream& out, const automaton::DPDA < InputSymbolType, EpsilonType, PushdownStoreSymbolType, StateType > & a) {
 	out << "digraph automaton {\n";
 	out << "rankdir=LR;\n";
 	int cnt = 1;
@@ -1087,8 +1087,8 @@ void DotConverter::transitions(const automaton::DFTA < SymbolType, RankType, Sta
 	}
 }
 
-template < class SymbolType, class EpsilonType, class StateType >
-void DotConverter::transitions(const automaton::DPDA < SymbolType, EpsilonType, StateType > & pda, const std::map<StateType, int>& states, std::ostream& out) {
+template < class InputSymbolType, class EpsilonType, class PushdownStoreSymbolType, class StateType >
+void DotConverter::transitions(const automaton::DPDA < InputSymbolType, EpsilonType, PushdownStoreSymbolType, StateType > & pda, const std::map < StateType, int > & states, std::ostream& out) {
 	std::map<std::pair<int, int>, std::string> transitions;
 
 	for (const auto& transition : pda.getTransitions()) {
@@ -1098,7 +1098,7 @@ void DotConverter::transitions(const automaton::DPDA < SymbolType, EpsilonType,
 		if (std::get<1>(transition.first).template is< EpsilonType >()) {
 			symbol = "&epsilon;";
 		} else {
-			symbol = alib::StringDataFactory::toString(std::get<1>(transition.first).template get<SymbolType>());
+			symbol = alib::StringDataFactory::toString(std::get<1>(transition.first).template get<InputSymbolType>());
 		}
 
 		symbol += " |";
@@ -1107,7 +1107,7 @@ void DotConverter::transitions(const automaton::DPDA < SymbolType, EpsilonType,
 		if (std::get<2>(transition.first).size() == 0) {
 			symbol += " &epsilon;";
 		} else {
-			for (SymbolType symb : std::get<2>(transition.first)) {
+			for ( const PushdownStoreSymbolType & symb : std::get<2>(transition.first)) {
 				symbol += " " + alib::StringDataFactory::toString(symb);
 			}
 
@@ -1119,7 +1119,7 @@ void DotConverter::transitions(const automaton::DPDA < SymbolType, EpsilonType,
 		if (transition.second.second.size() == 0) {
 			symbol += " &epsilon;";
 		} else {
-			for (SymbolType symb : transition.second.second) {
+			for ( const PushdownStoreSymbolType & symb : transition.second.second) {
 				symbol += " " + alib::StringDataFactory::toString(symb);
 			}
 
diff --git a/aconvert2/src/GasTexConverter.h b/aconvert2/src/GasTexConverter.h
index dae47f34215f9fd53d1b46929f88081d378d16b5..6eef7c70cb357682badaf7bd47895a5f8e42a7e2 100644
--- a/aconvert2/src/GasTexConverter.h
+++ b/aconvert2/src/GasTexConverter.h
@@ -77,8 +77,8 @@ class GasTexConverter : public std::SingleDispatchFirstStaticParam<GasTexConvert
 	template < class SymbolType, class RankType, class StateType >
 	static void transitions(const automaton::DFTA < SymbolType, RankType, StateType > & fsm, std::ostream & out);
 
-	template < class SymbolType, class EpsilonType, class StateType >
-	static void transitions(const automaton::DPDA < SymbolType, EpsilonType, StateType > & pda, std::ostream & out);
+	template < class InputSymbolType, class EpsilonType, class PushdownStoreSymbolType, class StateType >
+	static void transitions(const automaton::DPDA < InputSymbolType, EpsilonType, PushdownStoreSymbolType, StateType > & pda, std::ostream & out);
 
 	template < class SymbolType, class EpsilonType, class StateType >
 	static void transitions(const automaton::NPDA < SymbolType, EpsilonType, StateType > & pda, std::ostream & out);
@@ -136,8 +136,8 @@ public:
 	template < class SymbolType, class RankType, class StateType >
 	static void convert(std::ostream& out, const automaton::DFTA < SymbolType, RankType, StateType > & a);
 
-	template < class SymbolType, class EpsilonType, class StateType >
-	static void convert(std::ostream& out, const automaton::DPDA < SymbolType, EpsilonType, StateType > & a);
+	template < class InputSymbolType, class EpsilonType, class PushdownStoreSymbolType, class StateType >
+	static void convert(std::ostream& out, const automaton::DPDA < InputSymbolType, EpsilonType, PushdownStoreSymbolType, StateType > & a);
 
 	template < class SymbolType, class EpsilonType, class StateType >
 	static void convert(std::ostream& out, const automaton::NPDA < SymbolType, EpsilonType, StateType > & a);
@@ -420,8 +420,8 @@ void GasTexConverter::convert(std::ostream&, const automaton::DFTA < SymbolType,
 	//TODO
 }
 
-template < class SymbolType, class EpsilonType, class StateType >
-void GasTexConverter::convert(std::ostream& out, const automaton::DPDA < SymbolType, EpsilonType, StateType > & a) {
+template < class InputSymbolType, class EpsilonType, class PushdownStoreSymbolType, class StateType >
+void GasTexConverter::convert(std::ostream& out, const automaton::DPDA < InputSymbolType, EpsilonType, PushdownStoreSymbolType, StateType > & a) {
 	out << "\\begin{center}\n";
 	out << "\\begin{picture}(,)(,)\n";
 
@@ -1012,8 +1012,8 @@ void GasTexConverter::transitions(const automaton::DFTA < SymbolType, RankType,
 	//TODO
 }
 
-template<class SymbolType, class EpsilonType, class StateType>
-void GasTexConverter::transitions(const automaton::DPDA < SymbolType, EpsilonType, StateType > & pda, std::ostream& out) {
+template<class InputSymbolType, class EpsilonType, class PushdownStoreSymbolType, class StateType>
+void GasTexConverter::transitions(const automaton::DPDA < InputSymbolType, EpsilonType, PushdownStoreSymbolType, StateType > & pda, std::ostream& out) {
 	std::map<std::pair<std::string, std::string>, std::string> transitionMap;
 
 	for (const auto& transition : pda.getTransitions()) {
@@ -1024,7 +1024,7 @@ void GasTexConverter::transitions(const automaton::DPDA < SymbolType, EpsilonTyp
 		if (std::get<1>(transition.first).template is<EpsilonType>()) {
 			symbol = "$\\varepsilon;$";
 		} else {
-			symbol = alib::StringDataFactory::toString(std::get<1>(transition.first).template get<SymbolType>());
+			symbol = alib::StringDataFactory::toString(std::get<1>(transition.first).template get<InputSymbolType>());
 		}
 
 		symbol += "|";
diff --git a/aconvert2/src/TikZConverter.h b/aconvert2/src/TikZConverter.h
index b1132d34d4e5a0a60a40fbc747140124498fa624..2f2ab4c96b2d22ca886d39a4552b2709316a5866 100644
--- a/aconvert2/src/TikZConverter.h
+++ b/aconvert2/src/TikZConverter.h
@@ -73,8 +73,8 @@ class TikZConverter : public std::SingleDispatchFirstStaticParam < TikZConverter
 	template < class SymbolType, class RankType, class StateType >
 	static void transitions(const automaton::DFTA < SymbolType, RankType, StateType > & fsm, const std::map < StateType, int > & states, std::ostream & out);
 
-	template < class SymbolType, class EpsilonType, class StateType >
-	static void transitions(const automaton::DPDA < SymbolType, EpsilonType, StateType > & pda, const std::map < StateType, int > & states, std::ostream & out);
+	template < class InputSymbolType, class EpsilonType, class PushdownStoreSymbolType, class StateType >
+	static void transitions(const automaton::DPDA < InputSymbolType, EpsilonType, PushdownStoreSymbolType, StateType > & pda, const std::map < StateType, int > & states, std::ostream & out);
 
 	template < class SymbolType, class EpsilonType, class StateType >
 	static void transitions(const automaton::NPDA < SymbolType, EpsilonType, StateType > & pda, const std::map < StateType, int > & states, std::ostream & out);
@@ -132,8 +132,8 @@ public:
 	template < class SymbolType, class RankType, class StateType >
 	static void convert(std::ostream& out, const automaton::DFTA < SymbolType, RankType, StateType > & a);
 
-	template < class SymbolType, class EpsilonType, class StateType >
-	static void convert(std::ostream& out, const automaton::DPDA < SymbolType, EpsilonType, StateType > & a);
+	template < class InputSymbolType, class EpsilonType, class PushdownStoreSymbolType, class StateType >
+	static void convert(std::ostream& out, const automaton::DPDA < InputSymbolType, EpsilonType, PushdownStoreSymbolType, StateType > & a);
 
 	template < class SymbolType, class EpsilonType, class StateType >
 	static void convert(std::ostream& out, const automaton::NPDA < SymbolType, EpsilonType, StateType > & a);
@@ -384,8 +384,8 @@ void TikZConverter::convert ( std::ostream & out, const automaton::DFTA < Symbol
 	out << "\\end{tikzpicture}";
 }
 
-template<class SymbolType, class EpsilonType, class StateType>
-void TikZConverter::convert ( std::ostream & out, const automaton::DPDA < SymbolType, EpsilonType, StateType > & a ) {
+template<class InputSymbolType, class EpsilonType, class PushdownStoreSymbolType, class StateType>
+void TikZConverter::convert ( std::ostream & out, const automaton::DPDA < InputSymbolType, EpsilonType, PushdownStoreSymbolType, StateType > & a ) {
 	out << "\\begin{tikzpicture}\n";
 	int cnt = 1;
 
@@ -1083,8 +1083,8 @@ void TikZConverter::transitions ( const automaton::DFTA < SymbolType, RankType,
 	}
 }
 
-template<class SymbolType, class EpsilonType, class StateType>
-void TikZConverter::transitions ( const automaton::DPDA < SymbolType, EpsilonType, StateType > & pda, const std::map < StateType, int > & states, std::ostream & out ) {
+template<class InputSymbolType, class EpsilonType, class PushdownStoreSymbolType, class StateType>
+void TikZConverter::transitions ( const automaton::DPDA < InputSymbolType, EpsilonType, PushdownStoreSymbolType, StateType > & pda, const std::map < StateType, int > & states, std::ostream & out ) {
 	std::map < std::pair < int, int >, std::string > transitions;
 
 	for ( const auto & transition : pda.getTransitions ( ) ) {
@@ -1094,7 +1094,7 @@ void TikZConverter::transitions ( const automaton::DPDA < SymbolType, EpsilonTyp
 		if ( std::get < 1 > ( transition.first ).template is < EpsilonType > ( ) )
 			symbol = "&epsilon;";
 		else
-			symbol = alib::StringDataFactory::toString ( std::get < 1 > ( transition.first ).template get < SymbolType > ( ) );
+			symbol = alib::StringDataFactory::toString ( std::get < 1 > ( transition.first ).template get < InputSymbolType > ( ) );
 
 		symbol += " |";
 
@@ -1102,7 +1102,7 @@ void TikZConverter::transitions ( const automaton::DPDA < SymbolType, EpsilonTyp
 		if ( std::get < 2 > ( transition.first ).size ( ) == 0 )
 			symbol += " &epsilon;";
 		else
-			for ( SymbolType symb : std::get < 2 > ( transition.first ) )
+			for ( const PushdownStoreSymbolType & symb : std::get < 2 > ( transition.first ) )
 				symbol += " " + alib::StringDataFactory::toString ( symb );
 
 		symbol += " ->";
@@ -1111,7 +1111,7 @@ void TikZConverter::transitions ( const automaton::DPDA < SymbolType, EpsilonTyp
 		if ( transition.second.second.size ( ) == 0 )
 			symbol += " &epsilon;";
 		else
-			for ( SymbolType symb : transition.second.second )
+			for ( const PushdownStoreSymbolType & symb : transition.second.second )
 				symbol += " " + alib::StringDataFactory::toString ( symb );
 
 		 // Insert into map
diff --git a/alib2algo/src/automaton/run/Accept.h b/alib2algo/src/automaton/run/Accept.h
index 172aec9a3ed210adacd540c7a352b07df0a73e41..569aae16883febdd91c002a2c6741746b9ea389e 100644
--- a/alib2algo/src/automaton/run/Accept.h
+++ b/alib2algo/src/automaton/run/Accept.h
@@ -58,8 +58,8 @@ public:
 	static bool accept ( const automaton::VisiblyPushdownDPDA < SymbolType, StateType > & automaton, const string::LinearString < SymbolType > & string );
 	template < class SymbolType, class EpsilonType, class StateType >
 	static bool accept ( const automaton::RealTimeHeightDeterministicDPDA < SymbolType, EpsilonType, StateType > & automaton, const string::LinearString < SymbolType > & string );
-	template < class SymbolType, class EpsilonType, class StateType >
-	static bool accept ( const automaton::DPDA < SymbolType, EpsilonType, StateType > & automaton, const string::LinearString < SymbolType > & string );
+	template < class InputSymbolType, class EpsilonType, class PushdownStoreSymbolType, class StateType >
+	static bool accept ( const automaton::DPDA < InputSymbolType, EpsilonType, PushdownStoreSymbolType, StateType > & automaton, const string::LinearString < InputSymbolType > & string );
 	template < class SymbolType, class EpsilonType, class StateType >
 	static bool accept ( const automaton::NPDTA < SymbolType, EpsilonType, StateType > & automaton, const string::LinearString < SymbolType > & string );
 
@@ -118,9 +118,9 @@ bool Accept::accept ( const automaton::RealTimeHeightDeterministicDPDA < SymbolT
 	return std::get < 0 > ( res ) && automaton.getFinalStates ( ).count ( std::get < 1 > ( res ) );
 }
 
-template < class SymbolType, class EpsilonType, class StateType >
-bool Accept::accept ( const automaton::DPDA < SymbolType, EpsilonType, StateType > & automaton, const string::LinearString < SymbolType > & string ) {
-	std::tuple < bool, StateType, std::set < unsigned >, std::deque < SymbolType > > res = Run::calculateState ( automaton, string );
+template < class InputSymbolType, class EpsilonType, class PushdownStoreSymbolType, class StateType >
+bool Accept::accept ( const automaton::DPDA < InputSymbolType, EpsilonType, PushdownStoreSymbolType, StateType > & automaton, const string::LinearString < InputSymbolType > & string ) {
+	std::tuple < bool, StateType, std::set < unsigned >, std::deque < PushdownStoreSymbolType > > res = Run::calculateState ( automaton, string );
 
 	return std::get < 0 > ( res ) && ( automaton.getFinalStates ( ).count ( std::get < 1 > ( res ) ) || ( automaton.getFinalStates ( ).size ( ) == 0 && std::get < 3 > ( res ).size ( ) == 0 ) );
 }
diff --git a/alib2algo/src/automaton/run/Occurrences.h b/alib2algo/src/automaton/run/Occurrences.h
index a95b4f913e0f7d9f52781fc67caf9c52ab16c210..8acf4f5a73873e12b9aefab56f6bdcace67fe9ee 100644
--- a/alib2algo/src/automaton/run/Occurrences.h
+++ b/alib2algo/src/automaton/run/Occurrences.h
@@ -50,8 +50,8 @@ public:
 	static std::set < unsigned > occurrences ( const automaton::VisiblyPushdownDPDA < SymbolType, StateType > & automaton, const string::LinearString < SymbolType > & string );
 	template < class SymbolType, class EpsilonType, class StateType >
 	static std::set < unsigned > occurrences ( const automaton::RealTimeHeightDeterministicDPDA < SymbolType, EpsilonType, StateType > & automaton, const string::LinearString < SymbolType > & string );
-	template < class SymbolType, class EpsilonType, class StateType >
-	static std::set < unsigned > occurrences ( const automaton::DPDA < SymbolType, EpsilonType, StateType > & automaton, const string::LinearString < SymbolType > & string );
+	template < class InputSymbolType, class EpsilonType, class PushdownStoreSymbolType, class StateType >
+	static std::set < unsigned > occurrences ( const automaton::DPDA < InputSymbolType, EpsilonType, PushdownStoreSymbolType, StateType > & automaton, const string::LinearString < InputSymbolType > & string );
 
 };
 
@@ -90,9 +90,9 @@ std::set < unsigned > Occurrences::occurrences ( const automaton::RealTimeHeight
 	return std::get < 2 > ( res );
 }
 
-template < class SymbolType, class EpsilonType, class StateType >
-std::set < unsigned > Occurrences::occurrences ( const automaton::DPDA < SymbolType, EpsilonType, StateType > & automaton, const string::LinearString < SymbolType > & string ) {
-	std::tuple < bool, StateType, std::set < unsigned >, std::deque < SymbolType > > res = Run::calculateState ( automaton, string );
+template < class InputSymbolType, class EpsilonType, class PushdownStoreSymbolType, class StateType >
+std::set < unsigned > Occurrences::occurrences ( const automaton::DPDA < InputSymbolType, EpsilonType, PushdownStoreSymbolType, StateType > & automaton, const string::LinearString < InputSymbolType > & string ) {
+	std::tuple < bool, StateType, std::set < unsigned >, std::deque < PushdownStoreSymbolType > > res = Run::calculateState ( automaton, string );
 
 	return std::get < 2 > ( res );
 }
diff --git a/alib2algo/src/automaton/run/Result.h b/alib2algo/src/automaton/run/Result.h
index bc6341fe7df795503ccda3b2f0bb679311da5865..549713ecca3cfe8bc47f80e38a89077e5ac720ea 100644
--- a/alib2algo/src/automaton/run/Result.h
+++ b/alib2algo/src/automaton/run/Result.h
@@ -50,8 +50,8 @@ public:
 	static StateType result ( const automaton::VisiblyPushdownDPDA < SymbolType, StateType > & automaton, const string::LinearString < SymbolType > & string, const StateType & failLabel = label::FailStateLabel::instance < StateType > ( ) );
 	template < class SymbolType, class EpsilonType, class StateType >
 	static StateType result ( const automaton::RealTimeHeightDeterministicDPDA < SymbolType, EpsilonType, StateType > & automaton, const string::LinearString < SymbolType > & string, const StateType & failLabel = label::FailStateLabel::instance < StateType > ( ) );
-	template < class SymbolType, class EpsilonType, class StateType >
-	static StateType result ( const automaton::DPDA < SymbolType, EpsilonType, StateType > & automaton, const string::LinearString < SymbolType > & string, const StateType & failLabel = label::FailStateLabel::instance < StateType > ( ) );
+	template < class InputSymbolType, class EpsilonType, class PushdownStoreSymbolType, class StateType >
+	static StateType result ( const automaton::DPDA < InputSymbolType, EpsilonType, PushdownStoreSymbolType, StateType > & automaton, const string::LinearString < InputSymbolType > & string, const StateType & failLabel = label::FailStateLabel::instance < StateType > ( ) );
 
 };
 
@@ -100,9 +100,9 @@ StateType Result::result ( const automaton::RealTimeHeightDeterministicDPDA < Sy
 	return failLabel;
 }
 
-template < class SymbolType, class EpsilonType, class StateType >
-StateType Result::result ( const automaton::DPDA < SymbolType, EpsilonType, StateType > & automaton, const string::LinearString < SymbolType > & string, const StateType & failLabel ) {
-	std::tuple < bool, StateType, std::set < unsigned >, std::deque < SymbolType > > res = Run::calculateState ( automaton, string );
+template < class InputSymbolType, class EpsilonType, class PushdownStoreSymbolType, class StateType >
+StateType Result::result ( const automaton::DPDA < InputSymbolType, EpsilonType, PushdownStoreSymbolType, StateType > & automaton, const string::LinearString < InputSymbolType > & string, const StateType & failLabel ) {
+	std::tuple < bool, StateType, std::set < unsigned >, std::deque < PushdownStoreSymbolType > > res = Run::calculateState ( automaton, string );
 
 	if ( std::get < 0 > ( res ) ) return std::get < 1 > ( res );
 
diff --git a/alib2algo/src/automaton/run/Run.h b/alib2algo/src/automaton/run/Run.h
index 96e4bec98ab627b10f7eb9e59c32e893f85683ce..b67c1b58ca4088322268c40eb86cdede9139233c 100644
--- a/alib2algo/src/automaton/run/Run.h
+++ b/alib2algo/src/automaton/run/Run.h
@@ -57,8 +57,8 @@ public:
 	static std::tuple < bool, StateType, std::set < unsigned >, std::deque < SymbolType > > calculateState ( const automaton::VisiblyPushdownDPDA < SymbolType, StateType > & automaton, const string::LinearString < SymbolType > & string );
 	template < class SymbolType, class EpsilonType, class StateType >
 	static std::tuple < bool, StateType, std::set < unsigned >, std::deque < SymbolType > > calculateState ( const automaton::RealTimeHeightDeterministicDPDA < SymbolType, EpsilonType, StateType > & automaton, const string::LinearString < SymbolType > & string );
-	template < class SymbolType, class EpsilonType, class StateType >
-	static std::tuple < bool, StateType, std::set < unsigned >, std::deque < SymbolType > > calculateState ( const automaton::DPDA < SymbolType, EpsilonType, StateType > & automaton, const string::LinearString < SymbolType > & string );
+	template < class InputSymbolType, class EpsilonType, class PushdownStoreSymbolType, class StateType >
+	static std::tuple < bool, StateType, std::set < unsigned >, std::deque < PushdownStoreSymbolType > > calculateState ( const automaton::DPDA < InputSymbolType, EpsilonType, PushdownStoreSymbolType, StateType > & automaton, const string::LinearString < InputSymbolType > & string );
 	template < class SymbolType, class EpsilonType, class StateType >
 	static std::tuple < bool, std::set < StateType >, std::set < std::vector < SymbolType > > > calculateStates ( const automaton::NPDTA < SymbolType, EpsilonType, StateType > & automaton, const string::LinearString < SymbolType > & string );
 };
@@ -463,10 +463,10 @@ std::tuple < bool, StateType, std::set < unsigned >, std::deque < SymbolType > >
 
 // ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
 
-template < class SymbolType, class EpsilonType, class StateType >
-std::tuple < bool, StateType, std::set < unsigned >, std::deque < SymbolType > > Run::calculateState ( const automaton::DPDA < SymbolType, EpsilonType, StateType > & automaton, const string::LinearString < SymbolType > & string ) {
+template < class InputSymbolType, class EpsilonType, class PushdownStoreSymbolType, class StateType >
+std::tuple < bool, StateType, std::set < unsigned >, std::deque < PushdownStoreSymbolType > > Run::calculateState ( const automaton::DPDA < InputSymbolType, EpsilonType, PushdownStoreSymbolType, StateType > & automaton, const string::LinearString < InputSymbolType > & string ) {
 	StateType state = automaton.getInitialState ( );
-	std::deque < SymbolType > pushdownStore {
+	std::deque < PushdownStoreSymbolType > pushdownStore {
 		automaton.getInitialSymbol ( )
 	};
 	unsigned i = 0;
diff --git a/alib2algo/src/automaton/simplify/Normalize.cpp b/alib2algo/src/automaton/simplify/Normalize.cpp
index 00e1737ed31be9656136e7df946afd18e1e63237..4951676f15d34199a70503925e6e2918e7443d98 100644
--- a/alib2algo/src/automaton/simplify/Normalize.cpp
+++ b/alib2algo/src/automaton/simplify/Normalize.cpp
@@ -26,7 +26,7 @@ automaton::Automaton Normalize::normalize(const automaton::Automaton& automaton)
 }
 
 auto NormalizeDFA = Normalize::RegistratorWrapper<automaton::DFA < DefaultSymbolType, unsigned >, automaton::DFA < > >(Normalize::normalize);
-auto NormalizeDPDA = Normalize::RegistratorWrapper<automaton::DPDA < DefaultSymbolType, DefaultEpsilonType, unsigned >, automaton::DPDA < > >(Normalize::normalize);
+auto NormalizeDPDA = Normalize::RegistratorWrapper<automaton::DPDA < DefaultSymbolType, DefaultEpsilonType, unsigned, unsigned >, automaton::DPDA < > >(Normalize::normalize);
 
 } /* namespace simplify */
 
diff --git a/alib2algo/src/automaton/simplify/Normalize.h b/alib2algo/src/automaton/simplify/Normalize.h
index 889f02463e64f12fee0311e46155d9a151339b3f..9abc53763552b9b27bc6801cb9ef3e841c61aeff 100644
--- a/alib2algo/src/automaton/simplify/Normalize.h
+++ b/alib2algo/src/automaton/simplify/Normalize.h
@@ -26,8 +26,8 @@ public:
 
 	template < class SymbolType, class StateType >
 	static automaton::DFA < SymbolType, unsigned > normalize(const automaton::DFA < SymbolType, StateType > & dfa);
-	template < class EpsilonType, class StateType >
-	static automaton::DPDA < DefaultSymbolType, EpsilonType, unsigned > normalize(const automaton::DPDA < DefaultSymbolType, EpsilonType, StateType > & dfa);
+	template < class InputSymbolType, class EpsilonType, class PushdownStoreSymbolType, class StateType >
+	static automaton::DPDA < InputSymbolType, EpsilonType, unsigned, unsigned > normalize(const automaton::DPDA < InputSymbolType, EpsilonType, PushdownStoreSymbolType, StateType > & dfa);
 };
 
 template < class SymbolType, class StateType >
@@ -77,12 +77,12 @@ automaton::DFA < SymbolType, unsigned > Normalize::normalize(const automaton::DF
 	return result;
 }
 
-template < class EpsilonType, class StateType >
-automaton::DPDA < DefaultSymbolType, EpsilonType, unsigned > Normalize::normalize(const automaton::DPDA < DefaultSymbolType, EpsilonType, StateType > & pda) {
+template < class InputSymbolType, class EpsilonType, class PushdownStoreSymbolType, class StateType >
+automaton::DPDA < InputSymbolType, EpsilonType, unsigned, unsigned > Normalize::normalize(const automaton::DPDA < InputSymbolType, EpsilonType, PushdownStoreSymbolType, StateType > & pda) {
 	unsigned counterState = 0;
 	std::map< StateType, unsigned > normalizationDataState;
-	int counterSymbol = 0;
-	std::map < DefaultSymbolType, int > normalizationDataSymbol;
+	unsigned counterSymbol = 0;
+	std::map < InputSymbolType, unsigned > normalizationDataSymbol;
 	std::deque < StateType > processingData;
 
 	normalizationDataState.insert(std::make_pair(pda.getInitialState(), counterState++));
@@ -93,16 +93,16 @@ automaton::DPDA < DefaultSymbolType, EpsilonType, unsigned > Normalize::normaliz
 		StateType current = std::move ( processingData.front() );
 		processingData.pop_front();
 
-		std::map < std::pair < std::variant < EpsilonType, DefaultSymbolType >, std::vector < DefaultSymbolType > >, std::pair < StateType, std::vector < DefaultSymbolType > > > transform;
+		std::map < std::pair < std::variant < EpsilonType, InputSymbolType >, std::vector < unsigned > >, std::pair < StateType, std::vector < PushdownStoreSymbolType > > > transform;
 		bool stateFinished = true;
 		// For each transition from state current
-		for ( const std::pair < const std::tuple < StateType, std::variant < EpsilonType, DefaultSymbolType >, std::vector < DefaultSymbolType > >, std::pair < StateType, std::vector < DefaultSymbolType > > > & iter : pda.getTransitionsFromState(current)) {
+		for ( const std::pair < const std::tuple < StateType, std::variant < EpsilonType, InputSymbolType >, std::vector < PushdownStoreSymbolType > >, std::pair < StateType, std::vector < PushdownStoreSymbolType > > > & iter : pda.getTransitionsFromState(current)) {
 			// look whether all poped symbols are already transformed
-			if(std::all_of(std::get<2>(iter.first).begin(), std::get<2>(iter.first).end(), [&](const DefaultSymbolType& symbol) { return normalizationDataSymbol.find(symbol) != normalizationDataSymbol.end(); })) {
-				std::vector < DefaultSymbolType > transformedSymbols;
+			if(std::all_of(std::get<2>(iter.first).begin(), std::get<2>(iter.first).end(), [&](const PushdownStoreSymbolType& symbol) { return normalizationDataSymbol.find(symbol) != normalizationDataSymbol.end(); })) {
+				std::vector < unsigned > transformedSymbols;
 				// if so compute vector of transformed poped symbol -- this can be compared to other vectors of transformed symbols and the order can by trusted
-				for(const DefaultSymbolType& symbol : std::get<2> ( iter.first ) ) {
-					transformedSymbols.push_back(DefaultSymbolType(normalizationDataSymbol.find(symbol)->second));
+				for(const PushdownStoreSymbolType& symbol : std::get<2> ( iter.first ) ) {
+					transformedSymbols.push_back(normalizationDataSymbol.find(symbol)->second);
 				}
 
 				// then first order is by input symbol and the second is this vector transfomed symbols 
@@ -126,7 +126,7 @@ automaton::DPDA < DefaultSymbolType, EpsilonType, unsigned > Normalize::normaliz
 				processingData.push_back(iters.first);
 			}
 			// if the symbols in order given by order of pushing are new asign a unique number to them
-			for(const DefaultSymbolType& iter2 : iters.second) {
+			for(const PushdownStoreSymbolType & iter2 : iters.second) {
 				if( normalizationDataSymbol.find(iter2) == normalizationDataSymbol.end() ) {
 					normalizationDataSymbol.insert(std::make_pair(iter2, counterSymbol++));
 				}
@@ -138,11 +138,11 @@ automaton::DPDA < DefaultSymbolType, EpsilonType, unsigned > Normalize::normaliz
 		throw exception::CommonException("Automaton normalize require connected deterministic pushdown automaton");
 	}
 
-	automaton::DPDA < DefaultSymbolType, EpsilonType, unsigned > result ( normalizationDataState.find ( pda.getInitialState ( ) )->second, DefaultSymbolType ( normalizationDataSymbol.find ( pda.getInitialSymbol ( ) )->second ) );
+	automaton::DPDA < InputSymbolType, EpsilonType, unsigned, unsigned > result ( normalizationDataState.find ( pda.getInitialState ( ) )->second, normalizationDataSymbol.find ( pda.getInitialSymbol ( ) )->second );
 	result.setInputAlphabet(pda.getInputAlphabet());
 
 	for(const DefaultSymbolType & symbol : pda.getPushdownStoreAlphabet())
-		result.addPushdownStoreSymbol(DefaultSymbolType(normalizationDataSymbol.find(symbol)->second));
+		result.addPushdownStoreSymbol(normalizationDataSymbol.find(symbol)->second);
 
 	for(const DefaultStateType & state : pda.getStates())
 		result.addState ( normalizationDataState.find(state)->second);
@@ -151,13 +151,13 @@ automaton::DPDA < DefaultSymbolType, EpsilonType, unsigned > Normalize::normaliz
 		result.addFinalState ( normalizationDataState.find(state)->second );
 
 	for(const auto & transition : pda.getTransitions()) {
-		std::vector<DefaultSymbolType> pop;
+		std::vector<unsigned> pop;
 		for(const auto& elem : std::get<2>(transition.first)) {
-			pop.push_back(DefaultSymbolType(normalizationDataSymbol.find(elem)->second));
+			pop.push_back(normalizationDataSymbol.find(elem)->second);
 		}
-		std::vector<DefaultSymbolType> push;
+		std::vector<unsigned> push;
 		for(const auto& elem : transition.second.second) {
-			push.push_back(DefaultSymbolType(normalizationDataSymbol.find(elem)->second));
+			push.push_back(normalizationDataSymbol.find(elem)->second);
 		}
 		result.addTransition ( normalizationDataState.find(std::get<0>(transition.first))->second, std::get<1>(transition.first), pop, normalizationDataState.find(transition.second.first)->second, push);
 	}
diff --git a/alib2data/src/automaton/AutomatonFeatures.h b/alib2data/src/automaton/AutomatonFeatures.h
index 7e9d0054e769d82fe8d79678f42d5674493806ec..922a242eee8ffbe455f50607ef53faf99afc3e65 100644
--- a/alib2data/src/automaton/AutomatonFeatures.h
+++ b/alib2data/src/automaton/AutomatonFeatures.h
@@ -53,7 +53,7 @@ template<class SymbolType = DefaultSymbolType, class StateType = DefaultStateTyp
 class CompactNFA;
 template<class SymbolType = DefaultSymbolType, class StateType = DefaultStateType >
 class ExtendedNFA;
-template<class SymbolType = DefaultSymbolType, class EpsilonType = DefaultEpsilonType, class StateType = DefaultStateType >
+template<class InputSymbolType = DefaultSymbolType, class EpsilonType = DefaultEpsilonType, class PushdownStoreSymbolType = DefaultSymbolType, class StateType = DefaultStateType >
 class DPDA;
 template<class SymbolType = DefaultSymbolType, class StateType = DefaultStateType >
 class InputDrivenDPDA;
diff --git a/alib2data/src/automaton/PDA/DPDA.h b/alib2data/src/automaton/PDA/DPDA.h
index bf078ecc9f2faa1b2105f2cc0ccacc0fcfa027bc..ea973a6b8e24a376562fecac6120d6b232ce6dda 100644
--- a/alib2data/src/automaton/PDA/DPDA.h
+++ b/alib2data/src/automaton/PDA/DPDA.h
@@ -41,14 +41,14 @@ class InitialState;
  * if $\delta (q, a, \alpha) \neq \emptyset$, $\delta (q, a, \beta) \neq \emptyset$ and $\alpha \neq \beta$, then $\alpha$ is not suffix of $\beta$ and $\beta$ is not suffix of $\alpha$ (formally $\gamma \alpha \neq \beta and \alpha \neq \gamma \beta$).
  * if $\delta(q, a, \alpha) \neq \emptyset$, $\delta (q, \varepsilon, \beta) \neq \emptyset$, then $\alpha$ is not suffix of $\beta$ and $\beta$ is not suffix of $\alpha$ (fornally $\gamma \alpha \neq \beta and \alpha \neq \gamma \beta$).
  */
-template < class SymbolType, class EpsilonType, class StateType >
-class DPDA : public AutomatonBase, public std::Components < DPDA < SymbolType, EpsilonType, StateType >, SymbolType, std::tuple < InputAlphabet, PushdownStoreAlphabet >, std::tuple < InitialSymbol >, StateType, std::tuple < States, FinalStates >, std::tuple < InitialState > > {
+template < class InputSymbolType, class EpsilonType, class PushdownStoreSymbolType, class StateType >
+class DPDA : public AutomatonBase, public std::Components < DPDA < InputSymbolType, EpsilonType, PushdownStoreSymbolType, StateType >, InputSymbolType, std::tuple < InputAlphabet>, std::tuple < >, PushdownStoreSymbolType, std::tuple < PushdownStoreAlphabet >, std::tuple < InitialSymbol >, StateType, std::tuple < States, FinalStates >, std::tuple < InitialState > > {
 protected:
-	std::map < std::tuple < StateType, std::variant < EpsilonType, SymbolType >, std::vector < SymbolType > >, std::pair < StateType, std::vector < SymbolType > > > transitions;
+	std::map < std::tuple < StateType, std::variant < EpsilonType, InputSymbolType >, std::vector < PushdownStoreSymbolType > >, std::pair < StateType, std::vector < PushdownStoreSymbolType > > > transitions;
 
 public:
-	explicit DPDA ( std::set < StateType > states, std::set < SymbolType > inputAlphabet, std::set < SymbolType > pushdownStoreSymbol, StateType initialState, SymbolType initialPushdownSymbol, std::set < StateType > finalStates );
-	explicit DPDA ( StateType initialState, SymbolType initialPushdownSymbol );
+	explicit DPDA ( std::set < StateType > states, std::set < InputSymbolType > inputAlphabet, std::set < PushdownStoreSymbolType > pushdownStoreSymbol, StateType initialState, PushdownStoreSymbolType initialPushdownSymbol, std::set < StateType > finalStates );
+	explicit DPDA ( StateType initialState, PushdownStoreSymbolType initialPushdownSymbol );
 
 	virtual AutomatonBase * clone ( ) const;
 
@@ -94,51 +94,51 @@ public:
 		this->template accessComponent < FinalStates > ( ).remove ( state );
 	}
 
-	const std::set < SymbolType > & getPushdownStoreAlphabet ( ) const {
+	const std::set < PushdownStoreSymbolType > & getPushdownStoreAlphabet ( ) const {
 		return this->template accessComponent < PushdownStoreAlphabet > ( ).get ( );
 	}
 
-	bool addPushdownStoreSymbol ( SymbolType symbol ) {
+	bool addPushdownStoreSymbol ( PushdownStoreSymbolType symbol ) {
 		return this->template accessComponent < PushdownStoreAlphabet > ( ).add ( std::move ( symbol ) );
 	}
 
-	void addPushdownStoreSymbols ( std::set < SymbolType > symbols ) {
+	void addPushdownStoreSymbols ( std::set < PushdownStoreSymbolType > symbols ) {
 		this->template accessComponent < PushdownStoreAlphabet > ( ).add ( std::move ( symbols ) );
 	}
 
-	void setPushdownStoreAlphabet ( std::set < SymbolType > symbols ) {
+	void setPushdownStoreAlphabet ( std::set < PushdownStoreSymbolType > symbols ) {
 		this->template accessComponent < PushdownStoreAlphabet > ( ).set ( std::move ( symbols ) );
 	}
 
-	void removePushdownStoreSymbol ( const SymbolType & symbol ) {
+	void removePushdownStoreSymbol ( const PushdownStoreSymbolType & symbol ) {
 		this->template accessComponent < PushdownStoreAlphabet > ( ).remove ( symbol );
 	}
 
-	const SymbolType & getInitialSymbol ( ) const {
+	const PushdownStoreSymbolType & getInitialSymbol ( ) const {
 		return this->template accessElement < InitialSymbol > ( ).get ( );
 	}
 
-	bool setInitialSymbol ( SymbolType symbol ) {
+	bool setInitialSymbol ( PushdownStoreSymbolType symbol ) {
 		return this->template accessElement < InitialSymbol > ( ).set ( std::move ( symbol ) );
 	}
 
-	const std::set < SymbolType > & getInputAlphabet ( ) const {
+	const std::set < InputSymbolType > & getInputAlphabet ( ) const {
 		return this->template accessComponent < InputAlphabet > ( ).get ( );
 	}
 
-	bool addInputSymbol ( SymbolType symbol ) {
+	bool addInputSymbol ( InputSymbolType symbol ) {
 		return this->template accessComponent < InputAlphabet > ( ).add ( std::move ( symbol ) );
 	}
 
-	void addInputSymbols ( std::set < SymbolType > symbols ) {
+	void addInputSymbols ( std::set < InputSymbolType > symbols ) {
 		this->template accessComponent < InputAlphabet > ( ).add ( std::move ( symbols ) );
 	}
 
-	void setInputAlphabet ( std::set < SymbolType > symbols ) {
+	void setInputAlphabet ( std::set < InputSymbolType > symbols ) {
 		this->template accessComponent < InputAlphabet > ( ).set ( std::move ( symbols ) );
 	}
 
-	void removeInputSymbol ( const SymbolType & symbol ) {
+	void removeInputSymbol ( const InputSymbolType & symbol ) {
 		this->template accessComponent < InputAlphabet > ( ).remove ( symbol );
 	}
 
@@ -148,37 +148,37 @@ public:
 	 * @throws AutomatonException when some part of the transition is not present
 	 * in the DPDA (state, input symbol, stack symbol) or when transition already exists
 	 */
-	bool addTransition ( StateType from, std::variant < EpsilonType, SymbolType > input, std::vector < SymbolType > pop, StateType to, std::vector < SymbolType > push );
+	bool addTransition ( StateType from, std::variant < EpsilonType, InputSymbolType > input, std::vector < PushdownStoreSymbolType > pop, StateType to, std::vector < PushdownStoreSymbolType > push );
 
-	bool addTransition ( StateType from, SymbolType input, std::vector < SymbolType > pop, StateType to, std::vector < SymbolType > push );
+	bool addTransition ( StateType from, InputSymbolType input, std::vector < PushdownStoreSymbolType > pop, StateType to, std::vector < PushdownStoreSymbolType > push );
 
-	bool addTransition ( StateType from, std::vector < SymbolType > pop, StateType to, std::vector < SymbolType > push );
+	bool addTransition ( StateType from, std::vector < PushdownStoreSymbolType > pop, StateType to, std::vector < PushdownStoreSymbolType > push );
 
 	/**
 	 * Removes the transition from the DPDA.
 	 * @param transition transition to remove
 	 * @throws AutomatonException when transition is not present in the DPDA
 	 */
-	bool removeTransition ( const StateType & from, const std::variant < EpsilonType, SymbolType > & input, const std::vector < SymbolType > & pop, const StateType & to, const std::vector < SymbolType > & push );
+	bool removeTransition ( const StateType & from, const std::variant < EpsilonType, InputSymbolType > & input, const std::vector < PushdownStoreSymbolType > & pop, const StateType & to, const std::vector < PushdownStoreSymbolType > & push );
 
-	bool removeTransition ( const StateType & from, const SymbolType & input, const std::vector < SymbolType > & pop, const StateType & to, const std::vector < SymbolType > & push );
+	bool removeTransition ( const StateType & from, const InputSymbolType & input, const std::vector < PushdownStoreSymbolType > & pop, const StateType & to, const std::vector < PushdownStoreSymbolType > & push );
 
-	bool removeTransition ( const StateType & from, const std::vector < SymbolType > & pop, const StateType & to, const std::vector < SymbolType > & push );
+	bool removeTransition ( const StateType & from, const std::vector < PushdownStoreSymbolType > & pop, const StateType & to, const std::vector < PushdownStoreSymbolType > & push );
 
 	/**
 	 * @return DPDA transitions
 	 */
-	const std::map < std::tuple < StateType, std::variant < EpsilonType, SymbolType >, std::vector < SymbolType > >, std::pair < StateType, std::vector < SymbolType > > > & getTransitions ( ) const;
+	const std::map < std::tuple < StateType, std::variant < EpsilonType, InputSymbolType >, std::vector < PushdownStoreSymbolType > >, std::pair < StateType, std::vector < PushdownStoreSymbolType > > > & getTransitions ( ) const;
 
 	/**
 	 * @return automaton transitions from state
 	 */
-	std::map < std::tuple < StateType, std::variant < EpsilonType, SymbolType >, std::vector < SymbolType > >, std::pair < StateType, std::vector < SymbolType > > > getTransitionsFromState ( const StateType & from ) const;
+	std::map < std::tuple < StateType, std::variant < EpsilonType, InputSymbolType >, std::vector < PushdownStoreSymbolType > >, std::pair < StateType, std::vector < PushdownStoreSymbolType > > > getTransitionsFromState ( const StateType & from ) const;
 
 	/**
 	 * @return automaton transitions to state
 	 */
-	std::map < std::tuple < StateType, std::variant < EpsilonType, SymbolType >, std::vector < SymbolType > >, std::pair < StateType, std::vector < SymbolType > > > getTransitionsToState ( const StateType & from ) const;
+	std::map < std::tuple < StateType, std::variant < EpsilonType, InputSymbolType >, std::vector < PushdownStoreSymbolType > >, std::pair < StateType, std::vector < PushdownStoreSymbolType > > > getTransitionsToState ( const StateType & from ) const;
 
 	virtual int compare ( const ObjectBase & other ) const {
 		if ( std::type_index ( typeid ( * this ) ) == std::type_index ( typeid ( other ) ) ) return this->compare ( ( decltype ( * this ) )other );
@@ -207,72 +207,72 @@ public:
 	virtual alib::ObjectBase * inc ( ) &&;
 };
 
-template < class SymbolType, class EpsilonType, class StateType >
-DPDA < SymbolType, EpsilonType, StateType >::DPDA ( std::set < StateType > states, std::set < SymbolType > inputAlphabet, std::set < SymbolType > pushdownStoreAlphabet, StateType initialState, SymbolType initialSymbol, std::set < StateType > finalStates ) : std::Components < DPDA, SymbolType, std::tuple < InputAlphabet, PushdownStoreAlphabet >, std::tuple < InitialSymbol >, StateType, std::tuple < States, FinalStates >, std::tuple < InitialState > > ( std::make_tuple ( std::move ( inputAlphabet ), std::move ( pushdownStoreAlphabet ) ), std::make_tuple ( std::move ( initialSymbol ) ), std::make_tuple ( std::move ( states ), std::move ( finalStates ) ), std::make_tuple ( std::move ( initialState ) ) ) {
+template < class InputSymbolType, class EpsilonType, class PushdownStoreSymbolType, class StateType >
+DPDA < InputSymbolType, EpsilonType, PushdownStoreSymbolType, StateType >::DPDA ( std::set < StateType > states, std::set < InputSymbolType > inputAlphabet, std::set < PushdownStoreSymbolType > pushdownStoreAlphabet, StateType initialState, PushdownStoreSymbolType initialSymbol, std::set < StateType > finalStates ) : std::Components < DPDA, InputSymbolType, std::tuple < InputAlphabet >, std::tuple < >, PushdownStoreSymbolType, std::tuple < PushdownStoreAlphabet >, std::tuple < InitialSymbol >, StateType, std::tuple < States, FinalStates >, std::tuple < InitialState > > ( std::make_tuple ( std::move ( inputAlphabet ) ), std::tuple < > ( ), std::make_tuple ( std::move ( pushdownStoreAlphabet ) ), std::make_tuple ( std::move ( initialSymbol ) ), std::make_tuple ( std::move ( states ), std::move ( finalStates ) ), std::make_tuple ( std::move ( initialState ) ) ) {
 }
 
-template < class SymbolType, class EpsilonType, class StateType >
-DPDA < SymbolType, EpsilonType, StateType >::DPDA(StateType initialState, SymbolType initialPushdownSymbol) : DPDA ( std::set < StateType > { initialState }, std::set < SymbolType > { }, std::set < SymbolType > { initialPushdownSymbol }, initialState, initialPushdownSymbol, std::set < StateType > { }) {
+template < class InputSymbolType, class EpsilonType, class PushdownStoreSymbolType, class StateType >
+DPDA < InputSymbolType, EpsilonType, PushdownStoreSymbolType, StateType >::DPDA ( StateType initialState, PushdownStoreSymbolType initialPushdownSymbol) : DPDA ( std::set < StateType > { initialState }, std::set < InputSymbolType > { }, std::set < PushdownStoreSymbolType > { initialPushdownSymbol }, initialState, initialPushdownSymbol, std::set < StateType > { }) {
 }
 
-template < class SymbolType, class EpsilonType, class StateType >
-AutomatonBase* DPDA < SymbolType, EpsilonType, StateType >::clone() const {
+template < class InputSymbolType, class EpsilonType, class PushdownStoreSymbolType, class StateType >
+AutomatonBase* DPDA < InputSymbolType, EpsilonType, PushdownStoreSymbolType, StateType >::clone() const {
 	return new DPDA(*this);
 }
 
-template < class SymbolType, class EpsilonType, class StateType >
-AutomatonBase* DPDA < SymbolType, EpsilonType, StateType >::plunder() && {
+template < class InputSymbolType, class EpsilonType, class PushdownStoreSymbolType, class StateType >
+AutomatonBase* DPDA < InputSymbolType, EpsilonType, PushdownStoreSymbolType, StateType >::plunder() && {
 	return new DPDA(std::move(*this));
 }
 
-template < class SymbolType, class EpsilonType, class StateType >
-bool DPDA < SymbolType, EpsilonType, StateType >::addTransition(StateType from, std::variant<EpsilonType, SymbolType> input, std::vector<SymbolType> pop, StateType to, std::vector<SymbolType> push) {
+template < class InputSymbolType, class EpsilonType, class PushdownStoreSymbolType, class StateType >
+bool DPDA < InputSymbolType, EpsilonType, PushdownStoreSymbolType, StateType >::addTransition(StateType from, std::variant<EpsilonType, InputSymbolType> input, std::vector < PushdownStoreSymbolType > pop, StateType to, std::vector < PushdownStoreSymbolType > push) {
 	if (! getStates().count(from)) {
 		throw AutomatonException("State \"" + std::to_string ( from ) + "\" doesn't exist.");
 	}
 
-	if (input.template is<SymbolType>() && ! getInputAlphabet().count(input.template get<SymbolType>())) {
-		throw AutomatonException("Input symbol \"" + std::to_string ( input.template get<SymbolType>() ) + "\" doesn't exist.");
+	if (input.template is < InputSymbolType > ( ) && ! getInputAlphabet().count ( input.template get < InputSymbolType > ( ) ) ) {
+		throw AutomatonException("Input symbol \"" + std::to_string ( input.template get < InputSymbolType > ( ) ) + "\" doesn't exist.");
 	}
 
 	if (! getStates().count(to)) {
 		throw AutomatonException("State \"" + std::to_string ( to ) + "\" doesn't exist.");
 	}
 
-	for(const SymbolType& popSymbol : pop) {
+	for(const PushdownStoreSymbolType & popSymbol : pop) {
 		if (! getPushdownStoreAlphabet().count(popSymbol)) {
 			throw AutomatonException("Pushdown store symbol \"" + std::to_string ( popSymbol ) + "\" doesn't exist.");
 		}
 	}
 
-	for(const SymbolType& pushSymbol : push) {
+	for(const PushdownStoreSymbolType & pushSymbol : push) {
 		if (! getPushdownStoreAlphabet().count(pushSymbol)) {
 			throw AutomatonException("Pushdown store symbol \"" + std::to_string ( pushSymbol ) + "\" doesn't exist.");
 		}
 	}
 
-	std::tuple<StateType, std::variant<EpsilonType, SymbolType>, std::vector<SymbolType> > key(std::move(from), std::move(input), std::move(pop));
-	std::pair<StateType, std::vector<SymbolType> > value = std::make_pair(std::move(to), std::move(push));
+	std::tuple<StateType, std::variant<EpsilonType, InputSymbolType>, std::vector<PushdownStoreSymbolType> > key(std::move(from), std::move(input), std::move(pop));
+	std::pair<StateType, std::vector<PushdownStoreSymbolType> > value = std::make_pair(std::move(to), std::move(push));
 
 	if (transitions.find(key) != transitions.end()) {
 		if(transitions.find(key)->second == value)
 			return false;
-		else if (std::get<1>(key).template is<SymbolType>())
+		else if (std::get<1>(key).template is<InputSymbolType>())
 			throw AutomatonException(
-				"Transition (\"" + std::to_string ( std::get<0>(key) ) + "\", \"" + std::to_string ( std::get<1>(key).template get<SymbolType>() ) + "\", \"pop\") -> ?? already exists.");
+				"Transition (\"" + std::to_string ( std::get<0>(key) ) + "\", \"" + std::to_string ( std::get<1>(key).template get<InputSymbolType>() ) + "\", \"pop\") -> ?? already exists.");
 		else
 			throw AutomatonException(
 				"Transition (\"" + std::to_string ( std::get<0>(key) ) + "\", \"" + std::to_string ( std::get<1>(key).template get<EpsilonType>() ) + "\", \"pop\") -> ?? already exists.");
 	}
 
 	if(std::get<1>(key).template is<EpsilonType>()) {
-		if(std::any_of(transitions.begin(), transitions.end(), [&](const std::pair<const std::tuple<StateType, std::variant<EpsilonType, SymbolType>, std::vector<SymbolType> >, std::pair<StateType, std::vector<SymbolType> > > & transition) {
+		if(std::any_of(transitions.begin(), transitions.end(), [&](const std::pair<const std::tuple<StateType, std::variant<EpsilonType, InputSymbolType>, std::vector<PushdownStoreSymbolType> >, std::pair<StateType, std::vector<PushdownStoreSymbolType> > > & transition) {
 				if(std::get<0>(transition.first) == std::get<0>(key)) {
-					const std::vector<SymbolType>& alpha = std::get<2>(transition.first);
-					const std::vector<SymbolType>& beta = std::get<2>(key);
+					const std::vector<PushdownStoreSymbolType>& alpha = std::get<2>(transition.first);
+					const std::vector<PushdownStoreSymbolType>& beta = std::get<2>(key);
 
-					const std::vector<SymbolType>& shorter = (alpha.size() < beta.size()) ? alpha : beta;
-					const std::vector<SymbolType>& longer = (alpha.size() < beta.size()) ? beta : alpha;
+					const std::vector<PushdownStoreSymbolType>& shorter = (alpha.size() < beta.size()) ? alpha : beta;
+					const std::vector<PushdownStoreSymbolType>& longer = (alpha.size() < beta.size()) ? beta : alpha;
 
 					for(auto itS = shorter.begin(), itL = longer.begin(); itS != shorter.end(); ++itS, ++itL) {
 						if(*itS != *itL) return false;
@@ -283,13 +283,13 @@ bool DPDA < SymbolType, EpsilonType, StateType >::addTransition(StateType from,
 			}))
 				throw AutomatonException("Conflicting transition");
 	} else {
-		if(std::any_of(transitions.begin(), transitions.end(), [&](const std::pair<const std::tuple<StateType, std::variant<EpsilonType, SymbolType>, std::vector<SymbolType> >, std::pair<StateType, std::vector<SymbolType> > > & transition) {
+		if(std::any_of(transitions.begin(), transitions.end(), [&](const std::pair<const std::tuple<StateType, std::variant<EpsilonType, InputSymbolType>, std::vector<PushdownStoreSymbolType> >, std::pair<StateType, std::vector<PushdownStoreSymbolType> > > & transition) {
 				if(std::get<0>(transition.first) == std::get<0>(key) && ( std::get<1>(transition.first) == std::get<1>(key) || std::get<1>(transition.first).template is<EpsilonType>() )) {
-					const std::vector<SymbolType>& alpha = std::get<2>(transition.first);
-					const std::vector<SymbolType>& beta = std::get<2>(key);
+					const std::vector<PushdownStoreSymbolType>& alpha = std::get<2>(transition.first);
+					const std::vector<PushdownStoreSymbolType>& beta = std::get<2>(key);
 
-					const std::vector<SymbolType>& shorter = (alpha.size() < beta.size()) ? alpha : beta;
-					const std::vector<SymbolType>& longer = (alpha.size() < beta.size()) ? beta : alpha;
+					const std::vector<PushdownStoreSymbolType>& shorter = (alpha.size() < beta.size()) ? alpha : beta;
+					const std::vector<PushdownStoreSymbolType>& longer = (alpha.size() < beta.size()) ? beta : alpha;
 
 					for(auto itS = shorter.begin(), itL = longer.begin(); itS != shorter.end(); ++itS, ++itL) {
 						if(*itS != *itL) return false;
@@ -305,30 +305,30 @@ bool DPDA < SymbolType, EpsilonType, StateType >::addTransition(StateType from,
 	return true;
 }
 
-template < class SymbolType, class EpsilonType, class StateType >
-bool DPDA < SymbolType, EpsilonType, StateType >::addTransition(StateType from, SymbolType input, std::vector<SymbolType> pop, StateType to, std::vector<SymbolType> push) {
-	std::variant<EpsilonType, SymbolType> inputVariant(std::move(input));
+template < class InputSymbolType, class EpsilonType, class PushdownStoreSymbolType, class StateType >
+bool DPDA < InputSymbolType, EpsilonType, PushdownStoreSymbolType, StateType >::addTransition(StateType from, InputSymbolType input, std::vector < PushdownStoreSymbolType > pop, StateType to, std::vector < PushdownStoreSymbolType > push) {
+	std::variant<EpsilonType, InputSymbolType> inputVariant(std::move(input));
 	return addTransition(std::move(from), std::move(inputVariant), std::move(pop), std::move(to), std::move(push));
 }
 
-template < class SymbolType, class EpsilonType, class StateType >
-bool DPDA < SymbolType, EpsilonType, StateType >::addTransition(StateType from, std::vector<SymbolType> pop, StateType to, std::vector<SymbolType> push) {
-	auto inputVariant = std::variant<EpsilonType, SymbolType>::template from < EpsilonType > ( );
+template < class InputSymbolType, class EpsilonType, class PushdownStoreSymbolType, class StateType >
+bool DPDA < InputSymbolType, EpsilonType, PushdownStoreSymbolType, StateType >::addTransition(StateType from, std::vector < PushdownStoreSymbolType > pop, StateType to, std::vector < PushdownStoreSymbolType > push) {
+	auto inputVariant = std::variant<EpsilonType, InputSymbolType>::template from < EpsilonType > ( );
 	return addTransition(std::move(from), std::move(inputVariant), std::move(pop), std::move(to), std::move(push));
 }
 
-template < class SymbolType, class EpsilonType, class StateType >
-bool DPDA < SymbolType, EpsilonType, StateType >::removeTransition(const StateType& from, const std::variant<EpsilonType, SymbolType>& input, const std::vector<SymbolType>& pop, const StateType& to, const std::vector<SymbolType>& push) {
-	std::tuple<StateType, std::variant<EpsilonType, SymbolType>, std::vector<SymbolType> > key(from, input, pop);
-	std::pair<StateType, std::vector<SymbolType> > value = std::make_pair(to, push);
+template < class InputSymbolType, class EpsilonType, class PushdownStoreSymbolType, class StateType >
+bool DPDA < InputSymbolType, EpsilonType, PushdownStoreSymbolType, StateType >::removeTransition(const StateType& from, const std::variant<EpsilonType, InputSymbolType>& input, const std::vector < PushdownStoreSymbolType > & pop, const StateType& to, const std::vector < PushdownStoreSymbolType > & push) {
+	std::tuple<StateType, std::variant<EpsilonType, InputSymbolType>, std::vector < PushdownStoreSymbolType > > key(from, input, pop);
+	std::pair<StateType, std::vector < PushdownStoreSymbolType > > value = std::make_pair(to, push);
 
 	if (transitions.find(key) == transitions.end())
 		return false;
 
 	if(transitions.find(key)->second != value) {
-		if (input.template is<SymbolType>())
+		if (input.template is < InputSymbolType > ( ) )
 			throw AutomatonException(
-				"Transition (\"" + std::to_string ( from ) + "\", \"" + std::to_string ( input.template get<SymbolType>() ) + "\") -> \"to\" doesn't exist.");
+				"Transition (\"" + std::to_string ( from ) + "\", \"" + std::to_string ( input.template get < InputSymbolType > ( ) ) + "\") -> \"to\" doesn't exist.");
 		else
 			throw AutomatonException(
 				"Transition (\"" + std::to_string ( from ) + "\", \"" + std::to_string ( input.template get<EpsilonType>() ) + "\") -> \"to\" doesn't exist.");
@@ -338,30 +338,30 @@ bool DPDA < SymbolType, EpsilonType, StateType >::removeTransition(const StateTy
 	return true;
 }
 
-template < class SymbolType, class EpsilonType, class StateType >
-bool DPDA < SymbolType, EpsilonType, StateType >::removeTransition(const StateType& from, const SymbolType& input, const std::vector<SymbolType>& pop, const StateType& to, const std::vector<SymbolType>& push) {
-	std::variant<EpsilonType, SymbolType> inputVariant(input);
+template < class InputSymbolType, class EpsilonType, class PushdownStoreSymbolType, class StateType >
+bool DPDA < InputSymbolType, EpsilonType, PushdownStoreSymbolType, StateType >::removeTransition(const StateType& from, const InputSymbolType& input, const std::vector < PushdownStoreSymbolType > & pop, const StateType& to, const std::vector < PushdownStoreSymbolType > & push) {
+	std::variant<EpsilonType, InputSymbolType > inputVariant(input);
 	return removeTransition(from, inputVariant, pop, to, push);
 }
 
-template < class SymbolType, class EpsilonType, class StateType >
-bool DPDA < SymbolType, EpsilonType, StateType >::removeTransition(const StateType& from, const std::vector<SymbolType>& pop, const StateType& to, const std::vector<SymbolType>& push) {
-	auto inputVariant = std::variant<EpsilonType, SymbolType>::template from < EpsilonType > ( );
+template < class InputSymbolType, class EpsilonType, class PushdownStoreSymbolType, class StateType >
+bool DPDA < InputSymbolType, EpsilonType, PushdownStoreSymbolType, StateType >::removeTransition(const StateType& from, const std::vector < PushdownStoreSymbolType > & pop, const StateType& to, const std::vector < PushdownStoreSymbolType > & push) {
+	auto inputVariant = std::variant<EpsilonType, InputSymbolType >::template from < EpsilonType > ( );
 	return removeTransition(from, inputVariant, pop, to, push);
 }
 
-template < class SymbolType, class EpsilonType, class StateType >
-const std::map<std::tuple<StateType, std::variant<EpsilonType, SymbolType>, std::vector<SymbolType> >, std::pair<StateType, std::vector<SymbolType> > >& DPDA < SymbolType, EpsilonType, StateType >::getTransitions() const {
+template < class InputSymbolType, class EpsilonType, class PushdownStoreSymbolType, class StateType >
+const std::map<std::tuple<StateType, std::variant<EpsilonType, InputSymbolType >, std::vector<PushdownStoreSymbolType> >, std::pair<StateType, std::vector<PushdownStoreSymbolType> > >& DPDA < InputSymbolType, EpsilonType, PushdownStoreSymbolType, StateType >::getTransitions() const {
 	return transitions;
 }
 
-template < class SymbolType, class EpsilonType, class StateType >
-std::map<std::tuple<StateType, std::variant<EpsilonType, SymbolType>, std::vector<SymbolType> >, std::pair<StateType, std::vector<SymbolType> > > DPDA < SymbolType, EpsilonType, StateType >::getTransitionsFromState(const StateType& from) const {
+template < class InputSymbolType, class EpsilonType, class PushdownStoreSymbolType, class StateType >
+std::map<std::tuple<StateType, std::variant<EpsilonType, InputSymbolType>, std::vector<PushdownStoreSymbolType> >, std::pair<StateType, std::vector<PushdownStoreSymbolType> > > DPDA < InputSymbolType, EpsilonType, PushdownStoreSymbolType, StateType >::getTransitionsFromState(const StateType& from) const {
 	if( ! getStates().count(from) )
 		throw AutomatonException("State \"" + std::to_string ( from ) + "\" doesn't exist");
 
-	std::map<std::tuple<StateType, std::variant<EpsilonType, SymbolType>, std::vector<SymbolType> >, std::pair<StateType, std::vector<SymbolType> > > transitionsFromState;
-	for (const std::pair<const std::tuple<StateType, std::variant<EpsilonType, SymbolType>, std::vector<SymbolType> >, std::pair<StateType, std::vector<SymbolType> > >& transition : transitions) {
+	std::map<std::tuple<StateType, std::variant<EpsilonType, InputSymbolType>, std::vector<PushdownStoreSymbolType> >, std::pair<StateType, std::vector<PushdownStoreSymbolType> > > transitionsFromState;
+	for (const std::pair<const std::tuple<StateType, std::variant<EpsilonType, InputSymbolType>, std::vector<PushdownStoreSymbolType> >, std::pair<StateType, std::vector<PushdownStoreSymbolType> > >& transition : transitions) {
 		if (std::get<0>(transition.first) == from) {
 			transitionsFromState.insert(std::make_pair(transition.first, transition.second));
 		}
@@ -370,13 +370,13 @@ std::map<std::tuple<StateType, std::variant<EpsilonType, SymbolType>, std::vecto
 	return transitionsFromState;
 }
 
-template < class SymbolType, class EpsilonType, class StateType >
-std::map<std::tuple<StateType, std::variant<EpsilonType, SymbolType>, std::vector<SymbolType> >, std::pair<StateType, std::vector<SymbolType> > > DPDA < SymbolType, EpsilonType, StateType >::getTransitionsToState(const StateType& to) const {
+template < class InputSymbolType, class EpsilonType, class PushdownStoreSymbolType, class StateType >
+std::map<std::tuple<StateType, std::variant<EpsilonType, InputSymbolType>, std::vector<PushdownStoreSymbolType> >, std::pair<StateType, std::vector<PushdownStoreSymbolType> > > DPDA < InputSymbolType, EpsilonType, PushdownStoreSymbolType, StateType >::getTransitionsToState(const StateType& to) const {
 	if( ! getStates().count(to))
 		throw AutomatonException("State \"" + std::to_string ( to ) + "\" doesn't exist");
 
-	std::map<std::tuple<StateType, std::variant<EpsilonType, SymbolType>, std::vector<SymbolType> >, std::pair<StateType, std::vector<SymbolType> > > transitionsToState;
-	for (const std::pair<const std::tuple<StateType, std::variant<EpsilonType, SymbolType>, std::vector<SymbolType> >, std::pair<StateType, std::vector<SymbolType> > >& transition : transitions) {
+	std::map<std::tuple<StateType, std::variant<EpsilonType, InputSymbolType>, std::vector<PushdownStoreSymbolType> >, std::pair<StateType, std::vector<PushdownStoreSymbolType> > > transitionsToState;
+	for (const std::pair<const std::tuple<StateType, std::variant<EpsilonType, InputSymbolType>, std::vector<PushdownStoreSymbolType> >, std::pair<StateType, std::vector<PushdownStoreSymbolType> > >& transition : transitions) {
 		if (transition.second.first == to) {
 			transitionsToState.insert(std::make_pair(transition.first, transition.second));
 		}
@@ -385,8 +385,8 @@ std::map<std::tuple<StateType, std::variant<EpsilonType, SymbolType>, std::vecto
 	return transitionsToState;
 }
 
-template < class SymbolType, class EpsilonType, class StateType >
-int DPDA < SymbolType, EpsilonType, StateType >::compare(const DPDA& other) const {
+template < class InputSymbolType, class EpsilonType, class PushdownStoreSymbolType, class StateType >
+int DPDA < InputSymbolType, EpsilonType, PushdownStoreSymbolType, StateType >::compare(const DPDA& other) const {
 	auto first = std::tie(getStates(), getInputAlphabet(), getInitialState(), getFinalStates(), getPushdownStoreAlphabet(), getInitialSymbol(), transitions);
 	auto second = std::tie(other.getStates(), other.getInputAlphabet(), other.getInitialState(), other.getFinalStates(), other.getPushdownStoreAlphabet(), other.getInitialSymbol(), other.transitions);
 
@@ -394,8 +394,8 @@ int DPDA < SymbolType, EpsilonType, StateType >::compare(const DPDA& other) cons
 	return comp(first, second);
 }
 
-template < class SymbolType, class EpsilonType, class StateType >
-void DPDA < SymbolType, EpsilonType, StateType >::operator>>(std::ostream& out) const {
+template < class InputSymbolType, class EpsilonType, class PushdownStoreSymbolType, class StateType >
+void DPDA < InputSymbolType, EpsilonType, PushdownStoreSymbolType, StateType >::operator>>(std::ostream& out) const {
 	out << "(DPDA "
 		<< "states = " << getStates()
 		<< "inputAlphabet = " << getInputAlphabet()
@@ -407,22 +407,22 @@ void DPDA < SymbolType, EpsilonType, StateType >::operator>>(std::ostream& out)
 		<< ")";
 }
 
-template < class SymbolType, class EpsilonType, class StateType >
-DPDA < SymbolType, EpsilonType, StateType >::operator std::string () const {
+template < class InputSymbolType, class EpsilonType, class PushdownStoreSymbolType, class StateType >
+DPDA < InputSymbolType, EpsilonType, PushdownStoreSymbolType, StateType >::operator std::string () const {
 	std::stringstream ss;
 	ss << *this;
 	return ss.str();
 }
 
-template < class SymbolType, class EpsilonType, class StateType >
-DPDA < SymbolType, EpsilonType, StateType > DPDA < SymbolType, EpsilonType, StateType >::parse(std::deque<sax::Token>::iterator& input) {
+template < class InputSymbolType, class EpsilonType, class PushdownStoreSymbolType, class StateType >
+DPDA < InputSymbolType, EpsilonType, PushdownStoreSymbolType, StateType > DPDA < InputSymbolType, EpsilonType, PushdownStoreSymbolType, StateType >::parse(std::deque<sax::Token>::iterator& input) {
 	sax::FromXMLParserHelper::popToken(input, sax::Token::TokenType::START_ELEMENT, DPDA::getXmlTagName());
 
 	std::set<StateType> states = AutomatonFromXMLParser::parseStates<StateType>(input);
-	std::set<SymbolType> inputSymbols = AutomatonFromXMLParser::parseInputAlphabet<SymbolType>(input);
-	std::set<SymbolType> pushdownStoreSymbols = AutomatonFromXMLParser::parsePushdownStoreAlphabet<SymbolType>(input);
+	std::set<InputSymbolType> inputSymbols = AutomatonFromXMLParser::parseInputAlphabet<InputSymbolType>(input);
+	std::set<PushdownStoreSymbolType> pushdownStoreSymbols = AutomatonFromXMLParser::parsePushdownStoreAlphabet<PushdownStoreSymbolType>(input);
 	StateType initialState = AutomatonFromXMLParser::parseInitialState<StateType>(input);
-	SymbolType initialPushdownStoreSymbol = AutomatonFromXMLParser::parseInitialPushdownStoreSymbol<SymbolType>(input);
+	PushdownStoreSymbolType initialPushdownStoreSymbol = AutomatonFromXMLParser::parseInitialPushdownStoreSymbol<PushdownStoreSymbolType>(input);
 	std::set<StateType> finalStates = AutomatonFromXMLParser::parseFinalStates<StateType>(input);
 
 	DPDA automaton(std::move(initialState), std::move(initialPushdownStoreSymbol));
@@ -437,21 +437,21 @@ DPDA < SymbolType, EpsilonType, StateType > DPDA < SymbolType, EpsilonType, Stat
 	return automaton;
 }
 
-template < class SymbolType, class EpsilonType, class StateType >
-void DPDA < SymbolType, EpsilonType, StateType >::parseTransition(std::deque<sax::Token>::iterator& input, DPDA& automaton) {
+template < class InputSymbolType, class EpsilonType, class PushdownStoreSymbolType, class StateType >
+void DPDA < InputSymbolType, EpsilonType, PushdownStoreSymbolType, StateType >::parseTransition(std::deque<sax::Token>::iterator& input, DPDA& automaton) {
 	sax::FromXMLParserHelper::popToken(input, sax::Token::TokenType::START_ELEMENT, "transition");
 	StateType from = AutomatonFromXMLParser::parseTransitionFrom<StateType>(input);
-	std::variant<EpsilonType, SymbolType> inputSymbol = AutomatonFromXMLParser::parseTransitionInputEpsilonSymbol<EpsilonType, SymbolType>(input);
-	std::vector<SymbolType> pop = AutomatonFromXMLParser::parseTransitionPop<SymbolType>(input);
+	std::variant<EpsilonType, InputSymbolType> inputSymbol = AutomatonFromXMLParser::parseTransitionInputEpsilonSymbol<EpsilonType, InputSymbolType>(input);
+	std::vector<PushdownStoreSymbolType> pop = AutomatonFromXMLParser::parseTransitionPop<PushdownStoreSymbolType>(input);
 	StateType to = AutomatonFromXMLParser::parseTransitionTo<StateType>(input);
-	std::vector<SymbolType> push = AutomatonFromXMLParser::parseTransitionPush<SymbolType>(input);
+	std::vector<PushdownStoreSymbolType> push = AutomatonFromXMLParser::parseTransitionPush<PushdownStoreSymbolType>(input);
 	sax::FromXMLParserHelper::popToken(input, sax::Token::TokenType::END_ELEMENT, "transition");
 
 	automaton.addTransition(std::move(from), std::move(inputSymbol), std::move(pop), std::move(to), std::move(push));
 }
 
-template < class SymbolType, class EpsilonType, class StateType >
-void DPDA < SymbolType, EpsilonType, StateType >::compose(std::deque<sax::Token>& out) const {
+template < class InputSymbolType, class EpsilonType, class PushdownStoreSymbolType, class StateType >
+void DPDA < InputSymbolType, EpsilonType, PushdownStoreSymbolType, StateType >::compose(std::deque<sax::Token>& out) const {
 	out.emplace_back(DPDA::getXmlTagName(), sax::Token::TokenType::START_ELEMENT);
 
 	AutomatonToXMLComposer::composeStates(out, this->getStates());
@@ -465,8 +465,8 @@ void DPDA < SymbolType, EpsilonType, StateType >::compose(std::deque<sax::Token>
 	out.emplace_back(DPDA::getXmlTagName(), sax::Token::TokenType::END_ELEMENT);
 }
 
-template < class SymbolType, class EpsilonType, class StateType >
-void DPDA < SymbolType, EpsilonType, StateType >::composeTransitions(std::deque<sax::Token>& out) const {
+template < class InputSymbolType, class EpsilonType, class PushdownStoreSymbolType, class StateType >
+void DPDA < InputSymbolType, EpsilonType, PushdownStoreSymbolType, StateType >::composeTransitions(std::deque<sax::Token>& out) const {
 	out.emplace_back("transitions", sax::Token::TokenType::START_ELEMENT);
 	for(const auto& transition : this->getTransitions()) {
 		out.emplace_back("transition", sax::Token::TokenType::START_ELEMENT);
@@ -483,8 +483,8 @@ void DPDA < SymbolType, EpsilonType, StateType >::composeTransitions(std::deque<
 	out.emplace_back("transitions", sax::Token::TokenType::END_ELEMENT);
 }
 
-template < class SymbolType, class EpsilonType, class StateType >
-alib::ObjectBase* DPDA < SymbolType, EpsilonType, StateType >::inc() && {
+template < class InputSymbolType, class EpsilonType, class PushdownStoreSymbolType, class StateType >
+alib::ObjectBase* DPDA < InputSymbolType, EpsilonType, PushdownStoreSymbolType, StateType >::inc() && {
 	return new alib::UniqueObject(alib::Object(std::move(*this)), primitive::Integer(0));
 }
 
@@ -492,33 +492,33 @@ alib::ObjectBase* DPDA < SymbolType, EpsilonType, StateType >::inc() && {
 
 namespace std {
 
-template < class SymbolType, class EpsilonType, class StateType >
-class ComponentConstraint< automaton::DPDA < SymbolType, EpsilonType, StateType >, SymbolType, automaton::InputAlphabet > {
+template < class InputSymbolType, class EpsilonType, class PushdownStoreSymbolType, class StateType >
+class ComponentConstraint< automaton::DPDA < InputSymbolType, EpsilonType, PushdownStoreSymbolType, StateType >, InputSymbolType, automaton::InputAlphabet > {
 public:
-	static bool used ( const automaton::DPDA < SymbolType, EpsilonType, StateType > & automaton, const SymbolType & symbol ) {
-		for (const std::pair<const std::tuple<StateType, std::variant<EpsilonType, SymbolType>, std::vector<SymbolType> >, std::pair<StateType, std::vector<SymbolType> > >& transition : automaton.getTransitions())
-			if (std::get<1>(transition.first).template is<SymbolType>() && symbol == std::get<1>(transition.first).template get<SymbolType>())
+	static bool used ( const automaton::DPDA < InputSymbolType, EpsilonType, PushdownStoreSymbolType, StateType > & automaton, const InputSymbolType & symbol ) {
+		for (const std::pair<const std::tuple<StateType, std::variant<EpsilonType, InputSymbolType>, std::vector<PushdownStoreSymbolType> >, std::pair<StateType, std::vector<PushdownStoreSymbolType> > >& transition : automaton.getTransitions())
+			if (std::get<1>(transition.first).template is<InputSymbolType>() && symbol == std::get<1>(transition.first).template get<InputSymbolType>())
 				return true;
 
 		return false;
 	}
 
-	static bool available ( const automaton::DPDA < SymbolType, EpsilonType, StateType > &, const SymbolType & ) {
+	static bool available ( const automaton::DPDA < InputSymbolType, EpsilonType, PushdownStoreSymbolType, StateType > &, const InputSymbolType & ) {
 		return true;
 	}
 
-	static void valid ( const automaton::DPDA < SymbolType, EpsilonType, StateType > &, const SymbolType & ) {
+	static void valid ( const automaton::DPDA < InputSymbolType, EpsilonType, PushdownStoreSymbolType, StateType > &, const InputSymbolType & ) {
 	}
 };
 
-template < class SymbolType, class EpsilonType, class StateType >
-class ComponentConstraint< automaton::DPDA < SymbolType, EpsilonType, StateType >, SymbolType, automaton::PushdownStoreAlphabet > {
+template < class InputSymbolType, class EpsilonType, class PushdownStoreSymbolType, class StateType >
+class ComponentConstraint< automaton::DPDA < InputSymbolType, EpsilonType, PushdownStoreSymbolType, StateType >, PushdownStoreSymbolType, automaton::PushdownStoreAlphabet > {
 public:
-	static bool used ( const automaton::DPDA < SymbolType, EpsilonType, StateType > & automaton, const SymbolType & symbol ) {
+	static bool used ( const automaton::DPDA < InputSymbolType, EpsilonType, PushdownStoreSymbolType, StateType > & automaton, const PushdownStoreSymbolType & symbol ) {
 		if(automaton.getInitialSymbol() == symbol)
 			return true;
 
-		for (const std::pair<const std::tuple<StateType, std::variant<EpsilonType, SymbolType>, std::vector<SymbolType> >, std::pair<StateType, std::vector<SymbolType> > >& transition : automaton.getTransitions()) {
+		for (const std::pair<const std::tuple<StateType, std::variant<EpsilonType, InputSymbolType>, std::vector<PushdownStoreSymbolType> >, std::pair<StateType, std::vector<PushdownStoreSymbolType> > >& transition : automaton.getTransitions()) {
 			const auto & popSymbols = std::get<2>(transition.first);
 			const auto & pushSymbols = transition.second.second;
 			if(std::contains(popSymbols.begin(), popSymbols.end(), symbol ) || std::contains(pushSymbols.begin(), pushSymbols.end(), symbol))
@@ -528,73 +528,73 @@ public:
 		return false;
 	}
 
-	static bool available ( const automaton::DPDA < SymbolType, EpsilonType, StateType > &, const SymbolType & ) {
+	static bool available ( const automaton::DPDA < InputSymbolType, EpsilonType, PushdownStoreSymbolType, StateType > &, const PushdownStoreSymbolType & ) {
 		return true;
 	}
 
-	static void valid ( const automaton::DPDA < SymbolType, EpsilonType, StateType > &, const SymbolType & ) {
+	static void valid ( const automaton::DPDA < InputSymbolType, EpsilonType, PushdownStoreSymbolType, StateType > &, const PushdownStoreSymbolType & ) {
 	}
 };
 
-template < class SymbolType, class EpsilonType, class StateType >
-class ElementConstraint< automaton::DPDA < SymbolType, EpsilonType, StateType >, SymbolType, automaton::InitialSymbol > {
+template < class InputSymbolType, class EpsilonType, class PushdownStoreSymbolType, class StateType >
+class ElementConstraint< automaton::DPDA < InputSymbolType, EpsilonType, PushdownStoreSymbolType, StateType >, PushdownStoreSymbolType, automaton::InitialSymbol > {
 public:
-	static bool available ( const automaton::DPDA < SymbolType, EpsilonType, StateType > & automaton, const SymbolType & symbol ) {
+	static bool available ( const automaton::DPDA < InputSymbolType, EpsilonType, PushdownStoreSymbolType, StateType > & automaton, const PushdownStoreSymbolType & symbol ) {
 		return automaton.template accessComponent < automaton::PushdownStoreAlphabet > ( ).get ( ).count ( symbol );
 	}
 
-	static void valid ( const automaton::DPDA < SymbolType, EpsilonType, StateType > &, const SymbolType & ) {
+	static void valid ( const automaton::DPDA < InputSymbolType, EpsilonType, PushdownStoreSymbolType, StateType > &, const PushdownStoreSymbolType & ) {
 	}
 };
 
-template < class SymbolType, class EpsilonType, class StateType >
-class ComponentConstraint< automaton::DPDA < SymbolType, EpsilonType, StateType >, StateType, automaton::States > {
+template < class InputSymbolType, class EpsilonType, class PushdownStoreSymbolType, class StateType >
+class ComponentConstraint< automaton::DPDA < InputSymbolType, EpsilonType, PushdownStoreSymbolType, StateType >, StateType, automaton::States > {
 public:
-	static bool used ( const automaton::DPDA < SymbolType, EpsilonType, StateType > & automaton, const StateType & state ) {
+	static bool used ( const automaton::DPDA < InputSymbolType, EpsilonType, PushdownStoreSymbolType, StateType > & automaton, const StateType & state ) {
 		if ( automaton.getInitialState ( ) == state )
 			return true;
 
 		if ( automaton.getFinalStates ( ).count ( state ) )
 			return true;
 
-		for (const std::pair<const std::tuple<StateType, std::variant<EpsilonType, SymbolType>, std::vector<SymbolType> >, std::pair<StateType, std::vector<SymbolType> > >& transition : automaton.getTransitions())
+		for (const std::pair<const std::tuple<StateType, std::variant<EpsilonType, InputSymbolType>, std::vector<PushdownStoreSymbolType> >, std::pair<StateType, std::vector<PushdownStoreSymbolType> > >& transition : automaton.getTransitions())
 			if ( state == std::get<0>(transition.first) || transition.second.first == state )
 				return true;
 
 		return false;
 	}
 
-	static bool available ( const automaton::DPDA < SymbolType, EpsilonType, StateType > &, const StateType & ) {
+	static bool available ( const automaton::DPDA < InputSymbolType, EpsilonType, PushdownStoreSymbolType, StateType > &, const StateType & ) {
 		return true;
 	}
 
-	static void valid ( const automaton::DPDA < SymbolType, EpsilonType, StateType > &, const StateType & ) {
+	static void valid ( const automaton::DPDA < InputSymbolType, EpsilonType, PushdownStoreSymbolType, StateType > &, const StateType & ) {
 	}
 };
 
-template < class SymbolType, class EpsilonType, class StateType >
-class ComponentConstraint< automaton::DPDA < SymbolType, EpsilonType, StateType >, StateType, automaton::FinalStates > {
+template < class InputSymbolType, class EpsilonType, class PushdownStoreSymbolType, class StateType >
+class ComponentConstraint< automaton::DPDA < InputSymbolType, EpsilonType, PushdownStoreSymbolType, StateType >, StateType, automaton::FinalStates > {
 public:
-	static bool used ( const automaton::DPDA < SymbolType, EpsilonType, StateType > &, const StateType & ) {
+	static bool used ( const automaton::DPDA < InputSymbolType, EpsilonType, PushdownStoreSymbolType, StateType > &, const StateType & ) {
 		return false;
 	}
 
-	static bool available ( const automaton::DPDA < SymbolType, EpsilonType, StateType > & automaton, const StateType & state ) {
+	static bool available ( const automaton::DPDA < InputSymbolType, EpsilonType, PushdownStoreSymbolType, StateType > & automaton, const StateType & state ) {
 		return automaton.template accessComponent < automaton::States > ( ).get ( ).count ( state );
 	}
 
-	static void valid ( const automaton::DPDA < SymbolType, EpsilonType, StateType > &, const StateType & ) {
+	static void valid ( const automaton::DPDA < InputSymbolType, EpsilonType, PushdownStoreSymbolType, StateType > &, const StateType & ) {
 	}
 };
 
-template < class SymbolType, class EpsilonType, class StateType >
-class ElementConstraint< automaton::DPDA < SymbolType, EpsilonType, StateType >, StateType, automaton::InitialState > {
+template < class InputSymbolType, class EpsilonType, class PushdownStoreSymbolType, class StateType >
+class ElementConstraint< automaton::DPDA < InputSymbolType, EpsilonType, PushdownStoreSymbolType, StateType >, StateType, automaton::InitialState > {
 public:
-	static bool available ( const automaton::DPDA < SymbolType, EpsilonType, StateType > & automaton, const StateType & state ) {
+	static bool available ( const automaton::DPDA < InputSymbolType, EpsilonType, PushdownStoreSymbolType, StateType > & automaton, const StateType & state ) {
 		return automaton.template accessComponent < automaton::States > ( ).get ( ).count ( state );
 	}
 
-	static void valid ( const automaton::DPDA < SymbolType, EpsilonType, StateType > &, const StateType & ) {
+	static void valid ( const automaton::DPDA < InputSymbolType, EpsilonType, PushdownStoreSymbolType, StateType > &, const StateType & ) {
 	}
 };
 
diff --git a/examples2/automaton/NPDA1.DET.xml b/examples2/automaton/NPDA1.DET.xml
index fa267e7c5b9b29eb5c544ee77bf931ee2ac37627..f2080dbf4f4a275039d809630f6a2b3ce2ddf86e 100644
--- a/examples2/automaton/NPDA1.DET.xml
+++ b/examples2/automaton/NPDA1.DET.xml
@@ -26,54 +26,54 @@
     <String>a2</String>
   </inputAlphabet>
   <pushdownStoreAlphabet>
-    <Integer>0</Integer>
-    <Integer>1</Integer>
-    <Integer>2</Integer>
-    <Integer>3</Integer>
-    <Integer>4</Integer>
-    <Integer>5</Integer>
-    <Integer>6</Integer>
-    <Integer>7</Integer>
-    <Integer>8</Integer>
-    <Integer>9</Integer>
-    <Integer>10</Integer>
-    <Integer>11</Integer>
-    <Integer>12</Integer>
-    <Integer>13</Integer>
-    <Integer>14</Integer>
-    <Integer>15</Integer>
-    <Integer>16</Integer>
-    <Integer>17</Integer>
-    <Integer>18</Integer>
-    <Integer>19</Integer>
-    <Integer>20</Integer>
-    <Integer>21</Integer>
-    <Integer>22</Integer>
-    <Integer>23</Integer>
-    <Integer>24</Integer>
-    <Integer>25</Integer>
-    <Integer>26</Integer>
-    <Integer>27</Integer>
-    <Integer>28</Integer>
-    <Integer>29</Integer>
-    <Integer>30</Integer>
-    <Integer>31</Integer>
-    <Integer>32</Integer>
-    <Integer>33</Integer>
-    <Integer>34</Integer>
-    <Integer>35</Integer>
-    <Integer>36</Integer>
-    <Integer>37</Integer>
-    <Integer>38</Integer>
-    <Integer>39</Integer>
-    <Integer>40</Integer>
-    <Integer>41</Integer>
+    <Unsigned>0</Unsigned>
+    <Unsigned>1</Unsigned>
+    <Unsigned>2</Unsigned>
+    <Unsigned>3</Unsigned>
+    <Unsigned>4</Unsigned>
+    <Unsigned>5</Unsigned>
+    <Unsigned>6</Unsigned>
+    <Unsigned>7</Unsigned>
+    <Unsigned>8</Unsigned>
+    <Unsigned>9</Unsigned>
+    <Unsigned>10</Unsigned>
+    <Unsigned>11</Unsigned>
+    <Unsigned>12</Unsigned>
+    <Unsigned>13</Unsigned>
+    <Unsigned>14</Unsigned>
+    <Unsigned>15</Unsigned>
+    <Unsigned>16</Unsigned>
+    <Unsigned>17</Unsigned>
+    <Unsigned>18</Unsigned>
+    <Unsigned>19</Unsigned>
+    <Unsigned>20</Unsigned>
+    <Unsigned>21</Unsigned>
+    <Unsigned>22</Unsigned>
+    <Unsigned>23</Unsigned>
+    <Unsigned>24</Unsigned>
+    <Unsigned>25</Unsigned>
+    <Unsigned>26</Unsigned>
+    <Unsigned>27</Unsigned>
+    <Unsigned>28</Unsigned>
+    <Unsigned>29</Unsigned>
+    <Unsigned>30</Unsigned>
+    <Unsigned>31</Unsigned>
+    <Unsigned>32</Unsigned>
+    <Unsigned>33</Unsigned>
+    <Unsigned>34</Unsigned>
+    <Unsigned>35</Unsigned>
+    <Unsigned>36</Unsigned>
+    <Unsigned>37</Unsigned>
+    <Unsigned>38</Unsigned>
+    <Unsigned>39</Unsigned>
+    <Unsigned>40</Unsigned>
+    <Unsigned>41</Unsigned>
   </pushdownStoreAlphabet>
   <initialState>
     <Unsigned>0</Unsigned>
   </initialState>
   <initialPushdownStoreSymbol>
-    <Integer>0</Integer>
+    <Unsigned>0</Unsigned>
   </initialPushdownStoreSymbol>
   <finalStates>
     <Unsigned>11</Unsigned>
@@ -93,7 +93,7 @@
         <String>a0</String>
       </input>
       <pop>
-        <Integer>0</Integer>
+        <Unsigned>0</Unsigned>
       </pop>
       <to>
         <Unsigned>1</Unsigned>
@@ -108,7 +108,7 @@
         <String>a0</String>
       </input>
       <pop>
-        <Integer>1</Integer>
+        <Unsigned>1</Unsigned>
       </pop>
       <to>
         <Unsigned>1</Unsigned>
@@ -123,13 +123,13 @@
         <String>a1</String>
       </input>
       <pop>
-        <Integer>0</Integer>
+        <Unsigned>0</Unsigned>
       </pop>
       <to>
         <Unsigned>0</Unsigned>
       </to>
       <push>
-        <Integer>1</Integer>
+        <Unsigned>1</Unsigned>
       </push>
     </transition>
     <transition>
@@ -140,13 +140,13 @@
         <String>a1</String>
       </input>
       <pop>
-        <Integer>1</Integer>
+        <Unsigned>1</Unsigned>
       </pop>
       <to>
         <Unsigned>0</Unsigned>
       </to>
       <push>
-        <Integer>1</Integer>
+        <Unsigned>1</Unsigned>
       </push>
     </transition>
     <transition>
@@ -157,14 +157,14 @@
         <String>a2</String>
       </input>
       <pop>
-        <Integer>0</Integer>
+        <Unsigned>0</Unsigned>
       </pop>
       <to>
         <Unsigned>2</Unsigned>
       </to>
       <push>
-        <Integer>2</Integer>
-        <Integer>3</Integer>
+        <Unsigned>2</Unsigned>
+        <Unsigned>3</Unsigned>
       </push>
     </transition>
     <transition>
@@ -175,14 +175,14 @@
         <String>a2</String>
       </input>
       <pop>
-        <Integer>1</Integer>
+        <Unsigned>1</Unsigned>
       </pop>
       <to>
         <Unsigned>2</Unsigned>
       </to>
       <push>
-        <Integer>2</Integer>
-        <Integer>3</Integer>
+        <Unsigned>2</Unsigned>
+        <Unsigned>3</Unsigned>
       </push>
     </transition>
     <transition>
@@ -193,7 +193,7 @@
         <String>a0</String>
       </input>
       <pop>
-        <Integer>2</Integer>
+        <Unsigned>2</Unsigned>
       </pop>
       <to>
         <Unsigned>3</Unsigned>
@@ -208,7 +208,7 @@
         <String>a0</String>
       </input>
       <pop>
-        <Integer>4</Integer>
+        <Unsigned>4</Unsigned>
       </pop>
       <to>
         <Unsigned>3</Unsigned>
@@ -223,7 +223,7 @@
         <String>a0</String>
       </input>
       <pop>
-        <Integer>5</Integer>
+        <Unsigned>5</Unsigned>
       </pop>
       <to>
         <Unsigned>4</Unsigned>
@@ -238,7 +238,7 @@
         <String>a0</String>
       </input>
       <pop>
-        <Integer>7</Integer>
+        <Unsigned>7</Unsigned>
       </pop>
       <to>
         <Unsigned>4</Unsigned>
@@ -253,7 +253,7 @@
         <String>a0</String>
       </input>
       <pop>
-        <Integer>9</Integer>
+        <Unsigned>9</Unsigned>
       </pop>
       <to>
         <Unsigned>5</Unsigned>
@@ -268,7 +268,7 @@
         <String>a0</String>
       </input>
       <pop>
-        <Integer>10</Integer>
+        <Unsigned>10</Unsigned>
       </pop>
       <to>
         <Unsigned>6</Unsigned>
@@ -283,7 +283,7 @@
         <String>a0</String>
       </input>
       <pop>
-        <Integer>12</Integer>
+        <Unsigned>12</Unsigned>
       </pop>
       <to>
         <Unsigned>6</Unsigned>
@@ -298,7 +298,7 @@
         <String>a0</String>
       </input>
       <pop>
-        <Integer>13</Integer>
+        <Unsigned>13</Unsigned>
       </pop>
       <to>
         <Unsigned>9</Unsigned>
@@ -313,7 +313,7 @@
         <String>a0</String>
       </input>
       <pop>
-        <Integer>15</Integer>
+        <Unsigned>15</Unsigned>
       </pop>
       <to>
         <Unsigned>7</Unsigned>
@@ -328,7 +328,7 @@
         <String>a0</String>
       </input>
       <pop>
-        <Integer>16</Integer>
+        <Unsigned>16</Unsigned>
       </pop>
       <to>
         <Unsigned>8</Unsigned>
@@ -343,7 +343,7 @@
         <String>a0</String>
       </input>
       <pop>
-        <Integer>19</Integer>
+        <Unsigned>19</Unsigned>
       </pop>
       <to>
         <Unsigned>9</Unsigned>
@@ -358,13 +358,13 @@
         <String>a1</String>
       </input>
       <pop>
-        <Integer>2</Integer>
+        <Unsigned>2</Unsigned>
       </pop>
       <to>
         <Unsigned>2</Unsigned>
       </to>
       <push>
-        <Integer>4</Integer>
+        <Unsigned>4</Unsigned>
       </push>
     </transition>
     <transition>
@@ -375,13 +375,13 @@
         <String>a1</String>
       </input>
       <pop>
-        <Integer>4</Integer>
+        <Unsigned>4</Unsigned>
       </pop>
       <to>
         <Unsigned>2</Unsigned>
       </to>
       <push>
-        <Integer>4</Integer>
+        <Unsigned>4</Unsigned>
       </push>
     </transition>
     <transition>
@@ -392,13 +392,13 @@
         <String>a1</String>
       </input>
       <pop>
-        <Integer>5</Integer>
+        <Unsigned>5</Unsigned>
       </pop>
       <to>
         <Unsigned>2</Unsigned>
       </to>
       <push>
-        <Integer>7</Integer>
+        <Unsigned>7</Unsigned>
       </push>
     </transition>
     <transition>
@@ -409,13 +409,13 @@
         <String>a1</String>
       </input>
       <pop>
-        <Integer>7</Integer>
+        <Unsigned>7</Unsigned>
       </pop>
       <to>
         <Unsigned>2</Unsigned>
       </to>
       <push>
-        <Integer>7</Integer>
+        <Unsigned>7</Unsigned>
       </push>
     </transition>
     <transition>
@@ -426,13 +426,13 @@
         <String>a1</String>
       </input>
       <pop>
-        <Integer>9</Integer>
+        <Unsigned>9</Unsigned>
       </pop>
       <to>
         <Unsigned>2</Unsigned>
       </to>
       <push>
-        <Integer>9</Integer>
+        <Unsigned>9</Unsigned>
       </push>
     </transition>
     <transition>
@@ -443,13 +443,13 @@
         <String>a1</String>
       </input>
       <pop>
-        <Integer>10</Integer>
+        <Unsigned>10</Unsigned>
       </pop>
       <to>
         <Unsigned>2</Unsigned>
       </to>
       <push>
-        <Integer>12</Integer>
+        <Unsigned>12</Unsigned>
       </push>
     </transition>
     <transition>
@@ -460,13 +460,13 @@
         <String>a1</String>
       </input>
       <pop>
-        <Integer>12</Integer>
+        <Unsigned>12</Unsigned>
       </pop>
       <to>
         <Unsigned>2</Unsigned>
       </to>
       <push>
-        <Integer>12</Integer>
+        <Unsigned>12</Unsigned>
       </push>
     </transition>
     <transition>
@@ -477,13 +477,13 @@
         <String>a1</String>
       </input>
       <pop>
-        <Integer>13</Integer>
+        <Unsigned>13</Unsigned>
       </pop>
       <to>
         <Unsigned>2</Unsigned>
       </to>
       <push>
-        <Integer>19</Integer>
+        <Unsigned>19</Unsigned>
       </push>
     </transition>
     <transition>
@@ -494,13 +494,13 @@
         <String>a1</String>
       </input>
       <pop>
-        <Integer>15</Integer>
+        <Unsigned>15</Unsigned>
       </pop>
       <to>
         <Unsigned>2</Unsigned>
       </to>
       <push>
-        <Integer>15</Integer>
+        <Unsigned>15</Unsigned>
       </push>
     </transition>
     <transition>
@@ -511,13 +511,13 @@
         <String>a1</String>
       </input>
       <pop>
-        <Integer>16</Integer>
+        <Unsigned>16</Unsigned>
       </pop>
       <to>
         <Unsigned>2</Unsigned>
       </to>
       <push>
-        <Integer>16</Integer>
+        <Unsigned>16</Unsigned>
       </push>
     </transition>
     <transition>
@@ -528,13 +528,13 @@
         <String>a1</String>
       </input>
       <pop>
-        <Integer>19</Integer>
+        <Unsigned>19</Unsigned>
       </pop>
       <to>
         <Unsigned>2</Unsigned>
       </to>
       <push>
-        <Integer>19</Integer>
+        <Unsigned>19</Unsigned>
       </push>
     </transition>
     <transition>
@@ -545,14 +545,14 @@
         <String>a2</String>
       </input>
       <pop>
-        <Integer>2</Integer>
+        <Unsigned>2</Unsigned>
       </pop>
       <to>
         <Unsigned>2</Unsigned>
       </to>
       <push>
-        <Integer>5</Integer>
-        <Integer>6</Integer>
+        <Unsigned>5</Unsigned>
+        <Unsigned>6</Unsigned>
       </push>
     </transition>
     <transition>
@@ -563,14 +563,14 @@
         <String>a2</String>
       </input>
       <pop>
-        <Integer>4</Integer>
+        <Unsigned>4</Unsigned>
       </pop>
       <to>
         <Unsigned>2</Unsigned>
       </to>
       <push>
-        <Integer>5</Integer>
-        <Integer>6</Integer>
+        <Unsigned>5</Unsigned>
+        <Unsigned>6</Unsigned>
       </push>
     </transition>
     <transition>
@@ -581,14 +581,14 @@
         <String>a2</String>
       </input>
       <pop>
-        <Integer>5</Integer>
+        <Unsigned>5</Unsigned>
       </pop>
       <to>
         <Unsigned>2</Unsigned>
       </to>
       <push>
-        <Integer>5</Integer>
-        <Integer>8</Integer>
+        <Unsigned>5</Unsigned>
+        <Unsigned>8</Unsigned>
       </push>
     </transition>
     <transition>
@@ -599,14 +599,14 @@
         <String>a2</String>
       </input>
       <pop>
-        <Integer>7</Integer>
+        <Unsigned>7</Unsigned>
       </pop>
       <to>
         <Unsigned>2</Unsigned>
       </to>
       <push>
-        <Integer>5</Integer>
-        <Integer>8</Integer>
+        <Unsigned>5</Unsigned>
+        <Unsigned>8</Unsigned>
       </push>
     </transition>
     <transition>
@@ -617,14 +617,14 @@
         <String>a2</String>
       </input>
       <pop>
-        <Integer>9</Integer>
+        <Unsigned>9</Unsigned>
       </pop>
       <to>
         <Unsigned>2</Unsigned>
       </to>
       <push>
-        <Integer>10</Integer>
-        <Integer>11</Integer>
+        <Unsigned>10</Unsigned>
+        <Unsigned>11</Unsigned>
       </push>
     </transition>
     <transition>
@@ -635,14 +635,14 @@
         <String>a2</String>
       </input>
       <pop>
-        <Integer>10</Integer>
+        <Unsigned>10</Unsigned>
       </pop>
       <to>
         <Unsigned>2</Unsigned>
       </to>
       <push>
-        <Integer>13</Integer>
-        <Integer>14</Integer>
+        <Unsigned>13</Unsigned>
+        <Unsigned>14</Unsigned>
       </push>
     </transition>
     <transition>
@@ -653,14 +653,14 @@
         <String>a2</String>
       </input>
       <pop>
-        <Integer>12</Integer>
+        <Unsigned>12</Unsigned>
       </pop>
       <to>
         <Unsigned>2</Unsigned>
       </to>
       <push>
-        <Integer>13</Integer>
-        <Integer>14</Integer>
+        <Unsigned>13</Unsigned>
+        <Unsigned>14</Unsigned>
       </push>
     </transition>
     <transition>
@@ -671,14 +671,14 @@
         <String>a2</String>
       </input>
       <pop>
-        <Integer>13</Integer>
+        <Unsigned>13</Unsigned>
       </pop>
       <to>
         <Unsigned>2</Unsigned>
       </to>
       <push>
-        <Integer>13</Integer>
-        <Integer>20</Integer>
+        <Unsigned>13</Unsigned>
+        <Unsigned>20</Unsigned>
       </push>
     </transition>
     <transition>
@@ -689,14 +689,14 @@
         <String>a2</String>
       </input>
       <pop>
-        <Integer>15</Integer>
+        <Unsigned>15</Unsigned>
       </pop>
       <to>
         <Unsigned>2</Unsigned>
       </to>
       <push>
-        <Integer>13</Integer>
-        <Integer>17</Integer>
+        <Unsigned>13</Unsigned>
+        <Unsigned>17</Unsigned>
       </push>
     </transition>
     <transition>
@@ -707,14 +707,14 @@
         <String>a2</String>
       </input>
       <pop>
-        <Integer>16</Integer>
+        <Unsigned>16</Unsigned>
       </pop>
       <to>
         <Unsigned>2</Unsigned>
       </to>
       <push>
-        <Integer>13</Integer>
-        <Integer>18</Integer>
+        <Unsigned>13</Unsigned>
+        <Unsigned>18</Unsigned>
       </push>
     </transition>
     <transition>
@@ -725,14 +725,14 @@
         <String>a2</String>
       </input>
       <pop>
-        <Integer>19</Integer>
+        <Unsigned>19</Unsigned>
       </pop>
       <to>
         <Unsigned>2</Unsigned>
       </to>
       <push>
-        <Integer>13</Integer>
-        <Integer>20</Integer>
+        <Unsigned>13</Unsigned>
+        <Unsigned>20</Unsigned>
       </push>
     </transition>
     <transition>
@@ -743,7 +743,7 @@
         <String>a0</String>
       </input>
       <pop>
-        <Integer>3</Integer>
+        <Unsigned>3</Unsigned>
       </pop>
       <to>
         <Unsigned>5</Unsigned>
@@ -758,13 +758,13 @@
         <String>a1</String>
       </input>
       <pop>
-        <Integer>3</Integer>
+        <Unsigned>3</Unsigned>
       </pop>
       <to>
         <Unsigned>2</Unsigned>
       </to>
       <push>
-        <Integer>9</Integer>
+        <Unsigned>9</Unsigned>
       </push>
     </transition>
     <transition>
@@ -775,14 +775,14 @@
         <String>a2</String>
       </input>
       <pop>
-        <Integer>3</Integer>
+        <Unsigned>3</Unsigned>
       </pop>
       <to>
         <Unsigned>2</Unsigned>
       </to>
       <push>
-        <Integer>10</Integer>
-        <Integer>11</Integer>
+        <Unsigned>10</Unsigned>
+        <Unsigned>11</Unsigned>
       </push>
     </transition>
     <transition>
@@ -793,7 +793,7 @@
         <String>a0</String>
       </input>
       <pop>
-        <Integer>6</Integer>
+        <Unsigned>6</Unsigned>
       </pop>
       <to>
         <Unsigned>7</Unsigned>
@@ -808,7 +808,7 @@
         <String>a0</String>
       </input>
       <pop>
-        <Integer>8</Integer>
+        <Unsigned>8</Unsigned>
       </pop>
       <to>
         <Unsigned>8</Unsigned>
@@ -823,13 +823,13 @@
         <String>a1</String>
       </input>
       <pop>
-        <Integer>6</Integer>
+        <Unsigned>6</Unsigned>
       </pop>
       <to>
         <Unsigned>2</Unsigned>
       </to>
       <push>
-        <Integer>15</Integer>
+        <Unsigned>15</Unsigned>
       </push>
     </transition>
     <transition>
@@ -840,13 +840,13 @@
         <String>a1</String>
       </input>
       <pop>
-        <Integer>8</Integer>
+        <Unsigned>8</Unsigned>
       </pop>
       <to>
         <Unsigned>2</Unsigned>
       </to>
       <push>
-        <Integer>16</Integer>
+        <Unsigned>16</Unsigned>
       </push>
     </transition>
     <transition>
@@ -857,14 +857,14 @@
         <String>a2</String>
       </input>
       <pop>
-        <Integer>6</Integer>
+        <Unsigned>6</Unsigned>
       </pop>
       <to>
         <Unsigned>2</Unsigned>
       </to>
       <push>
-        <Integer>13</Integer>
-        <Integer>17</Integer>
+        <Unsigned>13</Unsigned>
+        <Unsigned>17</Unsigned>
       </push>
     </transition>
     <transition>
@@ -875,14 +875,14 @@
         <String>a2</String>
       </input>
       <pop>
-        <Integer>8</Integer>
+        <Unsigned>8</Unsigned>
       </pop>
       <to>
         <Unsigned>2</Unsigned>
       </to>
       <push>
-        <Integer>13</Integer>
-        <Integer>18</Integer>
+        <Unsigned>13</Unsigned>
+        <Unsigned>18</Unsigned>
       </push>
     </transition>
     <transition>
@@ -893,7 +893,7 @@
         <String>a0</String>
       </input>
       <pop>
-        <Integer>11</Integer>
+        <Unsigned>11</Unsigned>
       </pop>
       <to>
         <Unsigned>5</Unsigned>
@@ -908,13 +908,13 @@
         <String>a1</String>
       </input>
       <pop>
-        <Integer>11</Integer>
+        <Unsigned>11</Unsigned>
       </pop>
       <to>
         <Unsigned>10</Unsigned>
       </to>
       <push>
-        <Integer>21</Integer>
+        <Unsigned>21</Unsigned>
       </push>
     </transition>
     <transition>
@@ -925,14 +925,14 @@
         <String>a2</String>
       </input>
       <pop>
-        <Integer>11</Integer>
+        <Unsigned>11</Unsigned>
       </pop>
       <to>
         <Unsigned>2</Unsigned>
       </to>
       <push>
-        <Integer>10</Integer>
-        <Integer>11</Integer>
+        <Unsigned>10</Unsigned>
+        <Unsigned>11</Unsigned>
       </push>
     </transition>
     <transition>
@@ -943,7 +943,7 @@
         <String>a0</String>
       </input>
       <pop>
-        <Integer>3</Integer>
+        <Unsigned>3</Unsigned>
       </pop>
       <to>
         <Unsigned>5</Unsigned>
@@ -958,7 +958,7 @@
         <String>a0</String>
       </input>
       <pop>
-        <Integer>11</Integer>
+        <Unsigned>11</Unsigned>
       </pop>
       <to>
         <Unsigned>5</Unsigned>
@@ -973,7 +973,7 @@
         <String>a0</String>
       </input>
       <pop>
-        <Integer>32</Integer>
+        <Unsigned>32</Unsigned>
       </pop>
       <to>
         <Unsigned>5</Unsigned>
@@ -988,13 +988,13 @@
         <String>a1</String>
       </input>
       <pop>
-        <Integer>3</Integer>
+        <Unsigned>3</Unsigned>
       </pop>
       <to>
         <Unsigned>10</Unsigned>
       </to>
       <push>
-        <Integer>21</Integer>
+        <Unsigned>21</Unsigned>
       </push>
     </transition>
     <transition>
@@ -1005,13 +1005,13 @@
         <String>a1</String>
       </input>
       <pop>
-        <Integer>11</Integer>
+        <Unsigned>11</Unsigned>
       </pop>
       <to>
         <Unsigned>10</Unsigned>
       </to>
       <push>
-        <Integer>21</Integer>
+        <Unsigned>21</Unsigned>
       </push>
     </transition>
     <transition>
@@ -1022,13 +1022,13 @@
         <String>a1</String>
       </input>
       <pop>
-        <Integer>32</Integer>
+        <Unsigned>32</Unsigned>
       </pop>
       <to>
         <Unsigned>10</Unsigned>
       </to>
       <push>
-        <Integer>21</Integer>
+        <Unsigned>21</Unsigned>
       </push>
     </transition>
     <transition>
@@ -1039,14 +1039,14 @@
         <String>a2</String>
       </input>
       <pop>
-        <Integer>3</Integer>
+        <Unsigned>3</Unsigned>
       </pop>
       <to>
         <Unsigned>2</Unsigned>
       </to>
       <push>
-        <Integer>10</Integer>
-        <Integer>11</Integer>
+        <Unsigned>10</Unsigned>
+        <Unsigned>11</Unsigned>
       </push>
     </transition>
     <transition>
@@ -1057,14 +1057,14 @@
         <String>a2</String>
       </input>
       <pop>
-        <Integer>11</Integer>
+        <Unsigned>11</Unsigned>
       </pop>
       <to>
         <Unsigned>2</Unsigned>
       </to>
       <push>
-        <Integer>10</Integer>
-        <Integer>11</Integer>
+        <Unsigned>10</Unsigned>
+        <Unsigned>11</Unsigned>
       </push>
     </transition>
     <transition>
@@ -1075,14 +1075,14 @@
         <String>a2</String>
       </input>
       <pop>
-        <Integer>32</Integer>
+        <Unsigned>32</Unsigned>
       </pop>
       <to>
         <Unsigned>2</Unsigned>
       </to>
       <push>
-        <Integer>10</Integer>
-        <Integer>11</Integer>
+        <Unsigned>10</Unsigned>
+        <Unsigned>11</Unsigned>
       </push>
     </transition>
     <transition>
@@ -1093,7 +1093,7 @@
         <String>a0</String>
       </input>
       <pop>
-        <Integer>6</Integer>
+        <Unsigned>6</Unsigned>
       </pop>
       <to>
         <Unsigned>7</Unsigned>
@@ -1108,7 +1108,7 @@
         <String>a0</String>
       </input>
       <pop>
-        <Integer>8</Integer>
+        <Unsigned>8</Unsigned>
       </pop>
       <to>
         <Unsigned>8</Unsigned>
@@ -1123,7 +1123,7 @@
         <String>a0</String>
       </input>
       <pop>
-        <Integer>14</Integer>
+        <Unsigned>14</Unsigned>
       </pop>
       <to>
         <Unsigned>7</Unsigned>
@@ -1138,7 +1138,7 @@
         <String>a0</String>
       </input>
       <pop>
-        <Integer>17</Integer>
+        <Unsigned>17</Unsigned>
       </pop>
       <to>
         <Unsigned>7</Unsigned>
@@ -1153,7 +1153,7 @@
         <String>a0</String>
       </input>
       <pop>
-        <Integer>18</Integer>
+        <Unsigned>18</Unsigned>
       </pop>
       <to>
         <Unsigned>8</Unsigned>
@@ -1168,7 +1168,7 @@
         <String>a0</String>
       </input>
       <pop>
-        <Integer>20</Integer>
+        <Unsigned>20</Unsigned>
       </pop>
       <to>
         <Unsigned>8</Unsigned>
@@ -1183,7 +1183,7 @@
         <String>a0</String>
       </input>
       <pop>
-        <Integer>34</Integer>
+        <Unsigned>34</Unsigned>
       </pop>
       <to>
         <Unsigned>7</Unsigned>
@@ -1198,7 +1198,7 @@
         <String>a0</String>
       </input>
       <pop>
-        <Integer>35</Integer>
+        <Unsigned>35</Unsigned>
       </pop>
       <to>
         <Unsigned>8</Unsigned>
@@ -1213,7 +1213,7 @@
         <String>a0</String>
       </input>
       <pop>
-        <Integer>36</Integer>
+        <Unsigned>36</Unsigned>
       </pop>
       <to>
         <Unsigned>7</Unsigned>
@@ -1228,7 +1228,7 @@
         <String>a0</String>
       </input>
       <pop>
-        <Integer>37</Integer>
+        <Unsigned>37</Unsigned>
       </pop>
       <to>
         <Unsigned>8</Unsigned>
@@ -1243,7 +1243,7 @@
         <String>a0</String>
       </input>
       <pop>
-        <Integer>40</Integer>
+        <Unsigned>40</Unsigned>
       </pop>
       <to>
         <Unsigned>7</Unsigned>
@@ -1258,7 +1258,7 @@
         <String>a0</String>
       </input>
       <pop>
-        <Integer>41</Integer>
+        <Unsigned>41</Unsigned>
       </pop>
       <to>
         <Unsigned>8</Unsigned>
@@ -1273,13 +1273,13 @@
         <String>a1</String>
       </input>
       <pop>
-        <Integer>6</Integer>
+        <Unsigned>6</Unsigned>
       </pop>
       <to>
         <Unsigned>10</Unsigned>
       </to>
       <push>
-        <Integer>22</Integer>
+        <Unsigned>22</Unsigned>
       </push>
     </transition>
     <transition>
@@ -1290,13 +1290,13 @@
         <String>a1</String>
       </input>
       <pop>
-        <Integer>8</Integer>
+        <Unsigned>8</Unsigned>
       </pop>
       <to>
         <Unsigned>10</Unsigned>
       </to>
       <push>
-        <Integer>23</Integer>
+        <Unsigned>23</Unsigned>
       </push>
     </transition>
     <transition>
@@ -1307,13 +1307,13 @@
         <String>a1</String>
       </input>
       <pop>
-        <Integer>14</Integer>
+        <Unsigned>14</Unsigned>
       </pop>
       <to>
         <Unsigned>10</Unsigned>
       </to>
       <push>
-        <Integer>22</Integer>
+        <Unsigned>22</Unsigned>
       </push>
     </transition>
     <transition>
@@ -1324,13 +1324,13 @@
         <String>a1</String>
       </input>
       <pop>
-        <Integer>17</Integer>
+        <Unsigned>17</Unsigned>
       </pop>
       <to>
         <Unsigned>10</Unsigned>
       </to>
       <push>
-        <Integer>22</Integer>
+        <Unsigned>22</Unsigned>
       </push>
     </transition>
     <transition>
@@ -1341,13 +1341,13 @@
         <String>a1</String>
       </input>
       <pop>
-        <Integer>18</Integer>
+        <Unsigned>18</Unsigned>
       </pop>
       <to>
         <Unsigned>10</Unsigned>
       </to>
       <push>
-        <Integer>23</Integer>
+        <Unsigned>23</Unsigned>
       </push>
     </transition>
     <transition>
@@ -1358,13 +1358,13 @@
         <String>a1</String>
       </input>
       <pop>
-        <Integer>20</Integer>
+        <Unsigned>20</Unsigned>
       </pop>
       <to>
         <Unsigned>10</Unsigned>
       </to>
       <push>
-        <Integer>23</Integer>
+        <Unsigned>23</Unsigned>
       </push>
     </transition>
     <transition>
@@ -1375,13 +1375,13 @@
         <String>a1</String>
       </input>
       <pop>
-        <Integer>34</Integer>
+        <Unsigned>34</Unsigned>
       </pop>
       <to>
         <Unsigned>10</Unsigned>
       </to>
       <push>
-        <Integer>22</Integer>
+        <Unsigned>22</Unsigned>
       </push>
     </transition>
     <transition>
@@ -1392,13 +1392,13 @@
         <String>a1</String>
       </input>
       <pop>
-        <Integer>35</Integer>
+        <Unsigned>35</Unsigned>
       </pop>
       <to>
         <Unsigned>10</Unsigned>
       </to>
       <push>
-        <Integer>23</Integer>
+        <Unsigned>23</Unsigned>
       </push>
     </transition>
     <transition>
@@ -1409,13 +1409,13 @@
         <String>a1</String>
       </input>
       <pop>
-        <Integer>36</Integer>
+        <Unsigned>36</Unsigned>
       </pop>
       <to>
         <Unsigned>10</Unsigned>
       </to>
       <push>
-        <Integer>22</Integer>
+        <Unsigned>22</Unsigned>
       </push>
     </transition>
     <transition>
@@ -1426,13 +1426,13 @@
         <String>a1</String>
       </input>
       <pop>
-        <Integer>37</Integer>
+        <Unsigned>37</Unsigned>
       </pop>
       <to>
         <Unsigned>10</Unsigned>
       </to>
       <push>
-        <Integer>23</Integer>
+        <Unsigned>23</Unsigned>
       </push>
     </transition>
     <transition>
@@ -1443,13 +1443,13 @@
         <String>a1</String>
       </input>
       <pop>
-        <Integer>40</Integer>
+        <Unsigned>40</Unsigned>
       </pop>
       <to>
         <Unsigned>10</Unsigned>
       </to>
       <push>
-        <Integer>22</Integer>
+        <Unsigned>22</Unsigned>
       </push>
     </transition>
     <transition>
@@ -1460,13 +1460,13 @@
         <String>a1</String>
       </input>
       <pop>
-        <Integer>41</Integer>
+        <Unsigned>41</Unsigned>
       </pop>
       <to>
         <Unsigned>10</Unsigned>
       </to>
       <push>
-        <Integer>23</Integer>
+        <Unsigned>23</Unsigned>
       </push>
     </transition>
     <transition>
@@ -1477,14 +1477,14 @@
         <String>a2</String>
       </input>
       <pop>
-        <Integer>6</Integer>
+        <Unsigned>6</Unsigned>
       </pop>
       <to>
         <Unsigned>2</Unsigned>
       </to>
       <push>
-        <Integer>13</Integer>
-        <Integer>17</Integer>
+        <Unsigned>13</Unsigned>
+        <Unsigned>17</Unsigned>
       </push>
     </transition>
     <transition>
@@ -1495,14 +1495,14 @@
         <String>a2</String>
       </input>
       <pop>
-        <Integer>8</Integer>
+        <Unsigned>8</Unsigned>
       </pop>
       <to>
         <Unsigned>2</Unsigned>
       </to>
       <push>
-        <Integer>13</Integer>
-        <Integer>18</Integer>
+        <Unsigned>13</Unsigned>
+        <Unsigned>18</Unsigned>
       </push>
     </transition>
     <transition>
@@ -1513,14 +1513,14 @@
         <String>a2</String>
       </input>
       <pop>
-        <Integer>14</Integer>
+        <Unsigned>14</Unsigned>
       </pop>
       <to>
         <Unsigned>2</Unsigned>
       </to>
       <push>
-        <Integer>13</Integer>
-        <Integer>17</Integer>
+        <Unsigned>13</Unsigned>
+        <Unsigned>17</Unsigned>
       </push>
     </transition>
     <transition>
@@ -1531,14 +1531,14 @@
         <String>a2</String>
       </input>
       <pop>
-        <Integer>17</Integer>
+        <Unsigned>17</Unsigned>
       </pop>
       <to>
         <Unsigned>2</Unsigned>
       </to>
       <push>
-        <Integer>13</Integer>
-        <Integer>17</Integer>
+        <Unsigned>13</Unsigned>
+        <Unsigned>17</Unsigned>
       </push>
     </transition>
     <transition>
@@ -1549,14 +1549,14 @@
         <String>a2</String>
       </input>
       <pop>
-        <Integer>18</Integer>
+        <Unsigned>18</Unsigned>
       </pop>
       <to>
         <Unsigned>2</Unsigned>
       </to>
       <push>
-        <Integer>13</Integer>
-        <Integer>18</Integer>
+        <Unsigned>13</Unsigned>
+        <Unsigned>18</Unsigned>
       </push>
     </transition>
     <transition>
@@ -1567,14 +1567,14 @@
         <String>a2</String>
       </input>
       <pop>
-        <Integer>20</Integer>
+        <Unsigned>20</Unsigned>
       </pop>
       <to>
         <Unsigned>2</Unsigned>
       </to>
       <push>
-        <Integer>13</Integer>
-        <Integer>18</Integer>
+        <Unsigned>13</Unsigned>
+        <Unsigned>18</Unsigned>
       </push>
     </transition>
     <transition>
@@ -1585,14 +1585,14 @@
         <String>a2</String>
       </input>
       <pop>
-        <Integer>34</Integer>
+        <Unsigned>34</Unsigned>
       </pop>
       <to>
         <Unsigned>2</Unsigned>
       </to>
       <push>
-        <Integer>13</Integer>
-        <Integer>17</Integer>
+        <Unsigned>13</Unsigned>
+        <Unsigned>17</Unsigned>
       </push>
     </transition>
     <transition>
@@ -1603,14 +1603,14 @@
         <String>a2</String>
       </input>
       <pop>
-        <Integer>35</Integer>
+        <Unsigned>35</Unsigned>
       </pop>
       <to>
         <Unsigned>2</Unsigned>
       </to>
       <push>
-        <Integer>13</Integer>
-        <Integer>18</Integer>
+        <Unsigned>13</Unsigned>
+        <Unsigned>18</Unsigned>
       </push>
     </transition>
     <transition>
@@ -1621,14 +1621,14 @@
         <String>a2</String>
       </input>
       <pop>
-        <Integer>36</Integer>
+        <Unsigned>36</Unsigned>
       </pop>
       <to>
         <Unsigned>2</Unsigned>
       </to>
       <push>
-        <Integer>13</Integer>
-        <Integer>17</Integer>
+        <Unsigned>13</Unsigned>
+        <Unsigned>17</Unsigned>
       </push>
     </transition>
     <transition>
@@ -1639,14 +1639,14 @@
         <String>a2</String>
       </input>
       <pop>
-        <Integer>37</Integer>
+        <Unsigned>37</Unsigned>
       </pop>
       <to>
         <Unsigned>2</Unsigned>
       </to>
       <push>
-        <Integer>13</Integer>
-        <Integer>18</Integer>
+        <Unsigned>13</Unsigned>
+        <Unsigned>18</Unsigned>
       </push>
     </transition>
     <transition>
@@ -1657,14 +1657,14 @@
         <String>a2</String>
       </input>
       <pop>
-        <Integer>40</Integer>
+        <Unsigned>40</Unsigned>
       </pop>
       <to>
         <Unsigned>2</Unsigned>
       </to>
       <push>
-        <Integer>13</Integer>
-        <Integer>17</Integer>
+        <Unsigned>13</Unsigned>
+        <Unsigned>17</Unsigned>
       </push>
     </transition>
     <transition>
@@ -1675,14 +1675,14 @@
         <String>a2</String>
       </input>
       <pop>
-        <Integer>41</Integer>
+        <Unsigned>41</Unsigned>
       </pop>
       <to>
         <Unsigned>2</Unsigned>
       </to>
       <push>
-        <Integer>13</Integer>
-        <Integer>18</Integer>
+        <Unsigned>13</Unsigned>
+        <Unsigned>18</Unsigned>
       </push>
     </transition>
     <transition>
@@ -1693,7 +1693,7 @@
         <String>a0</String>
       </input>
       <pop>
-        <Integer>14</Integer>
+        <Unsigned>14</Unsigned>
       </pop>
       <to>
         <Unsigned>7</Unsigned>
@@ -1708,7 +1708,7 @@
         <String>a0</String>
       </input>
       <pop>
-        <Integer>17</Integer>
+        <Unsigned>17</Unsigned>
       </pop>
       <to>
         <Unsigned>7</Unsigned>
@@ -1723,7 +1723,7 @@
         <String>a0</String>
       </input>
       <pop>
-        <Integer>18</Integer>
+        <Unsigned>18</Unsigned>
       </pop>
       <to>
         <Unsigned>8</Unsigned>
@@ -1738,7 +1738,7 @@
         <String>a0</String>
       </input>
       <pop>
-        <Integer>20</Integer>
+        <Unsigned>20</Unsigned>
       </pop>
       <to>
         <Unsigned>8</Unsigned>
@@ -1753,13 +1753,13 @@
         <String>a1</String>
       </input>
       <pop>
-        <Integer>14</Integer>
+        <Unsigned>14</Unsigned>
       </pop>
       <to>
         <Unsigned>10</Unsigned>
       </to>
       <push>
-        <Integer>24</Integer>
+        <Unsigned>24</Unsigned>
       </push>
     </transition>
     <transition>
@@ -1770,13 +1770,13 @@
         <String>a1</String>
       </input>
       <pop>
-        <Integer>17</Integer>
+        <Unsigned>17</Unsigned>
       </pop>
       <to>
         <Unsigned>10</Unsigned>
       </to>
       <push>
-        <Integer>22</Integer>
+        <Unsigned>22</Unsigned>
       </push>
     </transition>
     <transition>
@@ -1787,13 +1787,13 @@
         <String>a1</String>
       </input>
       <pop>
-        <Integer>18</Integer>
+        <Unsigned>18</Unsigned>
       </pop>
       <to>
         <Unsigned>10</Unsigned>
       </to>
       <push>
-        <Integer>23</Integer>
+        <Unsigned>23</Unsigned>
       </push>
     </transition>
     <transition>
@@ -1804,13 +1804,13 @@
         <String>a1</String>
       </input>
       <pop>
-        <Integer>20</Integer>
+        <Unsigned>20</Unsigned>
       </pop>
       <to>
         <Unsigned>10</Unsigned>
       </to>
       <push>
-        <Integer>25</Integer>
+        <Unsigned>25</Unsigned>
       </push>
     </transition>
     <transition>
@@ -1821,14 +1821,14 @@
         <String>a2</String>
       </input>
       <pop>
-        <Integer>14</Integer>
+        <Unsigned>14</Unsigned>
       </pop>
       <to>
         <Unsigned>2</Unsigned>
       </to>
       <push>
-        <Integer>13</Integer>
-        <Integer>17</Integer>
+        <Unsigned>13</Unsigned>
+        <Unsigned>17</Unsigned>
       </push>
     </transition>
     <transition>
@@ -1839,14 +1839,14 @@
         <String>a2</String>
       </input>
       <pop>
-        <Integer>17</Integer>
+        <Unsigned>17</Unsigned>
       </pop>
       <to>
         <Unsigned>2</Unsigned>
       </to>
       <push>
-        <Integer>13</Integer>
-        <Integer>17</Integer>
+        <Unsigned>13</Unsigned>
+        <Unsigned>17</Unsigned>
       </push>
     </transition>
     <transition>
@@ -1857,14 +1857,14 @@
         <String>a2</String>
       </input>
       <pop>
-        <Integer>18</Integer>
+        <Unsigned>18</Unsigned>
       </pop>
       <to>
         <Unsigned>2</Unsigned>
       </to>
       <push>
-        <Integer>13</Integer>
-        <Integer>18</Integer>
+        <Unsigned>13</Unsigned>
+        <Unsigned>18</Unsigned>
       </push>
     </transition>
     <transition>
@@ -1875,14 +1875,14 @@
         <String>a2</String>
       </input>
       <pop>
-        <Integer>20</Integer>
+        <Unsigned>20</Unsigned>
       </pop>
       <to>
         <Unsigned>2</Unsigned>
       </to>
       <push>
-        <Integer>13</Integer>
-        <Integer>18</Integer>
+        <Unsigned>13</Unsigned>
+        <Unsigned>18</Unsigned>
       </push>
     </transition>
     <transition>
@@ -1893,7 +1893,7 @@
         <String>a0</String>
       </input>
       <pop>
-        <Integer>21</Integer>
+        <Unsigned>21</Unsigned>
       </pop>
       <to>
         <Unsigned>11</Unsigned>
@@ -1908,7 +1908,7 @@
         <String>a0</String>
       </input>
       <pop>
-        <Integer>22</Integer>
+        <Unsigned>22</Unsigned>
       </pop>
       <to>
         <Unsigned>12</Unsigned>
@@ -1923,7 +1923,7 @@
         <String>a0</String>
       </input>
       <pop>
-        <Integer>23</Integer>
+        <Unsigned>23</Unsigned>
       </pop>
       <to>
         <Unsigned>13</Unsigned>
@@ -1938,7 +1938,7 @@
         <String>a0</String>
       </input>
       <pop>
-        <Integer>24</Integer>
+        <Unsigned>24</Unsigned>
       </pop>
       <to>
         <Unsigned>14</Unsigned>
@@ -1953,7 +1953,7 @@
         <String>a0</String>
       </input>
       <pop>
-        <Integer>25</Integer>
+        <Unsigned>25</Unsigned>
       </pop>
       <to>
         <Unsigned>15</Unsigned>
@@ -1968,7 +1968,7 @@
         <String>a0</String>
       </input>
       <pop>
-        <Integer>26</Integer>
+        <Unsigned>26</Unsigned>
       </pop>
       <to>
         <Unsigned>11</Unsigned>
@@ -1983,7 +1983,7 @@
         <String>a0</String>
       </input>
       <pop>
-        <Integer>27</Integer>
+        <Unsigned>27</Unsigned>
       </pop>
       <to>
         <Unsigned>12</Unsigned>
@@ -1998,7 +1998,7 @@
         <String>a0</String>
       </input>
       <pop>
-        <Integer>28</Integer>
+        <Unsigned>28</Unsigned>
       </pop>
       <to>
         <Unsigned>13</Unsigned>
@@ -2013,7 +2013,7 @@
         <String>a0</String>
       </input>
       <pop>
-        <Integer>29</Integer>
+        <Unsigned>29</Unsigned>
       </pop>
       <to>
         <Unsigned>14</Unsigned>
@@ -2028,7 +2028,7 @@
         <String>a0</String>
       </input>
       <pop>
-        <Integer>30</Integer>
+        <Unsigned>30</Unsigned>
       </pop>
       <to>
         <Unsigned>15</Unsigned>
@@ -2043,7 +2043,7 @@
         <String>a0</String>
       </input>
       <pop>
-        <Integer>31</Integer>
+        <Unsigned>31</Unsigned>
       </pop>
       <to>
         <Unsigned>16</Unsigned>
@@ -2058,7 +2058,7 @@
         <String>a0</String>
       </input>
       <pop>
-        <Integer>33</Integer>
+        <Unsigned>33</Unsigned>
       </pop>
       <to>
         <Unsigned>17</Unsigned>
@@ -2073,7 +2073,7 @@
         <String>a0</String>
       </input>
       <pop>
-        <Integer>38</Integer>
+        <Unsigned>38</Unsigned>
       </pop>
       <to>
         <Unsigned>16</Unsigned>
@@ -2088,7 +2088,7 @@
         <String>a0</String>
       </input>
       <pop>
-        <Integer>39</Integer>
+        <Unsigned>39</Unsigned>
       </pop>
       <to>
         <Unsigned>17</Unsigned>
@@ -2103,13 +2103,13 @@
         <String>a1</String>
       </input>
       <pop>
-        <Integer>21</Integer>
+        <Unsigned>21</Unsigned>
       </pop>
       <to>
         <Unsigned>10</Unsigned>
       </to>
       <push>
-        <Integer>26</Integer>
+        <Unsigned>26</Unsigned>
       </push>
     </transition>
     <transition>
@@ -2120,13 +2120,13 @@
         <String>a1</String>
       </input>
       <pop>
-        <Integer>22</Integer>
+        <Unsigned>22</Unsigned>
       </pop>
       <to>
         <Unsigned>10</Unsigned>
       </to>
       <push>
-        <Integer>27</Integer>
+        <Unsigned>27</Unsigned>
       </push>
     </transition>
     <transition>
@@ -2137,13 +2137,13 @@
         <String>a1</String>
       </input>
       <pop>
-        <Integer>23</Integer>
+        <Unsigned>23</Unsigned>
       </pop>
       <to>
         <Unsigned>10</Unsigned>
       </to>
       <push>
-        <Integer>28</Integer>
+        <Unsigned>28</Unsigned>
       </push>
     </transition>
     <transition>
@@ -2154,13 +2154,13 @@
         <String>a1</String>
       </input>
       <pop>
-        <Integer>24</Integer>
+        <Unsigned>24</Unsigned>
       </pop>
       <to>
         <Unsigned>10</Unsigned>
       </to>
       <push>
-        <Integer>29</Integer>
+        <Unsigned>29</Unsigned>
       </push>
     </transition>
     <transition>
@@ -2171,13 +2171,13 @@
         <String>a1</String>
       </input>
       <pop>
-        <Integer>25</Integer>
+        <Unsigned>25</Unsigned>
       </pop>
       <to>
         <Unsigned>10</Unsigned>
       </to>
       <push>
-        <Integer>30</Integer>
+        <Unsigned>30</Unsigned>
       </push>
     </transition>
     <transition>
@@ -2188,13 +2188,13 @@
         <String>a1</String>
       </input>
       <pop>
-        <Integer>26</Integer>
+        <Unsigned>26</Unsigned>
       </pop>
       <to>
         <Unsigned>10</Unsigned>
       </to>
       <push>
-        <Integer>26</Integer>
+        <Unsigned>26</Unsigned>
       </push>
     </transition>
     <transition>
@@ -2205,13 +2205,13 @@
         <String>a1</String>
       </input>
       <pop>
-        <Integer>27</Integer>
+        <Unsigned>27</Unsigned>
       </pop>
       <to>
         <Unsigned>10</Unsigned>
       </to>
       <push>
-        <Integer>27</Integer>
+        <Unsigned>27</Unsigned>
       </push>
     </transition>
     <transition>
@@ -2222,13 +2222,13 @@
         <String>a1</String>
       </input>
       <pop>
-        <Integer>28</Integer>
+        <Unsigned>28</Unsigned>
       </pop>
       <to>
         <Unsigned>10</Unsigned>
       </to>
       <push>
-        <Integer>28</Integer>
+        <Unsigned>28</Unsigned>
       </push>
     </transition>
     <transition>
@@ -2239,13 +2239,13 @@
         <String>a1</String>
       </input>
       <pop>
-        <Integer>29</Integer>
+        <Unsigned>29</Unsigned>
       </pop>
       <to>
         <Unsigned>10</Unsigned>
       </to>
       <push>
-        <Integer>29</Integer>
+        <Unsigned>29</Unsigned>
       </push>
     </transition>
     <transition>
@@ -2256,13 +2256,13 @@
         <String>a1</String>
       </input>
       <pop>
-        <Integer>30</Integer>
+        <Unsigned>30</Unsigned>
       </pop>
       <to>
         <Unsigned>10</Unsigned>
       </to>
       <push>
-        <Integer>30</Integer>
+        <Unsigned>30</Unsigned>
       </push>
     </transition>
     <transition>
@@ -2273,13 +2273,13 @@
         <String>a1</String>
       </input>
       <pop>
-        <Integer>31</Integer>
+        <Unsigned>31</Unsigned>
       </pop>
       <to>
         <Unsigned>10</Unsigned>
       </to>
       <push>
-        <Integer>38</Integer>
+        <Unsigned>38</Unsigned>
       </push>
     </transition>
     <transition>
@@ -2290,13 +2290,13 @@
         <String>a1</String>
       </input>
       <pop>
-        <Integer>33</Integer>
+        <Unsigned>33</Unsigned>
       </pop>
       <to>
         <Unsigned>10</Unsigned>
       </to>
       <push>
-        <Integer>39</Integer>
+        <Unsigned>39</Unsigned>
       </push>
     </transition>
     <transition>
@@ -2307,13 +2307,13 @@
         <String>a1</String>
       </input>
       <pop>
-        <Integer>38</Integer>
+        <Unsigned>38</Unsigned>
       </pop>
       <to>
         <Unsigned>10</Unsigned>
       </to>
       <push>
-        <Integer>38</Integer>
+        <Unsigned>38</Unsigned>
       </push>
     </transition>
     <transition>
@@ -2324,13 +2324,13 @@
         <String>a1</String>
       </input>
       <pop>
-        <Integer>39</Integer>
+        <Unsigned>39</Unsigned>
       </pop>
       <to>
         <Unsigned>10</Unsigned>
       </to>
       <push>
-        <Integer>39</Integer>
+        <Unsigned>39</Unsigned>
       </push>
     </transition>
     <transition>
@@ -2341,14 +2341,14 @@
         <String>a2</String>
       </input>
       <pop>
-        <Integer>21</Integer>
+        <Unsigned>21</Unsigned>
       </pop>
       <to>
         <Unsigned>10</Unsigned>
       </to>
       <push>
-        <Integer>31</Integer>
-        <Integer>32</Integer>
+        <Unsigned>31</Unsigned>
+        <Unsigned>32</Unsigned>
       </push>
     </transition>
     <transition>
@@ -2359,14 +2359,14 @@
         <String>a2</String>
       </input>
       <pop>
-        <Integer>22</Integer>
+        <Unsigned>22</Unsigned>
       </pop>
       <to>
         <Unsigned>10</Unsigned>
       </to>
       <push>
-        <Integer>33</Integer>
-        <Integer>34</Integer>
+        <Unsigned>33</Unsigned>
+        <Unsigned>34</Unsigned>
       </push>
     </transition>
     <transition>
@@ -2377,14 +2377,14 @@
         <String>a2</String>
       </input>
       <pop>
-        <Integer>23</Integer>
+        <Unsigned>23</Unsigned>
       </pop>
       <to>
         <Unsigned>10</Unsigned>
       </to>
       <push>
-        <Integer>33</Integer>
-        <Integer>35</Integer>
+        <Unsigned>33</Unsigned>
+        <Unsigned>35</Unsigned>
       </push>
     </transition>
     <transition>
@@ -2395,14 +2395,14 @@
         <String>a2</String>
       </input>
       <pop>
-        <Integer>24</Integer>
+        <Unsigned>24</Unsigned>
       </pop>
       <to>
         <Unsigned>10</Unsigned>
       </to>
       <push>
-        <Integer>33</Integer>
-        <Integer>36</Integer>
+        <Unsigned>33</Unsigned>
+        <Unsigned>36</Unsigned>
       </push>
     </transition>
     <transition>
@@ -2413,14 +2413,14 @@
         <String>a2</String>
       </input>
       <pop>
-        <Integer>25</Integer>
+        <Unsigned>25</Unsigned>
       </pop>
       <to>
         <Unsigned>10</Unsigned>
       </to>
       <push>
-        <Integer>33</Integer>
-        <Integer>37</Integer>
+        <Unsigned>33</Unsigned>
+        <Unsigned>37</Unsigned>
       </push>
     </transition>
     <transition>
@@ -2431,14 +2431,14 @@
         <String>a2</String>
       </input>
       <pop>
-        <Integer>26</Integer>
+        <Unsigned>26</Unsigned>
       </pop>
       <to>
         <Unsigned>10</Unsigned>
       </to>
       <push>
-        <Integer>31</Integer>
-        <Integer>32</Integer>
+        <Unsigned>31</Unsigned>
+        <Unsigned>32</Unsigned>
       </push>
     </transition>
     <transition>
@@ -2449,14 +2449,14 @@
         <String>a2</String>
       </input>
       <pop>
-        <Integer>27</Integer>
+        <Unsigned>27</Unsigned>
       </pop>
       <to>
         <Unsigned>10</Unsigned>
       </to>
       <push>
-        <Integer>33</Integer>
-        <Integer>34</Integer>
+        <Unsigned>33</Unsigned>
+        <Unsigned>34</Unsigned>
       </push>
     </transition>
     <transition>
@@ -2467,14 +2467,14 @@
         <String>a2</String>
       </input>
       <pop>
-        <Integer>28</Integer>
+        <Unsigned>28</Unsigned>
       </pop>
       <to>
         <Unsigned>10</Unsigned>
       </to>
       <push>
-        <Integer>33</Integer>
-        <Integer>35</Integer>
+        <Unsigned>33</Unsigned>
+        <Unsigned>35</Unsigned>
       </push>
     </transition>
     <transition>
@@ -2485,14 +2485,14 @@
         <String>a2</String>
       </input>
       <pop>
-        <Integer>29</Integer>
+        <Unsigned>29</Unsigned>
       </pop>
       <to>
         <Unsigned>10</Unsigned>
       </to>
       <push>
-        <Integer>33</Integer>
-        <Integer>36</Integer>
+        <Unsigned>33</Unsigned>
+        <Unsigned>36</Unsigned>
       </push>
     </transition>
     <transition>
@@ -2503,14 +2503,14 @@
         <String>a2</String>
       </input>
       <pop>
-        <Integer>30</Integer>
+        <Unsigned>30</Unsigned>
       </pop>
       <to>
         <Unsigned>10</Unsigned>
       </to>
       <push>
-        <Integer>33</Integer>
-        <Integer>37</Integer>
+        <Unsigned>33</Unsigned>
+        <Unsigned>37</Unsigned>
       </push>
     </transition>
     <transition>
@@ -2521,14 +2521,14 @@
         <String>a2</String>
       </input>
       <pop>
-        <Integer>31</Integer>
+        <Unsigned>31</Unsigned>
       </pop>
       <to>
         <Unsigned>10</Unsigned>
       </to>
       <push>
-        <Integer>33</Integer>
-        <Integer>40</Integer>
+        <Unsigned>33</Unsigned>
+        <Unsigned>40</Unsigned>
       </push>
     </transition>
     <transition>
@@ -2539,14 +2539,14 @@
         <String>a2</String>
       </input>
       <pop>
-        <Integer>33</Integer>
+        <Unsigned>33</Unsigned>
       </pop>
       <to>
         <Unsigned>10</Unsigned>
       </to>
       <push>
-        <Integer>33</Integer>
-        <Integer>41</Integer>
+        <Unsigned>33</Unsigned>
+        <Unsigned>41</Unsigned>
       </push>
     </transition>
     <transition>
@@ -2557,14 +2557,14 @@
         <String>a2</String>
       </input>
       <pop>
-        <Integer>38</Integer>
+        <Unsigned>38</Unsigned>
       </pop>
       <to>
         <Unsigned>10</Unsigned>
       </to>
       <push>
-        <Integer>33</Integer>
-        <Integer>40</Integer>
+        <Unsigned>33</Unsigned>
+        <Unsigned>40</Unsigned>
       </push>
     </transition>
     <transition>
@@ -2575,14 +2575,14 @@
         <String>a2</String>
       </input>
       <pop>
-        <Integer>39</Integer>
+        <Unsigned>39</Unsigned>
       </pop>
       <to>
         <Unsigned>10</Unsigned>
       </to>
       <push>
-        <Integer>33</Integer>
-        <Integer>41</Integer>
+        <Unsigned>33</Unsigned>
+        <Unsigned>41</Unsigned>
       </push>
     </transition>
     <transition>
@@ -2593,7 +2593,7 @@
         <String>a0</String>
       </input>
       <pop>
-        <Integer>3</Integer>
+        <Unsigned>3</Unsigned>
       </pop>
       <to>
         <Unsigned>5</Unsigned>
@@ -2608,7 +2608,7 @@
         <String>a0</String>
       </input>
       <pop>
-        <Integer>11</Integer>
+        <Unsigned>11</Unsigned>
       </pop>
       <to>
         <Unsigned>5</Unsigned>
@@ -2623,7 +2623,7 @@
         <String>a0</String>
       </input>
       <pop>
-        <Integer>32</Integer>
+        <Unsigned>32</Unsigned>
       </pop>
       <to>
         <Unsigned>5</Unsigned>
@@ -2638,13 +2638,13 @@
         <String>a1</String>
       </input>
       <pop>
-        <Integer>3</Integer>
+        <Unsigned>3</Unsigned>
       </pop>
       <to>
         <Unsigned>10</Unsigned>
       </to>
       <push>
-        <Integer>21</Integer>
+        <Unsigned>21</Unsigned>
       </push>
     </transition>
     <transition>
@@ -2655,13 +2655,13 @@
         <String>a1</String>
       </input>
       <pop>
-        <Integer>11</Integer>
+        <Unsigned>11</Unsigned>
       </pop>
       <to>
         <Unsigned>10</Unsigned>
       </to>
       <push>
-        <Integer>21</Integer>
+        <Unsigned>21</Unsigned>
       </push>
     </transition>
     <transition>
@@ -2672,13 +2672,13 @@
         <String>a1</String>
       </input>
       <pop>
-        <Integer>32</Integer>
+        <Unsigned>32</Unsigned>
       </pop>
       <to>
         <Unsigned>10</Unsigned>
       </to>
       <push>
-        <Integer>21</Integer>
+        <Unsigned>21</Unsigned>
       </push>
     </transition>
     <transition>
@@ -2689,14 +2689,14 @@
         <String>a2</String>
       </input>
       <pop>
-        <Integer>3</Integer>
+        <Unsigned>3</Unsigned>
       </pop>
       <to>
         <Unsigned>2</Unsigned>
       </to>
       <push>
-        <Integer>10</Integer>
-        <Integer>11</Integer>
+        <Unsigned>10</Unsigned>
+        <Unsigned>11</Unsigned>
       </push>
     </transition>
     <transition>
@@ -2707,14 +2707,14 @@
         <String>a2</String>
       </input>
       <pop>
-        <Integer>11</Integer>
+        <Unsigned>11</Unsigned>
       </pop>
       <to>
         <Unsigned>2</Unsigned>
       </to>
       <push>
-        <Integer>10</Integer>
-        <Integer>11</Integer>
+        <Unsigned>10</Unsigned>
+        <Unsigned>11</Unsigned>
       </push>
     </transition>
     <transition>
@@ -2725,14 +2725,14 @@
         <String>a2</String>
       </input>
       <pop>
-        <Integer>32</Integer>
+        <Unsigned>32</Unsigned>
       </pop>
       <to>
         <Unsigned>2</Unsigned>
       </to>
       <push>
-        <Integer>10</Integer>
-        <Integer>11</Integer>
+        <Unsigned>10</Unsigned>
+        <Unsigned>11</Unsigned>
       </push>
     </transition>
     <transition>
@@ -2743,7 +2743,7 @@
         <String>a0</String>
       </input>
       <pop>
-        <Integer>6</Integer>
+        <Unsigned>6</Unsigned>
       </pop>
       <to>
         <Unsigned>7</Unsigned>
@@ -2758,7 +2758,7 @@
         <String>a0</String>
       </input>
       <pop>
-        <Integer>8</Integer>
+        <Unsigned>8</Unsigned>
       </pop>
       <to>
         <Unsigned>8</Unsigned>
@@ -2773,7 +2773,7 @@
         <String>a0</String>
       </input>
       <pop>
-        <Integer>14</Integer>
+        <Unsigned>14</Unsigned>
       </pop>
       <to>
         <Unsigned>7</Unsigned>
@@ -2788,7 +2788,7 @@
         <String>a0</String>
       </input>
       <pop>
-        <Integer>17</Integer>
+        <Unsigned>17</Unsigned>
       </pop>
       <to>
         <Unsigned>7</Unsigned>
@@ -2803,7 +2803,7 @@
         <String>a0</String>
       </input>
       <pop>
-        <Integer>18</Integer>
+        <Unsigned>18</Unsigned>
       </pop>
       <to>
         <Unsigned>8</Unsigned>
@@ -2818,7 +2818,7 @@
         <String>a0</String>
       </input>
       <pop>
-        <Integer>20</Integer>
+        <Unsigned>20</Unsigned>
       </pop>
       <to>
         <Unsigned>8</Unsigned>
@@ -2833,7 +2833,7 @@
         <String>a0</String>
       </input>
       <pop>
-        <Integer>34</Integer>
+        <Unsigned>34</Unsigned>
       </pop>
       <to>
         <Unsigned>7</Unsigned>
@@ -2848,7 +2848,7 @@
         <String>a0</String>
       </input>
       <pop>
-        <Integer>35</Integer>
+        <Unsigned>35</Unsigned>
       </pop>
       <to>
         <Unsigned>8</Unsigned>
@@ -2863,7 +2863,7 @@
         <String>a0</String>
       </input>
       <pop>
-        <Integer>36</Integer>
+        <Unsigned>36</Unsigned>
       </pop>
       <to>
         <Unsigned>7</Unsigned>
@@ -2878,7 +2878,7 @@
         <String>a0</String>
       </input>
       <pop>
-        <Integer>37</Integer>
+        <Unsigned>37</Unsigned>
       </pop>
       <to>
         <Unsigned>8</Unsigned>
@@ -2893,7 +2893,7 @@
         <String>a0</String>
       </input>
       <pop>
-        <Integer>40</Integer>
+        <Unsigned>40</Unsigned>
       </pop>
       <to>
         <Unsigned>7</Unsigned>
@@ -2908,7 +2908,7 @@
         <String>a0</String>
       </input>
       <pop>
-        <Integer>41</Integer>
+        <Unsigned>41</Unsigned>
       </pop>
       <to>
         <Unsigned>8</Unsigned>
@@ -2923,13 +2923,13 @@
         <String>a1</String>
       </input>
       <pop>
-        <Integer>6</Integer>
+        <Unsigned>6</Unsigned>
       </pop>
       <to>
         <Unsigned>10</Unsigned>
       </to>
       <push>
-        <Integer>22</Integer>
+        <Unsigned>22</Unsigned>
       </push>
     </transition>
     <transition>
@@ -2940,13 +2940,13 @@
         <String>a1</String>
       </input>
       <pop>
-        <Integer>8</Integer>
+        <Unsigned>8</Unsigned>
       </pop>
       <to>
         <Unsigned>10</Unsigned>
       </to>
       <push>
-        <Integer>23</Integer>
+        <Unsigned>23</Unsigned>
       </push>
     </transition>
     <transition>
@@ -2957,13 +2957,13 @@
         <String>a1</String>
       </input>
       <pop>
-        <Integer>14</Integer>
+        <Unsigned>14</Unsigned>
       </pop>
       <to>
         <Unsigned>10</Unsigned>
       </to>
       <push>
-        <Integer>22</Integer>
+        <Unsigned>22</Unsigned>
       </push>
     </transition>
     <transition>
@@ -2974,13 +2974,13 @@
         <String>a1</String>
       </input>
       <pop>
-        <Integer>17</Integer>
+        <Unsigned>17</Unsigned>
       </pop>
       <to>
         <Unsigned>10</Unsigned>
       </to>
       <push>
-        <Integer>22</Integer>
+        <Unsigned>22</Unsigned>
       </push>
     </transition>
     <transition>
@@ -2991,13 +2991,13 @@
         <String>a1</String>
       </input>
       <pop>
-        <Integer>18</Integer>
+        <Unsigned>18</Unsigned>
       </pop>
       <to>
         <Unsigned>10</Unsigned>
       </to>
       <push>
-        <Integer>23</Integer>
+        <Unsigned>23</Unsigned>
       </push>
     </transition>
     <transition>
@@ -3008,13 +3008,13 @@
         <String>a1</String>
       </input>
       <pop>
-        <Integer>20</Integer>
+        <Unsigned>20</Unsigned>
       </pop>
       <to>
         <Unsigned>10</Unsigned>
       </to>
       <push>
-        <Integer>23</Integer>
+        <Unsigned>23</Unsigned>
       </push>
     </transition>
     <transition>
@@ -3025,13 +3025,13 @@
         <String>a1</String>
       </input>
       <pop>
-        <Integer>34</Integer>
+        <Unsigned>34</Unsigned>
       </pop>
       <to>
         <Unsigned>10</Unsigned>
       </to>
       <push>
-        <Integer>22</Integer>
+        <Unsigned>22</Unsigned>
       </push>
     </transition>
     <transition>
@@ -3042,13 +3042,13 @@
         <String>a1</String>
       </input>
       <pop>
-        <Integer>35</Integer>
+        <Unsigned>35</Unsigned>
       </pop>
       <to>
         <Unsigned>10</Unsigned>
       </to>
       <push>
-        <Integer>23</Integer>
+        <Unsigned>23</Unsigned>
       </push>
     </transition>
     <transition>
@@ -3059,13 +3059,13 @@
         <String>a1</String>
       </input>
       <pop>
-        <Integer>36</Integer>
+        <Unsigned>36</Unsigned>
       </pop>
       <to>
         <Unsigned>10</Unsigned>
       </to>
       <push>
-        <Integer>22</Integer>
+        <Unsigned>22</Unsigned>
       </push>
     </transition>
     <transition>
@@ -3076,13 +3076,13 @@
         <String>a1</String>
       </input>
       <pop>
-        <Integer>37</Integer>
+        <Unsigned>37</Unsigned>
       </pop>
       <to>
         <Unsigned>10</Unsigned>
       </to>
       <push>
-        <Integer>23</Integer>
+        <Unsigned>23</Unsigned>
       </push>
     </transition>
     <transition>
@@ -3093,13 +3093,13 @@
         <String>a1</String>
       </input>
       <pop>
-        <Integer>40</Integer>
+        <Unsigned>40</Unsigned>
       </pop>
       <to>
         <Unsigned>10</Unsigned>
       </to>
       <push>
-        <Integer>22</Integer>
+        <Unsigned>22</Unsigned>
       </push>
     </transition>
     <transition>
@@ -3110,13 +3110,13 @@
         <String>a1</String>
       </input>
       <pop>
-        <Integer>41</Integer>
+        <Unsigned>41</Unsigned>
       </pop>
       <to>
         <Unsigned>10</Unsigned>
       </to>
       <push>
-        <Integer>23</Integer>
+        <Unsigned>23</Unsigned>
       </push>
     </transition>
     <transition>
@@ -3127,14 +3127,14 @@
         <String>a2</String>
       </input>
       <pop>
-        <Integer>6</Integer>
+        <Unsigned>6</Unsigned>
       </pop>
       <to>
         <Unsigned>2</Unsigned>
       </to>
       <push>
-        <Integer>13</Integer>
-        <Integer>17</Integer>
+        <Unsigned>13</Unsigned>
+        <Unsigned>17</Unsigned>
       </push>
     </transition>
     <transition>
@@ -3145,14 +3145,14 @@
         <String>a2</String>
       </input>
       <pop>
-        <Integer>8</Integer>
+        <Unsigned>8</Unsigned>
       </pop>
       <to>
         <Unsigned>2</Unsigned>
       </to>
       <push>
-        <Integer>13</Integer>
-        <Integer>18</Integer>
+        <Unsigned>13</Unsigned>
+        <Unsigned>18</Unsigned>
       </push>
     </transition>
     <transition>
@@ -3163,14 +3163,14 @@
         <String>a2</String>
       </input>
       <pop>
-        <Integer>14</Integer>
+        <Unsigned>14</Unsigned>
       </pop>
       <to>
         <Unsigned>2</Unsigned>
       </to>
       <push>
-        <Integer>13</Integer>
-        <Integer>17</Integer>
+        <Unsigned>13</Unsigned>
+        <Unsigned>17</Unsigned>
       </push>
     </transition>
     <transition>
@@ -3181,14 +3181,14 @@
         <String>a2</String>
       </input>
       <pop>
-        <Integer>17</Integer>
+        <Unsigned>17</Unsigned>
       </pop>
       <to>
         <Unsigned>2</Unsigned>
       </to>
       <push>
-        <Integer>13</Integer>
-        <Integer>17</Integer>
+        <Unsigned>13</Unsigned>
+        <Unsigned>17</Unsigned>
       </push>
     </transition>
     <transition>
@@ -3199,14 +3199,14 @@
         <String>a2</String>
       </input>
       <pop>
-        <Integer>18</Integer>
+        <Unsigned>18</Unsigned>
       </pop>
       <to>
         <Unsigned>2</Unsigned>
       </to>
       <push>
-        <Integer>13</Integer>
-        <Integer>18</Integer>
+        <Unsigned>13</Unsigned>
+        <Unsigned>18</Unsigned>
       </push>
     </transition>
     <transition>
@@ -3217,14 +3217,14 @@
         <String>a2</String>
       </input>
       <pop>
-        <Integer>20</Integer>
+        <Unsigned>20</Unsigned>
       </pop>
       <to>
         <Unsigned>2</Unsigned>
       </to>
       <push>
-        <Integer>13</Integer>
-        <Integer>18</Integer>
+        <Unsigned>13</Unsigned>
+        <Unsigned>18</Unsigned>
       </push>
     </transition>
     <transition>
@@ -3235,14 +3235,14 @@
         <String>a2</String>
       </input>
       <pop>
-        <Integer>34</Integer>
+        <Unsigned>34</Unsigned>
       </pop>
       <to>
         <Unsigned>2</Unsigned>
       </to>
       <push>
-        <Integer>13</Integer>
-        <Integer>17</Integer>
+        <Unsigned>13</Unsigned>
+        <Unsigned>17</Unsigned>
       </push>
     </transition>
     <transition>
@@ -3253,14 +3253,14 @@
         <String>a2</String>
       </input>
       <pop>
-        <Integer>35</Integer>
+        <Unsigned>35</Unsigned>
       </pop>
       <to>
         <Unsigned>2</Unsigned>
       </to>
       <push>
-        <Integer>13</Integer>
-        <Integer>18</Integer>
+        <Unsigned>13</Unsigned>
+        <Unsigned>18</Unsigned>
       </push>
     </transition>
     <transition>
@@ -3271,14 +3271,14 @@
         <String>a2</String>
       </input>
       <pop>
-        <Integer>36</Integer>
+        <Unsigned>36</Unsigned>
       </pop>
       <to>
         <Unsigned>2</Unsigned>
       </to>
       <push>
-        <Integer>13</Integer>
-        <Integer>17</Integer>
+        <Unsigned>13</Unsigned>
+        <Unsigned>17</Unsigned>
       </push>
     </transition>
     <transition>
@@ -3289,14 +3289,14 @@
         <String>a2</String>
       </input>
       <pop>
-        <Integer>37</Integer>
+        <Unsigned>37</Unsigned>
       </pop>
       <to>
         <Unsigned>2</Unsigned>
       </to>
       <push>
-        <Integer>13</Integer>
-        <Integer>18</Integer>
+        <Unsigned>13</Unsigned>
+        <Unsigned>18</Unsigned>
       </push>
     </transition>
     <transition>
@@ -3307,14 +3307,14 @@
         <String>a2</String>
       </input>
       <pop>
-        <Integer>40</Integer>
+        <Unsigned>40</Unsigned>
       </pop>
       <to>
         <Unsigned>2</Unsigned>
       </to>
       <push>
-        <Integer>13</Integer>
-        <Integer>17</Integer>
+        <Unsigned>13</Unsigned>
+        <Unsigned>17</Unsigned>
       </push>
     </transition>
     <transition>
@@ -3325,14 +3325,14 @@
         <String>a2</String>
       </input>
       <pop>
-        <Integer>41</Integer>
+        <Unsigned>41</Unsigned>
       </pop>
       <to>
         <Unsigned>2</Unsigned>
       </to>
       <push>
-        <Integer>13</Integer>
-        <Integer>18</Integer>
+        <Unsigned>13</Unsigned>
+        <Unsigned>18</Unsigned>
       </push>
     </transition>
     <transition>
@@ -3343,7 +3343,7 @@
         <String>a0</String>
       </input>
       <pop>
-        <Integer>11</Integer>
+        <Unsigned>11</Unsigned>
       </pop>
       <to>
         <Unsigned>5</Unsigned>
@@ -3358,7 +3358,7 @@
         <String>a0</String>
       </input>
       <pop>
-        <Integer>32</Integer>
+        <Unsigned>32</Unsigned>
       </pop>
       <to>
         <Unsigned>5</Unsigned>
@@ -3373,13 +3373,13 @@
         <String>a1</String>
       </input>
       <pop>
-        <Integer>11</Integer>
+        <Unsigned>11</Unsigned>
       </pop>
       <to>
         <Unsigned>10</Unsigned>
       </to>
       <push>
-        <Integer>21</Integer>
+        <Unsigned>21</Unsigned>
       </push>
     </transition>
     <transition>
@@ -3390,13 +3390,13 @@
         <String>a1</String>
       </input>
       <pop>
-        <Integer>32</Integer>
+        <Unsigned>32</Unsigned>
       </pop>
       <to>
         <Unsigned>10</Unsigned>
       </to>
       <push>
-        <Integer>21</Integer>
+        <Unsigned>21</Unsigned>
       </push>
     </transition>
     <transition>
@@ -3407,14 +3407,14 @@
         <String>a2</String>
       </input>
       <pop>
-        <Integer>11</Integer>
+        <Unsigned>11</Unsigned>
       </pop>
       <to>
         <Unsigned>2</Unsigned>
       </to>
       <push>
-        <Integer>10</Integer>
-        <Integer>11</Integer>
+        <Unsigned>10</Unsigned>
+        <Unsigned>11</Unsigned>
       </push>
     </transition>
     <transition>
@@ -3425,14 +3425,14 @@
         <String>a2</String>
       </input>
       <pop>
-        <Integer>32</Integer>
+        <Unsigned>32</Unsigned>
       </pop>
       <to>
         <Unsigned>2</Unsigned>
       </to>
       <push>
-        <Integer>10</Integer>
-        <Integer>11</Integer>
+        <Unsigned>10</Unsigned>
+        <Unsigned>11</Unsigned>
       </push>
     </transition>
     <transition>
@@ -3443,7 +3443,7 @@
         <String>a0</String>
       </input>
       <pop>
-        <Integer>14</Integer>
+        <Unsigned>14</Unsigned>
       </pop>
       <to>
         <Unsigned>7</Unsigned>
@@ -3458,7 +3458,7 @@
         <String>a0</String>
       </input>
       <pop>
-        <Integer>17</Integer>
+        <Unsigned>17</Unsigned>
       </pop>
       <to>
         <Unsigned>7</Unsigned>
@@ -3473,7 +3473,7 @@
         <String>a0</String>
       </input>
       <pop>
-        <Integer>18</Integer>
+        <Unsigned>18</Unsigned>
       </pop>
       <to>
         <Unsigned>8</Unsigned>
@@ -3488,7 +3488,7 @@
         <String>a0</String>
       </input>
       <pop>
-        <Integer>20</Integer>
+        <Unsigned>20</Unsigned>
       </pop>
       <to>
         <Unsigned>8</Unsigned>
@@ -3503,7 +3503,7 @@
         <String>a0</String>
       </input>
       <pop>
-        <Integer>34</Integer>
+        <Unsigned>34</Unsigned>
       </pop>
       <to>
         <Unsigned>7</Unsigned>
@@ -3518,7 +3518,7 @@
         <String>a0</String>
       </input>
       <pop>
-        <Integer>35</Integer>
+        <Unsigned>35</Unsigned>
       </pop>
       <to>
         <Unsigned>8</Unsigned>
@@ -3533,7 +3533,7 @@
         <String>a0</String>
       </input>
       <pop>
-        <Integer>36</Integer>
+        <Unsigned>36</Unsigned>
       </pop>
       <to>
         <Unsigned>7</Unsigned>
@@ -3548,7 +3548,7 @@
         <String>a0</String>
       </input>
       <pop>
-        <Integer>37</Integer>
+        <Unsigned>37</Unsigned>
       </pop>
       <to>
         <Unsigned>8</Unsigned>
@@ -3563,7 +3563,7 @@
         <String>a0</String>
       </input>
       <pop>
-        <Integer>40</Integer>
+        <Unsigned>40</Unsigned>
       </pop>
       <to>
         <Unsigned>7</Unsigned>
@@ -3578,7 +3578,7 @@
         <String>a0</String>
       </input>
       <pop>
-        <Integer>41</Integer>
+        <Unsigned>41</Unsigned>
       </pop>
       <to>
         <Unsigned>8</Unsigned>
@@ -3593,13 +3593,13 @@
         <String>a1</String>
       </input>
       <pop>
-        <Integer>14</Integer>
+        <Unsigned>14</Unsigned>
       </pop>
       <to>
         <Unsigned>10</Unsigned>
       </to>
       <push>
-        <Integer>22</Integer>
+        <Unsigned>22</Unsigned>
       </push>
     </transition>
     <transition>
@@ -3610,13 +3610,13 @@
         <String>a1</String>
       </input>
       <pop>
-        <Integer>17</Integer>
+        <Unsigned>17</Unsigned>
       </pop>
       <to>
         <Unsigned>10</Unsigned>
       </to>
       <push>
-        <Integer>22</Integer>
+        <Unsigned>22</Unsigned>
       </push>
     </transition>
     <transition>
@@ -3627,13 +3627,13 @@
         <String>a1</String>
       </input>
       <pop>
-        <Integer>18</Integer>
+        <Unsigned>18</Unsigned>
       </pop>
       <to>
         <Unsigned>10</Unsigned>
       </to>
       <push>
-        <Integer>23</Integer>
+        <Unsigned>23</Unsigned>
       </push>
     </transition>
     <transition>
@@ -3644,13 +3644,13 @@
         <String>a1</String>
       </input>
       <pop>
-        <Integer>20</Integer>
+        <Unsigned>20</Unsigned>
       </pop>
       <to>
         <Unsigned>10</Unsigned>
       </to>
       <push>
-        <Integer>23</Integer>
+        <Unsigned>23</Unsigned>
       </push>
     </transition>
     <transition>
@@ -3661,13 +3661,13 @@
         <String>a1</String>
       </input>
       <pop>
-        <Integer>34</Integer>
+        <Unsigned>34</Unsigned>
       </pop>
       <to>
         <Unsigned>10</Unsigned>
       </to>
       <push>
-        <Integer>22</Integer>
+        <Unsigned>22</Unsigned>
       </push>
     </transition>
     <transition>
@@ -3678,13 +3678,13 @@
         <String>a1</String>
       </input>
       <pop>
-        <Integer>35</Integer>
+        <Unsigned>35</Unsigned>
       </pop>
       <to>
         <Unsigned>10</Unsigned>
       </to>
       <push>
-        <Integer>23</Integer>
+        <Unsigned>23</Unsigned>
       </push>
     </transition>
     <transition>
@@ -3695,13 +3695,13 @@
         <String>a1</String>
       </input>
       <pop>
-        <Integer>36</Integer>
+        <Unsigned>36</Unsigned>
       </pop>
       <to>
         <Unsigned>10</Unsigned>
       </to>
       <push>
-        <Integer>22</Integer>
+        <Unsigned>22</Unsigned>
       </push>
     </transition>
     <transition>
@@ -3712,13 +3712,13 @@
         <String>a1</String>
       </input>
       <pop>
-        <Integer>37</Integer>
+        <Unsigned>37</Unsigned>
       </pop>
       <to>
         <Unsigned>10</Unsigned>
       </to>
       <push>
-        <Integer>23</Integer>
+        <Unsigned>23</Unsigned>
       </push>
     </transition>
     <transition>
@@ -3729,13 +3729,13 @@
         <String>a1</String>
       </input>
       <pop>
-        <Integer>40</Integer>
+        <Unsigned>40</Unsigned>
       </pop>
       <to>
         <Unsigned>10</Unsigned>
       </to>
       <push>
-        <Integer>22</Integer>
+        <Unsigned>22</Unsigned>
       </push>
     </transition>
     <transition>
@@ -3746,13 +3746,13 @@
         <String>a1</String>
       </input>
       <pop>
-        <Integer>41</Integer>
+        <Unsigned>41</Unsigned>
       </pop>
       <to>
         <Unsigned>10</Unsigned>
       </to>
       <push>
-        <Integer>23</Integer>
+        <Unsigned>23</Unsigned>
       </push>
     </transition>
     <transition>
@@ -3763,14 +3763,14 @@
         <String>a2</String>
       </input>
       <pop>
-        <Integer>14</Integer>
+        <Unsigned>14</Unsigned>
       </pop>
       <to>
         <Unsigned>2</Unsigned>
       </to>
       <push>
-        <Integer>13</Integer>
-        <Integer>17</Integer>
+        <Unsigned>13</Unsigned>
+        <Unsigned>17</Unsigned>
       </push>
     </transition>
     <transition>
@@ -3781,14 +3781,14 @@
         <String>a2</String>
       </input>
       <pop>
-        <Integer>17</Integer>
+        <Unsigned>17</Unsigned>
       </pop>
       <to>
         <Unsigned>2</Unsigned>
       </to>
       <push>
-        <Integer>13</Integer>
-        <Integer>17</Integer>
+        <Unsigned>13</Unsigned>
+        <Unsigned>17</Unsigned>
       </push>
     </transition>
     <transition>
@@ -3799,14 +3799,14 @@
         <String>a2</String>
       </input>
       <pop>
-        <Integer>18</Integer>
+        <Unsigned>18</Unsigned>
       </pop>
       <to>
         <Unsigned>2</Unsigned>
       </to>
       <push>
-        <Integer>13</Integer>
-        <Integer>18</Integer>
+        <Unsigned>13</Unsigned>
+        <Unsigned>18</Unsigned>
       </push>
     </transition>
     <transition>
@@ -3817,14 +3817,14 @@
         <String>a2</String>
       </input>
       <pop>
-        <Integer>20</Integer>
+        <Unsigned>20</Unsigned>
       </pop>
       <to>
         <Unsigned>2</Unsigned>
       </to>
       <push>
-        <Integer>13</Integer>
-        <Integer>18</Integer>
+        <Unsigned>13</Unsigned>
+        <Unsigned>18</Unsigned>
       </push>
     </transition>
     <transition>
@@ -3835,14 +3835,14 @@
         <String>a2</String>
       </input>
       <pop>
-        <Integer>34</Integer>
+        <Unsigned>34</Unsigned>
       </pop>
       <to>
         <Unsigned>2</Unsigned>
       </to>
       <push>
-        <Integer>13</Integer>
-        <Integer>17</Integer>
+        <Unsigned>13</Unsigned>
+        <Unsigned>17</Unsigned>
       </push>
     </transition>
     <transition>
@@ -3853,14 +3853,14 @@
         <String>a2</String>
       </input>
       <pop>
-        <Integer>35</Integer>
+        <Unsigned>35</Unsigned>
       </pop>
       <to>
         <Unsigned>2</Unsigned>
       </to>
       <push>
-        <Integer>13</Integer>
-        <Integer>18</Integer>
+        <Unsigned>13</Unsigned>
+        <Unsigned>18</Unsigned>
       </push>
     </transition>
     <transition>
@@ -3871,14 +3871,14 @@
         <String>a2</String>
       </input>
       <pop>
-        <Integer>36</Integer>
+        <Unsigned>36</Unsigned>
       </pop>
       <to>
         <Unsigned>2</Unsigned>
       </to>
       <push>
-        <Integer>13</Integer>
-        <Integer>17</Integer>
+        <Unsigned>13</Unsigned>
+        <Unsigned>17</Unsigned>
       </push>
     </transition>
     <transition>
@@ -3889,14 +3889,14 @@
         <String>a2</String>
       </input>
       <pop>
-        <Integer>37</Integer>
+        <Unsigned>37</Unsigned>
       </pop>
       <to>
         <Unsigned>2</Unsigned>
       </to>
       <push>
-        <Integer>13</Integer>
-        <Integer>18</Integer>
+        <Unsigned>13</Unsigned>
+        <Unsigned>18</Unsigned>
       </push>
     </transition>
     <transition>
@@ -3907,14 +3907,14 @@
         <String>a2</String>
       </input>
       <pop>
-        <Integer>40</Integer>
+        <Unsigned>40</Unsigned>
       </pop>
       <to>
         <Unsigned>2</Unsigned>
       </to>
       <push>
-        <Integer>13</Integer>
-        <Integer>17</Integer>
+        <Unsigned>13</Unsigned>
+        <Unsigned>17</Unsigned>
       </push>
     </transition>
     <transition>
@@ -3925,14 +3925,14 @@
         <String>a2</String>
       </input>
       <pop>
-        <Integer>41</Integer>
+        <Unsigned>41</Unsigned>
       </pop>
       <to>
         <Unsigned>2</Unsigned>
       </to>
       <push>
-        <Integer>13</Integer>
-        <Integer>18</Integer>
+        <Unsigned>13</Unsigned>
+        <Unsigned>18</Unsigned>
       </push>
     </transition>
     <transition>
@@ -3943,7 +3943,7 @@
         <String>a0</String>
       </input>
       <pop>
-        <Integer>32</Integer>
+        <Unsigned>32</Unsigned>
       </pop>
       <to>
         <Unsigned>5</Unsigned>
@@ -3958,13 +3958,13 @@
         <String>a1</String>
       </input>
       <pop>
-        <Integer>32</Integer>
+        <Unsigned>32</Unsigned>
       </pop>
       <to>
         <Unsigned>10</Unsigned>
       </to>
       <push>
-        <Integer>21</Integer>
+        <Unsigned>21</Unsigned>
       </push>
     </transition>
     <transition>
@@ -3975,14 +3975,14 @@
         <String>a2</String>
       </input>
       <pop>
-        <Integer>32</Integer>
+        <Unsigned>32</Unsigned>
       </pop>
       <to>
         <Unsigned>2</Unsigned>
       </to>
       <push>
-        <Integer>10</Integer>
-        <Integer>11</Integer>
+        <Unsigned>10</Unsigned>
+        <Unsigned>11</Unsigned>
       </push>
     </transition>
     <transition>
@@ -3993,7 +3993,7 @@
         <String>a0</String>
       </input>
       <pop>
-        <Integer>34</Integer>
+        <Unsigned>34</Unsigned>
       </pop>
       <to>
         <Unsigned>7</Unsigned>
@@ -4008,7 +4008,7 @@
         <String>a0</String>
       </input>
       <pop>
-        <Integer>35</Integer>
+        <Unsigned>35</Unsigned>
       </pop>
       <to>
         <Unsigned>8</Unsigned>
@@ -4023,7 +4023,7 @@
         <String>a0</String>
       </input>
       <pop>
-        <Integer>36</Integer>
+        <Unsigned>36</Unsigned>
       </pop>
       <to>
         <Unsigned>7</Unsigned>
@@ -4038,7 +4038,7 @@
         <String>a0</String>
       </input>
       <pop>
-        <Integer>37</Integer>
+        <Unsigned>37</Unsigned>
       </pop>
       <to>
         <Unsigned>8</Unsigned>
@@ -4053,7 +4053,7 @@
         <String>a0</String>
       </input>
       <pop>
-        <Integer>40</Integer>
+        <Unsigned>40</Unsigned>
       </pop>
       <to>
         <Unsigned>7</Unsigned>
@@ -4068,7 +4068,7 @@
         <String>a0</String>
       </input>
       <pop>
-        <Integer>41</Integer>
+        <Unsigned>41</Unsigned>
       </pop>
       <to>
         <Unsigned>8</Unsigned>
@@ -4083,13 +4083,13 @@
         <String>a1</String>
       </input>
       <pop>
-        <Integer>34</Integer>
+        <Unsigned>34</Unsigned>
       </pop>
       <to>
         <Unsigned>10</Unsigned>
       </to>
       <push>
-        <Integer>22</Integer>
+        <Unsigned>22</Unsigned>
       </push>
     </transition>
     <transition>
@@ -4100,13 +4100,13 @@
         <String>a1</String>
       </input>
       <pop>
-        <Integer>35</Integer>
+        <Unsigned>35</Unsigned>
       </pop>
       <to>
         <Unsigned>10</Unsigned>
       </to>
       <push>
-        <Integer>23</Integer>
+        <Unsigned>23</Unsigned>
       </push>
     </transition>
     <transition>
@@ -4117,13 +4117,13 @@
         <String>a1</String>
       </input>
       <pop>
-        <Integer>36</Integer>
+        <Unsigned>36</Unsigned>
       </pop>
       <to>
         <Unsigned>10</Unsigned>
       </to>
       <push>
-        <Integer>22</Integer>
+        <Unsigned>22</Unsigned>
       </push>
     </transition>
     <transition>
@@ -4134,13 +4134,13 @@
         <String>a1</String>
       </input>
       <pop>
-        <Integer>37</Integer>
+        <Unsigned>37</Unsigned>
       </pop>
       <to>
         <Unsigned>10</Unsigned>
       </to>
       <push>
-        <Integer>23</Integer>
+        <Unsigned>23</Unsigned>
       </push>
     </transition>
     <transition>
@@ -4151,13 +4151,13 @@
         <String>a1</String>
       </input>
       <pop>
-        <Integer>40</Integer>
+        <Unsigned>40</Unsigned>
       </pop>
       <to>
         <Unsigned>10</Unsigned>
       </to>
       <push>
-        <Integer>24</Integer>
+        <Unsigned>24</Unsigned>
       </push>
     </transition>
     <transition>
@@ -4168,13 +4168,13 @@
         <String>a1</String>
       </input>
       <pop>
-        <Integer>41</Integer>
+        <Unsigned>41</Unsigned>
       </pop>
       <to>
         <Unsigned>10</Unsigned>
       </to>
       <push>
-        <Integer>25</Integer>
+        <Unsigned>25</Unsigned>
       </push>
     </transition>
     <transition>
@@ -4185,14 +4185,14 @@
         <String>a2</String>
       </input>
       <pop>
-        <Integer>34</Integer>
+        <Unsigned>34</Unsigned>
       </pop>
       <to>
         <Unsigned>2</Unsigned>
       </to>
       <push>
-        <Integer>13</Integer>
-        <Integer>17</Integer>
+        <Unsigned>13</Unsigned>
+        <Unsigned>17</Unsigned>
       </push>
     </transition>
     <transition>
@@ -4203,14 +4203,14 @@
         <String>a2</String>
       </input>
       <pop>
-        <Integer>35</Integer>
+        <Unsigned>35</Unsigned>
       </pop>
       <to>
         <Unsigned>2</Unsigned>
       </to>
       <push>
-        <Integer>13</Integer>
-        <Integer>18</Integer>
+        <Unsigned>13</Unsigned>
+        <Unsigned>18</Unsigned>
       </push>
     </transition>
     <transition>
@@ -4221,14 +4221,14 @@
         <String>a2</String>
       </input>
       <pop>
-        <Integer>36</Integer>
+        <Unsigned>36</Unsigned>
       </pop>
       <to>
         <Unsigned>2</Unsigned>
       </to>
       <push>
-        <Integer>13</Integer>
-        <Integer>17</Integer>
+        <Unsigned>13</Unsigned>
+        <Unsigned>17</Unsigned>
       </push>
     </transition>
     <transition>
@@ -4239,14 +4239,14 @@
         <String>a2</String>
       </input>
       <pop>
-        <Integer>37</Integer>
+        <Unsigned>37</Unsigned>
       </pop>
       <to>
         <Unsigned>2</Unsigned>
       </to>
       <push>
-        <Integer>13</Integer>
-        <Integer>18</Integer>
+        <Unsigned>13</Unsigned>
+        <Unsigned>18</Unsigned>
       </push>
     </transition>
     <transition>
@@ -4257,14 +4257,14 @@
         <String>a2</String>
       </input>
       <pop>
-        <Integer>40</Integer>
+        <Unsigned>40</Unsigned>
       </pop>
       <to>
         <Unsigned>2</Unsigned>
       </to>
       <push>
-        <Integer>13</Integer>
-        <Integer>17</Integer>
+        <Unsigned>13</Unsigned>
+        <Unsigned>17</Unsigned>
       </push>
     </transition>
     <transition>
@@ -4275,14 +4275,14 @@
         <String>a2</String>
       </input>
       <pop>
-        <Integer>41</Integer>
+        <Unsigned>41</Unsigned>
       </pop>
       <to>
         <Unsigned>2</Unsigned>
       </to>
       <push>
-        <Integer>13</Integer>
-        <Integer>18</Integer>
+        <Unsigned>13</Unsigned>
+        <Unsigned>18</Unsigned>
       </push>
     </transition>
   </transitions>