// File: yeonnic[P]solparser/././argx.hpp
// Function: args::Wrap(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const&, unsigned long, unsigned long)
inline std::vector<std::string> Wrap(const std::string &in, const std::string::size_type width, std::string::size_type firstlinewidth = 0)
    {
        // Preserve existing line breaks
        const auto newlineloc = in.find('\n');
        if (newlineloc != in.npos)
        {
            auto first = Wrap(std::string(in, 0, newlineloc), width);
            auto second = Wrap(std::string(in, newlineloc + 1), width);
            first.insert(
                std::end(first),
                std::make_move_iterator(std::begin(second)),
                std::make_move_iterator(std::end(second)));
            return first;
        }

        std::istringstream stream(in);
        std::string::size_type indent = 0;

        for (char c : in)
        {
            if (!isspace(c))
            {
                break;
            }
            ++indent;
        }

        return Wrap(std::istream_iterator<std::string>(stream), std::istream_iterator<std::string>(),
                    width, firstlinewidth, indent);
    }

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x330, %rsp            # imm = 0x330
movq %rdi, -0x2f0(%rbp)
movq %rdi, %rax
movq %rax, -0x2e8(%rbp)
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq %rdx, -0x18(%rbp)
movq %rcx, -0x20(%rbp)
movq -0x10(%rbp), %rdi
movl $0xa, %esi
xorl %eax, %eax
movl %eax, %edx
callq 0x6480
movq %rax, -0x28(%rbp)
cmpq $-0x1, -0x28(%rbp)
je 0x2d63e
movb $0x0, -0x29(%rbp)
movq -0x10(%rbp), %rsi
movq -0x28(%rbp), %rcx
xorl %eax, %eax
movl %eax, %edx
movq %rdx, -0x2f8(%rbp)
leaq -0x50(%rbp), %rdi
movq %rdi, -0x300(%rbp)
callq 0x64e0
movq -0x2f0(%rbp), %rdi
movq -0x300(%rbp), %rsi
movq -0x2f8(%rbp), %rcx
movq -0x18(%rbp), %rdx
callq 0x2d3c0
jmp 0x2d454
leaq -0x50(%rbp), %rdi
callq 0x61f0
movq -0x10(%rbp), %rax
movq %rax, -0x318(%rbp)
movq -0x28(%rbp), %rax
incq %rax
movq %rax, -0x310(%rbp)
leaq -0x99(%rbp), %rdi
movq %rdi, -0x308(%rbp)
callq 0x6630
movq -0x318(%rbp), %rsi
movq -0x310(%rbp), %rdx
movq -0x308(%rbp), %rcx
leaq -0x98(%rbp), %rdi
callq 0x6040
jmp 0x2d4ac
movq -0x18(%rbp), %rdx
xorl %eax, %eax
movl %eax, %ecx
leaq -0x78(%rbp), %rdi
leaq -0x98(%rbp), %rsi
callq 0x2d3c0
jmp 0x2d4c6
leaq -0x98(%rbp), %rdi
callq 0x61f0
leaq -0x99(%rbp), %rdi
callq 0x6390
movq -0x2f0(%rbp), %rdi
callq 0x13ba0
movq %rax, -0xb0(%rbp)
leaq -0xa8(%rbp), %rdi
leaq -0xb0(%rbp), %rsi
callq 0x13bd0
leaq -0x78(%rbp), %rdi
callq 0x13c40
movq %rax, -0xc0(%rbp)
movq -0xc0(%rbp), %rdi
callq 0x13c10
movq %rax, -0x320(%rbp)
jmp 0x2d529
movq -0x320(%rbp), %rax
movq %rax, -0xb8(%rbp)
leaq -0x78(%rbp), %rdi
callq 0x13ba0
movq %rax, -0xd0(%rbp)
movq -0xd0(%rbp), %rdi
callq 0x13c10
movq %rax, -0x328(%rbp)
jmp 0x2d55c
movq -0x2f0(%rbp), %rdi
movq -0x328(%rbp), %rax
movq %rax, -0xc8(%rbp)
movq -0xa8(%rbp), %rsi
movq -0xb8(%rbp), %rdx
movq -0xc8(%rbp), %rcx
callq 0x13af0
movq %rax, -0x330(%rbp)
jmp 0x2d594
movq -0x330(%rbp), %rax
movq %rax, -0xd8(%rbp)
movb $0x1, -0x29(%rbp)
leaq -0x78(%rbp), %rdi
callq 0x13c70
testb $0x1, -0x29(%rbp)
jne 0x2d628
jmp 0x2d61c
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
leaq -0x50(%rbp), %rdi
callq 0x61f0
jmp 0x2d7c1
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
jmp 0x2d5f7
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
leaq -0x98(%rbp), %rdi
callq 0x61f0
leaq -0x99(%rbp), %rdi
callq 0x6390
jmp 0x2d62d
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
leaq -0x78(%rbp), %rdi
callq 0x13c70
jmp 0x2d62d
movq -0x2f0(%rbp), %rdi
callq 0x13c70
jmp 0x2d7b1
movq -0x2f0(%rbp), %rdi
callq 0x13c70
jmp 0x2d7c1
movq -0x10(%rbp), %rsi
leaq -0x258(%rbp), %rdi
movl $0x8, %edx
callq 0x65d0
movq $0x0, -0x260(%rbp)
movq -0x10(%rbp), %rax
movq %rax, -0x268(%rbp)
movq -0x268(%rbp), %rdi
callq 0x6300
movq %rax, -0x270(%rbp)
movq -0x268(%rbp), %rdi
callq 0x6650
movq %rax, -0x278(%rbp)
leaq -0x270(%rbp), %rdi
leaq -0x278(%rbp), %rsi
callq 0x16ac0
testb $0x1, %al
jne 0x2d6a8
jmp 0x2d6ef
leaq -0x270(%rbp), %rdi
callq 0x16b00
movb (%rax), %al
movb %al, -0x279(%rbp)
movsbl -0x279(%rbp), %edi
callq 0x6060
cmpl $0x0, %eax
jne 0x2d6cf
jmp 0x2d6ef
movq -0x260(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x260(%rbp)
leaq -0x270(%rbp), %rdi
callq 0x16b50
jmp 0x2d68f
leaq -0x2b0(%rbp), %rdi
leaq -0x258(%rbp), %rsi
callq 0x2de60
jmp 0x2d704
leaq -0x2e0(%rbp), %rdi
callq 0x2dec0
jmp 0x2d712
movq -0x2f0(%rbp), %rdi
movq -0x18(%rbp), %rcx
movq -0x20(%rbp), %r8
movq -0x260(%rbp), %r9
leaq -0x2b0(%rbp), %rsi
leaq -0x2e0(%rbp), %rdx
callq 0x2db40
jmp 0x2d73d
leaq -0x2e0(%rbp), %rdi
callq 0x2df00
leaq -0x2b0(%rbp), %rdi
callq 0x2df00
leaq -0x258(%rbp), %rdi
callq 0x6190
jmp 0x2d7b1
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
jmp 0x2d7a3
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
jmp 0x2d797
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
leaq -0x2e0(%rbp), %rdi
callq 0x2df00
leaq -0x2b0(%rbp), %rdi
callq 0x2df00
leaq -0x258(%rbp), %rdi
callq 0x6190
jmp 0x2d7c1
movq -0x2e8(%rbp), %rax
addq $0x330, %rsp            # imm = 0x330
popq %rbp
retq
movq -0x58(%rbp), %rdi
callq 0x6620
nopw (%rax,%rax)