// File: /workspace/github_cpp_makefile_star2_O3/ambersun1234[P]AVL_Tree/./googletest/googletest/src/gtest.cc
// Function: testing::internal::JsonUnitTestResultPrinter::OutputJsonTestInfo(std::ostream*, char const*, testing::TestInfo const&)
void JsonUnitTestResultPrinter::OutputJsonTestInfo(::std::ostream* stream,
                                                   const char* test_case_name,
                                                   const TestInfo& test_info) {
  const TestResult& result = *test_info.result();
  const std::string kTestcase = "testcase";
  const std::string kIndent = Indent(10);

  *stream << Indent(8) << "{\n";
  OutputJsonKey(stream, kTestcase, "name", test_info.name(), kIndent);

  if (test_info.value_param() != NULL) {
    OutputJsonKey(stream, kTestcase, "value_param",
                  test_info.value_param(), kIndent);
  }
  if (test_info.type_param() != NULL) {
    OutputJsonKey(stream, kTestcase, "type_param", test_info.type_param(),
                  kIndent);
  }
  if (GTEST_FLAG(list_tests)) {
    OutputJsonKey(stream, kTestcase, "file", test_info.file(), kIndent);
    OutputJsonKey(stream, kTestcase, "line", test_info.line(), kIndent, false);
    *stream << "\n" << Indent(8) << "}";
    return;
  }

  OutputJsonKey(stream, kTestcase, "status",
                test_info.should_run() ? "RUN" : "NOTRUN", kIndent);
  OutputJsonKey(stream, kTestcase, "time",
                FormatTimeInMillisAsDuration(result.elapsed_time()), kIndent);
  OutputJsonKey(stream, kTestcase, "classname", test_case_name, kIndent, false);
  *stream << TestPropertiesAsJson(result, kIndent);

  int failures = 0;
  for (int i = 0; i < result.total_part_count(); ++i) {
    const TestPartResult& part = result.GetTestPartResult(i);
    if (part.failed()) {
      *stream << ",\n";
      if (++failures == 1) {
        *stream << kIndent << "\"" << "failures" << "\": [\n";
      }
      const std::string location =
          internal::FormatCompilerIndependentFileLocation(part.file_name(),
                                                          part.line_number());
      const std::string message = EscapeJson(location + "\n" + part.message());
      *stream << kIndent << "  {\n"
              << kIndent << "    \"failure\": \"" << message << "\",\n"
              << kIndent << "    \"type\": \"\"\n"
              << kIndent << "  }";
    }
  }

  if (failures > 0)
    *stream << "\n" << kIndent << "]";
  *stream << "\n" << Indent(8) << "}";
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0xd8, %rsp
movq %rdx, %r14
movq %rsi, %r15
movq %rdi, 0x28(%rsp)
leaq 0x80(%rsp), %r12
movq %r12, -0x10(%r12)
leaq 0x19483(%rip), %rsi     # 0x365a5
leaq 0x19484(%rip), %rdx     # 0x365ad
leaq 0x70(%rsp), %rdi
callq 0x30548
leaq 0x60(%rsp), %r13
movq %r13, -0x10(%r13)
leaq 0x50(%rsp), %rdi
movl $0xa, %esi
movl $0x20, %edx
callq 0x7590
leaq 0x18(%rsp), %rbp
movq %rbp, -0x10(%rbp)
leaq 0x8(%rsp), %rdi
movl $0x8, %esi
movl $0x20, %edx
callq 0x7590
movq 0x8(%rsp), %rsi
movq 0x10(%rsp), %rdx
movq 0x28(%rsp), %rdi
callq 0x7560
leaq 0x195a6(%rip), %rsi     # 0x3672e
movl $0x2, %edx
movq %rax, %rdi
callq 0x7560
movq 0x8(%rsp), %rdi
cmpq %rbp, %rdi
je 0x1d1ac
movq 0x18(%rsp), %rsi
incq %rsi
callq 0x7480
leaq 0x8(%rsp), %rdi
movq %rbp, (%rdi)
leaq 0x19431(%rip), %rsi     # 0x365ec
leaq 0x1942e(%rip), %rdx     # 0x365f0
callq 0x30548
movq 0x20(%r14), %rsi
leaq 0x30(%rsp), %rdi
leaq 0x90(%rsp), %rdx
callq 0x2a3b0
leaq 0x70(%rsp), %rsi
leaq 0x8(%rsp), %rdx
leaq 0x30(%rsp), %rcx
leaq 0x50(%rsp), %r8
movq 0x28(%rsp), %rdi
movl $0x1, %r9d
callq 0x1ccf8
leaq 0x40(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x1d21c
movq 0x40(%rsp), %rsi
incq %rsi
callq 0x7480
movq 0x8(%rsp), %rdi
cmpq %rbp, %rdi
je 0x1d233
movq 0x18(%rsp), %rsi
incq %rsi
callq 0x7480
movq 0x48(%r14), %rax
testq %rax, %rax
je 0x1d2de
cmpq $0x0, (%rax)
je 0x1d2de
leaq 0x8(%rsp), %rdi
movq %rbp, (%rdi)
leaq 0x19355(%rip), %rsi     # 0x365ae
leaq 0x19359(%rip), %rdx     # 0x365b9
callq 0x30548
movq 0x48(%r14), %rax
testq %rax, %rax
je 0x1d273
movq (%rax), %rsi
jmp 0x1d275
xorl %esi, %esi
leaq 0x30(%rsp), %rdi
leaq 0x90(%rsp), %rdx
callq 0x2a3b0
leaq 0x70(%rsp), %rsi
leaq 0x8(%rsp), %rdx
leaq 0x30(%rsp), %rcx
leaq 0x50(%rsp), %r8
movq 0x28(%rsp), %rdi
movl $0x1, %r9d
callq 0x1ccf8
movq 0x30(%rsp), %rdi
leaq 0x40(%rsp), %rax
cmpq %rax, %rdi
je 0x1d2c7
movq 0x40(%rsp), %rsi
incq %rsi
callq 0x7480
movq 0x8(%rsp), %rdi
cmpq %rbp, %rdi
je 0x1d2de
movq 0x18(%rsp), %rsi
incq %rsi
callq 0x7480
movq 0x40(%r14), %rax
testq %rax, %rax
je 0x1d389
cmpq $0x0, (%rax)
je 0x1d389
leaq 0x8(%rsp), %rdi
movq %rbp, (%rdi)
leaq 0x192b6(%rip), %rsi     # 0x365ba
leaq 0x192b9(%rip), %rdx     # 0x365c4
callq 0x30548
movq 0x40(%r14), %rax
testq %rax, %rax
je 0x1d31e
movq (%rax), %rsi
jmp 0x1d320
xorl %esi, %esi
leaq 0x30(%rsp), %rdi
leaq 0x90(%rsp), %rdx
callq 0x2a3b0
leaq 0x70(%rsp), %rsi
leaq 0x8(%rsp), %rdx
leaq 0x30(%rsp), %rcx
leaq 0x50(%rsp), %r8
movq 0x28(%rsp), %rdi
movl $0x1, %r9d
callq 0x1ccf8
movq 0x30(%rsp), %rdi
leaq 0x40(%rsp), %rax
cmpq %rax, %rdi
je 0x1d372
movq 0x40(%rsp), %rsi
incq %rsi
callq 0x7480
movq 0x8(%rsp), %rdi
cmpq %rbp, %rdi
je 0x1d389
movq 0x18(%rsp), %rsi
incq %rsi
callq 0x7480
cmpb $0x1, 0x2c409(%rip)     # 0x49799
jne 0x1d4ca
leaq 0x8(%rsp), %rdi
movq %rbp, (%rdi)
leaq 0x19220(%rip), %rsi     # 0x365c5
leaq 0x1921d(%rip), %rdx     # 0x365c9
callq 0x30548
movq 0x50(%r14), %rsi
leaq 0x30(%rsp), %rdi
leaq 0x90(%rsp), %rdx
callq 0x2a3b0
leaq 0x70(%rsp), %rsi
leaq 0x8(%rsp), %rdx
leaq 0x30(%rsp), %rcx
leaq 0x50(%rsp), %r8
movq 0x28(%rsp), %rdi
movl $0x1, %r9d
callq 0x1ccf8
movq 0x30(%rsp), %rdi
leaq 0x40(%rsp), %rax
cmpq %rax, %rdi
je 0x1d407
movq 0x40(%rsp), %rsi
incq %rsi
callq 0x7480
movq 0x8(%rsp), %rdi
cmpq %rbp, %rdi
je 0x1d41e
movq 0x18(%rsp), %rsi
incq %rsi
callq 0x7480
leaq 0x8(%rsp), %rdi
movq %rbp, (%rdi)
leaq 0x1919d(%rip), %rsi     # 0x365ca
leaq 0x1919a(%rip), %rdx     # 0x365ce
callq 0x30548
movl 0x70(%r14), %ecx
leaq 0x70(%rsp), %rsi
leaq 0x8(%rsp), %rdx
leaq 0x50(%rsp), %r8
movq 0x28(%rsp), %rdi
xorl %r9d, %r9d
callq 0x1cf00
movq 0x8(%rsp), %rdi
cmpq %rbp, %rdi
je 0x1d470
movq 0x18(%rsp), %rsi
incq %rsi
callq 0x7480
leaq 0x18fbf(%rip), %rsi     # 0x36436
movl $0x1, %edx
movq 0x28(%rsp), %rdi
callq 0x7560
leaq 0x8(%rsp), %rdi
movq %rbp, (%rdi)
movl $0x8, %esi
movl $0x20, %edx
callq 0x7590
movq 0x8(%rsp), %rsi
movq 0x10(%rsp), %rdx
movq 0x28(%rsp), %rdi
callq 0x7560
leaq 0x192a0(%rip), %rsi     # 0x36758
movl $0x1, %edx
movq %rax, %rdi
callq 0x7560
jmp 0x1da68
leaq 0x8(%rsp), %rdi
movq %rbp, (%rdi)
leaq 0x190fb(%rip), %rsi     # 0x365d4
leaq 0x190fa(%rip), %rdx     # 0x365da
callq 0x30548
movzbl 0x80(%r14), %eax
leaq 0x1922e(%rip), %rcx     # 0x36722
leaq 0x19224(%rip), %rsi     # 0x3671f
testq %rax, %rax
cmovneq %rcx, %rsi
leaq 0x30(%rsp), %rdi
leaq 0x40(%rsp), %rcx
movq %rcx, (%rdi)
xorq $0x1, %rax
leaq (%rax,%rax,2), %rax
leaq (%rsi,%rax), %rdx
addq $0x3, %rdx
callq 0x30548
leaq 0x70(%rsp), %rsi
leaq 0x8(%rsp), %rdx
leaq 0x30(%rsp), %rcx
leaq 0x50(%rsp), %r8
movq 0x28(%rsp), %rdi
movl $0x1, %r9d
callq 0x1ccf8
movq 0x30(%rsp), %rdi
leaq 0x40(%rsp), %rax
cmpq %rax, %rdi
je 0x1d564
movq 0x40(%rsp), %rsi
incq %rsi
callq 0x7480
movq 0x8(%rsp), %rdi
cmpq %rbp, %rdi
je 0x1d57b
movq 0x18(%rsp), %rsi
incq %rsi
callq 0x7480
leaq 0x8(%rsp), %rdi
movq %rbp, (%rdi)
leaq 0x19058(%rip), %rsi     # 0x365e2
leaq 0x19055(%rip), %rdx     # 0x365e6
callq 0x30548
movq 0x100(%r14), %rsi
leaq 0x30(%rsp), %rdi
callq 0x1dc56
leaq 0x70(%rsp), %rsi
leaq 0x8(%rsp), %rdx
leaq 0x30(%rsp), %rcx
leaq 0x50(%rsp), %r8
movq 0x28(%rsp), %rdi
movl $0x1, %r9d
callq 0x1ccf8
movq 0x30(%rsp), %rdi
leaq 0x40(%rsp), %rax
cmpq %rax, %rdi
je 0x1d5e7
movq 0x40(%rsp), %rsi
incq %rsi
callq 0x7480
movq 0x8(%rsp), %rdi
cmpq %rbp, %rdi
je 0x1d5fe
movq 0x18(%rsp), %rsi
incq %rsi
callq 0x7480
leaq 0x8(%rsp), %rdi
movq %rbp, (%rdi)
leaq 0x18fda(%rip), %rsi     # 0x365e7
leaq 0x18fdc(%rip), %rdx     # 0x365f0
callq 0x30548
leaq 0x30(%rsp), %rdi
leaq 0x90(%rsp), %rdx
movq %r15, %rsi
callq 0x2a3b0
leaq 0x70(%rsp), %rsi
leaq 0x8(%rsp), %rdx
leaq 0x30(%rsp), %rcx
leaq 0x50(%rsp), %r8
movq 0x28(%rsp), %rdi
xorl %r9d, %r9d
callq 0x1ccf8
movq 0x30(%rsp), %rdi
leaq 0x40(%rsp), %rax
cmpq %rax, %rdi
je 0x1d66b
movq 0x40(%rsp), %rsi
incq %rsi
callq 0x7480
leaq 0x90(%r14), %rax
movq %rax, 0xb0(%rsp)
movq 0x8(%rsp), %rdi
cmpq %rbp, %rdi
je 0x1d691
movq 0x18(%rsp), %rsi
incq %rsi
callq 0x7480
leaq 0x8(%rsp), %rdi
leaq 0x50(%rsp), %rdx
movq 0xb0(%rsp), %rsi
callq 0x1dcf4
movq 0x8(%rsp), %rsi
movq 0x10(%rsp), %rdx
movq 0x28(%rsp), %rdi
callq 0x7560
movq 0x8(%rsp), %rdi
cmpq %rbp, %rdi
je 0x1d6d3
movq 0x18(%rsp), %rsi
incq %rsi
callq 0x7480
movq 0xd0(%r14), %rax
subq 0xc8(%r14), %rax
shrq $0x4, %rax
imull $0xb6db6db7, %eax, %eax # imm = 0xB6DB6DB7
testl %eax, %eax
jle 0x1da06
xorl %ebp, %ebp
leaq 0xb8(%rsp), %r12
xorl %r15d, %r15d
movq 0xb0(%rsp), %rdi
movl %ebp, %esi
callq 0x1469c
movq %rax, %r13
cmpl $0x0, (%rax)
je 0x1d99c
movl $0x2, %edx
movq 0x28(%rsp), %rdi
leaq 0x19017(%rip), %rsi     # 0x36743
callq 0x7560
testl %r15d, %r15d
jne 0x1d789
movq 0x50(%rsp), %rsi
movq 0x58(%rsp), %rdx
movq 0x28(%rsp), %rdi
callq 0x7560
movq %rax, %rbx
movl $0x1, %edx
movq %rax, %rdi
leaq 0x18fe4(%rip), %rsi     # 0x36740
callq 0x7560
movl $0x8, %edx
movq %rbx, %rdi
leaq 0x199e4(%rip), %rsi     # 0x37154
callq 0x7560
movl $0x5, %edx
movq %rbx, %rdi
leaq 0x18fa2(%rip), %rsi     # 0x36726
callq 0x7560
movq 0x10(%r13), %rsi
testq %rsi, %rsi
je 0x1d796
movq 0x8(%r13), %rsi
movl 0x28(%r13), %edx
leaq 0x8(%rsp), %rdi
callq 0x1aa0b
leaq 0xc8(%rsp), %rax
movq %rax, 0xb8(%rsp)
movq 0x8(%rsp), %rsi
movq 0x10(%rsp), %rdx
addq %rsi, %rdx
movq %r12, %rdi
callq 0xbf26
movq %r12, %rdi
leaq 0x18c63(%rip), %rsi     # 0x36436
callq 0x7a30
movq 0x50(%r13), %rsi
movq %r12, %rdi
callq 0x7a30
leaq 0xa0(%rsp), %rsi
movq %rsi, 0x90(%rsp)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0x1d818
movq %rdx, 0x90(%rsp)
movq (%rcx), %rdx
movq %rdx, 0xa0(%rsp)
jmp 0x1d81e
movups (%rcx), %xmm0
movups %xmm0, (%rsi)
movq 0x8(%rax), %rdx
movq %rdx, 0x98(%rsp)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
leaq 0x30(%rsp), %rdi
leaq 0x90(%rsp), %rsi
callq 0x1cb1e
movq 0x90(%rsp), %rdi
leaq 0xa0(%rsp), %rax
cmpq %rax, %rdi
je 0x1d870
movq 0xa0(%rsp), %rsi
incq %rsi
callq 0x7480
movq 0xb8(%rsp), %rdi
leaq 0xc8(%rsp), %rax
cmpq %rax, %rdi
je 0x1d895
movq 0xc8(%rsp), %rsi
incq %rsi
callq 0x7480
movq 0x50(%rsp), %rsi
movq 0x58(%rsp), %rdx
movq 0x28(%rsp), %rdi
callq 0x7560
movq %rax, %rbx
movl $0x4, %edx
movq %rax, %rdi
leaq 0x18e71(%rip), %rsi     # 0x3672c
callq 0x7560
movq 0x50(%rsp), %rsi
movq 0x58(%rsp), %rdx
movq %rbx, %rdi
callq 0x7560
movq %rax, %rbx
movl $0x10, %edx
movq %rax, %rdi
leaq 0x18e4d(%rip), %rsi     # 0x36731
callq 0x7560
movq 0x30(%rsp), %rsi
movq 0x38(%rsp), %rdx
movq %rbx, %rdi
callq 0x7560
movq %rax, %rbx
movl $0x3, %edx
movq %rax, %rdi
leaq 0x18e35(%rip), %rsi     # 0x36742
callq 0x7560
movq 0x50(%rsp), %rsi
movq 0x58(%rsp), %rdx
movq %rbx, %rdi
callq 0x7560
movq %rax, %rbx
movl $0xf, %edx
movq %rax, %rdi
leaq 0x18e10(%rip), %rsi     # 0x36746
callq 0x7560
movq 0x50(%rsp), %rsi
movq 0x58(%rsp), %rdx
movq %rbx, %rdi
callq 0x7560
movl $0x3, %edx
movq %rax, %rdi
leaq 0x18dfa(%rip), %rsi     # 0x36756
callq 0x7560
movq 0x30(%rsp), %rdi
leaq 0x40(%rsp), %rax
cmpq %rax, %rdi
je 0x1d97d
movq 0x40(%rsp), %rsi
incq %rsi
callq 0x7480
movq 0x8(%rsp), %rdi
leaq 0x18(%rsp), %rax
cmpq %rax, %rdi
je 0x1d999
movq 0x18(%rsp), %rsi
incq %rsi
callq 0x7480
incl %r15d
movq 0xd0(%r14), %rax
subq 0xc8(%r14), %rax
incl %ebp
shrq $0x4, %rax
imull $0xb6db6db7, %eax, %eax # imm = 0xB6DB6DB7
cmpl %eax, %ebp
jl 0x1d700
testl %r15d, %r15d
leaq 0x18(%rsp), %rbp
jle 0x1da06
leaq 0x18a67(%rip), %rsi     # 0x36436
movl $0x1, %edx
movq 0x28(%rsp), %rdi
callq 0x7560
movq 0x50(%rsp), %rsi
movq 0x58(%rsp), %rdx
movq 0x28(%rsp), %rdi
callq 0x7560
leaq 0x19583(%rip), %rsi     # 0x36f7c
movl $0x1, %edx
movq %rax, %rdi
callq 0x7560
leaq 0x18a29(%rip), %rsi     # 0x36436
movl $0x1, %edx
movq 0x28(%rsp), %rdi
callq 0x7560
leaq 0x8(%rsp), %rdi
movq %rbp, (%rdi)
movl $0x8, %esi
movl $0x20, %edx
callq 0x7590
movq 0x8(%rsp), %rsi
movq 0x10(%rsp), %rdx
movq 0x28(%rsp), %rdi
leaq 0x80(%rsp), %r12
leaq 0x60(%rsp), %r13
callq 0x7560
leaq 0x18cfd(%rip), %rsi     # 0x36758
movl $0x1, %edx
movq %rax, %rdi
callq 0x7560
movq 0x8(%rsp), %rdi
cmpq %rbp, %rdi
je 0x1da7f
movq 0x18(%rsp), %rsi
incq %rsi
callq 0x7480
movq 0x50(%rsp), %rdi
cmpq %r13, %rdi
je 0x1da96
movq 0x60(%rsp), %rsi
incq %rsi
callq 0x7480
movq 0x70(%rsp), %rdi
cmpq %r12, %rdi
je 0x1dab0
movq 0x80(%rsp), %rsi
incq %rsi
callq 0x7480
addq $0xd8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
jmp 0x1daf3
jmp 0x1db58
jmp 0x1daf3
jmp 0x1db46
jmp 0x1db58
jmp 0x1db46
jmp 0x1dbd0
jmp 0x1db58
jmp 0x1db46
jmp 0x1daf3
jmp 0x1db58
jmp 0x1db46
jmp 0x1db46
jmp 0x1daf3
jmp 0x1db46
jmp 0x1db58
jmp 0x1db58
jmp 0x1db46
jmp 0x1db46
jmp 0x1daf3
movq %rax, %rbx
movq 0x30(%rsp), %rdi
leaq 0x40(%rsp), %rax
jmp 0x1db2e
jmp 0x1db58
jmp 0x1db58
jmp 0x1db46
jmp 0x1db46
movq %rax, %rbx
movq 0x8(%rsp), %rdi
cmpq %rbp, %rdi
jne 0x1dc03
jmp 0x1dc10
jmp 0x1db58
movq %rax, %rbx
leaq 0x40(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x1db5b
movq 0x40(%rsp), %rsi
incq %rsi
callq 0x7480
jmp 0x1db5b
jmp 0x1db58
jmp 0x1db46
movq %rax, %rbx
jmp 0x1dc1d
movq %rax, %rbx
jmp 0x1dc34
jmp 0x1dbd0
movq %rax, %rbx
movq 0x8(%rsp), %rdi
cmpq %rbp, %rdi
je 0x1dc1d
movq 0x18(%rsp), %rsi
incq %rsi
callq 0x7480
jmp 0x1dc1d
jmp 0x1db7d
movq %rax, %rbx
jmp 0x1dbaa
movq %rax, %rbx
movq 0x90(%rsp), %rdi
leaq 0xa0(%rsp), %rax
cmpq %rax, %rdi
je 0x1dbaa
movq 0xa0(%rsp), %rsi
incq %rsi
callq 0x7480
movq 0xb8(%rsp), %rdi
leaq 0xc8(%rsp), %rax
cmpq %rax, %rdi
je 0x1dbf4
movq 0xc8(%rsp), %rsi
jmp 0x1dbec
jmp 0x1dbd0
movq %rax, %rbx
jmp 0x1dbf4
movq %rax, %rbx
jmp 0x1dc10
movq %rax, %rbx
movq 0x30(%rsp), %rdi
leaq 0x40(%rsp), %rax
cmpq %rax, %rdi
je 0x1dbf4
movq 0x40(%rsp), %rsi
incq %rsi
callq 0x7480
movq 0x8(%rsp), %rdi
leaq 0x18(%rsp), %rax
cmpq %rax, %rdi
je 0x1dc10
movq 0x18(%rsp), %rsi
incq %rsi
callq 0x7480
leaq 0x80(%rsp), %r12
leaq 0x60(%rsp), %r13
movq 0x50(%rsp), %rdi
cmpq %r13, %rdi
je 0x1dc34
movq 0x60(%rsp), %rsi
incq %rsi
callq 0x7480
movq 0x70(%rsp), %rdi
cmpq %r12, %rdi
je 0x1dc4e
movq 0x80(%rsp), %rsi
incq %rsi
callq 0x7480
movq %rbx, %rdi
callq 0x7960