I am working on making an error header file and this is what I have:

#include <stdio.h>
#include <stdlib.h>
#include <iostream>
#include <sstream>
#include <string>
#define VANARGS(n1,n2,n3,n4,n5,n6,n7,n8,n9,n10,n11,n12,n13,n14,n15,n16,n17,n18,n19,n20,n21,n22,n23,n24,n25,n26,n27,n28,n29,n30,n31,n32,n33,n34,n35,n36,n37,n38,n39,n40,n41,n42,n43,n44,n45,n46,n47,n48,n49,n50,n51,n52,n53,n54,n55,n56,n57,n58,n59,n60,n61,n62,n63,N,...) N
#define __VA_NARGS__(...) (VANARGS(__VA_ARGS__,63,62,61,60,59,58,57,56,55,54,53,52,51,50,49,48,47,46,45,44,43,42,41,40,39,38,37,36,35,34,33,32,31,30,29,28,27,26,25,24,23,22,21,20,19,18,17,16,15,14,13,12,11,10,9,8,7,6,5,4,3,2,1,0))
#define ERROR(...) (\
(__VA_NARGS__(__VA_ARGS__)==0)?"NONE":(\
(__VA_NARGS__(__VA_ARGS__)==1)?(_1(__VA_ARGS__,63,62,61,60,59,58,57,56,55,54,53,52,51,50,49,48,47,46,45,44,43,42,41,40,39,38,37,36,35,34,33,32,31,30,29,28,27,26,25,24,23,22,21,20,19,18,17,16,15,14,13,12,11,10,9,8,7,6,5,4,3,2,1,0)):(\
(__VA_NARGS__(__VA_ARGS__)==2)?(_2(__VA_ARGS__,63,62,61,60,59,58,57,56,55,54,53,52,51,50,49,48,47,46,45,44,43,42,41,40,39,38,37,36,35,34,33,32,31,30,29,28,27,26,25,24,23,22,21,20,19,18,17,16,15,14,13,12,11,10,9,8,7,6,5,4,3,2,1,0)):(\
(__VA_NARGS__(__VA_ARGS__)==3)?(_3(__VA_ARGS__,63,62,61,60,59,58,57,56,55,54,53,52,51,50,49,48,47,46,45,44,43,42,41,40,39,38,37,36,35,34,33,32,31,30,29,28,27,26,25,24,23,22,21,20,19,18,17,16,15,14,13,12,11,10,9,8,7,6,5,4,3,2,1,0)):(\
(__VA_NARGS__(__VA_ARGS__)==4)?(_4(__VA_ARGS__,63,62,61,60,59,58,57,56,55,54,53,52,51,50,49,48,47,46,45,44,43,42,41,40,39,38,37,36,35,34,33,32,31,30,29,28,27,26,25,24,23,22,21,20,19,18,17,16,15,14,13,12,11,10,9,8,7,6,5,4,3,2,1,0)):(\
(__VA_NARGS__(__VA_ARGS__)==5)?(_5(__VA_ARGS__,63,62,61,60,59,58,57,56,55,54,53,52,51,50,49,48,47,46,45,44,43,42,41,40,39,38,37,36,35,34,33,32,31,30,29,28,27,26,25,24,23,22,21,20,19,18,17,16,15,14,13,12,11,10,9,8,7,6,5,4,3,2,1,0)):(\
(__VA_NARGS__(__VA_ARGS__)==6)?(_6(__VA_ARGS__,63,62,61,60,59,58,57,56,55,54,53,52,51,50,49,48,47,46,45,44,43,42,41,40,39,38,37,36,35,34,33,32,31,30,29,28,27,26,25,24,23,22,21,20,19,18,17,16,15,14,13,12,11,10,9,8,7,6,5,4,3,2,1,0)):(\
(__VA_NARGS__(__VA_ARGS__)==7)?(_7(__VA_ARGS__,63,62,61,60,59,58,57,56,55,54,53,52,51,50,49,48,47,46,45,44,43,42,41,40,39,38,37,36,35,34,33,32,31,30,29,28,27,26,25,24,23,22,21,20,19,18,17,16,15,14,13,12,11,10,9,8,7,6,5,4,3,2,1,0)):(\
(__VA_NARGS__(__VA_ARGS__)==8)?(_8(__VA_ARGS__,63,62,61,60,59,58,57,56,55,54,53,52,51,50,49,48,47,46,45,44,43,42,41,40,39,38,37,36,35,34,33,32,31,30,29,28,27,26,25,24,23,22,21,20,19,18,17,16,15,14,13,12,11,10,9,8,7,6,5,4,3,2,1,0)):(\
(__VA_NARGS__(__VA_ARGS__)==9)?(_9(__VA_ARGS__,63,62,61,60,59,58,57,56,55,54,53,52,51,50,49,48,47,46,45,44,43,42,41,40,39,38,37,36,35,34,33,32,31,30,29,28,27,26,25,24,23,22,21,20,19,18,17,16,15,14,13,12,11,10,9,8,7,6,5,4,3,2,1,0)):(\
(__VA_NARGS__(__VA_ARGS__)==10)?(_10(__VA_ARGS__,63,62,61,60,59,58,57,56,55,54,53,52,51,50,49,48,47,46,45,44,43,42,41,40,39,38,37,36,35,34,33,32,31,30,29,28,27,26,25,24,23,22,21,20,19,18,17,16,15,14,13,12,11,10,9,8,7,6,5,4,3,2,1,0)):(\
(__VA_NARGS__(__VA_ARGS__)==11)?(_11(__VA_ARGS__,63,62,61,60,59,58,57,56,55,54,53,52,51,50,49,48,47,46,45,44,43,42,41,40,39,38,37,36,35,34,33,32,31,30,29,28,27,26,25,24,23,22,21,20,19,18,17,16,15,14,13,12,11,10,9,8,7,6,5,4,3,2,1,0)):(\
(__VA_NARGS__(__VA_ARGS__)==12)?(_12(__VA_ARGS__,63,62,61,60,59,58,57,56,55,54,53,52,51,50,49,48,47,46,45,44,43,42,41,40,39,38,37,36,35,34,33,32,31,30,29,28,27,26,25,24,23,22,21,20,19,18,17,16,15,14,13,12,11,10,9,8,7,6,5,4,3,2,1,0)):(\
(__VA_NARGS__(__VA_ARGS__)==13)?(_13(__VA_ARGS__,63,62,61,60,59,58,57,56,55,54,53,52,51,50,49,48,47,46,45,44,43,42,41,40,39,38,37,36,35,34,33,32,31,30,29,28,27,26,25,24,23,22,21,20,19,18,17,16,15,14,13,12,11,10,9,8,7,6,5,4,3,2,1,0)):(\
(__VA_NARGS__(__VA_ARGS__)==14)?(_14(__VA_ARGS__,63,62,61,60,59,58,57,56,55,54,53,52,51,50,49,48,47,46,45,44,43,42,41,40,39,38,37,36,35,34,33,32,31,30,29,28,27,26,25,24,23,22,21,20,19,18,17,16,15,14,13,12,11,10,9,8,7,6,5,4,3,2,1,0)):(\
(__VA_NARGS__(__VA_ARGS__)==15)?(_15(__VA_ARGS__,63,62,61,60,59,58,57,56,55,54,53,52,51,50,49,48,47,46,45,44,43,42,41,40,39,38,37,36,35,34,33,32,31,30,29,28,27,26,25,24,23,22,21,20,19,18,17,16,15,14,13,12,11,10,9,8,7,6,5,4,3,2,1,0)):(\
(__VA_NARGS__(__VA_ARGS__)==16)?(_16(__VA_ARGS__,63,62,61,60,59,58,57,56,55,54,53,52,51,50,49,48,47,46,45,44,43,42,41,40,39,38,37,36,35,34,33,32,31,30,29,28,27,26,25,24,23,22,21,20,19,18,17,16,15,14,13,12,11,10,9,8,7,6,5,4,3,2,1,0)):(\
(__VA_NARGS__(__VA_ARGS__)==17)?(_17(__VA_ARGS__,63,62,61,60,59,58,57,56,55,54,53,52,51,50,49,48,47,46,45,44,43,42,41,40,39,38,37,36,35,34,33,32,31,30,29,28,27,26,25,24,23,22,21,20,19,18,17,16,15,14,13,12,11,10,9,8,7,6,5,4,3,2,1,0)):(\
(__VA_NARGS__(__VA_ARGS__)==18)?(_18(__VA_ARGS__,63,62,61,60,59,58,57,56,55,54,53,52,51,50,49,48,47,46,45,44,43,42,41,40,39,38,37,36,35,34,33,32,31,30,29,28,27,26,25,24,23,22,21,20,19,18,17,16,15,14,13,12,11,10,9,8,7,6,5,4,3,2,1,0)):(\
(__VA_NARGS__(__VA_ARGS__)==19)?(_19(__VA_ARGS__,63,62,61,60,59,58,57,56,55,54,53,52,51,50,49,48,47,46,45,44,43,42,41,40,39,38,37,36,35,34,33,32,31,30,29,28,27,26,25,24,23,22,21,20,19,18,17,16,15,14,13,12,11,10,9,8,7,6,5,4,3,2,1,0)):(\
(__VA_NARGS__(__VA_ARGS__)==20)?(_20(__VA_ARGS__,63,62,61,60,59,58,57,56,55,54,53,52,51,50,49,48,47,46,45,44,43,42,41,40,39,38,37,36,35,34,33,32,31,30,29,28,27,26,25,24,23,22,21,20,19,18,17,16,15,14,13,12,11,10,9,8,7,6,5,4,3,2,1,0)):(\
(__VA_NARGS__(__VA_ARGS__)==21)?(_21(__VA_ARGS__,63,62,61,60,59,58,57,56,55,54,53,52,51,50,49,48,47,46,45,44,43,42,41,40,39,38,37,36,35,34,33,32,31,30,29,28,27,26,25,24,23,22,21,20,19,18,17,16,15,14,13,12,11,10,9,8,7,6,5,4,3,2,1,0)):(\
(__VA_NARGS__(__VA_ARGS__)==22)?(_22(__VA_ARGS__,63,62,61,60,59,58,57,56,55,54,53,52,51,50,49,48,47,46,45,44,43,42,41,40,39,38,37,36,35,34,33,32,31,30,29,28,27,26,25,24,23,22,21,20,19,18,17,16,15,14,13,12,11,10,9,8,7,6,5,4,3,2,1,0)):(\
(__VA_NARGS__(__VA_ARGS__)==23)?(_23(__VA_ARGS__,63,62,61,60,59,58,57,56,55,54,53,52,51,50,49,48,47,46,45,44,43,42,41,40,39,38,37,36,35,34,33,32,31,30,29,28,27,26,25,24,23,22,21,20,19,18,17,16,15,14,13,12,11,10,9,8,7,6,5,4,3,2,1,0)):(\
(__VA_NARGS__(__VA_ARGS__)==24)?(_24(__VA_ARGS__,63,62,61,60,59,58,57,56,55,54,53,52,51,50,49,48,47,46,45,44,43,42,41,40,39,38,37,36,35,34,33,32,31,30,29,28,27,26,25,24,23,22,21,20,19,18,17,16,15,14,13,12,11,10,9,8,7,6,5,4,3,2,1,0)):(\
(__VA_NARGS__(__VA_ARGS__)==25)?(_25(__VA_ARGS__,63,62,61,60,59,58,57,56,55,54,53,52,51,50,49,48,47,46,45,44,43,42,41,40,39,38,37,36,35,34,33,32,31,30,29,28,27,26,25,24,23,22,21,20,19,18,17,16,15,14,13,12,11,10,9,8,7,6,5,4,3,2,1,0)):(\
(__VA_NARGS__(__VA_ARGS__)==26)?(_26(__VA_ARGS__,63,62,61,60,59,58,57,56,55,54,53,52,51,50,49,48,47,46,45,44,43,42,41,40,39,38,37,36,35,34,33,32,31,30,29,28,27,26,25,24,23,22,21,20,19,18,17,16,15,14,13,12,11,10,9,8,7,6,5,4,3,2,1,0)):(\
(__VA_NARGS__(__VA_ARGS__)==27)?(_27(__VA_ARGS__,63,62,61,60,59,58,57,56,55,54,53,52,51,50,49,48,47,46,45,44,43,42,41,40,39,38,37,36,35,34,33,32,31,30,29,28,27,26,25,24,23,22,21,20,19,18,17,16,15,14,13,12,11,10,9,8,7,6,5,4,3,2,1,0)):(\
(__VA_NARGS__(__VA_ARGS__)==28)?(_28(__VA_ARGS__,63,62,61,60,59,58,57,56,55,54,53,52,51,50,49,48,47,46,45,44,43,42,41,40,39,38,37,36,35,34,33,32,31,30,29,28,27,26,25,24,23,22,21,20,19,18,17,16,15,14,13,12,11,10,9,8,7,6,5,4,3,2,1,0)):(\
(__VA_NARGS__(__VA_ARGS__)==29)?(_29(__VA_ARGS__,63,62,61,60,59,58,57,56,55,54,53,52,51,50,49,48,47,46,45,44,43,42,41,40,39,38,37,36,35,34,33,32,31,30,29,28,27,26,25,24,23,22,21,20,19,18,17,16,15,14,13,12,11,10,9,8,7,6,5,4,3,2,1,0)):(\
(__VA_NARGS__(__VA_ARGS__)==30)?(_30(__VA_ARGS__,63,62,61,60,59,58,57,56,55,54,53,52,51,50,49,48,47,46,45,44,43,42,41,40,39,38,37,36,35,34,33,32,31,30,29,28,27,26,25,24,23,22,21,20,19,18,17,16,15,14,13,12,11,10,9,8,7,6,5,4,3,2,1,0)):(\
(__VA_NARGS__(__VA_ARGS__)==31)?(_31(__VA_ARGS__,63,62,61,60,59,58,57,56,55,54,53,52,51,50,49,48,47,46,45,44,43,42,41,40,39,38,37,36,35,34,33,32,31,30,29,28,27,26,25,24,23,22,21,20,19,18,17,16,15,14,13,12,11,10,9,8,7,6,5,4,3,2,1,0)):(\
(__VA_NARGS__(__VA_ARGS__)==32)?(_32(__VA_ARGS__,63,62,61,60,59,58,57,56,55,54,53,52,51,50,49,48,47,46,45,44,43,42,41,40,39,38,37,36,35,34,33,32,31,30,29,28,27,26,25,24,23,22,21,20,19,18,17,16,15,14,13,12,11,10,9,8,7,6,5,4,3,2,1,0)):(\
(__VA_NARGS__(__VA_ARGS__)==33)?(_33(__VA_ARGS__,63,62,61,60,59,58,57,56,55,54,53,52,51,50,49,48,47,46,45,44,43,42,41,40,39,38,37,36,35,34,33,32,31,30,29,28,27,26,25,24,23,22,21,20,19,18,17,16,15,14,13,12,11,10,9,8,7,6,5,4,3,2,1,0)):(\
(__VA_NARGS__(__VA_ARGS__)==34)?(_34(__VA_ARGS__,63,62,61,60,59,58,57,56,55,54,53,52,51,50,49,48,47,46,45,44,43,42,41,40,39,38,37,36,35,34,33,32,31,30,29,28,27,26,25,24,23,22,21,20,19,18,17,16,15,14,13,12,11,10,9,8,7,6,5,4,3,2,1,0)):(\
(__VA_NARGS__(__VA_ARGS__)==35)?(_35(__VA_ARGS__,63,62,61,60,59,58,57,56,55,54,53,52,51,50,49,48,47,46,45,44,43,42,41,40,39,38,37,36,35,34,33,32,31,30,29,28,27,26,25,24,23,22,21,20,19,18,17,16,15,14,13,12,11,10,9,8,7,6,5,4,3,2,1,0)):(\
(__VA_NARGS__(__VA_ARGS__)==36)?(_36(__VA_ARGS__,63,62,61,60,59,58,57,56,55,54,53,52,51,50,49,48,47,46,45,44,43,42,41,40,39,38,37,36,35,34,33,32,31,30,29,28,27,26,25,24,23,22,21,20,19,18,17,16,15,14,13,12,11,10,9,8,7,6,5,4,3,2,1,0)):(\
(__VA_NARGS__(__VA_ARGS__)==37)?(_37(__VA_ARGS__,63,62,61,60,59,58,57,56,55,54,53,52,51,50,49,48,47,46,45,44,43,42,41,40,39,38,37,36,35,34,33,32,31,30,29,28,27,26,25,24,23,22,21,20,19,18,17,16,15,14,13,12,11,10,9,8,7,6,5,4,3,2,1,0)):(\
(__VA_NARGS__(__VA_ARGS__)==38)?(_38(__VA_ARGS__,63,62,61,60,59,58,57,56,55,54,53,52,51,50,49,48,47,46,45,44,43,42,41,40,39,38,37,36,35,34,33,32,31,30,29,28,27,26,25,24,23,22,21,20,19,18,17,16,15,14,13,12,11,10,9,8,7,6,5,4,3,2,1,0)):(\
(__VA_NARGS__(__VA_ARGS__)==39)?(_39(__VA_ARGS__,63,62,61,60,59,58,57,56,55,54,53,52,51,50,49,48,47,46,45,44,43,42,41,40,39,38,37,36,35,34,33,32,31,30,29,28,27,26,25,24,23,22,21,20,19,18,17,16,15,14,13,12,11,10,9,8,7,6,5,4,3,2,1,0)):(\
(__VA_NARGS__(__VA_ARGS__)==40)?(_40(__VA_ARGS__,63,62,61,60,59,58,57,56,55,54,53,52,51,50,49,48,47,46,45,44,43,42,41,40,39,38,37,36,35,34,33,32,31,30,29,28,27,26,25,24,23,22,21,20,19,18,17,16,15,14,13,12,11,10,9,8,7,6,5,4,3,2,1,0)):(\
(__VA_NARGS__(__VA_ARGS__)==41)?(_41(__VA_ARGS__,63,62,61,60,59,58,57,56,55,54,53,52,51,50,49,48,47,46,45,44,43,42,41,40,39,38,37,36,35,34,33,32,31,30,29,28,27,26,25,24,23,22,21,20,19,18,17,16,15,14,13,12,11,10,9,8,7,6,5,4,3,2,1,0)):(\
(__VA_NARGS__(__VA_ARGS__)==42)?(_42(__VA_ARGS__,63,62,61,60,59,58,57,56,55,54,53,52,51,50,49,48,47,46,45,44,43,42,41,40,39,38,37,36,35,34,33,32,31,30,29,28,27,26,25,24,23,22,21,20,19,18,17,16,15,14,13,12,11,10,9,8,7,6,5,4,3,2,1,0)):(\
(__VA_NARGS__(__VA_ARGS__)==43)?(_43(__VA_ARGS__,63,62,61,60,59,58,57,56,55,54,53,52,51,50,49,48,47,46,45,44,43,42,41,40,39,38,37,36,35,34,33,32,31,30,29,28,27,26,25,24,23,22,21,20,19,18,17,16,15,14,13,12,11,10,9,8,7,6,5,4,3,2,1,0)):(\
(__VA_NARGS__(__VA_ARGS__)==44)?(_44(__VA_ARGS__,63,62,61,60,59,58,57,56,55,54,53,52,51,50,49,48,47,46,45,44,43,42,41,40,39,38,37,36,35,34,33,32,31,30,29,28,27,26,25,24,23,22,21,20,19,18,17,16,15,14,13,12,11,10,9,8,7,6,5,4,3,2,1,0)):(\
(__VA_NARGS__(__VA_ARGS__)==45)?(_45(__VA_ARGS__,63,62,61,60,59,58,57,56,55,54,53,52,51,50,49,48,47,46,45,44,43,42,41,40,39,38,37,36,35,34,33,32,31,30,29,28,27,26,25,24,23,22,21,20,19,18,17,16,15,14,13,12,11,10,9,8,7,6,5,4,3,2,1,0)):(\
(__VA_NARGS__(__VA_ARGS__)==46)?(_46(__VA_ARGS__,63,62,61,60,59,58,57,56,55,54,53,52,51,50,49,48,47,46,45,44,43,42,41,40,39,38,37,36,35,34,33,32,31,30,29,28,27,26,25,24,23,22,21,20,19,18,17,16,15,14,13,12,11,10,9,8,7,6,5,4,3,2,1,0)):(\
(__VA_NARGS__(__VA_ARGS__)==47)?(_47(__VA_ARGS__,63,62,61,60,59,58,57,56,55,54,53,52,51,50,49,48,47,46,45,44,43,42,41,40,39,38,37,36,35,34,33,32,31,30,29,28,27,26,25,24,23,22,21,20,19,18,17,16,15,14,13,12,11,10,9,8,7,6,5,4,3,2,1,0)):(\
(__VA_NARGS__(__VA_ARGS__)==48)?(_48(__VA_ARGS__,63,62,61,60,59,58,57,56,55,54,53,52,51,50,49,48,47,46,45,44,43,42,41,40,39,38,37,36,35,34,33,32,31,30,29,28,27,26,25,24,23,22,21,20,19,18,17,16,15,14,13,12,11,10,9,8,7,6,5,4,3,2,1,0)):(\
(__VA_NARGS__(__VA_ARGS__)==49)?(_49(__VA_ARGS__,63,62,61,60,59,58,57,56,55,54,53,52,51,50,49,48,47,46,45,44,43,42,41,40,39,38,37,36,35,34,33,32,31,30,29,28,27,26,25,24,23,22,21,20,19,18,17,16,15,14,13,12,11,10,9,8,7,6,5,4,3,2,1,0)):(\
(__VA_NARGS__(__VA_ARGS__)==50)?(_50(__VA_ARGS__,63,62,61,60,59,58,57,56,55,54,53,52,51,50,49,48,47,46,45,44,43,42,41,40,39,38,37,36,35,34,33,32,31,30,29,28,27,26,25,24,23,22,21,20,19,18,17,16,15,14,13,12,11,10,9,8,7,6,5,4,3,2,1,0)):(\
(__VA_NARGS__(__VA_ARGS__)==51)?(_51(__VA_ARGS__,63,62,61,60,59,58,57,56,55,54,53,52,51,50,49,48,47,46,45,44,43,42,41,40,39,38,37,36,35,34,33,32,31,30,29,28,27,26,25,24,23,22,21,20,19,18,17,16,15,14,13,12,11,10,9,8,7,6,5,4,3,2,1,0)):(\
(__VA_NARGS__(__VA_ARGS__)==52)?(_52(__VA_ARGS__,63,62,61,60,59,58,57,56,55,54,53,52,51,50,49,48,47,46,45,44,43,42,41,40,39,38,37,36,35,34,33,32,31,30,29,28,27,26,25,24,23,22,21,20,19,18,17,16,15,14,13,12,11,10,9,8,7,6,5,4,3,2,1,0)):(\
(__VA_NARGS__(__VA_ARGS__)==53)?(_53(__VA_ARGS__,63,62,61,60,59,58,57,56,55,54,53,52,51,50,49,48,47,46,45,44,43,42,41,40,39,38,37,36,35,34,33,32,31,30,29,28,27,26,25,24,23,22,21,20,19,18,17,16,15,14,13,12,11,10,9,8,7,6,5,4,3,2,1,0)):(\
(__VA_NARGS__(__VA_ARGS__)==54)?(_54(__VA_ARGS__,63,62,61,60,59,58,57,56,55,54,53,52,51,50,49,48,47,46,45,44,43,42,41,40,39,38,37,36,35,34,33,32,31,30,29,28,27,26,25,24,23,22,21,20,19,18,17,16,15,14,13,12,11,10,9,8,7,6,5,4,3,2,1,0)):(\
(__VA_NARGS__(__VA_ARGS__)==55)?(_55(__VA_ARGS__,63,62,61,60,59,58,57,56,55,54,53,52,51,50,49,48,47,46,45,44,43,42,41,40,39,38,37,36,35,34,33,32,31,30,29,28,27,26,25,24,23,22,21,20,19,18,17,16,15,14,13,12,11,10,9,8,7,6,5,4,3,2,1,0)):(\
(__VA_NARGS__(__VA_ARGS__)==56)?(_56(__VA_ARGS__,63,62,61,60,59,58,57,56,55,54,53,52,51,50,49,48,47,46,45,44,43,42,41,40,39,38,37,36,35,34,33,32,31,30,29,28,27,26,25,24,23,22,21,20,19,18,17,16,15,14,13,12,11,10,9,8,7,6,5,4,3,2,1,0)):(\
(__VA_NARGS__(__VA_ARGS__)==57)?(_57(__VA_ARGS__,63,62,61,60,59,58,57,56,55,54,53,52,51,50,49,48,47,46,45,44,43,42,41,40,39,38,37,36,35,34,33,32,31,30,29,28,27,26,25,24,23,22,21,20,19,18,17,16,15,14,13,12,11,10,9,8,7,6,5,4,3,2,1,0)):(\
(__VA_NARGS__(__VA_ARGS__)==58)?(_58(__VA_ARGS__,63,62,61,60,59,58,57,56,55,54,53,52,51,50,49,48,47,46,45,44,43,42,41,40,39,38,37,36,35,34,33,32,31,30,29,28,27,26,25,24,23,22,21,20,19,18,17,16,15,14,13,12,11,10,9,8,7,6,5,4,3,2,1,0)):(\
(__VA_NARGS__(__VA_ARGS__)==59)?(_59(__VA_ARGS__,63,62,61,60,59,58,57,56,55,54,53,52,51,50,49,48,47,46,45,44,43,42,41,40,39,38,37,36,35,34,33,32,31,30,29,28,27,26,25,24,23,22,21,20,19,18,17,16,15,14,13,12,11,10,9,8,7,6,5,4,3,2,1,0)):(\
(__VA_NARGS__(__VA_ARGS__)==60)?(_60(__VA_ARGS__,63,62,61,60,59,58,57,56,55,54,53,52,51,50,49,48,47,46,45,44,43,42,41,40,39,38,37,36,35,34,33,32,31,30,29,28,27,26,25,24,23,22,21,20,19,18,17,16,15,14,13,12,11,10,9,8,7,6,5,4,3,2,1,0)):(\
(__VA_NARGS__(__VA_ARGS__)==61)?(_61(__VA_ARGS__,63,62,61,60,59,58,57,56,55,54,53,52,51,50,49,48,47,46,45,44,43,42,41,40,39,38,37,36,35,34,33,32,31,30,29,28,27,26,25,24,23,22,21,20,19,18,17,16,15,14,13,12,11,10,9,8,7,6,5,4,3,2,1,0)):(\
(__VA_NARGS__(__VA_ARGS__)==62)?(_62(__VA_ARGS__,63,62,61,60,59,58,57,56,55,54,53,52,51,50,49,48,47,46,45,44,43,42,41,40,39,38,37,36,35,34,33,32,31,30,29,28,27,26,25,24,23,22,21,20,19,18,17,16,15,14,13,12,11,10,9,8,7,6,5,4,3,2,1,0)):(\
(_63(__VA_ARGS__,63,62,61,60,59,58,57,56,55,54,53,52,51,50,49,48,47,46,45,44,43,42,41,40,39,38,37,36,35,34,33,32,31,30,29,28,27,26,25,24,23,22,21,20,19,18,17,16,15,14,13,12,11,10,9,8,7,6,5,4,3,2,1,0))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))
#define _1(A,...) _1_(A)
#define _2(A,B,...) _2_(A,B)
#define _3(A,B,C,...) _3_(A,B,C)
#define _4(A,B,C,D,...) _4_(A,B,C,D)
#define _5(A,B,C,D,E,...) _5_(A,B,C,D,E)
#define _6(A,B,C,D,E,F,...) _6_(A,B,C,D,E,F)
#define _7(A,B,C,D,E,F,G,...) _7_(A,B,C,D,E,F,G)
#define _8(A,B,C,D,E,F,G,H,...) _8_(A,B,C,D,E,F,G,H)
#define _9(A,B,C,D,E,F,G,H,I,...) _9_(A,B,C,D,E,F,G,H,I)
#define _10(A,B,C,D,E,F,G,H,I,J,...) _10_(A,B,C,D,E,F,G,H,I,J)
#define _11(A,B,C,D,E,F,G,H,I,J,K,...) _11_(A,B,C,D,E,F,G,H,I,J,K)
#define _12(A,B,C,D,E,F,G,H,I,J,K,L,...) _12_(A,B,C,D,E,F,G,H,I,J,K,L)
#define _13(A,B,C,D,E,F,G,H,I,J,K,L,M,...) _13_(A,B,C,D,E,F,G,H,I,J,K,L,M)
#define _14(A,B,C,D,E,F,G,H,I,J,K,L,M,N,...) _14_(A,B,C,D,E,F,G,H,I,J,K,L,M,N)
#define _15(A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,...) _15_(A,B,C,D,E,F,G,H,I,J,K,L,M,N,O)
#define _16(A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,...) _16_(A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P)
#define _17(A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,...) _17_(A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q)
#define _18(A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,...) _18_(A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R)
#define _19(A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,...) _19_(A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S)
#define _20(A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,...) _20_(A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T)
#define _21(A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,...) _21_(A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U)
#define _22(A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,...) _22_(A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V)
#define _23(A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,...) _23_(A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W)
#define _24(A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,...) _24_(A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X)
#define _25(A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,...) _25_(A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y)
#define _26(A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,...) _26_(A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z)
#define _27(A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,AA,...) _27_(A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,AA)
#define _28(A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,AA,AB,...) _28_(A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,AA,AB)
#define _29(A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,AA,AB,AC,...) _29_(A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,AA,AB,AC)
#define _30(A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,AA,AB,AC,AD,...) _30_(A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,AA,AB,AC,AD)
#define _31(A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,AA,AB,AC,AD,AE,...) _31_(A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,AA,AB,AC,AD,AE)
#define _32(A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,AA,AB,AC,AD,AE,AF,...) _32_(A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,AA,AB,AC,AD,AE,AF)
#define _33(A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,AA,AB,AC,AD,AE,AF,AG,...) _33_(A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,AA,AB,AC,AD,AE,AF,AG)
#define _34(A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,AA,AB,AC,AD,AE,AF,AG,AH,...) _34_(A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,AA,AB,AC,AD,AE,AF,AG,AH)
#define _35(A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,AA,AB,AC,AD,AE,AF,AG,AH,AI,...) _35_(A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,AA,AB,AC,AD,AE,AF,AG,AH,AI)
#define _36(A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,AA,AB,AC,AD,AE,AF,AG,AH,AI,AJ,...) _36_(A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,AA,AB,AC,AD,AE,AF,AG,AH,AI,AJ)
#define _37(A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,AA,AB,AC,AD,AE,AF,AG,AH,AI,AJ,AK,...) _37_(A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,AA,AB,AC,AD,AE,AF,AG,AH,AI,AJ,AK)
#define _38(A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,AA,AB,AC,AD,AE,AF,AG,AH,AI,AJ,AK,AL,...) _38_(A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,AA,AB,AC,AD,AE,AF,AG,AH,AI,AJ,AK,AL)
#define _39(A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,AA,AB,AC,AD,AE,AF,AG,AH,AI,AJ,AK,AL,AM,...) _39_(A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,AA,AB,AC,AD,AE,AF,AG,AH,AI,AJ,AK,AL,AM)
#define _40(A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,AA,AB,AC,AD,AE,AF,AG,AH,AI,AJ,AK,AL,AM,AN,...) _40_(A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,AA,AB,AC,AD,AE,AF,AG,AH,AI,AJ,AK,AL,AM,AN)
#define _41(A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,AA,AB,AC,AD,AE,AF,AG,AH,AI,AJ,AK,AL,AM,AN,AO,...) _41_(A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,AA,AB,AC,AD,AE,AF,AG,AH,AI,AJ,AK,AL,AM,AN,AO)
#define _42(A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,AA,AB,AC,AD,AE,AF,AG,AH,AI,AJ,AK,AL,AM,AN,AO,AP,...) _42_(A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,AA,AB,AC,AD,AE,AF,AG,AH,AI,AJ,AK,AL,AM,AN,AO,AP)
#define _43(A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,AA,AB,AC,AD,AE,AF,AG,AH,AI,AJ,AK,AL,AM,AN,AO,AP,AQ,...) _43_(A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,AA,AB,AC,AD,AE,AF,AG,AH,AI,AJ,AK,AL,AM,AN,AO,AP,AQ)
#define _44(A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,AA,AB,AC,AD,AE,AF,AG,AH,AI,AJ,AK,AL,AM,AN,AO,AP,AQ,AR,...) _44_(A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,AA,AB,AC,AD,AE,AF,AG,AH,AI,AJ,AK,AL,AM,AN,AO,AP,AQ,AR)
#define _45(A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,AA,AB,AC,AD,AE,AF,AG,AH,AI,AJ,AK,AL,AM,AN,AO,AP,AQ,AR,AS,...) _45_(A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,AA,AB,AC,AD,AE,AF,AG,AH,AI,AJ,AK,AL,AM,AN,AO,AP,AQ,AR,AS)
#define _46(A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,AA,AB,AC,AD,AE,AF,AG,AH,AI,AJ,AK,AL,AM,AN,AO,AP,AQ,AR,AS,AT,...) _46_(A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,AA,AB,AC,AD,AE,AF,AG,AH,AI,AJ,AK,AL,AM,AN,AO,AP,AQ,AR,AS,AT)
#define _47(A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,AA,AB,AC,AD,AE,AF,AG,AH,AI,AJ,AK,AL,AM,AN,AO,AP,AQ,AR,AS,AT,AU,...) _47_(A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,AA,AB,AC,AD,AE,AF,AG,AH,AI,AJ,AK,AL,AM,AN,AO,AP,AQ,AR,AS,AT,AU)
#define _48(A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,AA,AB,AC,AD,AE,AF,AG,AH,AI,AJ,AK,AL,AM,AN,AO,AP,AQ,AR,AS,AT,AU,AV,...) _48_(A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,AA,AB,AC,AD,AE,AF,AG,AH,AI,AJ,AK,AL,AM,AN,AO,AP,AQ,AR,AS,AT,AU,AV)
#define _49(A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,AA,AB,AC,AD,AE,AF,AG,AH,AI,AJ,AK,AL,AM,AN,AO,AP,AQ,AR,AS,AT,AU,AV,AW,...) _49_(A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,AA,AB,AC,AD,AE,AF,AG,AH,AI,AJ,AK,AL,AM,AN,AO,AP,AQ,AR,AS,AT,AU,AV,AW)
#define _50(A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,AA,AB,AC,AD,AE,AF,AG,AH,AI,AJ,AK,AL,AM,AN,AO,AP,AQ,AR,AS,AT,AU,AV,AW,AX,...) _50_(A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,AA,AB,AC,AD,AE,AF,AG,AH,AI,AJ,AK,AL,AM,AN,AO,AP,AQ,AR,AS,AT,AU,AV,AW,AX)
#define _51(A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,AA,AB,AC,AD,AE,AF,AG,AH,AI,AJ,AK,AL,AM,AN,AO,AP,AQ,AR,AS,AT,AU,AV,AW,AX,AY,...) _51_(A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,AA,AB,AC,AD,AE,AF,AG,AH,AI,AJ,AK,AL,AM,AN,AO,AP,AQ,AR,AS,AT,AU,AV,AW,AX,AY)
#define _52(A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,AA,AB,AC,AD,AE,AF,AG,AH,AI,AJ,AK,AL,AM,AN,AO,AP,AQ,AR,AS,AT,AU,AV,AW,AX,AY,AZ,...) _52_(A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,AA,AB,AC,AD,AE,AF,AG,AH,AI,AJ,AK,AL,AM,AN,AO,AP,AQ,AR,AS,AT,AU,AV,AW,AX,AY,AZ)
#define _53(A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,AA,AB,AC,AD,AE,AF,AG,AH,AI,AJ,AK,AL,AM,AN,AO,AP,AQ,AR,AS,AT,AU,AV,AW,AX,AY,AZ,BA,...) _53_(A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,AA,AB,AC,AD,AE,AF,AG,AH,AI,AJ,AK,AL,AM,AN,AO,AP,AQ,AR,AS,AT,AU,AV,AW,AX,AY,AZ,BA)
#define _54(A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,AA,AB,AC,AD,AE,AF,AG,AH,AI,AJ,AK,AL,AM,AN,AO,AP,AQ,AR,AS,AT,AU,AV,AW,AX,AY,AZ,BA,BB,...) _54_(A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,AA,AB,AC,AD,AE,AF,AG,AH,AI,AJ,AK,AL,AM,AN,AO,AP,AQ,AR,AS,AT,AU,AV,AW,AX,AY,AZ,BA,BB)
#define _55(A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,AA,AB,AC,AD,AE,AF,AG,AH,AI,AJ,AK,AL,AM,AN,AO,AP,AQ,AR,AS,AT,AU,AV,AW,AX,AY,AZ,BA,BB,BC,...) _55_(A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,AA,AB,AC,AD,AE,AF,AG,AH,AI,AJ,AK,AL,AM,AN,AO,AP,AQ,AR,AS,AT,AU,AV,AW,AX,AY,AZ,BA,BB,BC)
#define _56(A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,AA,AB,AC,AD,AE,AF,AG,AH,AI,AJ,AK,AL,AM,AN,AO,AP,AQ,AR,AS,AT,AU,AV,AW,AX,AY,AZ,BA,BB,BC,BD,...) _56_(A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,AA,AB,AC,AD,AE,AF,AG,AH,AI,AJ,AK,AL,AM,AN,AO,AP,AQ,AR,AS,AT,AU,AV,AW,AX,AY,AZ,BA,BB,BC,BD)
#define _57(A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,AA,AB,AC,AD,AE,AF,AG,AH,AI,AJ,AK,AL,AM,AN,AO,AP,AQ,AR,AS,AT,AU,AV,AW,AX,AY,AZ,BA,BB,BC,BD,BE,...) _57_(A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,AA,AB,AC,AD,AE,AF,AG,AH,AI,AJ,AK,AL,AM,AN,AO,AP,AQ,AR,AS,AT,AU,AV,AW,AX,AY,AZ,BA,BB,BC,BD,BE)
#define _58(A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,AA,AB,AC,AD,AE,AF,AG,AH,AI,AJ,AK,AL,AM,AN,AO,AP,AQ,AR,AS,AT,AU,AV,AW,AX,AY,AZ,BA,BB,BC,BD,BE,BF,...) _58_(A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,AA,AB,AC,AD,AE,AF,AG,AH,AI,AJ,AK,AL,AM,AN,AO,AP,AQ,AR,AS,AT,AU,AV,AW,AX,AY,AZ,BA,BB,BC,BD,BE,BF)
#define _59(A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,AA,AB,AC,AD,AE,AF,AG,AH,AI,AJ,AK,AL,AM,AN,AO,AP,AQ,AR,AS,AT,AU,AV,AW,AX,AY,AZ,BA,BB,BC,BD,BE,BF,BG,...) _59_(A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,AA,AB,AC,AD,AE,AF,AG,AH,AI,AJ,AK,AL,AM,AN,AO,AP,AQ,AR,AS,AT,AU,AV,AW,AX,AY,AZ,BA,BB,BC,BD,BE,BF,BG)
#define _60(A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,AA,AB,AC,AD,AE,AF,AG,AH,AI,AJ,AK,AL,AM,AN,AO,AP,AQ,AR,AS,AT,AU,AV,AW,AX,AY,AZ,BA,BB,BC,BD,BE,BF,BG,BH,...) _60_(A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,AA,AB,AC,AD,AE,AF,AG,AH,AI,AJ,AK,AL,AM,AN,AO,AP,AQ,AR,AS,AT,AU,AV,AW,AX,AY,AZ,BA,BB,BC,BD,BE,BF,BG,BH)
#define _61(A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,AA,AB,AC,AD,AE,AF,AG,AH,AI,AJ,AK,AL,AM,AN,AO,AP,AQ,AR,AS,AT,AU,AV,AW,AX,AY,AZ,BA,BB,BC,BD,BE,BF,BG,BH,BI,...) _61_(A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,AA,AB,AC,AD,AE,AF,AG,AH,AI,AJ,AK,AL,AM,AN,AO,AP,AQ,AR,AS,AT,AU,AV,AW,AX,AY,AZ,BA,BB,BC,BD,BE,BF,BG,BH,BI)
#define _62(A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,AA,AB,AC,AD,AE,AF,AG,AH,AI,AJ,AK,AL,AM,AN,AO,AP,AQ,AR,AS,AT,AU,AV,AW,AX,AY,AZ,BA,BB,BC,BD,BE,BF,BG,BH,BI,BJ,...) _62_(A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,AA,AB,AC,AD,AE,AF,AG,AH,AI,AJ,AK,AL,AM,AN,AO,AP,AQ,AR,AS,AT,AU,AV,AW,AX,AY,AZ,BA,BB,BC,BD,BE,BF,BG,BH,BI,BJ)
#define _63(A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,AA,AB,AC,AD,AE,AF,AG,AH,AI,AJ,AK,AL,AM,AN,AO,AP,AQ,AR,AS,AT,AU,AV,AW,AX,AY,AZ,BA,BB,BC,BD,BE,BF,BG,BH,BI,BJ,BK,...) _63_(A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,AA,AB,AC,AD,AE,AF,AG,AH,AI,AJ,AK,AL,AM,AN,AO,AP,AQ,AR,AS,AT,AU,AV,AW,AX,AY,AZ,BA,BB,BC,BD,BE,BF,BG,BH,BI,BJ,BK)
#define _1_(A) FERROR(STRN_(A))
#define _2_(A,B) FERROR(STRN_(A),STRN_(B))
#define _3_(A,B,C) FERROR(STRN_(A),STRN_(B),STRN_(C))
#define _4_(A,B,C,D) FERROR(STRN_(A),STRN_(B),STRN_(C),STRN_(D))
#define _5_(A,B,C,D,E) FERROR(STRN_(A),STRN_(B),STRN_(C),STRN_(D),STRN_(E))
#define _6_(A,B,C,D,E,F) FERROR(STRN_(A),STRN_(B),STRN_(C),STRN_(D),STRN_(E),STRN_(F))
#define _7_(A,B,C,D,E,F,G) FERROR(STRN_(A),STRN_(B),STRN_(C),STRN_(D),STRN_(E),STRN_(F),STRN_(G))
#define _8_(A,B,C,D,E,F,G,H) FERROR(STRN_(A),STRN_(B),STRN_(C),STRN_(D),STRN_(E),STRN_(F),STRN_(G),STRN_(H))
#define _9_(A,B,C,D,E,F,G,H,I) FERROR(STRN_(A),STRN_(B),STRN_(C),STRN_(D),STRN_(E),STRN_(F),STRN_(G),STRN_(H),STRN_(I))
#define _10_(A,B,C,D,E,F,G,H,I,J) FERROR(STRN_(A),STRN_(B),STRN_(C),STRN_(D),STRN_(E),STRN_(F),STRN_(G),STRN_(H),STRN_(I),STRN_(J))
#define _11_(A,B,C,D,E,F,G,H,I,J,K) FERROR(STRN_(A),STRN_(B),STRN_(C),STRN_(D),STRN_(E),STRN_(F),STRN_(G),STRN_(H),STRN_(I),STRN_(J),STRN_(K))
#define _12_(A,B,C,D,E,F,G,H,I,J,K,L) FERROR(STRN_(A),STRN_(B),STRN_(C),STRN_(D),STRN_(E),STRN_(F),STRN_(G),STRN_(H),STRN_(I),STRN_(J),STRN_(K),STRN_(L))
#define _13_(A,B,C,D,E,F,G,H,I,J,K,L,M) FERROR(STRN_(A),STRN_(B),STRN_(C),STRN_(D),STRN_(E),STRN_(F),STRN_(G),STRN_(H),STRN_(I),STRN_(J),STRN_(K),STRN_(L),STRN_(M))
#define _14_(A,B,C,D,E,F,G,H,I,J,K,L,M,N) FERROR(STRN_(A),STRN_(B),STRN_(C),STRN_(D),STRN_(E),STRN_(F),STRN_(G),STRN_(H),STRN_(I),STRN_(J),STRN_(K),STRN_(L),STRN_(M),STRN_(N))
#define _15_(A,B,C,D,E,F,G,H,I,J,K,L,M,N,O) FERROR(STRN_(A),STRN_(B),STRN_(C),STRN_(D),STRN_(E),STRN_(F),STRN_(G),STRN_(H),STRN_(I),STRN_(J),STRN_(K),STRN_(L),STRN_(M),STRN_(N),STRN_(O))
#define _16_(A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P) FERROR(STRN_(A),STRN_(B),STRN_(C),STRN_(D),STRN_(E),STRN_(F),STRN_(G),STRN_(H),STRN_(I),STRN_(J),STRN_(K),STRN_(L),STRN_(M),STRN_(N),STRN_(O),STRN_(P))
#define _17_(A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q) FERROR(STRN_(A),STRN_(B),STRN_(C),STRN_(D),STRN_(E),STRN_(F),STRN_(G),STRN_(H),STRN_(I),STRN_(J),STRN_(K),STRN_(L),STRN_(M),STRN_(N),STRN_(O),STRN_(P),STRN_(Q))
#define _18_(A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R) FERROR(STRN_(A),STRN_(B),STRN_(C),STRN_(D),STRN_(E),STRN_(F),STRN_(G),STRN_(H),STRN_(I),STRN_(J),STRN_(K),STRN_(L),STRN_(M),STRN_(N),STRN_(O),STRN_(P),STRN_(Q),STRN_(R))
#define _19_(A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S) FERROR(STRN_(A),STRN_(B),STRN_(C),STRN_(D),STRN_(E),STRN_(F),STRN_(G),STRN_(H),STRN_(I),STRN_(J),STRN_(K),STRN_(L),STRN_(M),STRN_(N),STRN_(O),STRN_(P),STRN_(Q),STRN_(R),STRN_(S))
#define _20_(A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T) FERROR(STRN_(A),STRN_(B),STRN_(C),STRN_(D),STRN_(E),STRN_(F),STRN_(G),STRN_(H),STRN_(I),STRN_(J),STRN_(K),STRN_(L),STRN_(M),STRN_(N),STRN_(O),STRN_(P),STRN_(Q),STRN_(R),STRN_(S),STRN_(T))
#define _21_(A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U) FERROR(STRN_(A),STRN_(B),STRN_(C),STRN_(D),STRN_(E),STRN_(F),STRN_(G),STRN_(H),STRN_(I),STRN_(J),STRN_(K),STRN_(L),STRN_(M),STRN_(N),STRN_(O),STRN_(P),STRN_(Q),STRN_(R),STRN_(S),STRN_(T),STRN_(U))
#define _22_(A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V) FERROR(STRN_(A),STRN_(B),STRN_(C),STRN_(D),STRN_(E),STRN_(F),STRN_(G),STRN_(H),STRN_(I),STRN_(J),STRN_(K),STRN_(L),STRN_(M),STRN_(N),STRN_(O),STRN_(P),STRN_(Q),STRN_(R),STRN_(S),STRN_(T),STRN_(U),STRN_(V))
#define _23_(A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W) FERROR(STRN_(A),STRN_(B),STRN_(C),STRN_(D),STRN_(E),STRN_(F),STRN_(G),STRN_(H),STRN_(I),STRN_(J),STRN_(K),STRN_(L),STRN_(M),STRN_(N),STRN_(O),STRN_(P),STRN_(Q),STRN_(R),STRN_(S),STRN_(T),STRN_(U),STRN_(V),STRN_(W))
#define _24_(A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X) FERROR(STRN_(A),STRN_(B),STRN_(C),STRN_(D),STRN_(E),STRN_(F),STRN_(G),STRN_(H),STRN_(I),STRN_(J),STRN_(K),STRN_(L),STRN_(M),STRN_(N),STRN_(O),STRN_(P),STRN_(Q),STRN_(R),STRN_(S),STRN_(T),STRN_(U),STRN_(V),STRN_(W),STRN_(X))
#define _25_(A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y) FERROR(STRN_(A),STRN_(B),STRN_(C),STRN_(D),STRN_(E),STRN_(F),STRN_(G),STRN_(H),STRN_(I),STRN_(J),STRN_(K),STRN_(L),STRN_(M),STRN_(N),STRN_(O),STRN_(P),STRN_(Q),STRN_(R),STRN_(S),STRN_(T),STRN_(U),STRN_(V),STRN_(W),STRN_(X),STRN_(Y))
#define _26_(A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z) FERROR(STRN_(A),STRN_(B),STRN_(C),STRN_(D),STRN_(E),STRN_(F),STRN_(G),STRN_(H),STRN_(I),STRN_(J),STRN_(K),STRN_(L),STRN_(M),STRN_(N),STRN_(O),STRN_(P),STRN_(Q),STRN_(R),STRN_(S),STRN_(T),STRN_(U),STRN_(V),STRN_(W),STRN_(X),STRN_(Y),STRN_(Z))
#define _27_(A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,AA) FERROR(STRN_(A),STRN_(B),STRN_(C),STRN_(D),STRN_(E),STRN_(F),STRN_(G),STRN_(H),STRN_(I),STRN_(J),STRN_(K),STRN_(L),STRN_(M),STRN_(N),STRN_(O),STRN_(P),STRN_(Q),STRN_(R),STRN_(S),STRN_(T),STRN_(U),STRN_(V),STRN_(W),STRN_(X),STRN_(Y),STRN_(Z),STRN_(AA))
#define _28_(A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,AA,AB) FERROR(STRN_(A),STRN_(B),STRN_(C),STRN_(D),STRN_(E),STRN_(F),STRN_(G),STRN_(H),STRN_(I),STRN_(J),STRN_(K),STRN_(L),STRN_(M),STRN_(N),STRN_(O),STRN_(P),STRN_(Q),STRN_(R),STRN_(S),STRN_(T),STRN_(U),STRN_(V),STRN_(W),STRN_(X),STRN_(Y),STRN_(Z),STRN_(AA),STRN_(AB))
#define _29_(A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,AA,AB,AC) FERROR(STRN_(A),STRN_(B),STRN_(C),STRN_(D),STRN_(E),STRN_(F),STRN_(G),STRN_(H),STRN_(I),STRN_(J),STRN_(K),STRN_(L),STRN_(M),STRN_(N),STRN_(O),STRN_(P),STRN_(Q),STRN_(R),STRN_(S),STRN_(T),STRN_(U),STRN_(V),STRN_(W),STRN_(X),STRN_(Y),STRN_(Z),STRN_(AA),STRN_(AB),STRN_(AC))
#define _30_(A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,AA,AB,AC,AD) FERROR(STRN_(A),STRN_(B),STRN_(C),STRN_(D),STRN_(E),STRN_(F),STRN_(G),STRN_(H),STRN_(I),STRN_(J),STRN_(K),STRN_(L),STRN_(M),STRN_(N),STRN_(O),STRN_(P),STRN_(Q),STRN_(R),STRN_(S),STRN_(T),STRN_(U),STRN_(V),STRN_(W),STRN_(X),STRN_(Y),STRN_(Z),STRN_(AA),STRN_(AB),STRN_(AC),STRN_(AD))
#define _31_(A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,AA,AB,AC,AD,AE) FERROR(STRN_(A),STRN_(B),STRN_(C),STRN_(D),STRN_(E),STRN_(F),STRN_(G),STRN_(H),STRN_(I),STRN_(J),STRN_(K),STRN_(L),STRN_(M),STRN_(N),STRN_(O),STRN_(P),STRN_(Q),STRN_(R),STRN_(S),STRN_(T),STRN_(U),STRN_(V),STRN_(W),STRN_(X),STRN_(Y),STRN_(Z),STRN_(AA),STRN_(AB),STRN_(AC),STRN_(AD),STRN_(AE))
#define _32_(A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,AA,AB,AC,AD,AE,AF) FERROR(STRN_(A),STRN_(B),STRN_(C),STRN_(D),STRN_(E),STRN_(F),STRN_(G),STRN_(H),STRN_(I),STRN_(J),STRN_(K),STRN_(L),STRN_(M),STRN_(N),STRN_(O),STRN_(P),STRN_(Q),STRN_(R),STRN_(S),STRN_(T),STRN_(U),STRN_(V),STRN_(W),STRN_(X),STRN_(Y),STRN_(Z),STRN_(AA),STRN_(AB),STRN_(AC),STRN_(AD),STRN_(AE),STRN_(AF))
#define _33_(A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,AA,AB,AC,AD,AE,AF,AG) FERROR(STRN_(A),STRN_(B),STRN_(C),STRN_(D),STRN_(E),STRN_(F),STRN_(G),STRN_(H),STRN_(I),STRN_(J),STRN_(K),STRN_(L),STRN_(M),STRN_(N),STRN_(O),STRN_(P),STRN_(Q),STRN_(R),STRN_(S),STRN_(T),STRN_(U),STRN_(V),STRN_(W),STRN_(X),STRN_(Y),STRN_(Z),STRN_(AA),STRN_(AB),STRN_(AC),STRN_(AD),STRN_(AE),STRN_(AF),STRN_(AG))
#define _34_(A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,AA,AB,AC,AD,AE,AF,AG,AH) FERROR(STRN_(A),STRN_(B),STRN_(C),STRN_(D),STRN_(E),STRN_(F),STRN_(G),STRN_(H),STRN_(I),STRN_(J),STRN_(K),STRN_(L),STRN_(M),STRN_(N),STRN_(O),STRN_(P),STRN_(Q),STRN_(R),STRN_(S),STRN_(T),STRN_(U),STRN_(V),STRN_(W),STRN_(X),STRN_(Y),STRN_(Z),STRN_(AA),STRN_(AB),STRN_(AC),STRN_(AD),STRN_(AE),STRN_(AF),STRN_(AG),STRN_(AH))
#define _35_(A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,AA,AB,AC,AD,AE,AF,AG,AH,AI) FERROR(STRN_(A),STRN_(B),STRN_(C),STRN_(D),STRN_(E),STRN_(F),STRN_(G),STRN_(H),STRN_(I),STRN_(J),STRN_(K),STRN_(L),STRN_(M),STRN_(N),STRN_(O),STRN_(P),STRN_(Q),STRN_(R),STRN_(S),STRN_(T),STRN_(U),STRN_(V),STRN_(W),STRN_(X),STRN_(Y),STRN_(Z),STRN_(AA),STRN_(AB),STRN_(AC),STRN_(AD),STRN_(AE),STRN_(AF),STRN_(AG),STRN_(AH),STRN_(AI))
#define _36_(A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,AA,AB,AC,AD,AE,AF,AG,AH,AI,AJ) FERROR(STRN_(A),STRN_(B),STRN_(C),STRN_(D),STRN_(E),STRN_(F),STRN_(G),STRN_(H),STRN_(I),STRN_(J),STRN_(K),STRN_(L),STRN_(M),STRN_(N),STRN_(O),STRN_(P),STRN_(Q),STRN_(R),STRN_(S),STRN_(T),STRN_(U),STRN_(V),STRN_(W),STRN_(X),STRN_(Y),STRN_(Z),STRN_(AA),STRN_(AB),STRN_(AC),STRN_(AD),STRN_(AE),STRN_(AF),STRN_(AG),STRN_(AH),STRN_(AI),STRN_(AJ))
#define _37_(A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,AA,AB,AC,AD,AE,AF,AG,AH,AI,AJ,AK) FERROR(STRN_(A),STRN_(B),STRN_(C),STRN_(D),STRN_(E),STRN_(F),STRN_(G),STRN_(H),STRN_(I),STRN_(J),STRN_(K),STRN_(L),STRN_(M),STRN_(N),STRN_(O),STRN_(P),STRN_(Q),STRN_(R),STRN_(S),STRN_(T),STRN_(U),STRN_(V),STRN_(W),STRN_(X),STRN_(Y),STRN_(Z),STRN_(AA),STRN_(AB),STRN_(AC),STRN_(AD),STRN_(AE),STRN_(AF),STRN_(AG),STRN_(AH),STRN_(AI),STRN_(AJ),STRN_(AK))
#define _38_(A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,AA,AB,AC,AD,AE,AF,AG,AH,AI,AJ,AK,AL) FERROR(STRN_(A),STRN_(B),STRN_(C),STRN_(D),STRN_(E),STRN_(F),STRN_(G),STRN_(H),STRN_(I),STRN_(J),STRN_(K),STRN_(L),STRN_(M),STRN_(N),STRN_(O),STRN_(P),STRN_(Q),STRN_(R),STRN_(S),STRN_(T),STRN_(U),STRN_(V),STRN_(W),STRN_(X),STRN_(Y),STRN_(Z),STRN_(AA),STRN_(AB),STRN_(AC),STRN_(AD),STRN_(AE),STRN_(AF),STRN_(AG),STRN_(AH),STRN_(AI),STRN_(AJ),STRN_(AK),STRN_(AL))
#define _39_(A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,AA,AB,AC,AD,AE,AF,AG,AH,AI,AJ,AK,AL,AM) FERROR(STRN_(A),STRN_(B),STRN_(C),STRN_(D),STRN_(E),STRN_(F),STRN_(G),STRN_(H),STRN_(I),STRN_(J),STRN_(K),STRN_(L),STRN_(M),STRN_(N),STRN_(O),STRN_(P),STRN_(Q),STRN_(R),STRN_(S),STRN_(T),STRN_(U),STRN_(V),STRN_(W),STRN_(X),STRN_(Y),STRN_(Z),STRN_(AA),STRN_(AB),STRN_(AC),STRN_(AD),STRN_(AE),STRN_(AF),STRN_(AG),STRN_(AH),STRN_(AI),STRN_(AJ),STRN_(AK),STRN_(AL),STRN_(AM))
#define _40_(A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,AA,AB,AC,AD,AE,AF,AG,AH,AI,AJ,AK,AL,AM,AN) FERROR(STRN_(A),STRN_(B),STRN_(C),STRN_(D),STRN_(E),STRN_(F),STRN_(G),STRN_(H),STRN_(I),STRN_(J),STRN_(K),STRN_(L),STRN_(M),STRN_(N),STRN_(O),STRN_(P),STRN_(Q),STRN_(R),STRN_(S),STRN_(T),STRN_(U),STRN_(V),STRN_(W),STRN_(X),STRN_(Y),STRN_(Z),STRN_(AA),STRN_(AB),STRN_(AC),STRN_(AD),STRN_(AE),STRN_(AF),STRN_(AG),STRN_(AH),STRN_(AI),STRN_(AJ),STRN_(AK),STRN_(AL),STRN_(AM),STRN_(AN))
#define _41_(A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,AA,AB,AC,AD,AE,AF,AG,AH,AI,AJ,AK,AL,AM,AN,AO) FERROR(STRN_(A),STRN_(B),STRN_(C),STRN_(D),STRN_(E),STRN_(F),STRN_(G),STRN_(H),STRN_(I),STRN_(J),STRN_(K),STRN_(L),STRN_(M),STRN_(N),STRN_(O),STRN_(P),STRN_(Q),STRN_(R),STRN_(S),STRN_(T),STRN_(U),STRN_(V),STRN_(W),STRN_(X),STRN_(Y),STRN_(Z),STRN_(AA),STRN_(AB),STRN_(AC),STRN_(AD),STRN_(AE),STRN_(AF),STRN_(AG),STRN_(AH),STRN_(AI),STRN_(AJ),STRN_(AK),STRN_(AL),STRN_(AM),STRN_(AN),STRN_(AO))
#define _42_(A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,AA,AB,AC,AD,AE,AF,AG,AH,AI,AJ,AK,AL,AM,AN,AO,AP) FERROR(STRN_(A),STRN_(B),STRN_(C),STRN_(D),STRN_(E),STRN_(F),STRN_(G),STRN_(H),STRN_(I),STRN_(J),STRN_(K),STRN_(L),STRN_(M),STRN_(N),STRN_(O),STRN_(P),STRN_(Q),STRN_(R),STRN_(S),STRN_(T),STRN_(U),STRN_(V),STRN_(W),STRN_(X),STRN_(Y),STRN_(Z),STRN_(AA),STRN_(AB),STRN_(AC),STRN_(AD),STRN_(AE),STRN_(AF),STRN_(AG),STRN_(AH),STRN_(AI),STRN_(AJ),STRN_(AK),STRN_(AL),STRN_(AM),STRN_(AN),STRN_(AO),STRN_(AP))
#define _43_(A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,AA,AB,AC,AD,AE,AF,AG,AH,AI,AJ,AK,AL,AM,AN,AO,AP,AQ) FERROR(STRN_(A),STRN_(B),STRN_(C),STRN_(D),STRN_(E),STRN_(F),STRN_(G),STRN_(H),STRN_(I),STRN_(J),STRN_(K),STRN_(L),STRN_(M),STRN_(N),STRN_(O),STRN_(P),STRN_(Q),STRN_(R),STRN_(S),STRN_(T),STRN_(U),STRN_(V),STRN_(W),STRN_(X),STRN_(Y),STRN_(Z),STRN_(AA),STRN_(AB),STRN_(AC),STRN_(AD),STRN_(AE),STRN_(AF),STRN_(AG),STRN_(AH),STRN_(AI),STRN_(AJ),STRN_(AK),STRN_(AL),STRN_(AM),STRN_(AN),STRN_(AO),STRN_(AP),STRN_(AQ))
#define _44_(A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,AA,AB,AC,AD,AE,AF,AG,AH,AI,AJ,AK,AL,AM,AN,AO,AP,AQ,AR) FERROR(STRN_(A),STRN_(B),STRN_(C),STRN_(D),STRN_(E),STRN_(F),STRN_(G),STRN_(H),STRN_(I),STRN_(J),STRN_(K),STRN_(L),STRN_(M),STRN_(N),STRN_(O),STRN_(P),STRN_(Q),STRN_(R),STRN_(S),STRN_(T),STRN_(U),STRN_(V),STRN_(W),STRN_(X),STRN_(Y),STRN_(Z),STRN_(AA),STRN_(AB),STRN_(AC),STRN_(AD),STRN_(AE),STRN_(AF),STRN_(AG),STRN_(AH),STRN_(AI),STRN_(AJ),STRN_(AK),STRN_(AL),STRN_(AM),STRN_(AN),STRN_(AO),STRN_(AP),STRN_(AQ),STRN_(AR))
#define _45_(A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,AA,AB,AC,AD,AE,AF,AG,AH,AI,AJ,AK,AL,AM,AN,AO,AP,AQ,AR,AS) FERROR(STRN_(A),STRN_(B),STRN_(C),STRN_(D),STRN_(E),STRN_(F),STRN_(G),STRN_(H),STRN_(I),STRN_(J),STRN_(K),STRN_(L),STRN_(M),STRN_(N),STRN_(O),STRN_(P),STRN_(Q),STRN_(R),STRN_(S),STRN_(T),STRN_(U),STRN_(V),STRN_(W),STRN_(X),STRN_(Y),STRN_(Z),STRN_(AA),STRN_(AB),STRN_(AC),STRN_(AD),STRN_(AE),STRN_(AF),STRN_(AG),STRN_(AH),STRN_(AI),STRN_(AJ),STRN_(AK),STRN_(AL),STRN_(AM),STRN_(AN),STRN_(AO),STRN_(AP),STRN_(AQ),STRN_(AR),STRN_(AS))
#define _46_(A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,AA,AB,AC,AD,AE,AF,AG,AH,AI,AJ,AK,AL,AM,AN,AO,AP,AQ,AR,AS,AT) FERROR(STRN_(A),STRN_(B),STRN_(C),STRN_(D),STRN_(E),STRN_(F),STRN_(G),STRN_(H),STRN_(I),STRN_(J),STRN_(K),STRN_(L),STRN_(M),STRN_(N),STRN_(O),STRN_(P),STRN_(Q),STRN_(R),STRN_(S),STRN_(T),STRN_(U),STRN_(V),STRN_(W),STRN_(X),STRN_(Y),STRN_(Z),STRN_(AA),STRN_(AB),STRN_(AC),STRN_(AD),STRN_(AE),STRN_(AF),STRN_(AG),STRN_(AH),STRN_(AI),STRN_(AJ),STRN_(AK),STRN_(AL),STRN_(AM),STRN_(AN),STRN_(AO),STRN_(AP),STRN_(AQ),STRN_(AR),STRN_(AS),STRN_(AT))
#define _47_(A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,AA,AB,AC,AD,AE,AF,AG,AH,AI,AJ,AK,AL,AM,AN,AO,AP,AQ,AR,AS,AT,AU) FERROR(STRN_(A),STRN_(B),STRN_(C),STRN_(D),STRN_(E),STRN_(F),STRN_(G),STRN_(H),STRN_(I),STRN_(J),STRN_(K),STRN_(L),STRN_(M),STRN_(N),STRN_(O),STRN_(P),STRN_(Q),STRN_(R),STRN_(S),STRN_(T),STRN_(U),STRN_(V),STRN_(W),STRN_(X),STRN_(Y),STRN_(Z),STRN_(AA),STRN_(AB),STRN_(AC),STRN_(AD),STRN_(AE),STRN_(AF),STRN_(AG),STRN_(AH),STRN_(AI),STRN_(AJ),STRN_(AK),STRN_(AL),STRN_(AM),STRN_(AN),STRN_(AO),STRN_(AP),STRN_(AQ),STRN_(AR),STRN_(AS),STRN_(AT),STRN_(AU))
#define _48_(A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,AA,AB,AC,AD,AE,AF,AG,AH,AI,AJ,AK,AL,AM,AN,AO,AP,AQ,AR,AS,AT,AU,AV) FERROR(STRN_(A),STRN_(B),STRN_(C),STRN_(D),STRN_(E),STRN_(F),STRN_(G),STRN_(H),STRN_(I),STRN_(J),STRN_(K),STRN_(L),STRN_(M),STRN_(N),STRN_(O),STRN_(P),STRN_(Q),STRN_(R),STRN_(S),STRN_(T),STRN_(U),STRN_(V),STRN_(W),STRN_(X),STRN_(Y),STRN_(Z),STRN_(AA),STRN_(AB),STRN_(AC),STRN_(AD),STRN_(AE),STRN_(AF),STRN_(AG),STRN_(AH),STRN_(AI),STRN_(AJ),STRN_(AK),STRN_(AL),STRN_(AM),STRN_(AN),STRN_(AO),STRN_(AP),STRN_(AQ),STRN_(AR),STRN_(AS),STRN_(AT),STRN_(AU),STRN_(AV))
#define _49_(A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,AA,AB,AC,AD,AE,AF,AG,AH,AI,AJ,AK,AL,AM,AN,AO,AP,AQ,AR,AS,AT,AU,AV,AW) FERROR(STRN_(A),STRN_(B),STRN_(C),STRN_(D),STRN_(E),STRN_(F),STRN_(G),STRN_(H),STRN_(I),STRN_(J),STRN_(K),STRN_(L),STRN_(M),STRN_(N),STRN_(O),STRN_(P),STRN_(Q),STRN_(R),STRN_(S),STRN_(T),STRN_(U),STRN_(V),STRN_(W),STRN_(X),STRN_(Y),STRN_(Z),STRN_(AA),STRN_(AB),STRN_(AC),STRN_(AD),STRN_(AE),STRN_(AF),STRN_(AG),STRN_(AH),STRN_(AI),STRN_(AJ),STRN_(AK),STRN_(AL),STRN_(AM),STRN_(AN),STRN_(AO),STRN_(AP),STRN_(AQ),STRN_(AR),STRN_(AS),STRN_(AT),STRN_(AU),STRN_(AV),STRN_(AW))
#define _50_(A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,AA,AB,AC,AD,AE,AF,AG,AH,AI,AJ,AK,AL,AM,AN,AO,AP,AQ,AR,AS,AT,AU,AV,AW,AX) FERROR(STRN_(A),STRN_(B),STRN_(C),STRN_(D),STRN_(E),STRN_(F),STRN_(G),STRN_(H),STRN_(I),STRN_(J),STRN_(K),STRN_(L),STRN_(M),STRN_(N),STRN_(O),STRN_(P),STRN_(Q),STRN_(R),STRN_(S),STRN_(T),STRN_(U),STRN_(V),STRN_(W),STRN_(X),STRN_(Y),STRN_(Z),STRN_(AA),STRN_(AB),STRN_(AC),STRN_(AD),STRN_(AE),STRN_(AF),STRN_(AG),STRN_(AH),STRN_(AI),STRN_(AJ),STRN_(AK),STRN_(AL),STRN_(AM),STRN_(AN),STRN_(AO),STRN_(AP),STRN_(AQ),STRN_(AR),STRN_(AS),STRN_(AT),STRN_(AU),STRN_(AV),STRN_(AW),STRN_(AX))
#define _51_(A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,AA,AB,AC,AD,AE,AF,AG,AH,AI,AJ,AK,AL,AM,AN,AO,AP,AQ,AR,AS,AT,AU,AV,AW,AX,AY) FERROR(STRN_(A),STRN_(B),STRN_(C),STRN_(D),STRN_(E),STRN_(F),STRN_(G),STRN_(H),STRN_(I),STRN_(J),STRN_(K),STRN_(L),STRN_(M),STRN_(N),STRN_(O),STRN_(P),STRN_(Q),STRN_(R),STRN_(S),STRN_(T),STRN_(U),STRN_(V),STRN_(W),STRN_(X),STRN_(Y),STRN_(Z),STRN_(AA),STRN_(AB),STRN_(AC),STRN_(AD),STRN_(AE),STRN_(AF),STRN_(AG),STRN_(AH),STRN_(AI),STRN_(AJ),STRN_(AK),STRN_(AL),STRN_(AM),STRN_(AN),STRN_(AO),STRN_(AP),STRN_(AQ),STRN_(AR),STRN_(AS),STRN_(AT),STRN_(AU),STRN_(AV),STRN_(AW),STRN_(AX),STRN_(AY))
#define _52_(A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,AA,AB,AC,AD,AE,AF,AG,AH,AI,AJ,AK,AL,AM,AN,AO,AP,AQ,AR,AS,AT,AU,AV,AW,AX,AY,AZ) FERROR(STRN_(A),STRN_(B),STRN_(C),STRN_(D),STRN_(E),STRN_(F),STRN_(G),STRN_(H),STRN_(I),STRN_(J),STRN_(K),STRN_(L),STRN_(M),STRN_(N),STRN_(O),STRN_(P),STRN_(Q),STRN_(R),STRN_(S),STRN_(T),STRN_(U),STRN_(V),STRN_(W),STRN_(X),STRN_(Y),STRN_(Z),STRN_(AA),STRN_(AB),STRN_(AC),STRN_(AD),STRN_(AE),STRN_(AF),STRN_(AG),STRN_(AH),STRN_(AI),STRN_(AJ),STRN_(AK),STRN_(AL),STRN_(AM),STRN_(AN),STRN_(AO),STRN_(AP),STRN_(AQ),STRN_(AR),STRN_(AS),STRN_(AT),STRN_(AU),STRN_(AV),STRN_(AW),STRN_(AX),STRN_(AY),STRN_(AZ))
#define _53_(A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,AA,AB,AC,AD,AE,AF,AG,AH,AI,AJ,AK,AL,AM,AN,AO,AP,AQ,AR,AS,AT,AU,AV,AW,AX,AY,AZ,BA) FERROR(STRN_(A),STRN_(B),STRN_(C),STRN_(D),STRN_(E),STRN_(F),STRN_(G),STRN_(H),STRN_(I),STRN_(J),STRN_(K),STRN_(L),STRN_(M),STRN_(N),STRN_(O),STRN_(P),STRN_(Q),STRN_(R),STRN_(S),STRN_(T),STRN_(U),STRN_(V),STRN_(W),STRN_(X),STRN_(Y),STRN_(Z),STRN_(AA),STRN_(AB),STRN_(AC),STRN_(AD),STRN_(AE),STRN_(AF),STRN_(AG),STRN_(AH),STRN_(AI),STRN_(AJ),STRN_(AK),STRN_(AL),STRN_(AM),STRN_(AN),STRN_(AO),STRN_(AP),STRN_(AQ),STRN_(AR),STRN_(AS),STRN_(AT),STRN_(AU),STRN_(AV),STRN_(AW),STRN_(AX),STRN_(AY),STRN_(AZ),STRN_(BA))
#define _54_(A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,AA,AB,AC,AD,AE,AF,AG,AH,AI,AJ,AK,AL,AM,AN,AO,AP,AQ,AR,AS,AT,AU,AV,AW,AX,AY,AZ,BA,BB) FERROR(STRN_(A),STRN_(B),STRN_(C),STRN_(D),STRN_(E),STRN_(F),STRN_(G),STRN_(H),STRN_(I),STRN_(J),STRN_(K),STRN_(L),STRN_(M),STRN_(N),STRN_(O),STRN_(P),STRN_(Q),STRN_(R),STRN_(S),STRN_(T),STRN_(U),STRN_(V),STRN_(W),STRN_(X),STRN_(Y),STRN_(Z),STRN_(AA),STRN_(AB),STRN_(AC),STRN_(AD),STRN_(AE),STRN_(AF),STRN_(AG),STRN_(AH),STRN_(AI),STRN_(AJ),STRN_(AK),STRN_(AL),STRN_(AM),STRN_(AN),STRN_(AO),STRN_(AP),STRN_(AQ),STRN_(AR),STRN_(AS),STRN_(AT),STRN_(AU),STRN_(AV),STRN_(AW),STRN_(AX),STRN_(AY),STRN_(AZ),STRN_(BA),STRN_(BB))
#define _55_(A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,AA,AB,AC,AD,AE,AF,AG,AH,AI,AJ,AK,AL,AM,AN,AO,AP,AQ,AR,AS,AT,AU,AV,AW,AX,AY,AZ,BA,BB,BC) FERROR(STRN_(A),STRN_(B),STRN_(C),STRN_(D),STRN_(E),STRN_(F),STRN_(G),STRN_(H),STRN_(I),STRN_(J),STRN_(K),STRN_(L),STRN_(M),STRN_(N),STRN_(O),STRN_(P),STRN_(Q),STRN_(R),STRN_(S),STRN_(T),STRN_(U),STRN_(V),STRN_(W),STRN_(X),STRN_(Y),STRN_(Z),STRN_(AA),STRN_(AB),STRN_(AC),STRN_(AD),STRN_(AE),STRN_(AF),STRN_(AG),STRN_(AH),STRN_(AI),STRN_(AJ),STRN_(AK),STRN_(AL),STRN_(AM),STRN_(AN),STRN_(AO),STRN_(AP),STRN_(AQ),STRN_(AR),STRN_(AS),STRN_(AT),STRN_(AU),STRN_(AV),STRN_(AW),STRN_(AX),STRN_(AY),STRN_(AZ),STRN_(BA),STRN_(BB),STRN_(BC))
#define _56_(A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,AA,AB,AC,AD,AE,AF,AG,AH,AI,AJ,AK,AL,AM,AN,AO,AP,AQ,AR,AS,AT,AU,AV,AW,AX,AY,AZ,BA,BB,BC,BD) FERROR(STRN_(A),STRN_(B),STRN_(C),STRN_(D),STRN_(E),STRN_(F),STRN_(G),STRN_(H),STRN_(I),STRN_(J),STRN_(K),STRN_(L),STRN_(M),STRN_(N),STRN_(O),STRN_(P),STRN_(Q),STRN_(R),STRN_(S),STRN_(T),STRN_(U),STRN_(V),STRN_(W),STRN_(X),STRN_(Y),STRN_(Z),STRN_(AA),STRN_(AB),STRN_(AC),STRN_(AD),STRN_(AE),STRN_(AF),STRN_(AG),STRN_(AH),STRN_(AI),STRN_(AJ),STRN_(AK),STRN_(AL),STRN_(AM),STRN_(AN),STRN_(AO),STRN_(AP),STRN_(AQ),STRN_(AR),STRN_(AS),STRN_(AT),STRN_(AU),STRN_(AV),STRN_(AW),STRN_(AX),STRN_(AY),STRN_(AZ),STRN_(BA),STRN_(BB),STRN_(BC),STRN_(BD))
#define _57_(A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,AA,AB,AC,AD,AE,AF,AG,AH,AI,AJ,AK,AL,AM,AN,AO,AP,AQ,AR,AS,AT,AU,AV,AW,AX,AY,AZ,BA,BB,BC,BD,BE) FERROR(STRN_(A),STRN_(B),STRN_(C),STRN_(D),STRN_(E),STRN_(F),STRN_(G),STRN_(H),STRN_(I),STRN_(J),STRN_(K),STRN_(L),STRN_(M),STRN_(N),STRN_(O),STRN_(P),STRN_(Q),STRN_(R),STRN_(S),STRN_(T),STRN_(U),STRN_(V),STRN_(W),STRN_(X),STRN_(Y),STRN_(Z),STRN_(AA),STRN_(AB),STRN_(AC),STRN_(AD),STRN_(AE),STRN_(AF),STRN_(AG),STRN_(AH),STRN_(AI),STRN_(AJ),STRN_(AK),STRN_(AL),STRN_(AM),STRN_(AN),STRN_(AO),STRN_(AP),STRN_(AQ),STRN_(AR),STRN_(AS),STRN_(AT),STRN_(AU),STRN_(AV),STRN_(AW),STRN_(AX),STRN_(AY),STRN_(AZ),STRN_(BA),STRN_(BB),STRN_(BC),STRN_(BD),STRN_(BE))
#define _58_(A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,AA,AB,AC,AD,AE,AF,AG,AH,AI,AJ,AK,AL,AM,AN,AO,AP,AQ,AR,AS,AT,AU,AV,AW,AX,AY,AZ,BA,BB,BC,BD,BE,BF) FERROR(STRN_(A),STRN_(B),STRN_(C),STRN_(D),STRN_(E),STRN_(F),STRN_(G),STRN_(H),STRN_(I),STRN_(J),STRN_(K),STRN_(L),STRN_(M),STRN_(N),STRN_(O),STRN_(P),STRN_(Q),STRN_(R),STRN_(S),STRN_(T),STRN_(U),STRN_(V),STRN_(W),STRN_(X),STRN_(Y),STRN_(Z),STRN_(AA),STRN_(AB),STRN_(AC),STRN_(AD),STRN_(AE),STRN_(AF),STRN_(AG),STRN_(AH),STRN_(AI),STRN_(AJ),STRN_(AK),STRN_(AL),STRN_(AM),STRN_(AN),STRN_(AO),STRN_(AP),STRN_(AQ),STRN_(AR),STRN_(AS),STRN_(AT),STRN_(AU),STRN_(AV),STRN_(AW),STRN_(AX),STRN_(AY),STRN_(AZ),STRN_(BA),STRN_(BB),STRN_(BC),STRN_(BD),STRN_(BE),STRN_(BF))
#define _59_(A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,AA,AB,AC,AD,AE,AF,AG,AH,AI,AJ,AK,AL,AM,AN,AO,AP,AQ,AR,AS,AT,AU,AV,AW,AX,AY,AZ,BA,BB,BC,BD,BE,BF,BG) FERROR(STRN_(A),STRN_(B),STRN_(C),STRN_(D),STRN_(E),STRN_(F),STRN_(G),STRN_(H),STRN_(I),STRN_(J),STRN_(K),STRN_(L),STRN_(M),STRN_(N),STRN_(O),STRN_(P),STRN_(Q),STRN_(R),STRN_(S),STRN_(T),STRN_(U),STRN_(V),STRN_(W),STRN_(X),STRN_(Y),STRN_(Z),STRN_(AA),STRN_(AB),STRN_(AC),STRN_(AD),STRN_(AE),STRN_(AF),STRN_(AG),STRN_(AH),STRN_(AI),STRN_(AJ),STRN_(AK),STRN_(AL),STRN_(AM),STRN_(AN),STRN_(AO),STRN_(AP),STRN_(AQ),STRN_(AR),STRN_(AS),STRN_(AT),STRN_(AU),STRN_(AV),STRN_(AW),STRN_(AX),STRN_(AY),STRN_(AZ),STRN_(BA),STRN_(BB),STRN_(BC),STRN_(BD),STRN_(BE),STRN_(BF),STRN_(BG))
#define _60_(A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,AA,AB,AC,AD,AE,AF,AG,AH,AI,AJ,AK,AL,AM,AN,AO,AP,AQ,AR,AS,AT,AU,AV,AW,AX,AY,AZ,BA,BB,BC,BD,BE,BF,BG,BH) FERROR(STRN_(A),STRN_(B),STRN_(C),STRN_(D),STRN_(E),STRN_(F),STRN_(G),STRN_(H),STRN_(I),STRN_(J),STRN_(K),STRN_(L),STRN_(M),STRN_(N),STRN_(O),STRN_(P),STRN_(Q),STRN_(R),STRN_(S),STRN_(T),STRN_(U),STRN_(V),STRN_(W),STRN_(X),STRN_(Y),STRN_(Z),STRN_(AA),STRN_(AB),STRN_(AC),STRN_(AD),STRN_(AE),STRN_(AF),STRN_(AG),STRN_(AH),STRN_(AI),STRN_(AJ),STRN_(AK),STRN_(AL),STRN_(AM),STRN_(AN),STRN_(AO),STRN_(AP),STRN_(AQ),STRN_(AR),STRN_(AS),STRN_(AT),STRN_(AU),STRN_(AV),STRN_(AW),STRN_(AX),STRN_(AY),STRN_(AZ),STRN_(BA),STRN_(BB),STRN_(BC),STRN_(BD),STRN_(BE),STRN_(BF),STRN_(BG),STRN_(BH))
#define _61_(A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,AA,AB,AC,AD,AE,AF,AG,AH,AI,AJ,AK,AL,AM,AN,AO,AP,AQ,AR,AS,AT,AU,AV,AW,AX,AY,AZ,BA,BB,BC,BD,BE,BF,BG,BH,BI) FERROR(STRN_(A),STRN_(B),STRN_(C),STRN_(D),STRN_(E),STRN_(F),STRN_(G),STRN_(H),STRN_(I),STRN_(J),STRN_(K),STRN_(L),STRN_(M),STRN_(N),STRN_(O),STRN_(P),STRN_(Q),STRN_(R),STRN_(S),STRN_(T),STRN_(U),STRN_(V),STRN_(W),STRN_(X),STRN_(Y),STRN_(Z),STRN_(AA),STRN_(AB),STRN_(AC),STRN_(AD),STRN_(AE),STRN_(AF),STRN_(AG),STRN_(AH),STRN_(AI),STRN_(AJ),STRN_(AK),STRN_(AL),STRN_(AM),STRN_(AN),STRN_(AO),STRN_(AP),STRN_(AQ),STRN_(AR),STRN_(AS),STRN_(AT),STRN_(AU),STRN_(AV),STRN_(AW),STRN_(AX),STRN_(AY),STRN_(AZ),STRN_(BA),STRN_(BB),STRN_(BC),STRN_(BD),STRN_(BE),STRN_(BF),STRN_(BG),STRN_(BH),STRN_(BI))
#define _62_(A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,AA,AB,AC,AD,AE,AF,AG,AH,AI,AJ,AK,AL,AM,AN,AO,AP,AQ,AR,AS,AT,AU,AV,AW,AX,AY,AZ,BA,BB,BC,BD,BE,BF,BG,BH,BI,BJ) FERROR(STRN_(A),STRN_(B),STRN_(C),STRN_(D),STRN_(E),STRN_(F),STRN_(G),STRN_(H),STRN_(I),STRN_(J),STRN_(K),STRN_(L),STRN_(M),STRN_(N),STRN_(O),STRN_(P),STRN_(Q),STRN_(R),STRN_(S),STRN_(T),STRN_(U),STRN_(V),STRN_(W),STRN_(X),STRN_(Y),STRN_(Z),STRN_(AA),STRN_(AB),STRN_(AC),STRN_(AD),STRN_(AE),STRN_(AF),STRN_(AG),STRN_(AH),STRN_(AI),STRN_(AJ),STRN_(AK),STRN_(AL),STRN_(AM),STRN_(AN),STRN_(AO),STRN_(AP),STRN_(AQ),STRN_(AR),STRN_(AS),STRN_(AT),STRN_(AU),STRN_(AV),STRN_(AW),STRN_(AX),STRN_(AY),STRN_(AZ),STRN_(BA),STRN_(BB),STRN_(BC),STRN_(BD),STRN_(BE),STRN_(BF),STRN_(BG),STRN_(BH),STRN_(BI),STRN_(BJ))
#define _63_(A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,AA,AB,AC,AD,AE,AF,AG,AH,AI,AJ,AK,AL,AM,AN,AO,AP,AQ,AR,AS,AT,AU,AV,AW,AX,AY,AZ,BA,BB,BC,BD,BE,BF,BG,BH,BI,BJ,BK) FERROR(STRN_(A),STRN_(B),STRN_(C),STRN_(D),STRN_(E),STRN_(F),STRN_(G),STRN_(H),STRN_(I),STRN_(J),STRN_(K),STRN_(L),STRN_(M),STRN_(N),STRN_(O),STRN_(P),STRN_(Q),STRN_(R),STRN_(S),STRN_(T),STRN_(U),STRN_(V),STRN_(W),STRN_(X),STRN_(Y),STRN_(Z),STRN_(AA),STRN_(AB),STRN_(AC),STRN_(AD),STRN_(AE),STRN_(AF),STRN_(AG),STRN_(AH),STRN_(AI),STRN_(AJ),STRN_(AK),STRN_(AL),STRN_(AM),STRN_(AN),STRN_(AO),STRN_(AP),STRN_(AQ),STRN_(AR),STRN_(AS),STRN_(AT),STRN_(AU),STRN_(AV),STRN_(AW),STRN_(AX),STRN_(AY),STRN_(AZ),STRN_(BA),STRN_(BB),STRN_(BC),STRN_(BD),STRN_(BE),STRN_(BF),STRN_(BG),STRN_(BH),STRN_(BI),STRN_(BJ),STRN_(BK))
template <typename T>
char *STRN_(T in)
{
    std::stringstream ret;
    ret<<in;
    const char *r=ret.str().c_str();
    char *returnvalue=new char[ret.str().length()];
    for (int i=0; i<ret.str().length(); i++)
    {
        returnvalue[i]=r[i];
    }
    delete [] r;
    return returnvalue;
}
static FILE *fERROR=fopen("ERROR.txt", "w");
static FILE *fEXIT=fopen("EXIT.txt", "w");
char *space=" ";
void FERROR(char *A=space,char *B=space,char *C=space,char *D=space,char *E=space,char *F=space,char *G=space,char *H=space,char *I=space,char *J=space,char *K=space,char *L=space,char *M=space,char *N=space,char *O=space,char *P=space,char *Q=space,char *R=space,char *S=space,char *T=space,char *U=space,char *V=space,char *W=space,char *X=space,char *Y=space,char *Z=space,char *AA=space,char *AB=space,char *AC=space,char *AD=space,char *AE=space,char *AF=space,char *AG=space,char *AH=space,char *AI=space,char *AJ=space,char *AK=space,char *AL=space,char *AM=space,char *AN=space,char *AO=space,char *AP=space,char *AQ=space,char *AR=space,char *AS=space,char *AT=space,char *AU=space,char *AV=space,char *AW=space,char *AX=space,char *AY=space,char *AZ=space,char *BA=space,char *BB=space,char *BC=space,char *BD=space,char *BE=space,char *BF=space,char *BG=space,char *BH=space,char *BI=space,char *BJ=space,char *BK=space)
{
    fprintf(fERROR,"ERROR:\n\tAT LINE: %s\n\tIN FILE: %s\n\tMESSAGE: %s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s", STRN_(__LINE__), STRN_(__FILE__), A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,AA,AB,AC,AD,AE,AF,AG,AH,AI,AJ,AK,AL,AM,AN,AO,AP,AQ,AR,AS,AT,AU,AV,AW,AX,AY,AZ,BA,BB,BC,BD,BE,BF,BG,BH,BI,BJ,BK);
    fclose(fERROR);
    fclose(fEXIT);
    exit(-1);
}

The problem is that when I call ERROR(somestuff), I get an error: FERROR(<THE INSANELY LONG FUNCTION DEFINITION>) but the definition of FERROR is so long that it overruns the error report width and I cannot see what the problem is. Can anybody see what the problem is?

Line 210 causes a crash, you should never delete a pointer that you didn't allocate yourself. Especially in this case. The pointer returned by str().c_str() is not a pointer that you can delete (the string object will take care of that).

This must be the craziest code I have ever seen. You have some real patience, writing all that repetitive stuff out.

I hate to say this, but your MACROs have reserved words for name. All identifiers, including MACROs, can start with (almost) any character except the underscore character, these are reserved by the C++ standard for implementation-specific needs (meaning that you should not be using any names starting with _ character, that's illegal). Furthermore, the names _1, _2, _3 ... are used by Boost.Bind/Lambda libraries and will soon also be reserved keywords in the upcoming C++0x standard, so you definitely cannot use those.

If I were you, I would save myself all this trouble of writing this ERROR function and just use the variadic template feature of the upcoming standard (you can set the compiler to use its draft-version compatibility (gcc: "-std=c++0x" or "-std=gnu++0x") for now until the standard is officially released). Using variadic templates, you can achieve the same result as your code with the following:

#include <iostream>
#include <fstream>

namespace detail {

template <typename T, typename... Args>
void FERROR(std::ostream& out, T value, Args... args) {
  out << value;
  FERROR(out,args...);
};

};

template <typename... Args>
void FERROR(const char* sourcefile, int sourceline, Args... args) {
  std::ofstream fERROR("ERROR.txt");
  fERROR << "ERROR:\n\tAT LINE: " << sourceline << "\n\tIN FILE: " << sourcefile << "\n\tMESSAGE: ";
  detail::FERROR(fERROR, args...);
  exit(-1);
};

int main() {
  //oops, an error occurred:
  FERROR(__FILE__,__LINE__,"Hello World! ",42,"foo",5.04);
};

BTW, in the code you have, the __FILE__ and __LINE__ should appear in a MACRO or at the line where the error is called, not inside the function. As you have it, your code will report all errors to be in the FERROR function, not in the original place where the error was reported.

Personally, I just use the following for this kind of error reporting:

#define ERROR(X) std::cout << RELATIVE_PATH(__FILE__) << ":" << __LINE__ << " Error: " << X << std::endl

//then use it as such:
int main() {
  //oops, an error occurred:
  ERROR("Hello World! " << 42 << "foo" << 5.04);
};

Thanks, the ellipses in template would be perfect, but I don't understand what I need to do to implement it. I am using Code::Blocks v8.[something] how do I let it use the variadic templates.

P.S.: The repetitive code is a result of a chemistry class with no teacher, but we still had to sit at our desks and 'work' on our laptops :P

Code.Blocks uses the GCC compiler (with MinGW). GCC supports variadic templates from version 4.4 up to the current version (4.6.0, experimental). To enable them, you have to compile your code with the compiler flag "-std=gnu++0x", this enables the support in GCC for the draft-version of the upcoming C++ standard, called C++0x. You can verify the version of your compiler either through some menu in Code.Blocks or by finding the installation directory of MinGW and executing "gcc --version". If it is greater than or equal to 4.4, which it should if you have the latest Code.Blocks version (which comes with 4.4), then you go to "build options.." and add to the compiler flags: "-std=gnu++0x" (without the quotes). By trying to compile the code I posted, you can verify that it works.

Ok, thank you, it is working preliminarily now (i decided not to use C++0x just yet, especially since I did not want to delete all those lines of code). The only thing missing is the RELATIVE_PATH macro that you used. I assumed that it was a predefined macro, but it isn't. What do I have to define RELATIVE_PATH as?

Oh, RELATIVE_PATH is actually not really a MACRO, nor is it predefined. There are usually compiler options to make __FILE__ give just the filename or fullpath (I think that MSVC uses "/FC" and "/ZI" for that, there is probably something similar in GCC). The ERROR macro that I posted was taken from my own code and in my code, all the source files are under a single top-level folder, so I use this RELATIVE_PATH function to parse the __FILE__ string to look for that top-level folder name and output everything after that folder from the full-path. Here is the code for it (my top-level folder is called "ReaK"):

/**
 * This function will convert an absolute path that goes through a folder named "ReaK" and
 * return a the path relative to that ReaK trunk folder.
 *
 * \param S Some string containing a full file/folder path.
 * \return string containing the file/folder path relative to the ReaK trunk folder.
 */
inline std::string RK_RELATIVE_PATH(const std::string& S) {
  for(unsigned int i=0;i + 5 < S.size();++i)
    if(S.substr(i,4) == "ReaK")
      return S.substr(i+4);
  return S;
};

Thank you for the help! :)

Be a part of the DaniWeb community

We're a friendly, industry-focused community of developers, IT pros, digital marketers, and technology enthusiasts meeting, networking, learning, and sharing knowledge.