// File: Rubenmp[P]Rubik/src/defineRubik.cpp
// Function: Rubik::exportSupervisedSolution(std::ostream&) const
void Rubik::exportSupervisedSolution(std::ostream& os) const{
   unsigned int movement = 0;
   vector<char> solution;
   Rubik aux = *this;
   aux.solve(solution);

   while (movement != (solution.size()-1)){
      os << "- (" << movement + 1 << ") ";
      if (solution[movement] == 'F')
         os << "F --> Move frontal face in clockwise.\n\n";
      else if (solution[movement] == 'f')
         os << "f --> Move frontal face in clockwise.\n\n";
      else if (solution[movement] == 'W')
         os << "B --> Move back face to left.\n\n";
      else if (solution[movement] == 'w')
         os << "b --> Move back face to right.\n\n";
      else if (solution[movement] == 'R')
         os << "R --> Move right face backward.\n\n";
      else if (solution[movement] == 'r')
         os << "r --> Move right face forward.\n\n";
      else if (solution[movement] == 'L')
         os << "L --> Move left face forward.\n\n";
      else if (solution[movement] == 'l')
         os << "l --> Move left face backward.\n\n";
      else if (solution[movement] == 'U')
         os << "U --> Move top face to left.\n\n";
      else if (solution[movement] == 'u')
         os << "u --> Move top face to right.\n\n";
      else if (solution[movement] == 'D')
         os << "D --> Move face of the bottom to right.\n\n";
      else if (solution[movement] == 'd')
         os << "d --> Move face of the bottom to left.\n\n";

      ++movement;
   }
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0xa0, %rsp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq -0x8(%rbp), %rax
movq %rax, -0x80(%rbp)
movl $0x0, -0x14(%rbp)
leaq -0x30(%rbp), %rdi
callq 0x3900
movq -0x80(%rbp), %rsi
leaq -0x66(%rbp), %rdi
callq 0x11b70
jmp 0x14eea
movb $0x42, -0x75(%rbp)
leaq -0x66(%rbp), %rdi
leaq -0x30(%rbp), %rsi
leaq -0x75(%rbp), %rdx
callq 0x144c0
jmp 0x14f01
jmp 0x14f03
movl -0x14(%rbp), %eax
movq %rax, -0x88(%rbp)
leaq -0x30(%rbp), %rdi
callq 0x39d0
movq %rax, %rcx
movq -0x88(%rbp), %rax
subq $0x1, %rcx
cmpq %rcx, %rax
je 0x151c6
movq -0x10(%rbp), %rdi
leaq 0x2377(%rip), %rsi      # 0x172af
callq 0x2230
movq %rax, -0x90(%rbp)
jmp 0x14f46
movq -0x90(%rbp), %rdi
movl -0x14(%rbp), %esi
incl %esi
callq 0x2320
movq %rax, -0x98(%rbp)
jmp 0x14f60
movq -0x98(%rbp), %rdi
leaq 0x2345(%rip), %rsi      # 0x172b3
callq 0x2230
jmp 0x14f75
movl -0x14(%rbp), %eax
movl %eax, %esi
leaq -0x30(%rbp), %rdi
callq 0x39f0
movsbl (%rax), %eax
cmpl $0x46, %eax
jne 0x14fbc
movq -0x10(%rbp), %rdi
leaq 0x305e(%rip), %rsi      # 0x17ff4
callq 0x2230
jmp 0x14f9d
jmp 0x151b8
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x70(%rbp)
movl %eax, -0x74(%rbp)
leaq -0x30(%rbp), %rdi
callq 0x3a10
jmp 0x151d8
movl -0x14(%rbp), %eax
movl %eax, %esi
leaq -0x30(%rbp), %rdi
callq 0x39f0
movsbl (%rax), %eax
cmpl $0x66, %eax
jne 0x14fe9
movq -0x10(%rbp), %rdi
leaq 0x303f(%rip), %rsi      # 0x1801c
callq 0x2230
jmp 0x14fe4
jmp 0x151b6
movl -0x14(%rbp), %eax
movl %eax, %esi
leaq -0x30(%rbp), %rdi
callq 0x39f0
movsbl (%rax), %eax
cmpl $0x57, %eax
jne 0x15016
movq -0x10(%rbp), %rdi
leaq 0x303a(%rip), %rsi      # 0x18044
callq 0x2230
jmp 0x15011
jmp 0x151b4
movl -0x14(%rbp), %eax
movl %eax, %esi
leaq -0x30(%rbp), %rdi
callq 0x39f0
movsbl (%rax), %eax
cmpl $0x77, %eax
jne 0x15043
movq -0x10(%rbp), %rdi
leaq 0x302d(%rip), %rsi      # 0x18064
callq 0x2230
jmp 0x1503e
jmp 0x151b2
movl -0x14(%rbp), %eax
movl %eax, %esi
leaq -0x30(%rbp), %rdi
callq 0x39f0
movsbl (%rax), %eax
cmpl $0x52, %eax
jne 0x15070
movq -0x10(%rbp), %rdi
leaq 0x3021(%rip), %rsi      # 0x18085
callq 0x2230
jmp 0x1506b
jmp 0x151b0
movl -0x14(%rbp), %eax
movl %eax, %esi
leaq -0x30(%rbp), %rdi
callq 0x39f0
movsbl (%rax), %eax
cmpl $0x72, %eax
jne 0x1509d
movq -0x10(%rbp), %rdi
leaq 0x3016(%rip), %rsi      # 0x180a7
callq 0x2230
jmp 0x15098
jmp 0x151ae
movl -0x14(%rbp), %eax
movl %eax, %esi
leaq -0x30(%rbp), %rdi
callq 0x39f0
movsbl (%rax), %eax
cmpl $0x4c, %eax
jne 0x150ca
movq -0x10(%rbp), %rdi
leaq 0x300a(%rip), %rsi      # 0x180c8
callq 0x2230
jmp 0x150c5
jmp 0x151ac
movl -0x14(%rbp), %eax
movl %eax, %esi
leaq -0x30(%rbp), %rdi
callq 0x39f0
movsbl (%rax), %eax
cmpl $0x6c, %eax
jne 0x150f7
movq -0x10(%rbp), %rdi
leaq 0x2ffd(%rip), %rsi      # 0x180e8
callq 0x2230
jmp 0x150f2
jmp 0x151aa
movl -0x14(%rbp), %eax
movl %eax, %esi
leaq -0x30(%rbp), %rdi
callq 0x39f0
movsbl (%rax), %eax
cmpl $0x55, %eax
jne 0x15124
movq -0x10(%rbp), %rdi
leaq 0x2ff1(%rip), %rsi      # 0x18109
callq 0x2230
jmp 0x1511f
jmp 0x151a8
movl -0x14(%rbp), %eax
movl %eax, %esi
leaq -0x30(%rbp), %rdi
callq 0x39f0
movsbl (%rax), %eax
cmpl $0x75, %eax
jne 0x1514e
movq -0x10(%rbp), %rdi
leaq 0x2fe3(%rip), %rsi      # 0x18128
callq 0x2230
jmp 0x1514c
jmp 0x151a6
movl -0x14(%rbp), %eax
movl %eax, %esi
leaq -0x30(%rbp), %rdi
callq 0x39f0
movsbl (%rax), %eax
cmpl $0x44, %eax
jne 0x15178
movq -0x10(%rbp), %rdi
leaq 0x2fd9(%rip), %rsi      # 0x18148
callq 0x2230
jmp 0x15176
jmp 0x151a4
movl -0x14(%rbp), %eax
movl %eax, %esi
leaq -0x30(%rbp), %rdi
callq 0x39f0
movsbl (%rax), %eax
cmpl $0x64, %eax
jne 0x151a2
movq -0x10(%rbp), %rdi
leaq 0x2fd9(%rip), %rsi      # 0x18172
callq 0x2230
jmp 0x151a0
jmp 0x151a2
jmp 0x151a4
jmp 0x151a6
jmp 0x151a8
jmp 0x151aa
jmp 0x151ac
jmp 0x151ae
jmp 0x151b0
jmp 0x151b2
jmp 0x151b4
jmp 0x151b6
jmp 0x151b8
movl -0x14(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x14(%rbp)
jmp 0x14f03
leaq -0x30(%rbp), %rdi
callq 0x3a10
addq $0xa0, %rsp
popq %rbp
retq
movq -0x70(%rbp), %rdi
callq 0x23c0
nopw %cs:(%rax,%rax)