true	true
b
true	true
true	true	c
--f, n, table.unpack(t)	func.1	0
true	0	0	0
--f, n, table.unpack(t)	func.1	0	1
true	1	1	1
--f, n, table.unpack(t)	func.1	0	1	2
true	1	3	3
--f, n, table.unpack(t)	func.1	0	1	2	3
true	1	3	6
--f, n, table.unpack(t)	func.1	0	1	2	3	4
true	1	3	6
--f, n, table.unpack(t)	func.1	1
true	0	0	0
--f, n, table.unpack(t)	func.1	1	1
true	1	2	3
--f, n, table.unpack(t)	func.1	1	1	2
true	1	4	7
--f, n, table.unpack(t)	func.1	1	1	2	3
true	1	4	10
--f, n, table.unpack(t)	func.1	1	1	2	3	4
true	1	4	10
--f, n, table.unpack(t)	func.1	2
true	0	0	0
--f, n, table.unpack(t)	func.1	2	1
true	1	3	6
--f, n, table.unpack(t)	func.1	2	1	2
true	1	5	12
--f, n, table.unpack(t)	func.1	2	1	2	3
true	1	5	15
--f, n, table.unpack(t)	func.1	2	1	2	3	4
true	1	5	15
--f, n, table.unpack(t)	func.1	3
true	0	0	0
--f, n, table.unpack(t)	func.1	3	1
true	1	4	10
--f, n, table.unpack(t)	func.1	3	1	2
true	1	6	18
--f, n, table.unpack(t)	func.1	3	1	2	3
true	1	6	21
--f, n, table.unpack(t)	func.1	3	1	2	3	4
true	1	6	21
--f, n, table.unpack(t)	func.2	0
 --f2, n<=0, returning sum(...)
true	0
--f, n, table.unpack(t)	func.2	0	1
 --f2, n<=0, returning sum(...)	1
true	1
--f, n, table.unpack(t)	func.2	0	1	2
 --f2, n<=0, returning sum(...)	1	2
true	3
--f, n, table.unpack(t)	func.2	0	1	2	3
 --f2, n<=0, returning sum(...)	1	2	3
true	6
--f, n, table.unpack(t)	func.2	0	1	2	3	4
 --f2, n<=0, returning sum(...)	1	2	3	4
true	10
--f, n, table.unpack(t)	func.2	1
 --f2, n>0, returning f2(n-1,n,...)	0	1
 --f2, n<=0, returning sum(...)	1
true	1
--f, n, table.unpack(t)	func.2	1	1
 --f2, n>0, returning f2(n-1,n,...)	0	1	1
 --f2, n<=0, returning sum(...)	1	1
true	2
--f, n, table.unpack(t)	func.2	1	1	2
 --f2, n>0, returning f2(n-1,n,...)	0	1	1	2
 --f2, n<=0, returning sum(...)	1	1	2
true	4
--f, n, table.unpack(t)	func.2	1	1	2	3
 --f2, n>0, returning f2(n-1,n,...)	0	1	1	2	3
 --f2, n<=0, returning sum(...)	1	1	2	3
true	7
--f, n, table.unpack(t)	func.2	1	1	2	3	4
 --f2, n>0, returning f2(n-1,n,...)	0	1	1	2	3	4
 --f2, n<=0, returning sum(...)	1	1	2	3	4
true	11
--f, n, table.unpack(t)	func.2	2
 --f2, n>0, returning f2(n-1,n,...)	1	2
 --f2, n>0, returning f2(n-1,n,...)	0	1	2
 --f2, n<=0, returning sum(...)	1	2
true	3
--f, n, table.unpack(t)	func.2	2	1
 --f2, n>0, returning f2(n-1,n,...)	1	2	1
 --f2, n>0, returning f2(n-1,n,...)	0	1	2	1
 --f2, n<=0, returning sum(...)	1	2	1
true	4
--f, n, table.unpack(t)	func.2	2	1	2
 --f2, n>0, returning f2(n-1,n,...)	1	2	1	2
 --f2, n>0, returning f2(n-1,n,...)	0	1	2	1	2
 --f2, n<=0, returning sum(...)	1	2	1	2
true	6
--f, n, table.unpack(t)	func.2	2	1	2	3
 --f2, n>0, returning f2(n-1,n,...)	1	2	1	2	3
 --f2, n>0, returning f2(n-1,n,...)	0	1	2	1	2	3
 --f2, n<=0, returning sum(...)	1	2	1	2	3
true	9
--f, n, table.unpack(t)	func.2	2	1	2	3	4
 --f2, n>0, returning f2(n-1,n,...)	1	2	1	2	3	4
 --f2, n>0, returning f2(n-1,n,...)	0	1	2	1	2	3	4
 --f2, n<=0, returning sum(...)	1	2	1	2	3	4
true	13
--f, n, table.unpack(t)	func.2	3
 --f2, n>0, returning f2(n-1,n,...)	2	3
 --f2, n>0, returning f2(n-1,n,...)	1	2	3
 --f2, n>0, returning f2(n-1,n,...)	0	1	2	3
 --f2, n<=0, returning sum(...)	1	2	3
true	6
--f, n, table.unpack(t)	func.2	3	1
 --f2, n>0, returning f2(n-1,n,...)	2	3	1
 --f2, n>0, returning f2(n-1,n,...)	1	2	3	1
 --f2, n>0, returning f2(n-1,n,...)	0	1	2	3	1
 --f2, n<=0, returning sum(...)	1	2	3	1
true	7
--f, n, table.unpack(t)	func.2	3	1	2
 --f2, n>0, returning f2(n-1,n,...)	2	3	1	2
 --f2, n>0, returning f2(n-1,n,...)	1	2	3	1	2
 --f2, n>0, returning f2(n-1,n,...)	0	1	2	3	1	2
 --f2, n<=0, returning sum(...)	1	2	3	1	2
true	9
--f, n, table.unpack(t)	func.2	3	1	2	3
 --f2, n>0, returning f2(n-1,n,...)	2	3	1	2	3
 --f2, n>0, returning f2(n-1,n,...)	1	2	3	1	2	3
 --f2, n>0, returning f2(n-1,n,...)	0	1	2	3	1	2	3
 --f2, n<=0, returning sum(...)	1	2	3	1	2	3
true	12
--f, n, table.unpack(t)	func.2	3	1	2	3	4
 --f2, n>0, returning f2(n-1,n,...)	2	3	1	2	3	4
 --f2, n>0, returning f2(n-1,n,...)	1	2	3	1	2	3	4
 --f2, n>0, returning f2(n-1,n,...)	0	1	2	3	1	2	3	4
 --f2, n<=0, returning sum(...)	1	2	3	1	2	3	4
true	16
--f, n, table.unpack(t)	func.3	0
true	0
--f, n, table.unpack(t)	func.3	0	1
true	1
--f, n, table.unpack(t)	func.3	0	1	2
true	3
--f, n, table.unpack(t)	func.3	0	1	2	3
true	6
--f, n, table.unpack(t)	func.3	0	1	2	3	4
true	10
--f, n, table.unpack(t)	func.3	1
    f3,n-1,n,...	func.3	0	1
true	true	1
--f, n, table.unpack(t)	func.3	1	1
    f3,n-1,n,...	func.3	0	1	1
true	true	2
--f, n, table.unpack(t)	func.3	1	1	2
    f3,n-1,n,...	func.3	0	1	1	2
true	true	4
--f, n, table.unpack(t)	func.3	1	1	2	3
    f3,n-1,n,...	func.3	0	1	1	2	3
true	true	7
--f, n, table.unpack(t)	func.3	1	1	2	3	4
    f3,n-1,n,...	func.3	0	1	1	2	3	4
true	true	11
--f, n, table.unpack(t)	func.3	2
    f3,n-1,n,...	func.3	1	2
    f3,n-1,n,...	func.3	0	1	2
true	true	true	3
--f, n, table.unpack(t)	func.3	2	1
    f3,n-1,n,...	func.3	1	2	1
    f3,n-1,n,...	func.3	0	1	2	1
true	true	true	4
--f, n, table.unpack(t)	func.3	2	1	2
    f3,n-1,n,...	func.3	1	2	1	2
    f3,n-1,n,...	func.3	0	1	2	1	2
true	true	true	6
--f, n, table.unpack(t)	func.3	2	1	2	3
    f3,n-1,n,...	func.3	1	2	1	2	3
    f3,n-1,n,...	func.3	0	1	2	1	2	3
true	true	true	9
--f, n, table.unpack(t)	func.3	2	1	2	3	4
    f3,n-1,n,...	func.3	1	2	1	2	3	4
    f3,n-1,n,...	func.3	0	1	2	1	2	3	4
true	true	true	13
--f, n, table.unpack(t)	func.3	3
    f3,n-1,n,...	func.3	2	3
    f3,n-1,n,...	func.3	1	2	3
    f3,n-1,n,...	func.3	0	1	2	3
true	true	true	true	6
--f, n, table.unpack(t)	func.3	3	1
    f3,n-1,n,...	func.3	2	3	1
    f3,n-1,n,...	func.3	1	2	3	1
    f3,n-1,n,...	func.3	0	1	2	3	1
true	true	true	true	7
--f, n, table.unpack(t)	func.3	3	1	2
    f3,n-1,n,...	func.3	2	3	1	2
    f3,n-1,n,...	func.3	1	2	3	1	2
    f3,n-1,n,...	func.3	0	1	2	3	1	2
true	true	true	true	9
--f, n, table.unpack(t)	func.3	3	1	2	3
    f3,n-1,n,...	func.3	2	3	1	2	3
    f3,n-1,n,...	func.3	1	2	3	1	2	3
    f3,n-1,n,...	func.3	0	1	2	3	1	2	3
true	true	true	true	12
--f, n, table.unpack(t)	func.3	3	1	2	3	4
    f3,n-1,n,...	func.3	2	3	1	2	3	4
    f3,n-1,n,...	func.3	1	2	3	1	2	3	4
    f3,n-1,n,...	func.3	0	1	2	3	1	2	3	4
true	true	true	true	16
120
120
1234
true	832040
true	832040
true	inf
1	1	2	3	5	8	13	21	34
