// File: /workspace/github_cpp_makefile_star2_O2/rksdna[P]json/./json.hpp
// Function: std::ostream_iterator<char, char, std::char_traits<char>> json::basic_writer<char, std::char_traits<char>, std::allocator<char>>::write<std::ostream_iterator<char, char, std::char_traits<char>>>(json::item, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const&, std::ostream_iterator<char, char, std::char_traits<char>>)
OutputIterator write(json::item item, const string_type &data, OutputIterator output)
    {
        static const string_type object_begin_data = {'{'};
        static const string_type object_end_data = {'}'};
        static const string_type array_begin_data = {'['};
        static const string_type array_end_data = {']'};
        static const string_type comma_data = {','};
        static const string_type colon_data = {':', ' '};
        static const string_type null_data = {'n', 'u', 'l', 'l'};
        static const string_type true_data = {'t', 'r', 'u', 'e'};
        static const string_type false_data = {'f', 'a', 'l', 's', 'e'};

        if (m_state.empty())
        {
            if (item == json::item::object_begin)
                return token(object_begin_data, output), push(object_1_state), output;

            if (item == json::item::array_begin)
                return token(array_begin_data, output), push(array_1_state), output;

            throw json::exception("object or array begin expected");
        }

        switch (m_state.top())
        {
        case object_1_state:
            if (item == json::item::object_end)
                return pop(), token(object_end_data, output), output;

            if (item == json::item::key)
                return endl(output), string(data, output), token(colon_data, output), jump(object_v_state), output;

            throw json::exception("object end or key expected");

        case object_v_state:
            if (item == json::item::object_begin)
                return token(object_begin_data, output), jump(object_n_state), push(object_1_state), output;

            if (item == json::item::array_begin)
                return token(array_begin_data, output), jump(object_n_state), push(array_1_state), output;

            if (item == json::item::string_value)
                return string(data, output), jump(object_n_state), output;

            if (item == json::item::integer_value)
                return token(data, output), jump(object_n_state), output;

            if (item == json::item::real_value)
                return token(data, output), jump(object_n_state), output;

            if (item == json::item::null_value)
                return token(null_data, output), jump(object_n_state), output;

            if (item == json::item::true_value)
                return token(true_data, output), jump(object_n_state), output;

            if (item == json::item::false_value)
                return token(false_data, output), jump(object_n_state), output;

            throw json::exception("value expected");

        case object_n_state:
            if (item == json::item::object_end)
                return pop(), endl(output), token(object_end_data, output), output;

            if (item == json::item::key)
                return token(comma_data, output), endl(output), string(data, output), token(colon_data, output), jump(object_v_state), output;

            throw json::exception("object end of key expected");

        case array_1_state:
            if (item == json::item::array_end)
                return pop(), token(array_end_data, output), output;

            if (item == json::item::object_begin)
                return endl(output), token(object_begin_data, output), jump(array_n_state), push(object_1_state), output;

            if (item == json::item::array_begin)
                return endl(output), token(array_begin_data, output), jump(array_n_state), push(array_1_state), output;

            if (item == json::item::string_value)
                return endl(output), string(data, output), jump(array_n_state), output;

            if (item == json::item::integer_value)
                return endl(output), token(data, output), jump(array_n_state), output;

            if (item == json::item::real_value)
                return endl(output), token(data, output), jump(array_n_state), output;

            if (item == json::item::null_value)
                return endl(output), token(null_data, output), jump(array_n_state), output;

            if (item == json::item::true_value)
                return endl(output), token(true_data, output), jump(array_n_state), output;

            if (item == json::item::false_value)
                return endl(output), token(false_data, output), jump(array_n_state), output;

            throw json::exception("array end of value expected");

        case array_n_state:
            if (item == json::item::array_end)
                return pop(), endl(output), token(array_end_data, output), output;

            if (item == json::item::object_begin)
                return token(comma_data, output), endl(output), token(object_begin_data, output), push(object_1_state), output;

            if (item == json::item::array_begin)
                return token(comma_data, output), endl(output), token(array_begin_data, output), push(array_1_state), output;

            if (item == json::item::string_value)
                return token(comma_data, output), endl(output), string(data, output), output;

            if (item == json::item::integer_value)
                return token(comma_data, output), endl(output), token(data, output), output;

            if (item == json::item::real_value)
                return token(comma_data, output), endl(output), token(data, output), output;

            if (item == json::item::null_value)
                return token(comma_data, output), endl(output), token(null_data, output), output;

            if (item == json::item::true_value)
                return token(comma_data, output), endl(output), token(true_data, output), output;

            if (item == json::item::false_value)
                return token(comma_data, output), endl(output), token(false_data, output), output;

            throw json::exception("array end of value expected");
        }

        throw std::bad_exception();
    }

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r12
pushq %rbx
movq %r8, %rbx
movq %rcx, %r12
movl %edx, %ebp
movq %rsi, %r15
movq %rdi, %r14
movb 0x67b4(%rip), %al       # 0x9168
testb %al, %al
je 0x2ef3
movb 0x67ce(%rip), %al       # 0x9190
testb %al, %al
je 0x2f54
movb 0x67e8(%rip), %al       # 0x91b8
testb %al, %al
je 0x2fb5
movb 0x6802(%rip), %al       # 0x91e0
testb %al, %al
je 0x3016
movb 0x681c(%rip), %al       # 0x9208
testb %al, %al
je 0x3077
movb 0x6836(%rip), %al       # 0x9230
testb %al, %al
je 0x30d8
movb 0x6850(%rip), %al       # 0x9258
testb %al, %al
je 0x3140
movb 0x686a(%rip), %al       # 0x9280
testb %al, %al
je 0x31a9
movb 0x6884(%rip), %al       # 0x92a8
testb %al, %al
je 0x3212
movq 0x38(%r15), %rax
cmpq 0x18(%r15), %rax
je 0x2a86
cmpq 0x40(%r15), %rax
jne 0x2a49
movq 0x50(%r15), %rcx
movl $0x200, %eax            # imm = 0x200
addq -0x8(%rcx), %rax
movl -0x4(%rax), %eax
cmpq $0x4, %rax
ja 0x329d
leaq 0x8(%r15), %rdi
leaq 0x35a3(%rip), %rcx      # 0x6004
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
cmpl $0x4, %ebp
je 0x2b95
cmpl $0x1, %ebp
jne 0x32e9
callq 0x3814
jmp 0x2b15
cmpl $0x2, %ebp
je 0x2d72
testl %ebp, %ebp
jne 0x327d
leaq 0x66aa(%rip), %rsi      # 0x9148
movq %r15, %rdi
movq %rbx, %rdx
callq 0x339a
movq %r15, %rdi
xorl %esi, %esi
jmp 0x2d8a
cmpl $0xa, %ebp
ja 0x333d
movl %ebp, %eax
leaq 0x3553(%rip), %rcx      # 0x6018
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
leaq 0x6713(%rip), %rsi      # 0x91e8
movq %r15, %rdi
movq %rbx, %rdx
callq 0x339a
movq %r15, %rdi
movq %rbx, %rsi
callq 0x3418
movq %r15, %rdi
movq %r12, %rsi
jmp 0x2b1f
cmpl $0x4, %ebp
je 0x2b83
cmpl $0x1, %ebp
jne 0x32c9
callq 0x3814
movq %r15, %rdi
movq %rbx, %rsi
callq 0x3418
leaq 0x6654(%rip), %rsi      # 0x9170
movq %r15, %rdi
movq %rbx, %rdx
callq 0x339a
jmp 0x2d8f
cmpl $0xa, %ebp
ja 0x335d
movl %ebp, %eax
leaq 0x3506(%rip), %rcx      # 0x6044
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
movq %r15, %rdi
movq %rbx, %rsi
callq 0x3418
movq %r15, %rdi
movq %r12, %rsi
jmp 0x2ec8
cmpl $0xa, %ebp
ja 0x331d
movl %ebp, %eax
leaq 0x3501(%rip), %rcx      # 0x6070
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
movq %r15, %rdi
movq %r12, %rsi
jmp 0x2c7f
leaq 0x665e(%rip), %rsi      # 0x91e8
movq %r15, %rdi
movq %rbx, %rdx
callq 0x339a
movq %r15, %rdi
movq %rbx, %rsi
callq 0x3418
movq %r15, %rdi
movq %r12, %rsi
movq %rbx, %rdx
callq 0x3482
leaq 0x665b(%rip), %rsi      # 0x9210
movq %r15, %rdi
movq %rbx, %rdx
callq 0x339a
movq 0x38(%r15), %rax
cmpq 0x40(%r15), %rax
jne 0x2bd7
movq 0x50(%r15), %rcx
movl $0x200, %eax            # imm = 0x200
addq -0x8(%rcx), %rax
movl $0x1, -0x4(%rax)
jmp 0x2d8f
leaq 0x664e(%rip), %rsi      # 0x9238
jmp 0x2c7c
movq %r15, %rdi
movq %r12, %rsi
movq %rbx, %rdx
callq 0x3482
jmp 0x2c87
leaq 0x658f(%rip), %rsi      # 0x9198
movq %r15, %rdi
movq %rbx, %rdx
callq 0x339a
movq 0x38(%r15), %rax
cmpq 0x40(%r15), %rax
jne 0x2c2b
movq 0x50(%r15), %rcx
movl $0x200, %eax            # imm = 0x200
addq -0x8(%rcx), %rax
movl $0x2, -0x4(%rax)
jmp 0x2d84
leaq 0x650a(%rip), %rsi      # 0x9148
movq %r15, %rdi
movq %rbx, %rdx
callq 0x339a
movq 0x38(%r15), %rax
cmpq 0x40(%r15), %rax
jne 0x2c60
movq 0x50(%r15), %rcx
movl $0x200, %eax            # imm = 0x200
addq -0x8(%rcx), %rax
movl $0x2, -0x4(%rax)
jmp 0x2aa9
leaq 0x6615(%rip), %rsi      # 0x9288
jmp 0x2c7c
leaq 0x65e4(%rip), %rsi      # 0x9260
movq %r15, %rdi
movq %rbx, %rdx
callq 0x339a
movq 0x38(%r15), %rax
cmpq 0x40(%r15), %rax
jne 0x2c9e
movq 0x50(%r15), %rcx
movl $0x200, %eax            # imm = 0x200
addq -0x8(%rcx), %rax
movl $0x2, -0x4(%rax)
jmp 0x2d8f
leaq 0x6537(%rip), %rsi      # 0x91e8
movq %r15, %rdi
movq %rbx, %rdx
callq 0x339a
movq %r15, %rdi
movq %rbx, %rsi
callq 0x3418
leaq 0x65ba(%rip), %rsi      # 0x9288
jmp 0x2b1c
movq %r15, %rdi
movq %rbx, %rsi
callq 0x3418
leaq 0x65a3(%rip), %rsi      # 0x9288
jmp 0x2ec5
callq 0x3814
movq %r15, %rdi
movq %rbx, %rsi
callq 0x3418
jmp 0x2da7
leaq 0x64e2(%rip), %rsi      # 0x91e8
movq %r15, %rdi
movq %rbx, %rdx
callq 0x339a
movq %r15, %rdi
movq %rbx, %rsi
callq 0x3418
movq %r15, %rdi
movq %r12, %rsi
movq %rbx, %rdx
callq 0x3482
jmp 0x2d8f
leaq 0x64b5(%rip), %rsi      # 0x91e8
movq %r15, %rdi
movq %rbx, %rdx
callq 0x339a
movq %r15, %rdi
movq %rbx, %rsi
callq 0x3418
leaq 0x6510(%rip), %rsi      # 0x9260
jmp 0x2b1c
leaq 0x648c(%rip), %rsi      # 0x91e8
movq %r15, %rdi
movq %rbx, %rdx
callq 0x339a
movq %r15, %rdi
movq %rbx, %rsi
callq 0x3418
leaq 0x641f(%rip), %rsi      # 0x9198
movq %r15, %rdi
movq %rbx, %rdx
callq 0x339a
pushq $0x3
popq %rsi
movq %r15, %rdi
callq 0x33d6
movups (%rbx), %xmm0
movups %xmm0, (%r14)
movq %r14, %rax
popq %rbx
popq %r12
popq %r14
popq %r15
popq %rbp
retq
callq 0x3814
leaq 0x6412(%rip), %rsi      # 0x91c0
jmp 0x2b1c
leaq 0x642e(%rip), %rsi      # 0x91e8
movq %r15, %rdi
movq %rbx, %rdx
callq 0x339a
movq %r15, %rdi
movq %rbx, %rsi
callq 0x3418
jmp 0x2a97
movq %r15, %rdi
movq %rbx, %rsi
callq 0x3418
movq %r15, %rdi
movq %r12, %rsi
movq %rbx, %rdx
callq 0x3482
jmp 0x2ed0
movq %r15, %rdi
movq %rbx, %rsi
callq 0x3418
leaq 0x645b(%rip), %rsi      # 0x9260
jmp 0x2ec5
movq %r15, %rdi
movq %rbx, %rsi
callq 0x3418
leaq 0x637c(%rip), %rsi      # 0x9198
movq %r15, %rdi
movq %rbx, %rdx
callq 0x339a
movq 0x38(%r15), %rax
cmpq 0x40(%r15), %rax
jne 0x2e3e
movq 0x50(%r15), %rcx
movl $0x200, %eax            # imm = 0x200
addq -0x8(%rcx), %rax
movl $0x4, -0x4(%rax)
jmp 0x2d84
leaq 0x6397(%rip), %rsi      # 0x91e8
movq %r15, %rdi
movq %rbx, %rdx
callq 0x339a
movq %r15, %rdi
movq %rbx, %rsi
callq 0x3418
leaq 0x63ca(%rip), %rsi      # 0x9238
jmp 0x2b1c
movq %r15, %rdi
movq %rbx, %rsi
callq 0x3418
leaq 0x62c3(%rip), %rsi      # 0x9148
movq %r15, %rdi
movq %rbx, %rdx
callq 0x339a
movq 0x38(%r15), %rax
cmpq 0x40(%r15), %rax
jne 0x2ea7
movq 0x50(%r15), %rcx
movl $0x200, %eax            # imm = 0x200
addq -0x8(%rcx), %rax
movl $0x4, -0x4(%rax)
jmp 0x2aa9
movq %r15, %rdi
movq %rbx, %rsi
callq 0x3418
leaq 0x6373(%rip), %rsi      # 0x9238
movq %r15, %rdi
movq %rbx, %rdx
callq 0x339a
movq 0x38(%r15), %rax
cmpq 0x40(%r15), %rax
jne 0x2ee7
movq 0x50(%r15), %rcx
movl $0x200, %eax            # imm = 0x200
addq -0x8(%rcx), %rax
movl $0x4, -0x4(%rax)
jmp 0x2d8f
leaq 0x626e(%rip), %rdi      # 0x9168
callq 0x2220
testl %eax, %eax
je 0x29bc
leaq 0x624a(%rip), %rax      # 0x9158
movq %rax, 0x6233(%rip)      # 0x9148
leaq 0x622c(%rip), %rsi      # 0x9148
movw $0x7b, 0x6233(%rip)     # 0x9158
movq $0x1, 0x6220(%rip) # 0x9150
movq 0x6069(%rip), %rdi      # 0x8fa0
leaq 0x61ea(%rip), %rdx      # 0x9128
callq 0x2120
leaq 0x621e(%rip), %rdi      # 0x9168
callq 0x20d0
jmp 0x29bc
leaq 0x6235(%rip), %rdi      # 0x9190
callq 0x2220
testl %eax, %eax
je 0x29ca
leaq 0x6211(%rip), %rax      # 0x9180
movq %rax, 0x61fa(%rip)      # 0x9170
leaq 0x61f3(%rip), %rsi      # 0x9170
movw $0x7d, 0x61fa(%rip)     # 0x9180
movq $0x1, 0x61e7(%rip) # 0x9178
movq 0x6008(%rip), %rdi      # 0x8fa0
leaq 0x6189(%rip), %rdx      # 0x9128
callq 0x2120
leaq 0x61e5(%rip), %rdi      # 0x9190
callq 0x20d0
jmp 0x29ca
leaq 0x61fc(%rip), %rdi      # 0x91b8
callq 0x2220
testl %eax, %eax
je 0x29d8
leaq 0x61d8(%rip), %rax      # 0x91a8
movq %rax, 0x61c1(%rip)      # 0x9198
leaq 0x61ba(%rip), %rsi      # 0x9198
movw $0x5b, 0x61c1(%rip)     # 0x91a8
movq $0x1, 0x61ae(%rip) # 0x91a0
movq 0x5fa7(%rip), %rdi      # 0x8fa0
leaq 0x6128(%rip), %rdx      # 0x9128
callq 0x2120
leaq 0x61ac(%rip), %rdi      # 0x91b8
callq 0x20d0
jmp 0x29d8
leaq 0x61c3(%rip), %rdi      # 0x91e0
callq 0x2220
testl %eax, %eax
je 0x29e6
leaq 0x619f(%rip), %rax      # 0x91d0
movq %rax, 0x6188(%rip)      # 0x91c0
leaq 0x6181(%rip), %rsi      # 0x91c0
movw $0x5d, 0x6188(%rip)     # 0x91d0
movq $0x1, 0x6175(%rip) # 0x91c8
movq 0x5f46(%rip), %rdi      # 0x8fa0
leaq 0x60c7(%rip), %rdx      # 0x9128
callq 0x2120
leaq 0x6173(%rip), %rdi      # 0x91e0
callq 0x20d0
jmp 0x29e6
leaq 0x618a(%rip), %rdi      # 0x9208
callq 0x2220
testl %eax, %eax
je 0x29f4
leaq 0x6166(%rip), %rax      # 0x91f8
movq %rax, 0x614f(%rip)      # 0x91e8
leaq 0x6148(%rip), %rsi      # 0x91e8
movw $0x2c, 0x614f(%rip)     # 0x91f8
movq $0x1, 0x613c(%rip) # 0x91f0
movq 0x5ee5(%rip), %rdi      # 0x8fa0
leaq 0x6066(%rip), %rdx      # 0x9128
callq 0x2120
leaq 0x613a(%rip), %rdi      # 0x9208
callq 0x20d0
jmp 0x29f4
leaq 0x6151(%rip), %rdi      # 0x9230
callq 0x2220
testl %eax, %eax
je 0x2a02
leaq 0x612d(%rip), %rax      # 0x9220
movq %rax, 0x6116(%rip)      # 0x9210
leaq 0x610f(%rip), %rsi      # 0x9210
movw $0x203a, 0x6116(%rip)   # imm = 0x203A
movq $0x2, 0x6103(%rip) # 0x9218
movb $0x0, 0x6106(%rip)      # 0x9222
movq 0x5e7d(%rip), %rdi      # 0x8fa0
leaq 0x5ffe(%rip), %rdx      # 0x9128
callq 0x2120
leaq 0x60fa(%rip), %rdi      # 0x9230
callq 0x20d0
jmp 0x2a02
leaq 0x6111(%rip), %rdi      # 0x9258
callq 0x2220
testl %eax, %eax
je 0x2a10
leaq 0x60ed(%rip), %rax      # 0x9248
movq %rax, 0x60d6(%rip)      # 0x9238
leaq 0x60cf(%rip), %rsi      # 0x9238
movl $0x6c6c756e, 0x60d5(%rip) # imm = 0x6C6C756E
movq $0x4, 0x60c2(%rip) # 0x9240
movb $0x0, 0x60c7(%rip)      # 0x924c
movq 0x5e14(%rip), %rdi      # 0x8fa0
leaq 0x5f95(%rip), %rdx      # 0x9128
callq 0x2120
leaq 0x60b9(%rip), %rdi      # 0x9258
callq 0x20d0
jmp 0x2a10
leaq 0x60d0(%rip), %rdi      # 0x9280
callq 0x2220
testl %eax, %eax
je 0x2a1e
leaq 0x60ac(%rip), %rax      # 0x9270
movq %rax, 0x6095(%rip)      # 0x9260
leaq 0x608e(%rip), %rsi      # 0x9260
movl $0x65757274, 0x6094(%rip) # imm = 0x65757274
movq $0x4, 0x6081(%rip) # 0x9268
movb $0x0, 0x6086(%rip)      # 0x9274
movq 0x5dab(%rip), %rdi      # 0x8fa0
leaq 0x5f2c(%rip), %rdx      # 0x9128
callq 0x2120
leaq 0x6078(%rip), %rdi      # 0x9280
callq 0x20d0
jmp 0x2a1e
leaq 0x608f(%rip), %rdi      # 0x92a8
callq 0x2220
testl %eax, %eax
je 0x2a2c
leaq 0x606b(%rip), %rax      # 0x9298
movq %rax, 0x6054(%rip)      # 0x9288
leaq 0x604d(%rip), %rsi      # 0x9288
movl $0x736c6166, 0x6053(%rip) # imm = 0x736C6166
movw $0x65, 0x604e(%rip)     # 0x929c
movq $0x5, 0x6037(%rip) # 0x9290
movq 0x5d40(%rip), %rdi      # 0x8fa0
leaq 0x5ec1(%rip), %rdx      # 0x9128
callq 0x2120
leaq 0x6035(%rip), %rdi      # 0x92a8
callq 0x20d0
jmp 0x2a2c
pushq $0x20
popq %rdi
callq 0x20b0
movq %rax, %rbx
leaq 0x2f4e(%rip), %rsi      # 0x61dd
movq %rax, %rdi
xorl %edx, %edx
xorl %ecx, %ecx
callq 0x33ec
jmp 0x3307
pushq $0x8
popq %rdi
callq 0x20b0
movq 0x5d04(%rip), %rcx      # 0x8fb0
addq $0x10, %rcx
movq %rcx, (%rax)
movq 0x5d06(%rip), %rsi      # 0x8fc0
movq 0x5ce7(%rip), %rdx      # 0x8fa8
movq %rax, %rdi
callq 0x2200
pushq $0x20
popq %rdi
callq 0x20b0
movq %rax, %rbx
leaq 0x2f3c(%rip), %rsi      # 0x6217
movq %rax, %rdi
xorl %edx, %edx
xorl %ecx, %ecx
callq 0x33ec
jmp 0x3307
pushq $0x20
popq %rdi
callq 0x20b0
movq %rax, %rbx
leaq 0x2f01(%rip), %rsi      # 0x61fc
movq %rax, %rdi
xorl %edx, %edx
xorl %ecx, %ecx
callq 0x33ec
leaq 0x5a2a(%rip), %rsi      # 0x8d38
movq 0x5cc3(%rip), %rdx      # 0x8fd8
movq %rbx, %rdi
callq 0x2200
pushq $0x20
popq %rdi
callq 0x20b0
movq %rax, %rbx
leaq 0x2f10(%rip), %rsi      # 0x623f
movq %rax, %rdi
xorl %edx, %edx
xorl %ecx, %ecx
callq 0x33ec
jmp 0x3307
pushq $0x20
popq %rdi
callq 0x20b0
movq %rax, %rbx
leaq 0x2ee3(%rip), %rsi      # 0x6232
movq %rax, %rdi
xorl %edx, %edx
xorl %ecx, %ecx
callq 0x33ec
jmp 0x3307
pushq $0x20
popq %rdi
callq 0x20b0
movq %rax, %rbx
leaq 0x2ec3(%rip), %rsi      # 0x6232
movq %rax, %rdi
xorl %edx, %edx
xorl %ecx, %ecx
callq 0x33ec
jmp 0x3307
jmp 0x3387
jmp 0x3387
jmp 0x3387
jmp 0x3387
jmp 0x3387
movq %rax, %r14
movq %rbx, %rdi
callq 0x20f0
movq %r14, %rdi
callq 0x2210