// File: yogesh1q2w[P]Dynamic-Graph-Algorithms/MST.cpp
// Function: MST::add_edge_level(int, int, int, bool)
void MST::add_edge_level(int u, int v, int level, bool is_treeedge) {
	if(u > v)
		swap(u, v);
	edge_level[make_pair(u,v)].insert(level);

	if(is_treeedge){
		treeadj[level][u].insert(make_pair(weight[make_pair(u,v)],v));
		treeadj[level][v].insert(make_pair(weight[make_pair(u,v)],u));
	}
	else {
		adj[level][u].insert(make_pair(weight[make_pair(u,v)],v));
		adj[level][v].insert(make_pair(weight[make_pair(u,v)],u));
	}

	min_spf[level].update_adjacent(u, 1, is_treeedge);
	min_spf[level].update_adjacent(v, 1, is_treeedge);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0xc0, %rsp
movb %r8b, %al
movq %rdi, -0x8(%rbp)
movl %esi, -0xc(%rbp)
movl %edx, -0x10(%rbp)
movl %ecx, -0x14(%rbp)
andb $0x1, %al
movb %al, -0x15(%rbp)
movq -0x8(%rbp), %rax
movq %rax, -0x90(%rbp)
movl -0xc(%rbp), %eax
cmpl -0x10(%rbp), %eax
jle 0x13460
leaq -0xc(%rbp), %rdi
leaq -0x10(%rbp), %rsi
callq 0xa9b0
movq -0x90(%rbp), %rax
addq $0xe8, %rax
movq %rax, -0x98(%rbp)
leaq -0xc(%rbp), %rdi
leaq -0x10(%rbp), %rsi
callq 0x3520
movq -0x98(%rbp), %rdi
movq %rax, -0x20(%rbp)
leaq -0x20(%rbp), %rsi
callq 0xa9e0
movq %rax, %rdi
leaq -0x14(%rbp), %rsi
callq 0xaa10
movq %rax, -0x28(%rbp)
testb $0x1, -0x15(%rbp)
je 0x13592
movq -0x90(%rbp), %rdi
addq $0xd0, %rdi
movslq -0x14(%rbp), %rsi
callq 0x14a10
movq %rax, %rdi
leaq -0xc(%rbp), %rsi
callq 0x14a30
movq %rax, -0xa8(%rbp)
leaq -0xc(%rbp), %rdi
leaq -0x10(%rbp), %rsi
callq 0x3520
movq -0x90(%rbp), %rdi
movq %rax, -0x38(%rbp)
leaq -0x38(%rbp), %rsi
callq 0x14aa0
movq %rax, %rdi
leaq -0x10(%rbp), %rsi
callq 0x3520
movq -0xa8(%rbp), %rdi
movq %rax, -0x30(%rbp)
leaq -0x30(%rbp), %rsi
callq 0x14a60
movq -0x90(%rbp), %rdi
movq %rax, -0x40(%rbp)
addq $0xd0, %rdi
movslq -0x14(%rbp), %rsi
callq 0x14a10
movq %rax, %rdi
leaq -0x10(%rbp), %rsi
callq 0x14a30
movq %rax, -0xa0(%rbp)
leaq -0xc(%rbp), %rdi
leaq -0x10(%rbp), %rsi
callq 0x3520
movq -0x90(%rbp), %rdi
movq %rax, -0x50(%rbp)
leaq -0x50(%rbp), %rsi
callq 0x14aa0
movq %rax, %rdi
leaq -0xc(%rbp), %rsi
callq 0x3520
movq -0xa0(%rbp), %rdi
movq %rax, -0x48(%rbp)
leaq -0x48(%rbp), %rsi
callq 0x14a60
movq %rax, -0x58(%rbp)
jmp 0x13673
movq -0x90(%rbp), %rdi
addq $0xb8, %rdi
movslq -0x14(%rbp), %rsi
callq 0x14a10
movq %rax, %rdi
leaq -0xc(%rbp), %rsi
callq 0x14a30
movq %rax, -0xb8(%rbp)
leaq -0xc(%rbp), %rdi
leaq -0x10(%rbp), %rsi
callq 0x3520
movq -0x90(%rbp), %rdi
movq %rax, -0x68(%rbp)
leaq -0x68(%rbp), %rsi
callq 0x14aa0
movq %rax, %rdi
leaq -0x10(%rbp), %rsi
callq 0x3520
movq -0xb8(%rbp), %rdi
movq %rax, -0x60(%rbp)
leaq -0x60(%rbp), %rsi
callq 0x14a60
movq -0x90(%rbp), %rdi
movq %rax, -0x70(%rbp)
addq $0xb8, %rdi
movslq -0x14(%rbp), %rsi
callq 0x14a10
movq %rax, %rdi
leaq -0x10(%rbp), %rsi
callq 0x14a30
movq %rax, -0xb0(%rbp)
leaq -0xc(%rbp), %rdi
leaq -0x10(%rbp), %rsi
callq 0x3520
movq -0x90(%rbp), %rdi
movq %rax, -0x80(%rbp)
leaq -0x80(%rbp), %rsi
callq 0x14aa0
movq %rax, %rdi
leaq -0xc(%rbp), %rsi
callq 0x3520
movq -0xb0(%rbp), %rdi
movq %rax, -0x78(%rbp)
leaq -0x78(%rbp), %rsi
callq 0x14a60
movq %rax, -0x88(%rbp)
movq -0x90(%rbp), %rdi
addq $0x68, %rdi
movslq -0x14(%rbp), %rsi
callq 0xaad0
movq %rax, %rdi
movl -0xc(%rbp), %esi
movb -0x15(%rbp), %al
movl $0x1, %edx
andb $0x1, %al
movzbl %al, %ecx
callq 0x3420
movq -0x90(%rbp), %rdi
addq $0x68, %rdi
movslq -0x14(%rbp), %rsi
callq 0xaad0
movq %rax, %rdi
movl -0x10(%rbp), %esi
movb -0x15(%rbp), %al
movl $0x1, %edx
andb $0x1, %al
movzbl %al, %ecx
callq 0x3420
addq $0xc0, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)