New release Ignition-0.28.0

This contains mostly test fixes and a bug fix for 4k sector disks. Drop
the patch for relabeling /root since that is now included in Ignition
itself.

Delete the dropped patch from the repo as well.

Sort all %BuildRequires, %Provides etc lists of go packages.

Update the ignition.spec.orig as well.
This commit is contained in:
Andrew Jeddeloh 2018-08-31 15:37:54 -07:00
parent d2ffbc197f
commit c14ed2407e
5 changed files with 63 additions and 95 deletions

1
.gitignore vendored
View File

@ -2,3 +2,4 @@
/ignition-dracut-d664657.tar.gz
/ignition-cc7ebe0.tar.gz
/ignition-dracut-56aa514.tar.gz
/ignition-f707912.tar.gz

View File

@ -1,28 +0,0 @@
From bff783ab7995370b254b9b461060f573ed031a80 Mon Sep 17 00:00:00 2001
From: Jonathan Lebon <jonathan@jlebon.com>
Date: Tue, 14 Aug 2018 15:38:25 -0400
Subject: [PATCH] stages/files: also relabel /root home dir
For the same reasons that `/home` is in that list. The difference is
that the "root" user will always exist, but we might be touching and
creating files there. For example, we might be adding an
`.ssh/authorized_keys`, which will need to be relabeled.
---
internal/exec/stages/files/passwd.go | 1 +
1 file changed, 1 insertion(+)
diff --git a/internal/exec/stages/files/passwd.go b/internal/exec/stages/files/passwd.go
index df16559..2eecd40 100644
--- a/internal/exec/stages/files/passwd.go
+++ b/internal/exec/stages/files/passwd.go
@@ -40,6 +40,7 @@ func (s *stage) createPasswd(config types.Config) error {
"/etc/gshadow*",
"/etc/.pwd.lock",
"/home",
+ "/root",
)
}
--
2.17.1

View File

@ -47,7 +47,7 @@
%define gobuild(o:) go build -ldflags "${LDFLAGS:-} -B 0x$(head -c20 /dev/urandom|od -An -tx1|tr -d ' \\n')" -a -v -x %{?**};
%endif
# macros for ignition
# macros for Ignition
%global provider github
%global provider_tld com
%global project coreos
@ -55,7 +55,7 @@
# https://github.com/coreos/ignition
%global provider_prefix %{provider}.%{provider_tld}/%{project}/%{repo}
%global import_path %{provider_prefix}
%global commit cc7ebe0b92d0fd4b6af2f67873e121894411a80d
%global commit f7079129b8651ac51dba14c3af65692bb413c1dd
%global shortcommit %(c=%{commit}; echo ${c:0:7})
# define ldflags, buildflags, testflags here. The ldflags were
# taken from ./build. We will need to periodically check these
@ -78,15 +78,13 @@
Name: ignition
Version: 0.27.0
Release: 3.git%{shortcommit}%{?dist}
Version: 0.28.0
Release: 1.git%{shortcommit}%{?dist}
Summary: First boot installer and configuration tool
License: ASL 2.0
URL: https://%{provider_prefix}
Source0: https://%{provider_prefix}/archive/%{commit}/%{repo}-%{shortcommit}.tar.gz
Patch0: 0001-stages-files-also-relabel-root-home-dir.patch
# e.g. el6 has ppc64 arch without gcc-go, so EA tag is required
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
# If go_compiler is not set to 1, there is no virtual provide. Use golang instead.
@ -99,55 +97,55 @@ BuildRequires: libblkid-devel
%if ! 0%{?with_bundled}
# validate/main.go
BuildRequires: golang(github.com/spf13/cobra)
# Remaining dependencies not included in main packages
BuildRequires: golang(github.com/coreos/go-systemd/unit)
BuildRequires: golang(github.com/coreos/go-semver/semver)
BuildRequires: golang(github.com/aws/aws-sdk-go/aws/credentials/ec2rolecreds)
BuildRequires: golang(github.com/pin/tftp)
BuildRequires: golang(github.com/sigma/vmw-guestinfo/vmcheck)
BuildRequires: golang(github.com/aws/aws-sdk-go/service/s3/s3manager)
BuildRequires: golang(github.com/sigma/vmw-guestinfo/rpcvmx)
BuildRequires: golang(github.com/coreos/go-systemd/dbus)
# Remaining dependencies not included in main packages (sorted)
BuildRequires: golang(github.com/ajeddeloh/go-json)
BuildRequires: golang(github.com/aws/aws-sdk-go/aws)
BuildRequires: golang(github.com/aws/aws-sdk-go/aws/awserr)
BuildRequires: golang(github.com/aws/aws-sdk-go/aws/credentials)
BuildRequires: golang(github.com/aws/aws-sdk-go/aws/credentials/ec2rolecreds)
BuildRequires: golang(github.com/aws/aws-sdk-go/aws/ec2metadata)
BuildRequires: golang(github.com/aws/aws-sdk-go/aws/session)
BuildRequires: golang(github.com/aws/aws-sdk-go/service/s3)
BuildRequires: golang(github.com/aws/aws-sdk-go/service/s3/s3manager)
BuildRequires: golang(github.com/coreos/go-semver/semver)
BuildRequires: golang(github.com/coreos/go-systemd/dbus)
BuildRequires: golang(github.com/coreos/go-systemd/unit)
BuildRequires: golang(github.com/pborman/uuid)
BuildRequires: golang(github.com/pin/tftp)
BuildRequires: golang(github.com/sigma/vmw-guestinfo/rpcvmx)
BuildRequires: golang(github.com/sigma/vmw-guestinfo/vmcheck)
BuildRequires: golang(github.com/vincent-petithory/dataurl)
BuildRequires: golang(github.com/vmware/vmw-ovflib)
BuildRequires: golang(github.com/ajeddeloh/go-json)
BuildRequires: golang(github.com/aws/aws-sdk-go/aws/credentials)
BuildRequires: golang(github.com/aws/aws-sdk-go/aws)
BuildRequires: golang(github.com/aws/aws-sdk-go/aws/ec2metadata)
BuildRequires: golang(github.com/aws/aws-sdk-go/service/s3)
BuildRequires: golang(github.com/pborman/uuid)
%endif
# Main package Provides (generated with parsedeps.go)
# Main package Provides (generated with parsedeps.go | sort)
%if 0%{?with_bundled}
Provides: bundled(golang(github.com/aws/aws-sdk-go/aws)) = %{version}-c861d27d0304a79f727e9a8a4e2ac1e74602fdc0
Provides: bundled(golang(github.com/aws/aws-sdk-go/aws/awserr)) = %{version}-c861d27d0304a79f727e9a8a4e2ac1e74602fdc0
Provides: bundled(golang(github.com/aws/aws-sdk-go/aws/awsutil)) = %{version}-c861d27d0304a79f727e9a8a4e2ac1e74602fdc0
Provides: bundled(golang(github.com/aws/aws-sdk-go/aws/client)) = %{version}-c861d27d0304a79f727e9a8a4e2ac1e74602fdc0
Provides: bundled(golang(github.com/aws/aws-sdk-go/aws/client/metadata)) = %{version}-c861d27d0304a79f727e9a8a4e2ac1e74602fdc0
Provides: bundled(golang(github.com/aws/aws-sdk-go/aws/client)) = %{version}-c861d27d0304a79f727e9a8a4e2ac1e74602fdc0
Provides: bundled(golang(github.com/aws/aws-sdk-go/aws/corehandlers)) = %{version}-c861d27d0304a79f727e9a8a4e2ac1e74602fdc0
Provides: bundled(golang(github.com/aws/aws-sdk-go/aws/credentials)) = %{version}-c861d27d0304a79f727e9a8a4e2ac1e74602fdc0
Provides: bundled(golang(github.com/aws/aws-sdk-go/aws/credentials/ec2rolecreds)) = %{version}-c861d27d0304a79f727e9a8a4e2ac1e74602fdc0
Provides: bundled(golang(github.com/aws/aws-sdk-go/aws/credentials/endpointcreds)) = %{version}-c861d27d0304a79f727e9a8a4e2ac1e74602fdc0
Provides: bundled(golang(github.com/aws/aws-sdk-go/aws/credentials/stscreds)) = %{version}-c861d27d0304a79f727e9a8a4e2ac1e74602fdc0
Provides: bundled(golang(github.com/aws/aws-sdk-go/aws/credentials)) = %{version}-c861d27d0304a79f727e9a8a4e2ac1e74602fdc0
Provides: bundled(golang(github.com/aws/aws-sdk-go/aws/defaults)) = %{version}-c861d27d0304a79f727e9a8a4e2ac1e74602fdc0
Provides: bundled(golang(github.com/aws/aws-sdk-go/aws/ec2metadata)) = %{version}-c861d27d0304a79f727e9a8a4e2ac1e74602fdc0
Provides: bundled(golang(github.com/aws/aws-sdk-go/aws/endpoints)) = %{version}-c861d27d0304a79f727e9a8a4e2ac1e74602fdc0
Provides: bundled(golang(github.com/aws/aws-sdk-go/aws/request)) = %{version}-c861d27d0304a79f727e9a8a4e2ac1e74602fdc0
Provides: bundled(golang(github.com/aws/aws-sdk-go/aws/session)) = %{version}-c861d27d0304a79f727e9a8a4e2ac1e74602fdc0
Provides: bundled(golang(github.com/aws/aws-sdk-go/aws/signer/v4)) = %{version}-c861d27d0304a79f727e9a8a4e2ac1e74602fdc0
Provides: bundled(golang(github.com/aws/aws-sdk-go/aws)) = %{version}-c861d27d0304a79f727e9a8a4e2ac1e74602fdc0
Provides: bundled(golang(github.com/aws/aws-sdk-go/internal/shareddefaults)) = %{version}-c861d27d0304a79f727e9a8a4e2ac1e74602fdc0
Provides: bundled(golang(github.com/aws/aws-sdk-go/private/protocol)) = %{version}-c861d27d0304a79f727e9a8a4e2ac1e74602fdc0
Provides: bundled(golang(github.com/aws/aws-sdk-go/private/protocol/query)) = %{version}-c861d27d0304a79f727e9a8a4e2ac1e74602fdc0
Provides: bundled(golang(github.com/aws/aws-sdk-go/private/protocol/query/queryutil)) = %{version}-c861d27d0304a79f727e9a8a4e2ac1e74602fdc0
Provides: bundled(golang(github.com/aws/aws-sdk-go/private/protocol/query)) = %{version}-c861d27d0304a79f727e9a8a4e2ac1e74602fdc0
Provides: bundled(golang(github.com/aws/aws-sdk-go/private/protocol/rest)) = %{version}-c861d27d0304a79f727e9a8a4e2ac1e74602fdc0
Provides: bundled(golang(github.com/aws/aws-sdk-go/private/protocol/restxml)) = %{version}-c861d27d0304a79f727e9a8a4e2ac1e74602fdc0
Provides: bundled(golang(github.com/aws/aws-sdk-go/private/protocol)) = %{version}-c861d27d0304a79f727e9a8a4e2ac1e74602fdc0
Provides: bundled(golang(github.com/aws/aws-sdk-go/private/protocol/xml/xmlutil)) = %{version}-c861d27d0304a79f727e9a8a4e2ac1e74602fdc0
Provides: bundled(golang(github.com/aws/aws-sdk-go/service/s3)) = %{version}-c861d27d0304a79f727e9a8a4e2ac1e74602fdc0
Provides: bundled(golang(github.com/aws/aws-sdk-go/service/s3/s3iface)) = %{version}-c861d27d0304a79f727e9a8a4e2ac1e74602fdc0
Provides: bundled(golang(github.com/aws/aws-sdk-go/service/s3/s3manager)) = %{version}-c861d27d0304a79f727e9a8a4e2ac1e74602fdc0
Provides: bundled(golang(github.com/aws/aws-sdk-go/service/s3)) = %{version}-c861d27d0304a79f727e9a8a4e2ac1e74602fdc0
Provides: bundled(golang(github.com/aws/aws-sdk-go/service/sts)) = %{version}-c861d27d0304a79f727e9a8a4e2ac1e74602fdc0
Provides: bundled(golang(github.com/coreos/go-semver/semver)) = %{version}-294930c1e79c64e7dbe360054274fdad492c8cf5
Provides: bundled(golang(github.com/coreos/go-systemd/dbus)) = %{version}-39ca1b05acc7ad1220e09f133283b8859a8b71ab
@ -181,7 +179,7 @@ BuildArch: noarch
# devel subpackage BuildRequires
%if 0%{?with_check} && ! 0%{?with_bundled}
# These buildrequires are only for our tests (check)
# These buildrequires are only for our tests (check) (sorted)
BuildRequires: golang(github.com/ajeddeloh/go-json)
BuildRequires: golang(github.com/aws/aws-sdk-go/aws)
BuildRequires: golang(github.com/aws/aws-sdk-go/aws/awserr)
@ -203,7 +201,7 @@ BuildRequires: golang(github.com/vmware/vmw-ovflib)
%endif
# devel subpackage Requires. This is basically the source code from
# all of the libraries that ignition imports during build.
# all of the libraries that ignition imports during build. (sorted)
Requires: golang(github.com/ajeddeloh/go-json)
Requires: golang(github.com/aws/aws-sdk-go/aws)
Requires: golang(github.com/aws/aws-sdk-go/aws/awserr)
@ -223,26 +221,25 @@ Requires: golang(github.com/sigma/vmw-guestinfo/vmcheck)
Requires: golang(github.com/vincent-petithory/dataurl)
Requires: golang(github.com/vmware/vmw-ovflib)
# devel subpackage Provides
Provides: golang(%{import_path}/config/shared) = %{version}-%{release}
# devel subpackage Provides (sorted)
Provides: golang(%{import_path}/config/shared/errors) = %{version}-%{release}
Provides: golang(%{import_path}/config/shared/validations) = %{version}-%{release}
Provides: golang(%{import_path}/config/shared) = %{version}-%{release}
Provides: golang(%{import_path}/config/util) = %{version}-%{release}
Provides: golang(%{import_path}/config/v1) = %{version}-%{release}
Provides: golang(%{import_path}/config/v1/types) = %{version}-%{release}
Provides: golang(%{import_path}/config/v2_0) = %{version}-%{release}
Provides: golang(%{import_path}/config/v1) = %{version}-%{release}
Provides: golang(%{import_path}/config/v2_0/types) = %{version}-%{release}
Provides: golang(%{import_path}/config/v2_1) = %{version}-%{release}
Provides: golang(%{import_path}/config/v2_0) = %{version}-%{release}
Provides: golang(%{import_path}/config/v2_1/types) = %{version}-%{release}
Provides: golang(%{import_path}/config/v2_2) = %{version}-%{release}
Provides: golang(%{import_path}/config/v2_1) = %{version}-%{release}
Provides: golang(%{import_path}/config/v2_2/types) = %{version}-%{release}
Provides: golang(%{import_path}/config/v2_3_experimental) = %{version}-%{release}
Provides: golang(%{import_path}/config/v2_2) = %{version}-%{release}
Provides: golang(%{import_path}/config/v2_3_experimental/types) = %{version}-%{release}
Provides: golang(%{import_path}/config/validate) = %{version}-%{release}
Provides: golang(%{import_path}/config/v2_3_experimental) = %{version}-%{release}
Provides: golang(%{import_path}/config/validate/astjson) = %{version}-%{release}
Provides: golang(%{import_path}/config/validate/astnode) = %{version}-%{release}
Provides: golang(%{import_path}/config/validate/report) = %{version}-%{release}
Provides: golang(%{import_path}/tests) = %{version}-%{release}
Provides: golang(%{import_path}/config/validate) = %{version}-%{release}
Provides: golang(%{import_path}/tests/negative/files) = %{version}-%{release}
Provides: golang(%{import_path}/tests/negative/filesystems) = %{version}-%{release}
Provides: golang(%{import_path}/tests/negative/general) = %{version}-%{release}
@ -265,6 +262,7 @@ Provides: golang(%{import_path}/tests/positive/timeouts) = %{version}-%{rel
Provides: golang(%{import_path}/tests/register) = %{version}-%{release}
Provides: golang(%{import_path}/tests/registry) = %{version}-%{release}
Provides: golang(%{import_path}/tests/types) = %{version}-%{release}
Provides: golang(%{import_path}/tests) = %{version}-%{release}
%description devel
%{summary}
@ -329,7 +327,6 @@ initramfs on boot.
# setup command reference: http://ftp.rpm.org/max-rpm/s1-rpm-inside-macros.html
# unpack source0 and apply patches
%setup -T -b 0 -q -n %{repo}-%{commit}
%patch0 -p1
# unpack source1 (dracut modules)
%setup -T -D -a 1 -q -n %{repo}-%{commit}
@ -455,25 +452,27 @@ export GOPATH=%{buildroot}/%{gopath}:$(pwd)/vendor:%{gopath}
%files
%license LICENSE
%doc CONTRIBUTING.md code-of-conduct.md README.md doc/
%doc README.md code-of-conduct.md CONTRIBUTING.md doc/
%{_bindir}/%{name}
%{_bindir}/%{name}-validate
%if 0%{?with_devel}
%files devel -f devel.file-list
%license LICENSE
%doc CONTRIBUTING.md code-of-conduct.md README.md
%doc README.md code-of-conduct.md CONTRIBUTING.md
%dir %{gopath}/src/%{provider}.%{provider_tld}/%{project}
%endif
%if 0%{?with_unit_test} && 0%{?with_devel}
%files unit-test-devel -f unit-test-devel.file-list
%license LICENSE
%doc CONTRIBUTING.md code-of-conduct.md README.md
%doc README.md code-of-conduct.md CONTRIBUTING.md
%endif
%changelog
* Thu Aug 30 2018 Andrew Jeddeloh <andrewjeddeloh@redhat.com> - 0.28.0-3.gitf707912
- New release 0.28.0
* Fri Aug 17 2018 Dusty Mabe <dusty@dustymabe.com> - 0.27.0-3.gitcc7ebe0
- Bump to ignition-dracut 56aa514

View File

@ -1,13 +1,7 @@
# Original spec file as generated by:
# gofed repo2spec --detect github.com/coreos/ignition --commit 76107251acd117c6d3e5b4dae2b47f82f944984b --with-extra --with-build -f
# With:
# gofed@8f62d8d2dea0a87ef60cad72f72e2d7558c0cb75
# And:
# $ git submodule status
# 33207573a1875bc828da3f863e1de439d7af8166 third_party/cmdsignature (heads/master)
# 6bff7ae54535689e2ade3d0bd3d33d903a2190b9 third_party/gofed_infra (remotes/origin/WIP-37-g6bff7ae)
# 7e414c78930a81167dc2cd4d3e9adb79eeed38a6 third_party/gofed_resources (heads/master)
# ef6ec0e387f3b125308243898435774da6128a4c third_party/gofedlib (0.1.0a1-20-gef6ec0e)
# Original spec file as generated by:
# gofed repo2spec --detect github.com/coreos/ignition --commit f7079129b8651ac51dba14c3af65692bb413c1dd --with-extra --with-build -f
# With:
# gofed/gofed:v1.0.1 docker image
# If any of the following macros should be set otherwise,
@ -52,7 +46,7 @@
# https://github.com/coreos/ignition
%global provider_prefix %{provider}.%{provider_tld}/%{project}/%{repo}
%global import_path %{provider_prefix}
%global commit 76107251acd117c6d3e5b4dae2b47f82f944984b
%global commit f7079129b8651ac51dba14c3af65692bb413c1dd
%global shortcommit %(c=%{commit}; echo ${c:0:7})
Name: golang-%{provider}-%{project}-%{repo}
@ -75,23 +69,24 @@ BuildRequires: %{?go_compiler:compiler(go-compiler)}%{!?go_compiler:golang}
BuildRequires: golang(github.com/spf13/cobra)
# Remaining dependencies not included in main packages
BuildRequires: golang(github.com/vmware/vmw-ovflib)
BuildRequires: golang(github.com/coreos/go-systemd/unit)
BuildRequires: golang(github.com/coreos/go-semver/semver)
BuildRequires: golang(github.com/aws/aws-sdk-go/aws/credentials/ec2rolecreds)
BuildRequires: golang(github.com/pin/tftp)
BuildRequires: golang(github.com/sigma/vmw-guestinfo/vmcheck)
BuildRequires: golang(github.com/pin/tftp)
BuildRequires: golang(github.com/aws/aws-sdk-go/service/s3/s3manager)
BuildRequires: golang(github.com/sigma/vmw-guestinfo/rpcvmx)
BuildRequires: golang(github.com/coreos/go-systemd/dbus)
BuildRequires: golang(github.com/aws/aws-sdk-go/aws/awserr)
BuildRequires: golang(github.com/aws/aws-sdk-go/service/s3)
BuildRequires: golang(github.com/aws/aws-sdk-go/aws/session)
BuildRequires: golang(github.com/vincent-petithory/dataurl)
BuildRequires: golang(github.com/vmware/vmw-ovflib)
BuildRequires: golang(github.com/aws/aws-sdk-go/aws/awserr)
BuildRequires: golang(github.com/aws/aws-sdk-go/aws/credentials/ec2rolecreds)
BuildRequires: golang(github.com/ajeddeloh/go-json)
BuildRequires: golang(github.com/aws/aws-sdk-go/aws/credentials)
BuildRequires: golang(github.com/aws/aws-sdk-go/aws)
BuildRequires: golang(github.com/aws/aws-sdk-go/aws/ec2metadata)
BuildRequires: golang(github.com/aws/aws-sdk-go/service/s3)
BuildRequires: golang(github.com/pborman/uuid)
BuildRequires: golang(github.com/aws/aws-sdk-go/aws)
%endif
%description
@ -115,6 +110,7 @@ BuildRequires: golang(github.com/aws/aws-sdk-go/service/s3/s3manager)
BuildRequires: golang(github.com/coreos/go-semver/semver)
BuildRequires: golang(github.com/coreos/go-systemd/dbus)
BuildRequires: golang(github.com/coreos/go-systemd/unit)
BuildRequires: golang(github.com/pborman/uuid)
BuildRequires: golang(github.com/pin/tftp)
BuildRequires: golang(github.com/sigma/vmw-guestinfo/rpcvmx)
BuildRequires: golang(github.com/sigma/vmw-guestinfo/vmcheck)
@ -134,6 +130,7 @@ Requires: golang(github.com/aws/aws-sdk-go/service/s3/s3manager)
Requires: golang(github.com/coreos/go-semver/semver)
Requires: golang(github.com/coreos/go-systemd/dbus)
Requires: golang(github.com/coreos/go-systemd/unit)
Requires: golang(github.com/pborman/uuid)
Requires: golang(github.com/pin/tftp)
Requires: golang(github.com/sigma/vmw-guestinfo/rpcvmx)
Requires: golang(github.com/sigma/vmw-guestinfo/vmcheck)
@ -325,7 +322,7 @@ export GOPATH=%{buildroot}/%{gopath}:$(pwd)/vendor:%{gopath}
%files
%license LICENSE
%doc CONTRIBUTING.md code-of-conduct.md README.md
%doc README.md code-of-conduct.md CONTRIBUTING.md
#%{_bindir}/internal
#%{_bindir}/internal/util/tools/docs
#%{_bindir}/tests/stubs/id-stub
@ -336,17 +333,16 @@ export GOPATH=%{buildroot}/%{gopath}:$(pwd)/vendor:%{gopath}
%if 0%{?with_devel}
%files devel -f devel.file-list
%license LICENSE
%doc CONTRIBUTING.md code-of-conduct.md README.md
%doc README.md code-of-conduct.md CONTRIBUTING.md
%dir %{gopath}/src/%{provider}.%{provider_tld}/%{project}
%endif
%if 0%{?with_unit_test} && 0%{?with_devel}
%files unit-test-devel -f unit-test-devel.file-list
%license LICENSE
%doc CONTRIBUTING.md code-of-conduct.md README.md
%doc README.md code-of-conduct.md CONTRIBUTING.md
%endif
%changelog
* Thu Jun 21 2018 vagrant - 0-0.1.git7610725
%changelog* Thu Aug 30 2018 root - 0-0.1.gitf707912
- First package for Fedora

View File

@ -1,2 +1,2 @@
SHA512 (ignition-cc7ebe0.tar.gz) = 2dce1cdf24af9d26753adf80b014be82fd2cf94efe5321482cf3608d7c4fdd10c36d08b2ce8b82f3ad37528372fdef7c938c9ac1d5c173bc6b7430c5268f6c26
SHA512 (ignition-f707912.tar.gz) = a01d61415ae2e1f053ab7b17642a9377d77b51d34b9ca3e44a9e4c598c705b575b53620558eda69fcfa35131d9fe3ec3df3b9d4675c5b3aa5da3e205343d006b
SHA512 (ignition-dracut-56aa514.tar.gz) = 99d0ebd3f9ab515bb16b6e1eeec4b5b6a33ec4a48c116fa26eb5b7a6538e2b729b8e983df08b7068cb6b9c329da7a55b4ebd82142d4d12478e066ef4b7e9cebb