// File: /workspace/github_cpp_makefile_star2_O3/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 %r13
pushq %r12
pushq %rbx
subq $0x68, %rsp
movq %rsi, %r14
movq %rdi, %rbx
movl $0x22, %esi
callq 0xf224
movq %rax, %r15
leaq 0x9c29(%rip), %rsi      # 0x1b67f
movl $0x14, %edx
movq %rax, %rdi
callq 0x4320
movq %r15, %rdi
movl $0x27, %esi
callq 0xf224
movq %rax, %r15
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %r15, %rdi
movl $0xa, %esi
callq 0x42a0
movsbl %al, %esi
movq %r15, %rdi
callq 0x4030
movq %rax, %rdi
callq 0x41f0
leaq 0x9a2c(%rip), %rsi      # 0x1b4cd
movl $0x1, %edx
movq %rbx, %rdi
callq 0x4320
leaq 0x9bdf(%rip), %rsi      # 0x1b694
movl $0xd, %edx
movq %rbx, %rdi
callq 0x4320
leaq 0x9bd9(%rip), %rsi      # 0x1b6a2
movl $0x12, %edx
movq %rbx, %rdi
callq 0x4320
movl 0x7c(%r14), %esi
movq %rbx, %rdi
callq 0x4460
movq %rax, %r15
leaq 0x9bc9(%rip), %rsi      # 0x1b6b5
movl $0x14, %edx
movq %rax, %rdi
callq 0x4320
movl 0x80(%r14), %esi
movq %r15, %rdi
callq 0x4460
movq %rax, %r15
leaq 0x9bb8(%rip), %rsi      # 0x1b6ca
movl $0x12, %edx
movq %rax, %rdi
callq 0x4320
movl 0x84(%r14), %esi
movq %r15, %rdi
callq 0x4460
movq %rax, %r15
leaq 0x9ba5(%rip), %rsi      # 0x1b6dd
movl $0x14, %edx
movq %rax, %rdi
callq 0x4320
movl 0x84(%r14), %esi
movq %r15, %rdi
callq 0x4460
movq %rax, %r15
leaq 0x9b94(%rip), %rsi      # 0x1b6f2
movl $0x11, %edx
movq %rax, %rdi
callq 0x4320
leaq 0x9b92(%rip), %rsi      # 0x1b704
movl $0x12, %edx
movq %r15, %rdi
callq 0x4320
movl 0x84(%r14), %esi
movq %r15, %rdi
callq 0x4460
movq %rax, %r15
leaq 0x9b7f(%rip), %rsi      # 0x1b717
movl $0x16, %edx
movq %rax, %rdi
callq 0x4320
movq 0x58(%r14), %rsi
movq %r15, %rdi
callq 0x41e0
movq %rax, %r15
leaq 0x9b73(%rip), %rsi      # 0x1b72e
movl $0x12, %edx
movq %rax, %rdi
callq 0x4320
movq 0x20(%r14), %rax
subq 0x18(%r14), %rax
sarq $0x3, %rax
movabsq $-0xf0f0f0f0f0f0f0f, %rsi # imm = 0xF0F0F0F0F0F0F0F1
imulq %rax, %rsi
subq 0x58(%r14), %rsi
movq %r15, %rdi
callq 0x41e0
movq %rax, %r15
leaq 0x9b49(%rip), %rsi      # 0x1b741
movl $0x14, %edx
movq %rax, %rdi
callq 0x4320
movslq 0x84(%r14), %rax
movq 0x20(%r14), %rcx
subq 0x18(%r14), %rcx
sarq $0x3, %rcx
movabsq $0xf0f0f0f0f0f0f0f, %rsi # imm = 0xF0F0F0F0F0F0F0F
imulq %rcx, %rsi
addq %rax, %rsi
movq %r15, %rdi
callq 0x41e0
movq %rax, %r15
leaq 0x9b1b(%rip), %rsi      # 0x1b756
movl $0xb, %edx
movq %rax, %rdi
callq 0x4320
leaq 0x9b13(%rip), %rsi      # 0x1b762
movl $0xb, %edx
movq %r15, %rdi
callq 0x4320
addq $0xa0, %r14
leaq -0x78(%rbp), %r13
movq %r13, -0x10(%r13)
leaq 0x99c0(%rip), %rsi      # 0x1b632
leaq 0x99c5(%rip), %rdx      # 0x1b63e
leaq -0x88(%rbp), %r12
movq %r12, %rdi
callq 0xf2f8
movq %r14, %rdi
movq %r12, %rsi
callq 0x1158a
movl (%rax), %esi
movq %r15, %rdi
callq 0x4460
movq %rax, %r15
leaq 0x9ac7(%rip), %rsi      # 0x1b76e
movl $0xf, %edx
movq %rax, %rdi
callq 0x4320
leaq -0x38(%rbp), %rax
movq %rax, -0x10(%rax)
leaq 0x994d(%rip), %rsi      # 0x1b610
leaq 0x9957(%rip), %rdx      # 0x1b621
leaq -0x48(%rbp), %rdi
callq 0xf2f8
movq %r13, %r12
leaq -0x48(%rbp), %rsi
movq %r14, %rdi
callq 0x1158a
movl (%rax), %esi
movq %r15, %rdi
callq 0x4460
movq %rax, %r15
leaq 0x9a88(%rip), %rsi      # 0x1b77e
movl $0xf, %edx
movq %rax, %rdi
callq 0x4320
leaq -0x58(%rbp), %r13
movq %r13, -0x10(%r13)
leaq 0x9a7c(%rip), %rsi      # 0x1b78e
leaq 0x9a84(%rip), %rdx      # 0x1b79d
leaq -0x68(%rbp), %rdi
callq 0xf2f8
leaq -0x68(%rbp), %rsi
movq %r14, %rdi
callq 0x1158a
movl (%rax), %esi
movq %r15, %rdi
callq 0x4460
movq %rax, %r14
leaq 0x97e1(%rip), %rsi      # 0x1b523
movl $0x3, %edx
movq %rax, %rdi
callq 0x4320
movq (%r14), %rax
movq -0x18(%rax), %rdi
addq %r14, %rdi
movl $0xa, %esi
callq 0x42a0
movsbl %al, %esi
movq %r14, %rdi
callq 0x4030
movq %rax, %rdi
callq 0x41f0
movq -0x68(%rbp), %rdi
cmpq %r13, %rdi
je 0x11d84
callq 0x4280
movq -0x48(%rbp), %rdi
leaq -0x38(%rbp), %rax
cmpq %rax, %rdi
je 0x11d96
callq 0x4280
movq -0x88(%rbp), %rdi
cmpq %r12, %rdi
je 0x11da7
callq 0x4280
movq %rbx, %rax
addq $0x68, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
jmp 0x11dbd
jmp 0x11dc2
movq %rax, %rbx
jmp 0x11ddb
movq %r13, %r12
movq %rax, %rbx
jmp 0x11ded
movq %rax, %rbx
movq -0x68(%rbp), %rdi
cmpq %r13, %rdi
je 0x11ddb
callq 0x4280
movq -0x48(%rbp), %rdi
leaq -0x38(%rbp), %rax
cmpq %rax, %rdi
je 0x11ded
callq 0x4280
movq -0x88(%rbp), %rdi
cmpq %r12, %rdi
je 0x11dfe
callq 0x4280
movq %rbx, %rdi
callq 0x4490