// File: grisu48[P]geoJson/geoJson.cpp
// Function: printGeoJson(std::ostream&, std::vector<Coords, std::allocator<Coords>> const&)
static void printGeoJson(ostream &out, const vector<Coords> &coords) {
    out << "{" << endl <<
        "    \"type\": \"FeatureCollection\"," << endl <<
        "    \"features\": [" << endl <<
        "        {" << endl <<
        "            \"type\": \"Feature\"," << endl <<
        "            \"properties\": {" << endl <<
        "                \"coordTimes\": [" << endl;
        
    bool first = true;
    for(vector<Coords>::const_iterator it = coords.begin(); it != coords.end(); it++) {
        if(first) first = false;
        else out << ", ";
        out << "\"" << (*it).time << "\"";
    }
    out << "]" << endl;
    out << "            }," << endl;
    out << "            \"geometry\": {" << endl;
    out << "                \"type\": \"LineString\"," << endl;
    out << "                \"coordinates\": [" << endl;

    
    first = true;
    for(vector<Coords>::const_iterator it = coords.begin(); it != coords.end(); it++) {
        if(first) first = false;
        else out << ", " << endl;
        
        out << "                    [" << endl;
        out << "                        " << (*it).lon << "," << endl;
        out << "                        " << (*it).lat << "," << endl;
        out << "                        " << (*it).ele << endl;
        out << "                    ]";
    }

    out << endl;
    out << "                ]" << endl;
    out << "            }" << endl;
    out << "        }" << endl;
    out << "    ]" << endl;
    out << "}" << endl;
}

// Assembly:
subq $0x68, %rsp
movq %rdi, 0x60(%rsp)
movq %rsi, 0x58(%rsp)
movq 0x60(%rsp), %rdi
leaq 0x6bdd(%rip), %rsi      # 0xa5b7
callq 0x2200
movq %rax, %rdi
movq 0xb5bf(%rip), %rsi      # 0xefa8
callq 0x2230
movq %rax, %rdi
leaq 0x6b84(%rip), %rsi      # 0xa57c
callq 0x2200
movq %rax, %rdi
movq 0xb5a1(%rip), %rsi      # 0xefa8
callq 0x2230
movq %rax, %rdi
leaq 0x6b87(%rip), %rsi      # 0xa59d
callq 0x2200
movq %rax, %rdi
movq 0xb583(%rip), %rsi      # 0xefa8
callq 0x2230
movq %rax, %rdi
leaq 0x6b7b(%rip), %rsi      # 0xa5af
callq 0x2200
movq %rax, %rdi
movq 0xb565(%rip), %rsi      # 0xefa8
callq 0x2230
movq %rax, %rdi
leaq 0x6b67(%rip), %rsi      # 0xa5b9
callq 0x2200
movq %rax, %rdi
movq 0xb547(%rip), %rsi      # 0xefa8
callq 0x2230
movq %rax, %rdi
leaq 0x6b68(%rip), %rsi      # 0xa5d8
callq 0x2200
movq %rax, %rdi
movq 0xb529(%rip), %rsi      # 0xefa8
callq 0x2230
movq %rax, %rdi
leaq 0x6b66(%rip), %rsi      # 0xa5f4
callq 0x2200
movq %rax, %rdi
movq 0xb50b(%rip), %rsi      # 0xefa8
callq 0x2230
movb $0x1, 0x57(%rsp)
movq 0x58(%rsp), %rdi
callq 0x9680
movq %rax, 0x48(%rsp)
movq 0x58(%rsp), %rdi
callq 0x96f0
movq %rax, 0x40(%rsp)
leaq 0x48(%rsp), %rdi
leaq 0x40(%rsp), %rsi
callq 0x96b0
testb $0x1, %al
jne 0x3ada
jmp 0x3b4f
testb $0x1, 0x57(%rsp)
je 0x3ae8
movb $0x0, 0x57(%rsp)
jmp 0x3af9
movq 0x60(%rsp), %rdi
leaq 0x6b20(%rip), %rsi      # 0xa614
callq 0x2200
movq 0x60(%rsp), %rdi
leaq 0x68d0(%rip), %rsi      # 0xa3d5
callq 0x2200
movq %rax, 0x18(%rsp)
leaq 0x48(%rsp), %rdi
callq 0x9720
movq 0x18(%rsp), %rdi
movq %rax, %rsi
addq $0x10, %rsi
callq 0x21d0
movq %rax, %rdi
leaq 0x68a1(%rip), %rsi      # 0xa3d5
callq 0x2200
leaq 0x48(%rsp), %rdi
xorl %esi, %esi
callq 0x9730
movq %rax, 0x38(%rsp)
jmp 0x3ab6
movq 0x60(%rsp), %rdi
leaq 0x6b6f(%rip), %rsi      # 0xa6ca
callq 0x2200
movq %rax, %rdi
movq 0xb43e(%rip), %rsi      # 0xefa8
callq 0x2230
movq 0x60(%rsp), %rdi
leaq 0x6a9c(%rip), %rsi      # 0xa617
callq 0x2200
movq %rax, %rdi
movq 0xb41e(%rip), %rsi      # 0xefa8
callq 0x2230
movq 0x60(%rsp), %rdi
leaq 0x6a8b(%rip), %rsi      # 0xa626
callq 0x2200
movq %rax, %rdi
movq 0xb3fe(%rip), %rsi      # 0xefa8
callq 0x2230
movq 0x60(%rsp), %rdi
leaq 0x6a85(%rip), %rsi      # 0xa640
callq 0x2200
movq %rax, %rdi
movq 0xb3de(%rip), %rsi      # 0xefa8
callq 0x2230
movq 0x60(%rsp), %rdi
leaq 0x6a8b(%rip), %rsi      # 0xa666
callq 0x2200
movq %rax, %rdi
movq 0xb3be(%rip), %rsi      # 0xefa8
callq 0x2230
movb $0x1, 0x57(%rsp)
movq 0x58(%rsp), %rdi
callq 0x9680
movq %rax, 0x30(%rsp)
movq 0x58(%rsp), %rdi
callq 0x96f0
movq %rax, 0x28(%rsp)
leaq 0x30(%rsp), %rdi
leaq 0x28(%rsp), %rsi
callq 0x96b0
testb $0x1, %al
jne 0x3c2a
jmp 0x3d74
testb $0x1, 0x57(%rsp)
je 0x3c38
movb $0x0, 0x57(%rsp)
jmp 0x3c58
movq 0x60(%rsp), %rdi
leaq 0x69d0(%rip), %rsi      # 0xa614
callq 0x2200
movq %rax, %rdi
movq 0xb355(%rip), %rsi      # 0xefa8
callq 0x2230
movq 0x60(%rsp), %rdi
leaq 0x6a23(%rip), %rsi      # 0xa687
callq 0x2200
movq %rax, %rdi
movq 0xb335(%rip), %rsi      # 0xefa8
callq 0x2230
movq 0x60(%rsp), %rdi
leaq 0x6a19(%rip), %rsi      # 0xa69d
callq 0x2200
movq %rax, (%rsp)
leaq 0x30(%rsp), %rdi
callq 0x9720
movq (%rsp), %rdi
vmovss (%rax), %xmm0
callq 0x2180
movq %rax, %rdi
leaq 0x6928(%rip), %rsi      # 0xa5d6
callq 0x2200
movq %rax, %rdi
movq 0xb2eb(%rip), %rsi      # 0xefa8
callq 0x2230
movq 0x60(%rsp), %rdi
leaq 0x69cf(%rip), %rsi      # 0xa69d
callq 0x2200
movq %rax, 0x8(%rsp)
leaq 0x30(%rsp), %rdi
callq 0x9720
movq 0x8(%rsp), %rdi
vmovss 0x4(%rax), %xmm0
callq 0x2180
movq %rax, %rdi
leaq 0x68db(%rip), %rsi      # 0xa5d6
callq 0x2200
movq %rax, %rdi
movq 0xb29e(%rip), %rsi      # 0xefa8
callq 0x2230
movq 0x60(%rsp), %rdi
leaq 0x6982(%rip), %rsi      # 0xa69d
callq 0x2200
movq %rax, 0x10(%rsp)
leaq 0x30(%rsp), %rdi
callq 0x9720
movq 0x10(%rsp), %rdi
vmovss 0x8(%rax), %xmm0
callq 0x2180
movq %rax, %rdi
movq 0xb260(%rip), %rsi      # 0xefa8
callq 0x2230
movq 0x60(%rsp), %rdi
leaq 0x695d(%rip), %rsi      # 0xa6b6
callq 0x2200
leaq 0x30(%rsp), %rdi
xorl %esi, %esi
callq 0x9730
movq %rax, 0x20(%rsp)
jmp 0x3c03
movq 0x60(%rsp), %rdi
movq 0xb228(%rip), %rsi      # 0xefa8
callq 0x2230
movq 0x60(%rsp), %rdi
leaq 0x6929(%rip), %rsi      # 0xa6ba
callq 0x2200
movq %rax, %rdi
movq 0xb208(%rip), %rsi      # 0xefa8
callq 0x2230
movq 0x60(%rsp), %rdi
leaq 0x691b(%rip), %rsi      # 0xa6cc
callq 0x2200
movq %rax, %rdi
movq 0xb1e8(%rip), %rsi      # 0xefa8
callq 0x2230
movq 0x60(%rsp), %rdi
leaq 0x68ff(%rip), %rsi      # 0xa6d0
callq 0x2200
movq %rax, %rdi
movq 0xb1c8(%rip), %rsi      # 0xefa8
callq 0x2230
movq 0x60(%rsp), %rdi
leaq 0x68d5(%rip), %rsi      # 0xa6c6
callq 0x2200
movq %rax, %rdi
movq 0xb1a8(%rip), %rsi      # 0xefa8
callq 0x2230
movq 0x60(%rsp), %rdi
leaq 0x68c7(%rip), %rsi      # 0xa6d8
callq 0x2200
movq %rax, %rdi
movq 0xb188(%rip), %rsi      # 0xefa8
callq 0x2230
addq $0x68, %rsp
retq
nopw (%rax,%rax)