// File: /workspace/github_cpp_makefile_star2_O2/sharmaeklavya2[P]ctmeans/src/main.cpp
// Function: get_json_dict_template[abi:cxx11](char const*, char const*)
string get_json_dict_template(const char* keys, const char* val_fmts) {
    string s = "{\n";
    /*
    int n=1;
    for(int i=0; keys[i] != '\0'; ++i) {
        if(keys[i] == ',') {n++;}
    }
    s.reserve(strlen(keys) + strlen(fmts) + 8*n + 4);
    */

    if(keys[0] == '\0' || val_fmts[0] == '\0') {
        return "{}\n";
    }

    char key[50], val_fmt[10];
    int j1beg=0, j2beg=0;
    for(int i=0; true; ++i) {
        char ch1='\0', ch2='\0';
        while(keys[j1beg] == ' ') {
            j1beg++;
        }
        while(val_fmts[j2beg] == ' ') {
            j2beg++;
        }
        for(int j1off=0; true; ++j1off) {
            ch1 = keys[j1beg + j1off];
            if(ch1 == ' ') {
                continue;
            }
            if(ch1 == ',' || ch1 == '\0') {
                key[j1off] = '\0';
                j1beg += j1off + 1;
                break;
            }
            else {
                key[j1off] = ch1;
            }
        }
        for(int j2off=0; true; ++j2off) {
            ch2 = val_fmts[j2beg + j2off];
            if(ch2 == ',' || ch2 == '\0') {
                val_fmt[j2off] = '\0';
                j2beg += j2off + 1;
                break;
            }
            else {
                val_fmt[j2off] = ch2;
            }
        }
        s.append("  \"").append(key).append("\": ").append(val_fmt).append(",\n");
        if(ch1 == '\0' || ch2 == '\0') {
            break;
        }
    }
    s.pop_back(); s.pop_back();
    s.append("\n}\n");
    return s;
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x78, %rsp
movq %rdx, %r14
movq %rsi, %r15
movq %rdi, %rbx
leaq 0x1eaf(%rip), %rsi      # 0x8239
movq %rsp, %rdi
leaq 0x40(%rsp), %rdx
callq 0x2070
cmpb $0x0, (%r15)
je 0x64e1
cmpb $0x0, (%r14)
je 0x64e1
movq %r14, 0x38(%rsp)
movq %rbx, 0x30(%rsp)
xorl %ebp, %ebp
xorl %ebx, %ebx
movslq %ebp, %rbp
leal -0x1(%rbp), %ecx
incl %ecx
cmpb $0x20, (%r15,%rbp)
leaq 0x1(%rbp), %rbp
je 0x63bf
movslq %ebx, %rbx
leal -0x1(%rbx), %eax
movq 0x38(%rsp), %rsi
incl %eax
cmpb $0x20, (%rsi,%rbx)
leaq 0x1(%rbx), %rbx
je 0x63d7
movslq %ecx, %rdx
addq %r15, %rdx
xorl %ecx, %ecx
movzbl (%rdx,%rcx), %r12d
cmpl $0x20, %r12d
je 0x6406
cmpl $0x2c, %r12d
je 0x640b
testl %r12d, %r12d
je 0x640b
movb %r12b, 0x40(%rsp,%rcx)
incq %rcx
jmp 0x63eb
movl %ecx, %edx
movb $0x0, 0x40(%rsp,%rdx)
addq %rcx, %rbp
cltq
addq %rsi, %rax
xorl %r13d, %r13d
movzbl (%rax,%r13), %r14d
cmpl $0x2c, %r14d
je 0x6437
testl %r14d, %r14d
je 0x6437
movb %r14b, 0x26(%rsp,%r13)
incq %r13
jmp 0x641d
movl %r13d, %eax
movb $0x0, 0x26(%rsp,%rax)
movq %rsp, %rdi
leaq 0x1df7(%rip), %rsi      # 0x8240
callq 0x22b0
movq %rax, %rdi
leaq 0x40(%rsp), %rsi
callq 0x22b0
movq %rax, %rdi
leaq 0x1ddf(%rip), %rsi      # 0x8244
callq 0x22b0
movq %rax, %rdi
leaq 0x26(%rsp), %rsi
callq 0x22b0
movq %rax, %rdi
leaq 0x1dc7(%rip), %rsi      # 0x8248
callq 0x22b0
testb %r12b, %r12b
je 0x6497
addq %r13, %rbx
testb %r14b, %r14b
jne 0x63b9
movq %rsp, %rbx
movq %rbx, %rdi
callq 0x21b0
movq %rbx, %rdi
callq 0x21b0
leaq 0x1d9a(%rip), %rsi      # 0x824b
movq %rbx, %rdi
callq 0x22b0
movq 0x30(%rsp), %rbx
leaq 0x10(%rbx), %rcx
movq %rcx, (%rbx)
leaq 0x10(%rsp), %rax
movq -0x10(%rax), %rdx
cmpq %rax, %rdx
je 0x64f7
movq %rdx, (%rbx)
movq 0x10(%rsp), %rcx
movq %rcx, 0x10(%rbx)
jmp 0x64fd
leaq 0x1d54(%rip), %rsi      # 0x823c
leaq 0x40(%rsp), %rdx
movq %rbx, %rdi
callq 0x2070
jmp 0x6515
movups (%rax), %xmm0
movups %xmm0, (%rcx)
movq 0x8(%rsp), %rcx
movq %rcx, 0x8(%rbx)
movq %rax, (%rsp)
andq $0x0, 0x8(%rsp)
movb $0x0, 0x10(%rsp)
movq %rsp, %rdi
callq 0x2090
movq %rbx, %rax
addq $0x78, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
jmp 0x6533
jmp 0x6533
movq %rax, %rbx
movq %rsp, %rdi
callq 0x2090
movq %rbx, %rdi
callq 0x2290