// File: /workspace/github_cpp_makefile_star2_O1/volodymyr-kryvoshapov[P]arduino-lcd-menu/src/main.cpp
// Function: main
int main() {
	menu.addRootMenu("root menu")

	.addNode("node 1")
		.addChild("child 1.1")
		.addChild("child 1.2")
		.addChild("child 1.3")
	.done()

	.addNode("node 2")
		.addChild("child 2.1")

		.addNode("node 2.2")
			.addChild("child 2.2.1")
			.addChild("child 2.2.2")
			.addChild("child 2.2.3")
		.done()

		.addChild("child 2.3")

		.addNode("node 2.4")
			.addChild("child 2.4.1")
			.addChild("child 2.4.2")
			.addChild("child 2.4.3")
		.done()

		.addChild("child 2.5")
	.done()

	.addChild("child 3")
	.addChild("child 4");

//	cout << "sizeof(menu): " << sizeof( menu.getMenu() ) << endl;
//	cout << "sizeof(children): " << sizeof( menu.getMenu().getChildren() ) << endl;
//	cout << "menuNodeNum: "<< menu.getMenu().getChildrenNum() << endl;
//	cout << "menuNodeNum: "<< menu.getMenu().getChildren()[1]->getChildrenNum() << endl;

	std::cout << "Hi Man! Welcome to the show!" << endl;

	return 0;
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x268, %rsp            # imm = 0x268
leaq 0x1b8(%rsp), %rax
movq %rax, -0x10(%rax)
leaq 0x1cea(%rip), %rsi      # 0x3012
leaq 0x1cec(%rip), %rdx      # 0x301b
leaq 0x1a8(%rsp), %rbx
movq %rbx, %rdi
callq 0x1d62
leaq 0x3d7a(%rip), %rdi      # 0x50c0
movq %rbx, %rsi
callq 0x12b4
movq %rax, %rbx
leaq 0x198(%rsp), %rax
movq %rax, -0x10(%rax)
leaq 0x1cb8(%rip), %rsi      # 0x301c
leaq 0x1cb7(%rip), %rdx      # 0x3022
leaq 0x188(%rsp), %rdi
callq 0x1d62
leaq 0x188(%rsp), %rsi
movq %rbx, %rdi
callq 0x1ebc
movq %rax, %rbx
leaq 0x178(%rsp), %rax
movq %rax, -0x10(%rax)
leaq 0x1c85(%rip), %rsi      # 0x3023
leaq 0x1c87(%rip), %rdx      # 0x302c
leaq 0x168(%rsp), %rdi
callq 0x1d62
leaq 0x168(%rsp), %rsi
movq %rbx, %rdi
callq 0x1f24
movq %rax, %rbx
leaq 0x158(%rsp), %rax
movq %rax, -0x10(%rax)
leaq 0x1c55(%rip), %rsi      # 0x302d
leaq 0x1c57(%rip), %rdx      # 0x3036
leaq 0x148(%rsp), %rdi
callq 0x1d62
leaq 0x148(%rsp), %rsi
movq %rbx, %rdi
callq 0x1f24
movq %rax, %rbx
leaq 0x138(%rsp), %rax
movq %rax, -0x10(%rax)
leaq 0x1c25(%rip), %rsi      # 0x3037
leaq 0x1c27(%rip), %rdx      # 0x3040
leaq 0x128(%rsp), %rdi
callq 0x1d62
leaq 0x128(%rsp), %rsi
movq %rbx, %rdi
callq 0x1f24
movq %rax, %rdi
callq 0x1f74
movq %rax, %rbx
leaq 0x118(%rsp), %rax
movq %rax, -0x10(%rax)
leaq 0x1bed(%rip), %rsi      # 0x3041
leaq 0x1bec(%rip), %rdx      # 0x3047
leaq 0x108(%rsp), %rdi
callq 0x1d62
leaq 0x108(%rsp), %rsi
movq %rbx, %rdi
callq 0x1ebc
movq %rax, %rbx
leaq 0xf8(%rsp), %rax
movq %rax, -0x10(%rax)
leaq 0x1bba(%rip), %rsi      # 0x3048
leaq 0x1bbc(%rip), %rdx      # 0x3051
leaq 0xe8(%rsp), %rdi
callq 0x1d62
leaq 0xe8(%rsp), %rsi
movq %rbx, %rdi
callq 0x1f24
movq %rax, %rbx
leaq 0xd8(%rsp), %rax
movq %rax, -0x10(%rax)
leaq 0x1b8a(%rip), %rsi      # 0x3052
leaq 0x1b8b(%rip), %rdx      # 0x305a
leaq 0xc8(%rsp), %rdi
callq 0x1d62
leaq 0xc8(%rsp), %rsi
movq %rbx, %rdi
callq 0x1ebc
movq %rax, %rbx
leaq 0xb8(%rsp), %rax
movq %rax, -0x10(%rax)
leaq 0x1b59(%rip), %rsi      # 0x305b
leaq 0x1b5d(%rip), %rdx      # 0x3066
leaq 0xa8(%rsp), %rdi
callq 0x1d62
leaq 0xa8(%rsp), %rsi
movq %rbx, %rdi
callq 0x1f24
movq %rax, %rbx
leaq 0x98(%rsp), %rax
movq %rax, -0x10(%rax)
leaq 0x1b2b(%rip), %rsi      # 0x3067
leaq 0x1b2f(%rip), %rdx      # 0x3072
leaq 0x88(%rsp), %rdi
callq 0x1d62
leaq 0x88(%rsp), %rsi
movq %rbx, %rdi
callq 0x1f24
movq %rax, %rbx
leaq 0x78(%rsp), %rax
movq %rax, -0x10(%rax)
leaq 0x1b00(%rip), %rsi      # 0x3073
leaq 0x1b04(%rip), %rdx      # 0x307e
leaq 0x68(%rsp), %rdi
callq 0x1d62
leaq 0x68(%rsp), %rsi
movq %rbx, %rdi
callq 0x1f24
movq %rax, %rdi
callq 0x1f74
movq %rax, %rbx
leaq 0x58(%rsp), %rax
movq %rax, -0x10(%rax)
leaq 0x1ad3(%rip), %rsi      # 0x307f
leaq 0x1ad5(%rip), %rdx      # 0x3088
leaq 0x48(%rsp), %rdi
callq 0x1d62
leaq 0x48(%rsp), %rsi
movq %rbx, %rdi
callq 0x1f24
movq %rax, %rbx
leaq 0x38(%rsp), %rax
movq %rax, -0x10(%rax)
leaq 0x1aac(%rip), %rsi      # 0x3089
leaq 0x1aad(%rip), %rdx      # 0x3091
leaq 0x28(%rsp), %rdi
callq 0x1d62
leaq 0x28(%rsp), %rsi
movq %rbx, %rdi
callq 0x1ebc
movq %rax, %rbx
leaq 0x258(%rsp), %rbp
movq %rbp, -0x10(%rbp)
leaq 0x1a81(%rip), %rsi      # 0x3092
leaq 0x1a85(%rip), %rdx      # 0x309d
leaq 0x248(%rsp), %rdi
callq 0x1d62
leaq 0x248(%rsp), %rsi
movq %rbx, %rdi
callq 0x1f24
movq %rax, %rbx
leaq 0x18(%rsp), %rax
movq %rax, -0x10(%rax)
leaq 0x1a56(%rip), %rsi      # 0x309e
leaq 0x1a5a(%rip), %rdx      # 0x30a9
leaq 0x8(%rsp), %rdi
callq 0x1d62
leaq 0x8(%rsp), %rsi
movq %rbx, %rdi
callq 0x1f24
movq %rax, %rbx
leaq 0x238(%rsp), %r14
movq %r14, -0x10(%r14)
leaq 0x1a2e(%rip), %rsi      # 0x30aa
leaq 0x1a32(%rip), %rdx      # 0x30b5
leaq 0x228(%rsp), %rdi
callq 0x1d62
leaq 0x228(%rsp), %rsi
movq %rbx, %rdi
callq 0x1f24
movq %rax, %rdi
callq 0x1f74
movq %rax, %rbx
leaq 0x218(%rsp), %r15
movq %r15, -0x10(%r15)
leaq 0x19f8(%rip), %rsi      # 0x30b6
leaq 0x19fa(%rip), %rdx      # 0x30bf
leaq 0x208(%rsp), %rdi
callq 0x1d62
leaq 0x208(%rsp), %rsi
movq %rbx, %rdi
callq 0x1f24
movq %rax, %rdi
callq 0x1f74
movq %rax, %rbx
leaq 0x1f8(%rsp), %r12
movq %r12, -0x10(%r12)
leaq 0x19bf(%rip), %rsi      # 0x30c0
leaq 0x19bf(%rip), %rdx      # 0x30c7
leaq 0x1e8(%rsp), %rdi
callq 0x1d62
leaq 0x1e8(%rsp), %rsi
movq %rbx, %rdi
callq 0x1f24
movq %rax, %rbx
leaq 0x1d8(%rsp), %r13
movq %r13, -0x10(%r13)
leaq 0x198d(%rip), %rsi      # 0x30c8
leaq 0x198d(%rip), %rdx      # 0x30cf
leaq 0x1c8(%rsp), %rdi
callq 0x1d62
leaq 0x1c8(%rsp), %rsi
movq %rbx, %rdi
callq 0x1f24
movq 0x1c8(%rsp), %rdi
cmpq %r13, %rdi
je 0x177c
movq 0x1d8(%rsp), %rsi
incq %rsi
callq 0x10d0
movq 0x1e8(%rsp), %rdi
cmpq %r12, %rdi
je 0x1799
movq 0x1f8(%rsp), %rsi
incq %rsi
callq 0x10d0
movq 0x208(%rsp), %rdi
cmpq %r15, %rdi
leaq 0x1b8(%rsp), %rbx
leaq 0x198(%rsp), %r15
leaq 0x178(%rsp), %r12
je 0x17ce
movq 0x218(%rsp), %rsi
incq %rsi
callq 0x10d0
movq 0x228(%rsp), %rdi
cmpq %r14, %rdi
je 0x17eb
movq 0x238(%rsp), %rsi
incq %rsi
callq 0x10d0
movq 0x8(%rsp), %rdi
leaq 0x18(%rsp), %rax
cmpq %rax, %rdi
je 0x1807
movq 0x18(%rsp), %rsi
incq %rsi
callq 0x10d0
movq 0x248(%rsp), %rdi
cmpq %rbp, %rdi
je 0x1824
movq 0x258(%rsp), %rsi
incq %rsi
callq 0x10d0
movq 0x28(%rsp), %rdi
leaq 0x38(%rsp), %rax
cmpq %rax, %rdi
je 0x1840
movq 0x38(%rsp), %rsi
incq %rsi
callq 0x10d0
movq 0x48(%rsp), %rdi
leaq 0x58(%rsp), %rax
cmpq %rax, %rdi
je 0x185c
movq 0x58(%rsp), %rsi
incq %rsi
callq 0x10d0
movq 0x68(%rsp), %rdi
leaq 0x78(%rsp), %rax
cmpq %rax, %rdi
je 0x1878
movq 0x78(%rsp), %rsi
incq %rsi
callq 0x10d0
movq 0x88(%rsp), %rdi
leaq 0x98(%rsp), %rax
cmpq %rax, %rdi
je 0x189d
movq 0x98(%rsp), %rsi
incq %rsi
callq 0x10d0
movq 0xa8(%rsp), %rdi
leaq 0xb8(%rsp), %rax
cmpq %rax, %rdi
je 0x18c2
movq 0xb8(%rsp), %rsi
incq %rsi
callq 0x10d0
movq 0xc8(%rsp), %rdi
leaq 0xd8(%rsp), %rax
cmpq %rax, %rdi
je 0x18e7
movq 0xd8(%rsp), %rsi
incq %rsi
callq 0x10d0
movq 0xe8(%rsp), %rdi
leaq 0xf8(%rsp), %rax
cmpq %rax, %rdi
je 0x190c
movq 0xf8(%rsp), %rsi
incq %rsi
callq 0x10d0
movq 0x108(%rsp), %rdi
leaq 0x118(%rsp), %rax
cmpq %rax, %rdi
je 0x1931
movq 0x118(%rsp), %rsi
incq %rsi
callq 0x10d0
movq 0x128(%rsp), %rdi
leaq 0x138(%rsp), %rax
cmpq %rax, %rdi
je 0x1956
movq 0x138(%rsp), %rsi
incq %rsi
callq 0x10d0
movq 0x148(%rsp), %rdi
leaq 0x158(%rsp), %rax
cmpq %rax, %rdi
je 0x197b
movq 0x158(%rsp), %rsi
incq %rsi
callq 0x10d0
movq 0x168(%rsp), %rdi
cmpq %r12, %rdi
je 0x1998
movq 0x178(%rsp), %rsi
incq %rsi
callq 0x10d0
movq 0x188(%rsp), %rdi
cmpq %r15, %rdi
je 0x19b5
movq 0x198(%rsp), %rsi
incq %rsi
callq 0x10d0
movq 0x1a8(%rsp), %rdi
cmpq %rbx, %rdi
je 0x19d2
movq 0x1b8(%rsp), %rsi
incq %rsi
callq 0x10d0
movq 0x35ff(%rip), %rbx      # 0x4fd8
leaq 0x16f0(%rip), %rsi      # 0x30d0
movl $0x1c, %edx
movq %rbx, %rdi
callq 0x10e0
movq (%rbx), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x10b0
movsbl %al, %esi
movq %rbx, %rdi
callq 0x1030
movq %rax, %rdi
callq 0x1060
xorl %eax, %eax
addq $0x268, %rsp            # imm = 0x268
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
movq %rax, %rbx
movq 0x1c8(%rsp), %rdi
cmpq %r13, %rdi
je 0x1a4f
movq 0x1d8(%rsp), %rsi
incq %rsi
callq 0x10d0
jmp 0x1a4f
jmp 0x1a4c
movq %rax, %rbx
movq 0x1e8(%rsp), %rdi
cmpq %r12, %rdi
je 0x1b0e
movq 0x1f8(%rsp), %rsi
incq %rsi
callq 0x10d0
jmp 0x1b0e
jmp 0x1b0b
jmp 0x1b2d
jmp 0x1a81
movq %rax, %rbx
jmp 0x1b4d
jmp 0x1a8b
movq %rax, %rbx
jmp 0x1b69
jmp 0x1a95
movq %rax, %rbx
jmp 0x1b86
jmp 0x1a9f
movq %rax, %rbx
jmp 0x1ba2
jmp 0x1bc0
jmp 0x1aae
movq %rax, %rbx
jmp 0x1bdf
jmp 0x1ab8
movq %rax, %rbx
jmp 0x1c04
jmp 0x1ac2
movq %rax, %rbx
jmp 0x1c29
jmp 0x1acc
movq %rax, %rbx
jmp 0x1c4e
jmp 0x1ad6
movq %rax, %rbx
jmp 0x1c73
jmp 0x1d59
jmp 0x1ae5
movq %rax, %rbx
jmp 0x1cbd
jmp 0x1aef
movq %rax, %rbx
jmp 0x1ce2
jmp 0x1af9
movq %rax, %rbx
jmp 0x1d07
jmp 0x1b03
movq %rax, %rbx
jmp 0x1d2c
movq %rax, %rbx
movq 0x208(%rsp), %rdi
cmpq %r15, %rdi
je 0x1b30
movq 0x218(%rsp), %rsi
incq %rsi
callq 0x10d0
jmp 0x1b30
movq %rax, %rbx
movq 0x228(%rsp), %rdi
cmpq %r14, %rdi
je 0x1b4d
movq 0x238(%rsp), %rsi
incq %rsi
callq 0x10d0
movq 0x8(%rsp), %rdi
leaq 0x18(%rsp), %rax
cmpq %rax, %rdi
je 0x1b69
movq 0x18(%rsp), %rsi
incq %rsi
callq 0x10d0
movq 0x248(%rsp), %rdi
cmpq %rbp, %rdi
je 0x1b86
movq 0x258(%rsp), %rsi
incq %rsi
callq 0x10d0
movq 0x28(%rsp), %rdi
leaq 0x38(%rsp), %rax
cmpq %rax, %rdi
je 0x1ba2
movq 0x38(%rsp), %rsi
incq %rsi
callq 0x10d0
movq 0x48(%rsp), %rdi
leaq 0x58(%rsp), %rax
cmpq %rax, %rdi
je 0x1bc3
movq 0x58(%rsp), %rsi
incq %rsi
callq 0x10d0
jmp 0x1bc3
movq %rax, %rbx
movq 0x68(%rsp), %rdi
leaq 0x78(%rsp), %rax
cmpq %rax, %rdi
je 0x1bdf
movq 0x78(%rsp), %rsi
incq %rsi
callq 0x10d0
movq 0x88(%rsp), %rdi
leaq 0x98(%rsp), %rax
cmpq %rax, %rdi
je 0x1c04
movq 0x98(%rsp), %rsi
incq %rsi
callq 0x10d0
movq 0xa8(%rsp), %rdi
leaq 0xb8(%rsp), %rax
cmpq %rax, %rdi
je 0x1c29
movq 0xb8(%rsp), %rsi
incq %rsi
callq 0x10d0
movq 0xc8(%rsp), %rdi
leaq 0xd8(%rsp), %rax
cmpq %rax, %rdi
je 0x1c4e
movq 0xd8(%rsp), %rsi
incq %rsi
callq 0x10d0
movq 0xe8(%rsp), %rdi
leaq 0xf8(%rsp), %rax
cmpq %rax, %rdi
je 0x1c73
movq 0xf8(%rsp), %rsi
incq %rsi
callq 0x10d0
movq 0x108(%rsp), %rdi
leaq 0x118(%rsp), %rax
cmpq %rax, %rdi
je 0x1c98
movq 0x118(%rsp), %rsi
incq %rsi
callq 0x10d0
movq 0x128(%rsp), %rdi
leaq 0x138(%rsp), %rax
cmpq %rax, %rdi
je 0x1cbd
movq 0x138(%rsp), %rsi
incq %rsi
callq 0x10d0
movq 0x148(%rsp), %rdi
leaq 0x158(%rsp), %rax
cmpq %rax, %rdi
je 0x1ce2
movq 0x158(%rsp), %rsi
incq %rsi
callq 0x10d0
movq 0x168(%rsp), %rdi
leaq 0x178(%rsp), %rax
cmpq %rax, %rdi
je 0x1d07
movq 0x178(%rsp), %rsi
incq %rsi
callq 0x10d0
movq 0x188(%rsp), %rdi
leaq 0x198(%rsp), %rax
cmpq %rax, %rdi
je 0x1d2c
movq 0x198(%rsp), %rsi
incq %rsi
callq 0x10d0
movq 0x1a8(%rsp), %rdi
leaq 0x1b8(%rsp), %rax
cmpq %rax, %rdi
je 0x1d51
movq 0x1b8(%rsp), %rsi
incq %rsi
callq 0x10d0
movq %rbx, %rdi
callq 0x1110
movq %rax, %rbx
jmp 0x1c98
nop