summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDamien Miller <djm@mindrot.org>2000-11-11 08:36:38 +1100
committerDamien Miller <djm@mindrot.org>2000-11-11 08:36:38 +1100
commit0986b55a601066b1dc896c4508a55e905ea8d0ea (patch)
treed26d7627bdf3d667bbe92772be8d70925770c763
parentdcca981e88978f84e404ef718e0e997b518403f0 (diff)
- (djm) Added /etc/primes for kex DH group neg, fixup Makefile.in and
packaging files
-rw-r--r--ChangeLog4
-rw-r--r--Makefile.in21
-rw-r--r--contrib/redhat/openssh.spec3
-rwxr-xr-xcontrib/solaris/build-pkg1
-rw-r--r--contrib/solaris/postinstall.in5
-rw-r--r--contrib/solaris/prototype1
-rw-r--r--contrib/suse/openssh.spec1
-rw-r--r--primes69
8 files changed, 101 insertions, 4 deletions
diff --git a/ChangeLog b/ChangeLog
index a3a54c3a..dcfa364b 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,7 @@
+20001111
+ - (djm) Added /etc/primes for kex DH group neg, fixup Makefile.in and
+ packaging files
+
20001110
- (bal) Fixed dropped answer from skey_keyinfo() in auth1.c
- (bal) Changed from --with-skey to --with-skey=PATH in configure.in
diff --git a/Makefile.in b/Makefile.in
index d0d8ba93..362fd708 100644
--- a/Makefile.in
+++ b/Makefile.in
@@ -47,9 +47,9 @@ TROFFMAN = scp.1 ssh-add.1 ssh-agent.1 ssh-keygen.1 ssh.1 sshd.8 sftp-server.8
CATMAN = scp.0 ssh-add.0 ssh-agent.0 ssh-keygen.0 ssh.0 sshd.0 sftp-server.0
MANPAGES = @MANTYPE@
-CONFIGFILES=sshd_config ssh_config
+CONFIGFILES=sshd_config ssh_config primes
-PATHSUBS = -D/etc/ssh_config=$(sysconfdir)/ssh_config -D/etc/ssh_known_hosts=$(sysconfdir)/ssh_known_hosts -D/etc/sshd_config=$(sysconfdir)/sshd_config -D/usr/libexec=$(libexecdir) -D/etc/shosts.equiv=$(sysconfdir)/shosts.equiv -D/etc/ssh_host_key=$(sysconfdir)/ssh_host_key -D/var/run/sshd.pid=$(piddir)/sshd.pid
+PATHSUBS = -D/etc/ssh_config=$(sysconfdir)/ssh_config -D/etc/ssh_known_hosts=$(sysconfdir)/ssh_known_hosts -D/etc/sshd_config=$(sysconfdir)/sshd_config -D/usr/libexec=$(libexecdir) -D/etc/shosts.equiv=$(sysconfdir)/shosts.equiv -D/etc/ssh_host_key=$(sysconfdir)/ssh_host_key -D/var/run/sshd.pid=$(piddir)/sshd.pid -D/etc/primes=$(sysconfdir)/primes
FIXPATHSCMD = $(PERL) $(srcdir)/fixpaths $(PATHSUBS)
@@ -147,17 +147,32 @@ install-files:
-rm -f $(DESTDIR)$(mandir)/$(mansubdir)1/slogin.1
ln -s ssh.1 $(DESTDIR)$(mandir)/$(mansubdir)1/slogin.1
@FILEPRIV@ -f dev,filesys,driver $(DESTDIR)$(bindir)/ssh $(DESTDIR)$(bindir)/slogin
- if [ ! -f $(DESTDIR)$(sysconfdir)/ssh_config -a ! -f $(DESTDIR)$(sysconfdir)/sshd_config ]; then \
+ if [ ! -d $(DESTDIR)$(sysconfdir) ]; then \
$(srcdir)/mkinstalldirs $(DESTDIR)$(sysconfdir); \
+ fi
+ if [ ! -f $(DESTDIR)$(sysconfdir)/ssh_config ]; then \
$(INSTALL) -m 644 ssh_config.out $(DESTDIR)$(sysconfdir)/ssh_config; \
+ else \
+ echo "$(DESTDIR)$(sysconfdir)/ssh_config already exists, install will not overwrite" \
+ fi
+ if [ ! -f $(DESTDIR)$(sysconfdir)/sshd_config ]; then \
$(INSTALL) -m 644 sshd_config.out $(DESTDIR)$(sysconfdir)/sshd_config; \
+ else \
+ echo "$(DESTDIR)$(sysconfdir)/sshd_config already exists, install will not overwrite" \
fi
if [ -f ssh_prng_cmds -a ! -z "$(INSTALL_SSH_PRNG_CMDS)" ]; then \
$(PERL) $(srcdir)/fixprogs ssh_prng_cmds $(ENT); \
if [ ! -f $(DESTDIR)$(sysconfdir)/ssh_prng_cmds ] ; then \
$(INSTALL) -m 644 ssh_prng_cmds.out $(DESTDIR)$(sysconfdir)/ssh_prng_cmds; \
+ else \
+ echo "$(DESTDIR)$(sysconfdir)/ssh_prng_cmds already exists, install will not overwrite" \
fi ; \
fi
+ if [ ! -f $(DESTDIR)$(sysconfdir)/primes ]; then \
+ $(INSTALL) -m 644 primes $(DESTDIR)$(sysconfdir)/primes; \
+ else \
+ echo "$(DESTDIR)$(sysconfdir)/primes already exists, install will not overwrite" \
+ fi
host-key: ssh-keygen$(EXEEXT)
if [ -z "$(DESTDIR)" ] ; then \
diff --git a/contrib/redhat/openssh.spec b/contrib/redhat/openssh.spec
index 9590e2a5..dcc8834c 100644
--- a/contrib/redhat/openssh.spec
+++ b/contrib/redhat/openssh.spec
@@ -1,5 +1,5 @@
# Version of OpenSSH
-%define oversion 2.3.0p1
+%define oversion 2.3.0p2
# Version of ssh-askpass
%define aversion 1.0.3
@@ -212,6 +212,7 @@ fi
%attr(0644,root,root) %{_mandir}/man1/ssh-keygen.1*
%attr(0644,root,root) %{_mandir}/man1/scp.1*
%attr(0755,root,root) %dir %{_sysconfdir}/ssh
+%attr(0600,root,root) %config(noreplace) %{_sysconfdir}/ssh/primes
%attr(0755,root,root) %dir %{_libexecdir}/openssh
%files clients
diff --git a/contrib/solaris/build-pkg b/contrib/solaris/build-pkg
index 5f2e3add..76529ed4 100755
--- a/contrib/solaris/build-pkg
+++ b/contrib/solaris/build-pkg
@@ -163,6 +163,7 @@ cp -p ../../../sshd.8 man/man8/sshd.8
cp -p ../../../sshd_config.out etc/sshd_config.default
cp -p ../../../ssh_config.out etc/ssh_config.default
cp -p ../../../ssh_prng_cmds etc/ssh_prng_cmds.default
+cp -p ../../../primes etc/primes.default
# One of the annoying things about the Solaris packaging process is that
# there's no simple way to prototype on the fly--so make sure you edit
diff --git a/contrib/solaris/postinstall.in b/contrib/solaris/postinstall.in
index 58d773f8..834b5b20 100644
--- a/contrib/solaris/postinstall.in
+++ b/contrib/solaris/postinstall.in
@@ -46,6 +46,7 @@ if [ ! "${UPDATE}" = "1" ]; then
instbackup ${CONFDIR} ssh_prng_cmds
instbackup ${CONFDIR} ssh_config
instbackup ${CONFDIR} sshd_config
+ instbackup ${CONFDIR} primes
### If no existing sshd_config and host key, then create
if [ ! -f "${CONFDIR}/ssh_host_key" ]; then
@@ -126,6 +127,10 @@ else
instbackup ${CONFDIR} sshd_config
NEWCONF=1
fi
+ if [ ! -r "${CONFDIR}/primes" ]; then
+ instbackup ${CONFDIR} primes
+ NEWCONF=1
+ fi
if [ $NEWCONF -eq 0 ]; then
echo "Your existing SSH configuration files have not been altered."
else
diff --git a/contrib/solaris/prototype b/contrib/solaris/prototype
index 02c4823d..422b4aa7 100644
--- a/contrib/solaris/prototype
+++ b/contrib/solaris/prototype
@@ -15,6 +15,7 @@ d none etc 0755 root sys
f none etc/sshd_config.default 0644 root sys
f none etc/ssh_config.default 0644 root sys
f none etc/ssh_prng_cmds.default 0644 root sys
+f none etc/primes.default 0644 root sys
f none etc/sshd-initscript 0755 root sys
d none bin 0755 root sys
f none bin/ssh-keygen 0755 root sys
diff --git a/contrib/suse/openssh.spec b/contrib/suse/openssh.spec
index 04420706..826b8734 100644
--- a/contrib/suse/openssh.spec
+++ b/contrib/suse/openssh.spec
@@ -166,6 +166,7 @@ fi
%attr(0755,root,root) %dir /etc/ssh
%attr(0644,root,root) %config /etc/ssh/ssh_config
%attr(0600,root,root) %config /etc/ssh/sshd_config
+%attr(0600,root,root) %config /etc/ssh/primes
%attr(0644,root,root) %config /etc/pam.d/sshd
%attr(0755,root,root) %config /sbin/init.d/sshd
%attr(0755,root,root) /usr/bin/ssh-keygen
diff --git a/primes b/primes
new file mode 100644
index 00000000..5a3daba1
--- /dev/null
+++ b/primes
@@ -0,0 +1,69 @@
+# Time Type Tests Tries Size Generator Modulus
+20000522203501 2 6 100 1025 2 2abb47271a1809f247f4433065ee7087815d189e8e2bec67827d173b078cd78bf4adc5bd775679384d763216edc12157afec6eb4d2435a2fc793183fafadc9ff35b5c87471da1e56600203f11ae654a377c80101957a0c0044ee9ae96e8a7cc785a629c17ca5d5ef2a981b83417db75f9616e0ffcbc92d440eb73a2cc589ab15b
+20000522203627 2 6 100 1025 2 2abb47271a1809f247f4433065ee7087815d189e8e2bec67827d173b078cd78bf4adc5bd775679384d763216edc12157afec6eb4d2435a2fc793183fafadc9ff35b5c87471da1e56600203f11ae654a377c80101957a0c0044ee9ae96e8a7cc785a629c17ca5d5ef2a981b83417db75f9616e0ffcbc92d440eb73a2cc58c16733
+20000522203759 2 6 100 1025 2 2abb47271a1809f247f4433065ee7087815d189e8e2bec67827d173b078cd78bf4adc5bd775679384d763216edc12157afec6eb4d2435a2fc793183fafadc9ff35b5c87471da1e56600203f11ae654a377c80101957a0c0044ee9ae96e8a7cc785a629c17ca5d5ef2a981b83417db75f9616e0ffcbc92d440eb73a2cc58ee9dc3
+20000522204003 2 6 100 1025 2 2abb47271a1809f247f4433065ee7087815d189e8e2bec67827d173b078cd78bf4adc5bd775679384d763216edc12157afec6eb4d2435a2fc793183fafadc9ff35b5c87471da1e56600203f11ae654a377c80101957a0c0044ee9ae96e8a7cc785a629c17ca5d5ef2a981b83417db75f9616e0ffcbc92d440eb73a2cc592e0f7b
+20000522204023 2 6 100 1025 2 2abb47271a1809f247f4433065ee7087815d189e8e2bec67827d173b078cd78bf4adc5bd775679384d763216edc12157afec6eb4d2435a2fc793183fafadc9ff35b5c87471da1e56600203f11ae654a377c80101957a0c0044ee9ae96e8a7cc785a629c17ca5d5ef2a981b83417db75f9616e0ffcbc92d440eb73a2cc592fbea3
+20000522204041 2 6 100 1025 2 2abb47271a1809f247f4433065ee7087815d189e8e2bec67827d173b078cd78bf4adc5bd775679384d763216edc12157afec6eb4d2435a2fc793183fafadc9ff35b5c87471da1e56600203f11ae654a377c80101957a0c0044ee9ae96e8a7cc785a629c17ca5d5ef2a981b83417db75f9616e0ffcbc92d440eb73a2cc5931088b
+20000522204128 2 6 100 1025 2 2abb47271a1809f247f4433065ee7087815d189e8e2bec67827d173b078cd78bf4adc5bd775679384d763216edc12157afec6eb4d2435a2fc793183fafadc9ff35b5c87471da1e56600203f11ae654a377c80101957a0c0044ee9ae96e8a7cc785a629c17ca5d5ef2a981b83417db75f9616e0ffcbc92d440eb73a2cc59434203
+20000522204251 2 6 100 1025 2 2abb47271a1809f247f4433065ee7087815d189e8e2bec67827d173b078cd78bf4adc5bd775679384d763216edc12157afec6eb4d2435a2fc793183fafadc9ff35b5c87471da1e56600203f11ae654a377c80101957a0c0044ee9ae96e8a7cc785a629c17ca5d5ef2a981b83417db75f9616e0ffcbc92d440eb73a2cc5969401b
+20000522204314 2 6 100 1025 2 2abb47271a1809f247f4433065ee7087815d189e8e2bec67827d173b078cd78bf4adc5bd775679384d763216edc12157afec6eb4d2435a2fc793183fafadc9ff35b5c87471da1e56600203f11ae654a377c80101957a0c0044ee9ae96e8a7cc785a629c17ca5d5ef2a981b83417db75f9616e0ffcbc92d440eb73a2cc596b4efb
+20000522204337 2 6 100 1025 2 2abb47271a1809f247f4433065ee7087815d189e8e2bec67827d173b078cd78bf4adc5bd775679384d763216edc12157afec6eb4d2435a2fc793183fafadc9ff35b5c87471da1e56600203f11ae654a377c80101957a0c0044ee9ae96e8a7cc785a629c17ca5d5ef2a981b83417db75f9616e0ffcbc92d440eb73a2cc596dd953
+20000522204423 2 6 100 1025 2 2abb47271a1809f247f4433065ee7087815d189e8e2bec67827d173b078cd78bf4adc5bd775679384d763216edc12157afec6eb4d2435a2fc793183fafadc9ff35b5c87471da1e56600203f11ae654a377c80101957a0c0044ee9ae96e8a7cc785a629c17ca5d5ef2a981b83417db75f9616e0ffcbc92d440eb73a2cc597da68b
+20000522204458 2 6 100 1025 2 2abb47271a1809f247f4433065ee7087815d189e8e2bec67827d173b078cd78bf4adc5bd775679384d763216edc12157afec6eb4d2435a2fc793183fafadc9ff35b5c87471da1e56600203f11ae654a377c80101957a0c0044ee9ae96e8a7cc785a629c17ca5d5ef2a981b83417db75f9616e0ffcbc92d440eb73a2cc5984e833
+20000522204530 2 6 100 1025 2 2abb47271a1809f247f4433065ee7087815d189e8e2bec67827d173b078cd78bf4adc5bd775679384d763216edc12157afec6eb4d2435a2fc793183fafadc9ff35b5c87471da1e56600203f11ae654a377c80101957a0c0044ee9ae96e8a7cc785a629c17ca5d5ef2a981b83417db75f9616e0ffcbc92d440eb73a2cc598bb68b
+20000522204551 2 6 100 1025 2 2abb47271a1809f247f4433065ee7087815d189e8e2bec67827d173b078cd78bf4adc5bd775679384d763216edc12157afec6eb4d2435a2fc793183fafadc9ff35b5c87471da1e56600203f11ae654a377c80101957a0c0044ee9ae96e8a7cc785a629c17ca5d5ef2a981b83417db75f9616e0ffcbc92d440eb73a2cc598def3b
+20000522204727 2 6 100 1025 2 2abb47271a1809f247f4433065ee7087815d189e8e2bec67827d173b078cd78bf4adc5bd775679384d763216edc12157afec6eb4d2435a2fc793183fafadc9ff35b5c87471da1e56600203f11ae654a377c80101957a0c0044ee9ae96e8a7cc785a629c17ca5d5ef2a981b83417db75f9616e0ffcbc92d440eb73a2cc59b8d5f3
+20000522204750 2 6 100 1025 2 2abb47271a1809f247f4433065ee7087815d189e8e2bec67827d173b078cd78bf4adc5bd775679384d763216edc12157afec6eb4d2435a2fc793183fafadc9ff35b5c87471da1e56600203f11ae654a377c80101957a0c0044ee9ae96e8a7cc785a629c17ca5d5ef2a981b83417db75f9616e0ffcbc92d440eb73a2cc59bbc4fb
+20000522204841 2 6 100 1025 2 2abb47271a1809f247f4433065ee7087815d189e8e2bec67827d173b078cd78bf4adc5bd775679384d763216edc12157afec6eb4d2435a2fc793183fafadc9ff35b5c87471da1e56600203f11ae654a377c80101957a0c0044ee9ae96e8a7cc785a629c17ca5d5ef2a981b83417db75f9616e0ffcbc92d440eb73a2cc59cfa1fb
+20000522205105 2 6 100 1025 2 2abb47271a1809f247f4433065ee7087815d189e8e2bec67827d173b078cd78bf4adc5bd775679384d763216edc12157afec6eb4d2435a2fc793183fafadc9ff35b5c87471da1e56600203f11ae654a377c80101957a0c0044ee9ae96e8a7cc785a629c17ca5d5ef2a981b83417db75f9616e0ffcbc92d440eb73a2cc5a20812b
+20000522205142 2 6 100 1025 2 2abb47271a1809f247f4433065ee7087815d189e8e2bec67827d173b078cd78bf4adc5bd775679384d763216edc12157afec6eb4d2435a2fc793183fafadc9ff35b5c87471da1e56600203f11ae654a377c80101957a0c0044ee9ae96e8a7cc785a629c17ca5d5ef2a981b83417db75f9616e0ffcbc92d440eb73a2cc5a2c65b3
+20000522205216 2 6 100 1025 2 2abb47271a1809f247f4433065ee7087815d189e8e2bec67827d173b078cd78bf4adc5bd775679384d763216edc12157afec6eb4d2435a2fc793183fafadc9ff35b5c87471da1e56600203f11ae654a377c80101957a0c0044ee9ae96e8a7cc785a629c17ca5d5ef2a981b83417db75f9616e0ffcbc92d440eb73a2cc5a356e23
+20000522205340 2 6 100 1025 2 2abb47271a1809f247f4433065ee7087815d189e8e2bec67827d173b078cd78bf4adc5bd775679384d763216edc12157afec6eb4d2435a2fc793183fafadc9ff35b5c87471da1e56600203f11ae654a377c80101957a0c0044ee9ae96e8a7cc785a629c17ca5d5ef2a981b83417db75f9616e0ffcbc92d440eb73a2cc5a5d0ea3
+20000523002213 2 6 100 1025 2 2abb47271a1809f247f4433065ee7087815d189e8e2bec67827d173b078cd78bf4adc5bd775679384d763216edc12157afec6eb4d2435a2fc793183fafadc9ff35b5c87471da1e56600203f11ae654a377c80101957a0c0044ee9ae96e8a7cc785a629c17ca5d5ef2a981b83417db75f9616e0ffcbc92d440eb73a2cc589ab15b
+20000523002333 2 6 100 1025 2 2abb47271a1809f247f4433065ee7087815d189e8e2bec67827d173b078cd78bf4adc5bd775679384d763216edc12157afec6eb4d2435a2fc793183fafadc9ff35b5c87471da1e56600203f11ae654a377c80101957a0c0044ee9ae96e8a7cc785a629c17ca5d5ef2a981b83417db75f9616e0ffcbc92d440eb73a2cc58c16733
+20000523002506 2 6 100 1025 2 2abb47271a1809f247f4433065ee7087815d189e8e2bec67827d173b078cd78bf4adc5bd775679384d763216edc12157afec6eb4d2435a2fc793183fafadc9ff35b5c87471da1e56600203f11ae654a377c80101957a0c0044ee9ae96e8a7cc785a629c17ca5d5ef2a981b83417db75f9616e0ffcbc92d440eb73a2cc58ee9dc3
+20000523002708 2 6 100 1025 2 2abb47271a1809f247f4433065ee7087815d189e8e2bec67827d173b078cd78bf4adc5bd775679384d763216edc12157afec6eb4d2435a2fc793183fafadc9ff35b5c87471da1e56600203f11ae654a377c80101957a0c0044ee9ae96e8a7cc785a629c17ca5d5ef2a981b83417db75f9616e0ffcbc92d440eb73a2cc592e0f7b
+20000523002728 2 6 100 1025 2 2abb47271a1809f247f4433065ee7087815d189e8e2bec67827d173b078cd78bf4adc5bd775679384d763216edc12157afec6eb4d2435a2fc793183fafadc9ff35b5c87471da1e56600203f11ae654a377c80101957a0c0044ee9ae96e8a7cc785a629c17ca5d5ef2a981b83417db75f9616e0ffcbc92d440eb73a2cc592fbea3
+20000523002746 2 6 100 1025 2 2abb47271a1809f247f4433065ee7087815d189e8e2bec67827d173b078cd78bf4adc5bd775679384d763216edc12157afec6eb4d2435a2fc793183fafadc9ff35b5c87471da1e56600203f11ae654a377c80101957a0c0044ee9ae96e8a7cc785a629c17ca5d5ef2a981b83417db75f9616e0ffcbc92d440eb73a2cc5931088b
+20000523002834 2 6 100 1025 2 2abb47271a1809f247f4433065ee7087815d189e8e2bec67827d173b078cd78bf4adc5bd775679384d763216edc12157afec6eb4d2435a2fc793183fafadc9ff35b5c87471da1e56600203f11ae654a377c80101957a0c0044ee9ae96e8a7cc785a629c17ca5d5ef2a981b83417db75f9616e0ffcbc92d440eb73a2cc59434203
+20000523002958 2 6 100 1025 2 2abb47271a1809f247f4433065ee7087815d189e8e2bec67827d173b078cd78bf4adc5bd775679384d763216edc12157afec6eb4d2435a2fc793183fafadc9ff35b5c87471da1e56600203f11ae654a377c80101957a0c0044ee9ae96e8a7cc785a629c17ca5d5ef2a981b83417db75f9616e0ffcbc92d440eb73a2cc5969401b
+20000523003018 2 6 100 1025 2 2abb47271a1809f247f4433065ee7087815d189e8e2bec67827d173b078cd78bf4adc5bd775679384d763216edc12157afec6eb4d2435a2fc793183fafadc9ff35b5c87471da1e56600203f11ae654a377c80101957a0c0044ee9ae96e8a7cc785a629c17ca5d5ef2a981b83417db75f9616e0ffcbc92d440eb73a2cc596b4efb
+20000523003040 2 6 100 1025 2 2abb47271a1809f247f4433065ee7087815d189e8e2bec67827d173b078cd78bf4adc5bd775679384d763216edc12157afec6eb4d2435a2fc793183fafadc9ff35b5c87471da1e56600203f11ae654a377c80101957a0c0044ee9ae96e8a7cc785a629c17ca5d5ef2a981b83417db75f9616e0ffcbc92d440eb73a2cc596dd953
+20000523003122 2 6 100 1025 2 2abb47271a1809f247f4433065ee7087815d189e8e2bec67827d173b078cd78bf4adc5bd775679384d763216edc12157afec6eb4d2435a2fc793183fafadc9ff35b5c87471da1e56600203f11ae654a377c80101957a0c0044ee9ae96e8a7cc785a629c17ca5d5ef2a981b83417db75f9616e0ffcbc92d440eb73a2cc597da68b
+20000523003151 2 6 100 1025 2 2abb47271a1809f247f4433065ee7087815d189e8e2bec67827d173b078cd78bf4adc5bd775679384d763216edc12157afec6eb4d2435a2fc793183fafadc9ff35b5c87471da1e56600203f11ae654a377c80101957a0c0044ee9ae96e8a7cc785a629c17ca5d5ef2a981b83417db75f9616e0ffcbc92d440eb73a2cc5984e833
+20000523003220 2 6 100 1025 2 2abb47271a1809f247f4433065ee7087815d189e8e2bec67827d173b078cd78bf4adc5bd775679384d763216edc12157afec6eb4d2435a2fc793183fafadc9ff35b5c87471da1e56600203f11ae654a377c80101957a0c0044ee9ae96e8a7cc785a629c17ca5d5ef2a981b83417db75f9616e0ffcbc92d440eb73a2cc598bb68b
+20000523003240 2 6 100 1025 2 2abb47271a1809f247f4433065ee7087815d189e8e2bec67827d173b078cd78bf4adc5bd775679384d763216edc12157afec6eb4d2435a2fc793183fafadc9ff35b5c87471da1e56600203f11ae654a377c80101957a0c0044ee9ae96e8a7cc785a629c17ca5d5ef2a981b83417db75f9616e0ffcbc92d440eb73a2cc598def3b
+20000523003415 2 6 100 1025 2 2abb47271a1809f247f4433065ee7087815d189e8e2bec67827d173b078cd78bf4adc5bd775679384d763216edc12157afec6eb4d2435a2fc793183fafadc9ff35b5c87471da1e56600203f11ae654a377c80101957a0c0044ee9ae96e8a7cc785a629c17ca5d5ef2a981b83417db75f9616e0ffcbc92d440eb73a2cc59b8d5f3
+20000523003437 2 6 100 1025 2 2abb47271a1809f247f4433065ee7087815d189e8e2bec67827d173b078cd78bf4adc5bd775679384d763216edc12157afec6eb4d2435a2fc793183fafadc9ff35b5c87471da1e56600203f11ae654a377c80101957a0c0044ee9ae96e8a7cc785a629c17ca5d5ef2a981b83417db75f9616e0ffcbc92d440eb73a2cc59bbc4fb
+20000523003527 2 6 100 1025 2 2abb47271a1809f247f4433065ee7087815d189e8e2bec67827d173b078cd78bf4adc5bd775679384d763216edc12157afec6eb4d2435a2fc793183fafadc9ff35b5c87471da1e56600203f11ae654a377c80101957a0c0044ee9ae96e8a7cc785a629c17ca5d5ef2a981b83417db75f9616e0ffcbc92d440eb73a2cc59cfa1fb
+20000523003808 2 6 100 1025 2 2abb47271a1809f247f4433065ee7087815d189e8e2bec67827d173b078cd78bf4adc5bd775679384d763216edc12157afec6eb4d2435a2fc793183fafadc9ff35b5c87471da1e56600203f11ae654a377c80101957a0c0044ee9ae96e8a7cc785a629c17ca5d5ef2a981b83417db75f9616e0ffcbc92d440eb73a2cc5a20812b
+20000523003847 2 6 100 1025 2 2abb47271a1809f247f4433065ee7087815d189e8e2bec67827d173b078cd78bf4adc5bd775679384d763216edc12157afec6eb4d2435a2fc793183fafadc9ff35b5c87471da1e56600203f11ae654a377c80101957a0c0044ee9ae96e8a7cc785a629c17ca5d5ef2a981b83417db75f9616e0ffcbc92d440eb73a2cc5a2c65b3
+20000523132221 2 6 100 1025 2 2abb47271a1809f247f4433065ee7087815d189e8e2bec67827d173b078cd78bf4adc5bd775679384d763216edc12157afec6eb4d2435a2fc793183fafadc9ff35b5c87471da1e56600203f11ae654a377c80101957a0c0044ee9ae96e8a7cc785a629c17ca5d5ef2a981b83417db75f9616e0ffcbc92d440eb73a2cc5a356e23
+20000523132348 2 6 100 1025 2 2abb47271a1809f247f4433065ee7087815d189e8e2bec67827d173b078cd78bf4adc5bd775679384d763216edc12157afec6eb4d2435a2fc793183fafadc9ff35b5c87471da1e56600203f11ae654a377c80101957a0c0044ee9ae96e8a7cc785a629c17ca5d5ef2a981b83417db75f9616e0ffcbc92d440eb73a2cc5a5d0ea3
+20000523133632 2 6 100 2048 2 13adce8b316247c62077274d989c505ac8651f4ea63ad3715a49ebf7dc2aa74fc280ac8e3423453ec767e571fa0cf65a9585692669231b0fbbcf418bf4a4bbe2bb7d34904d1494927827dad9a34d08345ecd0374d6487815684affc279854d6eee72cb7941855cc46fd3ee056eb410a57c306185cd13e3d93acb336eb8f62bc61c311b0992dafbd35a835ca46aab4be71ca8a14b98b4fdd72a085115dc46531f711ba4ad41533aab44ef839d7952b7c4655a3309eefbbc3fe8df211397e58df223596c695a8993be7d81ec52b9891a51ece620fdeb8c4d1dad87f979ba375cde357bdd78d4672ea176521a9ef0c0e842d62cdef309b6ed2cd41cb029296c38f3b
+20000523134422 2 6 100 2048 2 13adce8b316247c62077274d989c505ac8651f4ea63ad3715a49ebf7dc2aa74fc280ac8e3423453ec767e571fa0cf65a9585692669231b0fbbcf418bf4a4bbe2bb7d34904d1494927827dad9a34d08345ecd0374d6487815684affc279854d6eee72cb7941855cc46fd3ee056eb410a57c306185cd13e3d93acb336eb8f62bc61c311b0992dafbd35a835ca46aab4be71ca8a14b98b4fdd72a085115dc46531f711ba4ad41533aab44ef839d7952b7c4655a3309eefbbc3fe8df211397e58df223596c695a8993be7d81ec52b9891a51ece620fdeb8c4d1dad87f979ba375cde357bdd78d4672ea176521a9ef0c0e842d62cdef309b6ed2cd41cb029296e2b50b
+20000523140206 2 6 100 2048 2 13adce8b316247c62077274d989c505ac8651f4ea63ad3715a49ebf7dc2aa74fc280ac8e3423453ec767e571fa0cf65a9585692669231b0fbbcf418bf4a4bbe2bb7d34904d1494927827dad9a34d08345ecd0374d6487815684affc279854d6eee72cb7941855cc46fd3ee056eb410a57c306185cd13e3d93acb336eb8f62bc61c311b0992dafbd35a835ca46aab4be71ca8a14b98b4fdd72a085115dc46531f711ba4ad41533aab44ef839d7952b7c4655a3309eefbbc3fe8df211397e58df223596c695a8993be7d81ec52b9891a51ece620fdeb8c4d1dad87f979ba375cde357bdd78d4672ea176521a9ef0c0e842d62cdef309b6ed2cd41cb029297404d63
+20000523142316 2 6 100 2048 2 13adce8b316247c62077274d989c505ac8651f4ea63ad3715a49ebf7dc2aa74fc280ac8e3423453ec767e571fa0cf65a9585692669231b0fbbcf418bf4a4bbe2bb7d34904d1494927827dad9a34d08345ecd0374d6487815684affc279854d6eee72cb7941855cc46fd3ee056eb410a57c306185cd13e3d93acb336eb8f62bc61c311b0992dafbd35a835ca46aab4be71ca8a14b98b4fdd72a085115dc46531f711ba4ad41533aab44ef839d7952b7c4655a3309eefbbc3fe8df211397e58df223596c695a8993be7d81ec52b9891a51ece620fdeb8c4d1dad87f979ba375cde357bdd78d4672ea176521a9ef0c0e842d62cdef309b6ed2cd41cb029297b3296b
+20000523144727 2 6 100 2048 2 13adce8b316247c62077274d989c505ac8651f4ea63ad3715a49ebf7dc2aa74fc280ac8e3423453ec767e571fa0cf65a9585692669231b0fbbcf418bf4a4bbe2bb7d34904d1494927827dad9a34d08345ecd0374d6487815684affc279854d6eee72cb7941855cc46fd3ee056eb410a57c306185cd13e3d93acb336eb8f62bc61c311b0992dafbd35a835ca46aab4be71ca8a14b98b4fdd72a085115dc46531f711ba4ad41533aab44ef839d7952b7c4655a3309eefbbc3fe8df211397e58df223596c695a8993be7d81ec52b9891a51ece620fdeb8c4d1dad87f979ba375cde357bdd78d4672ea176521a9ef0c0e842d62cdef309b6ed2cd41cb02929837023b
+20000523152219 2 6 100 2048 2 13adce8b316247c62077274d989c505ac8651f4ea63ad3715a49ebf7dc2aa74fc280ac8e3423453ec767e571fa0cf65a9585692669231b0fbbcf418bf4a4bbe2bb7d34904d1494927827dad9a34d08345ecd0374d6487815684affc279854d6eee72cb7941855cc46fd3ee056eb410a57c306185cd13e3d93acb336eb8f62bc61c311b0992dafbd35a835ca46aab4be71ca8a14b98b4fdd72a085115dc46531f711ba4ad41533aab44ef839d7952b7c4655a3309eefbbc3fe8df211397e58df223596c695a8993be7d81ec52b9891a51ece620fdeb8c4d1dad87f979ba375cde357bdd78d4672ea176521a9ef0c0e842d62cdef309b6ed2cd41cb029298fcdf8b
+20000523160139 2 6 100 2048 2 13adce8b316247c62077274d989c505ac8651f4ea63ad3715a49ebf7dc2aa74fc280ac8e3423453ec767e571fa0cf65a9585692669231b0fbbcf418bf4a4bbe2bb7d34904d1494927827dad9a34d08345ecd0374d6487815684affc279854d6eee72cb7941855cc46fd3ee056eb410a57c306185cd13e3d93acb336eb8f62bc61c311b0992dafbd35a835ca46aab4be71ca8a14b98b4fdd72a085115dc46531f711ba4ad41533aab44ef839d7952b7c4655a3309eefbbc3fe8df211397e58df223596c695a8993be7d81ec52b9891a51ece620fdeb8c4d1dad87f979ba375cde357bdd78d4672ea176521a9ef0c0e842d62cdef309b6ed2cd41cb029299d2ddcb
+20000523161127 2 6 100 2048 2 13adce8b316247c62077274d989c505ac8651f4ea63ad3715a49ebf7dc2aa74fc280ac8e3423453ec767e571fa0cf65a9585692669231b0fbbcf418bf4a4bbe2bb7d34904d1494927827dad9a34d08345ecd0374d6487815684affc279854d6eee72cb7941855cc46fd3ee056eb410a57c306185cd13e3d93acb336eb8f62bc61c311b0992dafbd35a835ca46aab4be71ca8a14b98b4fdd72a085115dc46531f711ba4ad41533aab44ef839d7952b7c4655a3309eefbbc3fe8df211397e58df223596c695a8993be7d81ec52b9891a51ece620fdeb8c4d1dad87f979ba375cde357bdd78d4672ea176521a9ef0c0e842d62cdef309b6ed2cd41cb02929a06becb
+20000523161954 2 6 100 2048 2 13adce8b316247c62077274d989c505ac8651f4ea63ad3715a49ebf7dc2aa74fc280ac8e3423453ec767e571fa0cf65a9585692669231b0fbbcf418bf4a4bbe2bb7d34904d1494927827dad9a34d08345ecd0374d6487815684affc279854d6eee72cb7941855cc46fd3ee056eb410a57c306185cd13e3d93acb336eb8f62bc61c311b0992dafbd35a835ca46aab4be71ca8a14b98b4fdd72a085115dc46531f711ba4ad41533aab44ef839d7952b7c4655a3309eefbbc3fe8df211397e58df223596c695a8993be7d81ec52b9891a51ece620fdeb8c4d1dad87f979ba375cde357bdd78d4672ea176521a9ef0c0e842d62cdef309b6ed2cd41cb02929a2be213
+20000523163925 2 6 100 2048 2 13adce8b316247c62077274d989c505ac8651f4ea63ad3715a49ebf7dc2aa74fc280ac8e3423453ec767e571fa0cf65a9585692669231b0fbbcf418bf4a4bbe2bb7d34904d1494927827dad9a34d08345ecd0374d6487815684affc279854d6eee72cb7941855cc46fd3ee056eb410a57c306185cd13e3d93acb336eb8f62bc61c311b0992dafbd35a835ca46aab4be71ca8a14b98b4fdd72a085115dc46531f711ba4ad41533aab44ef839d7952b7c4655a3309eefbbc3fe8df211397e58df223596c695a8993be7d81ec52b9891a51ece620fdeb8c4d1dad87f979ba375cde357bdd78d4672ea176521a9ef0c0e842d62cdef309b6ed2cd41cb02929a7f10eb
+20000524131812 2 6 100 2048 2 13adce8b316247c62077274d989c505ac8651f4ea63ad3715a49ebf7dc2aa74fc280ac8e3423453ec767e571fa0cf65a9585692669231b0fbbcf418bf4a4bbe2bb7d34904d1494927827dad9a34d08345ecd0374d6487815684affc279854d6eee72cb7941855cc46fd3ee056eb410a57c306185cd13e3d93acb336eb8f62bc61c311b0992dafbd35a835ca46aab4be71ca8a14b98b4fdd72a085115dc46531f711ba4ad41533aab44ef839d7952b7c4655a3309eefbbc3fe8df211397e58df223596c695a8993be7d81ec52b9891a51ece620fdeb8c4d1dad87f979ba375cde357bdd78d4672ea176521a9ef0c0e842d62cdef309b6ed2cd41cb02929b9678e3
+20000524132825 2 6 100 2048 2 13adce8b316247c62077274d989c505ac8651f4ea63ad3715a49ebf7dc2aa74fc280ac8e3423453ec767e571fa0cf65a9585692669231b0fbbcf418bf4a4bbe2bb7d34904d1494927827dad9a34d08345ecd0374d6487815684affc279854d6eee72cb7941855cc46fd3ee056eb410a57c306185cd13e3d93acb336eb8f62bc61c311b0992dafbd35a835ca46aab4be71ca8a14b98b4fdd72a085115dc46531f711ba4ad41533aab44ef839d7952b7c4655a3309eefbbc3fe8df211397e58df223596c695a8993be7d81ec52b9891a51ece620fdeb8c4d1dad87f979ba375cde357bdd78d4672ea176521a9ef0c0e842d62cdef309b6ed2cd41cb02929bc95393
+20000524134006 2 6 100 2048 2 13adce8b316247c62077274d989c505ac8651f4ea63ad3715a49ebf7dc2aa74fc280ac8e3423453ec767e571fa0cf65a9585692669231b0fbbcf418bf4a4bbe2bb7d34904d1494927827dad9a34d08345ecd0374d6487815684affc279854d6eee72cb7941855cc46fd3ee056eb410a57c306185cd13e3d93acb336eb8f62bc61c311b0992dafbd35a835ca46aab4be71ca8a14b98b4fdd72a085115dc46531f711ba4ad41533aab44ef839d7952b7c4655a3309eefbbc3fe8df211397e58df223596c695a8993be7d81ec52b9891a51ece620fdeb8c4d1dad87f979ba375cde357bdd78d4672ea176521a9ef0c0e842d62cdef309b6ed2cd41cb02929c01c4b3
+20000524135411 2 6 100 2048 2 13adce8b316247c62077274d989c505ac8651f4ea63ad3715a49ebf7dc2aa74fc280ac8e3423453ec767e571fa0cf65a9585692669231b0fbbcf418bf4a4bbe2bb7d34904d1494927827dad9a34d08345ecd0374d6487815684affc279854d6eee72cb7941855cc46fd3ee056eb410a57c306185cd13e3d93acb336eb8f62bc61c311b0992dafbd35a835ca46aab4be71ca8a14b98b4fdd72a085115dc46531f711ba4ad41533aab44ef839d7952b7c4655a3309eefbbc3fe8df211397e58df223596c695a8993be7d81ec52b9891a51ece620fdeb8c4d1dad87f979ba375cde357bdd78d4672ea176521a9ef0c0e842d62cdef309b6ed2cd41cb02929c497d43
+20000524135734 2 6 100 2048 2 13adce8b316247c62077274d989c505ac8651f4ea63ad3715a49ebf7dc2aa74fc280ac8e3423453ec767e571fa0cf65a9585692669231b0fbbcf418bf4a4bbe2bb7d34904d1494927827dad9a34d08345ecd0374d6487815684affc279854d6eee72cb7941855cc46fd3ee056eb410a57c306185cd13e3d93acb336eb8f62bc61c311b0992dafbd35a835ca46aab4be71ca8a14b98b4fdd72a085115dc46531f711ba4ad41533aab44ef839d7952b7c4655a3309eefbbc3fe8df211397e58df223596c695a8993be7d81ec52b9891a51ece620fdeb8c4d1dad87f979ba375cde357bdd78d4672ea176521a9ef0c0e842d62cdef309b6ed2cd41cb02929c53d50b
+20000525100237 2 6 100 2048 2 13adce8b316247c62077274d989c505ac8651f4ea63ad3715a49ebf7dc2aa74fc280ac8e3423453ec767e571fa0cf65a9585692669231b0fbbcf418bf4a4bbe2bb7d34904d1494927827dad9a34d08345ecd0374d6487815684affc279854d6eee72cb7941855cc46fd3ee056eb410a57c306185cd13e3d93acb336eb8f62bc61c311b0992dafbd35a835ca46aab4be71ca8a14b98b4fdd72a085115dc46531f711ba4ad41533aab44ef839d7952b7c4655a3309eefbbc3fe8df211397e58df223596c695a8993be7d81ec52b9891a51ece620fdeb8c4d1dad87f979ba375cde357bdd78d4672ea176521a9ef0c0e842d62cdef309b6ed2cd41cb02929cdb1183
+20000525101209 2 6 100 2048 2 13adce8b316247c62077274d989c505ac8651f4ea63ad3715a49ebf7dc2aa74fc280ac8e3423453ec767e571fa0cf65a9585692669231b0fbbcf418bf4a4bbe2bb7d34904d1494927827dad9a34d08345ecd0374d6487815684affc279854d6eee72cb7941855cc46fd3ee056eb410a57c306185cd13e3d93acb336eb8f62bc61c311b0992dafbd35a835ca46aab4be71ca8a14b98b4fdd72a085115dc46531f711ba4ad41533aab44ef839d7952b7c4655a3309eefbbc3fe8df211397e58df223596c695a8993be7d81ec52b9891a51ece620fdeb8c4d1dad87f979ba375cde357bdd78d4672ea176521a9ef0c0e842d62cdef309b6ed2cd41cb02929d09073b
+20000525101532 2 6 100 2048 2 13adce8b316247c62077274d989c505ac8651f4ea63ad3715a49ebf7dc2aa74fc280ac8e3423453ec767e571fa0cf65a9585692669231b0fbbcf418bf4a4bbe2bb7d34904d1494927827dad9a34d08345ecd0374d6487815684affc279854d6eee72cb7941855cc46fd3ee056eb410a57c306185cd13e3d93acb336eb8f62bc61c311b0992dafbd35a835ca46aab4be71ca8a14b98b4fdd72a085115dc46531f711ba4ad41533aab44ef839d7952b7c4655a3309eefbbc3fe8df211397e58df223596c695a8993be7d81ec52b9891a51ece620fdeb8c4d1dad87f979ba375cde357bdd78d4672ea176521a9ef0c0e842d62cdef309b6ed2cd41cb02929d12ae03
+20000525102821 2 6 100 2048 2 13adce8b316247c62077274d989c505ac8651f4ea63ad3715a49ebf7dc2aa74fc280ac8e3423453ec767e571fa0cf65a9585692669231b0fbbcf418bf4a4bbe2bb7d34904d1494927827dad9a34d08345ecd0374d6487815684affc279854d6eee72cb7941855cc46fd3ee056eb410a57c306185cd13e3d93acb336eb8f62bc61c311b0992dafbd35a835ca46aab4be71ca8a14b98b4fdd72a085115dc46531f711ba4ad41533aab44ef839d7952b7c4655a3309eefbbc3fe8df211397e58df223596c695a8993be7d81ec52b9891a51ece620fdeb8c4d1dad87f979ba375cde357bdd78d4672ea176521a9ef0c0e842d62cdef309b6ed2cd41cb02929d547323
+20000525103314 2 6 100 2048 2 13adce8b316247c62077274d989c505ac8651f4ea63ad3715a49ebf7dc2aa74fc280ac8e3423453ec767e571fa0cf65a9585692669231b0fbbcf418bf4a4bbe2bb7d34904d1494927827dad9a34d08345ecd0374d6487815684affc279854d6eee72cb7941855cc46fd3ee056eb410a57c306185cd13e3d93acb336eb8f62bc61c311b0992dafbd35a835ca46aab4be71ca8a14b98b4fdd72a085115dc46531f711ba4ad41533aab44ef839d7952b7c4655a3309eefbbc3fe8df211397e58df223596c695a8993be7d81ec52b9891a51ece620fdeb8c4d1dad87f979ba375cde357bdd78d4672ea176521a9ef0c0e842d62cdef309b6ed2cd41cb02929d65a2a3
+20000525103516 2 6 100 2048 2 13adce8b316247c62077274d989c505ac8651f4ea63ad3715a49ebf7dc2aa74fc280ac8e3423453ec767e571fa0cf65a9585692669231b0fbbcf418bf4a4bbe2bb7d34904d1494927827dad9a34d08345ecd0374d6487815684affc279854d6eee72cb7941855cc46fd3ee056eb410a57c306185cd13e3d93acb336eb8f62bc61c311b0992dafbd35a835ca46aab4be71ca8a14b98b4fdd72a085115dc46531f711ba4ad41533aab44ef839d7952b7c4655a3309eefbbc3fe8df211397e58df223596c695a8993be7d81ec52b9891a51ece620fdeb8c4d1dad87f979ba375cde357bdd78d4672ea176521a9ef0c0e842d62cdef309b6ed2cd41cb02929d66b373
+20000525104424 2 6 100 2048 2 13adce8b316247c62077274d989c505ac8651f4ea63ad3715a49ebf7dc2aa74fc280ac8e3423453ec767e571fa0cf65a9585692669231b0fbbcf418bf4a4bbe2bb7d34904d1494927827dad9a34d08345ecd0374d6487815684affc279854d6eee72cb7941855cc46fd3ee056eb410a57c306185cd13e3d93acb336eb8f62bc61c311b0992dafbd35a835ca46aab4be71ca8a14b98b4fdd72a085115dc46531f711ba4ad41533aab44ef839d7952b7c4655a3309eefbbc3fe8df211397e58df223596c695a8993be7d81ec52b9891a51ece620fdeb8c4d1dad87f979ba375cde357bdd78d4672ea176521a9ef0c0e842d62cdef309b6ed2cd41cb02929d923c13
+20000525104817 2 6 100 2048 2 13adce8b316247c62077274d989c505ac8651f4ea63ad3715a49ebf7dc2aa74fc280ac8e3423453ec767e571fa0cf65a9585692669231b0fbbcf418bf4a4bbe2bb7d34904d1494927827dad9a34d08345ecd0374d6487815684affc279854d6eee72cb7941855cc46fd3ee056eb410a57c306185cd13e3d93acb336eb8f62bc61c311b0992dafbd35a835ca46aab4be71ca8a14b98b4fdd72a085115dc46531f711ba4ad41533aab44ef839d7952b7c4655a3309eefbbc3fe8df211397e58df223596c695a8993be7d81ec52b9891a51ece620fdeb8c4d1dad87f979ba375cde357bdd78d4672ea176521a9ef0c0e842d62cdef309b6ed2cd41cb02929d9e8ce3
+20000525105713 2 6 100 2048 2 13adce8b316247c62077274d989c505ac8651f4ea63ad3715a49ebf7dc2aa74fc280ac8e3423453ec767e571fa0cf65a9585692669231b0fbbcf418bf4a4bbe2bb7d34904d1494927827dad9a34d08345ecd0374d6487815684affc279854d6eee72cb7941855cc46fd3ee056eb410a57c306185cd13e3d93acb336eb8f62bc61c311b0992dafbd35a835ca46aab4be71ca8a14b98b4fdd72a085115dc46531f711ba4ad41533aab44ef839d7952b7c4655a3309eefbbc3fe8df211397e58df223596c695a8993be7d81ec52b9891a51ece620fdeb8c4d1dad87f979ba375cde357bdd78d4672ea176521a9ef0c0e842d62cdef309b6ed2cd41cb02929dc8fe6b
+20000525110833 2 6 100 2048 2 13adce8b316247c62077274d989c505ac8651f4ea63ad3715a49ebf7dc2aa74fc280ac8e3423453ec767e571fa0cf65a9585692669231b0fbbcf418bf4a4bbe2bb7d34904d1494927827dad9a34d08345ecd0374d6487815684affc279854d6eee72cb7941855cc46fd3ee056eb410a57c306185cd13e3d93acb336eb8f62bc61c311b0992dafbd35a835ca46aab4be71ca8a14b98b4fdd72a085115dc46531f711ba4ad41533aab44ef839d7952b7c4655a3309eefbbc3fe8df211397e58df223596c695a8993be7d81ec52b9891a51ece620fdeb8c4d1dad87f979ba375cde357bdd78d4672ea176521a9ef0c0e842d62cdef309b6ed2cd41cb02929e0121eb
+20000525111133 2 6 100 2048 2 13adce8b316247c62077274d989c505ac8651f4ea63ad3715a49ebf7dc2aa74fc280ac8e3423453ec767e571fa0cf65a9585692669231b0fbbcf418bf4a4bbe2bb7d34904d1494927827dad9a34d08345ecd0374d6487815684affc279854d6eee72cb7941855cc46fd3ee056eb410a57c306185cd13e3d93acb336eb8f62bc61c311b0992dafbd35a835ca46aab4be71ca8a14b98b4fdd72a085115dc46531f711ba4ad41533aab44ef839d7952b7c4655a3309eefbbc3fe8df211397e58df223596c695a8993be7d81ec52b9891a51ece620fdeb8c4d1dad87f979ba375cde357bdd78d4672ea176521a9ef0c0e842d62cdef309b6ed2cd41cb02929e093edb