// File: tanakh[P]icfpc2015/main.cpp
// Function: operator<<(std::ostream&, problem const&)
ostream &operator<<(ostream &os, const problem &p)
{
  os << "id: " << p.id << endl;
  os << "units:" << endl;
  for (auto &u: p.units)
    os << "  " << u << endl;
  os << "width: " << p.width << endl;
  os << "height: " << p.height << endl;
  os << "filled: ";
  for (auto &q: p.filled)
    os << q << ", ";
  os << endl;
  os << "sourceLength: " << p.source_length << endl;
  os << "sourceSeeds: ";
  for (auto &s: p.source_seeds)
    os << s << ", ";
  os << endl;
  return os;
}

// Assembly:
subq $0x78, %rsp
movq %rdi, 0x70(%rsp)
movq %rsi, 0x68(%rsp)
movq 0x70(%rsp), %rdi
leaq 0x312bc(%rip), %rsi     # 0x36416
callq 0x43c0
movq %rax, %rdi
movq 0x68(%rsp), %rax
movl (%rax), %esi
callq 0x4600
movq %rax, %rdi
movq 0x44e18(%rip), %rsi     # 0x49f90
callq 0x4400
movq 0x70(%rsp), %rdi
leaq 0x31292(%rip), %rsi     # 0x3641b
callq 0x43c0
movq %rax, %rdi
movq 0x44df8(%rip), %rsi     # 0x49f90
callq 0x4400
movq 0x68(%rsp), %rax
addq $0x8, %rax
movq %rax, 0x60(%rsp)
movq 0x60(%rsp), %rdi
callq 0x11180
movq %rax, 0x58(%rsp)
movq 0x60(%rsp), %rdi
callq 0x111b0
movq %rax, 0x50(%rsp)
leaq 0x58(%rsp), %rdi
leaq 0x50(%rsp), %rsi
callq 0x111e0
testb $0x1, %al
jne 0x51de
jmp 0x5226
leaq 0x58(%rsp), %rdi
callq 0x11220
movq %rax, 0x48(%rsp)
movq 0x70(%rsp), %rdi
leaq 0x31437(%rip), %rsi     # 0x36630
callq 0x43c0
movq %rax, %rdi
movq 0x48(%rsp), %rsi
callq 0x5070
movq %rax, %rdi
movq 0x44d7b(%rip), %rsi     # 0x49f90
callq 0x4400
leaq 0x58(%rsp), %rdi
callq 0x11230
jmp 0x51c9
movq 0x70(%rsp), %rdi
leaq 0x311f0(%rip), %rsi     # 0x36422
callq 0x43c0
movq %rax, %rdi
movq 0x68(%rsp), %rax
movl 0x20(%rax), %esi
callq 0x4600
movq %rax, %rdi
movq 0x44d3f(%rip), %rsi     # 0x49f90
callq 0x4400
movq 0x70(%rsp), %rdi
leaq 0x311c8(%rip), %rsi     # 0x3642a
callq 0x43c0
movq %rax, %rdi
movq 0x68(%rsp), %rax
movl 0x24(%rax), %esi
callq 0x4600
movq %rax, %rdi
movq 0x44d0f(%rip), %rsi     # 0x49f90
callq 0x4400
movq 0x70(%rsp), %rdi
leaq 0x311a1(%rip), %rsi     # 0x36433
callq 0x43c0
movq 0x68(%rsp), %rax
addq $0x28, %rax
movq %rax, 0x40(%rsp)
movq 0x40(%rsp), %rdi
callq 0x110b0
movq %rax, 0x38(%rsp)
movq 0x40(%rsp), %rdi
callq 0x110e0
movq %rax, 0x30(%rsp)
leaq 0x38(%rsp), %rdi
leaq 0x30(%rsp), %rsi
callq 0x11110
testb $0x1, %al
jne 0x52d8
jmp 0x5311
leaq 0x38(%rsp), %rdi
callq 0x11150
movq %rax, 0x28(%rsp)
movq 0x70(%rsp), %rdi
movq 0x28(%rsp), %rsi
callq 0x10e40
movq %rax, %rdi
leaq 0x3110f(%rip), %rsi     # 0x3640f
callq 0x43c0
leaq 0x38(%rsp), %rdi
callq 0x11160
jmp 0x52c3
movq 0x70(%rsp), %rdi
movq 0x44c73(%rip), %rsi     # 0x49f90
callq 0x4400
movq 0x70(%rsp), %rdi
leaq 0x3110e(%rip), %rsi     # 0x3643c
callq 0x43c0
movq %rax, %rdi
movq 0x68(%rsp), %rax
movl 0x40(%rax), %esi
callq 0x4600
movq %rax, %rdi
movq 0x44c43(%rip), %rsi     # 0x49f90
callq 0x4400
movq 0x70(%rsp), %rdi
leaq 0x310ed(%rip), %rsi     # 0x3644b
callq 0x43c0
movq 0x68(%rsp), %rax
addq $0x48, %rax
movq %rax, 0x20(%rsp)
movq 0x20(%rsp), %rdi
callq 0x11250
movq %rax, 0x18(%rsp)
movq 0x20(%rsp), %rdi
callq 0x11280
movq %rax, 0x10(%rsp)
leaq 0x18(%rsp), %rdi
leaq 0x10(%rsp), %rsi
callq 0x112b0
testb $0x1, %al
jne 0x53a4
jmp 0x53df
leaq 0x18(%rsp), %rdi
callq 0x112f0
movq %rax, 0x8(%rsp)
movq 0x70(%rsp), %rdi
movq 0x8(%rsp), %rax
movl (%rax), %esi
callq 0x4600
movq %rax, %rdi
leaq 0x31041(%rip), %rsi     # 0x3640f
callq 0x43c0
leaq 0x18(%rsp), %rdi
callq 0x11300
jmp 0x538f
movq 0x70(%rsp), %rdi
movq 0x44ba5(%rip), %rsi     # 0x49f90
callq 0x4400
movq 0x70(%rsp), %rax
addq $0x78, %rsp
retq
nopw (%rax,%rax)