// File: /workspace/github_cpp_makefile_star2_O3/whitefusion[P]Jaipur_cardgame-/AllTokens.cpp
// Function: All_Tokens::printTokens()
void All_Tokens::printTokens(){
    int i, c, row, ts, tf;
    cout << ">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>TOKENS<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<" << endl;
 //   cout << "============================================================================================================================================================================================" << endl;
    // output the first four types of tokens: diamond, gold, silver, leather

    for (row = 0; row < 2; ++row){
        if (row == 0){
            ts = 0;  
            tf = 4;
        }
        else {
            ts = 4;
            tf = 7;
        }
        for (i = ts; i < tf; ++i){
            cout << "  "; 
            for(c = 0; c < getSize(i+1)-1; ++c)
                cout << "  * *";
            if (getSize(i+1) > 0){
                cout << "  * * *";
                cout << "           ";
            }
        }
        cout << endl;

        for (i = ts; i < tf; ++i){
            cout << "  ";
            for (c = 0; c < getSize(i+1)-1; ++c)
                cout << "*    ";
            if (getSize(i+1) > 0){
                cout << "*       *";
                cout << "         ";
            }
        }
        cout << endl;

        for (i = ts; i < tf; ++i){
            cout << " ";
            for (c = 0; c < getSize(i+1)-1; ++c)
                cout << allTokens.at(i).at(c).getVal() << "    ";
            if (getSize(i+1) > 0){
                if (i == 1)
                    cout << "*  " << allTokens.at(i).at(c).getType() << "   *";
                else 
                    cout << "*  " << allTokens.at(i).at(c).getType() << "  *";
                cout << "        ";
            }
            else
                cout << " ";
        }
        cout << endl;

        for (i = ts; i < tf; ++i){
            cout << " ";
            for (c = 0; c < getSize(i+1)-1; ++c)
                cout << "*    ";
            if (getSize(i+1) > 0){
                cout << "*   -" << allTokens.at(i).at(c).getVal() << "-   *";
                cout << "        ";
            }
            else
                cout << " ";
        }
        cout << endl;

        for (i = ts; i < tf; ++i){
            cout << "  ";
            for (c = 0; c < getSize(i+1)-1; ++c)
                cout << "*    ";
            if (getSize(i+1) > 0){
                cout << "*       *";
                cout << "         ";
            }
        }
        cout << endl;

        for (i = ts; i < tf; ++i){
            cout << "  "; 
            for(c = 0; c < getSize(i+1)-1; ++c)
                cout << "  * *";
            if (getSize(i+1) > 0){
                cout << "  * * *";
                cout << "           ";
            }
        }
        cout << endl;
    }

//    cout << "============================================================================================================================================================================================" << endl;
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x48, %rsp
movq %rdi, %rbx
movq 0x10928(%rip), %r14     # 0x15fd0
leaq 0xab81(%rip), %rsi      # 0x10230
movl $0xbc, %edx
movq %r14, %rdi
callq 0x21d0
movq (%r14), %rax
movq -0x18(%rax), %rdi
addq %r14, %rdi
movl $0xa, %esi
callq 0x2180
movsbl %al, %esi
movq %r14, %rdi
callq 0x2030
movq %rax, %rdi
callq 0x20f0
movb $0x1, %al
leaq 0xac01(%rip), %r12      # 0x102ed
movl %eax, 0x38(%rsp)
notb %al
movzbl %al, %eax
andl $0x1, %eax
leal (%rax,%rax,2), %r13d
addl $0x4, %r13d
movl %eax, %ebp
shll $0x2, %ebp
movl %ebp, 0xc(%rsp)
movl $0x2, %edx
movq %r14, %rdi
leaq 0xabec(%rip), %rsi      # 0x10304
callq 0x21d0
incl %ebp
movq %rbx, %rdi
movl %ebp, %esi
callq 0x5462
cmpl $0x2, %eax
jl 0x5755
xorl %r15d, %r15d
movl $0x5, %edx
movq %r14, %rdi
movq %r12, %rsi
callq 0x21d0
incl %r15d
movq %rbx, %rdi
movl %ebp, %esi
callq 0x5462
decl %eax
cmpl %eax, %r15d
jl 0x5731
movq %rbx, %rdi
movl %ebp, %esi
callq 0x5462
testl %eax, %eax
jle 0x578b
movl $0x7, %edx
movq %r14, %rdi
leaq 0xab81(%rip), %rsi      # 0x102f3
callq 0x21d0
movl $0xb, %edx
movq %r14, %rdi
leaq 0xab75(%rip), %rsi      # 0x102fb
callq 0x21d0
cmpl %r13d, %ebp
jb 0x5709
movq (%r14), %rax
movq -0x18(%rax), %rdi
addq %r14, %rdi
movl $0xa, %esi
callq 0x2180
movsbl %al, %esi
movq %r14, %rdi
callq 0x2030
movq %rax, %rdi
callq 0x20f0
movl 0xc(%rsp), %ebp
movl $0x2, %edx
movq %r14, %rdi
leaq 0xab36(%rip), %rsi      # 0x10304
callq 0x21d0
incl %ebp
movq %rbx, %rdi
movl %ebp, %esi
callq 0x5462
cmpl $0x2, %eax
leaq 0xab1e(%rip), %r12      # 0x10307
jl 0x5812
xorl %r15d, %r15d
movl $0x5, %edx
movq %r14, %rdi
movq %r12, %rsi
callq 0x21d0
incl %r15d
movq %rbx, %rdi
movl %ebp, %esi
callq 0x5462
decl %eax
cmpl %eax, %r15d
jl 0x57ee
movq %rbx, %rdi
movl %ebp, %esi
callq 0x5462
testl %eax, %eax
jle 0x5848
movl $0x9, %edx
movq %r14, %rdi
leaq 0xaade(%rip), %rsi      # 0x1030d
callq 0x21d0
movl $0x9, %edx
movq %r14, %rdi
leaq 0xaaba(%rip), %rsi      # 0x102fd
callq 0x21d0
cmpl %r13d, %ebp
jb 0x57bf
movq (%r14), %rax
movq -0x18(%rax), %rdi
addq %r14, %rdi
movl $0xa, %esi
callq 0x2180
movsbl %al, %esi
movq %r14, %rdi
callq 0x2030
movq %rax, %rdi
callq 0x20f0
movl 0xc(%rsp), %ebp
movl %r13d, %eax
movq %rax, 0x40(%rsp)
movq %rbp, 0x30(%rsp)
movl %r13d, 0x3c(%rsp)
movl $0x1, %edx
movq %r14, %rdi
leaq 0xaa68(%rip), %rsi      # 0x10305
callq 0x21d0
leaq 0x1(%rbp), %r15
movq %rbx, %rdi
movl %r15d, %esi
callq 0x5462
cmpl $0x2, %eax
jl 0x595e
xorl %r13d, %r13d
xorl %r12d, %r12d
movq (%rbx), %rax
movq 0x8(%rbx), %rdx
subq %rax, %rdx
sarq $0x3, %rdx
movabsq $-0x5555555555555555, %rcx # imm = 0xAAAAAAAAAAAAAAAB
imulq %rcx, %rdx
cmpq %rbp, %rdx
jbe 0x5e31
leaq (,%rbp,2), %rcx
addq %rbp, %rcx
movq (%rax,%rcx,8), %rdi
movq 0x8(%rax,%rcx,8), %rdx
subq %rdi, %rdx
sarq $0x3, %rdx
movabsq $-0x3333333333333333, %rax # imm = 0xCCCCCCCCCCCCCCCD
imulq %rax, %rdx
cmpq %r12, %rdx
jbe 0x5e25
addq %r13, %rdi
callq 0x4384
movq %r14, %rdi
movl %eax, %esi
callq 0x2270
movl $0x4, %edx
movq %rax, %rdi
leaq 0xa9ca(%rip), %rsi      # 0x10302
callq 0x21d0
incq %r12
movq %rbx, %rdi
movl %r15d, %esi
callq 0x5462
decl %eax
cltq
addq $0x28, %r13
cmpq %rax, %r12
jl 0x58c0
jmp 0x5961
xorl %r12d, %r12d
movq %rbx, %rdi
movl %r15d, %esi
callq 0x5462
testl %eax, %eax
jle 0x5a1b
movl $0x3, %edx
movq %r14, %rdi
leaq 0xa994(%rip), %rsi      # 0x10317
callq 0x21d0
cmpq $0x1, %rbp
jne 0x5a2f
movq (%rbx), %rax
movq 0x8(%rbx), %rdx
subq %rax, %rdx
sarq $0x3, %rdx
movabsq $-0x5555555555555555, %rcx # imm = 0xAAAAAAAAAAAAAAAB
imulq %rcx, %rdx
cmpq $0x1, %rdx
jbe 0x5e4b
movq 0x18(%rax), %rcx
movq 0x20(%rax), %rdx
subq %rcx, %rdx
sarq $0x3, %rdx
movabsq $-0x3333333333333333, %rax # imm = 0xCCCCCCCCCCCCCCCD
imulq %rax, %rdx
cmpq %r12, %rdx
jbe 0x5e25
leaq (%r12,%r12,4), %rax
leaq (%rcx,%rax,8), %rsi
leaq 0x10(%rsp), %rdi
callq 0x4362
movq 0x10(%rsp), %rsi
movq 0x18(%rsp), %rdx
movq %r14, %rdi
callq 0x21d0
movl $0x4, %edx
movq %rax, %rdi
leaq 0xab60(%rip), %rsi      # 0x10571
callq 0x21d0
jmp 0x5abe
movl $0x1, %edx
movq %r14, %rdi
leaq 0xa8db(%rip), %rsi      # 0x10305
jmp 0x5ae9
movq (%rbx), %rax
movq 0x8(%rbx), %rdx
subq %rax, %rdx
sarq $0x3, %rdx
movabsq $-0x5555555555555555, %rcx # imm = 0xAAAAAAAAAAAAAAAB
imulq %rcx, %rdx
cmpq %rbp, %rdx
jbe 0x5e31
leaq (,%rbp,2), %rdx
addq %rbp, %rdx
movq (%rax,%rdx,8), %rcx
movq 0x8(%rax,%rdx,8), %rdx
subq %rcx, %rdx
sarq $0x3, %rdx
movabsq $-0x3333333333333333, %rax # imm = 0xCCCCCCCCCCCCCCCD
imulq %rax, %rdx
cmpq %r12, %rdx
jbe 0x5e25
leaq (%r12,%r12,4), %rax
leaq (%rcx,%rax,8), %rsi
leaq 0x10(%rsp), %rdi
callq 0x4362
movq 0x10(%rsp), %rsi
movq 0x18(%rsp), %rdx
movq %r14, %rdi
callq 0x21d0
movl $0x3, %edx
movq %rax, %rdi
leaq 0xaab9(%rip), %rsi      # 0x10572
callq 0x21d0
movq 0x10(%rsp), %rdi
leaq 0x20(%rsp), %rax
cmpq %rax, %rdi
je 0x5ada
movq 0x20(%rsp), %rsi
incq %rsi
callq 0x21a0
movl $0x8, %edx
movq %r14, %rdi
leaq 0xa815(%rip), %rsi      # 0x102fe
callq 0x21d0
movq %r15, %rbp
cmpq 0x40(%rsp), %r15
jb 0x588e
movq (%r14), %rax
movq -0x18(%rax), %rdi
addq %r14, %rdi
movl $0xa, %esi
callq 0x2180
movsbl %al, %esi
movq %r14, %rdi
callq 0x2030
movq %rax, %rdi
callq 0x20f0
leaq 0xa7dd(%rip), %rbp      # 0x10307
movq 0x30(%rsp), %r13
movl $0x1, %edx
movq %r14, %rdi
leaq 0xa7c7(%rip), %rsi      # 0x10305
callq 0x21d0
movq %r13, 0x30(%rsp)
leaq 0x1(%r13), %r15
movq %rbx, %rdi
movl %r15d, %esi
callq 0x5462
xorl %r12d, %r12d
cmpl $0x2, %eax
jl 0x5b84
movl $0x5, %edx
movq %r14, %rdi
movq %rbp, %rsi
callq 0x21d0
movq %rbx, %rdi
movl %r15d, %esi
callq 0x5462
decl %eax
incq %r12
cmpl %eax, %r12d
jl 0x5b5f
movq %rbx, %rdi
movl %r15d, %esi
callq 0x5462
testl %eax, %eax
jle 0x5c3c
movl $0x5, %edx
movq %r14, %rdi
leaq 0xa775(%rip), %rsi      # 0x1031b
callq 0x21d0
movq (%rbx), %rax
movq 0x8(%rbx), %rdx
subq %rax, %rdx
sarq $0x3, %rdx
movabsq $-0x5555555555555555, %rcx # imm = 0xAAAAAAAAAAAAAAAB
imulq %rcx, %rdx
movq 0x30(%rsp), %rsi
cmpq %rsi, %rdx
jbe 0x5e42
leaq (%rsi,%rsi,2), %rdx
movq (%rax,%rdx,8), %rcx
movq 0x8(%rax,%rdx,8), %rdx
subq %rcx, %rdx
sarq $0x3, %rdx
movabsq $-0x3333333333333333, %rax # imm = 0xCCCCCCCCCCCCCCCD
imulq %rax, %rdx
cmpq %r12, %rdx
jbe 0x5e25
leaq (%r12,%r12,4), %rax
leaq (%rcx,%rax,8), %rdi
callq 0x4384
movq %r14, %rdi
movl %eax, %esi
callq 0x2270
movl $0x5, %edx
movq %rax, %rdi
leaq 0xa6fb(%rip), %rsi      # 0x10321
callq 0x21d0
movl $0x8, %edx
movq %r14, %rdi
leaq 0xa6c4(%rip), %rsi      # 0x102fe
jmp 0x5c4b
movl $0x1, %edx
movq %r14, %rdi
leaq 0xa6ba(%rip), %rsi      # 0x10305
callq 0x21d0
movq %r15, %r13
cmpq 0x40(%rsp), %r15
leaq 0xa68e(%rip), %r12      # 0x102ed
jb 0x5b2f
movq (%r14), %rax
movq -0x18(%rax), %rdi
addq %r14, %rdi
movl $0xa, %esi
callq 0x2180
movsbl %al, %esi
movq %r14, %rdi
callq 0x2030
movq %rax, %rdi
callq 0x20f0
movl 0xc(%rsp), %ebp
movl $0x2, %edx
movq %r14, %rdi
leaq 0xa665(%rip), %rsi      # 0x10304
callq 0x21d0
incl %ebp
movq %rbx, %rdi
movl %ebp, %esi
callq 0x5462
cmpl $0x2, %eax
leaq 0xa64d(%rip), %r13      # 0x10307
jl 0x5ce3
xorl %r15d, %r15d
movl $0x5, %edx
movq %r14, %rdi
movq %r13, %rsi
callq 0x21d0
incl %r15d
movq %rbx, %rdi
movl %ebp, %esi
callq 0x5462
decl %eax
cmpl %eax, %r15d
jl 0x5cbf
movq %rbx, %rdi
movl %ebp, %esi
callq 0x5462
testl %eax, %eax
jle 0x5d19
movl $0x9, %edx
movq %r14, %rdi
leaq 0xa60d(%rip), %rsi      # 0x1030d
callq 0x21d0
movl $0x9, %edx
movq %r14, %rdi
leaq 0xa5e9(%rip), %rsi      # 0x102fd
callq 0x21d0
movl 0x3c(%rsp), %r15d
cmpl %r15d, %ebp
jb 0x5c90
movq (%r14), %rax
movq -0x18(%rax), %rdi
addq %r14, %rdi
movl $0xa, %esi
callq 0x2180
movsbl %al, %esi
movq %r14, %rdi
callq 0x2030
movq %rax, %rdi
callq 0x20f0
movl 0xc(%rsp), %r13d
movl $0x2, %edx
movq %r14, %rdi
leaq 0xa5a2(%rip), %rsi      # 0x10304
callq 0x21d0
incl %r13d
movq %rbx, %rdi
movl %r13d, %esi
callq 0x5462
cmpl $0x2, %eax
jl 0x5d9f
xorl %ebp, %ebp
movl $0x5, %edx
movq %r14, %rdi
movq %r12, %rsi
callq 0x21d0
incl %ebp
movq %rbx, %rdi
movl %r13d, %esi
callq 0x5462
decl %eax
cmpl %eax, %ebp
jl 0x5d7c
movq %rbx, %rdi
movl %r13d, %esi
callq 0x5462
testl %eax, %eax
jle 0x5dd6
movl $0x7, %edx
movq %r14, %rdi
leaq 0xa536(%rip), %rsi      # 0x102f3
callq 0x21d0
movl $0xb, %edx
movq %r14, %rdi
leaq 0xa52a(%rip), %rsi      # 0x102fb
callq 0x21d0
cmpl %r15d, %r13d
jb 0x5d53
movq (%r14), %rax
movq -0x18(%rax), %rdi
addq %r14, %rdi
movl $0xa, %esi
callq 0x2180
movsbl %al, %esi
movq %r14, %rdi
callq 0x2030
movq %rax, %rdi
callq 0x20f0
testb $0x1, 0x38(%rsp)
movl $0x0, %eax
jne 0x56ec
addq $0x48, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
leaq 0xa52c(%rip), %rdi      # 0x10358
movq %r12, %rsi
jmp 0x5e3b
leaq 0xa520(%rip), %rdi      # 0x10358
movq %rbp, %rsi
xorl %eax, %eax
callq 0x21f0
leaq 0xa50f(%rip), %rdi      # 0x10358
jmp 0x5e3b
leaq 0xa506(%rip), %rdi      # 0x10358
movl $0x1, %esi
jmp 0x5e3b
jmp 0x5e5b
movq %rax, %rbx
movq 0x10(%rsp), %rdi
leaq 0x20(%rsp), %rax
cmpq %rax, %rdi
je 0x5e7a
movq 0x20(%rsp), %rsi
incq %rsi
callq 0x21a0
movq %rbx, %rdi
callq 0x2280