// File: /workspace/github_cpp_makefile_star2_O2/ncbi[P]amr/stx/common.cpp
// Function: Common_sp::TokenInput::getXmlText()
Token TokenInput::getXmlText ()
{ 
  QC_ASSERT (last. empty ());


  Token t;
  t. tp = ci. tp;
  size_t htmlTags = 0;
  bool prevSlash = false;
	for (;;)
	{ 
    // break
	  char c = ci. get (); 
		if (ci. eof)
	    ci. error ("XML text is not finished: end of file\n" + t. name, false);
	  if (c == '<')
	  {
	    const char nextChar = getNextChar (true);
	    if (nextChar == '/')
	    {
	      if (htmlTags)
	        htmlTags--;
	      else
	        break;
	    }
	    else if (   nextChar != '?' 
	             && nextChar != '!' 
	            )
	      htmlTags++;
	  }
	  else if (c == '>')
	    if (prevSlash && htmlTags)
	      htmlTags--;

    // Escaped character
    int n = c;
    if (n < 0)
      n += 256;
  	if (c == '&')
  	{
      if (ci. get () == '#')  // Number
      {
        if (ci. get () == 'x')
        {
          static const string err (" of an escaped hexadecimal of XML text"); 
          c = ci. get ();
          if (ci. eof)
            ci. error ("First digit" + err + ": end of file", false);
          if (! isHex (c))
            ci. error ("Digit" + err);
          const uchar uc = uchar (hex2uchar (c) * 16);
          c = ci. get ();
          if (ci. eof)
            ci. error ("Second digit" + err + ": end of file", false);
          if (! isHex (c))
            ci. error ("Second digit" + err);
          n = uc + hex2uchar (c);
        }
        else
        {
          ci. unget ();
          const Token ampToken (get ());
          if (ampToken. type != Token::eInteger)
            ci. error ("Number after XML &");
          if (ampToken. n < 0)
            ci. error ("Character number after XML &");
          n = (int) ampToken. n;
        }
      }
      else
      {
        ci. unget ();
        const Token ampToken (get ());
        if (ampToken. isName ("amp"))
          n = '&';
        else if (ampToken. isName ("lt"))
          n = '<';
        else if (ampToken. isName ("gt"))
          n = '>';
        else if (ampToken. isName ("apos"))
          n = '\''; 
        else if (ampToken. isName ("quot"))
          n = '\"'; 
        else
          ci. error ("Unknown XML &-symbol: " + strQuote (ampToken. name), false);
      }
      get (';');
  	}

    // t.name
    QC_ASSERT (n > 0);
	  if (nonPrintable (n))
			t. name += nonPrintable2str ((char) n);
    else
    {
      if (isChar (n))
		    t. name += char (n);
      else
        t. name += "&#" + to_string (n) + ";";
    }

		prevSlash = (c == '/');		  
	}
	

	trim (t. name);
	if (! t. name. empty ())
    t. type = Token::eText;  
  else
    { ASSERT (t. empty ()); }
	

  return t;
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x168, %rsp            # imm = 0x168
movq %rsi, %r12
movq %rdi, 0x58(%rsp)
callq 0xa060
movq %rax, 0xc0(%rsp)
andl $0x0, (%rax)
cmpl $0x1, 0x288(%r12)
jne 0x19165
cmpq $0x0, 0x298(%r12)
jne 0x19165
movq 0x58(%rsp), %rbx
movq %rbx, %rdi
callq 0x29150
leaq 0x8(%r12), %r14
movq 0x268(%r12), %rax
movq %rax, 0x54(%rbx)
leaq 0x10(%rbx), %rax
movq %rax, 0x28(%rsp)
movq $0x0, 0x30(%rsp)
xorl %r13d, %r13d
movq %r14, %rdi
callq 0x16cd8
cmpb $0x1, 0x220(%r12)
je 0x18f19
movl %eax, %r15d
cmpb $0x3e, %al
je 0x18b42
movzbl %r15b, %eax
cmpl $0x3c, %eax
jne 0x18b5c
movq %r12, %rdi
pushq $0x1
popq %rsi
callq 0x1957a
cmpb $0x21, %al
movq 0x30(%rsp), %rcx
je 0x18b5c
movzbl %al, %eax
cmpl $0x3f, %eax
je 0x18b5c
cmpl $0x2f, %eax
jne 0x18e71
testq %rcx, %rcx
je 0x18ed0
decq %rcx
jmp 0x18b57
movq 0x30(%rsp), %rcx
testq %rcx, %rcx
setne %al
andb %al, %r13b
movzbl %r13b, %eax
subq %rax, %rcx
movq %rcx, 0x30(%rsp)
movsbl %r15b, %eax
leal 0x100(%rax), %r13d
testb %r15b, %r15b
cmovnsl %eax, %r13d
cmpb $0x26, %r15b
jne 0x18daa
movq %r14, %rdi
callq 0x16cd8
cmpb $0x23, %al
jne 0x18c23
movq %r14, %rdi
callq 0x16cd8
cmpb $0x78, %al
jne 0x18d61
movb 0x3ef3a(%rip), %al      # 0x57ad8
testb %al, %al
je 0x18e79
movq %r14, %rdi
callq 0x16cd8
cmpb $0x1, 0x220(%r12)
je 0x19055
movsbl %al, %r15d
movl %r15d, %edi
callq 0x28248
testb %al, %al
je 0x190b8
movl %r15d, %edi
callq 0x2827a
movl %eax, %r13d
movq %r14, %rdi
callq 0x16cd8
cmpb $0x1, 0x220(%r12)
je 0x19018
movsbl %al, %r15d
movl %r15d, %edi
callq 0x28248
testb %al, %al
je 0x19106
shlb $0x4, %r13b
movzbl %r13b, %ebx
movl %r15d, %edi
callq 0x2827a
movzbl %al, %r13d
addl %ebx, %r13d
jmp 0x18d9f
movq %r14, %rdi
callq 0x16fe4
leaq 0x60(%rsp), %rdi
movq %r12, %rsi
callq 0x188e2
leaq 0x8(%rsp), %rbx
movq %rbx, %rdi
leaq 0x22eeb(%rip), %rsi     # 0x3bb32
leaq 0x38(%rsp), %rdx
callq 0xca4a
leaq 0x60(%rsp), %rdi
movq %rbx, %rsi
callq 0x2928c
movl %eax, %r15d
movq %rbx, %rdi
callq 0xab08
pushq $0x26
popq %rax
movl %eax, %r13d
testb %r15b, %r15b
jne 0x18d92
movq %rbx, %rdi
leaq 0x2434e(%rip), %rsi     # 0x3cfd0
leaq 0x38(%rsp), %rdx
callq 0xca4a
leaq 0x60(%rsp), %rdi
movq %rbx, %rsi
callq 0x2928c
movl %eax, %r15d
movq %rbx, %rdi
callq 0xab08
pushq $0x3c
popq %rax
movl %eax, %r13d
testb %r15b, %r15b
jne 0x18d92
movq %rbx, %rdi
leaq 0x22e79(%rip), %rsi     # 0x3bb36
leaq 0x38(%rsp), %rdx
callq 0xca4a
leaq 0x60(%rsp), %rdi
movq %rbx, %rsi
callq 0x2928c
movl %eax, %r15d
movq %rbx, %rdi
callq 0xab08
pushq $0x3e
popq %rax
movl %eax, %r13d
testb %r15b, %r15b
jne 0x18d92
movq %rbx, %rdi
leaq 0x22e41(%rip), %rsi     # 0x3bb39
leaq 0x38(%rsp), %rdx
callq 0xca4a
leaq 0x60(%rsp), %rdi
movq %rbx, %rsi
callq 0x2928c
movl %eax, %r15d
movq %rbx, %rdi
callq 0xab08
pushq $0x27
popq %rax
movl %eax, %r13d
testb %r15b, %r15b
jne 0x18d92
movq %rbx, %rdi
leaq 0x22e0f(%rip), %rsi     # 0x3bb3e
leaq 0x38(%rsp), %rdx
callq 0xca4a
leaq 0x60(%rsp), %rdi
movq %rbx, %rsi
callq 0x2928c
movl %eax, %r15d
movq %rbx, %rdi
callq 0xab08
pushq $0x22
popq %rax
movl %eax, %r13d
testb %r15b, %r15b
jne 0x18d92
jmp 0x1912e
movq %r14, %rdi
callq 0x16fe4
leaq 0x60(%rsp), %rdi
movq %r12, %rsi
callq 0x188e2
cmpl $0x3, 0x68(%rsp)
jne 0x190e0
movq 0x98(%rsp), %r13
testq %r13, %r13
js 0x19092
leaq 0x60(%rsp), %rdi
callq 0x291d4
movb $0x26, %r15b
movq %r12, %rdi
pushq $0x3b
popq %rsi
callq 0x292c8
movq 0xc0(%rsp), %rax
andl $0x0, (%rax)
testl %r13d, %r13d
jle 0x18f3e
cmpl $0x1f, %r13d
ja 0x18de7
movsbl %r13b, %esi
leaq 0x60(%rsp), %rbx
movq %rbx, %rdi
callq 0xf0b9
movq 0x28(%rsp), %rdi
movq %rbx, %rsi
callq 0xaaa0
movq %rbx, %rdi
jmp 0x18e5f
cmpl $0x7f, %r13d
ja 0x18dfd
movsbl %r13b, %esi
movq 0x28(%rsp), %rdi
callq 0xa4b0
jmp 0x18e64
leaq 0x38(%rsp), %rbp
movq %rbp, %rdi
movl %r13d, %esi
callq 0xd161
leaq 0x8(%rsp), %rbx
movq %rbx, %rdi
leaq 0x22d44(%rip), %rsi     # 0x3bb60
movq %rbp, %rdx
callq 0xd219
leaq 0x60(%rsp), %r13
movq %r13, %rdi
movq %rbx, %rsi
leaq 0x241a1(%rip), %rdx     # 0x3cfd7
callq 0xd0db
movq 0x28(%rsp), %rdi
movq %r13, %rsi
callq 0xaaa0
movq %r13, %rdi
callq 0xab08
leaq 0x8(%rsp), %rdi
callq 0xab08
leaq 0x38(%rsp), %rdi
callq 0xab08
cmpb $0x2f, %r15b
sete %r13b
jmp 0x18ae8
incq %rcx
jmp 0x18b57
leaq 0x3ec58(%rip), %rdi     # 0x57ad8
callq 0xaa00
testl %eax, %eax
je 0x18ba6
leaq 0x3ec24(%rip), %rdi     # 0x57ab8
leaq 0x22c21(%rip), %rsi     # 0x3babc
leaq 0x60(%rsp), %rdx
callq 0xca4a
movq 0x3e0a4(%rip), %rdi     # 0x56f50
leaq 0x3ec05(%rip), %rsi     # 0x57ab8
leaq 0x3e6ce(%rip), %rdx     # 0x57588
callq 0xa4d0
leaq 0x3ec12(%rip), %rdi     # 0x57ad8
callq 0xa3b0
jmp 0x18ba6
movq 0x28(%rsp), %rdi
callq 0xd1ba
movq 0x58(%rsp), %rcx
cmpq $0x0, 0x18(%rcx)
je 0x18eef
movl $0x2, 0x8(%rcx)
jmp 0x18f04
movq 0xc0(%rsp), %rax
andl $0x0, (%rax)
cmpl $0x1, 0x8(%rcx)
jne 0x1923f
movq %rcx, %rax
addq $0x168, %rsp            # imm = 0x168
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
leaq 0x22b75(%rip), %rsi     # 0x3ba95
leaq 0x60(%rsp), %rdi
movq 0x28(%rsp), %rdx
callq 0x27ff6
leaq 0x60(%rsp), %rsi
movq %r14, %rdi
xorl %edx, %edx
callq 0x28cbc
callq 0xa670
testl %eax, %eax
jne 0x19319
leaq 0x21b7d(%rip), %rsi     # 0x3aacf
leaq 0x128(%rsp), %rdi
leaq 0x7(%rsp), %rdx
callq 0xca4a
leaq 0x108(%rsp), %rdi
movl $0xa9f, %esi            # imm = 0xA9F
callq 0xd161
leaq 0x148(%rsp), %rdi
leaq 0x128(%rsp), %rsi
leaq 0x108(%rsp), %rdx
callq 0xd0fa
leaq 0x21385(%rip), %rdx     # 0x3a31f
leaq 0x38(%rsp), %rdi
leaq 0x148(%rsp), %rsi
callq 0xd0db
leaq 0x22aa9(%rip), %rsi     # 0x3ba5c
leaq 0xc8(%rsp), %rdi
leaq 0x6(%rsp), %rdx
callq 0xca4a
leaq 0x21b00(%rip), %rdx     # 0x3aacc
leaq 0xe8(%rsp), %rdi
leaq 0xc8(%rsp), %rsi
callq 0xd0db
leaq 0x8(%rsp), %rdi
leaq 0x38(%rsp), %rsi
leaq 0xe8(%rsp), %rdx
callq 0xd0fa
leaq 0x22b5b(%rip), %rdx     # 0x3bb5a
leaq 0x60(%rsp), %rdi
leaq 0x8(%rsp), %rsi
callq 0xd0db
leaq 0x60(%rsp), %rdi
callq 0xe374
leaq 0x22ad6(%rip), %rsi     # 0x3baf5
leaq 0x3ea92(%rip), %rdx     # 0x57ab8
leaq 0x8(%rsp), %rdi
callq 0x27ff6
leaq 0x22b86(%rip), %rdx     # 0x3bbbd
leaq 0x60(%rsp), %rdi
leaq 0x8(%rsp), %rsi
callq 0xd0db
leaq 0x60(%rsp), %rsi
movq %r14, %rdi
xorl %edx, %edx
callq 0x28cbc
leaq 0x22a87(%rip), %rsi     # 0x3bae3
leaq 0x3ea55(%rip), %rdx     # 0x57ab8
leaq 0x8(%rsp), %rdi
callq 0x27ff6
leaq 0x22b49(%rip), %rdx     # 0x3bbbd
leaq 0x60(%rsp), %rdi
leaq 0x8(%rsp), %rsi
callq 0xd0db
leaq 0x60(%rsp), %rsi
movq %r14, %rdi
xorl %edx, %edx
callq 0x28cbc
leaq 0x22a7c(%rip), %rsi     # 0x3bb15
leaq 0x8(%rsp), %rdi
leaq 0x38(%rsp), %rdx
callq 0xca4a
leaq 0x8(%rsp), %rsi
pushq $0x1
popq %rdx
movq %r14, %rdi
callq 0x28cbc
leaq 0x22a30(%rip), %rsi     # 0x3baef
leaq 0x3e9f2(%rip), %rdx     # 0x57ab8
leaq 0x60(%rsp), %rdi
callq 0x27ff6
leaq 0x60(%rsp), %rsi
pushq $0x1
popq %rdx
movq %r14, %rdi
callq 0x28cbc
leaq 0x22a1b(%rip), %rsi     # 0x3bb02
leaq 0x8(%rsp), %rdi
leaq 0x38(%rsp), %rdx
callq 0xca4a
leaq 0x8(%rsp), %rsi
pushq $0x1
popq %rdx
movq %r14, %rdi
callq 0x28cbc
leaq 0x229e8(%rip), %rsi     # 0x3baf5
leaq 0x3e9a4(%rip), %rdx     # 0x57ab8
leaq 0x60(%rsp), %rdi
callq 0x27ff6
leaq 0x60(%rsp), %rsi
pushq $0x1
popq %rdx
movq %r14, %rdi
callq 0x28cbc
leaq 0x70(%rsp), %rsi
leaq 0x38(%rsp), %rdi
pushq $0x22
popq %rdx
callq 0x10229
leaq 0x229fc(%rip), %rsi     # 0x3bb43
leaq 0x8(%rsp), %rdi
leaq 0x38(%rsp), %rdx
callq 0xd219
leaq 0x8(%rsp), %rsi
movq %r14, %rdi
xorl %edx, %edx
callq 0x28cbc
callq 0xa670
testl %eax, %eax
jne 0x19319
leaq 0x21956(%rip), %rsi     # 0x3aacf
leaq 0x128(%rsp), %rdi
leaq 0x7(%rsp), %rdx
callq 0xca4a
leaq 0x108(%rsp), %rdi
movl $0xa47, %esi            # imm = 0xA47
callq 0xd161
leaq 0x148(%rsp), %rdi
leaq 0x128(%rsp), %rsi
leaq 0x108(%rsp), %rdx
callq 0xd0fa
leaq 0x2115e(%rip), %rdx     # 0x3a31f
leaq 0x38(%rsp), %rdi
leaq 0x148(%rsp), %rsi
callq 0xd0db
leaq 0x22882(%rip), %rsi     # 0x3ba5c
leaq 0xc8(%rsp), %rdi
leaq 0x6(%rsp), %rdx
callq 0xca4a
leaq 0x218d9(%rip), %rdx     # 0x3aacc
leaq 0xe8(%rsp), %rdi
leaq 0xc8(%rsp), %rsi
callq 0xd0db
leaq 0x8(%rsp), %rdi
leaq 0x38(%rsp), %rsi
leaq 0xe8(%rsp), %rdx
callq 0xd0fa
leaq 0x22860(%rip), %rdx     # 0x3ba86
leaq 0x60(%rsp), %rdi
leaq 0x8(%rsp), %rsi
callq 0xd0db
leaq 0x60(%rsp), %rdi
callq 0xe374
callq 0xa670
testl %eax, %eax
jne 0x19319
leaq 0x2187c(%rip), %rsi     # 0x3aacf
leaq 0x128(%rsp), %rdi
leaq 0x7(%rsp), %rdx
callq 0xca4a
leaq 0x108(%rsp), %rdi
movl $0xab2, %esi            # imm = 0xAB2
callq 0xd161
leaq 0x148(%rsp), %rdi
leaq 0x128(%rsp), %rsi
leaq 0x108(%rsp), %rdx
callq 0xd0fa
leaq 0x21084(%rip), %rdx     # 0x3a31f
leaq 0x38(%rsp), %rdi
leaq 0x148(%rsp), %rsi
callq 0xd0db
leaq 0x227a8(%rip), %rsi     # 0x3ba5c
leaq 0xc8(%rsp), %rdi
leaq 0x6(%rsp), %rdx
callq 0xca4a
leaq 0x217ff(%rip), %rdx     # 0x3aacc
leaq 0xe8(%rsp), %rdi
leaq 0xc8(%rsp), %rsi
callq 0xd0db
leaq 0x8(%rsp), %rdi
leaq 0x38(%rsp), %rsi
leaq 0xe8(%rsp), %rdx
callq 0xd0fa
leaq 0x22789(%rip), %rdx     # 0x3ba89
leaq 0x60(%rsp), %rdi
leaq 0x8(%rsp), %rsi
callq 0xd0db
leaq 0x60(%rsp), %rdi
callq 0xe374
pushq $0x1
popq %rdi
callq 0xa680
jmp 0x193f4
jmp 0x19403
movq %rax, %r14
leaq 0x3e7a3(%rip), %rdi     # 0x57ad8
callq 0xa3a0
jmp 0x19567
jmp 0x19417
movq %rax, %r14
leaq 0x60(%rsp), %rdi
callq 0xab08
jmp 0x19356
movq %rax, %r14
leaq 0x8(%rsp), %rdi
callq 0xab08
jmp 0x1936a
jmp 0x19445
movq %rax, %r14
leaq 0xe8(%rsp), %rdi
callq 0xab08
jmp 0x19381
jmp 0x1945c
movq %rax, %r14
leaq 0xc8(%rsp), %rdi
callq 0xab08
jmp 0x19398
jmp 0x1947f
movq %rax, %r14
leaq 0x38(%rsp), %rdi
callq 0xab08
jmp 0x193ac
jmp 0x194d4
movq %rax, %r14
leaq 0x148(%rsp), %rdi
callq 0xab08
jmp 0x193c3
jmp 0x194ec
movq %rax, %r14
leaq 0x108(%rsp), %rdi
callq 0xab08
jmp 0x193da
jmp 0x19564
movq %rax, %r14
leaq 0x128(%rsp), %rdi
callq 0xab08
jmp 0x19571
movq %rax, %r14
jmp 0x19571
movq %rax, %r14
leaq 0x60(%rsp), %rdi
callq 0xab08
jmp 0x19406
movq %rax, %r14
leaq 0x8(%rsp), %rdi
callq 0xab08
jmp 0x1941a
jmp 0x19564
movq %rax, %r14
leaq 0xe8(%rsp), %rdi
callq 0xab08
jmp 0x19448
movq %rax, %r14
leaq 0x8(%rsp), %rdi
callq 0xab08
jmp 0x1943b
movq %rax, %r14
leaq 0x38(%rsp), %rdi
jmp 0x19535
movq %rax, %r14
leaq 0xc8(%rsp), %rdi
callq 0xab08
jmp 0x1945f
jmp 0x1953c
movq %rax, %r14
leaq 0x38(%rsp), %rdi
callq 0xab08
jmp 0x19482
jmp 0x1952d
jmp 0x1953c
jmp 0x1952d
jmp 0x1953c
movq %rax, %r14
leaq 0x148(%rsp), %rdi
callq 0xab08
jmp 0x194d7
jmp 0x19495
jmp 0x194a4
movq %rax, %r14
leaq 0x60(%rsp), %rdi
callq 0xab08
jmp 0x194a7
movq %rax, %r14
leaq 0x8(%rsp), %rdi
jmp 0x19559
jmp 0x1953c
jmp 0x1952d
jmp 0x19551
jmp 0x19564
jmp 0x1952d
jmp 0x1953c
jmp 0x19551
jmp 0x19564
jmp 0x1952d
jmp 0x1953c
movq %rax, %r14
leaq 0x108(%rsp), %rdi
callq 0xab08
jmp 0x194ef
jmp 0x19564
jmp 0x19564
jmp 0x19564
movq %rax, %r14
leaq 0x128(%rsp), %rdi
jmp 0x19559
jmp 0x1952d
jmp 0x1953c
jmp 0x19564
movq %rax, %r14
leaq 0x60(%rsp), %rdi
callq 0xab08
jmp 0x19515
jmp 0x19564
jmp 0x19564
movq %rax, %r14
leaq 0x8(%rsp), %rdi
callq 0xab08
jmp 0x19526
jmp 0x19564
movq %rax, %r14
leaq 0x38(%rsp), %rdi
jmp 0x19559
movq %rax, %r14
leaq 0x8(%rsp), %rdi
callq 0xab08
jmp 0x1953f
movq %rax, %r14
leaq 0x60(%rsp), %rdi
callq 0x291d4
jmp 0x19567
jmp 0x19564
jmp 0x19551
jmp 0x19564
movq %rax, %r14
leaq 0x60(%rsp), %rdi
callq 0xab08
jmp 0x19567
jmp 0x19564
jmp 0x19564
movq %rax, %r14
movq 0x58(%rsp), %rdi
callq 0x291d4
movq %r14, %rdi
callq 0xa9d0
nop