Compare commits

...

36 Commits

Author SHA1 Message Date
David Abdurachmanov 5240bd5246
Bump release
Signed-off-by: David Abdurachmanov <davidlt@rivosinc.com>
2023-10-21 17:26:38 +03:00
David Abdurachmanov daac31bdbb
Enable autogen for riscv64
Signed-off-by: David Abdurachmanov <davidlt@rivosinc.com>
2023-03-23 14:08:33 +02:00
David Abdurachmanov 51349e85ff
Add support for riscv64
Initial support. Also properly check valgrind arches.

Signed-off-by: David Abdurachmanov <davidlt@rivosinc.com>
2023-03-23 10:30:38 +02:00
Fedora Release Engineering cb9de3f188 Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2023-01-19 22:53:03 +00:00
Orion Poplawski 454259f6ea Re-enable IPv6 support - was not the issue 2022-11-11 08:12:09 -07:00
Orion Poplawski ef93e44212 Disable IPv6 support - appears to break MPI_Init() on koji builders (bz#2141137) 2022-11-10 21:25:01 -07:00
Davide Cavalca 8f566791db Enable IPv6 support 2022-08-19 11:53:46 -04:00
Fedora Release Engineering 63ea11607f Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2022-07-22 02:09:38 +00:00
Orion Poplawski f1dc2cf7aa Drop java for i686 (bz#2104085) 2022-07-09 22:30:09 -06:00
Python Maint d2fb0dab27 Rebuilt for Python 3.11 2022-06-13 14:51:56 +02:00
Orion Poplawski 43098f897c Update to 4.1.4 2022-05-29 16:54:09 -06:00
Orion Poplawski d91b5d2dbc Update to 4.1.3 2022-04-16 17:36:19 -06:00
Jiri ec99e913a1 Rebuilt for java-17-openjdk as system jdk
https://fedoraproject.org/wiki/Changes/Java17
2022-02-05 23:15:56 +01:00
Fedora Release Engineering 3e53b4ed04 - Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2022-01-20 22:25:05 +00:00
Orion Poplawski c446ed0db6 Update to 4.1.2 2021-11-29 19:49:11 -07:00
Orion Poplawski 63c964d667 Upload source 2021-10-11 17:46:42 -06:00
Orion Poplawski c387385b45 Update to 4.1.2rc1 2021-10-10 19:10:20 -06:00
Sandro Mani 352773be19 Create cmake dir 2021-09-14 07:37:05 +02:00
Sandro Mani b8a28d859b Also own %{_libdir}/%{name}/lib/cmake/ 2021-09-03 16:20:46 +02:00
Fedora Release Engineering 17c0ab5595 - Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2021-07-22 17:16:42 +00:00
Orion Poplawski c9da4b0fca Only need environment-modules for EL7 2021-06-22 08:12:38 -06:00
Python Maint 4366f00459 Rebuilt for Python 3.10 2021-06-04 10:43:08 +02:00
Orion Poplawski 227b60ec52 Update to 4.1.1 2021-04-26 20:25:09 -06:00
Orion Poplawski c7b3ead5b7 Update to 4.1.1rc2 2021-04-05 07:53:48 -06:00
Orion Poplawski 059848ce5b Update to 4.1.1rc1 2021-02-10 18:46:56 -07:00
Orion Poplawski 8fc779b59b Add upstream patch for generalized requests 2021-01-28 08:28:30 -07:00
Orion Poplawski 8463f8f82f Whitespace 2021-01-27 21:05:01 -07:00
Orion Poplawski cd2fcb2471 Add upstream patch to fix AVX library linkage 2021-01-27 21:02:13 -07:00
Fedora Release Engineering b5bdf1245b - Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2021-01-26 22:32:40 +00:00
Orion Poplawski 9af26a187c Use set_build_flags macro
Drop old opt_ macros
2021-01-24 21:11:55 -07:00
Orion Poplawski 0dc3e87935 Update to 4.1.0 2021-01-24 20:09:52 -07:00
Tom Stellard fd11609c12 Add BuildRequires: make
https://fedoraproject.org/wiki/Changes/Remove_make_from_BuildRoot
2021-01-07 06:34:50 +00:00
Orion Poplawski 5707e44d8d Rebuild for libevent 2.1.12 2020-09-23 19:43:12 -06:00
Orion Poplawski 118dfb82cc Update to 4.0.5 2020-09-01 22:03:52 -06:00
Fedora Release Engineering e58606bdc0 - Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2020-07-28 12:45:03 +00:00
Jiri f3cb3adf54 Rebuilt for JDK-11 2020-07-11 03:44:01 +02:00
4 changed files with 276 additions and 75 deletions

9
.gitignore vendored
View File

@ -52,3 +52,12 @@ openmpi-1.4.1-RH.tar.bz2
/openmpi-4.0.3.tar.bz2
/openmpi-4.0.4rc1.tar.bz2
/openmpi-4.0.4.tar.bz2
/openmpi-4.0.5.tar.bz2
/openmpi-4.1.0.tar.bz2
/openmpi-4.1.1rc1.tar.bz2
/openmpi-4.1.1rc2.tar.bz2
/openmpi-4.1.1.tar.bz2
/openmpi-4.1.2rc1.tar.bz2
/openmpi-4.1.2.tar.bz2
/openmpi-4.1.3.tar.bz2
/openmpi-4.1.4.tar.bz2

View File

@ -0,0 +1,61 @@
From 0693a0dc91b5b2dbd7a83ac298d7c3a437d76327 Mon Sep 17 00:00:00 2001
From: David Abdurachmanov <davidlt@rivosinc.com>
Date: Fri, 23 Sep 2022 11:08:32 +0300
Subject: [PATCH] Add initial support for riscv64
Signed-off-by: David Abdurachmanov <davidlt@rivosinc.com>
---
config/opal_config_asm.m4 | 5 +++++
opal/include/opal/sys/architecture.h | 1 +
opal/include/opal/sys/cma.h | 7 +++++++
3 files changed, 13 insertions(+)
diff --git a/config/opal_config_asm.m4 b/config/opal_config_asm.m4
index 5183c7e..d8640e0 100644
--- a/config/opal_config_asm.m4
+++ b/config/opal_config_asm.m4
@@ -1148,6 +1148,11 @@ AC_DEFUN([OPAL_CONFIG_ASM],[
AC_MSG_WARN([$opal_cv_asm_arch: gcc atomics have been known to perform poorly on powerpc.])
fi
+ ;;
+ riscv64*)
+ opal_cv_asm_arch="RISCV64"
+ OPAL_ASM_SUPPORT_64BIT=1
+ OPAL_GCC_INLINE_ASSIGN='"li %0, 0" : "=&r"(ret)'
;;
# There is no current difference between s390 and s390x
# But use two different defines in case some come later
diff --git a/opal/include/opal/sys/architecture.h b/opal/include/opal/sys/architecture.h
index ee9aa96..8a9fc53 100644
--- a/opal/include/opal/sys/architecture.h
+++ b/opal/include/opal/sys/architecture.h
@@ -44,6 +44,7 @@
#define OPAL_ARM64 0101
#define OPAL_S390 0110
#define OPAL_S390X 0111
+#define OPAL_RISCV64 0120
#define OPAL_BUILTIN_SYNC 0200
#define OPAL_BUILTIN_GCC 0202
#define OPAL_BUILTIN_NO 0203
diff --git a/opal/include/opal/sys/cma.h b/opal/include/opal/sys/cma.h
index 4211013..9e02f99 100644
--- a/opal/include/opal/sys/cma.h
+++ b/opal/include/opal/sys/cma.h
@@ -92,6 +92,13 @@
#define __NR_process_vm_readv 340
#define __NR_process_vm_writev 341
+#elif OPAL_ASSEMBLY_ARCH == OPAL_RISCV64
+
+/* RISCV64 uses the asm-generic syscall numbers */
+
+#define __NR_process_vm_readv 270
+#define __NR_process_vm_writev 271
+
#else
#error "Unsupported architecture for process_vm_readv and process_vm_writev syscalls"
#endif
--
2.35.1

View File

@ -1,17 +1,3 @@
%global _hardened_build 1
# We only compile with gcc, but other people may want other compilers.
# Set the compiler here.
%global opt_cc gcc
# Optional CFLAGS to use with the specific compiler...gcc doesn't need any,
# so uncomment and define to use
#global opt_cflags
%global opt_cxx g++
#global opt_cxxflags
%global opt_f77 gfortran
#global opt_fflags
%global opt_fc gfortran
#global opt_fcflags
# Optional name suffix to use...we leave it off when compiling with gcc, but
# for other compiled versions to install side by side, it will need a
# suffix in order to keep the names from conflicting.
@ -39,70 +25,107 @@
%bcond_without rdma
%endif
Name: openmpi%{?_cc_name_suffix}
Version: 4.0.4
Release: 1%{?dist}
Summary: Open Message Passing Interface
License: BSD and MIT and Romio
URL: http://www.open-mpi.org/
# No more Java on i686
%ifarch %{java_arches}
%bcond_without java
%else
%bcond_with java
%endif
# Run autogen - needed for some patches
%ifnarch riscv64
%bcond_with autogen
%else
%bcond_without autogen
%endif
Name: openmpi%{?_cc_name_suffix}
Version: 4.1.4
Release: 8.2.riscv64%{?dist}
Summary: Open Message Passing Interface
License: BSD and MIT and Romio
URL: http://www.open-mpi.org/
# We can't use %%{name} here because of _cc_name_suffix
Source0: https://www.open-mpi.org/software/ompi/v4.0/downloads/openmpi-%{version}.tar.bz2
Source1: openmpi.module.in
Source2: openmpi.pth.py2
Source3: openmpi.pth.py3
Source4: macros.openmpi
Source0: https://www.open-mpi.org/software/ompi/v4.1/downloads/openmpi-%{version}.tar.bz2
Source1: openmpi.module.in
Source2: openmpi.pth.py2
Source3: openmpi.pth.py3
Source4: macros.openmpi
BuildRequires: gcc-c++
BuildRequires: gcc-gfortran
BuildRequires: valgrind-devel
Patch10: 0001-Add-initial-support-for-riscv64.patch
BuildRequires: gcc-c++
BuildRequires: gcc-gfortran
BuildRequires: make
%if %{with autogen}
BuildRequires: libtool
BuildRequires: perl(Data::Dumper)
BuildRequires: perl(File::Find)
%endif
%ifarch %{valgrind_arches}
BuildRequires: valgrind-devel
%endif
%if %{with rdma}
BuildRequires: opensm-devel > 3.3.0
BuildRequires: rdma-core-devel
BuildRequires: opensm-devel > 3.3.0
BuildRequires: rdma-core-devel
%endif
# Doesn't compile:
# vt_dyn.cc:958:28: error: 'class BPatch_basicBlockLoop' has no member named 'getLoopHead'
# loop->getLoopHead()->getStartAddress(), loop_stmts );
#BuildRequires: dyninst-devel
BuildRequires: hwloc-devel
#BuildRequires: dyninst-devel
BuildRequires: hwloc-devel
# So configure can find lstopo
BuildRequires: hwloc-gui
BuildRequires: java-devel
BuildRequires: hwloc-gui
%if %{with java}
BuildRequires: java-devel
%else
Obsoletes: %{name}-java < %{version}-%{release}
Obsoletes: %{name}-java-devel < %{version}-%{release}
%endif
# Old libevent causes issues
%if !0%{?el7}
BuildRequires: libevent-devel
BuildRequires: libevent-devel
%endif
BuildRequires: libfabric-devel
BuildRequires: libfabric-devel
%ifnarch s390 s390x
BuildRequires: papi-devel
BuildRequires: papi-devel
%endif
BuildRequires: orangefs-devel
BuildRequires: perl-generators
BuildRequires: perl-interpreter
BuildRequires: perl(Getopt::Long)
BuildRequires: pmix-devel
BuildRequires: python%{python3_pkgversion}-devel
BuildRequires: orangefs-devel
BuildRequires: perl-generators
BuildRequires: perl-interpreter
BuildRequires: perl(Getopt::Long)
BuildRequires: pmix-devel
BuildRequires: python%{python3_pkgversion}-devel
%ifarch x86_64
BuildRequires: infinipath-psm-devel
BuildRequires: libpsm2-devel
BuildRequires: infinipath-psm-devel
BuildRequires: libpsm2-devel
%endif
%if %{with ucx}
BuildRequires: ucx-devel
BuildRequires: ucx-devel
%endif
BuildRequires: zlib-devel
BuildRequires: zlib-devel
%if !0%{?el7}
BuildRequires: rpm-mpi-hooks
BuildRequires: rpm-mpi-hooks
%endif
Provides: mpi
%if 0%{?rhel}
# Need this for /etc/profile.d/modules.sh
Requires: environment-modules
%ifarch riscv64
BuildRequires: automake
BuildRequires: autoconf
BuildRequires: libtool
BuildRequires: gettext
BuildRequires: perl-interpreter
%endif
Requires: environment(modules)
Provides: mpi
%if 0%{?rhel} == 7
# Need this for /etc/profile.d/modules.sh
Requires: environment-modules
%endif
Requires: environment(modules)
# openmpi currently requires ssh to run
# https://svn.open-mpi.org/trac/ompi/ticket/4228
Requires: openssh-clients
Requires: openssh-clients
# Private openmpi libraries
%global __provides_exclude_from %{_libdir}/openmpi/lib/(lib(mca|ompi|open-(pal|rte|trace))|openmpi/).*.so
@ -132,21 +155,23 @@ Requires: (python(abi) = %{python3_version} if python3)
%description devel
Contains development headers and libraries for openmpi.
%if %{with java}
%package java
Summary: Java library
Requires: %{name} = %{version}-%{release}
Requires: java-headless
Summary: Java library
Requires: %{name} = %{version}-%{release}
Requires: java-headless
%description java
Java library.
%package java-devel
Summary: Java development files for openmpi
Requires: %{name}-java = %{version}-%{release}
Requires: java-devel
Summary: Java development files for openmpi
Requires: %{name}-java = %{version}-%{release}
Requires: java-devel
%description java-devel
Contains development wrapper for compiling Java with openmpi.
%endif
# We set this to for convenience, since this is the unique dir we use for this
# particular package, version, compiler
@ -154,28 +179,33 @@ Contains development wrapper for compiling Java with openmpi.
%if %{with python2}
%package -n python2-openmpi
Summary: OpenMPI support for Python 2
BuildRequires: python2-devel
Requires: %{name} = %{version}-%{release}
Requires: python(abi) = %{python2_version}
Summary: OpenMPI support for Python 2
BuildRequires: python2-devel
Requires: %{name} = %{version}-%{release}
Requires: python(abi) = %{python2_version}
%description -n python2-openmpi
OpenMPI support for Python 2.
%endif
%package -n python%{python3_pkgversion}-openmpi
Summary: OpenMPI support for Python 3
Requires: %{name} = %{version}-%{release}
Requires: python(abi) = %{python3_version}
Summary: OpenMPI support for Python 3
Requires: %{name} = %{version}-%{release}
Requires: python(abi) = %{python3_version}
%description -n python%{python3_pkgversion}-openmpi
OpenMPI support for Python 3.
%prep
%autosetup -p1
%autosetup -p1 -n %{name}-%{version}
%if %{with autogen}
./autogen.pl --force
%endif
%build
%set_build_flags
./configure --prefix=%{_libdir}/%{name} \
--mandir=%{_mandir}/%{namearch} \
--includedir=%{_includedir}/%{namearch} \
@ -183,22 +213,21 @@ OpenMPI support for Python 3.
--disable-silent-rules \
--enable-builtin-atomics \
--enable-mpi-cxx \
--enable-ipv6 \
%if %{with java}
--enable-mpi-java \
%endif
--enable-mpi1-compatibility \
--with-sge \
%ifarch %{valgrind_arches}
--with-valgrind \
--enable-memchecker \
%endif
--with-hwloc=/usr \
%if !0%{?el7}
--with-libevent=external \
--with-pmix=external \
%endif
CC=%{opt_cc} CXX=%{opt_cxx} \
LDFLAGS='%{__global_ldflags}' \
CFLAGS="%{?opt_cflags} %{!?opt_cflags:$RPM_OPT_FLAGS}" \
CXXFLAGS="%{?opt_cxxflags} %{!?opt_cxxflags:$RPM_OPT_FLAGS}" \
FC=%{opt_fc} FCFLAGS="%{?opt_fcflags} %{!?opt_fcflags:$RPM_OPT_FLAGS}"
# --with-contrib-vt-flags='CXXFLAGS="-I%{_includedir}/dyninst -L%{_libdir}/dyninst"' \
%make_build V=1
@ -247,6 +276,9 @@ cd %{buildroot}%{_libdir}/pkgconfig
ln -s ../%{name}/lib/pkgconfig/*.pc .
cd -
# Create cmake dir
mkdir -p %{buildroot}%{_libdir}/%{name}/lib/cmake/
# Remove extraneous wrapper link libraries (bug 814798)
sed -i -e s/-ldl// -e s/-lhwloc// \
%{buildroot}%{_libdir}/%{name}/share/openmpi/*-wrapper-data.txt
@ -281,6 +313,7 @@ make check
%{_libdir}/%{name}/bin/shmemrun
%endif
%{_libdir}/%{name}/lib/*.so.40*
%{_libdir}/%{name}/lib/libmca_common_ofi.so.10*
%{_libdir}/%{name}/lib/libmca*.so.41*
%{_libdir}/%{name}/lib/libmca*.so.50*
%if 0%{?el7}
@ -327,6 +360,7 @@ make check
%{_fmoddir}/%{name}/
%{_libdir}/%{name}/lib/*.so
%{_libdir}/%{name}/lib/*.mod
%{_libdir}/%{name}/lib/cmake/
%{_libdir}/%{name}/lib/pkgconfig/
%{_libdir}/pkgconfig/*.pc
%{_mandir}/%{namearch}/man1/mpi[cCf]*
@ -340,6 +374,7 @@ make check
%{_libdir}/%{name}/share/openmpi/*-wrapper-data.txt
%{macrosdir}/macros.%{namearch}
%if %{with java}
%files java
%{_libdir}/%{name}/lib/mpi.jar
@ -349,6 +384,7 @@ make check
# Currently this only contaings openmpi/javadoc
%{_libdir}/%{name}/share/doc/
%{_mandir}/%{namearch}/man1/mpijavac.1.gz
%endif
%if %{with python2}
%files -n python2-openmpi
@ -362,6 +398,101 @@ make check
%changelog
* Sat Oct 21 2023 David Abdurachmanov <davidlt@rivosinc.com> - 4.1.4-8.2.riscv64
- Bump release
* Thu Mar 23 2023 David Abdurachmanov <davidlt@rivosinc.com> - 4.1.4-8.1.riscv64
- Enable autogen for riscv64
* Thu Mar 23 2023 David Abdurachmanov <davidlt@rivosinc.com> - 4.1.4-8.0.riscv64
- Add initial support for riscv64
- Properly check valgrind arches
* Thu Jan 19 2023 Fedora Release Engineering <releng@fedoraproject.org> - 4.1.4-8
- Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild
* Fri Nov 11 2022 Orion Poplawski <orion@nwra.com> - 4.1.4-7
- Re-enable IPv6 support - was not the issue
* Fri Nov 11 2022 Orion Poplawski <orion@nwra.com> - 4.1.4-6
- Disable IPv6 support - appears to break MPI_Init() on koji builders (bz#2141137)
* Fri Aug 19 2022 Davide Cavalca <dcavalca@fedoraproject.org> - 4.1.4-5
- Enable IPv6 support (bz#2119845)
* Fri Jul 22 2022 Fedora Release Engineering <releng@fedoraproject.org> - 4.1.4-4
- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild
* Sun Jul 10 2022 Orion Poplawski <orion@nwra.com> - 4.1.4-3
- Drop java for i686 (bz#2104085)
* Mon Jun 13 2022 Python Maint <python-maint@redhat.com> - 4.1.4-2
- Rebuilt for Python 3.11
* Sun May 29 2022 Orion Poplawski <orion@nwra.com> - 4.1.4-1
- Update to 4.1.4
* Sat Apr 16 2022 Orion Poplawski <orion@nwra.com> - 4.1.3-1
- Update to 4.1.3
* Sat Feb 05 2022 Jiri Vanek <jvanek@redhat.com> - 4.1.2-3
- Rebuilt for java-17-openjdk as system jdk
* Thu Jan 20 2022 Fedora Release Engineering <releng@fedoraproject.org> - 4.1.2-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild
* Mon Nov 29 2021 Orion Poplawski <orion@nwra.com> - 4.1.2-1
- Update to 4.1.2
* Sun Oct 10 2021 Orion Poplawski <orion@nwra.com> - 4.1.2-0.1.rc1
- Update to 4.1.2rc1
* Fri Sep 03 2021 Sandro Mani <manisandro@gmail.com> - 4.1.1-4
- Also own %%{_libdir}/%%{name}/lib/cmake/
* Thu Jul 22 2021 Fedora Release Engineering <releng@fedoraproject.org> - 4.1.1-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild
* Fri Jun 04 2021 Python Maint <python-maint@redhat.com> - 4.1.1-2
- Rebuilt for Python 3.10
* Tue Apr 27 2021 Orion Poplawski <orion@nwra.com> - 4.1.1-1
- Update to 4.1.1
* Mon Apr 05 2021 Orion Poplawski <orion@nwra.com> - 4.1.1-0.2.rc2
- Update to 4.1.1rc2
* Thu Feb 11 2021 Orion Poplawski <orion@nwra.com> - 4.1.1-0.1.rc1
- Update to 4.1.1rc1
* Thu Jan 28 2021 Orion Poplawski <orion@nwra.com> - 4.1.0-5
- Add upstream patch for generalized requests
* Thu Jan 28 2021 Orion Poplawski <orion@nwra.com> - 4.1.0-4
- Add upstream patch to fix AVX library linkage
* Tue Jan 26 2021 Fedora Release Engineering <releng@fedoraproject.org> - 4.1.0-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild
* Sun Jan 24 2021 Orion Poplawski <orion@nwra.com> - 4.1.0-2
- Use set_build_flags macro
- Drop old opt_ macros
* Sun Jan 24 2021 Orion Poplawski <orion@nwra.com> - 4.1.0-1
- Update to 4.1.0
* Wed Sep 23 2020 Orion Poplawski <orion@nwra.com> - 4.0.5-2
- Rebuild for libevent 2.1.12
* Wed Sep 02 2020 Orion Poplawski <orion@nwra.com> - 4.0.5-1
- Update to 4.0.5
* Tue Jul 28 2020 Fedora Release Engineering <releng@fedoraproject.org> - 4.0.4-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild
* Sat Jul 11 2020 Jiri Vanek <jvanek@redhat.com> - 4.0.4-2
- Rebuilt for JDK-11, see https://fedoraproject.org/wiki/Changes/Java11
* Wed Jun 17 2020 Orion Poplawski <orion@nwra.com> - 4.0.4-1
- Update to 4.0.4

View File

@ -1 +1 @@
SHA512 (openmpi-4.0.4.tar.bz2) = 6c193b4b5cbfd9d48fa5efcef01372c424b51ae5e9727ccf4235e3b14556dfeb010865e41a9473419ccda16559139aa469086b1fff9abfd337e87387fdec1c64
SHA512 (openmpi-4.1.4.tar.bz2) = c70a92c9b16b8c76a871183f9b180d60861186e64140da897d206d53bc06213f31ea93b31734645f580f4bf28dda5605d85dbce2417e4596955384d961bed653