#2 DONE 2.0s #3 [internal] load .dockerignore #3 transferring context: 2B done #3 DONE 0.0s #4 [internal] load build context #4 transferring context: 21.85kB done #4 DONE 0.0s #5 [1/9] FROM docker.io/library/rockylinux:9@sha256:d7be1c094cc5845ee815d4632fe377514ee6ebcf8efaed6892889657e5ddaaa6 #5 resolve docker.io/library/rockylinux:9@sha256:d7be1c094cc5845ee815d4632fe377514ee6ebcf8efaed6892889657e5ddaaa6 0.0s done #5 sha256:d7be1c094cc5845ee815d4632fe377514ee6ebcf8efaed6892889657e5ddaaa6 4.72kB / 4.72kB done #5 sha256:d644d203142cd5b54ad2a83a203e1dee68af2229f8fe32f52a30c6e1d3c3a9e0 1.04kB / 1.04kB done #5 sha256:9cc24f05f309508aa852967ab1e3b582b302afc92605c24ce27715c683acd805 578B / 578B done #5 DONE 0.1s #6 [2/9] RUN mkdir /licenses #6 DONE 0.2s #7 [3/9] COPY licensing.txt /licenses #7 DONE 0.1s #8 [4/9] RUN mkdir -p /etc/yum.repos.d.bak/ ; cp -f /etc/yum.repos.d/* /etc/yum.repos.d.bak/ #8 0.102 /bin/sh: warning: setlocale: LC_ALL: cannot change locale (en_US.UTF-8) #8 DONE 0.1s #9 [5/9] COPY *.repo /etc/yum.repos.d/ #9 DONE 0.0s #10 [6/9] COPY pip.conf /etc/ #10 DONE 0.1s #11 [7/9] COPY *.sh / #11 DONE 0.1s #12 [8/9] RUN set -ex ; if ! dnf info git-review ; then dnf -y install epel-release ; fi #12 0.099 /bin/sh: warning: setlocale: LC_ALL: cannot change locale (en_US.UTF-8) #12 0.099 + dnf info git-review #12 0.340 Failed to set locale, defaulting to C.UTF-8 #12 0.710 added from: http://tf-mirrors.gz1.opensdn.io/re 90 MB/s | 14 MB 00:00 #12 2.646 added from: http://tf-mirrors.gz1.opensdn.io/re 41 MB/s | 1.9 MB 00:00 #12 3.068 added from: http://tf-mirrors.gz1.opensdn.io/re 16 MB/s | 402 kB 00:00 #12 3.385 added from: http://tf-mirrors.gz1.opensdn.io/re 90 MB/s | 16 MB 00:00 #12 6.843 added from: http://tf-mirrors.gz1.opensdn.io/re 77 MB/s | 11 MB 00:00 #12 9.216 added from: http://tf-mirrors.gz1.opensdn.io/re 29 MB/s | 1.1 MB 00:00 #12 9.587 added from: http://tf-mirrors.gz1.opensdn.io/re 59 MB/s | 4.8 MB 00:00 #12 10.74 added from: http://tf-mirrors.gz1.opensdn.io/re 23 MB/s | 697 kB 00:00 #12 11.03 added from: http://tf-mirrors.gz1.opensdn.io/re 17 MB/s | 474 kB 00:00 #12 11.26 added from: http://tf-mirrors.gz1.opensdn.io/re 944 kB/s | 18 kB 00:00 #12 11.42 added from: http://tf-mirrors.gz1.opensdn.io/re 15 kB/s | 257 B 00:00 #12 11.59 added from: http://tf-mirrors.gz1.opensdn.io/re 840 kB/s | 15 kB 00:00 #12 11.76 added from: http://tf-mirrors.gz1.opensdn.io/re 5.0 MB/s | 96 kB 00:00 #12 12.29 added from: http://tf-mirrors.gz1.opensdn.io/re 110 MB/s | 39 MB 00:00 #12 20.96 Third parties for OpenSDN 47 MB/s | 5.1 MB 00:00 #12 25.99 Available Packages #12 25.99 Name : git-review #12 25.99 Version : 2.3.1 #12 25.99 Release : 7.el9 #12 25.99 Architecture : noarch #12 25.99 Size : 86 k #12 25.99 Source : git-review-2.3.1-7.el9.src.rpm #12 25.99 Repository : tf-mirrors.ci_repos_epel9.repo #12 25.99 Summary : A Git helper for integration with Gerrit #12 25.99 URL : https://opendev.org/opendev/git-review #12 25.99 License : ASL 2.0 #12 25.99 Description : An extension for source control system Git that creates and manages #12 25.99 : review requests in the patch management system Gerrit. It replaces the #12 25.99 : rfc.sh script. #12 25.99 #12 DONE 26.2s #13 [9/9] RUN set -ex ; source /etc/os-release ; find /etc/yum.repos.d/ | grep -i centos | xargs -r rm ; ls -l /etc/yum.repos.d/ ; dnf -y update-minimal --security --sec-severity=Important --sec-severity=Critical ; dnf install -y hostname iproute less wget openssl glibc-langpack-en rsync procps-ng python3-pip ; dnf clean all -y ; rm -rf /var/cache/yum ; groupadd --gid 1999 --system contrail ; useradd -md /home/contrail --uid 1999 --shell /sbin/nologin --system --gid 1999 contrail #13 0.076 /bin/sh: warning: setlocale: LC_ALL: cannot change locale (en_US.UTF-8) #13 0.076 + source /etc/os-release #13 0.076 ++ NAME='Rocky Linux' #13 0.076 ++ VERSION='9.3 (Blue Onyx)' #13 0.076 ++ ID=rocky #13 0.076 ++ ID_LIKE='rhel centos fedora' #13 0.076 ++ VERSION_ID=9.3 #13 0.076 ++ PLATFORM_ID=platform:el9 #13 0.076 ++ PRETTY_NAME='Rocky Linux 9.3 (Blue Onyx)' #13 0.076 ++ ANSI_COLOR='0;32' #13 0.076 ++ LOGO=fedora-logo-icon #13 0.076 ++ CPE_NAME=cpe:/o:rocky:rocky:9::baseos #13 0.076 ++ HOME_URL=https://rockylinux.org/ #13 0.076 ++ BUG_REPORT_URL=https://bugs.rockylinux.org/ #13 0.076 ++ SUPPORT_END=2032-05-31 #13 0.076 ++ ROCKY_SUPPORT_PRODUCT=Rocky-Linux-9 #13 0.076 ++ ROCKY_SUPPORT_PRODUCT_VERSION=9.3 #13 0.076 ++ REDHAT_SUPPORT_PRODUCT='Rocky Linux' #13 0.076 ++ REDHAT_SUPPORT_PRODUCT_VERSION=9.3 #13 0.077 + find /etc/yum.repos.d/ #13 0.077 + grep -i centos #13 0.077 + xargs -r rm #13 0.079 + ls -l /etc/yum.repos.d/ #13 0.082 total 32 #13 0.082 -rw-r--r--. 1 root root 2707 Apr 18 02:06 mirror-base-rocky9.repo #13 0.082 -rw-r--r--. 1 root root 217 Apr 18 02:06 mirror-docker9.repo #13 0.082 -rw-r--r--. 1 root root 204 Apr 18 02:06 mirror-epel9.repo #13 0.082 -rw-r--r--. 1 root root 1 Apr 18 02:06 rocky-addons.repo #13 0.082 -rw-r--r--. 1 root root 1 Apr 18 02:06 rocky-devel.repo #13 0.082 -rw-r--r--. 1 root root 1 Apr 18 02:06 rocky-extras.repo #13 0.082 -rw-r--r--. 1 root root 1 Apr 18 02:06 rocky.repo #13 0.082 -rw-r--r--. 1 root root 140 Apr 18 02:06 tpc.repo #13 0.083 + dnf -y update-minimal --security --sec-severity=Important --sec-severity=Critical #13 0.216 Failed to set locale, defaulting to C.UTF-8 #13 0.661 Last metadata expiration check: 0:00:06 ago on Sat Apr 18 02:07:23 2026. #13 0.828 No security updates needed, but 101 updates available #13 0.881 Dependencies resolved. #13 0.882 Nothing to do. #13 0.882 Complete! #13 0.914 + dnf install -y hostname iproute less wget openssl glibc-langpack-en rsync procps-ng python3-pip #13 0.986 Failed to set locale, defaulting to C.UTF-8 #13 1.360 Last metadata expiration check: 0:00:07 ago on Sat Apr 18 02:07:23 2026. #13 1.516 Package hostname-3.23-6.el9.x86_64 is already installed. #13 1.519 Package less-590-2.el9_2.x86_64 is already installed. #13 1.521 Package openssl-1:3.0.7-24.el9.x86_64 is already installed. #13 1.569 Dependencies resolved. #13 1.571 ============================================================================================= #13 1.571 Package Arch Version Repository Size #13 1.571 ============================================================================================= #13 1.571 Installing: #13 1.571 glibc-langpack-en x86_64 2.34-231.el9_7.2 tf-mirrors.ci_repos_yum9-baseos 555 k #13 1.571 iproute x86_64 6.14.0-2.el9 tf-mirrors.ci_repos_yum9-baseos 808 k #13 1.571 procps-ng x86_64 3.3.17-14.el9 tf-mirrors.ci_repos_yum9-baseos 332 k #13 1.571 python3-pip noarch 21.3.1-1.el9 tf-mirrors.ci_repos_yum9-appstream 1.7 M #13 1.571 rsync x86_64 3.2.5-3.el9 tf-mirrors.ci_repos_yum9-baseos 403 k #13 1.571 wget x86_64 1.21.1-8.el9_4 tf-mirrors.ci_repos_yum9-appstream 768 k #13 1.571 Upgrading: #13 1.571 glibc x86_64 2.34-231.el9_7.2 tf-mirrors.ci_repos_yum9-baseos 2.0 M #13 1.571 glibc-common x86_64 2.34-231.el9_7.2 tf-mirrors.ci_repos_yum9-baseos 298 k #13 1.571 glibc-minimal-langpack x86_64 2.34-231.el9_7.2 tf-mirrors.ci_repos_yum9-baseos 25 k #13 1.571 less x86_64 590-6.el9 tf-mirrors.ci_repos_yum9-baseos 160 k #13 1.571 openssl x86_64 1:3.5.1-7.el9_7 tf-mirrors.ci_repos_yum9-baseos 1.4 M #13 1.571 openssl-libs x86_64 1:3.5.1-7.el9_7 tf-mirrors.ci_repos_yum9-baseos 2.3 M #13 1.571 Installing dependencies: #13 1.571 libbpf x86_64 2:1.5.0-2.el9 tf-mirrors.ci_repos_yum9-baseos 185 k #13 1.571 libmnl x86_64 1.0.4-16.el9_4 tf-mirrors.ci_repos_yum9-baseos 27 k #13 1.571 libpsl x86_64 0.21.1-5.el9 tf-mirrors.ci_repos_yum9-baseos 63 k #13 1.571 openssl-fips-provider x86_64 1:3.5.1-7.el9_7 tf-mirrors.ci_repos_yum9-baseos 812 k #13 1.571 psmisc x86_64 23.4-3.el9 tf-mirrors.ci_repos_yum9-baseos 226 k #13 1.571 publicsuffix-list-dafsa noarch 20210518-3.el9 tf-mirrors.ci_repos_yum9-baseos 58 k #13 1.571 Installing weak dependencies: #13 1.571 libxcrypt-compat x86_64 4.4.18-3.el9 tf-mirrors.ci_repos_yum9-appstream 88 k #13 1.571 python3-setuptools noarch 53.0.0-15.el9 tf-mirrors.ci_repos_yum9-baseos 831 k #13 1.571 #13 1.571 Transaction Summary #13 1.571 ============================================================================================= #13 1.571 Install 14 Packages #13 1.571 Upgrade 6 Packages #13 1.571 #13 1.573 Total download size: 13 M #13 1.573 Downloading Packages: #13 1.592 (1/20): libbpf-1.5.0-2.el9.x86_64.rpm 11 MB/s | 185 kB 00:00 #13 1.597 (2/20): libmnl-1.0.4-16.el9_4.x86_64.rpm 5.6 MB/s | 27 kB 00:00 #13 1.603 (3/20): libpsl-0.21.1-5.el9.x86_64.rpm 11 MB/s | 63 kB 00:00 #13 1.611 (4/20): glibc-langpack-en-2.34-231.el9_7.2.x86_ 15 MB/s | 555 kB 00:00 #13 1.621 (5/20): iproute-6.14.0-2.el9.x86_64.rpm 17 MB/s | 808 kB 00:00 #13 1.629 (6/20): procps-ng-3.3.17-14.el9.x86_64.rpm 19 MB/s | 332 kB 00:00 #13 1.634 (7/20): psmisc-23.4-3.el9.x86_64.rpm 20 MB/s | 226 kB 00:00 #13 1.637 (8/20): publicsuffix-list-dafsa-20210518-3.el9. 7.6 MB/s | 58 kB 00:00 #13 1.645 (9/20): openssl-fips-provider-3.5.1-7.el9_7.x86 19 MB/s | 812 kB 00:00 #13 1.651 (10/20): libxcrypt-compat-4.4.18-3.el9.x86_64.r 16 MB/s | 88 kB 00:00 #13 1.658 (11/20): rsync-3.2.5-3.el9.x86_64.rpm 19 MB/s | 403 kB 00:00 #13 1.670 (12/20): python3-setuptools-53.0.0-15.el9.noarc 23 MB/s | 831 kB 00:00 #13 1.689 (13/20): wget-1.21.1-8.el9_4.x86_64.rpm 24 MB/s | 768 kB 00:00 #13 1.711 (14/20): python3-pip-21.3.1-1.el9.noarch.rpm 30 MB/s | 1.7 MB 00:00 #13 1.719 (15/20): glibc-common-2.34-231.el9_7.2.x86_64.r 10 MB/s | 298 kB 00:00 #13 1.722 (16/20): glibc-minimal-langpack-2.34-231.el9_7. 2.4 MB/s | 25 kB 00:00 #13 1.726 (17/20): less-590-6.el9.x86_64.rpm 23 MB/s | 160 kB 00:00 #13 1.747 (18/20): glibc-2.34-231.el9_7.2.x86_64.rpm 26 MB/s | 2.0 MB 00:00 #13 1.770 (19/20): openssl-3.5.1-7.el9_7.x86_64.rpm 29 MB/s | 1.4 MB 00:00 #13 1.793 (20/20): openssl-libs-3.5.1-7.el9_7.x86_64.rpm 34 MB/s | 2.3 MB 00:00 #13 1.794 -------------------------------------------------------------------------------- #13 1.794 Total 59 MB/s | 13 MB 00:00 #13 1.794 Running transaction check #13 2.178 Transaction check succeeded. #13 2.178 Running transaction test #13 2.383 Transaction test succeeded. #13 2.384 Running transaction #13 2.767 Preparing : 1/1 #13 2.854 Upgrading : glibc-common-2.34-231.el9_7.2.x86_64 1/26 #13 2.866 Upgrading : glibc-minimal-langpack-2.34-231.el9_7.2.x86_64 2/26 #13 2.869 Running scriptlet: glibc-2.34-231.el9_7.2.x86_64 3/26 #13 2.926 Upgrading : glibc-2.34-231.el9_7.2.x86_64 3/26 #13 2.936 Running scriptlet: glibc-2.34-231.el9_7.2.x86_64 3/26 #13 3.103 Installing : glibc-langpack-en-2.34-231.el9_7.2.x86_64 4/26 #13 3.117 Installing : libbpf-2:1.5.0-2.el9.x86_64 5/26 #13 3.123 Installing : libmnl-1.0.4-16.el9_4.x86_64 6/26 #13 3.142 Installing : openssl-fips-provider-1:3.5.1-7.el9_7.x86_64 7/26 #13 3.199 Upgrading : openssl-libs-1:3.5.1-7.el9_7.x86_64 8/26 #13 3.212 Installing : psmisc-23.4-3.el9.x86_64 9/26 #13 3.221 Installing : libxcrypt-compat-4.4.18-3.el9.x86_64 10/26 #13 3.294 Installing : python3-setuptools-53.0.0-15.el9.noarch 11/26 #13 3.308 Installing : publicsuffix-list-dafsa-20210518-3.el9.noarch 12/26 #13 3.313 Installing : libpsl-0.21.1-5.el9.x86_64 13/26 #13 3.328 Installing : wget-1.21.1-8.el9_4.x86_64 14/26 #13 3.506 Installing : python3-pip-21.3.1-1.el9.noarch 15/26 #13 3.555 Installing : iproute-6.14.0-2.el9.x86_64 16/26 #13 3.572 Installing : rsync-3.2.5-3.el9.x86_64 17/26 #13 3.625 Upgrading : openssl-1:3.5.1-7.el9_7.x86_64 18/26 #13 3.651 Installing : procps-ng-3.3.17-14.el9.x86_64 19/26 #13 3.664 Upgrading : less-590-6.el9.x86_64 20/26 #13 3.675 Cleanup : openssl-1:3.0.7-24.el9.x86_64 21/26 #13 3.685 Cleanup : openssl-libs-1:3.0.7-24.el9.x86_64 22/26 #13 3.692 Cleanup : less-590-2.el9_2.x86_64 23/26 #13 3.701 Cleanup : glibc-2.34-83.el9.7.x86_64 24/26 #13 3.710 Cleanup : glibc-minimal-langpack-2.34-83.el9.7.x86_64 25/26 #13 3.715 Cleanup : glibc-common-2.34-83.el9.7.x86_64 26/26 #13 3.722 Running scriptlet: iproute-6.14.0-2.el9.x86_64 26/26 #13 3.736 Running scriptlet: glibc-common-2.34-83.el9.7.x86_64 26/26 #13 4.188 Verifying : glibc-langpack-en-2.34-231.el9_7.2.x86_64 1/26 #13 4.188 Verifying : iproute-6.14.0-2.el9.x86_64 2/26 #13 4.188 Verifying : libbpf-2:1.5.0-2.el9.x86_64 3/26 #13 4.188 Verifying : libmnl-1.0.4-16.el9_4.x86_64 4/26 #13 4.188 Verifying : libpsl-0.21.1-5.el9.x86_64 5/26 #13 4.188 Verifying : openssl-fips-provider-1:3.5.1-7.el9_7.x86_64 6/26 #13 4.188 Verifying : procps-ng-3.3.17-14.el9.x86_64 7/26 #13 4.188 Verifying : psmisc-23.4-3.el9.x86_64 8/26 #13 4.188 Verifying : publicsuffix-list-dafsa-20210518-3.el9.noarch 9/26 #13 4.188 Verifying : python3-setuptools-53.0.0-15.el9.noarch 10/26 #13 4.188 Verifying : rsync-3.2.5-3.el9.x86_64 11/26 #13 4.188 Verifying : libxcrypt-compat-4.4.18-3.el9.x86_64 12/26 #13 4.188 Verifying : python3-pip-21.3.1-1.el9.noarch 13/26 #13 4.188 Verifying : wget-1.21.1-8.el9_4.x86_64 14/26 #13 4.188 Verifying : glibc-2.34-231.el9_7.2.x86_64 15/26 #13 4.189 Verifying : glibc-2.34-83.el9.7.x86_64 16/26 #13 4.189 Verifying : glibc-common-2.34-231.el9_7.2.x86_64 17/26 #13 4.189 Verifying : glibc-common-2.34-83.el9.7.x86_64 18/26 #13 4.189 Verifying : glibc-minimal-langpack-2.34-231.el9_7.2.x86_64 19/26 #13 4.189 Verifying : glibc-minimal-langpack-2.34-83.el9.7.x86_64 20/26 #13 4.189 Verifying : less-590-6.el9.x86_64 21/26 #13 4.189 Verifying : less-590-2.el9_2.x86_64 22/26 #13 4.189 Verifying : openssl-1:3.5.1-7.el9_7.x86_64 23/26 #13 4.189 Verifying : openssl-1:3.0.7-24.el9.x86_64 24/26 #13 4.189 Verifying : openssl-libs-1:3.5.1-7.el9_7.x86_64 25/26 #13 4.189 Verifying : openssl-libs-1:3.0.7-24.el9.x86_64 26/26 #13 4.266 #13 4.266 Upgraded: #13 4.266 glibc-2.34-231.el9_7.2.x86_64 #13 4.266 glibc-common-2.34-231.el9_7.2.x86_64 #13 4.266 glibc-minimal-langpack-2.34-231.el9_7.2.x86_64 #13 4.266 less-590-6.el9.x86_64 #13 4.266 openssl-1:3.5.1-7.el9_7.x86_64 #13 4.266 openssl-libs-1:3.5.1-7.el9_7.x86_64 #13 4.266 Installed: #13 4.266 glibc-langpack-en-2.34-231.el9_7.2.x86_64 #13 4.266 iproute-6.14.0-2.el9.x86_64 #13 4.266 libbpf-2:1.5.0-2.el9.x86_64 #13 4.266 libmnl-1.0.4-16.el9_4.x86_64 #13 4.266 libpsl-0.21.1-5.el9.x86_64 #13 4.266 libxcrypt-compat-4.4.18-3.el9.x86_64 #13 4.266 openssl-fips-provider-1:3.5.1-7.el9_7.x86_64 #13 4.266 procps-ng-3.3.17-14.el9.x86_64 #13 4.266 psmisc-23.4-3.el9.x86_64 #13 4.266 publicsuffix-list-dafsa-20210518-3.el9.noarch #13 4.266 python3-pip-21.3.1-1.el9.noarch #13 4.266 python3-setuptools-53.0.0-15.el9.noarch #13 4.266 rsync-3.2.5-3.el9.x86_64 #13 4.266 wget-1.21.1-8.el9_4.x86_64 #13 4.266 #13 4.266 Complete! #13 4.398 + dnf clean all -y #13 4.552 77 files removed #13 4.576 + rm -rf /var/cache/yum #13 4.578 + groupadd --gid 1999 --system contrail #13 4.606 + useradd -md /home/contrail --uid 1999 --shell /sbin/nologin --system --gid 1999 contrail #13 4.620 useradd warning: contrail's uid 1999 is greater than SYS_UID_MAX 999 #13 DONE 4.7s #14 exporting to image #14 exporting layers #14 exporting layers 1.1s done #14 writing image sha256:5121e728abc6ab8ec6d42d5b23f47abae418438fd766cbb560fccf32bdbeb32d done #14 naming to nexus.gz1.opensdn.io:5101/opensdn-general-base:master-2_7_8_4-2_2 done #14 DONE 1.1s 2026-04-18 02:07:34,538: INFO: Docker build duration: 35 seconds The push refers to repository [nexus.gz1.opensdn.io:5101/opensdn-general-base] 1c3eb9d3fa78: Preparing 4713f17fc4f5: Preparing c9d8642e3dfa: Preparing e04676ac6f31: Preparing d4a0de1a15fe: Preparing d8c6c81c9877: Preparing eea8bc210fff: Preparing bf7afcba5b72: Preparing 44343de3ea1d: Preparing d8c6c81c9877: Waiting eea8bc210fff: Waiting bf7afcba5b72: Waiting 44343de3ea1d: Waiting d4a0de1a15fe: Pushed e04676ac6f31: Pushed c9d8642e3dfa: Pushed d8c6c81c9877: Pushed 44343de3ea1d: Layer already exists eea8bc210fff: Pushed bf7afcba5b72: Pushed 1c3eb9d3fa78: Pushed 4713f17fc4f5: Pushed master-2_7_8_4-2_2: digest: sha256:098b523b6bee0169ed39bf0b41151905a1deee350af138c87ad39ec0d4b27d63 size: 2198 2026-04-18 02:07:46,122: INFO: Building opensdn-general-base finished successfully, duration: 47 seconds WARNING: This output is designed for human readability. For machine-readable output, please use --format. IMAGE ID DISK USAGE CONTENT SIZE EXTRA nexus.gz1.opensdn.io:5101/opensdn-ansible-deployer-src:master-2_7_8_4-2_2 8b6ea5c7c29b 1.41MB 0B nexus.gz1.opensdn.io:5101/opensdn-build-manifest-src:master-2_7_8_4-2_2 b07aae2cd5dd 4.17kB 0B nexus.gz1.opensdn.io:5101/opensdn-charms-src:master-2_7_8_4-2_2 08322c7d1ebe 6.05MB 0B nexus.gz1.opensdn.io:5101/opensdn-container-builder-src:master-2_7_8_4-2_2 a2ecbf14b183 2.48MB 0B nexus.gz1.opensdn.io:5101/opensdn-general-base:master-2_7_8_4-2_2 5121e728abc6 428MB 0B nexus.gz1.opensdn.io:5101/opensdn-kolla-ansible-src:master-2_7_8_4-2_2 203406138c96 32.7MB 0B nexus.gz1.opensdn.io:5101/tf-dev-sandbox:frozen 36053d473d09 21GB 0B U tf-dev-sandbox:compile d5d13f9793f7 34.3GB 0B