type: CreationInfo
spec version: 3.0.1
created by: https://anchore.com/syft/dir/repo/openeuler/openEuler-24.03-LTS-SP3/update/x86_64-7c657391-46f5-44ad-8dac-1bdd4e8d37bb-specv3/SPDXRef-gnrtd2
created using: https://anchore.com/syft/dir/repo/openeuler/openEuler-24.03-LTS-SP3/update/x86_64-7c657391-46f5-44ad-8dac-1bdd4e8d37bb-specv3/additionalToolSPDXRef-gnrtd3
created: 2026-08-22T18:03:27Z

type: CreationInfo
spec version: 3.0.1
created by: https://anchore.com/syft/dir/repo/openeuler/openEuler-24.03-LTS-SP3/update/x86_64-7c657391-46f5-44ad-8dac-1bdd4e8d37bb-specv3/SPDXRef-gnrtd0
created using: https://anchore.com/syft/dir/repo/openeuler/openEuler-24.03-LTS-SP3/update/x86_64-7c657391-46f5-44ad-8dac-1bdd4e8d37bb-specv3/additionalToolSPDXRef-gnrtd1
created: 2026-08-22T18:03:27Z

spdx id: https://anchore.com/syft/dir/repo/openeuler/openEuler-24.03-LTS-SP3/update/x86_64-7c657391-46f5-44ad-8dac-1bdd4e8d37bb-specv3/SPDXRef-gnrtd3838
type: Relationship
relationship type: hasDeclaredLicense
to: https://anchore.com/syft/dir/repo/openeuler/openEuler-24.03-LTS-SP3/update/x86_64-7c657391-46f5-44ad-8dac-1bdd4e8d37bb-specv3/SPDXRef-gnrtd3836
from: https://anchore.com/syft/dir/repo/openeuler/openEuler-24.03-LTS-SP3/update/x86_64-7c657391-46f5-44ad-8dac-1bdd4e8d37bb-specv3/SPDXRef-gnrtd3828
creation info: _:creationInfo_0

spdx id: https://anchore.com/syft/dir/repo/openeuler/openEuler-24.03-LTS-SP3/update/x86_64-7c657391-46f5-44ad-8dac-1bdd4e8d37bb-specv3/SPDXRef-gnrtd147
type: Relationship
relationship type: hasDeclaredLicense
to: https://anchore.com/syft/dir/repo/openeuler/openEuler-24.03-LTS-SP3/update/x86_64-7c657391-46f5-44ad-8dac-1bdd4e8d37bb-specv3/SPDXRef-gnrtd148
from: https://anchore.com/syft/dir/repo/openeuler/openEuler-24.03-LTS-SP3/update/x86_64-7c657391-46f5-44ad-8dac-1bdd4e8d37bb-specv3/SPDXRef-gnrtd9
creation info: _:creationInfo_0

spdx id: https://anchore.com/syft/dir/repo/openeuler/openEuler-24.03-LTS-SP3/update/x86_64-7c657391-46f5-44ad-8dac-1bdd4e8d37bb-specv3/SPDXRef-gnrtd144
type: Relationship
relationship type: hasConcludedLicense
to: https://anchore.com/syft/dir/repo/openeuler/openEuler-24.03-LTS-SP3/update/x86_64-7c657391-46f5-44ad-8dac-1bdd4e8d37bb-specv3/SPDXRef-gnrtd145
from: https://anchore.com/syft/dir/repo/openeuler/openEuler-24.03-LTS-SP3/update/x86_64-7c657391-46f5-44ad-8dac-1bdd4e8d37bb-specv3/SPDXRef-gnrtd9
creation info: _:creationInfo_0

spdx id: https://anchore.com/syft/dir/repo/openeuler/openEuler-24.03-LTS-SP3/update/x86_64-7c657391-46f5-44ad-8dac-1bdd4e8d37bb-specv3/SPDXRef-gnrtd72
type: Relationship
relationship type: hasConcludedLicense
to: https://anchore.com/syft/dir/repo/openeuler/openEuler-24.03-LTS-SP3/update/x86_64-7c657391-46f5-44ad-8dac-1bdd4e8d37bb-specv3/SPDXRef-gnrtd73
from: https://anchore.com/syft/dir/repo/openeuler/openEuler-24.03-LTS-SP3/update/x86_64-7c657391-46f5-44ad-8dac-1bdd4e8d37bb-specv3/SPDXRef-gnrtd69
creation info: _:creationInfo_0

spdx id: https://anchore.com/syft/dir/repo/openeuler/openEuler-24.03-LTS-SP3/update/x86_64-7c657391-46f5-44ad-8dac-1bdd4e8d37bb-specv3/SPDXRef-gnrtd66
type: Relationship
relationship type: hasDeclaredLicense
to: https://anchore.com/syft/dir/repo/openeuler/openEuler-24.03-LTS-SP3/update/x86_64-7c657391-46f5-44ad-8dac-1bdd4e8d37bb-specv3/SPDXRef-gnrtd67
from: https://anchore.com/syft/dir/repo/openeuler/openEuler-24.03-LTS-SP3/update/x86_64-7c657391-46f5-44ad-8dac-1bdd4e8d37bb-specv3/SPDXRef-gnrtd62
creation info: _:creationInfo_0

spdx id: https://anchore.com/syft/dir/repo/openeuler/openEuler-24.03-LTS-SP3/update/x86_64-7c657391-46f5-44ad-8dac-1bdd4e8d37bb-specv3/SPDXRef-gnrtd13785
type: Relationship
relationship type: hasDeclaredLicense
to: https://anchore.com/syft/dir/repo/openeuler/openEuler-24.03-LTS-SP3/update/x86_64-7c657391-46f5-44ad-8dac-1bdd4e8d37bb-specv3/SPDXRef-gnrtd13786
from: https://anchore.com/syft/dir/repo/openeuler/openEuler-24.03-LTS-SP3/update/x86_64-7c657391-46f5-44ad-8dac-1bdd4e8d37bb-specv3/SPDXRef-gnrtd13777
creation info: _:creationInfo_0

spdx id: https://anchore.com/syft/dir/repo/openeuler/openEuler-24.03-LTS-SP3/update/x86_64-7c657391-46f5-44ad-8dac-1bdd4e8d37bb-specv3/SPDXRef-gnrtd13782
type: Relationship
relationship type: hasConcludedLicense
to: https://anchore.com/syft/dir/repo/openeuler/openEuler-24.03-LTS-SP3/update/x86_64-7c657391-46f5-44ad-8dac-1bdd4e8d37bb-specv3/SPDXRef-gnrtd13783
from: https://anchore.com/syft/dir/repo/openeuler/openEuler-24.03-LTS-SP3/update/x86_64-7c657391-46f5-44ad-8dac-1bdd4e8d37bb-specv3/SPDXRef-gnrtd13777
creation info: _:creationInfo_0

spdx id: https://anchore.com/syft/dir/repo/openeuler/openEuler-24.03-LTS-SP3/update/x86_64-7c657391-46f5-44ad-8dac-1bdd4e8d37bb-specv3/SPDXRef-gnrtd3835
type: Relationship
relationship type: hasConcludedLicense
to: https://anchore.com/syft/dir/repo/openeuler/openEuler-24.03-LTS-SP3/update/x86_64-7c657391-46f5-44ad-8dac-1bdd4e8d37bb-specv3/SPDXRef-gnrtd3836
from: https://anchore.com/syft/dir/repo/openeuler/openEuler-24.03-LTS-SP3/update/x86_64-7c657391-46f5-44ad-8dac-1bdd4e8d37bb-specv3/SPDXRef-gnrtd3828
creation info: _:creationInfo_0

spdx id: https://anchore.com/syft/dir/repo/openeuler/openEuler-24.03-LTS-SP3/update/x86_64-7c657391-46f5-44ad-8dac-1bdd4e8d37bb-specv3/SPDXRef-gnrtd63
type: Relationship
relationship type: hasConcludedLicense
to: https://anchore.com/syft/dir/repo/openeuler/openEuler-24.03-LTS-SP3/update/x86_64-7c657391-46f5-44ad-8dac-1bdd4e8d37bb-specv3/SPDXRef-gnrtd64
from: https://anchore.com/syft/dir/repo/openeuler/openEuler-24.03-LTS-SP3/update/x86_64-7c657391-46f5-44ad-8dac-1bdd4e8d37bb-specv3/SPDXRef-gnrtd62
creation info: _:creationInfo_0

spdx id: https://anchore.com/syft/dir/repo/openeuler/openEuler-24.03-LTS-SP3/update/x86_64-7c657391-46f5-44ad-8dac-1bdd4e8d37bb-specv3/SPDXRef-gnrtd75
type: Relationship
relationship type: hasDeclaredLicense
to: https://anchore.com/syft/dir/repo/openeuler/openEuler-24.03-LTS-SP3/update/x86_64-7c657391-46f5-44ad-8dac-1bdd4e8d37bb-specv3/SPDXRef-gnrtd76
from: https://anchore.com/syft/dir/repo/openeuler/openEuler-24.03-LTS-SP3/update/x86_64-7c657391-46f5-44ad-8dac-1bdd4e8d37bb-specv3/SPDXRef-gnrtd69
creation info: _:creationInfo_0

spdx id: https://anchore.com/syft/dir/repo/openeuler/openEuler-24.03-LTS-SP3/update/x86_64-7c657391-46f5-44ad-8dac-1bdd4e8d37bb-specv3/SPDXRef-gnrtd13781
type: LifecycleScopedRelationship
relationship type: dependsOn
scope: build
completeness: noAssertion
to: https://anchore.com/syft/dir/repo/openeuler/openEuler-24.03-LTS-SP3/update/x86_64-7c657391-46f5-44ad-8dac-1bdd4e8d37bb-specv3/SPDXRef-gnrtd62
from: https://anchore.com/syft/dir/repo/openeuler/openEuler-24.03-LTS-SP3/update/x86_64-7c657391-46f5-44ad-8dac-1bdd4e8d37bb-specv3/SPDXRef-gnrtd13777
creation info: _:creationInfo_0

spdx id: https://anchore.com/syft/dir/repo/openeuler/openEuler-24.03-LTS-SP3/update/x86_64-7c657391-46f5-44ad-8dac-1bdd4e8d37bb-specv3/SPDXRef-gnrtd13779
type: LifecycleScopedRelationship
relationship type: dependsOn
scope: build
completeness: noAssertion
to: https://anchore.com/syft/dir/repo/openeuler/openEuler-24.03-LTS-SP3/update/x86_64-7c657391-46f5-44ad-8dac-1bdd4e8d37bb-specv3/SPDXRef-gnrtd3828
from: https://anchore.com/syft/dir/repo/openeuler/openEuler-24.03-LTS-SP3/update/x86_64-7c657391-46f5-44ad-8dac-1bdd4e8d37bb-specv3/SPDXRef-gnrtd13777
creation info: _:creationInfo_0

spdx id: https://anchore.com/syft/dir/repo/openeuler/openEuler-24.03-LTS-SP3/update/x86_64-7c657391-46f5-44ad-8dac-1bdd4e8d37bb-specv3/SPDXRef-gnrtd13780
type: LifecycleScopedRelationship
relationship type: dependsOn
scope: build
completeness: noAssertion
to: https://anchore.com/syft/dir/repo/openeuler/openEuler-24.03-LTS-SP3/update/x86_64-7c657391-46f5-44ad-8dac-1bdd4e8d37bb-specv3/SPDXRef-gnrtd69
from: https://anchore.com/syft/dir/repo/openeuler/openEuler-24.03-LTS-SP3/update/x86_64-7c657391-46f5-44ad-8dac-1bdd4e8d37bb-specv3/SPDXRef-gnrtd13777
creation info: _:creationInfo_0

spdx id: https://anchore.com/syft/dir/repo/openeuler/openEuler-24.03-LTS-SP3/update/x86_64-7c657391-46f5-44ad-8dac-1bdd4e8d37bb-specv3/SPDXRef-gnrtd13778
type: LifecycleScopedRelationship
relationship type: dependsOn
scope: build
completeness: noAssertion
to: https://anchore.com/syft/dir/repo/openeuler/openEuler-24.03-LTS-SP3/update/x86_64-7c657391-46f5-44ad-8dac-1bdd4e8d37bb-specv3/SPDXRef-gnrtd9
from: https://anchore.com/syft/dir/repo/openeuler/openEuler-24.03-LTS-SP3/update/x86_64-7c657391-46f5-44ad-8dac-1bdd4e8d37bb-specv3/SPDXRef-gnrtd13777
creation info: _:creationInfo_0

spdx id: https://anchore.com/syft/dir/repo/openeuler/openEuler-24.03-LTS-SP3/update/x86_64-7c657391-46f5-44ad-8dac-1bdd4e8d37bb-specv3/SPDXRef-gnrtd145
type: simplelicensing_LicenseExpression
simplelicensing license expression: LGPLv2+ and LGPLv2+ with exceptions and GPLv2+ and GPLv2+ with exceptions and BSD and Inner-Net-2.0 and ISC and Public Domain and GFDL-1.3-only
creation info: _:creationInfo_0

spdx id: https://anchore.com/syft/dir/repo/openeuler/openEuler-24.03-LTS-SP3/update/x86_64-7c657391-46f5-44ad-8dac-1bdd4e8d37bb-specv3/SPDXRef-gnrtd76
type: simplelicensing_LicenseExpression
simplelicensing license expression: GPLv3+ and GPLv3+ with exceptions and GPLv2+ with exceptions and LGPLv2+ and BSD
creation info: _:creationInfo_0

spdx id: https://anchore.com/syft/dir/repo/openeuler/openEuler-24.03-LTS-SP3/update/x86_64-7c657391-46f5-44ad-8dac-1bdd4e8d37bb-specv3/SPDXRef-gnrtd148
type: simplelicensing_LicenseExpression
simplelicensing license expression: LGPLv2+ and LGPLv2+ with exceptions and GPLv2+ and GPLv2+ with exceptions and BSD and Inner-Net-2.0 and ISC and Public Domain and GFDL-1.3-only
creation info: _:creationInfo_0

spdx id: https://anchore.com/syft/dir/repo/openeuler/openEuler-24.03-LTS-SP3/update/x86_64-7c657391-46f5-44ad-8dac-1bdd4e8d37bb-specv3/SPDXRef-gnrtd64
type: simplelicensing_LicenseExpression
simplelicensing license expression: GPLv3+ and GPLv3+ with exceptions and GPLv2+ with exceptions and LGPLv2+ and BSD
creation info: _:creationInfo_0

spdx id: https://anchore.com/syft/dir/repo/openeuler/openEuler-24.03-LTS-SP3/update/x86_64-7c657391-46f5-44ad-8dac-1bdd4e8d37bb-specv3/SPDXRef-gnrtd13783
type: simplelicensing_LicenseExpression
simplelicensing license expression: Apache-2.0 WITH LLVM-exception
creation info: _:creationInfo_0

spdx id: https://anchore.com/syft/dir/repo/openeuler/openEuler-24.03-LTS-SP3/update/x86_64-7c657391-46f5-44ad-8dac-1bdd4e8d37bb-specv3/SPDXRef-gnrtd67
type: simplelicensing_LicenseExpression
simplelicensing license expression: GPLv3+ and GPLv3+ with exceptions and GPLv2+ with exceptions and LGPLv2+ and BSD
creation info: _:creationInfo_0

spdx id: https://anchore.com/syft/dir/repo/openeuler/openEuler-24.03-LTS-SP3/update/x86_64-7c657391-46f5-44ad-8dac-1bdd4e8d37bb-specv3/SPDXRef-gnrtd3836
type: simplelicensing_LicenseExpression
simplelicensing license expression: NCSA
creation info: _:creationInfo_0

spdx id: https://anchore.com/syft/dir/repo/openeuler/openEuler-24.03-LTS-SP3/update/x86_64-7c657391-46f5-44ad-8dac-1bdd4e8d37bb-specv3/SPDXRef-gnrtd73
type: simplelicensing_LicenseExpression
simplelicensing license expression: GPLv3+ and GPLv3+ with exceptions and GPLv2+ with exceptions and LGPLv2+ and BSD
creation info: _:creationInfo_0

spdx id: https://anchore.com/syft/dir/repo/openeuler/openEuler-24.03-LTS-SP3/update/x86_64-7c657391-46f5-44ad-8dac-1bdd4e8d37bb-specv3/SPDXRef-gnrtd13786
type: simplelicensing_LicenseExpression
simplelicensing license expression: Apache-2.0 WITH LLVM-exception
creation info: _:creationInfo_0

spdx id: https://anchore.com/syft/dir/repo/openeuler/openEuler-24.03-LTS-SP3/update/x86_64-7c657391-46f5-44ad-8dac-1bdd4e8d37bb-specv3/SPDXRef-gnrtd74
type: Organization
name: http://openeuler.org
creation info: _:creationInfo_0

spdx id: https://anchore.com/syft/dir/repo/openeuler/openEuler-24.03-LTS-SP3/update/x86_64-7c657391-46f5-44ad-8dac-1bdd4e8d37bb-specv3/SPDXRef-gnrtd65
type: Organization
name: http://openeuler.org
creation info: _:creationInfo_0

spdx id: https://anchore.com/syft/dir/repo/openeuler/openEuler-24.03-LTS-SP3/update/x86_64-7c657391-46f5-44ad-8dac-1bdd4e8d37bb-specv3/SPDXRef-gnrtd146
type: Organization
name: http://openeuler.org
creation info: _:creationInfo_0

spdx id: https://anchore.com/syft/dir/repo/openeuler/openEuler-24.03-LTS-SP3/update/x86_64-7c657391-46f5-44ad-8dac-1bdd4e8d37bb-specv3/SPDXRef-gnrtd13784
type: Organization
name: http://openeuler.org
creation info: _:creationInfo_0

spdx id: https://anchore.com/syft/dir/repo/openeuler/openEuler-24.03-LTS-SP3/update/x86_64-7c657391-46f5-44ad-8dac-1bdd4e8d37bb-specv3/SPDXRef-gnrtd3837
type: Organization
name: http://openeuler.org
creation info: _:creationInfo_0

spdx id: https://anchore.com/syft/dir/repo/openeuler/openEuler-24.03-LTS-SP3/update/x86_64-7c657391-46f5-44ad-8dac-1bdd4e8d37bb-specv3/SPDXRef-gnrtd13777
type: software_Package
supplied by: https://anchore.com/syft/dir/repo/openeuler/openEuler-24.03-LTS-SP3/update/x86_64-7c657391-46f5-44ad-8dac-1bdd4e8d37bb-specv3/SPDXRef-gnrtd13784
software download location: NOASSERTION
summary: Multi-Level Intermediate Representation Overview
software package version: 0:17.0.6-58.oe2403sp3
software home page: http://mlir.llvm.org
description: The MLIR project is a novel approach to building reusable and extensible compiler infrastructure. MLIR aims to address software fragmentation, improve compilation for heterogeneous hardware, significantly reduce the cost of building domain specific compilers, and aid in connecting existing compilers together.
name: llvm-mlir
software source info: acquired package info from repodata DB: repodata/0e50863276b0c82d93577659f4645d8d6796dfed61d40c2c5b4d6833adbfc2dc-primary.sqlite.bz2
software package url: pkg:rpm/llvm-mlir@17.0.6-58.oe2403sp3?arch=x86_64&epoch=0&upstream=llvm-17.0.6-58.oe2403sp3.src.rpm
creation info: _:creationInfo_0

spdx id: https://anchore.com/syft/dir/repo/openeuler/openEuler-24.03-LTS-SP3/update/x86_64-7c657391-46f5-44ad-8dac-1bdd4e8d37bb-specv3/SPDXRef-gnrtd9
type: software_Package
supplied by: https://anchore.com/syft/dir/repo/openeuler/openEuler-24.03-LTS-SP3/update/x86_64-7c657391-46f5-44ad-8dac-1bdd4e8d37bb-specv3/SPDXRef-gnrtd146
software download location: NOASSERTION
summary: The GNU libc libraries
software package version: 0:2.38-101.oe2403sp3
software home page: http://www.gnu.org/software/glibc/
description: The GNU C Library project provides the core libraries for the GNU system and GNU/Linux systems, as well as many other systems that use Linux as the kernel. These libraries provide critical APIs including ISO C11, POSIX.1-2008, BSD, OS-specific APIs and more. These APIs include such foundational facilities as open, read, write, malloc, printf, getaddrinfo, dlopen, pthread_create, crypt, login, exit and more.
name: glibc
software source info: acquired package info from repodata DB: repodata/0e50863276b0c82d93577659f4645d8d6796dfed61d40c2c5b4d6833adbfc2dc-primary.sqlite.bz2
software package url: pkg:rpm/glibc@2.38-101.oe2403sp3?arch=x86_64&epoch=0&upstream=glibc-2.38-101.oe2403sp3.src.rpm
creation info: _:creationInfo_0

spdx id: https://anchore.com/syft/dir/repo/openeuler/openEuler-24.03-LTS-SP3/update/x86_64-7c657391-46f5-44ad-8dac-1bdd4e8d37bb-specv3/SPDXRef-gnrtd69
type: software_Package
supplied by: https://anchore.com/syft/dir/repo/openeuler/openEuler-24.03-LTS-SP3/update/x86_64-7c657391-46f5-44ad-8dac-1bdd4e8d37bb-specv3/SPDXRef-gnrtd74
software download location: NOASSERTION
summary: GNU Standard C++ Library
software package version: 0:12.3.1-111.oe2403sp3
software home page: https://gcc.gnu.org
description: The libstdc++ package contains a rewritten standard compliant GCC Standard C++ Library.
name: libstdc++
software source info: acquired package info from repodata DB: repodata/0e50863276b0c82d93577659f4645d8d6796dfed61d40c2c5b4d6833adbfc2dc-primary.sqlite.bz2
software package url: pkg:rpm/libstdc++@12.3.1-111.oe2403sp3?arch=x86_64&epoch=0&upstream=gcc-12.3.1-111.oe2403sp3.src.rpm
creation info: _:creationInfo_0

spdx id: https://anchore.com/syft/dir/repo/openeuler/openEuler-24.03-LTS-SP3/update/x86_64-7c657391-46f5-44ad-8dac-1bdd4e8d37bb-specv3/SPDXRef-gnrtd62
type: software_Package
supplied by: https://anchore.com/syft/dir/repo/openeuler/openEuler-24.03-LTS-SP3/update/x86_64-7c657391-46f5-44ad-8dac-1bdd4e8d37bb-specv3/SPDXRef-gnrtd65
software download location: NOASSERTION
summary: GCC version 12 shared support library
software package version: 0:12.3.1-111.oe2403sp3
software home page: https://gcc.gnu.org
description: This package contains GCC shared support library which is needed e.g. for exception handling support.
name: libgcc
software source info: acquired package info from repodata DB: repodata/0e50863276b0c82d93577659f4645d8d6796dfed61d40c2c5b4d6833adbfc2dc-primary.sqlite.bz2
software package url: pkg:rpm/libgcc@12.3.1-111.oe2403sp3?arch=x86_64&epoch=0&upstream=gcc-12.3.1-111.oe2403sp3.src.rpm
creation info: _:creationInfo_0

spdx id: https://anchore.com/syft/dir/repo/openeuler/openEuler-24.03-LTS-SP3/update/x86_64-7c657391-46f5-44ad-8dac-1bdd4e8d37bb-specv3/SPDXRef-gnrtd3828
type: software_Package
supplied by: https://anchore.com/syft/dir/repo/openeuler/openEuler-24.03-LTS-SP3/update/x86_64-7c657391-46f5-44ad-8dac-1bdd4e8d37bb-specv3/SPDXRef-gnrtd3837
software download location: NOASSERTION
summary: LLVM shared libraries
software package version: 0:17.0.6-58.oe2403sp3
software home page: https://gitee.com/openeuler/llvm-project
description: Shared libraries for the LLVM compiler infrastructure.
name: llvm-libs
software source info: acquired package info from repodata DB: repodata/0e50863276b0c82d93577659f4645d8d6796dfed61d40c2c5b4d6833adbfc2dc-primary.sqlite.bz2
software package url: pkg:rpm/llvm-libs@17.0.6-58.oe2403sp3?arch=x86_64&epoch=0&upstream=llvm-17.0.6-58.oe2403sp3.src.rpm
creation info: _:creationInfo_0

spdx id: https://anchore.com/syft/dir/repo/openeuler/openEuler-24.03-LTS-SP3/update/x86_64-7c657391-46f5-44ad-8dac-1bdd4e8d37bb-specv3/additionalToolSPDXRef-gnrtd3
type: Tool
name: syft-[not provided]
creation info: _:creationInfo_1

spdx id: https://anchore.com/syft/dir/repo/openeuler/openEuler-24.03-LTS-SP3/update/x86_64-7c657391-46f5-44ad-8dac-1bdd4e8d37bb-specv3/additionalToolSPDXRef-gnrtd1
type: Tool
name: syft-[not provided]
creation info: _:creationInfo_0