// File: sharmaeklavya2[P]ddos-on-anycast/src/lib/network.cpp
// Function: Network::edge_list() const
ipvec Network::edge_list() const {
    ipvec l;
    for(int u=0; u<size(); ++u) {
        if(!is_virtual(u)) {
            for(int v: in_nbrs[u]) {if(v > u) {l.push_back(iipair(u, v));}}
            for(int v: side_nbrs[u]) {if(v > u) {l.push_back(iipair(u, v));}}
            for(int v: up_nbrs[u]) {if(v > u) {l.push_back(iipair(u, v));}}
            for(int v: down_nbrs[u]) {if(v > u) {l.push_back(iipair(u, v));}}
        }
    }
    return l;
}

// Assembly:
subq $0xf8, %rsp
movq %rdi, 0x18(%rsp)
movq %rdi, %rax
movq %rax, 0x20(%rsp)
movq %rdi, 0xf0(%rsp)
movq %rsi, 0xe8(%rsp)
movq 0xe8(%rsp), %rax
movq %rax, 0x28(%rsp)
movb $0x0, 0xe7(%rsp)
callq 0x4a50
movl $0x0, 0xe0(%rsp)
movq 0x28(%rsp), %rdi
movl 0xe0(%rsp), %eax
movl %eax, 0x10(%rsp)
callq 0x4950
movl %eax, 0x14(%rsp)
jmp 0x2c54
movl 0x10(%rsp), %eax
movl 0x14(%rsp), %ecx
cmpl %ecx, %eax
jge 0x2fba
movq 0x28(%rsp), %rdi
movl 0xe0(%rsp), %esi
callq 0x4830
movb %al, 0xf(%rsp)
jmp 0x2c7b
movb 0xf(%rsp), %al
testb $0x1, %al
jne 0x2fa2
jmp 0x2c89
movq 0x28(%rsp), %rdi
addq $0x48, %rdi
movslq 0xe0(%rsp), %rsi
callq 0x4a60
movq %rax, 0xc8(%rsp)
movq 0xc8(%rsp), %rdi
callq 0x4880
movq %rax, 0xc0(%rsp)
movq 0xc8(%rsp), %rdi
callq 0x48b0
movq %rax, 0xb8(%rsp)
leaq 0xc0(%rsp), %rdi
leaq 0xb8(%rsp), %rsi
callq 0x48e0
testb $0x1, %al
jne 0x2cef
jmp 0x2d81
leaq 0xc0(%rsp), %rdi
callq 0x4920
movl (%rax), %eax
movl %eax, 0xb4(%rsp)
movl 0xb4(%rsp), %eax
cmpl 0xe0(%rsp), %eax
jle 0x2d6d
leaq 0xac(%rsp), %rdi
leaq 0xe0(%rsp), %rsi
leaq 0xb4(%rsp), %rdx
callq 0x4ab0
jmp 0x2d34
movq 0x18(%rsp), %rdi
leaq 0xac(%rsp), %rsi
callq 0x4a80
jmp 0x2d48
jmp 0x2d6d
movq 0x18(%rsp), %rdi
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xd8(%rsp)
movl %eax, 0xd4(%rsp)
callq 0x4ae0
jmp 0x2fe3
jmp 0x2d6f
leaq 0xc0(%rsp), %rdi
callq 0x4930
jmp 0x2cd1
movq 0x28(%rsp), %rdi
addq $0x60, %rdi
movslq 0xe0(%rsp), %rsi
callq 0x4a60
movq %rax, 0xa0(%rsp)
movq 0xa0(%rsp), %rdi
callq 0x4880
movq %rax, 0x98(%rsp)
movq 0xa0(%rsp), %rdi
callq 0x48b0
movq %rax, 0x90(%rsp)
leaq 0x98(%rsp), %rdi
leaq 0x90(%rsp), %rsi
callq 0x48e0
testb $0x1, %al
jne 0x2de4
jmp 0x2e53
leaq 0x98(%rsp), %rdi
callq 0x4920
movl (%rax), %eax
movl %eax, 0x8c(%rsp)
movl 0x8c(%rsp), %eax
cmpl 0xe0(%rsp), %eax
jle 0x2e3f
leaq 0x84(%rsp), %rdi
leaq 0xe0(%rsp), %rsi
leaq 0x8c(%rsp), %rdx
callq 0x4ab0
jmp 0x2e29
movq 0x18(%rsp), %rdi
leaq 0x84(%rsp), %rsi
callq 0x4a80
jmp 0x2e3d
jmp 0x2e3f
jmp 0x2e41
leaq 0x98(%rsp), %rdi
callq 0x4930
jmp 0x2dc9
movq 0x28(%rsp), %rdi
addq $0x78, %rdi
movslq 0xe0(%rsp), %rsi
callq 0x4a60
movq %rax, 0x78(%rsp)
movq 0x78(%rsp), %rdi
callq 0x4880
movq %rax, 0x70(%rsp)
movq 0x78(%rsp), %rdi
callq 0x48b0
movq %rax, 0x68(%rsp)
leaq 0x70(%rsp), %rdi
leaq 0x68(%rsp), %rsi
callq 0x48e0
testb $0x1, %al
jne 0x2ea1
jmp 0x2ef8
leaq 0x70(%rsp), %rdi
callq 0x4920
movl (%rax), %eax
movl %eax, 0x64(%rsp)
movl 0x64(%rsp), %eax
cmpl 0xe0(%rsp), %eax
jle 0x2eea
leaq 0x5c(%rsp), %rdi
leaq 0xe0(%rsp), %rsi
leaq 0x64(%rsp), %rdx
callq 0x4ab0
jmp 0x2ed7
movq 0x18(%rsp), %rdi
leaq 0x5c(%rsp), %rsi
callq 0x4a80
jmp 0x2ee8
jmp 0x2eea
jmp 0x2eec
leaq 0x70(%rsp), %rdi
callq 0x4930
jmp 0x2e8c
movq 0x28(%rsp), %rdi
addq $0x90, %rdi
movslq 0xe0(%rsp), %rsi
callq 0x4a60
movq %rax, 0x50(%rsp)
movq 0x50(%rsp), %rdi
callq 0x4880
movq %rax, 0x48(%rsp)
movq 0x50(%rsp), %rdi
callq 0x48b0
movq %rax, 0x40(%rsp)
leaq 0x48(%rsp), %rdi
leaq 0x40(%rsp), %rsi
callq 0x48e0
testb $0x1, %al
jne 0x2f49
jmp 0x2fa0
leaq 0x48(%rsp), %rdi
callq 0x4920
movl (%rax), %eax
movl %eax, 0x3c(%rsp)
movl 0x3c(%rsp), %eax
cmpl 0xe0(%rsp), %eax
jle 0x2f92
leaq 0x34(%rsp), %rdi
leaq 0xe0(%rsp), %rsi
leaq 0x3c(%rsp), %rdx
callq 0x4ab0
jmp 0x2f7f
movq 0x18(%rsp), %rdi
leaq 0x34(%rsp), %rsi
callq 0x4a80
jmp 0x2f90
jmp 0x2f92
jmp 0x2f94
leaq 0x48(%rsp), %rdi
callq 0x4930
jmp 0x2f34
jmp 0x2fa2
jmp 0x2fa4
movl 0xe0(%rsp), %eax
addl $0x1, %eax
movl %eax, 0xe0(%rsp)
jmp 0x2c39
movb $0x1, 0xe7(%rsp)
testb $0x1, 0xe7(%rsp)
jne 0x2fd6
movq 0x18(%rsp), %rdi
callq 0x4ae0
movq 0x20(%rsp), %rax
addq $0xf8, %rsp
retq
movq 0xd8(%rsp), %rdi
callq 0x21f0