// File: kage08[P]RegexLibrary/Resource.cpp
// Function: toPostFix(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>&, std::set<char, std::less<char>, std::allocator<char>>)
string toPostFix(string& regex, set<char> alphabet){
  if(regex=="%") return regex;
  stack<char> opst;
  string ans="";
  for(char c:regex){
    if(alphabet.find(c)!=alphabet.end() || c=='@' || c=='%')
      ans.append(string(1,c));
    else if(c=='(')
      opst.push(c);
    else if(c==')'){
      while(!opst.empty() && opst.top()!='('){
        ans.append(string(1,opst.top()));
        opst.pop();
      }
      opst.pop();
    }
    else if(c=='*')
      opst.push('*');
    else if(c=='.'){
      while(!opst.empty() && opst.top()=='*'){
        ans.append(string(1,'*'));
        opst.pop();
      }
      opst.push(c);
    }
    else if(c=='+'){

      while(!opst.empty() && (opst.top()=='*' || opst.top()=='.')){
        ans.append(string(1,'*'));
        opst.pop();
      }
      opst.push(c);
    }
  }

  while(!opst.empty()){
    ans.append(string(1,opst.top()));
    opst.pop();
  }
  return ans;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x230, %rsp            # imm = 0x230
movq %rdx, -0x190(%rbp)
movq %rdi, -0x188(%rbp)
movq %rdi, %rax
movq %rax, -0x180(%rbp)
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq %rdx, -0x18(%rbp)
movq -0x10(%rbp), %rdi
leaq 0xcbe2(%rip), %rsi      # 0x1103c
callq 0x6260
testb $0x1, %al
jne 0x4465
jmp 0x447a
movq -0x188(%rbp), %rdi
movq -0x10(%rbp), %rsi
callq 0x20b0
jmp 0x4be4
leaq -0x68(%rbp), %rdi
callq 0x63b0
movb $0x0, -0x69(%rbp)
leaq -0x6a(%rbp), %rdi
movq %rdi, -0x198(%rbp)
callq 0x2390
movq -0x188(%rbp), %rdi
movq -0x198(%rbp), %rdx
leaq 0xcb8d(%rip), %rsi      # 0x11039
callq 0x6290
jmp 0x44b3
leaq -0x6a(%rbp), %rdi
callq 0x2230
movq -0x10(%rbp), %rax
movq %rax, -0x88(%rbp)
movq -0x88(%rbp), %rdi
callq 0x21a0
movq %rax, -0x90(%rbp)
movq -0x88(%rbp), %rdi
callq 0x2110
movq %rax, -0x98(%rbp)
leaq -0x90(%rbp), %rdi
leaq -0x98(%rbp), %rsi
callq 0x6030
testb $0x1, %al
jne 0x4509
jmp 0x4ac2
leaq -0x90(%rbp), %rdi
callq 0x6070
movq -0x190(%rbp), %rdi
movb (%rax), %al
movb %al, -0x99(%rbp)
leaq -0x99(%rbp), %rsi
callq 0x6090
movq %rax, -0x1a0(%rbp)
jmp 0x4539
movq -0x190(%rbp), %rdi
movq -0x1a0(%rbp), %rax
movq %rax, -0xa8(%rbp)
callq 0x5f00
movq %rax, -0xb0(%rbp)
leaq -0xa8(%rbp), %rdi
leaq -0xb0(%rbp), %rsi
callq 0x5f30
movb %al, %cl
movb $0x1, %al
testb $0x1, %cl
movb %al, -0x1a1(%rbp)
jne 0x45a3
movsbl -0x99(%rbp), %ecx
movb $0x1, %al
cmpl $0x40, %ecx
movb %al, -0x1a1(%rbp)
je 0x45a3
movsbl -0x99(%rbp), %eax
cmpl $0x25, %eax
sete %al
movb %al, -0x1a1(%rbp)
movb -0x1a1(%rbp), %al
testb $0x1, %al
jne 0x45b2
jmp 0x4686
movsbl -0x99(%rbp), %eax
movl %eax, -0x1b4(%rbp)
leaq -0xd1(%rbp), %rdi
movq %rdi, -0x1b0(%rbp)
callq 0x2390
movl -0x1b4(%rbp), %edx
movq -0x1b0(%rbp), %rcx
leaq -0xd0(%rbp), %rdi
movl $0x1, %esi
callq 0x6340
jmp 0x45f2
movq -0x188(%rbp), %rdi
leaq -0xd0(%rbp), %rsi
callq 0x23c0
jmp 0x4607
leaq -0xd0(%rbp), %rdi
callq 0x2140
leaq -0xd1(%rbp), %rdi
callq 0x2230
jmp 0x4aaf
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x78(%rbp)
movl %eax, -0x7c(%rbp)
leaq -0x6a(%rbp), %rdi
callq 0x2230
jmp 0x4bd9
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x78(%rbp)
movl %eax, -0x7c(%rbp)
jmp 0x4bcd
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x78(%rbp)
movl %eax, -0x7c(%rbp)
jmp 0x4675
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x78(%rbp)
movl %eax, -0x7c(%rbp)
leaq -0xd0(%rbp), %rdi
callq 0x2140
leaq -0xd1(%rbp), %rdi
callq 0x2230
jmp 0x4bcd
movsbl -0x99(%rbp), %eax
cmpl $0x28, %eax
jne 0x46a9
leaq -0x68(%rbp), %rdi
leaq -0x99(%rbp), %rsi
callq 0x63e0
jmp 0x46a4
jmp 0x4aad
movsbl -0x99(%rbp), %eax
cmpl $0x29, %eax
jne 0x47f1
jmp 0x46bb
leaq -0x68(%rbp), %rdi
callq 0x6410
movb %al, -0x1b5(%rbp)
jmp 0x46cc
movb -0x1b5(%rbp), %cl
xorl %eax, %eax
testb $0x1, %cl
movb %al, -0x1b6(%rbp)
jne 0x4709
jmp 0x46e1
leaq -0x68(%rbp), %rdi
callq 0x6430
movq %rax, -0x1c0(%rbp)
jmp 0x46f3
movq -0x1c0(%rbp), %rax
movsbl (%rax), %eax
cmpl $0x28, %eax
setne %al
movb %al, -0x1b6(%rbp)
movb -0x1b6(%rbp), %al
testb $0x1, %al
jne 0x4718
jmp 0x47e1
leaq -0x68(%rbp), %rdi
callq 0x6430
movq %rax, -0x1c8(%rbp)
jmp 0x472a
movq -0x1c8(%rbp), %rax
movsbl (%rax), %eax
movl %eax, -0x1d4(%rbp)
leaq -0xf9(%rbp), %rdi
movq %rdi, -0x1d0(%rbp)
callq 0x2390
movl -0x1d4(%rbp), %edx
movq -0x1d0(%rbp), %rcx
leaq -0xf8(%rbp), %rdi
movl $0x1, %esi
callq 0x6340
jmp 0x476d
movq -0x188(%rbp), %rdi
leaq -0xf8(%rbp), %rsi
callq 0x23c0
jmp 0x4782
leaq -0xf8(%rbp), %rdi
callq 0x2140
leaq -0xf9(%rbp), %rdi
callq 0x2230
leaq -0x68(%rbp), %rdi
callq 0x6450
jmp 0x47a5
jmp 0x46bb
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x78(%rbp)
movl %eax, -0x7c(%rbp)
jmp 0x47d0
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x78(%rbp)
movl %eax, -0x7c(%rbp)
leaq -0xf8(%rbp), %rdi
callq 0x2140
leaq -0xf9(%rbp), %rdi
callq 0x2230
jmp 0x4bcd
leaq -0x68(%rbp), %rdi
callq 0x6450
jmp 0x47ec
jmp 0x4aab
movsbl -0x99(%rbp), %eax
cmpl $0x2a, %eax
jne 0x481b
movb $0x2a, -0xfa(%rbp)
leaq -0x68(%rbp), %rdi
leaq -0xfa(%rbp), %rsi
callq 0x6470
jmp 0x4816
jmp 0x4aa9
movsbl -0x99(%rbp), %eax
cmpl $0x2e, %eax
jne 0x4947
jmp 0x482d
leaq -0x68(%rbp), %rdi
callq 0x6410
movb %al, -0x1d5(%rbp)
jmp 0x483e
movb -0x1d5(%rbp), %cl
xorl %eax, %eax
testb $0x1, %cl
movb %al, -0x1d6(%rbp)
jne 0x487b
jmp 0x4853
leaq -0x68(%rbp), %rdi
callq 0x6430
movq %rax, -0x1e0(%rbp)
jmp 0x4865
movq -0x1e0(%rbp), %rax
movsbl (%rax), %eax
cmpl $0x2a, %eax
sete %al
movb %al, -0x1d6(%rbp)
movb -0x1d6(%rbp), %al
testb $0x1, %al
jne 0x488a
jmp 0x4930
leaq -0x121(%rbp), %rdi
movq %rdi, -0x1e8(%rbp)
callq 0x2390
movq -0x1e8(%rbp), %rcx
leaq -0x120(%rbp), %rdi
movl $0x1, %esi
movl $0x2a, %edx
callq 0x6340
jmp 0x48bc
movq -0x188(%rbp), %rdi
leaq -0x120(%rbp), %rsi
callq 0x23c0
jmp 0x48d1
leaq -0x120(%rbp), %rdi
callq 0x2140
leaq -0x121(%rbp), %rdi
callq 0x2230
leaq -0x68(%rbp), %rdi
callq 0x6450
jmp 0x48f4
jmp 0x482d
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x78(%rbp)
movl %eax, -0x7c(%rbp)
jmp 0x491f
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x78(%rbp)
movl %eax, -0x7c(%rbp)
leaq -0x120(%rbp), %rdi
callq 0x2140
leaq -0x121(%rbp), %rdi
callq 0x2230
jmp 0x4bcd
leaq -0x68(%rbp), %rdi
leaq -0x99(%rbp), %rsi
callq 0x63e0
jmp 0x4942
jmp 0x4aa7
movsbl -0x99(%rbp), %eax
cmpl $0x2b, %eax
jne 0x4aa5
jmp 0x4959
leaq -0x68(%rbp), %rdi
callq 0x6410
movb %al, -0x1e9(%rbp)
jmp 0x496a
movb -0x1e9(%rbp), %cl
xorl %eax, %eax
testb $0x1, %cl
movb %al, -0x1ea(%rbp)
jne 0x49dc
jmp 0x497f
leaq -0x68(%rbp), %rdi
callq 0x6430
movq %rax, -0x1f8(%rbp)
jmp 0x4991
movq -0x1f8(%rbp), %rax
movsbl (%rax), %ecx
movb $0x1, %al
cmpl $0x2a, %ecx
movb %al, -0x1f9(%rbp)
je 0x49d0
leaq -0x68(%rbp), %rdi
callq 0x6430
movq %rax, -0x208(%rbp)
jmp 0x49ba
movq -0x208(%rbp), %rax
movsbl (%rax), %eax
cmpl $0x2e, %eax
sete %al
movb %al, -0x1f9(%rbp)
movb -0x1f9(%rbp), %al
movb %al, -0x1ea(%rbp)
movb -0x1ea(%rbp), %al
testb $0x1, %al
jne 0x49eb
jmp 0x4a91
leaq -0x149(%rbp), %rdi
movq %rdi, -0x210(%rbp)
callq 0x2390
movq -0x210(%rbp), %rcx
leaq -0x148(%rbp), %rdi
movl $0x1, %esi
movl $0x2a, %edx
callq 0x6340
jmp 0x4a1d
movq -0x188(%rbp), %rdi
leaq -0x148(%rbp), %rsi
callq 0x23c0
jmp 0x4a32
leaq -0x148(%rbp), %rdi
callq 0x2140
leaq -0x149(%rbp), %rdi
callq 0x2230
leaq -0x68(%rbp), %rdi
callq 0x6450
jmp 0x4a55
jmp 0x4959
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x78(%rbp)
movl %eax, -0x7c(%rbp)
jmp 0x4a80
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x78(%rbp)
movl %eax, -0x7c(%rbp)
leaq -0x148(%rbp), %rdi
callq 0x2140
leaq -0x149(%rbp), %rdi
callq 0x2230
jmp 0x4bcd
leaq -0x68(%rbp), %rdi
leaq -0x99(%rbp), %rsi
callq 0x63e0
jmp 0x4aa3
jmp 0x4aa5
jmp 0x4aa7
jmp 0x4aa9
jmp 0x4aab
jmp 0x4aad
jmp 0x4aaf
jmp 0x4ab1
leaq -0x90(%rbp), %rdi
callq 0x6170
jmp 0x44ed
jmp 0x4ac4
leaq -0x68(%rbp), %rdi
callq 0x6410
movb %al, -0x211(%rbp)
jmp 0x4ad5
movb -0x211(%rbp), %al
xorb $-0x1, %al
testb $0x1, %al
jne 0x4ae6
jmp 0x4bac
leaq -0x68(%rbp), %rdi
callq 0x6430
movq %rax, -0x220(%rbp)
jmp 0x4af8
movq -0x220(%rbp), %rax
movsbl (%rax), %eax
movl %eax, -0x22c(%rbp)
leaq -0x171(%rbp), %rdi
movq %rdi, -0x228(%rbp)
callq 0x2390
movl -0x22c(%rbp), %edx
movq -0x228(%rbp), %rcx
leaq -0x170(%rbp), %rdi
movl $0x1, %esi
callq 0x6340
jmp 0x4b3b
movq -0x188(%rbp), %rdi
leaq -0x170(%rbp), %rsi
callq 0x23c0
jmp 0x4b50
leaq -0x170(%rbp), %rdi
callq 0x2140
leaq -0x171(%rbp), %rdi
callq 0x2230
leaq -0x68(%rbp), %rdi
callq 0x6450
jmp 0x4b73
jmp 0x4ac4
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x78(%rbp)
movl %eax, -0x7c(%rbp)
jmp 0x4b9e
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x78(%rbp)
movl %eax, -0x7c(%rbp)
leaq -0x170(%rbp), %rdi
callq 0x2140
leaq -0x171(%rbp), %rdi
callq 0x2230
jmp 0x4bcd
movb $0x1, -0x69(%rbp)
testb $0x1, -0x69(%rbp)
jne 0x4bc2
movq -0x188(%rbp), %rdi
callq 0x2140
leaq -0x68(%rbp), %rdi
callq 0x64a0
jmp 0x4be4
movq -0x188(%rbp), %rdi
callq 0x2140
leaq -0x68(%rbp), %rdi
callq 0x64a0
jmp 0x4bf4
movq -0x180(%rbp), %rax
addq $0x230, %rsp            # imm = 0x230
popq %rbp
retq
movq -0x78(%rbp), %rdi
callq 0x2380
nopl (%rax)