// File: /workspace/github_cpp_makefile_star2_O1/halfflat[P]tinyopt/test/googletest/googletest/src/gtest.cc
// Function: testing::internal::JsonUnitTestResultPrinter::PrintJsonTestSuite(std::ostream*, testing::TestSuite const&)
void JsonUnitTestResultPrinter::PrintJsonTestSuite(
    std::ostream* stream, const TestSuite& test_suite) {
  const std::string kTestsuite = "testsuite";
  const std::string kIndent = Indent(6);

  *stream << Indent(4) << "{\n";
  OutputJsonKey(stream, kTestsuite, "name", test_suite.name(), kIndent);
  OutputJsonKey(stream, kTestsuite, "tests", test_suite.reportable_test_count(),
                kIndent);
  if (!GTEST_FLAG_GET(list_tests)) {
    OutputJsonKey(stream, kTestsuite, "failures",
                  test_suite.failed_test_count(), kIndent);
    OutputJsonKey(stream, kTestsuite, "disabled",
                  test_suite.reportable_disabled_test_count(), kIndent);
    OutputJsonKey(stream, kTestsuite, "errors", 0, kIndent);
    OutputJsonKey(
        stream, kTestsuite, "timestamp",
        FormatEpochTimeInMillisAsRFC3339(test_suite.start_timestamp()),
        kIndent);
    OutputJsonKey(stream, kTestsuite, "time",
                  FormatTimeInMillisAsDuration(test_suite.elapsed_time()),
                  kIndent, false);
    *stream << TestPropertiesAsJson(test_suite.ad_hoc_test_result(), kIndent)
            << ",\n";
  }

  *stream << kIndent << "\"" << kTestsuite << "\": [\n";

  bool comma = false;
  for (int i = 0; i < test_suite.total_test_count(); ++i) {
    if (test_suite.GetTestInfo(i)->is_reportable()) {
      if (comma) {
        *stream << ",\n";
      } else {
        comma = true;
      }
      OutputJsonTestInfo(stream, test_suite.name(), *test_suite.GetTestInfo(i));
    }
  }
  *stream << "\n" << kIndent << "]\n" << Indent(4) << "}";
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x88, %rsp
movq %rsi, %r14
movq %rdi, %rbx
leaq 0x78(%rsp), %rax
movq %rax, -0x10(%rax)
leaq 0x16e91(%rip), %rsi     # 0x7442c
leaq 0x16e93(%rip), %rdx     # 0x74435
leaq 0x68(%rsp), %rdi
callq 0x15892
leaq 0x38(%rsp), %rax
movq %rax, -0x10(%rax)
leaq 0x28(%rsp), %rdi
movl $0x6, %esi
movl $0x20, %edx
callq 0xd630
leaq 0x10(%rsp), %r12
movq %r12, -0x10(%r12)
movq %rsp, %rdi
movl $0x4, %esi
movl $0x20, %edx
callq 0xd630
movq (%rsp), %rsi
movq 0x8(%rsp), %rdx
movq %rbx, %rdi
callq 0xd600
leaq 0x17051(%rip), %rsi     # 0x7464e
movl $0x2, %edx
movq %rax, %rdi
callq 0xd600
movq (%rsp), %rdi
cmpq %r12, %rdi
je 0x5d620
movq 0x10(%rsp), %rsi
incq %rsi
callq 0xd530
movq %rsp, %rdi
movq %r12, (%rdi)
leaq 0x16e6a(%rip), %rsi     # 0x74497
leaq 0x16e67(%rip), %rdx     # 0x7449b
callq 0x15892
movq 0x8(%r14), %rsi
leaq 0x48(%rsp), %rdi
leaq 0x27(%rsp), %rdx
callq 0x208e8
leaq 0x68(%rsp), %rsi
movq %rsp, %rdx
leaq 0x48(%rsp), %rcx
leaq 0x28(%rsp), %r8
movq %rbx, %rdi
movl $0x1, %r9d
callq 0x5a758
leaq 0x58(%rsp), %r15
movq -0x10(%r15), %rdi
cmpq %r15, %rdi
je 0x5d687
movq 0x58(%rsp), %rsi
incq %rsi
callq 0xd530
movq (%rsp), %rdi
cmpq %r12, %rdi
je 0x5d69d
movq 0x10(%rsp), %rsi
incq %rsi
callq 0xd530
movq %rsp, %rdi
movq %r12, (%rdi)
leaq 0x15f0e(%rip), %rsi     # 0x735b8
leaq 0x15f0c(%rip), %rdx     # 0x735bd
callq 0x15892
movq 0x30(%r14), %rax
movq 0x38(%r14), %rdx
cmpq %rdx, %rax
je 0x5d6ef
xorl %esi, %esi
xorl %ecx, %ecx
movq (%rax), %rdi
movzbl 0x83(%rdi), %r8d
xorl $0x1, %r8d
cmpb $0x0, 0x82(%rdi)
cmovel %esi, %r8d
addl %r8d, %ecx
addq $0x8, %rax
cmpq %rdx, %rax
jne 0x5d6c7
jmp 0x5d6f1
xorl %ecx, %ecx
leaq 0x68(%rsp), %rsi
movq %rsp, %rdx
leaq 0x28(%rsp), %r8
movq %rbx, %rdi
movl $0x1, %r9d
callq 0x5a960
movq (%rsp), %rdi
cmpq %r12, %rdi
je 0x5d722
movq 0x10(%rsp), %rsi
incq %rsi
callq 0xd530
cmpb $0x0, 0x391d0(%rip)     # 0x968f9
jne 0x5d988
movq %rsp, %rdi
movq %r12, (%rdi)
leaq 0x177af(%rip), %rsi     # 0x74eeb
leaq 0x177b0(%rip), %rdx     # 0x74ef3
callq 0x15892
movq %r14, %rdi
callq 0x4df54
leaq 0x68(%rsp), %rsi
movq %rsp, %rdx
leaq 0x28(%rsp), %r8
movq %rbx, %rdi
movl %eax, %ecx
movl $0x1, %r9d
callq 0x5a960
movq (%rsp), %rdi
cmpq %r12, %rdi
je 0x5d783
movq 0x10(%rsp), %rsi
incq %rsi
callq 0xd530
movq %rsp, %rdi
movq %r12, (%rdi)
leaq 0x16cba(%rip), %rsi     # 0x7444a
leaq 0x16cbb(%rip), %rdx     # 0x74452
callq 0x15892
movq 0x30(%r14), %rax
movq 0x38(%r14), %rdx
xorl %ecx, %ecx
cmpq %rdx, %rax
je 0x5d7d4
movq (%rax), %rsi
cmpb $0x1, 0x82(%rsi)
movl $0x0, %edi
jne 0x5d7cc
testb $0x1, 0x83(%rsi)
jne 0x5d7cc
movzbl 0x81(%rsi), %edi
addl %edi, %ecx
addq $0x8, %rax
jmp 0x5d7a6
leaq 0x68(%rsp), %rsi
movq %rsp, %rdx
leaq 0x28(%rsp), %r8
movq %rbx, %rdi
movl $0x1, %r9d
callq 0x5a960
movq (%rsp), %rdi
cmpq %r12, %rdi
je 0x5d805
movq 0x10(%rsp), %rsi
incq %rsi
callq 0xd530
movq %rsp, %rdi
movq %r12, (%rdi)
leaq 0x16c49(%rip), %rsi     # 0x7445b
leaq 0x16c48(%rip), %rdx     # 0x74461
callq 0x15892
leaq 0x68(%rsp), %rsi
movq %rsp, %rdx
leaq 0x28(%rsp), %r8
movq %rbx, %rdi
xorl %ecx, %ecx
movl $0x1, %r9d
callq 0x5a960
movq (%rsp), %rdi
cmpq %r12, %rdi
je 0x5d851
movq 0x10(%rsp), %rsi
incq %rsi
callq 0xd530
movq %rsp, %rdi
movq %r12, (%rdi)
leaq 0x16c04(%rip), %rsi     # 0x74462
leaq 0x16c06(%rip), %rdx     # 0x7446b
callq 0x15892
movq 0x78(%r14), %rsi
leaq 0x48(%rsp), %rdi
callq 0x5bb31
leaq 0x68(%rsp), %rsi
movq %rsp, %rdx
leaq 0x48(%rsp), %rcx
leaq 0x28(%rsp), %r8
movq %rbx, %rdi
movl $0x1, %r9d
callq 0x5a758
movq 0x48(%rsp), %rdi
cmpq %r15, %rdi
je 0x5d8af
movq 0x58(%rsp), %rsi
incq %rsi
callq 0xd530
movq (%rsp), %rdi
cmpq %r12, %rdi
je 0x5d8c5
movq 0x10(%rsp), %rsi
incq %rsi
callq 0xd530
movq %rsp, %rdi
movq %r12, (%rdi)
leaq 0x15d4c(%rip), %rsi     # 0x7361e
leaq 0x15d49(%rip), %rdx     # 0x73622
callq 0x15892
movq 0x80(%r14), %rsi
leaq 0x48(%rsp), %rdi
callq 0x5ba90
leaq 0x68(%rsp), %rsi
movq %rsp, %rdx
leaq 0x48(%rsp), %rcx
leaq 0x28(%rsp), %r8
movq %rbx, %rdi
xorl %r9d, %r9d
callq 0x5a758
movq 0x48(%rsp), %rdi
cmpq %r15, %rdi
je 0x5d923
movq 0x58(%rsp), %rsi
incq %rsi
callq 0xd530
movq (%rsp), %rdi
cmpq %r12, %rdi
je 0x5d939
movq 0x10(%rsp), %rsi
incq %rsi
callq 0xd530
leaq 0x88(%r14), %rsi
movq %rsp, %rdi
leaq 0x28(%rsp), %rdx
callq 0x5c69c
movq (%rsp), %rsi
movq 0x8(%rsp), %rdx
movq %rbx, %rdi
callq 0xd600
leaq 0x16cfe(%rip), %rsi     # 0x74663
movl $0x2, %edx
movq %rax, %rdi
callq 0xd600
movq (%rsp), %rdi
cmpq %r12, %rdi
je 0x5d988
movq 0x10(%rsp), %rsi
incq %rsi
callq 0xd530
movq 0x28(%rsp), %rsi
movq 0x30(%rsp), %rdx
movq %rbx, %rdi
callq 0xd600
movq %rax, %r15
leaq 0x16cbc(%rip), %rsi     # 0x74660
movl $0x1, %edx
movq %rax, %rdi
callq 0xd600
movq 0x68(%rsp), %rsi
movq 0x70(%rsp), %rdx
movq %r15, %rdi
callq 0xd600
leaq 0x16c55(%rip), %rsi     # 0x7461f
movl $0x5, %edx
movq %rax, %rdi
callq 0xd600
movq 0x30(%r14), %rax
movq 0x38(%r14), %rcx
subq %rax, %rcx
shrq $0x3, %rcx
testl %ecx, %ecx
jle 0x5daaa
xorl %r12d, %r12d
leaq 0x16c6b(%rip), %r15     # 0x74663
xorl %ebp, %ebp
movq 0x48(%r14), %rcx
movq 0x50(%r14), %rdx
subq %rcx, %rdx
shrq $0x2, %rdx
movslq %edx, %rsi
movl $0xffffffff, %edx       # imm = 0xFFFFFFFF
cmpq %rsi, %r12
jge 0x5da1a
movl (%rcx,%r12,4), %edx
movl %edx, %ecx
movq (%rax,%rcx,8), %rax
cmpb $0x1, 0x82(%rax)
jne 0x5da86
testb $0x1, 0x83(%rax)
jne 0x5da86
movb $0x1, %r13b
testb $0x1, %bpl
je 0x5da4e
movl $0x2, %edx
movq %rbx, %rdi
movq %r15, %rsi
callq 0xd600
movl %ebp, %r13d
movq 0x48(%r14), %rax
movq 0x50(%r14), %rcx
subq %rax, %rcx
shrq $0x2, %rcx
movslq %ecx, %rdx
movl $0xffffffff, %ecx       # imm = 0xFFFFFFFF
cmpq %rdx, %r12
jge 0x5da6e
movl (%rax,%r12,4), %ecx
movq 0x8(%r14), %rsi
movl %ecx, %eax
movq 0x30(%r14), %rcx
movq (%rcx,%rax,8), %rdx
movq %rbx, %rdi
callq 0x5cd4a
jmp 0x5da89
movl %ebp, %r13d
incq %r12
movq 0x30(%r14), %rax
movq 0x38(%r14), %rcx
subq %rax, %rcx
shrq $0x3, %rcx
movslq %ecx, %rcx
movl %r13d, %ebp
cmpq %rcx, %r12
jl 0x5d9fa
leaq 0x13636(%rip), %rsi     # 0x710e7
movl $0x1, %edx
movq %rbx, %rdi
callq 0xd600
movq 0x28(%rsp), %rsi
movq 0x30(%rsp), %rdx
movq %rbx, %rdi
callq 0xd600
movq %rax, %rbx
leaq 0x16b55(%rip), %rsi     # 0x7462f
movl $0x2, %edx
movq %rax, %rdi
callq 0xd600
movq %rsp, %rdi
leaq 0x10(%rsp), %r14
movq %r14, (%rdi)
movl $0x4, %esi
movl $0x20, %edx
callq 0xd630
movq (%rsp), %rsi
movq 0x8(%rsp), %rdx
movq %rbx, %rdi
callq 0xd600
leaq 0x16b5f(%rip), %rsi     # 0x74678
movl $0x1, %edx
movq %rax, %rdi
callq 0xd600
movq (%rsp), %rdi
cmpq %r14, %rdi
je 0x5db3c
movq 0x10(%rsp), %rsi
incq %rsi
callq 0xd530
movq 0x28(%rsp), %rdi
leaq 0x38(%rsp), %rax
cmpq %rax, %rdi
je 0x5db58
movq 0x38(%rsp), %rsi
incq %rsi
callq 0xd530
movq 0x68(%rsp), %rdi
leaq 0x78(%rsp), %rax
cmpq %rax, %rdi
je 0x5db74
movq 0x78(%rsp), %rsi
incq %rsi
callq 0xd530
addq $0x88, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
jmp 0x5dc10
jmp 0x5db91
jmp 0x5dbf1
jmp 0x5dc10
movq %rax, %rbx
movq 0x48(%rsp), %rdi
cmpq %r15, %rdi
jne 0x5dbc9
jmp 0x5dbf4
jmp 0x5dbf1
jmp 0x5dc10
jmp 0x5dbf1
jmp 0x5dc10
jmp 0x5dbf1
jmp 0x5dc10
jmp 0x5dc10
jmp 0x5dc10
jmp 0x5dbf1
jmp 0x5dbf1
jmp 0x5dbf1
jmp 0x5dc10
movq %rax, %rbx
leaq 0x58(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x5dbf4
movq 0x58(%rsp), %rsi
incq %rsi
callq 0xd530
jmp 0x5dbf4
jmp 0x5dbf1
jmp 0x5dc10
jmp 0x5dc10
movq %rax, %rbx
jmp 0x5dc2f
movq %rax, %rbx
movq (%rsp), %rdi
cmpq %r14, %rdi
jne 0x5dbfd
jmp 0x5dc13
movq %rax, %rbx
movq (%rsp), %rdi
cmpq %r12, %rdi
je 0x5dc13
movq 0x10(%rsp), %rsi
incq %rsi
callq 0xd530
jmp 0x5dc13
jmp 0x5dc10
jmp 0x5dc10
movq %rax, %rbx
movq 0x28(%rsp), %rdi
leaq 0x38(%rsp), %rax
cmpq %rax, %rdi
je 0x5dc2f
movq 0x38(%rsp), %rsi
incq %rsi
callq 0xd530
movq 0x68(%rsp), %rdi
leaq 0x78(%rsp), %rax
cmpq %rax, %rdi
je 0x5dc4b
movq 0x78(%rsp), %rsi
incq %rsi
callq 0xd530
movq %rbx, %rdi
callq 0xda70
nop