// File: mirkat1206[P]Quine-McCluskey-Petrick-Method/main.cpp
// Function: Init(std::basic_ifstream<char, std::char_traits<char>>&, Quine_McCluskey&)
void Init(ifstream &fin, Quine_McCluskey &QM) {
	// input from a file
	char c;
	while( fin>> c ) {
		if( c=='.' )	
			continue;
		if( c=='i' ) {
			int n;
			fin>> n ;
			QM.Set_Num_Var(n);
		}
		else if( c=='m' ) {
			string s;
			stringstream ss;
			getline( fin , s );
			getline( fin , s );
			ss<< s ;
			int n;
			while( ss>> n ) 
				QM.Add_On_Set(n);
		}
		else if( c=='d' ) {
			string s;
			stringstream ss;
			getline( fin , s );
			getline( fin , s );
			ss<< s ;
			int n;
			while( ss>> n ) 
				QM.Add_DC_Set(n);
		}
		else {
			cerr<<"Wrong input format."<< endl;
			exit(-1);
		}
	}
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x3a0, %rsp            # imm = 0x3A0
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq -0x8(%rbp), %rdi
leaq -0x11(%rbp), %rsi
callq 0x22a0
movq %rax, %rdi
movq (%rdi), %rax
addq -0x18(%rax), %rdi
callq 0x2270
testb $0x1, %al
jne 0x28b8
jmp 0x2b41
movsbl -0x11(%rbp), %eax
cmpl $0x2e, %eax
jne 0x28c3
jmp 0x2893
movsbl -0x11(%rbp), %eax
cmpl $0x69, %eax
jne 0x28ea
movq -0x8(%rbp), %rdi
leaq -0x18(%rbp), %rsi
callq 0x2110
movq -0x10(%rbp), %rdi
movl -0x18(%rbp), %esi
callq 0x33a0
jmp 0x2b3c
movsbl -0x11(%rbp), %eax
cmpl $0x6d, %eax
jne 0x29f5
leaq -0x38(%rbp), %rdi
callq 0x22b0
leaq -0x1c0(%rbp), %rdi
callq 0x2150
jmp 0x290e
movq -0x8(%rbp), %rdi
leaq -0x38(%rbp), %rsi
callq 0x2050
jmp 0x291d
movq -0x8(%rbp), %rdi
leaq -0x38(%rbp), %rsi
callq 0x2050
jmp 0x292c
leaq -0x1b0(%rbp), %rdi
leaq -0x38(%rbp), %rsi
callq 0x21c0
jmp 0x293e
jmp 0x2940
leaq -0x1c0(%rbp), %rdi
leaq -0x1d0(%rbp), %rsi
callq 0x2110
movq %rax, -0x388(%rbp)
jmp 0x295c
movq -0x388(%rbp), %rdi
movq (%rdi), %rax
movq -0x18(%rax), %rax
addq %rax, %rdi
callq 0x2270
movb %al, -0x389(%rbp)
jmp 0x297a
movb -0x389(%rbp), %al
testb $0x1, %al
jne 0x2986
jmp 0x29cd
movq -0x10(%rbp), %rdi
movl -0x1d0(%rbp), %esi
callq 0x33c0
jmp 0x2997
jmp 0x2940
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x1c8(%rbp)
movl %eax, -0x1cc(%rbp)
jmp 0x29e7
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x1c8(%rbp)
movl %eax, -0x1cc(%rbp)
leaq -0x1c0(%rbp), %rdi
callq 0x2170
jmp 0x29e7
leaq -0x1c0(%rbp), %rdi
callq 0x2170
leaq -0x38(%rbp), %rdi
callq 0x2120
jmp 0x2b3a
leaq -0x38(%rbp), %rdi
callq 0x2120
jmp 0x2b4a
movsbl -0x11(%rbp), %eax
cmpl $0x64, %eax
jne 0x2b0c
leaq -0x1f0(%rbp), %rdi
callq 0x22b0
leaq -0x378(%rbp), %rdi
callq 0x2150
jmp 0x2a1c
movq -0x8(%rbp), %rdi
leaq -0x1f0(%rbp), %rsi
callq 0x2050
jmp 0x2a2e
movq -0x8(%rbp), %rdi
leaq -0x1f0(%rbp), %rsi
callq 0x2050
jmp 0x2a40
leaq -0x368(%rbp), %rdi
leaq -0x1f0(%rbp), %rsi
callq 0x21c0
jmp 0x2a55
jmp 0x2a57
leaq -0x378(%rbp), %rdi
leaq -0x37c(%rbp), %rsi
callq 0x2110
movq %rax, -0x398(%rbp)
jmp 0x2a73
movq -0x398(%rbp), %rdi
movq (%rdi), %rax
movq -0x18(%rax), %rax
addq %rax, %rdi
callq 0x2270
movb %al, -0x399(%rbp)
jmp 0x2a91
movb -0x399(%rbp), %al
testb $0x1, %al
jne 0x2a9d
jmp 0x2ae4
movq -0x10(%rbp), %rdi
movl -0x37c(%rbp), %esi
callq 0x33f0
jmp 0x2aae
jmp 0x2a57
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x1c8(%rbp)
movl %eax, -0x1cc(%rbp)
jmp 0x2afe
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x1c8(%rbp)
movl %eax, -0x1cc(%rbp)
leaq -0x378(%rbp), %rdi
callq 0x2170
jmp 0x2afe
leaq -0x378(%rbp), %rdi
callq 0x2170
leaq -0x1f0(%rbp), %rdi
callq 0x2120
jmp 0x2b38
leaq -0x1f0(%rbp), %rdi
callq 0x2120
jmp 0x2b4a
movq 0x164dd(%rip), %rdi     # 0x18ff0
leaq 0xe5dd(%rip), %rsi      # 0x110f7
callq 0x21d0
movq %rax, %rdi
movq 0x16497(%rip), %rsi     # 0x18fc0
callq 0x2210
movl $0xffffffff, %edi       # imm = 0xFFFFFFFF
callq 0x2250
jmp 0x2b3a
jmp 0x2b3c
jmp 0x2893
addq $0x3a0, %rsp            # imm = 0x3A0
popq %rbp
retq
movq -0x1c8(%rbp), %rdi
callq 0x2340
nopw %cs:(%rax,%rax)