// File: /workspace/github_cpp_makefile_star2_O2/Karunika[P]Taxi_Agency_OODB/./src/TaxiAgency.cpp
// Function: operator<<(std::ostream&, TaxiAgency&)
ostream& operator<<(ostream& output, TaxiAgency& A){
    output << rang::fg::blue << "Taxi Agency Details:" << rang::fg::reset << endl;
    output << "{" <<
        "\n\tcapacity : " <<
            "\n\t\tgarage Limit : " << A.GarageLimit <<
            "\n\t\teach Car Limit : " << A.EachCarLimit <<
            "\n\t\tdriver Limit : " << A.DriverLimit <<
            "\n\t\tcustomer Limit : " << A.DriverLimit <<
        "\n\tdriver stats : " <<
        // driver_limit = (driver_onshift + driver_idol) + drvier_vacancy
            "\n\t\tdriver limit : " << A.DriverLimit <<
            "\n\t\tdrivers on shift : " << A.current_shifts.size() <<
            "\n\t\tdrivers IDLE : " << A.driver_db.size() - A.current_shifts.size() <<
            "\n\t\tdriver vacancy : " << A.DriverLimit - A.driver_db.size() <<
        "\n\ttaxies : " <<
            "\n\t\ttotal : " << A.stats["total_taxies"] <<
            "\n\t\tavailable : " << A.stats["total_idol_taxies"] <<
            "\n\t\ton shifts : " << A.stats["taxies on shift"] <<
        "\n\t}" << endl;
    return output;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r15
pushq %r14
pushq %r12
pushq %rbx
subq $0x70, %rsp
movq %rsi, %r14
movq %rdi, %rbx
pushq $0x22
popq %rsi
callq 0xbbcd
leaq 0x79b9(%rip), %rsi      # 0x156ff
movq %rax, %rdi
callq 0x4290
pushq $0x27
popq %rsi
movq %rax, %rdi
callq 0xbbcd
movq %rax, %rdi
callq 0x4180
leaq 0x77e0(%rip), %rsi      # 0x15548
movq %rbx, %rdi
callq 0x4290
leaq 0x799d(%rip), %rsi      # 0x15714
movq %rax, %rdi
callq 0x4290
leaq 0x799c(%rip), %rsi      # 0x15722
movq %rax, %rdi
callq 0x4290
movl 0x7c(%r14), %esi
movq %rax, %rdi
callq 0x4430
leaq 0x7994(%rip), %rsi      # 0x15735
movq %rax, %rdi
callq 0x4290
movl 0x80(%r14), %esi
movq %rax, %rdi
callq 0x4430
leaq 0x798b(%rip), %rsi      # 0x1574a
movq %rax, %rdi
callq 0x4290
movl 0x84(%r14), %esi
movq %rax, %rdi
callq 0x4430
leaq 0x7980(%rip), %rsi      # 0x1575d
movq %rax, %rdi
callq 0x4290
movl 0x84(%r14), %esi
movq %rax, %rdi
callq 0x4430
leaq 0x7977(%rip), %rsi      # 0x15772
movq %rax, %rdi
callq 0x4290
leaq 0x797a(%rip), %rsi      # 0x15784
movq %rax, %rdi
callq 0x4290
movl 0x84(%r14), %esi
movq %rax, %rdi
callq 0x4430
leaq 0x796f(%rip), %rsi      # 0x15797
movq %rax, %rdi
callq 0x4290
movq 0x58(%r14), %rsi
movq %rax, %rdi
callq 0x4200
leaq 0x796b(%rip), %rsi      # 0x157ae
movq %rax, %rdi
callq 0x4290
movq 0x20(%r14), %rcx
subq 0x18(%r14), %rcx
movq %rax, %rdi
movl $0x88, %esi
movq %rcx, %rax
cqto
idivq %rsi
subq 0x58(%r14), %rax
movq %rax, %rsi
callq 0x4200
leaq 0x794b(%rip), %rsi      # 0x157c1
movq %rax, %rdi
callq 0x4290
movq %rax, %rdi
movslq 0x84(%r14), %rsi
movq 0x20(%r14), %rax
subq 0x18(%r14), %rax
movq $-0x88, %rcx
cqto
idivq %rcx
addq %rax, %rsi
callq 0x4200
leaq 0x792b(%rip), %rsi      # 0x157d6
movq %rax, %rdi
callq 0x4290
leaq 0x7928(%rip), %rsi      # 0x157e2
movq %rax, %rdi
callq 0x4290
movq %rax, %r15
addq $0xa0, %r14
leaq 0x77df(%rip), %rsi      # 0x156b2
leaq -0x88(%rbp), %r12
leaq -0x23(%rbp), %rdx
movq %r12, %rdi
callq 0x4140
movq %r14, %rdi
movq %r12, %rsi
callq 0xd8f8
movl (%rax), %esi
movq %r15, %rdi
callq 0x4430
leaq 0x78ec(%rip), %rsi      # 0x157ee
movq %rax, %rdi
callq 0x4290
movq %rax, %r15
leaq 0x777c(%rip), %rsi      # 0x15690
leaq -0x68(%rbp), %rdi
leaq -0x22(%rbp), %rdx
callq 0x4140
leaq -0x68(%rbp), %rsi
movq %r14, %rdi
callq 0xd8f8
movl (%rax), %esi
movq %r15, %rdi
callq 0x4430
leaq 0x78c0(%rip), %rsi      # 0x157fe
movq %rax, %rdi
callq 0x4290
movq %rax, %r15
leaq 0x78be(%rip), %rsi      # 0x1580e
leaq -0x48(%rbp), %rdi
leaq -0x21(%rbp), %rdx
callq 0x4140
leaq -0x48(%rbp), %rsi
movq %r14, %rdi
callq 0xd8f8
movl (%rax), %esi
movq %r15, %rdi
callq 0x4430
leaq 0x7624(%rip), %rsi      # 0x1559e
movq %rax, %rdi
callq 0x4290
movq %rax, %rdi
callq 0x4180
leaq -0x48(%rbp), %rdi
callq 0x4170
leaq -0x68(%rbp), %rdi
callq 0x4170
leaq -0x88(%rbp), %rdi
callq 0x4170
movq %rbx, %rax
addq $0x70, %rsp
popq %rbx
popq %r12
popq %r14
popq %r15
popq %rbp
retq
jmp 0xdfbc
jmp 0xdfc1
movq %rax, %rbx
jmp 0xdfd2
movq %rax, %rbx
jmp 0xdfdb
movq %rax, %rbx
leaq -0x48(%rbp), %rdi
callq 0x4170
leaq -0x68(%rbp), %rdi
callq 0x4170
leaq -0x88(%rbp), %rdi
callq 0x4170
movq %rbx, %rdi
callq 0x4450
nop