// File: /workspace/github_cpp_makefile_star2_O1/ambersun1234[P]AVL_Tree/./googletest/googletest/src/gtest.cc
// Function: testing::internal::JsonUnitTestResultPrinter::PrintJsonTestCase(std::ostream*, testing::TestCase const&)
void JsonUnitTestResultPrinter::PrintJsonTestCase(std::ostream* stream,
                                                  const TestCase& test_case) {
  const std::string kTestsuite = "testsuite";
  const std::string kIndent = Indent(6);

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

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

  bool comma = false;
  for (int i = 0; i < test_case.total_test_count(); ++i) {
    if (test_case.GetTestInfo(i)->is_reportable()) {
      if (comma) {
        *stream << ",\n";
      } else {
        comma = true;
      }
      OutputJsonTestInfo(stream, test_case.name(), *test_case.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 0x58(%rsp), %rax
movq %rax, -0x10(%rax)
leaq 0x181c7(%rip), %rsi     # 0x36602
leaq 0x181c9(%rip), %rdx     # 0x3660b
leaq 0x48(%rsp), %rdi
callq 0x30c22
leaq 0x38(%rsp), %rax
movq %rax, -0x10(%rax)
leaq 0x28(%rsp), %rdi
movl $0x6, %esi
movl $0x20, %edx
callq 0x7590
leaq 0x10(%rsp), %r12
movq %r12, -0x10(%r12)
movq %rsp, %rdi
movl $0x4, %esi
movl $0x20, %edx
callq 0x7590
movq (%rsp), %rsi
movq 0x8(%rsp), %rdx
movq %rbx, %rdi
callq 0x7560
leaq 0x18261(%rip), %rsi     # 0x366fe
movl $0x2, %edx
movq %rax, %rdi
callq 0x7560
movq (%rsp), %rdi
cmpq %r12, %rdi
je 0x1e4c0
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x7480
movq %rsp, %rdi
movq %r12, (%rdi)
leaq 0x180ef(%rip), %rsi     # 0x365bc
leaq 0x180ec(%rip), %rdx     # 0x365c0
callq 0x30c22
movq 0x8(%r14), %rsi
leaq 0x68(%rsp), %rdi
leaq 0x27(%rsp), %rdx
callq 0x2a9f6
leaq 0x48(%rsp), %rsi
movq %rsp, %rdx
leaq 0x68(%rsp), %rcx
leaq 0x28(%rsp), %r8
movq %rbx, %rdi
movl $0x1, %r9d
callq 0x1d1f8
leaq 0x78(%rsp), %r15
movq -0x10(%r15), %rdi
cmpq %r15, %rdi
je 0x1e527
movq 0x78(%rsp), %rsi
incq %rsi
callq 0x7480
movq (%rsp), %rdi
cmpq %r12, %rdi
je 0x1e53d
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x7480
movq %rsp, %rdi
movq %r12, (%rdi)
leaq 0x17e4d(%rip), %rsi     # 0x36397
leaq 0x17e4b(%rip), %rdx     # 0x3639c
callq 0x30c22
movq 0x30(%r14), %rax
movq 0x38(%r14), %rdx
cmpq %rdx, %rax
je 0x1e58f
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 0x1e567
jmp 0x1e591
xorl %ecx, %ecx
leaq 0x48(%rsp), %rsi
movq %rsp, %rdx
leaq 0x28(%rsp), %r8
movq %rbx, %rdi
movl $0x1, %r9d
callq 0x1d400
movq (%rsp), %rdi
cmpq %r12, %rdi
je 0x1e5c2
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x7480
cmpb $0x0, 0x2b1d0(%rip)     # 0x49799
jne 0x1e7b1
movq %rsp, %rdi
movq %r12, (%rdi)
leaq 0x18b48(%rip), %rsi     # 0x37124
leaq 0x18b49(%rip), %rdx     # 0x3712c
callq 0x30c22
movq %r14, %rdi
callq 0x10d58
leaq 0x48(%rsp), %rsi
movq %rsp, %rdx
leaq 0x28(%rsp), %r8
movq %rbx, %rdi
movl %eax, %ecx
movl $0x1, %r9d
callq 0x1d400
movq (%rsp), %rdi
cmpq %r12, %rdi
je 0x1e623
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x7480
movq %rsp, %rdi
movq %r12, (%rdi)
leaq 0x17fe0(%rip), %rsi     # 0x36610
leaq 0x17fe1(%rip), %rdx     # 0x36618
callq 0x30c22
movq 0x30(%r14), %rax
movq 0x38(%r14), %rdx
xorl %ecx, %ecx
cmpq %rdx, %rax
je 0x1e674
movq (%rax), %rsi
cmpb $0x1, 0x82(%rsi)
movl $0x0, %edi
jne 0x1e66c
testb $0x1, 0x83(%rsi)
jne 0x1e66c
movzbl 0x81(%rsi), %edi
addl %edi, %ecx
addq $0x8, %rax
jmp 0x1e646
leaq 0x48(%rsp), %rsi
movq %rsp, %rdx
leaq 0x28(%rsp), %r8
movq %rbx, %rdi
movl $0x1, %r9d
callq 0x1d400
movq (%rsp), %rdi
cmpq %r12, %rdi
je 0x1e6a5
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x7480
movq %rsp, %rdi
movq %r12, (%rdi)
leaq 0x17f67(%rip), %rsi     # 0x36619
leaq 0x17f66(%rip), %rdx     # 0x3661f
callq 0x30c22
leaq 0x48(%rsp), %rsi
movq %rsp, %rdx
leaq 0x28(%rsp), %r8
movq %rbx, %rdi
xorl %ecx, %ecx
movl $0x1, %r9d
callq 0x1d400
movq (%rsp), %rdi
cmpq %r12, %rdi
je 0x1e6f1
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x7480
movq %rsp, %rdi
movq %r12, (%rdi)
leaq 0x17eb4(%rip), %rsi     # 0x365b2
leaq 0x17eb1(%rip), %rdx     # 0x365b6
callq 0x30c22
movq 0x78(%r14), %rsi
leaq 0x68(%rsp), %rdi
callq 0x1e156
leaq 0x48(%rsp), %rsi
movq %rsp, %rdx
leaq 0x68(%rsp), %rcx
leaq 0x28(%rsp), %r8
movq %rbx, %rdi
xorl %r9d, %r9d
callq 0x1d1f8
movq 0x68(%rsp), %rdi
cmpq %r15, %rdi
je 0x1e74c
movq 0x78(%rsp), %rsi
incq %rsi
callq 0x7480
movq (%rsp), %rdi
cmpq %r12, %rdi
je 0x1e762
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x7480
leaq 0x80(%r14), %rsi
movq %rsp, %rdi
leaq 0x28(%rsp), %rdx
callq 0x1e1f8
movq (%rsp), %rsi
movq 0x8(%rsp), %rdx
movq %rbx, %rdi
callq 0x7560
leaq 0x17f85(%rip), %rsi     # 0x36713
movl $0x2, %edx
movq %rax, %rdi
callq 0x7560
movq (%rsp), %rdi
cmpq %r12, %rdi
je 0x1e7b1
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x7480
movq 0x28(%rsp), %rsi
movq 0x30(%rsp), %rdx
movq %rbx, %rdi
callq 0x7560
movq %rax, %r15
leaq 0x17f43(%rip), %rsi     # 0x36710
movl $0x1, %edx
movq %rax, %rdi
callq 0x7560
movq 0x48(%rsp), %rsi
movq 0x50(%rsp), %rdx
movq %r15, %rdi
callq 0x7560
leaq 0x17f03(%rip), %rsi     # 0x366f6
movl $0x5, %edx
movq %rax, %rdi
callq 0x7560
movq 0x30(%r14), %rax
movq 0x38(%r14), %rcx
subq %rax, %rcx
shrq $0x3, %rcx
testl %ecx, %ecx
jle 0x1e8d3
xorl %r12d, %r12d
leaq 0x17ef2(%rip), %r15     # 0x36713
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 0x1e843
movl (%rcx,%r12,4), %edx
movl %edx, %ecx
movq (%rax,%rcx,8), %rax
cmpb $0x1, 0x82(%rax)
jne 0x1e8af
testb $0x1, 0x83(%rax)
jne 0x1e8af
movb $0x1, %r13b
testb $0x1, %bpl
je 0x1e877
movl $0x2, %edx
movq %rbx, %rdi
movq %r15, %rsi
callq 0x7560
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 0x1e897
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 0x1d5f2
jmp 0x1e8b2
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 0x1e823
leaq 0x17b2c(%rip), %rsi     # 0x36406
movl $0x1, %edx
movq %rbx, %rdi
callq 0x7560
movq 0x28(%rsp), %rsi
movq 0x30(%rsp), %rdx
movq %rbx, %rdi
callq 0x7560
movq %rax, %rbx
leaq 0x17e27(%rip), %rsi     # 0x3672a
movl $0x2, %edx
movq %rax, %rdi
callq 0x7560
movq %rsp, %rdi
leaq 0x10(%rsp), %r14
movq %r14, (%rdi)
movl $0x4, %esi
movl $0x20, %edx
callq 0x7590
movq (%rsp), %rsi
movq 0x8(%rsp), %rdx
movq %rbx, %rdi
callq 0x7560
leaq 0x17de6(%rip), %rsi     # 0x36728
movl $0x1, %edx
movq %rax, %rdi
callq 0x7560
movq (%rsp), %rdi
cmpq %r14, %rdi
je 0x1e965
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x7480
movq 0x28(%rsp), %rdi
leaq 0x38(%rsp), %rax
cmpq %rax, %rdi
je 0x1e981
movq 0x38(%rsp), %rsi
incq %rsi
callq 0x7480
movq 0x48(%rsp), %rdi
leaq 0x58(%rsp), %rax
cmpq %rax, %rdi
je 0x1e99d
movq 0x58(%rsp), %rsi
incq %rsi
callq 0x7480
addq $0x88, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
jmp 0x1ea30
movq %rax, %rbx
movq 0x68(%rsp), %rdi
cmpq %r15, %rdi
jne 0x1e9e9
jmp 0x1ea14
jmp 0x1ea11
jmp 0x1ea30
jmp 0x1ea11
jmp 0x1ea30
jmp 0x1ea11
jmp 0x1ea30
jmp 0x1ea30
jmp 0x1ea30
jmp 0x1ea11
jmp 0x1ea11
jmp 0x1ea11
jmp 0x1ea30
movq %rax, %rbx
leaq 0x78(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x1ea14
movq 0x78(%rsp), %rsi
incq %rsi
callq 0x7480
jmp 0x1ea14
jmp 0x1ea11
jmp 0x1ea30
jmp 0x1ea30
movq %rax, %rbx
jmp 0x1ea4f
movq %rax, %rbx
movq (%rsp), %rdi
cmpq %r14, %rdi
jne 0x1ea1d
jmp 0x1ea33
movq %rax, %rbx
movq (%rsp), %rdi
cmpq %r12, %rdi
je 0x1ea33
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x7480
jmp 0x1ea33
jmp 0x1ea30
jmp 0x1ea30
movq %rax, %rbx
movq 0x28(%rsp), %rdi
leaq 0x38(%rsp), %rax
cmpq %rax, %rdi
je 0x1ea4f
movq 0x38(%rsp), %rsi
incq %rsi
callq 0x7480
movq 0x48(%rsp), %rdi
leaq 0x58(%rsp), %rax
cmpq %rax, %rdi
je 0x1ea6b
movq 0x58(%rsp), %rsi
incq %rsi
callq 0x7480
movq %rbx, %rdi
callq 0x7960
nop