diff options
178 files changed, 11589 insertions, 9915 deletions
@@ -6,47 +6,47 @@ audit-bsm.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-com | |||
6 | audit-linux.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h | 6 | audit-linux.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h |
7 | audit.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h | 7 | audit.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h |
8 | auth-bsdauth.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h | 8 | auth-bsdauth.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h |
9 | auth-krb5.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h xmalloc.h ssh.h packet.h openbsd-compat/sys-queue.h dispatch.h opacket.h log.h sshbuf.h sshkey.h misc.h servconf.h uidswap.h hostfile.h auth.h auth-pam.h audit.h loginrec.h | 9 | auth-krb5.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h xmalloc.h ssh.h packet.h openbsd-compat/sys-queue.h dispatch.h log.h sshbuf.h sshkey.h misc.h servconf.h uidswap.h hostfile.h auth.h auth-pam.h audit.h loginrec.h |
10 | auth-options.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h openbsd-compat/sys-queue.h xmalloc.h ssherr.h log.h sshbuf.h misc.h sshkey.h match.h ssh2.h auth-options.h | 10 | auth-options.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h openbsd-compat/sys-queue.h xmalloc.h ssherr.h log.h sshbuf.h misc.h sshkey.h match.h ssh2.h auth-options.h |
11 | auth-pam.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h | 11 | auth-pam.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h |
12 | auth-passwd.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h packet.h openbsd-compat/sys-queue.h dispatch.h opacket.h sshbuf.h ssherr.h log.h misc.h servconf.h sshkey.h hostfile.h auth.h auth-pam.h audit.h loginrec.h auth-options.h | 12 | auth-passwd.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h packet.h openbsd-compat/sys-queue.h dispatch.h sshbuf.h ssherr.h log.h misc.h servconf.h sshkey.h hostfile.h auth.h auth-pam.h audit.h loginrec.h auth-options.h |
13 | auth-rhosts.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h packet.h openbsd-compat/sys-queue.h dispatch.h opacket.h uidswap.h pathnames.h log.h misc.h sshbuf.h sshkey.h servconf.h canohost.h hostfile.h auth.h auth-pam.h audit.h loginrec.h | 13 | auth-rhosts.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h packet.h openbsd-compat/sys-queue.h dispatch.h uidswap.h pathnames.h log.h misc.h sshbuf.h sshkey.h servconf.h canohost.h hostfile.h auth.h auth-pam.h audit.h loginrec.h |
14 | auth-shadow.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h | 14 | auth-shadow.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h |
15 | auth-sia.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h | 15 | auth-sia.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h |
16 | auth-skey.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h | 16 | auth-skey.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h |
17 | auth.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h xmalloc.h match.h groupaccess.h log.h sshbuf.h misc.h servconf.h sshkey.h hostfile.h auth.h auth-pam.h audit.h loginrec.h auth-options.h canohost.h uidswap.h packet.h openbsd-compat/sys-queue.h dispatch.h opacket.h | 17 | auth.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h xmalloc.h match.h groupaccess.h log.h sshbuf.h misc.h servconf.h sshkey.h hostfile.h auth.h auth-pam.h audit.h loginrec.h auth-options.h canohost.h uidswap.h packet.h openbsd-compat/sys-queue.h dispatch.h authfile.h |
18 | auth.o: authfile.h monitor_wrap.h ssherr.h compat.h channels.h | 18 | auth.o: monitor_wrap.h ssherr.h compat.h channels.h |
19 | auth2-chall.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h xmalloc.h ssh2.h sshkey.h hostfile.h auth.h auth-pam.h audit.h loginrec.h sshbuf.h packet.h openbsd-compat/sys-queue.h dispatch.h opacket.h ssherr.h log.h misc.h servconf.h | 19 | auth2-chall.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h xmalloc.h ssh2.h sshkey.h hostfile.h auth.h auth-pam.h audit.h loginrec.h sshbuf.h packet.h openbsd-compat/sys-queue.h dispatch.h ssherr.h log.h misc.h servconf.h |
20 | auth2-gss.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h | 20 | auth2-gss.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h |
21 | auth2-hostbased.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h xmalloc.h ssh2.h packet.h openbsd-compat/sys-queue.h dispatch.h opacket.h sshbuf.h log.h misc.h servconf.h compat.h sshkey.h hostfile.h auth.h auth-pam.h audit.h loginrec.h canohost.h monitor_wrap.h | 21 | auth2-hostbased.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h xmalloc.h ssh2.h packet.h openbsd-compat/sys-queue.h dispatch.h sshbuf.h log.h misc.h servconf.h compat.h sshkey.h hostfile.h auth.h auth-pam.h audit.h loginrec.h canohost.h monitor_wrap.h pathnames.h |
22 | auth2-hostbased.o: pathnames.h ssherr.h match.h | 22 | auth2-hostbased.o: ssherr.h match.h |
23 | auth2-kbdint.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h xmalloc.h packet.h openbsd-compat/sys-queue.h dispatch.h opacket.h hostfile.h auth.h auth-pam.h audit.h loginrec.h log.h misc.h servconf.h ssherr.h | 23 | auth2-kbdint.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h xmalloc.h packet.h openbsd-compat/sys-queue.h dispatch.h hostfile.h auth.h auth-pam.h audit.h loginrec.h log.h misc.h servconf.h ssherr.h |
24 | auth2-none.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h atomicio.h xmalloc.h sshkey.h hostfile.h auth.h auth-pam.h audit.h loginrec.h packet.h openbsd-compat/sys-queue.h dispatch.h opacket.h log.h misc.h servconf.h compat.h ssh2.h ssherr.h monitor_wrap.h | 24 | auth2-none.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h atomicio.h xmalloc.h sshkey.h hostfile.h auth.h auth-pam.h audit.h loginrec.h packet.h openbsd-compat/sys-queue.h dispatch.h log.h misc.h servconf.h compat.h ssh2.h ssherr.h monitor_wrap.h |
25 | auth2-passwd.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h packet.h openbsd-compat/sys-queue.h dispatch.h opacket.h ssherr.h log.h sshkey.h hostfile.h auth.h auth-pam.h audit.h loginrec.h monitor_wrap.h misc.h servconf.h | 25 | auth2-passwd.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h packet.h openbsd-compat/sys-queue.h dispatch.h ssherr.h log.h sshkey.h hostfile.h auth.h auth-pam.h audit.h loginrec.h monitor_wrap.h misc.h servconf.h |
26 | auth2-pubkey.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h xmalloc.h ssh.h ssh2.h packet.h openbsd-compat/sys-queue.h dispatch.h opacket.h sshbuf.h log.h misc.h servconf.h compat.h sshkey.h hostfile.h auth.h auth-pam.h audit.h loginrec.h pathnames.h uidswap.h | 26 | auth2-pubkey.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h xmalloc.h ssh.h ssh2.h packet.h openbsd-compat/sys-queue.h dispatch.h sshbuf.h log.h misc.h servconf.h compat.h sshkey.h hostfile.h auth.h auth-pam.h audit.h loginrec.h pathnames.h uidswap.h auth-options.h |
27 | auth2-pubkey.o: auth-options.h canohost.h monitor_wrap.h authfile.h match.h ssherr.h channels.h session.h | 27 | auth2-pubkey.o: canohost.h monitor_wrap.h authfile.h match.h ssherr.h channels.h session.h |
28 | auth2.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h atomicio.h xmalloc.h ssh2.h packet.h openbsd-compat/sys-queue.h dispatch.h opacket.h log.h sshbuf.h misc.h servconf.h compat.h sshkey.h hostfile.h auth.h auth-pam.h audit.h loginrec.h pathnames.h ssherr.h | 28 | auth2.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h atomicio.h xmalloc.h ssh2.h packet.h openbsd-compat/sys-queue.h dispatch.h log.h sshbuf.h misc.h servconf.h compat.h sshkey.h hostfile.h auth.h auth-pam.h audit.h loginrec.h pathnames.h ssherr.h monitor_wrap.h |
29 | auth2.o: monitor_wrap.h digest.h | 29 | auth2.o: digest.h |
30 | authfd.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h xmalloc.h ssh.h sshbuf.h sshkey.h authfd.h cipher.h cipher-chachapoly.h chacha.h poly1305.h cipher-aesctr.h rijndael.h compat.h log.h atomicio.h misc.h ssherr.h | 30 | authfd.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h xmalloc.h ssh.h sshbuf.h sshkey.h authfd.h cipher.h cipher-chachapoly.h chacha.h poly1305.h cipher-aesctr.h rijndael.h compat.h log.h atomicio.h misc.h ssherr.h |
31 | authfile.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h cipher.h cipher-chachapoly.h chacha.h poly1305.h cipher-aesctr.h rijndael.h ssh.h log.h authfile.h misc.h atomicio.h sshkey.h sshbuf.h ssherr.h krl.h | 31 | authfile.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h cipher.h cipher-chachapoly.h chacha.h poly1305.h cipher-aesctr.h rijndael.h ssh.h log.h authfile.h misc.h atomicio.h sshkey.h sshbuf.h ssherr.h krl.h |
32 | bitmap.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h bitmap.h | 32 | bitmap.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h bitmap.h |
33 | canohost.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h xmalloc.h packet.h openbsd-compat/sys-queue.h dispatch.h opacket.h log.h canohost.h misc.h | 33 | canohost.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h xmalloc.h packet.h openbsd-compat/sys-queue.h dispatch.h log.h canohost.h misc.h |
34 | chacha.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h chacha.h | 34 | chacha.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h chacha.h |
35 | channels.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h openbsd-compat/sys-queue.h xmalloc.h ssh.h ssh2.h ssherr.h sshbuf.h packet.h dispatch.h opacket.h log.h misc.h channels.h compat.h canohost.h sshkey.h authfd.h pathnames.h match.h | 35 | channels.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h openbsd-compat/sys-queue.h xmalloc.h ssh.h ssh2.h ssherr.h sshbuf.h packet.h dispatch.h log.h misc.h channels.h compat.h canohost.h sshkey.h authfd.h pathnames.h match.h |
36 | cipher-aes.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h openbsd-compat/openssl-compat.h | 36 | cipher-aes.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h openbsd-compat/openssl-compat.h |
37 | cipher-aesctr.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h cipher-aesctr.h rijndael.h | 37 | cipher-aesctr.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h cipher-aesctr.h rijndael.h |
38 | cipher-chachapoly.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h log.h sshbuf.h ssherr.h cipher-chachapoly.h chacha.h poly1305.h | 38 | cipher-chachapoly.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h log.h sshbuf.h ssherr.h cipher-chachapoly.h chacha.h poly1305.h |
39 | cipher-ctr.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h | 39 | cipher-ctr.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h |
40 | cipher.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h cipher.h cipher-chachapoly.h chacha.h poly1305.h cipher-aesctr.h rijndael.h misc.h sshbuf.h ssherr.h digest.h openbsd-compat/openssl-compat.h | 40 | cipher.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h cipher.h cipher-chachapoly.h chacha.h poly1305.h cipher-aesctr.h rijndael.h misc.h sshbuf.h ssherr.h digest.h openbsd-compat/openssl-compat.h |
41 | cleanup.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h log.h | 41 | cleanup.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h log.h |
42 | clientloop.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h openbsd-compat/sys-queue.h xmalloc.h ssh.h ssh2.h packet.h dispatch.h opacket.h sshbuf.h compat.h channels.h sshkey.h cipher.h cipher-chachapoly.h chacha.h poly1305.h cipher-aesctr.h rijndael.h kex.h mac.h | 42 | clientloop.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h openbsd-compat/sys-queue.h xmalloc.h ssh.h ssh2.h packet.h dispatch.h sshbuf.h compat.h channels.h sshkey.h cipher.h cipher-chachapoly.h chacha.h poly1305.h cipher-aesctr.h rijndael.h kex.h mac.h crypto_api.h |
43 | clientloop.o: myproposal.h log.h misc.h readconf.h clientloop.h sshconnect.h authfd.h atomicio.h sshpty.h match.h msg.h ssherr.h hostfile.h | 43 | clientloop.o: myproposal.h log.h misc.h readconf.h clientloop.h sshconnect.h authfd.h atomicio.h sshpty.h match.h msg.h ssherr.h hostfile.h |
44 | compat.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h xmalloc.h packet.h openbsd-compat/sys-queue.h dispatch.h opacket.h compat.h log.h match.h kex.h mac.h | 44 | compat.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h xmalloc.h packet.h openbsd-compat/sys-queue.h dispatch.h compat.h log.h match.h kex.h mac.h crypto_api.h |
45 | crc32.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h crc32.h | 45 | crc32.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h crc32.h |
46 | dh.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h | 46 | dh.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h |
47 | digest-libc.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h ssherr.h sshbuf.h digest.h | 47 | digest-libc.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h ssherr.h sshbuf.h digest.h |
48 | digest-openssl.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h | 48 | digest-openssl.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h |
49 | dispatch.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h ssh2.h log.h dispatch.h packet.h openbsd-compat/sys-queue.h opacket.h compat.h ssherr.h | 49 | dispatch.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h ssh2.h log.h dispatch.h packet.h openbsd-compat/sys-queue.h compat.h ssherr.h |
50 | dns.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h xmalloc.h sshkey.h ssherr.h dns.h log.h digest.h | 50 | dns.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h xmalloc.h sshkey.h ssherr.h dns.h log.h digest.h |
51 | ed25519.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h crypto_api.h ge25519.h fe25519.h sc25519.h | 51 | ed25519.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h crypto_api.h ge25519.h fe25519.h sc25519.h |
52 | entropy.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h | 52 | entropy.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h |
@@ -60,23 +60,19 @@ gss-serv.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-comp | |||
60 | hash.o: crypto_api.h includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h digest.h log.h ssherr.h | 60 | hash.o: crypto_api.h includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h digest.h log.h ssherr.h |
61 | hmac.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h sshbuf.h digest.h hmac.h | 61 | hmac.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h sshbuf.h digest.h hmac.h |
62 | hostfile.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h xmalloc.h match.h sshkey.h hostfile.h log.h misc.h ssherr.h digest.h hmac.h | 62 | hostfile.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h xmalloc.h match.h sshkey.h hostfile.h log.h misc.h ssherr.h digest.h hmac.h |
63 | kex.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h ssh2.h packet.h openbsd-compat/sys-queue.h dispatch.h opacket.h compat.h cipher.h cipher-chachapoly.h chacha.h poly1305.h cipher-aesctr.h rijndael.h sshkey.h kex.h mac.h log.h match.h misc.h monitor.h ssherr.h sshbuf.h | 63 | kex.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h ssh.h ssh2.h atomicio.h version.h packet.h openbsd-compat/sys-queue.h dispatch.h compat.h cipher.h cipher-chachapoly.h chacha.h poly1305.h cipher-aesctr.h rijndael.h sshkey.h kex.h mac.h crypto_api.h log.h match.h |
64 | kex.o: digest.h | 64 | kex.o: misc.h monitor.h ssherr.h sshbuf.h digest.h |
65 | kexc25519.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h sshbuf.h ssh2.h sshkey.h cipher.h cipher-chachapoly.h chacha.h poly1305.h cipher-aesctr.h rijndael.h kex.h mac.h log.h digest.h ssherr.h | 65 | kexc25519.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h sshkey.h kex.h mac.h crypto_api.h sshbuf.h digest.h ssherr.h ssh2.h |
66 | kexc25519c.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h sshkey.h cipher.h cipher-chachapoly.h chacha.h poly1305.h cipher-aesctr.h rijndael.h kex.h mac.h log.h packet.h openbsd-compat/sys-queue.h dispatch.h opacket.h ssh2.h sshbuf.h digest.h ssherr.h | ||
67 | kexc25519s.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h sshkey.h cipher.h cipher-chachapoly.h chacha.h poly1305.h cipher-aesctr.h rijndael.h digest.h kex.h mac.h log.h packet.h openbsd-compat/sys-queue.h dispatch.h opacket.h ssh2.h sshbuf.h ssherr.h | ||
68 | kexdh.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h | 66 | kexdh.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h |
69 | kexdhc.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h | ||
70 | kexdhs.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h | ||
71 | kexecdh.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h | 67 | kexecdh.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h |
72 | kexecdhc.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h | 68 | kexgen.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h sshkey.h kex.h mac.h crypto_api.h log.h packet.h openbsd-compat/sys-queue.h dispatch.h ssh2.h sshbuf.h digest.h ssherr.h |
73 | kexecdhs.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h | ||
74 | kexgex.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h | 69 | kexgex.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h |
75 | kexgexc.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h | 70 | kexgexc.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h |
76 | kexgexs.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h | 71 | kexgexs.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h |
72 | kexsntrup4591761x25519.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h sshkey.h kex.h mac.h crypto_api.h sshbuf.h digest.h ssherr.h | ||
77 | krl.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h ./openbsd-compat/sys-tree.h openbsd-compat/sys-queue.h sshbuf.h ssherr.h sshkey.h authfile.h misc.h log.h digest.h bitmap.h krl.h | 73 | krl.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h ./openbsd-compat/sys-tree.h openbsd-compat/sys-queue.h sshbuf.h ssherr.h sshkey.h authfile.h misc.h log.h digest.h bitmap.h krl.h |
78 | log.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h log.h | 74 | log.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h log.h |
79 | loginrec.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h xmalloc.h sshkey.h hostfile.h ssh.h loginrec.h log.h atomicio.h packet.h openbsd-compat/sys-queue.h dispatch.h opacket.h canohost.h auth.h auth-pam.h audit.h sshbuf.h ssherr.h | 75 | loginrec.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h xmalloc.h sshkey.h hostfile.h ssh.h loginrec.h log.h atomicio.h packet.h openbsd-compat/sys-queue.h dispatch.h canohost.h auth.h auth-pam.h audit.h sshbuf.h ssherr.h |
80 | logintest.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h loginrec.h | 76 | logintest.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h loginrec.h |
81 | mac.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h digest.h hmac.h umac.h mac.h misc.h ssherr.h sshbuf.h openbsd-compat/openssl-compat.h | 77 | mac.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h digest.h hmac.h umac.h mac.h misc.h ssherr.h sshbuf.h openbsd-compat/openssl-compat.h |
82 | match.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h xmalloc.h match.h misc.h | 78 | match.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h xmalloc.h match.h misc.h |
@@ -84,24 +80,23 @@ md5crypt.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-comp | |||
84 | misc.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h xmalloc.h misc.h log.h ssh.h sshbuf.h ssherr.h | 80 | misc.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h xmalloc.h misc.h log.h ssh.h sshbuf.h ssherr.h |
85 | moduli.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h | 81 | moduli.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h |
86 | monitor.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h ./openbsd-compat/sys-tree.h openbsd-compat/sys-queue.h openbsd-compat/openssl-compat.h atomicio.h xmalloc.h ssh.h sshkey.h sshbuf.h hostfile.h auth.h auth-pam.h audit.h loginrec.h cipher.h cipher-chachapoly.h | 82 | monitor.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h ./openbsd-compat/sys-tree.h openbsd-compat/sys-queue.h openbsd-compat/openssl-compat.h atomicio.h xmalloc.h ssh.h sshkey.h sshbuf.h hostfile.h auth.h auth-pam.h audit.h loginrec.h cipher.h cipher-chachapoly.h |
87 | monitor.o: chacha.h poly1305.h cipher-aesctr.h rijndael.h kex.h mac.h dh.h packet.h dispatch.h opacket.h auth-options.h sshpty.h channels.h session.h sshlogin.h canohost.h log.h misc.h servconf.h monitor.h monitor_wrap.h monitor_fdpass.h compat.h ssh2.h authfd.h match.h ssherr.h | 83 | monitor.o: chacha.h poly1305.h cipher-aesctr.h rijndael.h kex.h mac.h crypto_api.h dh.h packet.h dispatch.h auth-options.h sshpty.h channels.h session.h sshlogin.h canohost.h log.h misc.h servconf.h monitor.h monitor_wrap.h monitor_fdpass.h compat.h ssh2.h authfd.h match.h ssherr.h |
88 | monitor_fdpass.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h log.h monitor_fdpass.h | 84 | monitor_fdpass.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h log.h monitor_fdpass.h |
89 | monitor_wrap.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h openbsd-compat/sys-queue.h xmalloc.h ssh.h sshbuf.h sshkey.h cipher.h cipher-chachapoly.h chacha.h poly1305.h cipher-aesctr.h rijndael.h kex.h mac.h hostfile.h auth.h auth-pam.h audit.h loginrec.h | 85 | monitor_wrap.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h openbsd-compat/sys-queue.h xmalloc.h ssh.h sshbuf.h sshkey.h cipher.h cipher-chachapoly.h chacha.h poly1305.h cipher-aesctr.h rijndael.h kex.h mac.h crypto_api.h hostfile.h auth.h auth-pam.h audit.h loginrec.h |
90 | monitor_wrap.o: auth-options.h packet.h dispatch.h opacket.h log.h monitor.h monitor_wrap.h atomicio.h monitor_fdpass.h misc.h channels.h session.h servconf.h ssherr.h | 86 | monitor_wrap.o: auth-options.h packet.h dispatch.h log.h monitor.h monitor_wrap.h atomicio.h monitor_fdpass.h misc.h channels.h session.h servconf.h ssherr.h |
91 | msg.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h sshbuf.h ssherr.h log.h atomicio.h msg.h misc.h | 87 | msg.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h sshbuf.h ssherr.h log.h atomicio.h msg.h misc.h |
92 | mux.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h openbsd-compat/sys-queue.h xmalloc.h log.h ssh.h ssh2.h pathnames.h misc.h match.h sshbuf.h channels.h msg.h packet.h dispatch.h opacket.h monitor_fdpass.h sshpty.h sshkey.h readconf.h clientloop.h ssherr.h | 88 | mux.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h openbsd-compat/sys-queue.h xmalloc.h log.h ssh.h ssh2.h pathnames.h misc.h match.h sshbuf.h channels.h msg.h packet.h dispatch.h monitor_fdpass.h sshpty.h sshkey.h readconf.h clientloop.h ssherr.h |
93 | nchan.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h openbsd-compat/sys-queue.h ssh2.h sshbuf.h ssherr.h packet.h dispatch.h opacket.h channels.h compat.h log.h | 89 | nchan.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h openbsd-compat/sys-queue.h ssh2.h sshbuf.h ssherr.h packet.h dispatch.h channels.h compat.h log.h |
94 | opacket.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h ssherr.h packet.h openbsd-compat/sys-queue.h dispatch.h opacket.h log.h | 90 | packet.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h openbsd-compat/sys-queue.h xmalloc.h crc32.h compat.h ssh2.h cipher.h cipher-chachapoly.h chacha.h poly1305.h cipher-aesctr.h rijndael.h sshkey.h kex.h mac.h crypto_api.h digest.h log.h canohost.h misc.h channels.h |
95 | packet.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h openbsd-compat/sys-queue.h xmalloc.h crc32.h compat.h ssh2.h cipher.h cipher-chachapoly.h chacha.h poly1305.h cipher-aesctr.h rijndael.h sshkey.h kex.h mac.h digest.h log.h canohost.h misc.h channels.h ssh.h | 91 | packet.o: ssh.h packet.h dispatch.h ssherr.h sshbuf.h |
96 | packet.o: packet.h dispatch.h opacket.h ssherr.h sshbuf.h | ||
97 | platform-misc.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h | 92 | platform-misc.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h |
98 | platform-pledge.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h | 93 | platform-pledge.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h |
99 | platform-tracing.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h log.h | 94 | platform-tracing.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h log.h |
100 | platform.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h log.h misc.h servconf.h sshkey.h hostfile.h auth.h auth-pam.h audit.h loginrec.h | 95 | platform.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h log.h misc.h servconf.h sshkey.h hostfile.h auth.h auth-pam.h audit.h loginrec.h |
101 | poly1305.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h poly1305.h | 96 | poly1305.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h poly1305.h |
102 | progressmeter.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h progressmeter.h atomicio.h misc.h | 97 | progressmeter.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h progressmeter.h atomicio.h misc.h utf8.h |
103 | readconf.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h openbsd-compat/glob.h xmalloc.h ssh.h ssherr.h compat.h cipher.h cipher-chachapoly.h chacha.h poly1305.h cipher-aesctr.h rijndael.h pathnames.h log.h sshkey.h misc.h readconf.h match.h kex.h mac.h uidswap.h | 98 | readconf.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h openbsd-compat/glob.h xmalloc.h ssh.h ssherr.h compat.h cipher.h cipher-chachapoly.h chacha.h poly1305.h cipher-aesctr.h rijndael.h pathnames.h log.h sshkey.h misc.h readconf.h match.h kex.h mac.h crypto_api.h |
104 | readconf.o: myproposal.h digest.h | 99 | readconf.o: uidswap.h myproposal.h digest.h |
105 | readpass.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h xmalloc.h misc.h pathnames.h log.h ssh.h uidswap.h | 100 | readpass.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h xmalloc.h misc.h pathnames.h log.h ssh.h uidswap.h |
106 | rijndael.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h rijndael.h | 101 | rijndael.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h rijndael.h |
107 | sandbox-capsicum.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h | 102 | sandbox-capsicum.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h |
@@ -114,25 +109,26 @@ sandbox-solaris.o: includes.h config.h defines.h platform.h openbsd-compat/openb | |||
114 | sandbox-systrace.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h | 109 | sandbox-systrace.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h |
115 | sc25519.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h sc25519.h crypto_api.h | 110 | sc25519.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h sc25519.h crypto_api.h |
116 | scp.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h xmalloc.h ssh.h atomicio.h pathnames.h log.h misc.h progressmeter.h utf8.h | 111 | scp.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h xmalloc.h ssh.h atomicio.h pathnames.h log.h misc.h progressmeter.h utf8.h |
117 | servconf.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h openbsd-compat/sys-queue.h xmalloc.h ssh.h log.h sshbuf.h misc.h servconf.h compat.h pathnames.h cipher.h cipher-chachapoly.h chacha.h poly1305.h cipher-aesctr.h rijndael.h sshkey.h kex.h mac.h match.h channels.h | 112 | servconf.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h openbsd-compat/sys-queue.h xmalloc.h ssh.h log.h sshbuf.h misc.h servconf.h compat.h pathnames.h cipher.h cipher-chachapoly.h chacha.h poly1305.h cipher-aesctr.h rijndael.h sshkey.h kex.h mac.h crypto_api.h |
118 | servconf.o: groupaccess.h canohost.h packet.h dispatch.h opacket.h ssherr.h hostfile.h auth.h auth-pam.h audit.h loginrec.h myproposal.h digest.h | 113 | servconf.o: match.h channels.h groupaccess.h canohost.h packet.h dispatch.h ssherr.h hostfile.h auth.h auth-pam.h audit.h loginrec.h myproposal.h digest.h |
119 | serverloop.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h openbsd-compat/sys-queue.h xmalloc.h packet.h dispatch.h opacket.h sshbuf.h log.h misc.h servconf.h canohost.h sshpty.h channels.h compat.h ssh2.h sshkey.h cipher.h cipher-chachapoly.h chacha.h poly1305.h | 114 | serverloop.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h openbsd-compat/sys-queue.h xmalloc.h packet.h dispatch.h sshbuf.h log.h misc.h servconf.h canohost.h sshpty.h channels.h compat.h ssh2.h sshkey.h cipher.h cipher-chachapoly.h chacha.h poly1305.h cipher-aesctr.h |
120 | serverloop.o: cipher-aesctr.h rijndael.h kex.h mac.h hostfile.h auth.h auth-pam.h audit.h loginrec.h session.h auth-options.h serverloop.h ssherr.h | 115 | serverloop.o: rijndael.h kex.h mac.h crypto_api.h hostfile.h auth.h auth-pam.h audit.h loginrec.h session.h auth-options.h serverloop.h ssherr.h |
121 | session.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h openbsd-compat/sys-queue.h xmalloc.h ssh.h ssh2.h sshpty.h packet.h dispatch.h opacket.h sshbuf.h ssherr.h match.h uidswap.h compat.h channels.h sshkey.h cipher.h cipher-chachapoly.h chacha.h poly1305.h | 116 | session.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h openbsd-compat/sys-queue.h xmalloc.h ssh.h ssh2.h sshpty.h packet.h dispatch.h sshbuf.h ssherr.h match.h uidswap.h compat.h channels.h sshkey.h cipher.h cipher-chachapoly.h chacha.h poly1305.h cipher-aesctr.h |
122 | session.o: cipher-aesctr.h rijndael.h hostfile.h auth.h auth-pam.h audit.h loginrec.h auth-options.h authfd.h pathnames.h log.h misc.h servconf.h sshlogin.h serverloop.h canohost.h session.h kex.h mac.h monitor_wrap.h sftp.h atomicio.h | 117 | session.o: rijndael.h hostfile.h auth.h auth-pam.h audit.h loginrec.h auth-options.h authfd.h pathnames.h log.h misc.h servconf.h sshlogin.h serverloop.h canohost.h session.h kex.h mac.h crypto_api.h monitor_wrap.h sftp.h atomicio.h |
123 | sftp-client.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h openbsd-compat/sys-queue.h xmalloc.h ssherr.h sshbuf.h log.h atomicio.h progressmeter.h misc.h utf8.h sftp.h sftp-common.h sftp-client.h openbsd-compat/glob.h | 118 | sftp-client.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h openbsd-compat/sys-queue.h xmalloc.h ssherr.h sshbuf.h log.h atomicio.h progressmeter.h misc.h utf8.h sftp.h sftp-common.h sftp-client.h openbsd-compat/glob.h |
124 | sftp-common.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h xmalloc.h ssherr.h sshbuf.h log.h misc.h sftp.h sftp-common.h | 119 | sftp-common.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h xmalloc.h ssherr.h sshbuf.h log.h misc.h sftp.h sftp-common.h |
125 | sftp-glob.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h xmalloc.h sftp.h sftp-common.h sftp-client.h openbsd-compat/glob.h | 120 | sftp-glob.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h xmalloc.h sftp.h sftp-common.h sftp-client.h openbsd-compat/glob.h |
126 | sftp-server-main.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h log.h sftp.h misc.h xmalloc.h | 121 | sftp-server-main.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h log.h sftp.h misc.h xmalloc.h |
127 | sftp-server.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h xmalloc.h sshbuf.h ssherr.h log.h misc.h match.h uidswap.h sftp.h sftp-common.h | 122 | sftp-server.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h xmalloc.h sshbuf.h ssherr.h log.h misc.h match.h uidswap.h sftp.h sftp-common.h |
128 | sftp.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h xmalloc.h log.h pathnames.h misc.h utf8.h sftp.h ssherr.h sshbuf.h sftp-common.h sftp-client.h openbsd-compat/glob.h | 123 | sftp.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h xmalloc.h log.h pathnames.h misc.h utf8.h sftp.h ssherr.h sshbuf.h sftp-common.h sftp-client.h openbsd-compat/glob.h |
124 | sntrup4591761.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h crypto_api.h | ||
129 | ssh-add.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h openbsd-compat/openssl-compat.h xmalloc.h ssh.h log.h sshkey.h sshbuf.h authfd.h authfile.h pathnames.h misc.h ssherr.h digest.h | 125 | ssh-add.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h openbsd-compat/openssl-compat.h xmalloc.h ssh.h log.h sshkey.h sshbuf.h authfd.h authfile.h pathnames.h misc.h ssherr.h digest.h |
130 | ssh-agent.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h openbsd-compat/sys-queue.h xmalloc.h ssh.h sshbuf.h sshkey.h authfd.h compat.h log.h misc.h digest.h ssherr.h match.h | 126 | ssh-agent.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h openbsd-compat/sys-queue.h xmalloc.h ssh.h sshbuf.h sshkey.h authfd.h compat.h log.h misc.h digest.h ssherr.h match.h |
131 | ssh-dss.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h | 127 | ssh-dss.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h |
132 | ssh-ecdsa.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h | 128 | ssh-ecdsa.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h |
133 | ssh-ed25519.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h crypto_api.h log.h sshbuf.h sshkey.h ssherr.h ssh.h | 129 | ssh-ed25519.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h crypto_api.h log.h sshbuf.h sshkey.h ssherr.h ssh.h |
134 | ssh-keygen.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h xmalloc.h sshkey.h authfile.h uuencode.h sshbuf.h pathnames.h log.h misc.h match.h hostfile.h dns.h ssh.h ssh2.h ssherr.h ssh-pkcs11.h atomicio.h krl.h digest.h utf8.h authfd.h | 130 | ssh-keygen.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h xmalloc.h sshkey.h authfile.h uuencode.h sshbuf.h pathnames.h log.h misc.h match.h hostfile.h dns.h ssh.h ssh2.h ssherr.h ssh-pkcs11.h atomicio.h krl.h digest.h utf8.h authfd.h |
135 | ssh-keyscan.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h openbsd-compat/sys-queue.h xmalloc.h ssh.h sshbuf.h sshkey.h cipher.h cipher-chachapoly.h chacha.h poly1305.h cipher-aesctr.h rijndael.h kex.h mac.h compat.h myproposal.h packet.h dispatch.h opacket.h log.h | 131 | ssh-keyscan.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h openbsd-compat/sys-queue.h xmalloc.h ssh.h sshbuf.h sshkey.h cipher.h cipher-chachapoly.h chacha.h poly1305.h cipher-aesctr.h rijndael.h kex.h mac.h crypto_api.h compat.h myproposal.h packet.h dispatch.h log.h |
136 | ssh-keyscan.o: atomicio.h misc.h hostfile.h ssherr.h ssh_api.h ssh2.h dns.h | 132 | ssh-keyscan.o: atomicio.h misc.h hostfile.h ssherr.h ssh_api.h ssh2.h dns.h |
137 | ssh-keysign.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h xmalloc.h log.h sshkey.h ssh.h ssh2.h misc.h sshbuf.h authfile.h msg.h canohost.h pathnames.h readconf.h uidswap.h ssherr.h | 133 | ssh-keysign.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h xmalloc.h log.h sshkey.h ssh.h ssh2.h misc.h sshbuf.h authfile.h msg.h canohost.h pathnames.h readconf.h uidswap.h ssherr.h |
138 | ssh-pkcs11-client.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h | 134 | ssh-pkcs11-client.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h |
@@ -140,27 +136,27 @@ ssh-pkcs11-helper.o: includes.h config.h defines.h platform.h openbsd-compat/ope | |||
140 | ssh-pkcs11.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h | 136 | ssh-pkcs11.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h |
141 | ssh-rsa.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h | 137 | ssh-rsa.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h |
142 | ssh-xmss.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h | 138 | ssh-xmss.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h |
143 | ssh.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h openbsd-compat/openssl-compat.h openbsd-compat/sys-queue.h xmalloc.h ssh.h ssh2.h canohost.h compat.h cipher.h cipher-chachapoly.h chacha.h poly1305.h cipher-aesctr.h rijndael.h digest.h packet.h dispatch.h opacket.h | 139 | ssh.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h openbsd-compat/openssl-compat.h openbsd-compat/sys-queue.h xmalloc.h ssh.h ssh2.h canohost.h compat.h cipher.h cipher-chachapoly.h chacha.h poly1305.h cipher-aesctr.h rijndael.h digest.h packet.h dispatch.h sshbuf.h |
144 | ssh.o: sshbuf.h channels.h sshkey.h authfd.h authfile.h pathnames.h clientloop.h log.h misc.h readconf.h sshconnect.h kex.h mac.h sshpty.h match.h msg.h version.h ssherr.h myproposal.h utf8.h | 140 | ssh.o: channels.h sshkey.h authfd.h authfile.h pathnames.h clientloop.h log.h misc.h readconf.h sshconnect.h kex.h mac.h crypto_api.h sshpty.h match.h msg.h version.h ssherr.h myproposal.h utf8.h |
145 | ssh_api.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h ssh_api.h openbsd-compat/sys-queue.h cipher.h cipher-chachapoly.h chacha.h poly1305.h cipher-aesctr.h rijndael.h sshkey.h kex.h mac.h ssh.h ssh2.h packet.h dispatch.h opacket.h compat.h log.h authfile.h misc.h | 141 | ssh_api.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h ssh_api.h openbsd-compat/sys-queue.h cipher.h cipher-chachapoly.h chacha.h poly1305.h cipher-aesctr.h rijndael.h sshkey.h kex.h mac.h crypto_api.h ssh.h ssh2.h packet.h dispatch.h compat.h log.h authfile.h misc.h |
146 | ssh_api.o: version.h myproposal.h ssherr.h sshbuf.h | 142 | ssh_api.o: version.h myproposal.h ssherr.h sshbuf.h openbsd-compat/openssl-compat.h |
147 | sshbuf-getput-basic.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h ssherr.h sshbuf.h | 143 | sshbuf-getput-basic.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h ssherr.h sshbuf.h |
148 | sshbuf-getput-crypto.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h ssherr.h sshbuf.h | 144 | sshbuf-getput-crypto.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h ssherr.h sshbuf.h |
149 | sshbuf-misc.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h ssherr.h sshbuf.h | 145 | sshbuf-misc.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h ssherr.h sshbuf.h |
150 | sshbuf.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h ssherr.h sshbuf.h misc.h | 146 | sshbuf.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h ssherr.h sshbuf.h misc.h |
151 | sshconnect.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h xmalloc.h hostfile.h ssh.h sshbuf.h packet.h openbsd-compat/sys-queue.h dispatch.h opacket.h compat.h sshkey.h sshconnect.h log.h misc.h readconf.h atomicio.h dns.h monitor_fdpass.h ssh2.h version.h authfile.h | 147 | sshconnect.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h xmalloc.h hostfile.h ssh.h sshbuf.h packet.h openbsd-compat/sys-queue.h dispatch.h compat.h sshkey.h sshconnect.h log.h misc.h readconf.h atomicio.h dns.h monitor_fdpass.h ssh2.h version.h authfile.h ssherr.h |
152 | sshconnect.o: ssherr.h authfd.h | 148 | sshconnect.o: authfd.h kex.h mac.h crypto_api.h |
153 | sshconnect2.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h openbsd-compat/sys-queue.h xmalloc.h ssh.h ssh2.h sshbuf.h packet.h dispatch.h opacket.h compat.h cipher.h cipher-chachapoly.h chacha.h poly1305.h cipher-aesctr.h rijndael.h sshkey.h kex.h mac.h myproposal.h | 149 | sshconnect2.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h openbsd-compat/sys-queue.h xmalloc.h ssh.h ssh2.h sshbuf.h packet.h dispatch.h compat.h cipher.h cipher-chachapoly.h chacha.h poly1305.h cipher-aesctr.h rijndael.h sshkey.h kex.h mac.h crypto_api.h myproposal.h |
154 | sshconnect2.o: sshconnect.h authfile.h dh.h authfd.h log.h misc.h readconf.h match.h canohost.h msg.h pathnames.h uidswap.h hostfile.h ssherr.h utf8.h | 150 | sshconnect2.o: sshconnect.h authfile.h dh.h authfd.h log.h misc.h readconf.h match.h canohost.h msg.h pathnames.h uidswap.h hostfile.h ssherr.h utf8.h |
155 | sshd.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h ./openbsd-compat/sys-tree.h openbsd-compat/sys-queue.h xmalloc.h ssh.h ssh2.h sshpty.h packet.h dispatch.h opacket.h log.h sshbuf.h misc.h match.h servconf.h uidswap.h compat.h cipher.h cipher-chachapoly.h chacha.h | 151 | sshd.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h ./openbsd-compat/sys-tree.h openbsd-compat/sys-queue.h xmalloc.h ssh.h ssh2.h sshpty.h packet.h dispatch.h log.h sshbuf.h misc.h match.h servconf.h uidswap.h compat.h cipher.h cipher-chachapoly.h chacha.h poly1305.h |
156 | sshd.o: poly1305.h cipher-aesctr.h rijndael.h digest.h sshkey.h kex.h mac.h myproposal.h authfile.h pathnames.h atomicio.h canohost.h hostfile.h auth.h auth-pam.h audit.h loginrec.h authfd.h msg.h channels.h session.h monitor.h monitor_wrap.h ssh-sandbox.h auth-options.h version.h ssherr.h | 152 | sshd.o: cipher-aesctr.h rijndael.h digest.h sshkey.h kex.h mac.h crypto_api.h myproposal.h authfile.h pathnames.h atomicio.h canohost.h hostfile.h auth.h auth-pam.h audit.h loginrec.h authfd.h msg.h channels.h session.h monitor.h monitor_wrap.h ssh-sandbox.h auth-options.h version.h ssherr.h |
157 | ssherr.o: ssherr.h | 153 | ssherr.o: ssherr.h |
158 | sshkey-xmss.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h | 154 | sshkey-xmss.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h |
159 | sshkey.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h crypto_api.h ssh2.h ssherr.h misc.h sshbuf.h cipher.h cipher-chachapoly.h chacha.h poly1305.h cipher-aesctr.h rijndael.h digest.h sshkey.h sshkey-xmss.h match.h xmss_fast.h openbsd-compat/openssl-compat.h | 155 | sshkey.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h crypto_api.h ssh2.h ssherr.h misc.h sshbuf.h cipher.h cipher-chachapoly.h chacha.h poly1305.h cipher-aesctr.h rijndael.h digest.h sshkey.h sshkey-xmss.h match.h xmss_fast.h openbsd-compat/openssl-compat.h |
160 | sshlogin.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h sshlogin.h ssherr.h loginrec.h log.h sshbuf.h misc.h servconf.h | 156 | sshlogin.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h sshlogin.h ssherr.h loginrec.h log.h sshbuf.h misc.h servconf.h |
161 | sshpty.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h sshpty.h log.h misc.h | 157 | sshpty.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h sshpty.h log.h misc.h |
162 | sshtty.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h sshpty.h | 158 | sshtty.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h sshpty.h |
163 | ttymodes.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h packet.h openbsd-compat/sys-queue.h dispatch.h opacket.h log.h compat.h sshbuf.h ssherr.h ttymodes.h | 159 | ttymodes.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h packet.h openbsd-compat/sys-queue.h dispatch.h log.h compat.h sshbuf.h ssherr.h ttymodes.h |
164 | uidswap.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h log.h uidswap.h xmalloc.h | 160 | uidswap.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h log.h uidswap.h xmalloc.h |
165 | umac.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h xmalloc.h umac.h misc.h rijndael.h | 161 | umac.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h xmalloc.h umac.h misc.h rijndael.h |
166 | umac128.o: umac.c includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h xmalloc.h umac.h misc.h rijndael.h | 162 | umac128.o: umac.c includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/rmd160.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/getopt.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h xmalloc.h umac.h misc.h rijndael.h |
diff --git a/.gitignore b/.gitignore index 650eb3c3c..e7e02ea72 100644 --- a/.gitignore +++ b/.gitignore | |||
@@ -26,3 +26,4 @@ ssh-keysign | |||
26 | ssh-pkcs11-helper | 26 | ssh-pkcs11-helper |
27 | sshd | 27 | sshd |
28 | !regress/misc/fuzz-harness/Makefile | 28 | !regress/misc/fuzz-harness/Makefile |
29 | tags | ||
diff --git a/.skipped-commit-ids b/.skipped-commit-ids index f1b3b7640..01d447a49 100644 --- a/.skipped-commit-ids +++ b/.skipped-commit-ids | |||
@@ -5,6 +5,7 @@ fa728823ba21c4b45212750e1d3a4b2086fd1a62 more Makefile refactoring | |||
5 | 1de0e85522051eb2ffa00437e1885e9d7b3e0c2e moduli update | 5 | 1de0e85522051eb2ffa00437e1885e9d7b3e0c2e moduli update |
6 | 814b2f670df75759e1581ecef530980b2b3d7e0f remove redundant make defs | 6 | 814b2f670df75759e1581ecef530980b2b3d7e0f remove redundant make defs |
7 | 04431e8e7872f49a2129bf080a6b73c19d576d40 moduli update | 7 | 04431e8e7872f49a2129bf080a6b73c19d576d40 moduli update |
8 | c07772f58028fda683ee6abd41c73da3ff70d403 moduli update | ||
8 | 9 | ||
9 | Old upstream tree: | 10 | Old upstream tree: |
10 | 11 | ||
@@ -1,3 +1,2602 @@ | |||
1 | commit fd0fa130ecf06d7d092932adcd5d77f1549bfc8d | ||
2 | Author: Damien Miller <djm@mindrot.org> | ||
3 | Date: Thu Apr 18 08:52:57 2019 +1000 | ||
4 | |||
5 | makedepend | ||
6 | |||
7 | commit 5de397a876b587ba05a9169237deffdc71f273b0 | ||
8 | Author: Damien Miller <djm@mindrot.org> | ||
9 | Date: Fri Apr 5 11:29:51 2019 -0700 | ||
10 | |||
11 | second thoughts: leave README in place | ||
12 | |||
13 | A number of contrib/* files refer to the existing README so let's leave | ||
14 | it in place for release and add the new markdown version in parallel. | ||
15 | |||
16 | I'll get rid of README after release. | ||
17 | |||
18 | commit 5d3127d9274519b25ed10e320f45045ba8d7f3be | ||
19 | Author: Damien Miller <djm@mindrot.org> | ||
20 | Date: Fri Apr 5 11:29:31 2019 -0700 | ||
21 | |||
22 | Revert "rewrite README" | ||
23 | |||
24 | This reverts commit 9444d82678cb7781820da4d1c23b3c2b9fb1e12f. | ||
25 | |||
26 | commit 9444d82678cb7781820da4d1c23b3c2b9fb1e12f | ||
27 | Author: Damien Miller <djm@mindrot.org> | ||
28 | Date: Fri Apr 5 11:21:48 2019 -0700 | ||
29 | |||
30 | rewrite README | ||
31 | |||
32 | Include basic build instructions and comments on commonly-used build- | ||
33 | time flags, links to the manual pages and other resources. | ||
34 | |||
35 | Now in Markdown format for better viewing on github, etc. | ||
36 | |||
37 | commit a924de0c4908902433813ba205bee1446bd1a157 | ||
38 | Author: Damien Miller <djm@mindrot.org> | ||
39 | Date: Fri Apr 5 03:41:52 2019 +1100 | ||
40 | |||
41 | update versions | ||
42 | |||
43 | commit 312dcee739bca5d6878c536537b2a8a497314b75 | ||
44 | Author: djm@openbsd.org <djm@openbsd.org> | ||
45 | Date: Wed Apr 3 15:48:45 2019 +0000 | ||
46 | |||
47 | upstream: openssh-8.0 | ||
48 | |||
49 | OpenBSD-Commit-ID: 5aafdf218679dab982fea20771afd643be9a127b | ||
50 | |||
51 | commit 885bc114692046d55e2a170b932bdc0092fa3456 | ||
52 | Author: Damien Miller <djm@mindrot.org> | ||
53 | Date: Thu Apr 4 02:47:40 2019 +1100 | ||
54 | |||
55 | session: Do not use removed API | ||
56 | |||
57 | from Jakub Jelen | ||
58 | |||
59 | commit 9d7b2882b0c9a5e9bf8312ce4075bf178e2b98be | ||
60 | Author: djm@openbsd.org <djm@openbsd.org> | ||
61 | Date: Fri Mar 29 11:31:40 2019 +0000 | ||
62 | |||
63 | upstream: when logging/fataling on error, include a bit more detail | ||
64 | |||
65 | than just the function name and the error message | ||
66 | |||
67 | OpenBSD-Commit-ID: dd72d7eba2215fcb89be516c378f633ea5bcca9f | ||
68 | |||
69 | commit 79a87d32783d6c9db40af8f35e091d9d30365ae7 | ||
70 | Author: Darren Tucker <dtucker@dtucker.net> | ||
71 | Date: Wed Apr 3 06:27:45 2019 +1100 | ||
72 | |||
73 | Remove "struct ssh" from sys_auth_record_login. | ||
74 | |||
75 | It's not needed, and is not available from the call site in loginrec.c | ||
76 | Should only affect AIX, spotted by Kevin Brott. | ||
77 | |||
78 | commit 138c0d52cdc90f9895333b82fc57d81cce7a3d90 | ||
79 | Author: Darren Tucker <dtucker@dtucker.net> | ||
80 | Date: Tue Apr 2 18:21:35 2019 +1100 | ||
81 | |||
82 | Adapt custom_failed_login to new prototype. | ||
83 | |||
84 | Spotted by Kevin Brott. | ||
85 | |||
86 | commit a0ca4009ab2f0b1007ec8ab6864dbf9b760a8ed5 | ||
87 | Author: Darren Tucker <dtucker@dtucker.net> | ||
88 | Date: Mon Apr 1 20:07:23 2019 +1100 | ||
89 | |||
90 | Add includes.h for compat layer. | ||
91 | |||
92 | Should fix build on AIX 7.2. | ||
93 | |||
94 | commit 00991151786ce9b1d577bdad1f83a81d19c8236d | ||
95 | Author: Tim Rice <tim@multitalents.net> | ||
96 | Date: Sun Mar 31 22:14:22 2019 -0700 | ||
97 | |||
98 | Stop USL compilers for erroring with "integral constant expression expected" | ||
99 | |||
100 | commit 43f47ebbdd4037b569c23b8f4f7981f53b567f1d | ||
101 | Author: Tim Rice <tim@multitalents.net> | ||
102 | Date: Sun Mar 31 19:22:19 2019 -0700 | ||
103 | |||
104 | Only use O_NOFOLLOW in fchownat and fchmodat if defined | ||
105 | |||
106 | commit 342d6e51589b184c337cccfc4c788b60ff8b3765 | ||
107 | Author: Jakub Jelen <jjelen@redhat.com> | ||
108 | Date: Fri Mar 29 12:29:41 2019 +0100 | ||
109 | |||
110 | Adjust softhsm2 path on Fedora Linux for regress | ||
111 | |||
112 | The SoftHSM lives in Fedora in /usr/lib64/pkcs11/libsofthsm2.so | ||
113 | |||
114 | commit f5abb05f8c7358dacdcb866fe2813f6d8efd5830 | ||
115 | Author: Darren Tucker <dtucker@dtucker.net> | ||
116 | Date: Thu Mar 28 09:26:14 2019 +1100 | ||
117 | |||
118 | Only use O_NOFOLLOW in utimensat if defined. | ||
119 | |||
120 | Fixes build on systems that don't have it (Solaris <=9) Found by | ||
121 | Tom G. Christensen. | ||
122 | |||
123 | commit 786cd4c1837fdc3fe7b4befe54a3f37db7df8715 | ||
124 | Author: Corinna Vinschen <vinschen@redhat.com> | ||
125 | Date: Wed Mar 27 18:18:21 2019 +0100 | ||
126 | |||
127 | drop old Cygwin considerations | ||
128 | |||
129 | - Cygwin supports non-DOS characters in filenames | ||
130 | - Cygwin does not support Windows XP anymore | ||
131 | |||
132 | Signed-off-by: Corinna Vinschen <vinschen@redhat.com> | ||
133 | |||
134 | commit 21da87f439b48a85b951ef1518fe85ac0273e719 | ||
135 | Author: djm@openbsd.org <djm@openbsd.org> | ||
136 | Date: Wed Mar 27 09:29:14 2019 +0000 | ||
137 | |||
138 | upstream: fix interaction between ClientAliveInterval and RekeyLimit | ||
139 | |||
140 | that could cause connection to close incorrectly; Report and patch from Jakub | ||
141 | Jelen in bz#2757; ok dtucker@ markus@ | ||
142 | |||
143 | OpenBSD-Commit-ID: 17229a8a65bd8e6c2080318ec2b7a61e1aede3fb | ||
144 | |||
145 | commit 4f0019a9afdb4a94d83b75e82dbbbe0cbe826c56 | ||
146 | Author: djm@openbsd.org <djm@openbsd.org> | ||
147 | Date: Mon Mar 25 22:34:52 2019 +0000 | ||
148 | |||
149 | upstream: Fix authentication failures when "AuthenticationMethods | ||
150 | |||
151 | any" in a Match block overrides a more restrictive global default. | ||
152 | |||
153 | Spotted by jmc@, ok markus@ | ||
154 | |||
155 | OpenBSD-Commit-ID: a90a4fe2ab81d0eeeb8fdfc21af81f7eabda6666 | ||
156 | |||
157 | commit d6e5def308610f194c0ec3ef97a34a3e9630e190 | ||
158 | Author: djm@openbsd.org <djm@openbsd.org> | ||
159 | Date: Mon Mar 25 22:33:44 2019 +0000 | ||
160 | |||
161 | upstream: whitespace | ||
162 | |||
163 | OpenBSD-Commit-ID: 106e853ae8a477e8385bc53824d3884a8159db07 | ||
164 | |||
165 | commit 26e0cef07b04479537c971dec898741df1290fe5 | ||
166 | Author: dtucker@openbsd.org <dtucker@openbsd.org> | ||
167 | Date: Mon Mar 25 16:19:44 2019 +0000 | ||
168 | |||
169 | upstream: Expand comment to document rationale for default key | ||
170 | |||
171 | sizes. "seems worthwhile" deraadt. | ||
172 | |||
173 | OpenBSD-Commit-ID: 72e5c0983d7da1fb72f191870f36cb58263a2456 | ||
174 | |||
175 | commit f47269ea67eb4ff87454bf0d2a03e55532786482 | ||
176 | Author: dtucker@openbsd.org <dtucker@openbsd.org> | ||
177 | Date: Mon Mar 25 15:49:00 2019 +0000 | ||
178 | |||
179 | upstream: Increase the default RSA key size to 3072 bits. Based on | ||
180 | |||
181 | the estimates from NIST Special Publication 800-57, 3k bits provides security | ||
182 | equivalent to 128 bits which is the smallest symmetric cipher we enable by | ||
183 | default. ok markus@ deraadt@ | ||
184 | |||
185 | OpenBSD-Commit-ID: 461dd32ebe808f88f4fc3ec74749b0e6bef2276b | ||
186 | |||
187 | commit 62949c5b37af28d8490d94866e314a76be683a5e | ||
188 | Author: jmc@openbsd.org <jmc@openbsd.org> | ||
189 | Date: Fri Mar 22 20:58:34 2019 +0000 | ||
190 | |||
191 | upstream: full stop in the wrong place; | ||
192 | |||
193 | OpenBSD-Commit-ID: 478a0567c83553a2aebf95d0f1bd67ac1b1253e4 | ||
194 | |||
195 | commit 1b1332b5bb975d759a50b37f0e8bc8cfb07a0bb0 | ||
196 | Author: jmc@openbsd.org <jmc@openbsd.org> | ||
197 | Date: Sat Mar 16 19:14:21 2019 +0000 | ||
198 | |||
199 | upstream: benno helped me clean up the tcp forwarding section; | ||
200 | |||
201 | OpenBSD-Commit-ID: d4bec27edefde636fb632b7f0b7c656b9c7b7f08 | ||
202 | |||
203 | commit 2aee9a49f668092ac5c9d34e904ef7a9722e541d | ||
204 | Author: markus@openbsd.org <markus@openbsd.org> | ||
205 | Date: Fri Mar 8 17:24:43 2019 +0000 | ||
206 | |||
207 | upstream: fix use-after-free in ssh-pkcs11; found by hshoexer w/AFL | ||
208 | |||
209 | OpenBSD-Commit-ID: febce81cca72b71f70513fbee4ff52ca050f675c | ||
210 | |||
211 | commit 9edbd7821e6837e98e7e95546cede804dac96754 | ||
212 | Author: Darren Tucker <dtucker@dtucker.net> | ||
213 | Date: Thu Mar 14 10:17:28 2019 +1100 | ||
214 | |||
215 | Fix build when configured --without-openssl. | ||
216 | |||
217 | ok djm@ | ||
218 | |||
219 | commit 825ab32f0d04a791e9d19d743c61ff8ed9b4d8e5 | ||
220 | Author: Darren Tucker <dtucker@dtucker.net> | ||
221 | Date: Thu Mar 14 08:51:17 2019 +1100 | ||
222 | |||
223 | On Cygwin run sshd as SYSTEM where possible. | ||
224 | |||
225 | Seteuid now creates user token using S4U. We don't create a token | ||
226 | from scratch anymore, so we don't need the "Create a process token" | ||
227 | privilege. The service can run under SYSTEM again... | ||
228 | |||
229 | ...unless Cygwin is running on Windows Vista or Windows 7 in the | ||
230 | WOW64 32 bit emulation layer. It turns out that WOW64 on these systems | ||
231 | didn't implement MsV1_0 S4U Logon so we still need the fallback | ||
232 | to NtCreateToken for these systems. | ||
233 | |||
234 | Signed-off-by: Corinna Vinschen <vinschen@redhat.com> | ||
235 | |||
236 | commit a212107bfdf4d3e870ab7a443e4d906e5b9578c3 | ||
237 | Author: Darren Tucker <dtucker@dtucker.net> | ||
238 | Date: Wed Mar 13 10:49:16 2019 +1100 | ||
239 | |||
240 | Replace alloca with xcalloc. | ||
241 | |||
242 | The latter checks for memory exhaustion and integer overflow and may be | ||
243 | at a less predictable place. Sanity check by vinschen at redhat.com, ok | ||
244 | djm@ | ||
245 | |||
246 | commit daa7505aadca68ba1a2c70cbdfce423208eb91ee | ||
247 | Author: Darren Tucker <dtucker@dtucker.net> | ||
248 | Date: Tue Mar 12 09:19:19 2019 +1100 | ||
249 | |||
250 | Use Cygwin-specific matching only for users+groups. | ||
251 | |||
252 | Patch from vinschen at redhat.com, updated a little by me. | ||
253 | |||
254 | commit fd10cf027b56f9aaa80c9e3844626a05066589a4 | ||
255 | Author: dtucker@openbsd.org <dtucker@openbsd.org> | ||
256 | Date: Wed Mar 6 22:14:23 2019 +0000 | ||
257 | |||
258 | upstream: Move checks for lists of users or groups into their own | ||
259 | |||
260 | function. This is a no-op on OpenBSD but will make things easier in | ||
261 | -portable, eg on systems where these checks should be case-insensitive. ok | ||
262 | djm@ | ||
263 | |||
264 | OpenBSD-Commit-ID: 8bc9c8d98670e23f8eaaaefe29c1f98e7ba0487e | ||
265 | |||
266 | commit ab5fee8eb6a011002fd9e32b1597f02aa8804a25 | ||
267 | Author: dtucker@openbsd.org <dtucker@openbsd.org> | ||
268 | Date: Wed Mar 6 21:06:59 2019 +0000 | ||
269 | |||
270 | upstream: Reset last-seen time when sending a keepalive. Prevents | ||
271 | |||
272 | sending two keepalives successively and prematurely terminating connection | ||
273 | when ClientAliveCount=1. While there, collapse two similar tests into one. | ||
274 | ok markus@ | ||
275 | |||
276 | OpenBSD-Commit-ID: 043670d201dfe222537a2a4bed16ce1087de5ddd | ||
277 | |||
278 | commit c13b74530f9f1d9df7aeae012004b31b2de4438e | ||
279 | Author: naddy@openbsd.org <naddy@openbsd.org> | ||
280 | Date: Tue Mar 5 16:17:12 2019 +0000 | ||
281 | |||
282 | upstream: PKCS#11 support is no longer limited to RSA; ok benno@ | ||
283 | |||
284 | kn@ | ||
285 | |||
286 | OpenBSD-Commit-ID: 1a9bec64d530aed5f434a960e7515a3e80cbc826 | ||
287 | |||
288 | commit e9552d6043db7cd170ac6ba1b4d2c7a5eb2c3201 | ||
289 | Author: djm@openbsd.org <djm@openbsd.org> | ||
290 | Date: Fri Mar 1 03:29:32 2019 +0000 | ||
291 | |||
292 | upstream: in ssh_set_newkeys(), mention the direction that we're | ||
293 | |||
294 | keying in debug messages. Previously it would be difficult to tell which | ||
295 | direction it was talking about | ||
296 | |||
297 | OpenBSD-Commit-ID: c2b71bfcceb2a7389b9d0b497fb2122a406a522d | ||
298 | |||
299 | commit 76a24b3fa193a9ca3e47a8779d497cb06500798b | ||
300 | Author: djm@openbsd.org <djm@openbsd.org> | ||
301 | Date: Fri Mar 1 02:32:39 2019 +0000 | ||
302 | |||
303 | upstream: Fix two race conditions in sshd relating to SIGHUP: | ||
304 | |||
305 | 1. Recently-forked child processes will briefly remain listening to | ||
306 | listen_socks. If the main server sshd process completes its restart | ||
307 | via execv() before these sockets are closed by the child processes | ||
308 | then it can fail to listen at the desired addresses/ports and/or | ||
309 | fail to restart. | ||
310 | |||
311 | 2. When a SIGHUP is received, there may be forked child processes that | ||
312 | are awaiting their reexecution state. If the main server sshd | ||
313 | process restarts before passing this state, these child processes | ||
314 | will yield errors and use a fallback path of reading the current | ||
315 | sshd_config from the filesystem rather than use the one that sshd | ||
316 | was started with. | ||
317 | |||
318 | To fix both of these cases, we reuse the startup_pipes that are shared | ||
319 | between the main server sshd and forked children. Previously this was | ||
320 | used solely to implement tracking of pre-auth child processes for | ||
321 | MaxStartups, but this extends the messaging over these pipes to include | ||
322 | a child->parent message that the parent process is safe to restart. This | ||
323 | message is sent from the child after it has completed its preliminaries: | ||
324 | closing listen_socks and receiving its reexec state. | ||
325 | |||
326 | bz#2953, reported by Michal Koutný; ok markus@ dtucker@ | ||
327 | |||
328 | OpenBSD-Commit-ID: 7df09eacfa3ce13e9a7b1e9f17276ecc924d65ab | ||
329 | |||
330 | commit de817e9dfab99473017d28cdf69e60397d00ea21 | ||
331 | Author: djm@openbsd.org <djm@openbsd.org> | ||
332 | Date: Fri Mar 1 02:16:47 2019 +0000 | ||
333 | |||
334 | upstream: mention PKCS11Provide=none, reword a little and remove | ||
335 | |||
336 | mention of RSA keys only (since we support ECDSA now and might support others | ||
337 | in the future). Inspired by Jakub Jelen via bz#2974 | ||
338 | |||
339 | OpenBSD-Commit-ID: a92e3686561bf624ccc64ab320c96c9e9a263aa5 | ||
340 | |||
341 | commit 95a8058c1a90a27acbb91392ba206854abc85226 | ||
342 | Author: djm@openbsd.org <djm@openbsd.org> | ||
343 | Date: Fri Mar 1 02:08:50 2019 +0000 | ||
344 | |||
345 | upstream: let PKCS11Provider=none do what users expect | ||
346 | |||
347 | print PKCS11Provider instead of obsolete SmartcardDevice in config dump. | ||
348 | |||
349 | bz#2974 ok dtucker@ | ||
350 | |||
351 | OpenBSD-Commit-ID: c303d6f0230a33aa2dd92dc9b68843d56a64f846 | ||
352 | |||
353 | commit 8e7bac35aa576d2fd7560836da83733e864ce649 | ||
354 | Author: markus@openbsd.org <markus@openbsd.org> | ||
355 | Date: Wed Feb 27 19:37:01 2019 +0000 | ||
356 | |||
357 | upstream: dup stdout/in for proxycommand=-, otherwise stdout might | ||
358 | |||
359 | be redirected to /dev/null; ok djm@ | ||
360 | |||
361 | OpenBSD-Commit-ID: 97dfce4c47ed4055042de8ebde85b7d88793e595 | ||
362 | |||
363 | commit 9b61130fbd95d196bce81ebeca94a4cb7c0d5ba0 | ||
364 | Author: djm@openbsd.org <djm@openbsd.org> | ||
365 | Date: Sat Feb 23 08:20:43 2019 +0000 | ||
366 | |||
367 | upstream: openssh-7.9 accidentally reused the server's algorithm lists | ||
368 | |||
369 | in the client for KEX, ciphers and MACs. The ciphers and MACs were identical | ||
370 | between the client and server, but the error accidentially disabled the | ||
371 | diffie-hellman-group-exchange-sha1 KEX method. | ||
372 | |||
373 | This fixes the client code to use the correct method list, but | ||
374 | because nobody complained, it also disables the | ||
375 | diffie-hellman-group-exchange-sha1 KEX method. | ||
376 | |||
377 | Reported by nuxi AT vault24.org via bz#2697; ok dtucker | ||
378 | |||
379 | OpenBSD-Commit-ID: e30c33a23c10fd536fefa120e86af1842e33fd57 | ||
380 | |||
381 | commit 37638c752041d591371900df820f070037878a2d | ||
382 | Author: Corinna Vinschen <vinschen@redhat.com> | ||
383 | Date: Wed Feb 20 13:41:25 2019 +0100 | ||
384 | |||
385 | Cygwin: implement case-insensitive Unicode user and group name matching | ||
386 | |||
387 | The previous revert enabled case-insensitive user names again. This | ||
388 | patch implements the case-insensitive user and group name matching. | ||
389 | To allow Unicode chars, implement the matcher using wchar_t chars in | ||
390 | Cygwin-specific code. Keep the generic code changes as small as possible. | ||
391 | Cygwin: implement case-insensitive Unicode user and group name matching | ||
392 | |||
393 | Signed-off-by: Corinna Vinschen <vinschen@redhat.com> | ||
394 | |||
395 | commit bed1d43698807a07bb4ddb93a46b0bd84b9970b3 | ||
396 | Author: Darren Tucker <dtucker@dtucker.net> | ||
397 | Date: Fri Feb 22 15:21:21 2019 +1100 | ||
398 | |||
399 | Revert unintended parts of previous commit. | ||
400 | |||
401 | commit f02afa350afac1b2f2d1413259a27a4ba1e2ca24 | ||
402 | Author: Corinna Vinschen <vinschen@redhat.com> | ||
403 | Date: Wed Feb 20 13:41:24 2019 +0100 | ||
404 | |||
405 | Revert "[auth.c] On Cygwin, refuse usernames that have differences in case" | ||
406 | |||
407 | This reverts commit acc9b29486dfd649dfda474e5c1a03b317449f1c. | ||
408 | |||
409 | Signed-off-by: Corinna Vinschen <vinschen@redhat.com> | ||
410 | |||
411 | commit 4c55b674835478eb80a1a7aeae588aa654e2a433 | ||
412 | Author: Corinna Vinschen <vinschen@redhat.com> | ||
413 | Date: Sat Feb 16 14:13:43 2019 +0100 | ||
414 | |||
415 | Add tags to .gitignore | ||
416 | |||
417 | Signed-off-by: Corinna Vinschen <vinschen@redhat.com> | ||
418 | |||
419 | commit 625b62634c33eaef4b80d07529954fe5c6435fe5 | ||
420 | Author: djm@openbsd.org <djm@openbsd.org> | ||
421 | Date: Fri Feb 22 03:37:11 2019 +0000 | ||
422 | |||
423 | upstream: perform removal of agent-forwarding directory in forward | ||
424 | |||
425 | setup error path with user's privileged. This is a no-op as this code always | ||
426 | runs with user privilege now that we no longer support running sshd with | ||
427 | privilege separation disabled, but as long as the privsep skeleton is there | ||
428 | we should follow the rules. | ||
429 | MIME-Version: 1.0 | ||
430 | Content-Type: text/plain; charset=UTF-8 | ||
431 | Content-Transfer-Encoding: 8bit | ||
432 | |||
433 | bz#2969 with patch from Erik Sjölund | ||
434 | |||
435 | OpenBSD-Commit-ID: 2b708401a5a8d6133c865d7698d9852210dca846 | ||
436 | |||
437 | commit d9ecfaba0b2f1887d20e4368230632e709ca83be | ||
438 | Author: jmc@openbsd.org <jmc@openbsd.org> | ||
439 | Date: Mon Feb 18 07:02:34 2019 +0000 | ||
440 | |||
441 | upstream: sync the description of ~/.ssh/config with djm's updated | ||
442 | |||
443 | description in ssh.1; issue pointed out by andreas kahari | ||
444 | |||
445 | ok dtucker djm | ||
446 | |||
447 | OpenBSD-Commit-ID: 1b01ef0ae2c6328165150badae317ec92e52b01c | ||
448 | |||
449 | commit 38e83e4f219c752ebb1560633b73f06f0392018b | ||
450 | Author: djm@openbsd.org <djm@openbsd.org> | ||
451 | Date: Tue Feb 12 23:53:10 2019 +0000 | ||
452 | |||
453 | upstream: fix regression in r1.302 reported by naddy@ - only the first | ||
454 | |||
455 | public key from the agent was being attempted for use. | ||
456 | |||
457 | OpenBSD-Commit-ID: 07116aea521a04888718b2157f1ca723b2f46c8d | ||
458 | |||
459 | commit 5c68ea8da790d711e6dd5f4c30d089c54032c59a | ||
460 | Author: djm@openbsd.org <djm@openbsd.org> | ||
461 | Date: Mon Feb 11 09:44:42 2019 +0000 | ||
462 | |||
463 | upstream: cleanup GSSAPI authentication context after completion of the | ||
464 | |||
465 | authmethod. Move function-static GSSAPI state to the client Authctxt | ||
466 | structure. Make static a bunch of functions that aren't used outside this | ||
467 | file. | ||
468 | |||
469 | Based on patch from Markus Schmidt <markus@blueflash.cc>; ok markus@ | ||
470 | |||
471 | OpenBSD-Commit-ID: 497fb792c0ddb4f1ba631b6eed526861f115dbe5 | ||
472 | |||
473 | commit a8c807f1956f81a92a758d3d0237d0ff06d0be5d | ||
474 | Author: benno@openbsd.org <benno@openbsd.org> | ||
475 | Date: Sun Feb 10 16:35:41 2019 +0000 | ||
476 | |||
477 | upstream: ssh-keygen -D pkcs11.so needs to initialize pkcs11 | ||
478 | |||
479 | interactive, so it can ask for the smartcards PIN. ok markus@ | ||
480 | |||
481 | OpenBSD-Commit-ID: 1be7ccf88f1876e0fc4d7c9b3f96019ac5655bab | ||
482 | |||
483 | commit 3d896c157c722bc47adca51a58dca859225b5874 | ||
484 | Author: djm@openbsd.org <djm@openbsd.org> | ||
485 | Date: Sun Feb 10 11:15:52 2019 +0000 | ||
486 | |||
487 | upstream: when checking that filenames sent by the server side | ||
488 | |||
489 | match what the client requested, be prepared to handle shell-style brace | ||
490 | alternations, e.g. "{foo,bar}". | ||
491 | |||
492 | "looks good to me" millert@ + in snaps for the last week courtesy | ||
493 | deraadt@ | ||
494 | |||
495 | OpenBSD-Commit-ID: 3b1ce7639b0b25b2248e3a30f561a548f6815f3e | ||
496 | |||
497 | commit 318e4f8548a4f5c0c913f61e27d4fc21ffb1eaae | ||
498 | Author: djm@openbsd.org <djm@openbsd.org> | ||
499 | Date: Sun Feb 10 11:10:57 2019 +0000 | ||
500 | |||
501 | upstream: syslog when connection is dropped for attempting to run a | ||
502 | |||
503 | command when ForceCommand=internal-sftp is in effect; bz2960; ok dtucker@ | ||
504 | |||
505 | OpenBSD-Commit-ID: 8c87fa66d7fc6c0fffa3a3c28e8ab5e8dde234b8 | ||
506 | |||
507 | commit 2ff2e19653b8c0798b8b8eff209651bdb1be2761 | ||
508 | Author: Damien Miller <djm@mindrot.org> | ||
509 | Date: Fri Feb 8 14:53:35 2019 +1100 | ||
510 | |||
511 | don't set $MAIL if UsePam=yes | ||
512 | |||
513 | PAM typically specifies the user environment if it's enabled, so don't | ||
514 | second guess. bz#2937; ok dtucker@ | ||
515 | |||
516 | commit 03e92dd27d491fe6d1a54e7b2f44ef1b0a916e52 | ||
517 | Author: Damien Miller <djm@mindrot.org> | ||
518 | Date: Fri Feb 8 14:50:36 2019 +1100 | ||
519 | |||
520 | use same close logic for stderr as stdout | ||
521 | |||
522 | Avoids sending SIGPIPE to child processes after their parent exits | ||
523 | if they attempt to write to stderr. | ||
524 | |||
525 | Analysis and patch from JD Paul; patch reworked by Jakub Jelen and | ||
526 | myself. bz#2071; ok dtucker@ | ||
527 | |||
528 | commit 8c53d409baeeaf652c0c125a9b164edc9dbeb6de | ||
529 | Author: dtucker@openbsd.org <dtucker@openbsd.org> | ||
530 | Date: Tue Feb 5 11:35:56 2019 +0000 | ||
531 | |||
532 | upstream: Adapt code in the non-USE_PIPES codepath to the new packet | ||
533 | |||
534 | API. This code is not normally reachable since USE_PIPES is always defined. | ||
535 | bz#2961, patch from adrian.fita at gmail com. | ||
536 | |||
537 | OpenBSD-Commit-ID: 8d8428d678d1d5eb4bb21921df34e8173e6d238a | ||
538 | |||
539 | commit 7a7fdca78de4b4774950be056099e579ef595414 | ||
540 | Author: djm@openbsd.org <djm@openbsd.org> | ||
541 | Date: Mon Feb 4 23:37:54 2019 +0000 | ||
542 | |||
543 | upstream: fix NULL-deref crash in PKCS#11 code when attempting | ||
544 | |||
545 | login to a token requiring a PIN; reported by benno@ fix mostly by markus@ | ||
546 | |||
547 | OpenBSD-Commit-ID: 438d0b114b1b4ba25a9869733db1921209aa9a31 | ||
548 | |||
549 | commit cac302a4b42a988e54d32eb254b29b79b648dbf5 | ||
550 | Author: dtucker@openbsd.org <dtucker@openbsd.org> | ||
551 | Date: Mon Feb 4 02:39:42 2019 +0000 | ||
552 | |||
553 | upstream: Remove obsolete "Protocol" from commented out examples. Patch | ||
554 | |||
555 | from samy.mahmoudi at gmail com. | ||
556 | |||
557 | OpenBSD-Commit-ID: 16aede33dae299725a03abdac5dcb4d73f5d0cbf | ||
558 | |||
559 | commit 483b3b638500fd498b4b529356e5a0e18cf76891 | ||
560 | Author: dtucker@openbsd.org <dtucker@openbsd.org> | ||
561 | Date: Fri Feb 1 03:52:23 2019 +0000 | ||
562 | |||
563 | upstream: Save connection timeout and restore for 2nd and | ||
564 | |||
565 | subsequent attempts, preventing them from having no timeout. bz#2918, ok | ||
566 | djm@ | ||
567 | |||
568 | OpenBSD-Commit-ID: 4977f1d0521d9b6bba0c9a20d3d226cefac48292 | ||
569 | |||
570 | commit 5f004620fdc1b2108139300ee12f4014530fb559 | ||
571 | Author: markus@openbsd.org <markus@openbsd.org> | ||
572 | Date: Wed Jan 30 19:51:15 2019 +0000 | ||
573 | |||
574 | upstream: Add authors for public domain sntrup4591761 code; | ||
575 | |||
576 | confirmed by Daniel J. Bernstein | ||
577 | |||
578 | OpenBSD-Commit-ID: b4621f22b8b8ef13e063c852af5e54dbbfa413c1 | ||
579 | |||
580 | commit 2c21b75a7be6ebdcbceaebb43157c48dbb36f3d8 | ||
581 | Author: jmc@openbsd.org <jmc@openbsd.org> | ||
582 | Date: Sun Jan 27 07:14:11 2019 +0000 | ||
583 | |||
584 | upstream: add -T to usage(); | ||
585 | |||
586 | OpenBSD-Commit-ID: a7ae14d9436c64e1bd05022329187ea3a0ce1899 | ||
587 | |||
588 | commit 19a0f0529d3df04118da829528cac7ceff380b24 | ||
589 | Author: dtucker@openbsd.org <dtucker@openbsd.org> | ||
590 | Date: Mon Jan 28 03:50:39 2019 +0000 | ||
591 | |||
592 | upstream: The test sshd_config in in $OBJ. | ||
593 | |||
594 | OpenBSD-Regress-ID: 1e5d908a286d8e7de3a15a0020c8857f3a7c9172 | ||
595 | |||
596 | commit 8fe25440206319d15b52d12b948a5dfdec14dca3 | ||
597 | Author: dtucker@openbsd.org <dtucker@openbsd.org> | ||
598 | Date: Mon Jan 28 03:28:10 2019 +0000 | ||
599 | |||
600 | upstream: Remove leftover debugging. | ||
601 | |||
602 | OpenBSD-Regress-ID: 3d86c3d4867e46b35af3fd2ac8c96df0ffdcfeb9 | ||
603 | |||
604 | commit e30d32364d12c351eec9e14be6c61116f9d6cc90 | ||
605 | Author: dtucker@openbsd.org <dtucker@openbsd.org> | ||
606 | Date: Mon Jan 28 00:12:36 2019 +0000 | ||
607 | |||
608 | upstream: Enable ssh-dss for the agent test. Disable it for the | ||
609 | |||
610 | certificate test. | ||
611 | |||
612 | OpenBSD-Regress-ID: 388c1e03e1def539d350f139b37d69f12334668d | ||
613 | |||
614 | commit ffdde469ed56249f5dc8af98da468dde35531398 | ||
615 | Author: dtucker@openbsd.org <dtucker@openbsd.org> | ||
616 | Date: Mon Jan 28 00:08:26 2019 +0000 | ||
617 | |||
618 | upstream: Count the number of key types instead of assuming there | ||
619 | |||
620 | are only two. | ||
621 | |||
622 | OpenBSD-Regress-ID: 0998702c41235782cf0beee396ec49b5056eaed9 | ||
623 | |||
624 | commit 1d05b4adcba08ab068466e5c08dee2f5417ec53a | ||
625 | Author: Corinna Vinschen <vinschen@redhat.com> | ||
626 | Date: Sat Jan 26 23:42:40 2019 +0100 | ||
627 | |||
628 | Cygwin: only tweak sshd_config file if it's new, drop creating sshd user | ||
629 | |||
630 | The sshd_config tweaks were executed even if the old file was | ||
631 | still in place. Fix that. Also disable sshd user creation. | ||
632 | It's not used on Cygwin. | ||
633 | |||
634 | commit 89843de0c4c733501f6b4f988098e6e06963df37 | ||
635 | Author: Corinna Vinschen <vinschen@redhat.com> | ||
636 | Date: Sat Jan 26 23:03:12 2019 +0100 | ||
637 | |||
638 | Cygwin: Change service name to cygsshd | ||
639 | |||
640 | Microsoft hijacked the sshd service name without asking. | ||
641 | |||
642 | commit 2a9b3a2ce411d16cda9c79ab713c55f65b0ec257 | ||
643 | Author: dtucker@openbsd.org <dtucker@openbsd.org> | ||
644 | Date: Sun Jan 27 06:30:53 2019 +0000 | ||
645 | |||
646 | upstream: Generate all key supported key types and enable for keyscan | ||
647 | |||
648 | test. | ||
649 | |||
650 | OpenBSD-Regress-ID: 72f72ff49946c61bc949e1692dd9e3d71370891b | ||
651 | |||
652 | commit 391ffc4b9d31fa1f4ad566499fef9176ff8a07dc | ||
653 | Author: djm@openbsd.org <djm@openbsd.org> | ||
654 | Date: Sat Jan 26 22:41:28 2019 +0000 | ||
655 | |||
656 | upstream: check in scp client that filenames sent during | ||
657 | |||
658 | remote->local directory copies satisfy the wildcard specified by the user. | ||
659 | |||
660 | This checking provides some protection against a malicious server | ||
661 | sending unexpected filenames, but it comes at a risk of rejecting wanted | ||
662 | files due to differences between client and server wildcard expansion rules. | ||
663 | |||
664 | For this reason, this also adds a new -T flag to disable the check. | ||
665 | |||
666 | reported by Harry Sintonen | ||
667 | fix approach suggested by markus@; | ||
668 | has been in snaps for ~1wk courtesy deraadt@ | ||
669 | |||
670 | OpenBSD-Commit-ID: 00f44b50d2be8e321973f3c6d014260f8f7a8eda | ||
671 | |||
672 | commit c2c18a39683db382a15b438632afab3f551d50ce | ||
673 | Author: djm@openbsd.org <djm@openbsd.org> | ||
674 | Date: Sat Jan 26 22:35:01 2019 +0000 | ||
675 | |||
676 | upstream: make ssh-keyscan return a non-zero exit status if it | ||
677 | |||
678 | finds no keys. bz#2903 | ||
679 | |||
680 | OpenBSD-Commit-ID: 89f1081fb81d950ebb48e6e73d21807b2723d488 | ||
681 | |||
682 | commit 05b9a466700b44d49492edc2aa415fc2e8913dfe | ||
683 | Author: dtucker@openbsd.org <dtucker@openbsd.org> | ||
684 | Date: Thu Jan 24 17:00:29 2019 +0000 | ||
685 | |||
686 | upstream: Accept the host key fingerprint as a synonym for "yes" | ||
687 | |||
688 | when accepting an unknown host key. This allows you to paste a fingerprint | ||
689 | obtained out of band into the yes/no prompt and have the client do the | ||
690 | comparison for you. ok markus@ djm@ | ||
691 | |||
692 | OpenBSD-Commit-ID: 3c47d10b9f43d3d345e044fd9ec09709583a2767 | ||
693 | |||
694 | commit bdc6c63c80b55bcbaa66b5fde31c1cb1d09a41eb | ||
695 | Author: dtucker@openbsd.org <dtucker@openbsd.org> | ||
696 | Date: Thu Jan 24 16:52:17 2019 +0000 | ||
697 | |||
698 | upstream: Have progressmeter force an update at the beginning and | ||
699 | |||
700 | end of each transfer. Fixes the problem recently introduces where very quick | ||
701 | transfers do not display the progressmeter at all. Spotted by naddy@ | ||
702 | |||
703 | OpenBSD-Commit-ID: 68dc46c259e8fdd4f5db3ec2a130f8e4590a7a9a | ||
704 | |||
705 | commit 258e6ca003e47f944688ad8b8de087b58a7d966c | ||
706 | Author: dtucker@openbsd.org <dtucker@openbsd.org> | ||
707 | Date: Thu Jan 24 02:42:23 2019 +0000 | ||
708 | |||
709 | upstream: Check for both EAGAIN and EWOULDBLOCK. This is a no-op | ||
710 | |||
711 | in OpenBSD (they are the same value) but makes things easier in -portable | ||
712 | where they may be distinct values. "sigh ok" deraadt@ | ||
713 | |||
714 | (ID sync only, portable already had this change). | ||
715 | |||
716 | OpenBSD-Commit-ID: 91f2bc7c0ecec905915ed59fa37feb9cc90e17d7 | ||
717 | |||
718 | commit 281ce042579b834cdc1e74314f1fb2eeb75d2612 | ||
719 | Author: dtucker@openbsd.org <dtucker@openbsd.org> | ||
720 | Date: Thu Jan 24 02:34:52 2019 +0000 | ||
721 | |||
722 | upstream: Always initialize 2nd arg to hpdelim2. It populates that | ||
723 | |||
724 | *ONLY IF* there's a delimiter. If there's not (the common case) it checked | ||
725 | uninitialized memory, which usually passed, but if not would cause spurious | ||
726 | failures when the uninitialized memory happens to contain "/". ok deraadt. | ||
727 | |||
728 | OpenBSD-Commit-ID: 4291611eaf2a53d4c92f4a57c7f267c9f944e0d3 | ||
729 | |||
730 | commit d05ea255678d9402beda4416cd0360f3e5dfe938 | ||
731 | Author: dtucker@openbsd.org <dtucker@openbsd.org> | ||
732 | Date: Wed Jan 23 21:50:56 2019 +0000 | ||
733 | |||
734 | upstream: Remove support for obsolete host/port syntax. | ||
735 | |||
736 | host/port was added in 2001 as an alternative to host:port syntax for | ||
737 | the benefit of IPv6 users. These days there are establised standards | ||
738 | for this like [::1]:22 and the slash syntax is easily mistaken for CIDR | ||
739 | notation, which OpenSSH now supports for some things. Remove the slash | ||
740 | notation from ListenAddress and PermitOpen. bz#2335, patch from jjelen | ||
741 | at redhat.com, ok markus@ | ||
742 | |||
743 | OpenBSD-Commit-ID: fae5f4e23c51a368d6b2d98376069ac2b10ad4b7 | ||
744 | |||
745 | commit 177d6c80c557a5e060cd343a0c116a2f1a7f43db | ||
746 | Author: dtucker@openbsd.org <dtucker@openbsd.org> | ||
747 | Date: Wed Jan 23 20:48:52 2019 +0000 | ||
748 | |||
749 | upstream: Remove duplicate word. bz#2958, patch from jjelen at | ||
750 | |||
751 | redhat.com | ||
752 | |||
753 | OpenBSD-Commit-ID: cca3965a8333f2b6aae48b79ec1d72f7a830dd2c | ||
754 | |||
755 | commit be3e6cba95dffe5fcf190c713525b48c837e7875 | ||
756 | Author: dtucker@openbsd.org <dtucker@openbsd.org> | ||
757 | Date: Wed Jan 23 09:49:00 2019 +0000 | ||
758 | |||
759 | upstream: Remove 3 as a guess for possible generator during moduli | ||
760 | |||
761 | generation. It's not mentioned in RFC4419 and it's not possible for | ||
762 | Sophie-Germain primes greater than 5. bz#2330, from Christian Wittenhorst , | ||
763 | ok djm@ tb@ | ||
764 | |||
765 | OpenBSD-Commit-ID: 1467652e6802ad3333b0959282d8d49dfe22c8cd | ||
766 | |||
767 | commit 8976f1c4b2721c26e878151f52bdf346dfe2d54c | ||
768 | Author: dtucker@openbsd.org <dtucker@openbsd.org> | ||
769 | Date: Wed Jan 23 08:01:46 2019 +0000 | ||
770 | |||
771 | upstream: Sanitize scp filenames via snmprintf. To do this we move | ||
772 | |||
773 | the progressmeter formatting outside of signal handler context and have the | ||
774 | atomicio callback called for EINTR too. bz#2434 with contributions from djm | ||
775 | and jjelen at redhat.com, ok djm@ | ||
776 | |||
777 | OpenBSD-Commit-ID: 1af61c1f70e4f3bd8ab140b9f1fa699481db57d8 | ||
778 | |||
779 | commit 6249451f381755f792c6b9e2c2f80cdc699c14e2 | ||
780 | Author: Darren Tucker <dtucker@dtucker.net> | ||
781 | Date: Thu Jan 24 10:00:20 2019 +1100 | ||
782 | |||
783 | For broken read/readv comparisons, poll(RW). | ||
784 | |||
785 | In the cases where we can't compare to read or readv function pointers | ||
786 | for some reason we currently ifdef out the poll() used to block while | ||
787 | waiting for reads or writes, falling back to busy waiting. This restores | ||
788 | the poll() in this case, but has it always check for read or write, | ||
789 | removing an inline ifdef in the process. | ||
790 | |||
791 | commit 5cb503dff4db251520e8bf7d23b9c97c06eee031 | ||
792 | Author: Darren Tucker <dtucker@dtucker.net> | ||
793 | Date: Thu Jan 24 09:55:16 2019 +1100 | ||
794 | |||
795 | Include unistd.h for strmode(). | ||
796 | |||
797 | commit f236ca2741f29b5c443c0b2db3aa9afb9ad9befe | ||
798 | Author: Darren Tucker <dtucker@dtucker.net> | ||
799 | Date: Thu Jan 24 09:50:58 2019 +1100 | ||
800 | |||
801 | Also undef SIMPLEQ_FOREACH_SAFE. | ||
802 | |||
803 | Prevents macro redefinition warning on at least NetBSD 6.1. | ||
804 | |||
805 | commit be063945e4e7d46b1734d973bf244c350fae172a | ||
806 | Author: djm@openbsd.org <djm@openbsd.org> | ||
807 | Date: Wed Jan 23 04:51:02 2019 +0000 | ||
808 | |||
809 | upstream: allow auto-incrementing certificate serial number for certs | ||
810 | |||
811 | signed in a single commandline. | ||
812 | |||
813 | OpenBSD-Commit-ID: 39881087641efb8cd83c7ec13b9c98280633f45b | ||
814 | |||
815 | commit 851f80328931975fe68f71af363c4537cb896da2 | ||
816 | Author: djm@openbsd.org <djm@openbsd.org> | ||
817 | Date: Wed Jan 23 04:16:22 2019 +0000 | ||
818 | |||
819 | upstream: move a bunch of global flag variables to main(); make the | ||
820 | |||
821 | rest static | ||
822 | |||
823 | OpenBSD-Commit-ID: fa431d92584e81fe99f95882f4c56b43fe3242dc | ||
824 | |||
825 | commit 2265402dc7d701a9aca9f8a7b7b0fd45b65c479f | ||
826 | Author: Damien Miller <djm@mindrot.org> | ||
827 | Date: Wed Jan 23 13:03:16 2019 +1100 | ||
828 | |||
829 | depend | ||
830 | |||
831 | commit 2c223878e53cc46def760add459f5f7c4fb43e35 | ||
832 | Author: djm@openbsd.org <djm@openbsd.org> | ||
833 | Date: Wed Jan 23 02:01:10 2019 +0000 | ||
834 | |||
835 | upstream: switch mainloop from select(2) to poll(2); ok deraadt@ | ||
836 | |||
837 | OpenBSD-Commit-ID: 37645419a330037d297f6f0adc3b3663e7ae7b2e | ||
838 | |||
839 | commit bb956eaa94757ad058ff43631c3a7d6c94d38c2f | ||
840 | Author: djm@openbsd.org <djm@openbsd.org> | ||
841 | Date: Wed Jan 23 00:30:41 2019 +0000 | ||
842 | |||
843 | upstream: pass most arguments to the KEX hash functions as sshbuf | ||
844 | |||
845 | rather than pointer+length; ok markus@ | ||
846 | |||
847 | OpenBSD-Commit-ID: ef0c89c52ccc89817a13a5205725148a28492bf7 | ||
848 | |||
849 | commit d691588b8e29622c66abf8932362b522cf7f4051 | ||
850 | Author: djm@openbsd.org <djm@openbsd.org> | ||
851 | Date: Tue Jan 22 22:58:50 2019 +0000 | ||
852 | |||
853 | upstream: backoff reading messages from active connections when the | ||
854 | |||
855 | input buffer is too full to read one, or if the output buffer is too full to | ||
856 | enqueue a response; feedback & ok dtucker@ | ||
857 | |||
858 | OpenBSD-Commit-ID: df3c5b6d57c968975875de40d8955cbfed05a6c8 | ||
859 | |||
860 | commit f99ef8de967949a1fc25a5c28263ea32736e5943 | ||
861 | Author: djm@openbsd.org <djm@openbsd.org> | ||
862 | Date: Tue Jan 22 20:48:01 2019 +0000 | ||
863 | |||
864 | upstream: add -m to usage(); reminded by jmc@ | ||
865 | |||
866 | OpenBSD-Commit-ID: bca476a5236e8f94210290b3e6a507af0434613e | ||
867 | |||
868 | commit 41923ce06ac149453debe472238e0cca7d5a2e5f | ||
869 | Author: djm@openbsd.org <djm@openbsd.org> | ||
870 | Date: Tue Jan 22 12:03:58 2019 +0000 | ||
871 | |||
872 | upstream: Correct some bugs in PKCS#11 token PIN handling at | ||
873 | |||
874 | initial login, the attempt at reading the PIN could be skipped in some cases | ||
875 | especially on devices with integrated PIN readers. | ||
876 | |||
877 | based on patch from Daniel Kucera in bz#2652; ok markus@ | ||
878 | |||
879 | OpenBSD-Commit-ID: fad70a61c60610afe8bb0db538c90e343e75e58e | ||
880 | |||
881 | commit 2162171ad517501ba511fa9f8191945d01857bb4 | ||
882 | Author: djm@openbsd.org <djm@openbsd.org> | ||
883 | Date: Tue Jan 22 12:00:50 2019 +0000 | ||
884 | |||
885 | upstream: Support keys that set the CKA_ALWAYS_AUTHENTICATE by | ||
886 | |||
887 | requring a fresh login after the C_SignInit operation. | ||
888 | |||
889 | based on patch from Jakub Jelen in bz#2638; ok markus | ||
890 | |||
891 | OpenBSD-Commit-ID: a76e66996ba7c0923b46b74d46d499b811786661 | ||
892 | |||
893 | commit 7a2cb18a215b2cb335da3dc99489c52a91f4925b | ||
894 | Author: djm@openbsd.org <djm@openbsd.org> | ||
895 | Date: Tue Jan 22 11:51:25 2019 +0000 | ||
896 | |||
897 | upstream: Mention that configuration for the destination host is | ||
898 | |||
899 | not applied to any ProxyJump/-J hosts. This has confused a few people... | ||
900 | |||
901 | OpenBSD-Commit-ID: 03f4f641df6ca236c1bfc69836a256b873db868b | ||
902 | |||
903 | commit ecd2f33cb772db4fa76776543599f1c1ab6f9fa0 | ||
904 | Author: djm@openbsd.org <djm@openbsd.org> | ||
905 | Date: Tue Jan 22 11:40:42 2019 +0000 | ||
906 | |||
907 | upstream: Include -m in the synopsis for a few more commands that | ||
908 | |||
909 | support it | ||
910 | |||
911 | Be more explicit in the description of -m about where it may be used | ||
912 | |||
913 | Prompted by Jakub Jelen in bz2904 | ||
914 | |||
915 | OpenBSD-Commit-ID: 3b398ac5e05d8a6356710d0ff114536c9d71046c | ||
916 | |||
917 | commit ff5d2cf4ca373bb4002eef395ed2cbe2ff0826c1 | ||
918 | Author: djm@openbsd.org <djm@openbsd.org> | ||
919 | Date: Tue Jan 22 11:26:16 2019 +0000 | ||
920 | |||
921 | upstream: print the full pubkey being attempted at loglevel >= | ||
922 | |||
923 | debug2; bz2939 | ||
924 | |||
925 | OpenBSD-Commit-ID: ac0fe5ca1429ebf4d460bad602adc96de0d7e290 | ||
926 | |||
927 | commit 180b520e2bab33b566b4b0cbac7d5f9940935011 | ||
928 | Author: djm@openbsd.org <djm@openbsd.org> | ||
929 | Date: Tue Jan 22 11:19:42 2019 +0000 | ||
930 | |||
931 | upstream: clarify: ssh-keygen -e only writes public keys, never | ||
932 | |||
933 | private | ||
934 | |||
935 | OpenBSD-Commit-ID: 7de7ff6d274d82febf9feb641e2415ffd6a30bfb | ||
936 | |||
937 | commit c45616a199c322ca674315de88e788f1d2596e26 | ||
938 | Author: djm@openbsd.org <djm@openbsd.org> | ||
939 | Date: Tue Jan 22 11:00:15 2019 +0000 | ||
940 | |||
941 | upstream: mention the new vs. old key formats in the introduction | ||
942 | |||
943 | and give some hints on how keys may be converted or written in the old | ||
944 | format. | ||
945 | |||
946 | OpenBSD-Commit-ID: 9c90a9f92eddc249e07fad1204d0e15c8aa13823 | ||
947 | |||
948 | commit fd8eb1383a34c986a00ef13d745ae9bd3ea21760 | ||
949 | Author: jmc@openbsd.org <jmc@openbsd.org> | ||
950 | Date: Tue Jan 22 06:58:31 2019 +0000 | ||
951 | |||
952 | upstream: tweak previous; | ||
953 | |||
954 | OpenBSD-Commit-ID: d2a80e389da8e7ed71978643d8cbaa8605b597a8 | ||
955 | |||
956 | commit 68e924d5473c00057f8532af57741d258c478223 | ||
957 | Author: tb@openbsd.org <tb@openbsd.org> | ||
958 | Date: Mon Jan 21 23:55:12 2019 +0000 | ||
959 | |||
960 | upstream: Forgot to add -J to the synopsis. | ||
961 | |||
962 | OpenBSD-Commit-ID: 26d95e409a0b72526526fc56ca1caca5cc3d3c5e | ||
963 | |||
964 | commit 622dedf1a884f2927a9121e672bd9955e12ba108 | ||
965 | Author: tb@openbsd.org <tb@openbsd.org> | ||
966 | Date: Mon Jan 21 22:50:42 2019 +0000 | ||
967 | |||
968 | upstream: Add a -J option as a shortcut for -o Proxyjump= to scp(1) | ||
969 | |||
970 | and sftp(1) to match ssh(1)'s interface. | ||
971 | |||
972 | ok djm | ||
973 | |||
974 | OpenBSD-Commit-ID: a75bc2d5f329caa7229a7e9fe346c4f41c2663fc | ||
975 | |||
976 | commit c882d74652800150d538e22c80dd2bd3cdd5fae2 | ||
977 | Author: Darren Tucker <dtucker@dtucker.net> | ||
978 | Date: Tue Jan 22 20:38:40 2019 +1100 | ||
979 | |||
980 | Allow building against OpenSSL dev (3.x) version. | ||
981 | |||
982 | commit d5520393572eb24aa0e001a1c61f49b104396e45 | ||
983 | Author: Damien Miller <djm@mindrot.org> | ||
984 | Date: Tue Jan 22 10:50:40 2019 +1100 | ||
985 | |||
986 | typo | ||
987 | |||
988 | commit 2de9cec54230998ab10161576f77860a2559ccb7 | ||
989 | Author: Damien Miller <djm@mindrot.org> | ||
990 | Date: Tue Jan 22 10:49:52 2019 +1100 | ||
991 | |||
992 | add missing header | ||
993 | |||
994 | commit 533cfb01e49a2a30354e191669dc3159e03e99a7 | ||
995 | Author: djm@openbsd.org <djm@openbsd.org> | ||
996 | Date: Mon Jan 21 22:18:24 2019 +0000 | ||
997 | |||
998 | upstream: switch sntrup implementation source from supercop to | ||
999 | |||
1000 | libpqcrypto; the latter is almost identical but doesn't rely on signed | ||
1001 | underflow to implement an optimised integer sort; from markus@ | ||
1002 | |||
1003 | OpenBSD-Commit-ID: cd09bbf0e0fcef1bedca69fdf7990dc360567cf8 | ||
1004 | |||
1005 | commit d50ab3cd6fb859888a26b4d4e333239b4f6bf573 | ||
1006 | Author: Damien Miller <djm@mindrot.org> | ||
1007 | Date: Tue Jan 22 00:02:23 2019 +1100 | ||
1008 | |||
1009 | new files need includes.h | ||
1010 | |||
1011 | commit c7670b091a7174760d619ef6738b4f26b2093301 | ||
1012 | Author: djm@openbsd.org <djm@openbsd.org> | ||
1013 | Date: Mon Jan 21 12:53:35 2019 +0000 | ||
1014 | |||
1015 | upstream: add "-v" flags to ssh-add and ssh-pkcs11-helper to turn up | ||
1016 | |||
1017 | debug verbosity. | ||
1018 | |||
1019 | Make ssh-agent turn on ssh-pkcs11-helper's verbosity when it is run | ||
1020 | in debug mode ("ssh-agent -d"), so we get to see errors from the | ||
1021 | PKCS#11 code. | ||
1022 | |||
1023 | ok markus@ | ||
1024 | |||
1025 | OpenBSD-Commit-ID: 0a798643c6a92a508df6bd121253ba1c8bee659d | ||
1026 | |||
1027 | commit 49d8c8e214d39acf752903566b105d06c565442a | ||
1028 | Author: djm@openbsd.org <djm@openbsd.org> | ||
1029 | Date: Mon Jan 21 12:50:12 2019 +0000 | ||
1030 | |||
1031 | upstream: adapt to changes in KEX APIs and file removals | ||
1032 | |||
1033 | OpenBSD-Regress-ID: 54d6857e7c58999c7a6d40942ab0fed3529f43ca | ||
1034 | |||
1035 | commit 35ecc53a83f8e8baab2e37549addfd05c73c30f1 | ||
1036 | Author: djm@openbsd.org <djm@openbsd.org> | ||
1037 | Date: Mon Jan 21 12:35:20 2019 +0000 | ||
1038 | |||
1039 | upstream: adapt to changes in KEX API and file removals | ||
1040 | |||
1041 | OpenBSD-Regress-ID: 92cad022d3b0d11e08f3e0055d6a14b8f994c0d7 | ||
1042 | |||
1043 | commit 7d69aae64c35868cc4f644583ab973113a79480e | ||
1044 | Author: djm@openbsd.org <djm@openbsd.org> | ||
1045 | Date: Mon Jan 21 12:29:35 2019 +0000 | ||
1046 | |||
1047 | upstream: adapt to bignum1 API removal and bignum2 API change | ||
1048 | |||
1049 | OpenBSD-Regress-ID: cea6ff270f3d560de86b355a87a2c95b55a5ca63 | ||
1050 | |||
1051 | commit beab553f0a9578ef9bffe28b2c779725e77b39ec | ||
1052 | Author: djm@openbsd.org <djm@openbsd.org> | ||
1053 | Date: Mon Jan 21 09:13:41 2019 +0000 | ||
1054 | |||
1055 | upstream: remove hack to use non-system libcrypto | ||
1056 | |||
1057 | OpenBSD-Regress-ID: ce72487327eee4dfae1ab0212a1f33871fe0809f | ||
1058 | |||
1059 | commit 4dc06bd57996f1a46b4c3bababe0d09bc89098f7 | ||
1060 | Author: Damien Miller <djm@mindrot.org> | ||
1061 | Date: Mon Jan 21 23:14:04 2019 +1100 | ||
1062 | |||
1063 | depend | ||
1064 | |||
1065 | commit 70edd73edc4df54e5eee50cd27c25427b34612f8 | ||
1066 | Author: djm@openbsd.org <djm@openbsd.org> | ||
1067 | Date: Mon Jan 21 12:08:13 2019 +0000 | ||
1068 | |||
1069 | upstream: fix reversed arguments to kex_load_hostkey(); manifested as | ||
1070 | |||
1071 | errors in cert-hostkey.sh regress failures. | ||
1072 | |||
1073 | OpenBSD-Commit-ID: 12dab63850b844f84d5a67e86d9e21a42fba93ba | ||
1074 | |||
1075 | commit f1185abbf0c9108e639297addc77f8757ee00eb3 | ||
1076 | Author: djm@openbsd.org <djm@openbsd.org> | ||
1077 | Date: Mon Jan 21 11:22:00 2019 +0000 | ||
1078 | |||
1079 | upstream: forgot to cvs add this file in previous series of commits; | ||
1080 | |||
1081 | grrr | ||
1082 | |||
1083 | OpenBSD-Commit-ID: bcff316c3e7da8fd15333e05d244442c3aaa66b0 | ||
1084 | |||
1085 | commit 7bef390b625bdc080f0fd4499ef03cef60fca4fa | ||
1086 | Author: djm@openbsd.org <djm@openbsd.org> | ||
1087 | Date: Mon Jan 21 10:44:21 2019 +0000 | ||
1088 | |||
1089 | upstream: nothing shall escape this purge | ||
1090 | |||
1091 | OpenBSD-Commit-ID: 4795b0ff142b45448f7e15f3c2f77a947191b217 | ||
1092 | |||
1093 | commit aaca72d6f1279b842066e07bff797019efeb2c23 | ||
1094 | Author: djm@openbsd.org <djm@openbsd.org> | ||
1095 | Date: Mon Jan 21 10:40:11 2019 +0000 | ||
1096 | |||
1097 | upstream: rename kex->kem_client_pub -> kex->client_pub now that | ||
1098 | |||
1099 | KEM has been renamed to kexgen | ||
1100 | |||
1101 | from markus@ ok djm@ | ||
1102 | |||
1103 | OpenBSD-Commit-ID: fac6da5dc63530ad0da537db022a9a4cfbe8bed8 | ||
1104 | |||
1105 | commit 70867e1ca2eb08bbd494fe9c568df4fd3b35b867 | ||
1106 | Author: djm@openbsd.org <djm@openbsd.org> | ||
1107 | Date: Mon Jan 21 10:38:54 2019 +0000 | ||
1108 | |||
1109 | upstream: merge kexkem[cs] into kexgen | ||
1110 | |||
1111 | from markus@ ok djm@ | ||
1112 | |||
1113 | OpenBSD-Commit-ID: 87d886b7f1812ff9355fda1435f6ea9b71a0ac89 | ||
1114 | |||
1115 | commit 71e67fff946396caa110a7964da23480757258ff | ||
1116 | Author: djm@openbsd.org <djm@openbsd.org> | ||
1117 | Date: Mon Jan 21 10:35:09 2019 +0000 | ||
1118 | |||
1119 | upstream: pass values used in KEX hash computation as sshbuf | ||
1120 | |||
1121 | rather than pointer+len | ||
1122 | |||
1123 | suggested by me; implemented by markus@ ok me | ||
1124 | |||
1125 | OpenBSD-Commit-ID: 994f33c464f4a9e0f1d21909fa3e379f5a0910f0 | ||
1126 | |||
1127 | commit 4b83e2a2cc0c12e671a77eaba1c1245894f4e884 | ||
1128 | Author: djm@openbsd.org <djm@openbsd.org> | ||
1129 | Date: Mon Jan 21 10:33:49 2019 +0000 | ||
1130 | |||
1131 | upstream: remove kex_derive_keys_bn wrapper; no unused since the | ||
1132 | |||
1133 | DH-like KEX methods have moved to KEM | ||
1134 | |||
1135 | from markus@ ok djm@ | ||
1136 | |||
1137 | OpenBSD-Commit-ID: bde9809103832f349545e4f5bb733d316db9a060 | ||
1138 | |||
1139 | commit 92dda34e373832f34a1944e5d9ebbebb184dedc1 | ||
1140 | Author: djm@openbsd.org <djm@openbsd.org> | ||
1141 | Date: Mon Jan 21 10:29:56 2019 +0000 | ||
1142 | |||
1143 | upstream: use KEM API for vanilla ECDH | ||
1144 | |||
1145 | from markus@ ok djm@ | ||
1146 | |||
1147 | OpenBSD-Commit-ID: 6fbff96339a929835536b5730585d1d6057a352c | ||
1148 | |||
1149 | commit b72357217cbe510a3ae155307a7be6b9181f1d1b | ||
1150 | Author: Damien Miller <djm@mindrot.org> | ||
1151 | Date: Mon Jan 21 23:11:21 2019 +1100 | ||
1152 | |||
1153 | fixup missing ssherr.h | ||
1154 | |||
1155 | commit 9c9c97e14fe190931f341876ad98213e1e1dc19f | ||
1156 | Author: djm@openbsd.org <djm@openbsd.org> | ||
1157 | Date: Mon Jan 21 10:28:01 2019 +0000 | ||
1158 | |||
1159 | upstream: use KEM API for vanilla DH KEX | ||
1160 | |||
1161 | from markus@ ok djm@ | ||
1162 | |||
1163 | OpenBSD-Commit-ID: af56466426b08a8be275412ae2743319e3d277c9 | ||
1164 | |||
1165 | commit 2f6a9ddbbf6ca8623c53c323ff17fb6d68d66970 | ||
1166 | Author: djm@openbsd.org <djm@openbsd.org> | ||
1167 | Date: Mon Jan 21 10:24:09 2019 +0000 | ||
1168 | |||
1169 | upstream: use KEM API for vanilla c25519 KEX | ||
1170 | |||
1171 | OpenBSD-Commit-ID: 38d937b85ff770886379dd66a8f32ab0c1c35c1f | ||
1172 | |||
1173 | commit dfd591618cdf2c96727ac0eb65f89cf54af0d97e | ||
1174 | Author: djm@openbsd.org <djm@openbsd.org> | ||
1175 | Date: Mon Jan 21 10:20:12 2019 +0000 | ||
1176 | |||
1177 | upstream: Add support for a PQC KEX/KEM: | ||
1178 | |||
1179 | sntrup4591761x25519-sha512@tinyssh.org using the Streamlined NTRU Prime | ||
1180 | 4591^761 implementation from SUPERCOP coupled with X25519 as a stop-loss. Not | ||
1181 | enabled by default. | ||
1182 | |||
1183 | introduce KEM API; a simplified framework for DH-ish KEX methods. | ||
1184 | |||
1185 | from markus@ feedback & ok djm@ | ||
1186 | |||
1187 | OpenBSD-Commit-ID: d687f76cffd3561dd73eb302d17a1c3bf321d1a7 | ||
1188 | |||
1189 | commit b1b2ff4ed559051d1035419f8f236275fa66d5d6 | ||
1190 | Author: djm@openbsd.org <djm@openbsd.org> | ||
1191 | Date: Mon Jan 21 10:07:22 2019 +0000 | ||
1192 | |||
1193 | upstream: factor out kex_verify_hostkey() - again, duplicated | ||
1194 | |||
1195 | almost exactly across client and server for several KEX methods. | ||
1196 | |||
1197 | from markus@ ok djm@ | ||
1198 | |||
1199 | OpenBSD-Commit-ID: 4e4a16d949dadde002a0aacf6d280a684e20829c | ||
1200 | |||
1201 | commit bb39bafb6dc520cc097780f4611a52da7f19c3e2 | ||
1202 | Author: djm@openbsd.org <djm@openbsd.org> | ||
1203 | Date: Mon Jan 21 10:05:09 2019 +0000 | ||
1204 | |||
1205 | upstream: factor out kex_load_hostkey() - this is duplicated in | ||
1206 | |||
1207 | both the client and server implementations for most KEX methods. | ||
1208 | |||
1209 | from markus@ ok djm@ | ||
1210 | |||
1211 | OpenBSD-Commit-ID: 8232fa7c21fbfbcaf838313b0c166dc6c8762f3c | ||
1212 | |||
1213 | commit dec5e9d33891e3bc3f1395d7db0e56fdc7f86dfc | ||
1214 | Author: djm@openbsd.org <djm@openbsd.org> | ||
1215 | Date: Mon Jan 21 10:03:37 2019 +0000 | ||
1216 | |||
1217 | upstream: factor out kex_dh_compute_key() - it's shared between | ||
1218 | |||
1219 | plain DH KEX and DH GEX in both the client and server implementations | ||
1220 | |||
1221 | from markus@ ok djm@ | ||
1222 | |||
1223 | OpenBSD-Commit-ID: 12186e18791fffcd4642c82e7e0cfdd7ea37e2ec | ||
1224 | |||
1225 | commit e93bd98eab79b9a78f64ee8dd4dffc4d3979c7ae | ||
1226 | Author: djm@openbsd.org <djm@openbsd.org> | ||
1227 | Date: Mon Jan 21 10:00:23 2019 +0000 | ||
1228 | |||
1229 | upstream: factor out DH keygen; it's identical between the client | ||
1230 | |||
1231 | and the server | ||
1232 | |||
1233 | from markus@ ok djm@ | ||
1234 | |||
1235 | OpenBSD-Commit-ID: 2be57f6a0d44f1ab2c8de2b1b5d6f530c387fae9 | ||
1236 | |||
1237 | commit 5ae3f6d314465026d028af82609c1d49ad197655 | ||
1238 | Author: djm@openbsd.org <djm@openbsd.org> | ||
1239 | Date: Mon Jan 21 09:55:52 2019 +0000 | ||
1240 | |||
1241 | upstream: save the derived session id in kex_derive_keys() rather | ||
1242 | |||
1243 | than making each kex method implementation do it. | ||
1244 | |||
1245 | from markus@ ok djm@ | ||
1246 | |||
1247 | OpenBSD-Commit-ID: d61ade9c8d1e13f665f8663c552abff8c8a30673 | ||
1248 | |||
1249 | commit 7be8572b32a15d5c3dba897f252e2e04e991c307 | ||
1250 | Author: djm@openbsd.org <djm@openbsd.org> | ||
1251 | Date: Mon Jan 21 09:54:11 2019 +0000 | ||
1252 | |||
1253 | upstream: Make sshpkt_get_bignum2() allocate the bignum it is | ||
1254 | |||
1255 | parsing rather than make the caller do it. Saves a lot of boilerplate code. | ||
1256 | |||
1257 | from markus@ ok djm@ | ||
1258 | |||
1259 | OpenBSD-Commit-ID: 576bf784f9a240f5a1401f7005364e59aed3bce9 | ||
1260 | |||
1261 | commit 803178bd5da7e72be94ba5b4c4c196d4b542da4d | ||
1262 | Author: djm@openbsd.org <djm@openbsd.org> | ||
1263 | Date: Mon Jan 21 09:52:25 2019 +0000 | ||
1264 | |||
1265 | upstream: remove obsolete (SSH v.1) sshbuf_get/put_bignum1 | ||
1266 | |||
1267 | functions | ||
1268 | |||
1269 | from markus@ ok djm@ | ||
1270 | |||
1271 | OpenBSD-Commit-ID: 0380b1b2d9de063de3c5a097481a622e6a04943e | ||
1272 | |||
1273 | commit f3ebaffd8714be31d4345f90af64992de4b3bba2 | ||
1274 | Author: djm@openbsd.org <djm@openbsd.org> | ||
1275 | Date: Mon Jan 21 09:49:37 2019 +0000 | ||
1276 | |||
1277 | upstream: fix all-zero check in kexc25519_shared_key | ||
1278 | |||
1279 | from markus@ ok djm@ | ||
1280 | |||
1281 | OpenBSD-Commit-ID: 60b1d364e0d9d34d1d1ef1620cb92e36cf06712d | ||
1282 | |||
1283 | commit 9d1a9771d0ad3a83af733bf3d2650b53f43c269f | ||
1284 | Author: jmc@openbsd.org <jmc@openbsd.org> | ||
1285 | Date: Mon Jan 21 07:09:10 2019 +0000 | ||
1286 | |||
1287 | upstream: - -T was added to the first synopsis by mistake - since | ||
1288 | |||
1289 | "..." denotes optional, no need to surround it in [] | ||
1290 | |||
1291 | ok djm | ||
1292 | |||
1293 | OpenBSD-Commit-ID: 918f6d8eed4e0d8d9ef5eadae1b8983d796f0e25 | ||
1294 | |||
1295 | commit 2f0bad2bf85391dbb41315ab55032ec522660617 | ||
1296 | Author: Darren Tucker <dtucker@dtucker.net> | ||
1297 | Date: Mon Jan 21 21:28:27 2019 +1100 | ||
1298 | |||
1299 | Make --with-rpath take a flag instead of yes/no. | ||
1300 | |||
1301 | Linkers need various flags for -rpath and similar, so make --with-rpath | ||
1302 | take an optional flag argument which is passed to the linker. ok djm@ | ||
1303 | |||
1304 | commit 23490a6c970ea1d03581a3b4208f2eb7a675f453 | ||
1305 | Author: Damien Miller <djm@mindrot.org> | ||
1306 | Date: Mon Jan 21 15:05:43 2019 +1100 | ||
1307 | |||
1308 | fix previous test | ||
1309 | |||
1310 | commit b6dd3277f2c49f9584a2097bc792e8f480397e87 | ||
1311 | Author: Darren Tucker <dtucker@dtucker.net> | ||
1312 | Date: Mon Jan 21 13:50:17 2019 +1100 | ||
1313 | |||
1314 | Wrap ECC static globals in EC_KEY_METHOD_NEW too. | ||
1315 | |||
1316 | commit b2eb9db35b7191613f2f4b934d57b25938bb34b3 | ||
1317 | Author: Damien Miller <djm@mindrot.org> | ||
1318 | Date: Mon Jan 21 12:53:40 2019 +1100 | ||
1319 | |||
1320 | pass TEST_SSH_SSHPKCS11HELPER to regress tests | ||
1321 | |||
1322 | commit ba58a529f45b3dae2db68607d8c54ae96e90e705 | ||
1323 | Author: Damien Miller <djm@mindrot.org> | ||
1324 | Date: Mon Jan 21 12:31:29 2019 +1100 | ||
1325 | |||
1326 | make agent-pkcs11 search harder for softhsm2.so | ||
1327 | |||
1328 | commit 662be40c62339ab645113c930ce689466f028938 | ||
1329 | Author: djm@openbsd.org <djm@openbsd.org> | ||
1330 | Date: Mon Jan 21 02:05:38 2019 +0000 | ||
1331 | |||
1332 | upstream: always print the caller's error message in ossl_error(), | ||
1333 | |||
1334 | even when there are no libcrypto errors to report. | ||
1335 | |||
1336 | OpenBSD-Commit-ID: 09ebaa8f706e0eccedd209775baa1eee2ada806a | ||
1337 | |||
1338 | commit ce46c3a077dfb4c531ccffcfff03f37775725b75 | ||
1339 | Author: djm@openbsd.org <djm@openbsd.org> | ||
1340 | Date: Mon Jan 21 02:01:03 2019 +0000 | ||
1341 | |||
1342 | upstream: get the ex_data (pkcs11_key object) back from the keys at | ||
1343 | |||
1344 | the index at which it was inserted, rather than assuming index 0 | ||
1345 | |||
1346 | OpenBSD-Commit-ID: 1f3a6ce0346c8014e895e50423bef16401510aa8 | ||
1347 | |||
1348 | commit 0a5f2ea35626022299ece3c8817a1abe8cf37b3e | ||
1349 | Author: djm@openbsd.org <djm@openbsd.org> | ||
1350 | Date: Mon Jan 21 01:05:00 2019 +0000 | ||
1351 | |||
1352 | upstream: GSSAPI code got missed when converting to new packet API | ||
1353 | |||
1354 | OpenBSD-Commit-ID: 37e4f06ab4a0f4214430ff462ba91acba28b7851 | ||
1355 | |||
1356 | commit 2efcf812b4c1555ca3aff744820a3b3bccd68298 | ||
1357 | Author: Damien Miller <djm@mindrot.org> | ||
1358 | Date: Mon Jan 21 11:57:21 2019 +1100 | ||
1359 | |||
1360 | Fix -Wunused when compiling PKCS#11 without ECDSA | ||
1361 | |||
1362 | commit 3c0c657ed7cd335fc05c0852d88232ca7e92a5d9 | ||
1363 | Author: djm@openbsd.org <djm@openbsd.org> | ||
1364 | Date: Sun Jan 20 23:26:44 2019 +0000 | ||
1365 | |||
1366 | upstream: allow override of ssh-pkcs11-helper binary via | ||
1367 | |||
1368 | $TEST_SSH_SSHPKCS11HELPER from markus@ | ||
1369 | |||
1370 | OpenBSD-Regress-ID: 7382a3d76746f5a792d106912a5819fd5e49e469 | ||
1371 | |||
1372 | commit 760ae37b4505453c6fa4faf1aa39a8671ab053af | ||
1373 | Author: djm@openbsd.org <djm@openbsd.org> | ||
1374 | Date: Sun Jan 20 23:25:25 2019 +0000 | ||
1375 | |||
1376 | upstream: adapt agent-pkcs11.sh test to softhsm2 and add support | ||
1377 | |||
1378 | for ECDSA keys | ||
1379 | |||
1380 | work by markus@, ok djm@ | ||
1381 | |||
1382 | OpenBSD-Regress-ID: 1ebc2be0e88eff1b6d8be2f9c00cdc60723509fe | ||
1383 | |||
1384 | commit b2ce8b31a1f974a13e6d12e0a0c132b50bc45115 | ||
1385 | Author: djm@openbsd.org <djm@openbsd.org> | ||
1386 | Date: Sun Jan 20 23:24:19 2019 +0000 | ||
1387 | |||
1388 | upstream: add "extra:" target to run some extra tests that are not | ||
1389 | |||
1390 | enabled by default (currently includes agent-pkcs11.sh); from markus@ | ||
1391 | |||
1392 | OpenBSD-Regress-ID: 9a969e1adcd117fea174d368dcb9c61eb50a2a3c | ||
1393 | |||
1394 | commit 632976418d60b7193597bbc6ac7ca33981a41aab | ||
1395 | Author: djm@openbsd.org <djm@openbsd.org> | ||
1396 | Date: Mon Jan 21 00:47:34 2019 +0000 | ||
1397 | |||
1398 | upstream: use ECDSA_SIG_set0() instead of poking signature values into | ||
1399 | |||
1400 | structure directly; the latter works on LibreSSL but not on OpenSSL. From | ||
1401 | portable. | ||
1402 | |||
1403 | OpenBSD-Commit-ID: 5b22a1919d9cee907d3f8a029167f70a481891c6 | ||
1404 | |||
1405 | commit 5de6ac2bad11175135d9b819b3546db0ca0b4878 | ||
1406 | Author: Damien Miller <djm@mindrot.org> | ||
1407 | Date: Mon Jan 21 11:44:19 2019 +1100 | ||
1408 | |||
1409 | remove HAVE_DLOPEN that snuck in | ||
1410 | |||
1411 | portable doesn't use this | ||
1412 | |||
1413 | commit e2cb445d786f7572da2af93e3433308eaed1093a | ||
1414 | Author: Damien Miller <djm@mindrot.org> | ||
1415 | Date: Mon Jan 21 11:32:28 2019 +1100 | ||
1416 | |||
1417 | conditionalise ECDSA PKCS#11 support | ||
1418 | |||
1419 | Require EC_KEY_METHOD support in libcrypto, evidenced by presence | ||
1420 | of EC_KEY_METHOD_new() function. | ||
1421 | |||
1422 | commit fcb1b0937182d0137a3c357c89735d0dc5869d54 | ||
1423 | Author: djm@openbsd.org <djm@openbsd.org> | ||
1424 | Date: Sun Jan 20 23:12:35 2019 +0000 | ||
1425 | |||
1426 | upstream: we use singleton pkcs#11 RSA_METHOD and EC_KEY_METHOD | ||
1427 | |||
1428 | now, so there is no need to keep a copy of each in the pkcs11_key object. | ||
1429 | |||
1430 | work by markus@, ok djm@ | ||
1431 | |||
1432 | OpenBSD-Commit-ID: 43b4856516e45c0595f17a8e95b2daee05f12faa | ||
1433 | |||
1434 | commit 6529409e85890cd6df7e5e81d04e393b1d2e4b0b | ||
1435 | Author: djm@openbsd.org <djm@openbsd.org> | ||
1436 | Date: Sun Jan 20 23:11:11 2019 +0000 | ||
1437 | |||
1438 | upstream: KNF previous; from markus@ | ||
1439 | |||
1440 | OpenBSD-Commit-ID: 3dfe35e25b310c3968b1e4e53a0cb1d03bda5395 | ||
1441 | |||
1442 | commit 58622a8c82f4e2aad630580543f51ba537c1f39e | ||
1443 | Author: djm@openbsd.org <djm@openbsd.org> | ||
1444 | Date: Sun Jan 20 23:10:33 2019 +0000 | ||
1445 | |||
1446 | upstream: use OpenSSL's RSA reference counting hooks to | ||
1447 | |||
1448 | implicitly clean up pkcs11_key objects when their owning RSA object's | ||
1449 | reference count drops to zero. Simplifies the cleanup path and makes it more | ||
1450 | like ECDSA's | ||
1451 | |||
1452 | work by markus@, ok djm@ | ||
1453 | |||
1454 | OpenBSD-Commit-ID: 74b9c98f405cd78f7148e9e4a4982336cd3df25c | ||
1455 | |||
1456 | commit f118542fc82a3b3ab0360955b33bc5a271ea709f | ||
1457 | Author: djm@openbsd.org <djm@openbsd.org> | ||
1458 | Date: Sun Jan 20 23:08:24 2019 +0000 | ||
1459 | |||
1460 | upstream: make the PKCS#11 RSA code more like the new PKCS#11 | ||
1461 | |||
1462 | ECDSA code: use a single custom RSA_METHOD instead of a method per key | ||
1463 | |||
1464 | suggested by me, but markus@ did all the work. | ||
1465 | ok djm@ | ||
1466 | |||
1467 | OpenBSD-Commit-ID: 8aafcebe923dc742fc5537a995cee549d07e4b2e | ||
1468 | |||
1469 | commit 445cfce49dfc904c6b8ab25afa2f43130296c1a5 | ||
1470 | Author: djm@openbsd.org <djm@openbsd.org> | ||
1471 | Date: Sun Jan 20 23:05:52 2019 +0000 | ||
1472 | |||
1473 | upstream: fix leak of ECDSA pkcs11_key objects | ||
1474 | |||
1475 | work by markus, ok djm@ | ||
1476 | |||
1477 | OpenBSD-Commit-ID: 9fc0c4f1d640aaa5f19b8d70f37ea19b8ad284a1 | ||
1478 | |||
1479 | commit 8a2467583f0b5760787273796ec929190c3f16ee | ||
1480 | Author: djm@openbsd.org <djm@openbsd.org> | ||
1481 | Date: Sun Jan 20 23:03:26 2019 +0000 | ||
1482 | |||
1483 | upstream: use EVP_PKEY_get0_EC_KEY() instead of direct access of | ||
1484 | |||
1485 | EC_KEY internals as that won't work on OpenSSL | ||
1486 | |||
1487 | work by markus@, feedback and ok djm@ | ||
1488 | |||
1489 | OpenBSD-Commit-ID: 4a99cdb89fbd6f5155ef8c521c99dc66e2612700 | ||
1490 | |||
1491 | commit 24757c1ae309324e98d50e5935478655be04e549 | ||
1492 | Author: djm@openbsd.org <djm@openbsd.org> | ||
1493 | Date: Sun Jan 20 23:01:59 2019 +0000 | ||
1494 | |||
1495 | upstream: cleanup PKCS#11 ECDSA pubkey loading: the returned | ||
1496 | |||
1497 | object should never have a DER header | ||
1498 | |||
1499 | work by markus; feedback and ok djm@ | ||
1500 | |||
1501 | OpenBSD-Commit-ID: b617fa585eddbbf0b1245b58b7a3c4b8d613db17 | ||
1502 | |||
1503 | commit 749aef30321595435ddacef2f31d7a8f2b289309 | ||
1504 | Author: djm@openbsd.org <djm@openbsd.org> | ||
1505 | Date: Sun Jan 20 23:00:12 2019 +0000 | ||
1506 | |||
1507 | upstream: cleanup unnecessary code in ECDSA pkcs#11 signature | ||
1508 | |||
1509 | work by markus@, feedback and ok djm@ | ||
1510 | |||
1511 | OpenBSD-Commit-ID: affa5ca7d58d59fbd16169f77771dcdbd2b0306d | ||
1512 | |||
1513 | commit 0c50992af49b562970dd0ba3f8f151f1119e260e | ||
1514 | Author: djm@openbsd.org <djm@openbsd.org> | ||
1515 | Date: Sun Jan 20 22:57:45 2019 +0000 | ||
1516 | |||
1517 | upstream: cleanup pkcs#11 client code: use sshkey_new in instead | ||
1518 | |||
1519 | of stack- allocating a sshkey | ||
1520 | |||
1521 | work by markus@, ok djm@ | ||
1522 | |||
1523 | OpenBSD-Commit-ID: a048eb6ec8aa7fa97330af927022c0da77521f91 | ||
1524 | |||
1525 | commit 854bd8674ee5074a239f7cadf757d55454802e41 | ||
1526 | Author: djm@openbsd.org <djm@openbsd.org> | ||
1527 | Date: Sun Jan 20 22:54:30 2019 +0000 | ||
1528 | |||
1529 | upstream: allow override of the pkcs#11 helper binary via | ||
1530 | |||
1531 | $SSH_PKCS11_HELPER; needed for regress tests. | ||
1532 | |||
1533 | work by markus@, ok me | ||
1534 | |||
1535 | OpenBSD-Commit-ID: f78d8185500bd7c37aeaf7bd27336db62f0f7a83 | ||
1536 | |||
1537 | commit 93f02107f44d63a016d8c23ebd2ca9205c495c48 | ||
1538 | Author: djm@openbsd.org <djm@openbsd.org> | ||
1539 | Date: Sun Jan 20 22:51:37 2019 +0000 | ||
1540 | |||
1541 | upstream: add support for ECDSA keys in PKCS#11 tokens | ||
1542 | |||
1543 | Work by markus@ and Pedro Martelletto, feedback and ok me@ | ||
1544 | |||
1545 | OpenBSD-Commit-ID: a37d651e221341376636056512bddfc16efb4424 | ||
1546 | |||
1547 | commit aa22c20e0c36c2fc610cfcc793b0d14079c38814 | ||
1548 | Author: djm@openbsd.org <djm@openbsd.org> | ||
1549 | Date: Sun Jan 20 22:03:29 2019 +0000 | ||
1550 | |||
1551 | upstream: add option to test whether keys in an agent are usable, | ||
1552 | |||
1553 | by performing a signature and a verification using each key "ssh-add -T | ||
1554 | pubkey [...]" | ||
1555 | |||
1556 | work by markus@, ok djm@ | ||
1557 | |||
1558 | OpenBSD-Commit-ID: 931b888a600b6a883f65375bd5f73a4776c6d19b | ||
1559 | |||
1560 | commit a36b0b14a12971086034d53c0c3dfbad07665abe | ||
1561 | Author: tb@openbsd.org <tb@openbsd.org> | ||
1562 | Date: Sun Jan 20 02:01:59 2019 +0000 | ||
1563 | |||
1564 | upstream: Fix BN_is_prime_* calls in SSH, the API returns -1 on | ||
1565 | |||
1566 | error. | ||
1567 | |||
1568 | Found thanks to BoringSSL's commit 53409ee3d7595ed37da472bc73b010cd2c8a5ffd | ||
1569 | by David Benjamin. | ||
1570 | |||
1571 | ok djm, dtucker | ||
1572 | |||
1573 | OpenBSD-Commit-ID: 1ee832be3c44b1337f76b8562ec6d203f3b072f8 | ||
1574 | |||
1575 | commit ec4776bb01dd8d61fddc7d2a31ab10bf3d3d829a | ||
1576 | Author: dtucker@openbsd.org <dtucker@openbsd.org> | ||
1577 | Date: Sun Jan 20 01:12:40 2019 +0000 | ||
1578 | |||
1579 | upstream: DH-GEX min value is now specified in RFC8270. ok djm@ | ||
1580 | |||
1581 | OpenBSD-Commit-ID: 1229d0feb1d0ecefe05bf67a17578b263e991acc | ||
1582 | |||
1583 | commit c90a7928c4191303e76a8c58b9008d464287ae1b | ||
1584 | Author: Darren Tucker <dtucker@dtucker.net> | ||
1585 | Date: Mon Jan 21 09:22:36 2019 +1100 | ||
1586 | |||
1587 | Check for cc before gcc. | ||
1588 | |||
1589 | If cc is something other than gcc and is the system compiler prefer using | ||
1590 | that, unless otherwise told via $CC. ok djm@ | ||
1591 | |||
1592 | commit 9b655dc9c9a353f0a527f0c6c43a5e35653c9503 | ||
1593 | Author: Damien Miller <djm@mindrot.org> | ||
1594 | Date: Sun Jan 20 14:55:27 2019 +1100 | ||
1595 | |||
1596 | last bits of old packet API / active_state global | ||
1597 | |||
1598 | commit 3f0786bbe73609ac96e5a0d91425ee21129f8e04 | ||
1599 | Author: Damien Miller <djm@mindrot.org> | ||
1600 | Date: Sun Jan 20 10:22:18 2019 +1100 | ||
1601 | |||
1602 | remove PAM dependencies on old packet API | ||
1603 | |||
1604 | Requires some caching of values, because the PAM code isn't | ||
1605 | always called with packet context. | ||
1606 | |||
1607 | commit 08f66d9f17e12c1140d1f1cf5c4dce67e915d3cc | ||
1608 | Author: Damien Miller <djm@mindrot.org> | ||
1609 | Date: Sun Jan 20 09:58:45 2019 +1100 | ||
1610 | |||
1611 | remove vestiges of old packet API from loginrec.c | ||
1612 | |||
1613 | commit c327813ea1d740e3e367109c17873815aba1328e | ||
1614 | Author: Damien Miller <djm@mindrot.org> | ||
1615 | Date: Sun Jan 20 09:45:38 2019 +1100 | ||
1616 | |||
1617 | depend | ||
1618 | |||
1619 | commit 135e302cfdbe91817294317c337cc38c3ff01cba | ||
1620 | Author: djm@openbsd.org <djm@openbsd.org> | ||
1621 | Date: Sat Jan 19 22:30:52 2019 +0000 | ||
1622 | |||
1623 | upstream: fix error in refactor: use ssh_packet_disconnect() instead of | ||
1624 | |||
1625 | sshpkt_error(). The first one logs the error and exits (what we want) instead | ||
1626 | of just logging and blundering on. | ||
1627 | |||
1628 | OpenBSD-Commit-ID: 39f51b43641dce9ce0f408ea6c0e6e077e2e91ae | ||
1629 | |||
1630 | commit 245c6a0b220b58686ee35bc5fc1c359e9be2faaa | ||
1631 | Author: djm@openbsd.org <djm@openbsd.org> | ||
1632 | Date: Sat Jan 19 21:45:31 2019 +0000 | ||
1633 | |||
1634 | upstream: remove last traces of old packet API! | ||
1635 | |||
1636 | with & ok markus@ | ||
1637 | |||
1638 | OpenBSD-Commit-ID: 9bd10437026423eb8245636ad34797a20fbafd7d | ||
1639 | |||
1640 | commit 04c091fc199f17dacf8921df0a06634b454e2722 | ||
1641 | Author: djm@openbsd.org <djm@openbsd.org> | ||
1642 | Date: Sat Jan 19 21:43:56 2019 +0000 | ||
1643 | |||
1644 | upstream: remove last references to active_state | ||
1645 | |||
1646 | with & ok markus@ | ||
1647 | |||
1648 | OpenBSD-Commit-ID: 78619a50ea7e4ca2f3b54d4658b3227277490ba2 | ||
1649 | |||
1650 | commit ec00f918b8ad90295044266c433340a8adc93452 | ||
1651 | Author: djm@openbsd.org <djm@openbsd.org> | ||
1652 | Date: Sat Jan 19 21:43:07 2019 +0000 | ||
1653 | |||
1654 | upstream: convert monitor.c to new packet API | ||
1655 | |||
1656 | with & ok markus@ | ||
1657 | |||
1658 | OpenBSD-Commit-ID: 61ecd154bd9804461a0cf5f495a29d919e0014d5 | ||
1659 | |||
1660 | commit 6350e0316981489d4205952d6904d6fedba5bfe0 | ||
1661 | Author: djm@openbsd.org <djm@openbsd.org> | ||
1662 | Date: Sat Jan 19 21:42:30 2019 +0000 | ||
1663 | |||
1664 | upstream: convert sshd.c to new packet API | ||
1665 | |||
1666 | with & ok markus@ | ||
1667 | |||
1668 | OpenBSD-Commit-ID: ea569d3eaf9b5cf1bad52779fbfa5fa0b28af891 | ||
1669 | |||
1670 | commit a5e2ad88acff2b7d131ee6d5dc5d339b0f8c6a6d | ||
1671 | Author: djm@openbsd.org <djm@openbsd.org> | ||
1672 | Date: Sat Jan 19 21:41:53 2019 +0000 | ||
1673 | |||
1674 | upstream: convert session.c to new packet API | ||
1675 | |||
1676 | with & ok markus@ | ||
1677 | |||
1678 | OpenBSD-Commit-ID: fae817207e23099ddd248960c984f7b7f26ea68e | ||
1679 | |||
1680 | commit 3a00a921590d4c4b7e96df11bb10e6f9253ad45e | ||
1681 | Author: djm@openbsd.org <djm@openbsd.org> | ||
1682 | Date: Sat Jan 19 21:41:18 2019 +0000 | ||
1683 | |||
1684 | upstream: convert auth.c to new packet API | ||
1685 | |||
1686 | with & ok markus@ | ||
1687 | |||
1688 | OpenBSD-Commit-ID: 7e10359f614ff522b52a3f05eec576257794e8e4 | ||
1689 | |||
1690 | commit 7ec5cb4d15ed2f2c5c9f5d00e6b361d136fc1e2d | ||
1691 | Author: djm@openbsd.org <djm@openbsd.org> | ||
1692 | Date: Sat Jan 19 21:40:48 2019 +0000 | ||
1693 | |||
1694 | upstream: convert serverloop.c to new packet API | ||
1695 | |||
1696 | with & ok markus@ | ||
1697 | |||
1698 | OpenBSD-Commit-ID: c92dd19b55457541478f95c0d6b318426d86d885 | ||
1699 | |||
1700 | commit 64c9598ac05332d1327cbf55334dee4172d216c4 | ||
1701 | Author: djm@openbsd.org <djm@openbsd.org> | ||
1702 | Date: Sat Jan 19 21:40:21 2019 +0000 | ||
1703 | |||
1704 | upstream: convert the remainder of sshconnect2.c to new packet | ||
1705 | |||
1706 | API | ||
1707 | |||
1708 | with & ok markus@ | ||
1709 | |||
1710 | OpenBSD-Commit-ID: 0986d324f2ceb5e8a12ac21c1bb10b3b4b1e0f71 | ||
1711 | |||
1712 | commit bc5e1169d101d16e3a5962a928db2bc49a8ef5a3 | ||
1713 | Author: djm@openbsd.org <djm@openbsd.org> | ||
1714 | Date: Sat Jan 19 21:39:12 2019 +0000 | ||
1715 | |||
1716 | upstream: convert the remainder of clientloop.c to new packet API | ||
1717 | |||
1718 | with & ok markus@ | ||
1719 | |||
1720 | OpenBSD-Commit-ID: ce2fbbacb86a290f31da1e7bf04cddf2bdae3d1e | ||
1721 | |||
1722 | commit 5ebce136a6105f084db8f0d7ee41981d42daec40 | ||
1723 | Author: Damien Miller <djm@mindrot.org> | ||
1724 | Date: Sun Jan 20 09:44:53 2019 +1100 | ||
1725 | |||
1726 | upstream: convert auth2.c to new packet API | ||
1727 | |||
1728 | OpenBSD-Commit-ID: ed831bb95ad228c6791bc18b60ce7a2edef2c999 | ||
1729 | |||
1730 | commit 172a592a53ebe8649c4ac0d7946e6c08eb151af6 | ||
1731 | Author: djm@openbsd.org <djm@openbsd.org> | ||
1732 | Date: Sat Jan 19 21:37:48 2019 +0000 | ||
1733 | |||
1734 | upstream: convert servconf.c to new packet API | ||
1735 | |||
1736 | with & ok markus@ | ||
1737 | |||
1738 | OpenBSD-Commit-ID: 126553aecca302c9e02fd77e333b9cb217e623b4 | ||
1739 | |||
1740 | commit 8cc7a679d29cf6ecccfa08191e688c7f81ef95c2 | ||
1741 | Author: djm@openbsd.org <djm@openbsd.org> | ||
1742 | Date: Sat Jan 19 21:37:13 2019 +0000 | ||
1743 | |||
1744 | upstream: convert channels.c to new packet API | ||
1745 | |||
1746 | with & ok markus@ | ||
1747 | |||
1748 | OpenBSD-Commit-ID: 0b8279b56113cbd4011fc91315c0796b63dc862c | ||
1749 | |||
1750 | commit 06232038c794c7dfcb087be0ab0b3e65b09fd396 | ||
1751 | Author: djm@openbsd.org <djm@openbsd.org> | ||
1752 | Date: Sat Jan 19 21:36:38 2019 +0000 | ||
1753 | |||
1754 | upstream: convert sshconnect.c to new packet API | ||
1755 | |||
1756 | with & ok markus@ | ||
1757 | |||
1758 | OpenBSD-Commit-ID: 222337cf6c96c347f1022d976fac74b4257c061f | ||
1759 | |||
1760 | commit 25b2ed667216314471bb66752442c55b95792dc3 | ||
1761 | Author: djm@openbsd.org <djm@openbsd.org> | ||
1762 | Date: Sat Jan 19 21:36:06 2019 +0000 | ||
1763 | |||
1764 | upstream: convert ssh.c to new packet API | ||
1765 | |||
1766 | with & ok markus@ | ||
1767 | |||
1768 | OpenBSD-Commit-ID: eb146878b24e85c2a09ee171afa6797c166a2e21 | ||
1769 | |||
1770 | commit e3128b38623eef2fa8d6e7ae934d3bd08c7e973e | ||
1771 | Author: djm@openbsd.org <djm@openbsd.org> | ||
1772 | Date: Sat Jan 19 21:35:25 2019 +0000 | ||
1773 | |||
1774 | upstream: convert mux.c to new packet API | ||
1775 | |||
1776 | with & ok markus@ | ||
1777 | |||
1778 | OpenBSD-Commit-ID: 4e3893937bae66416e984b282d8f0f800aafd802 | ||
1779 | |||
1780 | commit ed1df7226caf3a943a36d580d4d4e9275f8a61ee | ||
1781 | Author: djm@openbsd.org <djm@openbsd.org> | ||
1782 | Date: Sat Jan 19 21:34:45 2019 +0000 | ||
1783 | |||
1784 | upstream: convert sshconnect2.c to new packet API | ||
1785 | |||
1786 | with & ok markus@ | ||
1787 | |||
1788 | OpenBSD-Commit-ID: 1cb869e0d6e03539f943235641ea070cae2ebc58 | ||
1789 | |||
1790 | commit 23f22a4aaa923c61ec49a99ebaa383656e87fa40 | ||
1791 | Author: djm@openbsd.org <djm@openbsd.org> | ||
1792 | Date: Sat Jan 19 21:33:57 2019 +0000 | ||
1793 | |||
1794 | upstream: convert clientloop.c to new packet API | ||
1795 | |||
1796 | with & ok markus@ | ||
1797 | |||
1798 | OpenBSD-Commit-ID: 497b36500191f452a22abf283aa8d4a9abaee7fa | ||
1799 | |||
1800 | commit ad60b1179c9682ca5aef0b346f99ef68cbbbc4e5 | ||
1801 | Author: djm@openbsd.org <djm@openbsd.org> | ||
1802 | Date: Sat Jan 19 21:33:13 2019 +0000 | ||
1803 | |||
1804 | upstream: allow sshpkt_fatal() to take a varargs format; we'll | ||
1805 | |||
1806 | use this to give packet-related fatal error messages more context (esp. the | ||
1807 | remote endpoint) ok markus@ | ||
1808 | |||
1809 | OpenBSD-Commit-ID: de57211f9543426b515a8a10a4f481666b2b2a50 | ||
1810 | |||
1811 | commit 0fa174ebe129f3d0aeaf4e2d1dd8de745870d0ff | ||
1812 | Author: djm@openbsd.org <djm@openbsd.org> | ||
1813 | Date: Sat Jan 19 21:31:32 2019 +0000 | ||
1814 | |||
1815 | upstream: begin landing remaining refactoring of packet parsing | ||
1816 | |||
1817 | API, started almost exactly six years ago. | ||
1818 | |||
1819 | This change stops including the old packet_* API by default and makes | ||
1820 | each file that requires the old API include it explicitly. We will | ||
1821 | commit file-by-file refactoring to remove the old API in consistent | ||
1822 | steps. | ||
1823 | |||
1824 | with & ok markus@ | ||
1825 | |||
1826 | OpenBSD-Commit-ID: 93c98a6b38f6911fd1ae025a1ec57807fb4d4ef4 | ||
1827 | |||
1828 | commit 4ae7f80dfd02f2bde912a67c9f338f61e90fa79f | ||
1829 | Author: tb@openbsd.org <tb@openbsd.org> | ||
1830 | Date: Sat Jan 19 04:15:56 2019 +0000 | ||
1831 | |||
1832 | upstream: Print an \r in front of the password prompt so parts of | ||
1833 | |||
1834 | a password that was entered too early are likely clobbered by the prompt. | ||
1835 | Idea from doas. | ||
1836 | |||
1837 | from and ok djm | ||
1838 | "i like it" deraadt | ||
1839 | |||
1840 | OpenBSD-Commit-ID: 5fb97c68df6d8b09ab37f77bca1d84d799c4084e | ||
1841 | |||
1842 | commit a6258e5dc314c7d504ac9f0fbc3be96475581dbe | ||
1843 | Author: Darren Tucker <dtucker@dtucker.net> | ||
1844 | Date: Fri Jan 18 11:09:01 2019 +1100 | ||
1845 | |||
1846 | Add minimal fchownat and fchmodat implementations. | ||
1847 | |||
1848 | Fixes builds on at least OS X Lion, NetBSD 6 and Solaris 10. | ||
1849 | |||
1850 | commit 091093d25802b87d3b2b09f2c88d9f33e1ae5562 | ||
1851 | Author: Darren Tucker <dtucker@dtucker.net> | ||
1852 | Date: Fri Jan 18 12:11:42 2019 +1300 | ||
1853 | |||
1854 | Add a minimal implementation of utimensat(). | ||
1855 | |||
1856 | Some systems (eg older OS X) do not have utimensat, so provide minimal | ||
1857 | implementation in compat layer. Fixes build on at least El Capitan. | ||
1858 | |||
1859 | commit 609644027dde1f82213699cb6599e584c7efcb75 | ||
1860 | Author: djm@openbsd.org <djm@openbsd.org> | ||
1861 | Date: Tue Jan 1 22:20:16 2019 +0000 | ||
1862 | |||
1863 | upstream: regress bits for banner processing refactor (this test was | ||
1864 | |||
1865 | depending on ssh returning a particular error message for banner parsing | ||
1866 | failure) | ||
1867 | |||
1868 | reminded by bluhm@ | ||
1869 | |||
1870 | OpenBSD-Regress-ID: f24fc303d40931157431df589b386abf5e1be575 | ||
1871 | |||
1872 | commit f47d72ddad75b93d3cbc781718b0fa9046c03df8 | ||
1873 | Author: djm@openbsd.org <djm@openbsd.org> | ||
1874 | Date: Thu Jan 17 04:45:09 2019 +0000 | ||
1875 | |||
1876 | upstream: tun_fwd_ifnames variable should b | ||
1877 | |||
1878 | =?UTF-8?q?e=20extern;=20from=20Hanno=20B=C3=B6ck?= | ||
1879 | MIME-Version: 1.0 | ||
1880 | Content-Type: text/plain; charset=UTF-8 | ||
1881 | Content-Transfer-Encoding: 8bit | ||
1882 | |||
1883 | OpenBSD-Commit-ID: d53dede6e521161bf04d39d09947db6253a38271 | ||
1884 | |||
1885 | commit 943d0965263cae1c080ce5a9d0b5aa341885e55d | ||
1886 | Author: djm@openbsd.org <djm@openbsd.org> | ||
1887 | Date: Thu Jan 17 04:20:53 2019 +0000 | ||
1888 | |||
1889 | upstream: include time.h for time(3)/nanosleep(2); from Ian | ||
1890 | |||
1891 | McKellar | ||
1892 | |||
1893 | OpenBSD-Commit-ID: 6412ccd06a88f65b207a1089345f51fa1244ea51 | ||
1894 | |||
1895 | commit dbb4dec6d5d671b5e9d67ef02162a610ad052068 | ||
1896 | Author: djm@openbsd.org <djm@openbsd.org> | ||
1897 | Date: Thu Jan 17 01:50:24 2019 +0000 | ||
1898 | |||
1899 | upstream: many of the global variables in this file can be made static; | ||
1900 | |||
1901 | patch from Markus Schmidt | ||
1902 | |||
1903 | OpenBSD-Commit-ID: f3db619f67beb53257b21bac0e92b4fb7d5d5737 | ||
1904 | |||
1905 | commit 60d8c84e0887514c99c9ce071965fafaa1c3d34a | ||
1906 | Author: djm@openbsd.org <djm@openbsd.org> | ||
1907 | Date: Wed Jan 16 23:23:45 2019 +0000 | ||
1908 | |||
1909 | upstream: Add "-h" flag to sftp chown/chgrp/chmod commands to | ||
1910 | |||
1911 | request they do not follow symlinks. Requires recently-committed | ||
1912 | lsetstat@openssh.com extension on the server side. | ||
1913 | |||
1914 | ok markus@ dtucker@ | ||
1915 | |||
1916 | OpenBSD-Commit-ID: f93bb3f6f7eb2fb7ef1e59126e72714f1626d604 | ||
1917 | |||
1918 | commit dbbc7e0eab7262f34b8e0cd6efecd1c77b905ed0 | ||
1919 | Author: djm@openbsd.org <djm@openbsd.org> | ||
1920 | Date: Wed Jan 16 23:22:10 2019 +0000 | ||
1921 | |||
1922 | upstream: add support for a "lsetstat@openssh.com" extension. This | ||
1923 | |||
1924 | replicates the functionality of the existing SSH2_FXP_SETSTAT operation but | ||
1925 | does not follow symlinks. Based on a patch from Bert Haverkamp in bz#2067 but | ||
1926 | with more attribute modifications supported. | ||
1927 | |||
1928 | ok markus@ dtucker@ | ||
1929 | |||
1930 | OpenBSD-Commit-ID: f7234f6e90db19655d55d936a115ee4ccb6aaf80 | ||
1931 | |||
1932 | commit 4a526941d328fc3d97068c6a4cbd9b71b70fe5e1 | ||
1933 | Author: djm@openbsd.org <djm@openbsd.org> | ||
1934 | Date: Fri Jan 4 03:27:50 2019 +0000 | ||
1935 | |||
1936 | upstream: eliminate function-static attempt counters for | ||
1937 | |||
1938 | passwd/kbdint authmethods by moving them to the client authctxt; Patch from | ||
1939 | Markus Schmidt, ok markus@ | ||
1940 | |||
1941 | OpenBSD-Commit-ID: 4df4404a5d5416eb056f68e0e2f4fa91ba3b3f7f | ||
1942 | |||
1943 | commit 8a8183474c41bd6cebaa917346b549af2239ba2f | ||
1944 | Author: djm@openbsd.org <djm@openbsd.org> | ||
1945 | Date: Fri Jan 4 03:23:00 2019 +0000 | ||
1946 | |||
1947 | upstream: fix memory leak of ciphercontext when rekeying; bz#2942 | ||
1948 | |||
1949 | Patch from Markus Schmidt; ok markus@ | ||
1950 | |||
1951 | OpenBSD-Commit-ID: 7877f1b82e249986f1ef98d0ae76ce987d332bdd | ||
1952 | |||
1953 | commit 5bed70afce0907b6217418d0655724c99b683d93 | ||
1954 | Author: djm@openbsd.org <djm@openbsd.org> | ||
1955 | Date: Tue Jan 1 23:10:53 2019 +0000 | ||
1956 | |||
1957 | upstream: static on global vars, const on handler tables that contain | ||
1958 | |||
1959 | function pointers; from Mike Frysinger | ||
1960 | |||
1961 | OpenBSD-Commit-ID: 7ef2305e50d3caa6326286db43cf2cfaf03960e0 | ||
1962 | |||
1963 | commit 007a88b48c97d092ed2f501bbdcb70d9925277be | ||
1964 | Author: djm@openbsd.org <djm@openbsd.org> | ||
1965 | Date: Thu Dec 27 23:02:11 2018 +0000 | ||
1966 | |||
1967 | upstream: Request RSA-SHA2 signatures for | ||
1968 | |||
1969 | rsa-sha2-{256|512}-cert-v01@openssh.com cert algorithms; ok markus@ | ||
1970 | |||
1971 | OpenBSD-Commit-ID: afc6f7ca216ccd821656d1c911d2a3deed685033 | ||
1972 | |||
1973 | commit eb347d086c35428c47fe52b34588cbbc9b49d9a6 | ||
1974 | Author: djm@openbsd.org <djm@openbsd.org> | ||
1975 | Date: Thu Dec 27 03:37:49 2018 +0000 | ||
1976 | |||
1977 | upstream: ssh_packet_set_state() now frees ssh->kex implicitly, so | ||
1978 | |||
1979 | don't do explicit kex_free() beforehand | ||
1980 | |||
1981 | OpenBSD-Regress-ID: f2f73bad47f62a2040ccba0a72cadcb12eda49cf | ||
1982 | |||
1983 | commit bb542f0cf6f7511a22a08c492861e256a82376a9 | ||
1984 | Author: tedu@openbsd.org <tedu@openbsd.org> | ||
1985 | Date: Sat Dec 15 00:50:21 2018 +0000 | ||
1986 | |||
1987 | upstream: remove unused and problematic sudo clean. ok espie | ||
1988 | |||
1989 | OpenBSD-Regress-ID: ca90c20a15a85b661e13e98b80c10e65cd662f7b | ||
1990 | |||
1991 | commit 0a843d9a0e805f14653a555f5c7a8ba99d62c12d | ||
1992 | Author: djm@openbsd.org <djm@openbsd.org> | ||
1993 | Date: Thu Dec 27 03:25:24 2018 +0000 | ||
1994 | |||
1995 | upstream: move client/server SSH-* banners to buffers under | ||
1996 | |||
1997 | ssh->kex and factor out the banner exchange. This eliminates some common code | ||
1998 | from the client and server. | ||
1999 | |||
2000 | Also be more strict about handling \r characters - these should only | ||
2001 | be accepted immediately before \n (pointed out by Jann Horn). | ||
2002 | |||
2003 | Inspired by a patch from Markus Schmidt. | ||
2004 | (lots of) feedback and ok markus@ | ||
2005 | |||
2006 | OpenBSD-Commit-ID: 1cc7885487a6754f63641d7d3279b0941890275b | ||
2007 | |||
2008 | commit 434b587afe41c19391821e7392005068fda76248 | ||
2009 | Author: dtucker@openbsd.org <dtucker@openbsd.org> | ||
2010 | Date: Fri Dec 7 04:36:09 2018 +0000 | ||
2011 | |||
2012 | upstream: Fix calculation of initial bandwidth limits. Account for | ||
2013 | |||
2014 | written bytes before the initial timer check so that the first buffer written | ||
2015 | is accounted. Set the threshold after which the timer is checked such that | ||
2016 | the limit starts being computed as soon as possible, ie after the second | ||
2017 | buffer is written. This prevents an initial burst of traffic and provides a | ||
2018 | more accurate bandwidth limit. bz#2927, ok djm. | ||
2019 | |||
2020 | OpenBSD-Commit-ID: ff3ef76e4e43040ec198c2718d5682c36b255cb6 | ||
2021 | |||
2022 | commit a6a0788cbbe8dfce2819ee43b09c80725742e21c | ||
2023 | Author: djm@openbsd.org <djm@openbsd.org> | ||
2024 | Date: Fri Dec 7 03:39:40 2018 +0000 | ||
2025 | |||
2026 | upstream: only consider the ext-info-c extension during the initial | ||
2027 | |||
2028 | KEX. It shouldn't be sent in subsequent ones, but if it is present we should | ||
2029 | ignore it. | ||
2030 | |||
2031 | This prevents sshd from sending a SSH_MSG_EXT_INFO for REKEX for buggy | ||
2032 | these clients. Reported by Jakub Jelen via bz2929; ok dtucker@ | ||
2033 | |||
2034 | OpenBSD-Commit-ID: 91564118547f7807030ec537480303e2371902f9 | ||
2035 | |||
2036 | commit 63bba57a32c5bb6158d57cf4c47022daf89c14a0 | ||
2037 | Author: djm@openbsd.org <djm@openbsd.org> | ||
2038 | Date: Fri Dec 7 03:33:18 2018 +0000 | ||
2039 | |||
2040 | upstream: fix option letter pasto in previous | ||
2041 | |||
2042 | OpenBSD-Commit-ID: e26c8bf2f2a808f3c47960e1e490d2990167ec39 | ||
2043 | |||
2044 | commit 737e4edd82406595815efadc28ed5161b8b0c01a | ||
2045 | Author: djm@openbsd.org <djm@openbsd.org> | ||
2046 | Date: Fri Dec 7 03:32:26 2018 +0000 | ||
2047 | |||
2048 | upstream: mention that the ssh-keygen -F (find host in | ||
2049 | |||
2050 | authorized_keys) and -R (remove host from authorized_keys) options may accept | ||
2051 | either a bare hostname or a [hostname]:port combo. bz#2935 | ||
2052 | |||
2053 | OpenBSD-Commit-ID: 5535cf4ce78375968b0d2cd7aa316fa3eb176780 | ||
2054 | |||
2055 | commit 8a22ffaa13391cfe5b40316d938fe0fb931e9296 | ||
2056 | Author: Damien Miller <djm@mindrot.org> | ||
2057 | Date: Fri Dec 7 15:41:16 2018 +1100 | ||
2058 | |||
2059 | expose $SSH_CONNECTION in the PAM environment | ||
2060 | |||
2061 | This makes the connection 4-tuple available to PAM modules that | ||
2062 | wish to use it in decision-making. bz#2741 | ||
2063 | |||
2064 | commit a784fa8c7a7b084d63bae82ccfea902131bb45c5 | ||
2065 | Author: Kevin Adler <kadler@us.ibm.com> | ||
2066 | Date: Wed Dec 12 22:12:45 2018 -0600 | ||
2067 | |||
2068 | Don't pass loginmsg by address now that it's an sshbuf* | ||
2069 | |||
2070 | In 120a1ec74, loginmsg was changed from the legacy Buffer type | ||
2071 | to struct sshbuf*, but it missed changing calls to | ||
2072 | sys_auth_allowed_user and sys_auth_record_login which passed | ||
2073 | loginmsg by address. Now that it's a pointer, just pass it directly. | ||
2074 | |||
2075 | This only affects AIX, unless there are out of tree users. | ||
2076 | |||
2077 | commit 285310b897969a63ef224d39e7cc2b7316d86940 | ||
2078 | Author: djm@openbsd.org <djm@openbsd.org> | ||
2079 | Date: Fri Dec 7 02:31:20 2018 +0000 | ||
2080 | |||
2081 | upstream: no need to allocate channels_pre/channels_post in | ||
2082 | |||
2083 | channel_init_channels() as we do it anyway in channel_handler_init() that we | ||
2084 | call at the end of the function. Fix from Markus Schmidt via bz#2938 | ||
2085 | |||
2086 | OpenBSD-Commit-ID: 74893638af49e3734f1e33a54af1b7ea533373ed | ||
2087 | |||
2088 | commit 87d6cf1cbc91df6815db8fe0acc7c910bc3d18e4 | ||
2089 | Author: djm@openbsd.org <djm@openbsd.org> | ||
2090 | Date: Fri Nov 30 02:24:52 2018 +0000 | ||
2091 | |||
2092 | upstream: don't attempt to connect to empty SSH_AUTH_SOCK; bz#293 | ||
2093 | |||
2094 | OpenBSD-Commit-ID: 0e8fc8f19f14b21adef7109e0faa583d87c0e929 | ||
2095 | |||
2096 | commit 91b19198c3f604f5eef2c56dbe36f29478243141 | ||
2097 | Author: djm@openbsd.org <djm@openbsd.org> | ||
2098 | Date: Wed Nov 28 06:00:38 2018 +0000 | ||
2099 | |||
2100 | upstream: don't truncate user or host name in "user@host's | ||
2101 | |||
2102 | OpenBSD-Commit-ID: e6ca01a8d58004b7f2cac0b1b7ce8f87e425e360 | ||
2103 | |||
2104 | commit dd0cf6318d9b4b3533bda1e3bc021b2cd7246b7a | ||
2105 | Author: jmc@openbsd.org <jmc@openbsd.org> | ||
2106 | Date: Fri Nov 23 06:58:28 2018 +0000 | ||
2107 | |||
2108 | upstream: tweak previous; | ||
2109 | |||
2110 | OpenBSD-Commit-ID: 08f096922eb00c98251501c193ff9e83fbb5de4f | ||
2111 | |||
2112 | commit 8a85f5458d1c802471ca899c97f89946f6666e61 | ||
2113 | Author: Darren Tucker <dtucker@dtucker.net> | ||
2114 | Date: Sun Nov 25 21:44:05 2018 +1100 | ||
2115 | |||
2116 | Include stdio.h for FILE if needed. | ||
2117 | |||
2118 | commit 16fb23f25454991272bfe4598cc05d20fcd25116 | ||
2119 | Author: Darren Tucker <dtucker@dtucker.net> | ||
2120 | Date: Sun Nov 25 14:05:57 2018 +1100 | ||
2121 | |||
2122 | Reverse order of OpenSSL init functions. | ||
2123 | |||
2124 | Try the new init function (OPENSSL_init_crypto) before falling back to | ||
2125 | the old one (OpenSSL_add_all_algorithms). | ||
2126 | |||
2127 | commit 98f878d2272bf8dff21f2a0265d963c29e33fed2 | ||
2128 | Author: Darren Tucker <dtucker@dtucker.net> | ||
2129 | Date: Sun Nov 25 14:05:08 2018 +1100 | ||
2130 | |||
2131 | Improve OpenSSL_add_all_algorithms check. | ||
2132 | |||
2133 | OpenSSL_add_all_algorithms() may be a macro so check for that too. | ||
2134 | |||
2135 | commit 9e34e0c59ab04514f9de9934a772283f7f372afe | ||
2136 | Author: djm@openbsd.org <djm@openbsd.org> | ||
2137 | Date: Fri Nov 23 05:08:07 2018 +0000 | ||
2138 | |||
2139 | upstream: add a ssh_config "Match final" predicate | ||
2140 | |||
2141 | Matches in same pass as "Match canonical" but doesn't require | ||
2142 | hostname canonicalisation be enabled. bz#2906 ok markus | ||
2143 | |||
2144 | OpenBSD-Commit-ID: fba1dfe9f6e0cabcd0e2b3be13f7a434199beffa | ||
2145 | |||
2146 | commit 4da58d58736b065b1182b563d10ad6765d811c6d | ||
2147 | Author: dtucker@openbsd.org <dtucker@openbsd.org> | ||
2148 | Date: Fri Nov 23 02:53:57 2018 +0000 | ||
2149 | |||
2150 | upstream: Remove now-unneeded ifdef SIGINFO around handler since it is | ||
2151 | |||
2152 | now always used for SIGUSR1 even when SIGINFO is not defined. This will make | ||
2153 | things simpler in -portable. | ||
2154 | |||
2155 | OpenBSD-Regress-ID: 4ff0265b335820b0646d37beb93f036ded0dc43f | ||
2156 | |||
2157 | commit c721d5877509875c8515df0215fa1dab862013bc | ||
2158 | Author: Darren Tucker <dtucker@dtucker.net> | ||
2159 | Date: Fri Nov 23 14:11:20 2018 +1100 | ||
2160 | |||
2161 | Move RANDOM_SEED_SIZE outside ifdef. | ||
2162 | |||
2163 | RANDOM_SEED_SIZE is used by both the OpenSSL and non-OpenSSL code | ||
2164 | This fixes the build with configureed --without-openssl. | ||
2165 | |||
2166 | commit deb51552c3ce7ce72c8d0232e4f36f2e7c118c7d | ||
2167 | Author: Darren Tucker <dtucker@dtucker.net> | ||
2168 | Date: Thu Nov 22 19:59:28 2018 +1100 | ||
2169 | |||
2170 | Resync with OpenBSD by pulling in an ifdef SIGINFO. | ||
2171 | |||
2172 | commit 28c7b2cd050f4416bfcf3869a20e3ea138aa52fe | ||
2173 | Author: Damien Miller <djm@mindrot.org> | ||
2174 | Date: Fri Nov 23 10:45:20 2018 +1100 | ||
2175 | |||
2176 | fix configure test for OpenSSL version | ||
2177 | |||
2178 | square brackets in case statements may be eaten by autoconf. | ||
2179 | |||
2180 | Report and fix from Filipp Gunbin; tweaked by naddy@ | ||
2181 | |||
2182 | commit 42c5ec4b97b6a1bae70f323952d0646af16ce710 | ||
2183 | Author: Damien Miller <djm@mindrot.org> | ||
2184 | Date: Fri Nov 23 10:40:06 2018 +1100 | ||
2185 | |||
2186 | refactor libcrypto initialisation | ||
2187 | |||
2188 | Don't call OpenSSL_add_all_algorithms() unless OpenSSL actually | ||
2189 | supports it. | ||
2190 | |||
2191 | Move all libcrypto initialisation to a single function, and call that | ||
2192 | from seed_rng() that is called early in each tool's main(). | ||
2193 | |||
2194 | Prompted by patch from Rosen Penev | ||
2195 | |||
2196 | commit 5b60b6c02009547a3e2a99d4886965de2a4719da | ||
2197 | Author: dtucker@openbsd.org <dtucker@openbsd.org> | ||
2198 | Date: Thu Nov 22 08:59:11 2018 +0000 | ||
2199 | |||
2200 | upstream: Output info on SIGUSR1 as well as | ||
2201 | |||
2202 | SIGINFO to resync with portable. (ID sync only). | ||
2203 | |||
2204 | OpenBSD-Regress-ID: 699d153e2de22dce51a1b270c40a98472d1a1b16 | ||
2205 | |||
2206 | commit e4ae345dc75b34fd870c2e8690d831d2c1088eb7 | ||
2207 | Author: dtucker@openbsd.org <dtucker@openbsd.org> | ||
2208 | Date: Thu Nov 22 08:48:32 2018 +0000 | ||
2209 | |||
2210 | upstream: Append pid to temp files in /var/run and set a cleanup | ||
2211 | |||
2212 | trap for them. This allows multiple instances of tests to run without | ||
2213 | colliding. | ||
2214 | |||
2215 | OpenBSD-Regress-ID: 57add105ecdfc54752d8003acdd99eb68c3e0b4c | ||
2216 | |||
2217 | commit f72d0f52effca5aa20a193217346615ecd3eed53 | ||
2218 | Author: dtucker@openbsd.org <dtucker@openbsd.org> | ||
2219 | Date: Wed Oct 31 11:09:27 2018 +0000 | ||
2220 | |||
2221 | upstream: UsePrivilegeSeparation no is deprecated | ||
2222 | |||
2223 | test "yes" and "sandbox". | ||
2224 | |||
2225 | OpenBSD-Regress-ID: 80e685ed8990766527dc629b1affc09a75bfe2da | ||
2226 | |||
2227 | commit 35d0e5fefc419bddcbe09d7fc163d8cd3417125b | ||
2228 | Author: djm@openbsd.org <djm@openbsd.org> | ||
2229 | Date: Wed Oct 17 23:28:05 2018 +0000 | ||
2230 | |||
2231 | upstream: add some knobs: | ||
2232 | |||
2233 | UNITTEST_FAST?= no # Skip slow tests (e.g. less intensive fuzzing). | ||
2234 | UNITTEST_SLOW?= no # Include slower tests (e.g. more intensive fuzzing). | ||
2235 | UNITTEST_VERBOSE?= no # Verbose test output (inc. per-test names). | ||
2236 | |||
2237 | useful if you want to run the tests as a smoke test to exercise the | ||
2238 | functionality without waiting for all the fuzzers to run. | ||
2239 | |||
2240 | OpenBSD-Regress-ID: e04d82ebec86068198cd903acf1c67563c57315e | ||
2241 | |||
2242 | commit c1941293d9422a14dda372b4c21895e72aa7a063 | ||
2243 | Author: Darren Tucker <dtucker@dtucker.net> | ||
2244 | Date: Thu Nov 22 15:52:26 2018 +1100 | ||
2245 | |||
2246 | Resync Makefile.inc with upstream. | ||
2247 | |||
2248 | It's unused in -portable, but having it out of sync makes other syncs | ||
2249 | fail to apply. | ||
2250 | |||
2251 | commit 928f1231f65f88cd4c73e6e0edd63d2cf6295d77 | ||
2252 | Author: djm@openbsd.org <djm@openbsd.org> | ||
2253 | Date: Mon Nov 19 04:12:32 2018 +0000 | ||
2254 | |||
2255 | upstream: silence (to log level debug2) failure messages when | ||
2256 | |||
2257 | loading the default hostkeys. Hostkeys explicitly specified in the | ||
2258 | configuration or on the command-line are still reported as errors, and | ||
2259 | failure to load at least one host key remains a fatal error. | ||
2260 | MIME-Version: 1.0 | ||
2261 | Content-Type: text/plain; charset=UTF-8 | ||
2262 | Content-Transfer-Encoding: 8bit | ||
2263 | |||
2264 | Based on patch from Dag-Erling Smørgrav via | ||
2265 | https://github.com/openssh/openssh-portable/pull/103 | ||
2266 | |||
2267 | ok markus@ | ||
2268 | |||
2269 | OpenBSD-Commit-ID: ffc2e35a75d1008effaf05a5e27425041c27b684 | ||
2270 | |||
2271 | commit 7fca94edbe8ca9f879da9fdd2afd959c4180f4c7 | ||
2272 | Author: dtucker@openbsd.org <dtucker@openbsd.org> | ||
2273 | Date: Sun Nov 18 22:43:29 2018 +0000 | ||
2274 | |||
2275 | upstream: Fix inverted logic for redirecting ProxyCommand stderr to | ||
2276 | |||
2277 | /dev/null. Fixes mosh in proxycommand mode that was broken by the previous | ||
2278 | ProxyCommand change that was reported by matthieu@. ok djm@ danj@ | ||
2279 | |||
2280 | OpenBSD-Commit-ID: c6fc9641bc250221a0a81c6beb2e72d603f8add6 | ||
2281 | |||
2282 | commit ccef7c4faf914993b53035cd2b25ce02ab039c9d | ||
2283 | Author: djm@openbsd.org <djm@openbsd.org> | ||
2284 | Date: Fri Nov 16 06:17:38 2018 +0000 | ||
2285 | |||
2286 | upstream: redirect stderr of ProxyCommands to /dev/null when ssh is | ||
2287 | |||
2288 | started with ControlPersist; based on patch from Steffen Prohaska | ||
2289 | |||
2290 | OpenBSD-Commit-ID: 1bcaa14a03ae80369d31021271ec75dce2597957 | ||
2291 | |||
2292 | commit 15182fd96845a03216d7ac5a2cf31c4e77e406e3 | ||
2293 | Author: djm@openbsd.org <djm@openbsd.org> | ||
2294 | Date: Fri Nov 16 06:10:29 2018 +0000 | ||
2295 | |||
2296 | upstream: make grandparent-parent-child sshbuf chains robust to | ||
2297 | |||
2298 | use-after-free faults if the ancestors are freed before the descendents. | ||
2299 | Nothing in OpenSSH uses this deallocation pattern. Reported by Jann Horn | ||
2300 | |||
2301 | OpenBSD-Commit-ID: d93501d1d2734245aac802a252b9bb2eccdba0f2 | ||
2302 | |||
2303 | commit 2a35862e664afde774d4a72497d394fe7306ccb5 | ||
2304 | Author: djm@openbsd.org <djm@openbsd.org> | ||
2305 | Date: Fri Nov 16 03:26:01 2018 +0000 | ||
2306 | |||
2307 | upstream: use path_absolute() for pathname checks; from Manoj Ampalam | ||
2308 | |||
2309 | OpenBSD-Commit-ID: 482ce71a5ea5c5f3bc4d00fd719481a6a584d925 | ||
2310 | |||
2311 | commit d0d1dfa55be1c5c0d77ab3096b198a64235f936d | ||
2312 | Author: Darren Tucker <dtucker@dtucker.net> | ||
2313 | Date: Fri Nov 16 14:11:44 2018 +1100 | ||
2314 | |||
2315 | Test for OPENSSL_init_crypto before using. | ||
2316 | |||
2317 | Check for the presence of OPENSSL_init_crypto and all the flags we want | ||
2318 | before trying to use it (bz#2931). | ||
2319 | |||
2320 | commit 6010c0303a422a9c5fa8860c061bf7105eb7f8b2 | ||
2321 | Author: djm@openbsd.org <djm@openbsd.org> | ||
2322 | Date: Fri Nov 16 03:03:10 2018 +0000 | ||
2323 | |||
2324 | upstream: disallow empty incoming filename or ones that refer to the | ||
2325 | |||
2326 | current directory; based on report/patch from Harry Sintonen | ||
2327 | |||
2328 | OpenBSD-Commit-ID: f27651b30eaee2df49540ab68d030865c04f6de9 | ||
2329 | |||
2330 | commit aaed635e3a401cfcc4cc97f33788179c458901c3 | ||
2331 | Author: djm@openbsd.org <djm@openbsd.org> | ||
2332 | Date: Fri Nov 16 02:46:20 2018 +0000 | ||
2333 | |||
2334 | upstream: fix bug in client that was keeping a redundant ssh-agent | ||
2335 | |||
2336 | socket around for the life of the connection; bz#2912; reported by Simon | ||
2337 | Tatham; ok dtucker@ | ||
2338 | |||
2339 | OpenBSD-Commit-ID: 4ded588301183d343dce3e8c5fc1398e35058478 | ||
2340 | |||
2341 | commit e76135e3007f1564427b2956c628923d8dc2f75a | ||
2342 | Author: djm@openbsd.org <djm@openbsd.org> | ||
2343 | Date: Fri Nov 16 02:43:56 2018 +0000 | ||
2344 | |||
2345 | upstream: fix bug in HostbasedAcceptedKeyTypes and | ||
2346 | |||
2347 | PubkeyAcceptedKeyTypes options. If only RSA-SHA2 siganture types were | ||
2348 | specified, then authentication would always fail for RSA keys as the monitor | ||
2349 | checks only the base key (not the signature algorithm) type against | ||
2350 | *AcceptedKeyTypes. bz#2746; reported by Jakub Jelen; ok dtucker | ||
2351 | |||
2352 | OpenBSD-Commit-ID: 117bc3dc54578dbdb515a1d3732988cb5b00461b | ||
2353 | |||
2354 | commit 5c1a63562cac0574c226224075b0829a50b48c9d | ||
2355 | Author: djm@openbsd.org <djm@openbsd.org> | ||
2356 | Date: Fri Nov 16 02:30:20 2018 +0000 | ||
2357 | |||
2358 | upstream: support a prefix of '@' to suppress echo of sftp batch | ||
2359 | |||
2360 | commands; bz#2926; ok dtucker@ | ||
2361 | |||
2362 | OpenBSD-Commit-ID: 9d635636bc84aeae796467e059f7634de990a79d | ||
2363 | |||
2364 | commit 90ef45f7aac33eaf55ec344e101548a01e570f29 | ||
2365 | Author: schwarze@openbsd.org <schwarze@openbsd.org> | ||
2366 | Date: Tue Nov 13 07:22:45 2018 +0000 | ||
2367 | |||
2368 | upstream: fix markup error (missing blank before delimiter); from | ||
2369 | |||
2370 | Mike Frysinger <vapier at gentoo dot org> | ||
2371 | |||
2372 | OpenBSD-Commit-ID: 1bc5392f795ca86318d695e0947eaf71a5a4f6d9 | ||
2373 | |||
2374 | commit 960e7c672dc106f3b759c081de3edb4d1138b36e | ||
2375 | Author: djm@openbsd.org <djm@openbsd.org> | ||
2376 | Date: Fri Nov 9 02:57:58 2018 +0000 | ||
2377 | |||
2378 | upstream: typo in error message; caught by Debian lintian, via | ||
2379 | |||
2380 | Colin Watson | ||
2381 | |||
2382 | OpenBSD-Commit-ID: bff614c7bd1f4ca491a84e9b5999f848d0d66758 | ||
2383 | |||
2384 | commit 81f1620c836e6c79c0823ba44acca605226a80f1 | ||
2385 | Author: djm@openbsd.org <djm@openbsd.org> | ||
2386 | Date: Fri Nov 9 02:56:22 2018 +0000 | ||
2387 | |||
2388 | upstream: correct local variable name; from yawang AT microsoft.com | ||
2389 | |||
2390 | OpenBSD-Commit-ID: a0c228390856a215bb66319c89cb3959d3af8c87 | ||
2391 | |||
2392 | commit 1293740e800fa2e5ccd38842a2e4970c6f3b9831 | ||
2393 | Author: dtucker@openbsd.org <dtucker@openbsd.org> | ||
2394 | Date: Wed Oct 31 11:20:05 2018 +0000 | ||
2395 | |||
2396 | upstream: Import new moduli. | ||
2397 | |||
2398 | OpenBSD-Commit-ID: c07772f58028fda683ee6abd41c73da3ff70d403 | ||
2399 | |||
2400 | commit 46925ae28e53fc9add336a4fcdb7ed4b86c3591c | ||
2401 | Author: djm@openbsd.org <djm@openbsd.org> | ||
2402 | Date: Fri Oct 26 01:23:03 2018 +0000 | ||
2403 | |||
2404 | upstream: mention ssh-ed25519-cert-v01@openssh.com in list of cert | ||
2405 | |||
2406 | key type at start of doc | ||
2407 | |||
2408 | OpenBSD-Commit-ID: b46b0149256d67f05f2d5d01e160634ed1a67324 | ||
2409 | |||
2410 | commit 8d8340e2c215155637fe19cb1a837f71b2d55f7b | ||
2411 | Author: Darren Tucker <dtucker@dtucker.net> | ||
2412 | Date: Fri Nov 16 13:32:13 2018 +1100 | ||
2413 | |||
2414 | Remove fallback check for /usr/local/ssl. | ||
2415 | |||
2416 | If configure could not find a working OpenSSL installation it would | ||
2417 | fall back to checking in /usr/local/ssl. This made sense back when | ||
2418 | systems did not ship with OpenSSL, but most do and OpenSSL 1.1 doesn't | ||
2419 | use that as a default any more. The fallback behaviour also meant | ||
2420 | that if you pointed --with-ssl-dir at a specific directory and it | ||
2421 | didn't work, it would silently use either the system libs or the ones | ||
2422 | in /usr/local/ssl. If you want to use /usr/local/ssl you'll need to | ||
2423 | pass configure --with-ssl-dir=/usr/local/ssl. ok djm@ | ||
2424 | |||
2425 | commit ce93472134fb22eff73edbcd173a21ae38889331 | ||
2426 | Author: Darren Tucker <dtucker@dtucker.net> | ||
2427 | Date: Fri Nov 16 12:44:01 2018 +1100 | ||
2428 | |||
2429 | Fix check for OpenSSL 1.0.1 exactly. | ||
2430 | |||
2431 | Both INSTALL and configure.ac claim OpenSSL >= 1.0.1 is supported; fix | ||
2432 | compile-time check for 1.0.1 to match. | ||
2433 | |||
2434 | commit f2970868f86161a22b2c377057fa3891863a692a | ||
2435 | Author: Darren Tucker <dtucker@dtucker.net> | ||
2436 | Date: Sun Nov 11 15:58:20 2018 +1100 | ||
2437 | |||
2438 | Improve warnings in cygwin service setup. | ||
2439 | |||
2440 | bz#2922, patch from vinschen at redhat.com. | ||
2441 | |||
2442 | commit bd2d54fc1eee84bf87158a1277a50e6c8a303339 | ||
2443 | Author: Darren Tucker <dtucker@dtucker.net> | ||
2444 | Date: Sun Nov 11 15:54:54 2018 +1100 | ||
2445 | |||
2446 | Remove hardcoded service name in cygwin setup. | ||
2447 | |||
2448 | bz#2922, patch from Christian.Lupien at USherbrooke.ca, sanity check | ||
2449 | by vinschen at redhat.com. | ||
2450 | |||
2451 | commit d0153c77bf7964e694f1d26c56c41a571b8e9466 | ||
2452 | Author: Dag-Erling Smørgrav <des@des.no> | ||
2453 | Date: Tue Oct 9 23:03:40 2018 +0200 | ||
2454 | |||
2455 | AC_CHECK_SIZEOF() no longer needs a second argument. | ||
2456 | |||
2457 | commit 9b47b083ca9d866249ada9f02dbd57c87b13806e | ||
2458 | Author: Manoj Ampalam <manojamp@microsoft.com> | ||
2459 | Date: Thu Nov 8 22:41:59 2018 -0800 | ||
2460 | |||
2461 | Fix error message w/out nistp521. | ||
2462 | |||
2463 | Correct error message when OpenSSL doesn't support certain ECDSA key | ||
2464 | lengths. | ||
2465 | |||
2466 | commit 624d19ac2d56fa86a22417c35536caceb3be346f | ||
2467 | Author: Eneas U de Queiroz <cote2004-github@yahoo.com> | ||
2468 | Date: Tue Oct 9 16:17:42 2018 -0300 | ||
2469 | |||
2470 | fix compilation with openssl built without ECC | ||
2471 | |||
2472 | ECDSA code in openssh-compat.h and libressl-api-compat.c needs to be | ||
2473 | guarded by OPENSSL_HAS_ECC | ||
2474 | |||
2475 | Signed-off-by: Eneas U de Queiroz <cote2004-github@yahoo.com> | ||
2476 | |||
2477 | commit 1801cd11d99d05a66ab5248c0555f55909a355ce | ||
2478 | Author: Darren Tucker <dtucker@dtucker.net> | ||
2479 | Date: Thu Nov 8 15:03:11 2018 +1100 | ||
2480 | |||
2481 | Simplify OpenSSL 1.1 function checks. | ||
2482 | |||
2483 | Replace AC_SEARCH_LIBS checks for OpenSSL 1.1 functions with a single | ||
2484 | AC_CHECK_FUNCS. ok djm@ | ||
2485 | |||
2486 | commit bc32f118d484e4d71d2a0828fd4eab7e4176c9af | ||
2487 | Author: Darren Tucker <dtucker@dtucker.net> | ||
2488 | Date: Mon Nov 5 17:31:24 2018 +1100 | ||
2489 | |||
2490 | Fix pasto for HAVE_EVP_CIPHER_CTX_SET_IV. | ||
2491 | |||
2492 | Prevents unnecessary redefinition. Patch from mforney at mforney.org. | ||
2493 | |||
2494 | commit 3719df60c66abc4b47200d41f571d67772f293ba | ||
2495 | Author: Darren Tucker <dtucker@dtucker.net> | ||
2496 | Date: Wed Oct 31 22:21:03 2018 +1100 | ||
2497 | |||
2498 | Import new moduli. | ||
2499 | |||
2500 | commit 595605d4abede475339d6a1f07a8cc674c11d1c3 | ||
2501 | Author: Darren Tucker <dtucker@dtucker.net> | ||
2502 | Date: Sun Oct 28 15:18:13 2018 +1100 | ||
2503 | |||
2504 | Update check for minimum OpenSSL version. | ||
2505 | |||
2506 | commit 6ab75aba340d827140d7ba719787aabaf39a0355 | ||
2507 | Author: Darren Tucker <dtucker@dtucker.net> | ||
2508 | Date: Sun Oct 28 15:16:31 2018 +1100 | ||
2509 | |||
2510 | Update required OpenSSL versions to match current. | ||
2511 | |||
2512 | commit c801b0e38eae99427f37869370151b78f8e15c5d | ||
2513 | Author: Darren Tucker <dtucker@dtucker.net> | ||
2514 | Date: Sun Oct 28 14:34:12 2018 +1100 | ||
2515 | |||
2516 | Use detected version functions in openssl compat. | ||
2517 | |||
2518 | Use detected functions in compat layer instead of guessing based on | ||
2519 | versions. Really fixes builds with LibreSSL, not just configure. | ||
2520 | |||
2521 | commit 262d81a259d4aa1507c709ec9d5caa21c7740722 | ||
2522 | Author: Darren Tucker <dtucker@dtucker.net> | ||
2523 | Date: Sat Oct 27 16:45:59 2018 +1100 | ||
2524 | |||
2525 | Check for the existence of openssl version funcs. | ||
2526 | |||
2527 | Check for the existence of openssl version functions and use the ones | ||
2528 | detected instead of trying to guess based on the int32 version | ||
2529 | identifier. Fixes builds with LibreSSL. | ||
2530 | |||
2531 | commit 406a24b25d6a2bdd70cacd16de7e899dcb2a8829 | ||
2532 | Author: Damien Miller <djm@mindrot.org> | ||
2533 | Date: Fri Oct 26 13:43:28 2018 +1100 | ||
2534 | |||
2535 | fix builds on OpenSSL <= 1.0.x | ||
2536 | |||
2537 | I thought OpenSSL 1.0.x offered the new-style OpenSSL_version_num() API | ||
2538 | to obtain version number, but they don't. | ||
2539 | |||
2540 | commit 859754bdeb41373d372e36b5dc89c547453addb3 | ||
2541 | Author: Damien Miller <djm@mindrot.org> | ||
2542 | Date: Tue Oct 23 17:10:41 2018 +1100 | ||
2543 | |||
2544 | remove remaining references to SSLeay | ||
2545 | |||
2546 | Prompted by Rosen Penev | ||
2547 | |||
2548 | commit b9fea45a68946c8dfeace72ad1f6657c18f2a98a | ||
2549 | Author: Damien Miller <djm@mindrot.org> | ||
2550 | Date: Tue Oct 23 17:10:35 2018 +1100 | ||
2551 | |||
2552 | regen depend | ||
2553 | |||
2554 | commit a65784c9f9c5d00cf1a0e235090170abc8d07c73 | ||
2555 | Author: djm@openbsd.org <djm@openbsd.org> | ||
2556 | Date: Tue Oct 23 05:56:35 2018 +0000 | ||
2557 | |||
2558 | upstream: refer to OpenSSL not SSLeay; | ||
2559 | |||
2560 | we're old, but we don't have to act it | ||
2561 | |||
2562 | OpenBSD-Commit-ID: 9ca38d11f8ed19e61a55108d1e892d696cee08ec | ||
2563 | |||
2564 | commit c0a35265907533be10ca151ac797f34ae0d68969 | ||
2565 | Author: Damien Miller <djm@mindrot.org> | ||
2566 | Date: Mon Oct 22 11:22:50 2018 +1100 | ||
2567 | |||
2568 | fix compile for openssl 1.0.x w/ --with-ssl-engine | ||
2569 | |||
2570 | bz#2921, patch from cotequeiroz | ||
2571 | |||
2572 | commit 31b49525168245abe16ad49d7b7f519786b53a38 | ||
2573 | Author: Darren Tucker <dtucker@dtucker.net> | ||
2574 | Date: Mon Oct 22 20:05:18 2018 +1100 | ||
2575 | |||
2576 | Include openssl compatibility. | ||
2577 | |||
2578 | Patch from rosenp at gmail.com via openssh-unix-dev. | ||
2579 | |||
2580 | commit a4fc253f5f44f0e4c47aafe2a17d2c46481d3c04 | ||
2581 | Author: djm@openbsd.org <djm@openbsd.org> | ||
2582 | Date: Fri Oct 19 03:12:42 2018 +0000 | ||
2583 | |||
2584 | upstream: when printing certificate contents "ssh-keygen -Lf | ||
2585 | |||
2586 | /path/certificate", include the algorithm that the CA used to sign the cert. | ||
2587 | |||
2588 | OpenBSD-Commit-ID: 1ea20b5048a851a7a0758dcb9777a211a2c0dddd | ||
2589 | |||
2590 | commit 83b3d99d2b47321b7ebb8db6f6ea04f3808bc069 | ||
2591 | Author: florian@openbsd.org <florian@openbsd.org> | ||
2592 | Date: Mon Oct 15 11:28:50 2018 +0000 | ||
2593 | |||
2594 | upstream: struct sockaddr_storage is guaranteed to be large enough, | ||
2595 | |||
2596 | no need to check the size. OK kn, deraadt | ||
2597 | |||
2598 | OpenBSD-Commit-ID: 0aa56e92eb49c79f495b31a5093109ec5841f439 | ||
2599 | |||
1 | commit aede1c34243a6f7feae2fb2cb686ade5f9be6f3d | 2600 | commit aede1c34243a6f7feae2fb2cb686ade5f9be6f3d |
2 | Author: Damien Miller <djm@mindrot.org> | 2601 | Author: Damien Miller <djm@mindrot.org> |
3 | Date: Wed Oct 17 11:01:20 2018 +1100 | 2602 | Date: Wed Oct 17 11:01:20 2018 +1100 |
@@ -7741,1966 +10340,3 @@ Date: Mon Apr 17 11:02:31 2017 +0000 | |||
7741 | -Wpointer-sign and -Wold-style-definition. | 10340 | -Wpointer-sign and -Wold-style-definition. |
7742 | 10341 | ||
7743 | Upstream-ID: 5cbe348aa76dc1adf55be6c0e388fafaa945439a | 10342 | Upstream-ID: 5cbe348aa76dc1adf55be6c0e388fafaa945439a |
7744 | |||
7745 | commit 4d827f0d75a53d3952288ab882efbddea7ffadfe | ||
7746 | Author: djm@openbsd.org <djm@openbsd.org> | ||
7747 | Date: Tue Apr 4 00:24:56 2017 +0000 | ||
7748 | |||
7749 | upstream commit | ||
7750 | |||
7751 | disallow creation (of empty files) in read-only mode; | ||
7752 | reported by Michal Zalewski, feedback & ok deraadt@ | ||
7753 | |||
7754 | Upstream-ID: 5d9c8f2fa8511d4ecf95322994ffe73e9283899b | ||
7755 | |||
7756 | commit ef47843af0a904a21c920e619c5aec97b65dd9ac | ||
7757 | Author: deraadt@openbsd.org <deraadt@openbsd.org> | ||
7758 | Date: Sun Mar 26 00:18:52 2017 +0000 | ||
7759 | |||
7760 | upstream commit | ||
7761 | |||
7762 | incorrect renditions of this quote bother me | ||
7763 | |||
7764 | Upstream-ID: 1662be3ebb7a71d543da088119c31d4d463a9e49 | ||
7765 | |||
7766 | commit d9048861bea842c4eba9c2dbbf97064cc2a5ef02 | ||
7767 | Author: Darren Tucker <dtucker@zip.com.au> | ||
7768 | Date: Fri Mar 31 11:04:43 2017 +1100 | ||
7769 | |||
7770 | Check for and use gcc's -pipe. | ||
7771 | |||
7772 | Speeds up configure and build by a couple of percent. ok djm@ | ||
7773 | |||
7774 | commit 282cad2240c4fbc104c2f2df86d688192cbbe4bb | ||
7775 | Author: Darren Tucker <dtucker@zip.com.au> | ||
7776 | Date: Wed Mar 29 16:34:44 2017 +1100 | ||
7777 | |||
7778 | Import fmt_scaled.c rev 1.16 from OpenBSD. | ||
7779 | |||
7780 | Fix overly-conservative overflow checks on mulitplications and add checks | ||
7781 | on additions. This allows scan_scaled to work up to +/-LLONG_MAX (LLONG_MIN | ||
7782 | will still be flagged as a range error). ok millert@ | ||
7783 | |||
7784 | commit c73a229e4edf98920f395e19fd310684fc6bb951 | ||
7785 | Author: Darren Tucker <dtucker@zip.com.au> | ||
7786 | Date: Wed Mar 29 16:34:02 2017 +1100 | ||
7787 | |||
7788 | Import fmt_scaled.c rev 1.15 from OpenBSD. | ||
7789 | |||
7790 | Collapse underflow and overflow checks into a single block. | ||
7791 | ok djm@ millert@ | ||
7792 | |||
7793 | commit d427b73bf5a564f663d16546dbcbd84ba8b9d4af | ||
7794 | Author: Darren Tucker <dtucker@zip.com.au> | ||
7795 | Date: Wed Mar 29 16:32:57 2017 +1100 | ||
7796 | |||
7797 | Import fmt_scaled.c rev 1.14 from OpenBSD. | ||
7798 | |||
7799 | Catch integer underflow in scan_scaled reported by Nicolas Iooss. | ||
7800 | ok deraadt@ djm@ | ||
7801 | |||
7802 | commit d13281f2964abc5f2e535e1613c77fc61b0c53e7 | ||
7803 | Author: Darren Tucker <dtucker@zip.com.au> | ||
7804 | Date: Wed Mar 29 12:39:39 2017 +1100 | ||
7805 | |||
7806 | Don't check privsep user or path when unprivileged | ||
7807 | |||
7808 | If running with privsep (mandatory now) as a non-privileged user, we | ||
7809 | don't chroot or change to an unprivileged user however we still checked | ||
7810 | the existence of the user and directory. Don't do those checks if we're | ||
7811 | not going to use them. Based in part on a patch from Lionel Fourquaux | ||
7812 | via Corinna Vinschen, ok djm@ | ||
7813 | |||
7814 | commit f2742a481fe151e493765a3fbdef200df2ea7037 | ||
7815 | Author: Darren Tucker <dtucker@zip.com.au> | ||
7816 | Date: Wed Mar 29 10:50:31 2017 +1100 | ||
7817 | |||
7818 | Remove SHA256 EVP wrapper implementation. | ||
7819 | |||
7820 | All supported versions of OpenSSL should now have SHA256 so remove our | ||
7821 | EVP wrapper implementaion. ok djm@ | ||
7822 | |||
7823 | commit 5346f271fc76549caf4a8e65b5fba319be422fe9 | ||
7824 | Author: Darren Tucker <dtucker@zip.com.au> | ||
7825 | Date: Wed Mar 29 10:23:58 2017 +1100 | ||
7826 | |||
7827 | Remove check for OpenSSL < 0.9.8g. | ||
7828 | |||
7829 | We no longer support OpenSSL < 1.0.1 so remove check for unreliable ECC | ||
7830 | in OpenSSL < 0.9.8g. | ||
7831 | |||
7832 | commit 8fed0a5fe7b4e78a6810b133d8e91be9742ee0a1 | ||
7833 | Author: Darren Tucker <dtucker@zip.com.au> | ||
7834 | Date: Wed Mar 29 10:16:15 2017 +1100 | ||
7835 | |||
7836 | Remove compat code for OpenSSL < 0.9.7. | ||
7837 | |||
7838 | Resyncs that code with OpenBSD upstream. | ||
7839 | |||
7840 | commit 608ec1f62ff22fdccc3952e51463d79c43cbd0d3 | ||
7841 | Author: Darren Tucker <dtucker@zip.com.au> | ||
7842 | Date: Wed Mar 29 09:50:54 2017 +1100 | ||
7843 | |||
7844 | Remove SSHv1 code path. | ||
7845 | |||
7846 | Server-side support for Protocol 1 has been removed so remove !compat20 | ||
7847 | PAM code path. | ||
7848 | |||
7849 | commit 7af27bf538cbc493d609753f9a6d43168d438f1b | ||
7850 | Author: Darren Tucker <dtucker@zip.com.au> | ||
7851 | Date: Fri Mar 24 09:44:56 2017 +1100 | ||
7852 | |||
7853 | Enable ldns when using ldns-config. | ||
7854 | |||
7855 | Actually enable ldns when attempting to use ldns-config. bz#2697, patch | ||
7856 | from fredrik at fornwall.net. | ||
7857 | |||
7858 | commit 58b8cfa2a062b72139d7229ae8de567f55776f24 | ||
7859 | Author: Damien Miller <djm@mindrot.org> | ||
7860 | Date: Wed Mar 22 12:43:02 2017 +1100 | ||
7861 | |||
7862 | Missing header on Linux/s390 | ||
7863 | |||
7864 | Patch from Jakub Jelen | ||
7865 | |||
7866 | commit 096fb65084593f9f3c1fc91b6d9052759a272a00 | ||
7867 | Author: djm@openbsd.org <djm@openbsd.org> | ||
7868 | Date: Mon Mar 20 22:08:06 2017 +0000 | ||
7869 | |||
7870 | upstream commit | ||
7871 | |||
7872 | remove /usr/bin/time calls around tests, makes diffing test | ||
7873 | runs harder. Based on patch from Mike Frysinger | ||
7874 | |||
7875 | Upstream-Regress-ID: 81c1083b14dcf473b23d2817882f40b346ebc95c | ||
7876 | |||
7877 | commit 6b853c6f8ba5eecc50f3b57af8e63f8184eb0fa6 | ||
7878 | Author: Damien Miller <djm@mindrot.org> | ||
7879 | Date: Tue Mar 21 08:47:55 2017 +1100 | ||
7880 | |||
7881 | Fix syntax error on Linux/X32 | ||
7882 | |||
7883 | Patch from Mike Frysinger | ||
7884 | |||
7885 | commit d38f05dbdd291212bc95ea80648b72b7177e9f4e | ||
7886 | Author: Darren Tucker <dtucker@zip.com.au> | ||
7887 | Date: Mon Mar 20 13:38:27 2017 +1100 | ||
7888 | |||
7889 | Add llabs() implementation. | ||
7890 | |||
7891 | commit 72536316a219b7394996a74691a5d4ec197480f7 | ||
7892 | Author: Damien Miller <djm@mindrot.org> | ||
7893 | Date: Mon Mar 20 12:23:04 2017 +1100 | ||
7894 | |||
7895 | crank version numbers | ||
7896 | |||
7897 | commit 3be52bc36bdfd24ded7e0f46999e7db520fb4e3f | ||
7898 | Author: djm@openbsd.org <djm@openbsd.org> | ||
7899 | Date: Mon Mar 20 01:18:59 2017 +0000 | ||
7900 | |||
7901 | upstream commit | ||
7902 | |||
7903 | openssh-7.5 | ||
7904 | |||
7905 | Upstream-ID: b8b9a4a949427c393cd868215e1724ceb3467ee5 | ||
7906 | |||
7907 | commit db84e52fe9cfad57f22e7e23c5fbf00092385129 | ||
7908 | Author: Damien Miller <djm@mindrot.org> | ||
7909 | Date: Mon Mar 20 12:07:20 2017 +1100 | ||
7910 | |||
7911 | I'm a doofus. | ||
7912 | |||
7913 | Unbreak obvious syntax error. | ||
7914 | |||
7915 | commit 89f04852db27643717c9c3a2b0dde97ae50099ee | ||
7916 | Author: Damien Miller <djm@mindrot.org> | ||
7917 | Date: Mon Mar 20 11:53:34 2017 +1100 | ||
7918 | |||
7919 | on Cygwin, check paths from server for backslashes | ||
7920 | |||
7921 | Pointed out by Jann Horn of Google Project Zero | ||
7922 | |||
7923 | commit 7ef1f9bafc2cc8d97ff2fbd4f280002b6e8ea5d9 | ||
7924 | Author: Damien Miller <djm@mindrot.org> | ||
7925 | Date: Mon Mar 20 11:48:34 2017 +1100 | ||
7926 | |||
7927 | Yet another synonym for ASCII: "646" | ||
7928 | |||
7929 | Used by NetBSD; this unbreaks mprintf() and friends there for the C | ||
7930 | locale (caught by dtucker@ and his menagerie of test systems). | ||
7931 | |||
7932 | commit 9165abfea3f68a0c684a6ed2e575e59bc31a3a6b | ||
7933 | Author: Damien Miller <djm@mindrot.org> | ||
7934 | Date: Mon Mar 20 09:58:34 2017 +1100 | ||
7935 | |||
7936 | create test mux socket in /tmp | ||
7937 | |||
7938 | Creating the socket in $OBJ could blow past the (quite limited) | ||
7939 | path limit for Unix domain sockets. As a bandaid for bz#2660, | ||
7940 | reported by Colin Watson; ok dtucker@ | ||
7941 | |||
7942 | commit 2adbe1e63bc313d03e8e84e652cc623af8ebb163 | ||
7943 | Author: markus@openbsd.org <markus@openbsd.org> | ||
7944 | Date: Wed Mar 15 07:07:39 2017 +0000 | ||
7945 | |||
7946 | upstream commit | ||
7947 | |||
7948 | disallow KEXINIT before NEWKEYS; ok djm; report by | ||
7949 | vegard.nossum at oracle.com | ||
7950 | |||
7951 | Upstream-ID: 3668852d1f145050e62f1da08917de34cb0c5234 | ||
7952 | |||
7953 | commit 2fbf91684d76d38b9cf06550b69c9e41bca5a71c | ||
7954 | Author: Darren Tucker <dtucker@zip.com.au> | ||
7955 | Date: Thu Mar 16 14:05:46 2017 +1100 | ||
7956 | |||
7957 | Include includes.h for compat bits. | ||
7958 | |||
7959 | commit b55f634e96b9c5b0cd991e23a9ca181bec4bdbad | ||
7960 | Author: Darren Tucker <dtucker@zip.com.au> | ||
7961 | Date: Thu Mar 16 13:45:17 2017 +1100 | ||
7962 | |||
7963 | Wrap stdint.h in #ifdef HAVE_STDINT_H | ||
7964 | |||
7965 | commit 55a1117d7342a0bf8b793250cf314bab6b482b99 | ||
7966 | Author: Damien Miller <djm@mindrot.org> | ||
7967 | Date: Thu Mar 16 11:22:42 2017 +1100 | ||
7968 | |||
7969 | Adapt Cygwin config script to privsep knob removal | ||
7970 | |||
7971 | Patch from Corinna Vinschen. | ||
7972 | |||
7973 | commit 1a321bfdb91defe3c4d9cca5651724ae167e5436 | ||
7974 | Author: deraadt@openbsd.org <deraadt@openbsd.org> | ||
7975 | Date: Wed Mar 15 03:52:30 2017 +0000 | ||
7976 | |||
7977 | upstream commit | ||
7978 | |||
7979 | accidents happen to the best of us; ok djm | ||
7980 | |||
7981 | Upstream-ID: b7a9dbd71011ffde95e06f6945fe7197dedd1604 | ||
7982 | |||
7983 | commit 25f837646be8c2017c914d34be71ca435dfc0e07 | ||
7984 | Author: djm@openbsd.org <djm@openbsd.org> | ||
7985 | Date: Wed Mar 15 02:25:09 2017 +0000 | ||
7986 | |||
7987 | upstream commit | ||
7988 | |||
7989 | fix regression in 7.4: deletion of PKCS#11-hosted keys | ||
7990 | would fail unless they were specified by full physical pathname. Report and | ||
7991 | fix from Jakub Jelen via bz#2682; ok dtucker@ | ||
7992 | |||
7993 | Upstream-ID: 5b5bc20ca11cacb5d5eb29c3f93fd18425552268 | ||
7994 | |||
7995 | commit a8c5eeacf032a7d3408957e45dd7603cc1baf55f | ||
7996 | Author: djm@openbsd.org <djm@openbsd.org> | ||
7997 | Date: Wed Mar 15 02:19:09 2017 +0000 | ||
7998 | |||
7999 | upstream commit | ||
8000 | |||
8001 | Fix segfault when sshd attempts to load RSA1 keys (can | ||
8002 | only happen when protocol v.1 support is enabled for the client). Reported by | ||
8003 | Jakub Jelen in bz#2686; ok dtucker | ||
8004 | |||
8005 | Upstream-ID: 8fdaec2ba4b5f65db1d094f6714ce64b25d871d7 | ||
8006 | |||
8007 | commit 66705948c0639a7061a0d0753266da7685badfec | ||
8008 | Author: djm@openbsd.org <djm@openbsd.org> | ||
8009 | Date: Tue Mar 14 07:19:07 2017 +0000 | ||
8010 | |||
8011 | upstream commit | ||
8012 | |||
8013 | Mark the sshd_config UsePrivilegeSeparation option as | ||
8014 | deprecated, effectively making privsep mandatory in sandboxing mode. ok | ||
8015 | markus@ deraadt@ | ||
8016 | |||
8017 | (note: this doesn't remove the !privsep code paths, though that will | ||
8018 | happen eventually). | ||
8019 | |||
8020 | Upstream-ID: b4c52666256c4dd865f8ce9431af5d6ce2d74a0a | ||
8021 | |||
8022 | commit f86586b03fe6cd8f595289bde200a94bc2c191af | ||
8023 | Author: Damien Miller <djm@mindrot.org> | ||
8024 | Date: Tue Mar 14 18:26:29 2017 +1100 | ||
8025 | |||
8026 | Make seccomp-bpf sandbox work on Linux/X32 | ||
8027 | |||
8028 | Allow clock_gettime syscall with X32 bit masked off. Apparently | ||
8029 | this is required for at least some kernel versions. bz#2142 | ||
8030 | Patch mostly by Colin Watson. ok dtucker@ | ||
8031 | |||
8032 | commit 2429cf78dd2a9741ce27ba25ac41c535274a0af6 | ||
8033 | Author: Damien Miller <djm@mindrot.org> | ||
8034 | Date: Tue Mar 14 18:01:52 2017 +1100 | ||
8035 | |||
8036 | require OpenSSL >=1.0.1 | ||
8037 | |||
8038 | commit e3ea335abeab731c68f2b2141bee85a4b0bf680f | ||
8039 | Author: Damien Miller <djm@mindrot.org> | ||
8040 | Date: Tue Mar 14 17:48:43 2017 +1100 | ||
8041 | |||
8042 | Remove macro trickery; no binary change | ||
8043 | |||
8044 | This stops the SC_ALLOW(), SC_ALLOW_ARG() and SC_DENY() macros | ||
8045 | prepending __NR_ to the syscall number parameter and just makes | ||
8046 | them explicit in the macro invocations. | ||
8047 | |||
8048 | No binary change in stripped object file before/after. | ||
8049 | |||
8050 | commit 5f1596e11d55539678c41f68aed358628d33d86f | ||
8051 | Author: Damien Miller <djm@mindrot.org> | ||
8052 | Date: Tue Mar 14 13:15:18 2017 +1100 | ||
8053 | |||
8054 | support ioctls for ICA crypto card on Linux/s390 | ||
8055 | |||
8056 | Based on patch from Eduardo Barretto; ok dtucker@ | ||
8057 | |||
8058 | commit b1b22dd0df2668b322dda174e501dccba2cf5c44 | ||
8059 | Author: Darren Tucker <dtucker@zip.com.au> | ||
8060 | Date: Tue Mar 14 14:19:36 2017 +1100 | ||
8061 | |||
8062 | Plumb conversion test into makefile. | ||
8063 | |||
8064 | commit f57783f1ddfb4cdfbd612c6beb5ec01cb5b9a6b9 | ||
8065 | Author: dtucker@openbsd.org <dtucker@openbsd.org> | ||
8066 | Date: Tue Mar 14 01:20:29 2017 +0000 | ||
8067 | |||
8068 | upstream commit | ||
8069 | |||
8070 | Add unit test for convtime(). | ||
8071 | |||
8072 | Upstream-Regress-ID: 8717bc0ca4c21120f6dd3a1d3b7a363f707c31e1 | ||
8073 | |||
8074 | commit 8884b7247d094cd11ff9e39c325ba928c5bdbc6c | ||
8075 | Author: dtucker@openbsd.org <dtucker@openbsd.org> | ||
8076 | Date: Tue Mar 14 01:10:07 2017 +0000 | ||
8077 | |||
8078 | upstream commit | ||
8079 | |||
8080 | Add ASSERT_LONG_* helpers. | ||
8081 | |||
8082 | Upstream-Regress-ID: fe15beaea8f5063c7f21b0660c722648e3d76431 | ||
8083 | |||
8084 | commit c6774d21185220c0ba11e8fd204bf0ad1a432071 | ||
8085 | Author: dtucker@openbsd.org <dtucker@openbsd.org> | ||
8086 | Date: Tue Mar 14 00:55:37 2017 +0000 | ||
8087 | |||
8088 | upstream commit | ||
8089 | |||
8090 | Fix convtime() overflow test on boundary condition, | ||
8091 | spotted by & ok djm. | ||
8092 | |||
8093 | Upstream-ID: 51f14c507ea87a3022e63f574100613ab2ba5708 | ||
8094 | |||
8095 | commit f5746b40cfe6d767c8e128fe50c43274b31cd594 | ||
8096 | Author: dtucker@openbsd.org <dtucker@openbsd.org> | ||
8097 | Date: Tue Mar 14 00:25:03 2017 +0000 | ||
8098 | |||
8099 | upstream commit | ||
8100 | |||
8101 | Check for integer overflow when parsing times in | ||
8102 | convtime(). Reported by nicolas.iooss at m4x.org, ok djm@ | ||
8103 | |||
8104 | Upstream-ID: 35e6a4e98f6fa24df50bfb8ba1307cf70e966f13 | ||
8105 | |||
8106 | commit f5907982f42a8d88a430b8a46752cbb7859ba979 | ||
8107 | Author: Darren Tucker <dtucker@zip.com.au> | ||
8108 | Date: Tue Mar 14 13:38:15 2017 +1100 | ||
8109 | |||
8110 | Add a "unit" target to run only unit tests. | ||
8111 | |||
8112 | commit 9e96b41682aed793fadbea5ccd472f862179fb02 | ||
8113 | Author: Damien Miller <djm@mindrot.org> | ||
8114 | Date: Tue Mar 14 12:24:47 2017 +1100 | ||
8115 | |||
8116 | Fix weakness in seccomp-bpf sandbox arg inspection | ||
8117 | |||
8118 | Syscall arguments are passed via an array of 64-bit values in struct | ||
8119 | seccomp_data, but we were only inspecting the bottom 32 bits and not | ||
8120 | even those correctly for BE systems. | ||
8121 | |||
8122 | Fortunately, the only case argument inspection was used was in the | ||
8123 | socketcall filtering so using this for sandbox escape seems | ||
8124 | impossible. | ||
8125 | |||
8126 | ok dtucker | ||
8127 | |||
8128 | commit 8ff3fc3f2f7c13e8968717bc2b895ee32c441275 | ||
8129 | Author: djm@openbsd.org <djm@openbsd.org> | ||
8130 | Date: Sat Mar 11 23:44:16 2017 +0000 | ||
8131 | |||
8132 | upstream commit | ||
8133 | |||
8134 | regress tests for loading certificates without public keys; | ||
8135 | bz#2617 based on patch from Adam Eijdenberg; ok markus@ dtucker@ | ||
8136 | |||
8137 | Upstream-Regress-ID: 0145d19328ed995b73fe2d9da33596b17429d0d0 | ||
8138 | |||
8139 | commit 1e24552716194db8f2f620587b876158a9ef56ad | ||
8140 | Author: djm@openbsd.org <djm@openbsd.org> | ||
8141 | Date: Sat Mar 11 23:40:26 2017 +0000 | ||
8142 | |||
8143 | upstream commit | ||
8144 | |||
8145 | allow ssh to use certificates accompanied by a private | ||
8146 | key file but no corresponding plain *.pub public key. bz#2617 based on patch | ||
8147 | from Adam Eijdenberg; ok dtucker@ markus@ | ||
8148 | |||
8149 | Upstream-ID: 295668dca2c39505281577217583ddd2bd4b00b9 | ||
8150 | |||
8151 | commit 0fb1a617a07b8df5de188dd5a0c8bf293d4bfc0e | ||
8152 | Author: markus@openbsd.org <markus@openbsd.org> | ||
8153 | Date: Sat Mar 11 13:07:35 2017 +0000 | ||
8154 | |||
8155 | upstream commit | ||
8156 | |||
8157 | Don't count the initial block twice when computing how | ||
8158 | many bytes to discard for the work around for the attacks against CBC-mode. | ||
8159 | ok djm@; report from Jean Paul, Kenny, Martin and Torben @ RHUL | ||
8160 | |||
8161 | Upstream-ID: f445f509a4e0a7ba3b9c0dae7311cb42458dc1e2 | ||
8162 | |||
8163 | commit ef653dd5bd5777132d9f9ee356225f9ee3379504 | ||
8164 | Author: dtucker@openbsd.org <dtucker@openbsd.org> | ||
8165 | Date: Fri Mar 10 07:18:32 2017 +0000 | ||
8166 | |||
8167 | upstream commit | ||
8168 | |||
8169 | krl.c | ||
8170 | |||
8171 | Upstream-ID: fc5e695d5d107d730182e2da7b23f00b489e0ee1 | ||
8172 | |||
8173 | commit d94c1dfef2ea30ca67b1204ada7c3b537c54f4d0 | ||
8174 | Author: Damien Miller <djm@mindrot.org> | ||
8175 | Date: Sun Mar 12 10:48:14 2017 +1100 | ||
8176 | |||
8177 | sync fmt_scaled.c with OpenBSD | ||
8178 | |||
8179 | revision 1.13 | ||
8180 | date: 2017/03/11 23:37:23; author: djm; state: Exp; lines: +14 -1; commitid: jnFKyHkB3CEiEZ2R; | ||
8181 | fix signed integer overflow in scan_scaled. Found by Nicolas Iooss | ||
8182 | using AFL against ssh_config. ok deraadt@ millert@ | ||
8183 | ---------------------------- | ||
8184 | revision 1.12 | ||
8185 | date: 2013/11/29 19:00:51; author: deraadt; state: Exp; lines: +6 -5; | ||
8186 | fairly simple unsigned char casts for ctype | ||
8187 | ok krw | ||
8188 | ---------------------------- | ||
8189 | revision 1.11 | ||
8190 | date: 2012/11/12 14:07:20; author: halex; state: Exp; lines: +4 -2; | ||
8191 | make scan_scaled set errno to EINVAL rather than ERANGE if it encounters | ||
8192 | an invalid multiplier, like the man page says it should | ||
8193 | |||
8194 | "looks sensible" deraadt@, ok ian@ | ||
8195 | ---------------------------- | ||
8196 | revision 1.10 | ||
8197 | date: 2009/06/20 15:00:04; author: martynas; state: Exp; lines: +4 -4; | ||
8198 | use llabs instead of the home-grown version; and some comment changes | ||
8199 | ok ian@, millert@ | ||
8200 | ---------------------------- | ||
8201 | |||
8202 | commit 894221a63fa061e52e414ca58d47edc5fe645968 | ||
8203 | Author: djm@openbsd.org <djm@openbsd.org> | ||
8204 | Date: Fri Mar 10 05:01:13 2017 +0000 | ||
8205 | |||
8206 | upstream commit | ||
8207 | |||
8208 | When updating hostkeys, accept RSA keys if | ||
8209 | HostkeyAlgorithms contains any RSA keytype. Previously, ssh could ignore RSA | ||
8210 | keys when any of the ssh-rsa-sha2-* methods was enabled in HostkeyAlgorithms | ||
8211 | nit ssh-rsa (SHA1 signatures) was not. bz#2650 reported by Luis Ressel; ok | ||
8212 | dtucker@ | ||
8213 | |||
8214 | Upstream-ID: c5e8cfee15c42f4a05d126158a0766ea06da79d2 | ||
8215 | |||
8216 | commit dd3e2298663f4cc1a06bc69582d00dcfee27d73c | ||
8217 | Author: djm@openbsd.org <djm@openbsd.org> | ||
8218 | Date: Fri Mar 10 04:24:55 2017 +0000 | ||
8219 | |||
8220 | upstream commit | ||
8221 | |||
8222 | make hostname matching really insensitive to case; | ||
8223 | bz#2685, reported by Petr Cerny; ok dtucker@ | ||
8224 | |||
8225 | Upstream-ID: e467622ff154269e36ba8b6c9e3d105e1c4a9253 | ||
8226 | |||
8227 | commit 77a9be9446697fe8b5499fe651f4a82a71a4b51f | ||
8228 | Author: djm@openbsd.org <djm@openbsd.org> | ||
8229 | Date: Fri Mar 10 03:52:48 2017 +0000 | ||
8230 | |||
8231 | upstream commit | ||
8232 | |||
8233 | reword a comment to make it fit 80 columns | ||
8234 | |||
8235 | Upstream-ID: 4ef509a66b96c7314bbcc87027c2af71fa9d0ba4 | ||
8236 | |||
8237 | commit 61b8ef6a66efaec07e023342cb94a10bdc2254dc | ||
8238 | Author: djm@openbsd.org <djm@openbsd.org> | ||
8239 | Date: Fri Mar 10 04:27:32 2017 +0000 | ||
8240 | |||
8241 | upstream commit | ||
8242 | |||
8243 | better match sshd config parser behaviour: fatal() if | ||
8244 | line is overlong, increase line buffer to match sshd's; bz#2651 reported by | ||
8245 | Don Fong; ok dtucker@ | ||
8246 | |||
8247 | Upstream-ID: b175ae7e0ba403833f1ee566edf10f67443ccd18 | ||
8248 | |||
8249 | commit db2597207e69912f2592cd86a1de8e948a9d7ffb | ||
8250 | Author: djm@openbsd.org <djm@openbsd.org> | ||
8251 | Date: Fri Mar 10 04:26:06 2017 +0000 | ||
8252 | |||
8253 | upstream commit | ||
8254 | |||
8255 | ensure hostname is lower-case before hashing it; | ||
8256 | bz#2591 reported by Griff Miller II; ok dtucker@ | ||
8257 | |||
8258 | Upstream-ID: c3b8b93804f376bd00d859b8bcd9fc0d86b4db17 | ||
8259 | |||
8260 | commit df9936936c695f85c1038bd706d62edf752aca4b | ||
8261 | Author: djm@openbsd.org <djm@openbsd.org> | ||
8262 | Date: Fri Mar 10 04:24:55 2017 +0000 | ||
8263 | |||
8264 | upstream commit | ||
8265 | |||
8266 | make hostname matching really insensitive to case; | ||
8267 | bz#2685, reported by Petr Cerny; ok dtucker@ | ||
8268 | |||
8269 | Upstream-ID: e632b7a9bf0d0558d5ff56dab98b7cca6c3db549 | ||
8270 | |||
8271 | commit 67eed24bfa7645d88fa0b883745fccb22a0e527e | ||
8272 | Author: dtucker@openbsd.org <dtucker@openbsd.org> | ||
8273 | Date: Fri Mar 10 04:11:00 2017 +0000 | ||
8274 | |||
8275 | upstream commit | ||
8276 | |||
8277 | Remove old null check from config dumper. Patch from | ||
8278 | jjelen at redhat.com vi bz#2687, ok djm@ | ||
8279 | |||
8280 | Upstream-ID: 824ab71467b78c4bab0dd1b3a38e8bc5f63dd528 | ||
8281 | |||
8282 | commit 183ba55aaaecca0206184b854ad6155df237adbe | ||
8283 | Author: djm@openbsd.org <djm@openbsd.org> | ||
8284 | Date: Fri Mar 10 04:07:20 2017 +0000 | ||
8285 | |||
8286 | upstream commit | ||
8287 | |||
8288 | fix regression in 7.4 server-sig-algs, where we were | ||
8289 | accidentally excluding SHA2 RSA signature methods. bz#2680, patch from Nuno | ||
8290 | Goncalves; ok dtucker@ | ||
8291 | |||
8292 | Upstream-ID: 81ac8bfb30960447740b9b8f6a214dcf322f12e8 | ||
8293 | |||
8294 | commit 66be4fe8c4435af5bbc82998501a142a831f1181 | ||
8295 | Author: dtucker@openbsd.org <dtucker@openbsd.org> | ||
8296 | Date: Fri Mar 10 03:53:11 2017 +0000 | ||
8297 | |||
8298 | upstream commit | ||
8299 | |||
8300 | Check for NULL return value from key_new. Patch from | ||
8301 | jjelen at redhat.com via bz#2687, ok djm@ | ||
8302 | |||
8303 | Upstream-ID: 059e33cd43cba88dc8caf0b1936fd4dd88fd5b8e | ||
8304 | |||
8305 | commit ec2892b5c7fea199914cb3a6afb3af38f84990bf | ||
8306 | Author: djm@openbsd.org <djm@openbsd.org> | ||
8307 | Date: Fri Mar 10 03:52:48 2017 +0000 | ||
8308 | |||
8309 | upstream commit | ||
8310 | |||
8311 | reword a comment to make it fit 80 columns | ||
8312 | |||
8313 | Upstream-ID: b4b48b4487c0821d16e812c40c9b09f03b28e349 | ||
8314 | |||
8315 | commit 7fadbb6da3f4122de689165651eb39985e1cba85 | ||
8316 | Author: dtucker@openbsd.org <dtucker@openbsd.org> | ||
8317 | Date: Fri Mar 10 03:48:57 2017 +0000 | ||
8318 | |||
8319 | upstream commit | ||
8320 | |||
8321 | Check for NULL argument to sshkey_read. Patch from | ||
8322 | jjelen at redhat.com via bz#2687, ok djm@ | ||
8323 | |||
8324 | Upstream-ID: c2d00c2ea50c4861d271d0a586f925cc64a87e0e | ||
8325 | |||
8326 | commit 5a06b9e019e2b0b0f65a223422935b66f3749de3 | ||
8327 | Author: dtucker@openbsd.org <dtucker@openbsd.org> | ||
8328 | Date: Fri Mar 10 03:45:40 2017 +0000 | ||
8329 | |||
8330 | upstream commit | ||
8331 | |||
8332 | Plug some mem leaks mostly on error paths. From jjelen | ||
8333 | at redhat.com via bz#2687, ok djm@ | ||
8334 | |||
8335 | Upstream-ID: 3fb030149598957a51b7c8beb32bf92cf30c96f2 | ||
8336 | |||
8337 | commit f6edbe9febff8121f26835996b1229b5064d31b7 | ||
8338 | Author: dtucker@openbsd.org <dtucker@openbsd.org> | ||
8339 | Date: Fri Mar 10 03:24:48 2017 +0000 | ||
8340 | |||
8341 | upstream commit | ||
8342 | |||
8343 | Plug mem leak on GLOB_NOMATCH case. From jjelen at | ||
8344 | redhat.com via bz#2687, ok djm@ | ||
8345 | |||
8346 | Upstream-ID: 8016a7ae97719d3aa55fb723fc2ad3200058340d | ||
8347 | |||
8348 | commit 566b3a46e89a2fda2db46f04f2639e92da64a120 | ||
8349 | Author: dtucker@openbsd.org <dtucker@openbsd.org> | ||
8350 | Date: Fri Mar 10 03:22:40 2017 +0000 | ||
8351 | |||
8352 | upstream commit | ||
8353 | |||
8354 | Plug descriptor leaks of auth_sock. From jjelen at | ||
8355 | redhat.com via bz#2687, ok djm@ | ||
8356 | |||
8357 | Upstream-ID: 248acb99a5ed2fdca37d1aa33c0fcee7be286d88 | ||
8358 | |||
8359 | commit 8a2834454c73dfc1eb96453c0e97690595f3f4c2 | ||
8360 | Author: djm@openbsd.org <djm@openbsd.org> | ||
8361 | Date: Fri Mar 10 03:18:24 2017 +0000 | ||
8362 | |||
8363 | upstream commit | ||
8364 | |||
8365 | correctly hash hosts with a port number. Reported by Josh | ||
8366 | Powers in bz#2692; ok dtucker@ | ||
8367 | |||
8368 | Upstream-ID: 468e357ff143e00acc05bdd2803a696b3d4b6442 | ||
8369 | |||
8370 | commit 9747b9c742de409633d4753bf1a752cbd211e2d3 | ||
8371 | Author: djm@openbsd.org <djm@openbsd.org> | ||
8372 | Date: Fri Mar 10 03:15:58 2017 +0000 | ||
8373 | |||
8374 | upstream commit | ||
8375 | |||
8376 | don't truncate off \r\n from long stderr lines; bz#2688, | ||
8377 | reported by Brian Dyson; ok dtucker@ | ||
8378 | |||
8379 | Upstream-ID: cdfdc4ba90639af807397ce996153c88af046ca4 | ||
8380 | |||
8381 | commit 4a4b75adac862029a1064577eb5af299b1580cdd | ||
8382 | Author: dtucker@openbsd.org <dtucker@openbsd.org> | ||
8383 | Date: Fri Mar 10 02:59:51 2017 +0000 | ||
8384 | |||
8385 | upstream commit | ||
8386 | |||
8387 | Validate digest arg in ssh_digest_final; from jjelen at | ||
8388 | redhat.com via bz#2687, ok djm@ | ||
8389 | |||
8390 | Upstream-ID: dbe5494dfddfe523fab341a3dab5a79e7338f878 | ||
8391 | |||
8392 | commit bee0167be2340d8de4bdc1ab1064ec957c85a447 | ||
8393 | Author: Darren Tucker <dtucker@zip.com.au> | ||
8394 | Date: Fri Mar 10 13:40:18 2017 +1100 | ||
8395 | |||
8396 | Check for NULL from malloc. | ||
8397 | |||
8398 | Part of bz#2687, from jjelen at redhat.com. | ||
8399 | |||
8400 | commit da39b09d43b137a5a3d071b51589e3efb3701238 | ||
8401 | Author: Darren Tucker <dtucker@zip.com.au> | ||
8402 | Date: Fri Mar 10 13:22:32 2017 +1100 | ||
8403 | |||
8404 | If OSX is using launchd, remove screen no. | ||
8405 | |||
8406 | Check for socket with and without screen number. From Apple and Jakob | ||
8407 | Schlyter via bz#2341, with contributions from Ron Frederick, ok djm@ | ||
8408 | |||
8409 | commit 8fb15311a011517eb2394bb95a467c209b8b336c | ||
8410 | Author: djm@openbsd.org <djm@openbsd.org> | ||
8411 | Date: Wed Mar 8 12:07:47 2017 +0000 | ||
8412 | |||
8413 | upstream commit | ||
8414 | |||
8415 | quote [host]:port in generated ProxyJump commandline; the | ||
8416 | [ / ] characters can confuse some shells (e.g. zsh). Reported by Lauri | ||
8417 | Tirkkonen via bugs@ | ||
8418 | |||
8419 | Upstream-ID: 65cdd161460e1351c3d778e974c1c2a4fa4bc182 | ||
8420 | |||
8421 | commit 18501151cf272a15b5f2c5e777f2e0933633c513 | ||
8422 | Author: dtucker@openbsd.org <dtucker@openbsd.org> | ||
8423 | Date: Mon Mar 6 02:03:20 2017 +0000 | ||
8424 | |||
8425 | upstream commit | ||
8426 | |||
8427 | Check l->hosts before dereferencing; fixes potential null | ||
8428 | pointer deref. ok djm@ | ||
8429 | |||
8430 | Upstream-ID: 81c0327c6ec361da794b5c680601195cc23d1301 | ||
8431 | |||
8432 | commit d072370793f1a20f01ad827ba8fcd3b8f2c46165 | ||
8433 | Author: dtucker@openbsd.org <dtucker@openbsd.org> | ||
8434 | Date: Mon Mar 6 00:44:51 2017 +0000 | ||
8435 | |||
8436 | upstream commit | ||
8437 | |||
8438 | linenum is unsigned long so use %lu in log formats. ok | ||
8439 | deraadt@ | ||
8440 | |||
8441 | Upstream-ID: 9dc582d9bb887ebe0164e030d619fc20b1a4ea08 | ||
8442 | |||
8443 | commit 12d3767ba4c84c32150cbe6ff6494498780f12c9 | ||
8444 | Author: djm@openbsd.org <djm@openbsd.org> | ||
8445 | Date: Fri Mar 3 06:13:11 2017 +0000 | ||
8446 | |||
8447 | upstream commit | ||
8448 | |||
8449 | fix ssh-keygen -H accidentally corrupting known_hosts that | ||
8450 | contained already-hashed entries. HKF_MATCH_HOST_HASHED is only set by | ||
8451 | hostkeys_foreach() when hostname matching is in use, so we need to look for | ||
8452 | the hash marker explicitly. | ||
8453 | |||
8454 | Upstream-ID: da82ad653b93e8a753580d3cf5cd448bc2520528 | ||
8455 | |||
8456 | commit d7abb771bd5a941b26144ba400a34563a1afa589 | ||
8457 | Author: djm@openbsd.org <djm@openbsd.org> | ||
8458 | Date: Tue Feb 28 06:10:08 2017 +0000 | ||
8459 | |||
8460 | upstream commit | ||
8461 | |||
8462 | small memleak: free fd_set on connection timeout (though | ||
8463 | we are heading to exit anyway). From Tom Rix in bz#2683 | ||
8464 | |||
8465 | Upstream-ID: 10e3dadbb8199845b66581473711642d9e6741c4 | ||
8466 | |||
8467 | commit 78142e3ab3887e53a968d6e199bcb18daaf2436e | ||
8468 | Author: jmc@openbsd.org <jmc@openbsd.org> | ||
8469 | Date: Mon Feb 27 14:30:33 2017 +0000 | ||
8470 | |||
8471 | upstream commit | ||
8472 | |||
8473 | errant dot; from klemens nanni | ||
8474 | |||
8475 | Upstream-ID: 83d93366a5acf47047298c5d3ebc5e7426f37921 | ||
8476 | |||
8477 | commit 8071a6924c12bb51406a9a64a4b2892675112c87 | ||
8478 | Author: djm@openbsd.org <djm@openbsd.org> | ||
8479 | Date: Fri Feb 24 03:16:34 2017 +0000 | ||
8480 | |||
8481 | upstream commit | ||
8482 | |||
8483 | might as well set the listener socket CLOEXEC | ||
8484 | |||
8485 | Upstream-ID: 9c538433d6a0ca79f5f21decc5620e46fb68ab57 | ||
8486 | |||
8487 | commit d5499190559ebe374bcdfa8805408646ceffad64 | ||
8488 | Author: djm@openbsd.org <djm@openbsd.org> | ||
8489 | Date: Sun Feb 19 00:11:29 2017 +0000 | ||
8490 | |||
8491 | upstream commit | ||
8492 | |||
8493 | add test cases for C locale; ok schwarze@ | ||
8494 | |||
8495 | Upstream-Regress-ID: 783d75de35fbc923d46e2a5e6cee30f8f381ba87 | ||
8496 | |||
8497 | commit 011c8ffbb0275281a0cf330054cf21be10c43e37 | ||
8498 | Author: djm@openbsd.org <djm@openbsd.org> | ||
8499 | Date: Sun Feb 19 00:10:57 2017 +0000 | ||
8500 | |||
8501 | upstream commit | ||
8502 | |||
8503 | Add a common nl_langinfo(CODESET) alias for US-ASCII | ||
8504 | "ANSI_X3.4-1968" that is used by Linux. Fixes mprintf output truncation for | ||
8505 | non-UTF-8 locales on Linux spotted by dtucker@; ok deraadt@ schwarze@ | ||
8506 | |||
8507 | Upstream-ID: c6808956ebffd64066f9075d839f74ff0dd60719 | ||
8508 | |||
8509 | commit 0c4430a19b73058a569573492f55e4c9eeaae67b | ||
8510 | Author: dtucker@openbsd.org <dtucker@openbsd.org> | ||
8511 | Date: Tue Feb 7 23:03:11 2017 +0000 | ||
8512 | |||
8513 | upstream commit | ||
8514 | |||
8515 | Remove deprecated SSH1 options RSAAuthentication and | ||
8516 | RhostsRSAAuthentication from regression test sshd_config. | ||
8517 | |||
8518 | Upstream-Regress-ID: 8066b753d9dce7cf02ff87af5c727ff680d99491 | ||
8519 | |||
8520 | commit 3baa4cdd197c95d972ec3d07f1c0d08f2d7d9199 | ||
8521 | Author: dtucker@openbsd.org <dtucker@openbsd.org> | ||
8522 | Date: Fri Feb 17 02:32:05 2017 +0000 | ||
8523 | |||
8524 | upstream commit | ||
8525 | |||
8526 | Do not show rsa1 key type in usage when compiled without | ||
8527 | SSH1 support. | ||
8528 | |||
8529 | Upstream-ID: 068b5c41357a02f319957746fa4e84ea73960f57 | ||
8530 | |||
8531 | commit ecc35893715f969e98fee118481f404772de4132 | ||
8532 | Author: dtucker@openbsd.org <dtucker@openbsd.org> | ||
8533 | Date: Fri Feb 17 02:31:14 2017 +0000 | ||
8534 | |||
8535 | upstream commit | ||
8536 | |||
8537 | ifdef out "rsa1" from the list of supported keytypes when | ||
8538 | compiled without SSH1 support. Found by kdunlop at guralp.com, ok djm@ | ||
8539 | |||
8540 | Upstream-ID: cea93a26433d235bb1d64b1d990f19a9c160a70f | ||
8541 | |||
8542 | commit 10577c6d96a55b877a960b2d0b75edef1b9945af | ||
8543 | Author: djm@openbsd.org <djm@openbsd.org> | ||
8544 | Date: Fri Feb 17 02:04:15 2017 +0000 | ||
8545 | |||
8546 | upstream commit | ||
8547 | |||
8548 | For ProxyJump/-J, surround host name with brackets to | ||
8549 | allow literal IPv6 addresses. From Dick Visser; ok dtucker@ | ||
8550 | |||
8551 | Upstream-ID: 3a5d3b0171250daf6a5235e91bce09c1d5746bf1 | ||
8552 | |||
8553 | commit b2afdaf1b52231aa23d2153f4a8c5a60a694dda4 | ||
8554 | Author: jsg@openbsd.org <jsg@openbsd.org> | ||
8555 | Date: Wed Feb 15 23:38:31 2017 +0000 | ||
8556 | |||
8557 | upstream commit | ||
8558 | |||
8559 | Fix memory leaks in match_filter_list() error paths. | ||
8560 | |||
8561 | ok dtucker@ markus@ | ||
8562 | |||
8563 | Upstream-ID: c7f96ac0877f6dc9188bbc908100a8d246cc7f0e | ||
8564 | |||
8565 | commit 6d5a41b38b55258213ecfaae9df7a758caa752a1 | ||
8566 | Author: djm@openbsd.org <djm@openbsd.org> | ||
8567 | Date: Wed Feb 15 01:46:47 2017 +0000 | ||
8568 | |||
8569 | upstream commit | ||
8570 | |||
8571 | fix division by zero crash in "df" output when server | ||
8572 | returns zero total filesystem blocks/inodes. Spotted by Guido Vranken; ok | ||
8573 | dtucker@ | ||
8574 | |||
8575 | Upstream-ID: 6fb6c2ae6b289aa07b6232dbc0be54682ef5419f | ||
8576 | |||
8577 | commit bd5d7d239525d595ecea92765334af33a45d9d63 | ||
8578 | Author: Darren Tucker <dtucker@zip.com.au> | ||
8579 | Date: Sun Feb 12 15:45:15 2017 +1100 | ||
8580 | |||
8581 | ifdef out EVP_R_PRIVATE_KEY_DECODE_ERROR | ||
8582 | |||
8583 | EVP_R_PRIVATE_KEY_DECODE_ERROR was added in OpenSSL 1.0.0 so ifdef out | ||
8584 | for the benefit of OpenSSL versions prior to that. | ||
8585 | |||
8586 | commit 155d540d00ff55f063421ec182ec8ff2b7ab6cbe | ||
8587 | Author: djm@openbsd.org <djm@openbsd.org> | ||
8588 | Date: Fri Feb 10 04:34:50 2017 +0000 | ||
8589 | |||
8590 | upstream commit | ||
8591 | |||
8592 | bring back r1.34 that was backed out for problems loading | ||
8593 | public keys: | ||
8594 | |||
8595 | translate OpenSSL error codes to something more | ||
8596 | meaninful; bz#2522 reported by Jakub Jelen, ok dtucker@ | ||
8597 | |||
8598 | with additional fix from Jakub Jelen to solve the backout. | ||
8599 | bz#2525 bz#2523 re-ok dtucker@ | ||
8600 | |||
8601 | Upstream-ID: a9d5bc0306f4473d9b4f4484f880e95f3c1cc031 | ||
8602 | |||
8603 | commit a287c5ad1e0bf9811c7b9221979b969255076019 | ||
8604 | Author: djm@openbsd.org <djm@openbsd.org> | ||
8605 | Date: Fri Feb 10 03:36:40 2017 +0000 | ||
8606 | |||
8607 | upstream commit | ||
8608 | |||
8609 | Sanitise escape sequences in key comments sent to printf | ||
8610 | but preserve valid UTF-8 when the locale supports it; bz#2520 ok dtucker@ | ||
8611 | |||
8612 | Upstream-ID: e8eed28712ba7b22d49be534237eed019875bd1e | ||
8613 | |||
8614 | commit e40269be388972848aafcca7060111c70aab5b87 | ||
8615 | Author: millert@openbsd.org <millert@openbsd.org> | ||
8616 | Date: Wed Feb 8 20:32:43 2017 +0000 | ||
8617 | |||
8618 | upstream commit | ||
8619 | |||
8620 | Avoid printf %s NULL. From semarie@, OK djm@ | ||
8621 | |||
8622 | Upstream-ID: 06beef7344da0208efa9275d504d60d2a5b9266c | ||
8623 | |||
8624 | commit 5b90709ab8704dafdb31e5651073b259d98352bc | ||
8625 | Author: djm@openbsd.org <djm@openbsd.org> | ||
8626 | Date: Mon Feb 6 09:22:51 2017 +0000 | ||
8627 | |||
8628 | upstream commit | ||
8629 | |||
8630 | Restore \r\n newline sequence for server ident string. The CR | ||
8631 | got lost in the flensing of SSHv1. Pointed out by Stef Bon | ||
8632 | |||
8633 | Upstream-ID: 5333fd43ce5396bf5999496096fac5536e678fac | ||
8634 | |||
8635 | commit 97c31c46ee2e6b46dfffdfc4f90bbbf188064cbc | ||
8636 | Author: djm@openbsd.org <djm@openbsd.org> | ||
8637 | Date: Fri Feb 3 23:01:42 2017 +0000 | ||
8638 | |||
8639 | upstream commit | ||
8640 | |||
8641 | unit test for match_filter_list() function; still want a | ||
8642 | better name for this... | ||
8643 | |||
8644 | Upstream-Regress-ID: 840ad6118552c35111f0a897af9c8d93ab8de92a | ||
8645 | |||
8646 | commit f1a193464a7b77646f0d0cedc929068e4a413ab4 | ||
8647 | Author: djm@openbsd.org <djm@openbsd.org> | ||
8648 | Date: Fri Feb 3 23:05:57 2017 +0000 | ||
8649 | |||
8650 | upstream commit | ||
8651 | |||
8652 | use ssh_packet_set_log_preamble() to include connection | ||
8653 | username in packet log messages, e.g. | ||
8654 | |||
8655 | Connection closed by invalid user foo 10.1.1.1 port 44056 [preauth] | ||
8656 | |||
8657 | ok markus@ bz#113 | ||
8658 | |||
8659 | Upstream-ID: 3591b88bdb5416d6066fb3d49d8fff2375bf1a15 | ||
8660 | |||
8661 | commit 07edd7e9537ab32aa52abb5fb2a915c350fcf441 | ||
8662 | Author: djm@openbsd.org <djm@openbsd.org> | ||
8663 | Date: Fri Feb 3 23:03:33 2017 +0000 | ||
8664 | |||
8665 | upstream commit | ||
8666 | |||
8667 | add ssh_packet_set_log_preamble() to allow inclusion of a | ||
8668 | preamble string in disconnect messages; ok markus@ | ||
8669 | |||
8670 | Upstream-ID: 34cb41182cd76d414c214ccb01c01707849afead | ||
8671 | |||
8672 | commit 68bc8cfa7642d3ccbf2cd64281c16b8b9205be59 | ||
8673 | Author: djm@openbsd.org <djm@openbsd.org> | ||
8674 | Date: Fri Feb 3 23:01:19 2017 +0000 | ||
8675 | |||
8676 | upstream commit | ||
8677 | |||
8678 | support =- for removing methods from algorithms lists, | ||
8679 | e.g. Ciphers=-*cbc; suggested by Cristian Ionescu-Idbohrn in bz#2671 "I like | ||
8680 | it" markus@ | ||
8681 | |||
8682 | Upstream-ID: c78c38f9f81a963b33d0eade559f6048add24a6d | ||
8683 | |||
8684 | commit c924b2ef941028a1f31e6e94f54dfeeeef462a4e | ||
8685 | Author: djm@openbsd.org <djm@openbsd.org> | ||
8686 | Date: Fri Feb 3 05:05:56 2017 +0000 | ||
8687 | |||
8688 | upstream commit | ||
8689 | |||
8690 | allow form-feed characters at EOL; bz#2431 ok dtucker@ | ||
8691 | |||
8692 | Upstream-ID: 1f453afaba6da2ae69d6afdf1ae79a917552f1a2 | ||
8693 | |||
8694 | commit 523db8540b720c4d21ab0ff6f928476c70c38aab | ||
8695 | Author: Damien Miller <djm@mindrot.org> | ||
8696 | Date: Fri Feb 3 16:01:22 2017 +1100 | ||
8697 | |||
8698 | prefer to use ldns-config to find libldns | ||
8699 | |||
8700 | Should fix bz#2603 - "Build with ldns and without kerberos support | ||
8701 | fails if ldns compiled with kerberos support" by including correct | ||
8702 | cflags/libs | ||
8703 | |||
8704 | ok dtucker@ | ||
8705 | |||
8706 | commit c998bf0afa1a01257a53793eba57941182e9e0b7 | ||
8707 | Author: dtucker@openbsd.org <dtucker@openbsd.org> | ||
8708 | Date: Fri Feb 3 02:56:00 2017 +0000 | ||
8709 | |||
8710 | upstream commit | ||
8711 | |||
8712 | Make ssh_packet_set_rekey_limits take u32 for the number of | ||
8713 | seconds until rekeying (negative values are rejected at config parse time). | ||
8714 | This allows the removal of some casts and a signed vs unsigned comparison | ||
8715 | warning. | ||
8716 | |||
8717 | rekey_time is cast to int64 for the comparison which is a no-op | ||
8718 | on OpenBSD, but should also do the right thing in -portable on | ||
8719 | anything still using 32bit time_t (until the system time actually | ||
8720 | wraps, anyway). | ||
8721 | |||
8722 | some early guidance deraadt@, ok djm@ | ||
8723 | |||
8724 | Upstream-ID: c9f18613afb994a07e7622eb326f49de3d123b6c | ||
8725 | |||
8726 | commit 3ec5fa4ba97d4c4853620daea26a33b9f1fe3422 | ||
8727 | Author: jsg@openbsd.org <jsg@openbsd.org> | ||
8728 | Date: Thu Feb 2 10:54:25 2017 +0000 | ||
8729 | |||
8730 | upstream commit | ||
8731 | |||
8732 | In vasnmprintf() return an error if malloc fails and | ||
8733 | don't set a function argument to the address of free'd memory. | ||
8734 | |||
8735 | ok djm@ | ||
8736 | |||
8737 | Upstream-ID: 1efffffff2f51d53c9141f245b90ac23d33b9779 | ||
8738 | |||
8739 | commit 858252fb1d451ebb0969cf9749116c8f0ee42753 | ||
8740 | Author: dtucker@openbsd.org <dtucker@openbsd.org> | ||
8741 | Date: Wed Feb 1 02:59:09 2017 +0000 | ||
8742 | |||
8743 | upstream commit | ||
8744 | |||
8745 | Return true reason for port forwarding failures where | ||
8746 | feasible rather than always "administratively prohibited". bz#2674, ok djm@ | ||
8747 | |||
8748 | Upstream-ID: d901d9887951774e604ca970e1827afaaef9e419 | ||
8749 | |||
8750 | commit 6ba9f893838489add6ec4213c7a997b425e4a9e0 | ||
8751 | Author: dtucker@openbsd.org <dtucker@openbsd.org> | ||
8752 | Date: Mon Jan 30 23:27:39 2017 +0000 | ||
8753 | |||
8754 | upstream commit | ||
8755 | |||
8756 | Small correction to the known_hosts section on when it is | ||
8757 | updated. Patch from lkppo at free.fr some time ago, pointed out by smallm at | ||
8758 | sdf.org | ||
8759 | |||
8760 | Upstream-ID: 1834d7af179dea1a12ad2137f84566664af225d5 | ||
8761 | |||
8762 | commit c61d5ec3c11e7ff9779b6127421d9f166cf10915 | ||
8763 | Author: Darren Tucker <dtucker@zip.com.au> | ||
8764 | Date: Fri Feb 3 14:10:34 2017 +1100 | ||
8765 | |||
8766 | Remove _XOPEN_SOURCE from wide char detection. | ||
8767 | |||
8768 | Having _XOPEN_SOURCE unconditionally causes problems on some platforms | ||
8769 | and configurations, notably Solaris 64-bit binaries. It was there for | ||
8770 | the benefit of Linux put the required bits in the *-*linux* section. | ||
8771 | |||
8772 | Patch from yvoinov at gmail.com. | ||
8773 | |||
8774 | commit f25ee13b3e81fd80efeb871dc150fe49d7fc8afd | ||
8775 | Author: djm@openbsd.org <djm@openbsd.org> | ||
8776 | Date: Mon Jan 30 05:22:14 2017 +0000 | ||
8777 | |||
8778 | upstream commit | ||
8779 | |||
8780 | fully unbreak: some $SSH invocations did not have -F | ||
8781 | specified and could pick up the ~/.ssh/config of the user running the tests | ||
8782 | |||
8783 | Upstream-Regress-ID: f362d1892c0d3e66212d5d3fc02d915c58ef6b89 | ||
8784 | |||
8785 | commit 6956e21fb26652887475fe77ea40d2efcf25908b | ||
8786 | Author: djm@openbsd.org <djm@openbsd.org> | ||
8787 | Date: Mon Jan 30 04:54:07 2017 +0000 | ||
8788 | |||
8789 | upstream commit | ||
8790 | |||
8791 | partially unbreak: was not specifying hostname on some | ||
8792 | $SSH invocations | ||
8793 | |||
8794 | Upstream-Regress-ID: bc8a5e98e57bad0a92ef4f34ed91c1d18294e2cc | ||
8795 | |||
8796 | commit 52763dd3fe0a4678dafdf7aeb32286e514130afc | ||
8797 | Author: djm@openbsd.org <djm@openbsd.org> | ||
8798 | Date: Mon Jan 30 01:03:00 2017 +0000 | ||
8799 | |||
8800 | upstream commit | ||
8801 | |||
8802 | revise keys/principals command hang fix (bz#2655) to | ||
8803 | consume entire output, avoiding sending SIGPIPE to subprocesses early; ok | ||
8804 | dtucker@ | ||
8805 | |||
8806 | Upstream-ID: 7cb04b31a61f8c78c4e48ceededcd2fd5c4ee1bc | ||
8807 | |||
8808 | commit 381a2615a154a82c4c53b787f4a564ef894fe9ac | ||
8809 | Author: djm@openbsd.org <djm@openbsd.org> | ||
8810 | Date: Mon Jan 30 00:38:50 2017 +0000 | ||
8811 | |||
8812 | upstream commit | ||
8813 | |||
8814 | small cleanup post SSHv1 removal: | ||
8815 | |||
8816 | remove SSHv1-isms in commented examples | ||
8817 | |||
8818 | reorder token table to group deprecated and compile-time conditional tokens | ||
8819 | better | ||
8820 | |||
8821 | fix config dumping code for some compile-time conditional options that | ||
8822 | weren't being correctly skipped (SSHv1 and PKCS#11) | ||
8823 | |||
8824 | Upstream-ID: f2e96b3cb3158d857c5a91ad2e15925df3060105 | ||
8825 | |||
8826 | commit 4833d01591b7eb049489d9558b65f5553387ed43 | ||
8827 | Author: djm@openbsd.org <djm@openbsd.org> | ||
8828 | Date: Mon Jan 30 00:34:01 2017 +0000 | ||
8829 | |||
8830 | upstream commit | ||
8831 | |||
8832 | some explicit NULL tests when dumping configured | ||
8833 | forwardings; from Karsten Weiss | ||
8834 | |||
8835 | Upstream-ID: 40957b8dea69672b0e50df6b4a91a94e3e37f72d | ||
8836 | |||
8837 | commit 326e2fae9f2e3e067b5651365eba86b35ee5a6b2 | ||
8838 | Author: djm@openbsd.org <djm@openbsd.org> | ||
8839 | Date: Mon Jan 30 00:32:28 2017 +0000 | ||
8840 | |||
8841 | upstream commit | ||
8842 | |||
8843 | misplaced braces in test; from Karsten Weiss | ||
8844 | |||
8845 | Upstream-ID: f7b794074d3aae8e35b69a91d211c599c94afaae | ||
8846 | |||
8847 | commit 3e032a95e46bfaea9f9e857678ac8fa5f63997fb | ||
8848 | Author: djm@openbsd.org <djm@openbsd.org> | ||
8849 | Date: Mon Jan 30 00:32:03 2017 +0000 | ||
8850 | |||
8851 | upstream commit | ||
8852 | |||
8853 | don't dereference authctxt before testing != NULL, it | ||
8854 | causes compilers to make assumptions; from Karsten Weiss | ||
8855 | |||
8856 | Upstream-ID: 794243aad1e976ebc717885b7a97a25e00c031b2 | ||
8857 | |||
8858 | commit 01cfaa2b1cfb84f3cdd32d1bf82b120a8d30e057 | ||
8859 | Author: djm@openbsd.org <djm@openbsd.org> | ||
8860 | Date: Fri Jan 6 02:51:16 2017 +0000 | ||
8861 | |||
8862 | upstream commit | ||
8863 | |||
8864 | use correct ssh-add program; bz#2654, from Colin Watson | ||
8865 | |||
8866 | Upstream-Regress-ID: 7042a36e1bdaec6562f6e57e9d047efe9c7a6030 | ||
8867 | |||
8868 | commit e5c7ec67cdc42ae2584085e0fc5cc5ee91133cf5 | ||
8869 | Author: dtucker@openbsd.org <dtucker@openbsd.org> | ||
8870 | Date: Fri Jan 6 02:26:10 2017 +0000 | ||
8871 | |||
8872 | upstream commit | ||
8873 | |||
8874 | Account for timeouts in the integrity tests as failures. | ||
8875 | |||
8876 | If the first test in a series for a given MAC happens to modify the low | ||
8877 | bytes of a packet length, then ssh will time out and this will be | ||
8878 | interpreted as a test failure. Patch from cjwatson at debian.org via | ||
8879 | bz#2658. | ||
8880 | |||
8881 | Upstream-Regress-ID: e7467613b0badedaa300bc6fc7495ec2f44e2fb9 | ||
8882 | |||
8883 | commit dbaf599b61bd6e0f8469363a8c8e7f633b334018 | ||
8884 | Author: dtucker@openbsd.org <dtucker@openbsd.org> | ||
8885 | Date: Fri Jan 6 02:09:25 2017 +0000 | ||
8886 | |||
8887 | upstream commit | ||
8888 | |||
8889 | Make forwarding test less racy by using unix domain | ||
8890 | sockets instead of TCP ports where possible. Patch from cjwatson at | ||
8891 | debian.org via bz#2659. | ||
8892 | |||
8893 | Upstream-Regress-ID: 4756375aac5916ef9d25452a1c1d5fa9e90299a9 | ||
8894 | |||
8895 | commit 9390b0031ebd6eb5488d3bc4d4333c528dffc0a6 | ||
8896 | Author: dtucker@openbsd.org <dtucker@openbsd.org> | ||
8897 | Date: Sun Jan 29 21:35:23 2017 +0000 | ||
8898 | |||
8899 | upstream commit | ||
8900 | |||
8901 | Fix typo in ~C error message for bad port forward | ||
8902 | cancellation. bz#2672, from Brad Marshall via Colin Watson and Ubuntu's | ||
8903 | bugtracker. | ||
8904 | |||
8905 | Upstream-ID: 0d4a7e5ead6cc59c9a44b4c1e5435ab3aada09af | ||
8906 | |||
8907 | commit 4ba15462ca38883b8a61a1eccc093c79462d5414 | ||
8908 | Author: guenther@openbsd.org <guenther@openbsd.org> | ||
8909 | Date: Sat Jan 21 11:32:04 2017 +0000 | ||
8910 | |||
8911 | upstream commit | ||
8912 | |||
8913 | The POSIX APIs that that sockaddrs all ignore the s*_len | ||
8914 | field in the incoming socket, so userspace doesn't need to set it unless it | ||
8915 | has its own reasons for tracking the size along with the sockaddr. | ||
8916 | |||
8917 | ok phessler@ deraadt@ florian@ | ||
8918 | |||
8919 | Upstream-ID: ca6e49e2f22f2b9e81d6d924b90ecd7e422e7437 | ||
8920 | |||
8921 | commit a1187bd3ef3e4940af849ca953a1b849dae78445 | ||
8922 | Author: jmc@openbsd.org <jmc@openbsd.org> | ||
8923 | Date: Fri Jan 6 16:28:12 2017 +0000 | ||
8924 | |||
8925 | upstream commit | ||
8926 | |||
8927 | keep the tokens list sorted; | ||
8928 | |||
8929 | Upstream-ID: b96239dae4fb3aa94146bb381afabcc7740a1638 | ||
8930 | |||
8931 | commit b64077f9767634715402014f509e58decf1e140d | ||
8932 | Author: djm@openbsd.org <djm@openbsd.org> | ||
8933 | Date: Fri Jan 6 09:27:52 2017 +0000 | ||
8934 | |||
8935 | upstream commit | ||
8936 | |||
8937 | fix previous | ||
8938 | |||
8939 | Upstream-ID: c107d6a69bc22325d79fbf78a2a62e04bcac6895 | ||
8940 | |||
8941 | commit 5e820e9ea2e949aeb93071fe31c80b0c42f2b2de | ||
8942 | Author: djm@openbsd.org <djm@openbsd.org> | ||
8943 | Date: Fri Jan 6 03:53:58 2017 +0000 | ||
8944 | |||
8945 | upstream commit | ||
8946 | |||
8947 | show a useful error message when included config files | ||
8948 | can't be opened; bz#2653, ok dtucker@ | ||
8949 | |||
8950 | Upstream-ID: f598b73b5dfe497344cec9efc9386b4e5a3cb95b | ||
8951 | |||
8952 | commit 13bd2e2d622d01dc85d22b94520a5b243d006049 | ||
8953 | Author: djm@openbsd.org <djm@openbsd.org> | ||
8954 | Date: Fri Jan 6 03:45:41 2017 +0000 | ||
8955 | |||
8956 | upstream commit | ||
8957 | |||
8958 | sshd_config is documented to set | ||
8959 | GSSAPIStrictAcceptorCheck=yes by default, so actually make it do this. | ||
8960 | bz#2637 ok dtucker | ||
8961 | |||
8962 | Upstream-ID: 99ef8ac51f17f0f7aec166cb2e34228d4d72a665 | ||
8963 | |||
8964 | commit f89b928534c9e77f608806a217d39a2960cc7fd0 | ||
8965 | Author: djm@openbsd.org <djm@openbsd.org> | ||
8966 | Date: Fri Jan 6 03:41:58 2017 +0000 | ||
8967 | |||
8968 | upstream commit | ||
8969 | |||
8970 | Avoid confusing error message when attempting to use | ||
8971 | ssh-keyscan built without SSH protocol v.1 to scan for v.1 keys; bz#2583 | ||
8972 | |||
8973 | Upstream-ID: 5d214abd3a21337d67c6dcc5aa6f313298d0d165 | ||
8974 | |||
8975 | commit 0999533014784579aa6f01c2d3a06e3e8804b680 | ||
8976 | Author: dtucker@openbsd.org <dtucker@openbsd.org> | ||
8977 | Date: Fri Jan 6 02:34:54 2017 +0000 | ||
8978 | |||
8979 | upstream commit | ||
8980 | |||
8981 | Re-add '%k' token for AuthorizedKeysCommand which was | ||
8982 | lost during the re-org in rev 1.235. bz#2656, from jboning at gmail.com. | ||
8983 | |||
8984 | Upstream-ID: 2884e203c02764d7b3fe7472710d9c24bdc73e38 | ||
8985 | |||
8986 | commit 51045869fa084cdd016fdd721ea760417c0a3bf3 | ||
8987 | Author: djm@openbsd.org <djm@openbsd.org> | ||
8988 | Date: Wed Jan 4 05:37:40 2017 +0000 | ||
8989 | |||
8990 | upstream commit | ||
8991 | |||
8992 | unbreak Unix domain socket forwarding for root; ok | ||
8993 | markus@ | ||
8994 | |||
8995 | Upstream-ID: 6649c76eb7a3fa15409373295ca71badf56920a2 | ||
8996 | |||
8997 | commit 58fca12ba967ea5c768653535604e1522d177e44 | ||
8998 | Author: Darren Tucker <dtucker@zip.com.au> | ||
8999 | Date: Mon Jan 16 09:08:32 2017 +1100 | ||
9000 | |||
9001 | Remove LOGIN_PROGRAM. | ||
9002 | |||
9003 | UseLogin is gone, remove leftover. bz#2665, from cjwatson at debian.org | ||
9004 | |||
9005 | commit b108ce92aae0ca0376dce9513d953be60e449ae1 | ||
9006 | Author: djm@openbsd.org <djm@openbsd.org> | ||
9007 | Date: Wed Jan 4 02:21:43 2017 +0000 | ||
9008 | |||
9009 | upstream commit | ||
9010 | |||
9011 | relax PKCS#11 whitelist a bit to allow libexec as well as | ||
9012 | lib directories. | ||
9013 | |||
9014 | Upstream-ID: cf5617958e2e2d39f8285fd3bc63b557da484702 | ||
9015 | |||
9016 | commit c7995f296b9222df2846f56ecf61e5ae13d7a53d | ||
9017 | Author: djm@openbsd.org <djm@openbsd.org> | ||
9018 | Date: Tue Jan 3 05:46:51 2017 +0000 | ||
9019 | |||
9020 | upstream commit | ||
9021 | |||
9022 | check number of entries in SSH2_FXP_NAME response; avoids | ||
9023 | unreachable overflow later. Reported by Jann Horn | ||
9024 | |||
9025 | Upstream-ID: b6b2b434a6d6035b1644ca44f24cd8104057420f | ||
9026 | |||
9027 | commit ddd3d34e5c7979ca6f4a3a98a7d219a4ed3d98c2 | ||
9028 | Author: djm@openbsd.org <djm@openbsd.org> | ||
9029 | Date: Fri Dec 30 22:08:02 2016 +0000 | ||
9030 | |||
9031 | upstream commit | ||
9032 | |||
9033 | fix deadlock when keys/principals command produces a lot of | ||
9034 | output and a key is matched early; bz#2655, patch from jboning AT gmail.com | ||
9035 | |||
9036 | Upstream-ID: e19456429bf99087ea994432c16d00a642060afe | ||
9037 | |||
9038 | commit 30eee7d1b2fec33c14870cc11910610be5d2aa6f | ||
9039 | Author: Darren Tucker <dtucker@zip.com.au> | ||
9040 | Date: Tue Dec 20 12:16:11 2016 +1100 | ||
9041 | |||
9042 | Re-add missing "Prerequisites" header and fix typo | ||
9043 | |||
9044 | Patch from HARUYAMA Seigo <haruyama at unixuser org>. | ||
9045 | |||
9046 | commit c8c60f3663165edd6a52632c6ddbfabfce1ca865 | ||
9047 | Author: djm@openbsd.org <djm@openbsd.org> | ||
9048 | Date: Mon Dec 19 22:35:23 2016 +0000 | ||
9049 | |||
9050 | upstream commit | ||
9051 | |||
9052 | use standard /bin/sh equality test; from Mike Frysinger | ||
9053 | |||
9054 | Upstream-Regress-ID: 7b6f0b63525f399844c8ac211003acb8e4b0bec2 | ||
9055 | |||
9056 | commit 4a354fc231174901f2629437c2a6e924a2dd6772 | ||
9057 | Author: Damien Miller <djm@mindrot.org> | ||
9058 | Date: Mon Dec 19 15:59:26 2016 +1100 | ||
9059 | |||
9060 | crank version numbers for release | ||
9061 | |||
9062 | commit 5f8d0bb8413d4d909cc7aa3c616fb0538224c3c9 | ||
9063 | Author: djm@openbsd.org <djm@openbsd.org> | ||
9064 | Date: Mon Dec 19 04:55:51 2016 +0000 | ||
9065 | |||
9066 | upstream commit | ||
9067 | |||
9068 | openssh-7.4 | ||
9069 | |||
9070 | Upstream-ID: 1ee404adba6bbe10ae9277cbae3a94abe2867b79 | ||
9071 | |||
9072 | commit 3a8213ea0ed843523e34e55ab9c852332bab4c7b | ||
9073 | Author: djm@openbsd.org <djm@openbsd.org> | ||
9074 | Date: Mon Dec 19 04:55:18 2016 +0000 | ||
9075 | |||
9076 | upstream commit | ||
9077 | |||
9078 | remove testcase that depends on exact output and | ||
9079 | behaviour of snprintf(..., "%s", NULL) | ||
9080 | |||
9081 | Upstream-Regress-ID: cab4288531766bd9593cb556613b91a2eeefb56f | ||
9082 | |||
9083 | commit eae735a82d759054f6ec7b4e887fb7a5692c66d7 | ||
9084 | Author: dtucker@openbsd.org <dtucker@openbsd.org> | ||
9085 | Date: Mon Dec 19 03:32:57 2016 +0000 | ||
9086 | |||
9087 | upstream commit | ||
9088 | |||
9089 | Use LOGNAME to get current user and fall back to whoami if | ||
9090 | not set. Mainly to benefit -portable since some platforms don't have whoami. | ||
9091 | |||
9092 | Upstream-Regress-ID: e3a16b7836a3ae24dc8f8a4e43fdf8127a60bdfa | ||
9093 | |||
9094 | commit 0d2f88428487518eea60602bd593989013831dcf | ||
9095 | Author: dtucker@openbsd.org <dtucker@openbsd.org> | ||
9096 | Date: Fri Dec 16 03:51:19 2016 +0000 | ||
9097 | |||
9098 | upstream commit | ||
9099 | |||
9100 | Add regression test for AllowUsers and DenyUsers. Patch from | ||
9101 | Zev Weiss <zev at bewilderbeest.net> | ||
9102 | |||
9103 | Upstream-Regress-ID: 8f1aac24d52728398871dac14ad26ea38b533fb9 | ||
9104 | |||
9105 | commit 3bc8180a008929f6fe98af4a56fb37d04444b417 | ||
9106 | Author: Darren Tucker <dtucker@zip.com.au> | ||
9107 | Date: Fri Dec 16 15:02:24 2016 +1100 | ||
9108 | |||
9109 | Add missing monitor.h include. | ||
9110 | |||
9111 | Fixes warning pointed out by Zev Weiss <zev at bewilderbeest.net> | ||
9112 | |||
9113 | commit 410681f9015d76cc7b137dd90dac897f673244a0 | ||
9114 | Author: djm@openbsd.org <djm@openbsd.org> | ||
9115 | Date: Fri Dec 16 02:48:55 2016 +0000 | ||
9116 | |||
9117 | upstream commit | ||
9118 | |||
9119 | revert to rev1.2; the new bits in this test depend on changes | ||
9120 | to ssh that aren't yet committed | ||
9121 | |||
9122 | Upstream-Regress-ID: 828ffc2c7afcf65d50ff2cf3dfc47a073ad39123 | ||
9123 | |||
9124 | commit 2f2ffa4fbe4b671bbffa0611f15ba44cff64d58e | ||
9125 | Author: dtucker@openbsd.org <dtucker@openbsd.org> | ||
9126 | Date: Fri Dec 16 01:06:27 2016 +0000 | ||
9127 | |||
9128 | upstream commit | ||
9129 | |||
9130 | Move the "stop sshd" code into its own helper function. | ||
9131 | Patch from Zev Weiss <zev at bewilderbeest.net>, ok djm@ | ||
9132 | |||
9133 | Upstream-Regress-ID: a113dea77df5bd97fb4633ea31f3d72dbe356329 | ||
9134 | |||
9135 | commit e15e7152331e3976b35475fd4e9c72897ad0f074 | ||
9136 | Author: djm@openbsd.org <djm@openbsd.org> | ||
9137 | Date: Fri Dec 16 01:01:07 2016 +0000 | ||
9138 | |||
9139 | upstream commit | ||
9140 | |||
9141 | regression test for certificates along with private key | ||
9142 | with no public half. bz#2617, mostly from Adam Eijdenberg | ||
9143 | |||
9144 | Upstream-Regress-ID: 2e74dc2c726f4dc839609b3ce045466b69f01115 | ||
9145 | |||
9146 | commit 9a70ec085faf6e55db311cd1a329f1a35ad2a500 | ||
9147 | Author: dtucker@openbsd.org <dtucker@openbsd.org> | ||
9148 | Date: Thu Dec 15 23:50:37 2016 +0000 | ||
9149 | |||
9150 | upstream commit | ||
9151 | |||
9152 | Use $SUDO to read pidfile in case root's umask is | ||
9153 | restricted. From portable. | ||
9154 | |||
9155 | Upstream-Regress-ID: f6b1c7ffbc5a0dfb7d430adb2883344899174a98 | ||
9156 | |||
9157 | commit fe06b68f824f8f55670442fb31f2c03526dd326c | ||
9158 | Author: dtucker@openbsd.org <dtucker@openbsd.org> | ||
9159 | Date: Thu Dec 15 21:29:05 2016 +0000 | ||
9160 | |||
9161 | upstream commit | ||
9162 | |||
9163 | Add missing braces in DenyUsers code. Patch from zev at | ||
9164 | bewilderbeest.net, ok deraadt@ | ||
9165 | |||
9166 | Upstream-ID: d747ace338dcf943b077925f90f85f789714b54e | ||
9167 | |||
9168 | commit dcc7d74242a574fd5c4afbb4224795b1644321e7 | ||
9169 | Author: dtucker@openbsd.org <dtucker@openbsd.org> | ||
9170 | Date: Thu Dec 15 21:20:41 2016 +0000 | ||
9171 | |||
9172 | upstream commit | ||
9173 | |||
9174 | Fix text in error message. Patch from zev at | ||
9175 | bewilderbeest.net. | ||
9176 | |||
9177 | Upstream-ID: deb0486e175e7282f98f9a15035d76c55c84f7f6 | ||
9178 | |||
9179 | commit b737e4d7433577403a31cff6614f6a1b0b5e22f4 | ||
9180 | Author: djm@openbsd.org <djm@openbsd.org> | ||
9181 | Date: Wed Dec 14 00:36:34 2016 +0000 | ||
9182 | |||
9183 | upstream commit | ||
9184 | |||
9185 | disable Unix-domain socket forwarding when privsep is | ||
9186 | disabled | ||
9187 | |||
9188 | Upstream-ID: ab61516ae0faadad407857808517efa900a0d6d0 | ||
9189 | |||
9190 | commit 08a1e7014d65c5b59416a0e138c1f73f417496eb | ||
9191 | Author: djm@openbsd.org <djm@openbsd.org> | ||
9192 | Date: Fri Dec 9 03:04:29 2016 +0000 | ||
9193 | |||
9194 | upstream commit | ||
9195 | |||
9196 | log connections dropped in excess of MaxStartups at | ||
9197 | verbose LogLevel; bz#2613 based on diff from Tomas Kuthan; ok dtucker@ | ||
9198 | |||
9199 | Upstream-ID: 703ae690dbf9b56620a6018f8a3b2389ce76d92b | ||
9200 | |||
9201 | commit 10e290ec00964b2bf70faab15a10a5574bb80527 | ||
9202 | Author: Darren Tucker <dtucker@zip.com.au> | ||
9203 | Date: Tue Dec 13 13:51:32 2016 +1100 | ||
9204 | |||
9205 | Get default of TEST_SSH_UTF8 from environment. | ||
9206 | |||
9207 | commit b9b8ba3f9ed92c6220b58d70d1e6d8aa3eea1104 | ||
9208 | Author: Darren Tucker <dtucker@zip.com.au> | ||
9209 | Date: Tue Dec 13 12:56:40 2016 +1100 | ||
9210 | |||
9211 | Remove commented-out includes. | ||
9212 | |||
9213 | These commented-out includes have "Still needed?" comments. Since | ||
9214 | they've been commented out for ~13 years I assert that they're not. | ||
9215 | |||
9216 | commit 25275f1c9d5f01a0877d39444e8f90521a598ea0 | ||
9217 | Author: Darren Tucker <dtucker@zip.com.au> | ||
9218 | Date: Tue Dec 13 12:54:23 2016 +1100 | ||
9219 | |||
9220 | Add prototype for strcasestr in compat library. | ||
9221 | |||
9222 | commit afec07732aa2985142f3e0b9a01eb6391f523dec | ||
9223 | Author: Darren Tucker <dtucker@zip.com.au> | ||
9224 | Date: Tue Dec 13 10:23:03 2016 +1100 | ||
9225 | |||
9226 | Add strcasestr to compat library. | ||
9227 | |||
9228 | Fixes build on (at least) Solaris 10. | ||
9229 | |||
9230 | commit dda78a03af32e7994f132d923c2046e98b7c56c8 | ||
9231 | Author: Damien Miller <djm@mindrot.org> | ||
9232 | Date: Mon Dec 12 13:57:10 2016 +1100 | ||
9233 | |||
9234 | Force Turkish locales back to C/POSIX; bz#2643 | ||
9235 | |||
9236 | Turkish locales are unique in their handling of the letters 'i' and | ||
9237 | 'I' (yes, they are different letters) and OpenSSH isn't remotely | ||
9238 | prepared to deal with that. For now, the best we can do is to force | ||
9239 | OpenSSH to use the C/POSIX locale and try to preserve the UTF-8 | ||
9240 | encoding if possible. | ||
9241 | |||
9242 | ok dtucker@ | ||
9243 | |||
9244 | commit c35995048f41239fc8895aadc3374c5f75180554 | ||
9245 | Author: Darren Tucker <dtucker@zip.com.au> | ||
9246 | Date: Fri Dec 9 12:52:02 2016 +1100 | ||
9247 | |||
9248 | exit is in stdlib.h not unistd.h (that's _exit). | ||
9249 | |||
9250 | commit d399a8b914aace62418c0cfa20341aa37a192f98 | ||
9251 | Author: Darren Tucker <dtucker@zip.com.au> | ||
9252 | Date: Fri Dec 9 12:33:25 2016 +1100 | ||
9253 | |||
9254 | Include <unistd.h> for exit in utf8 locale test. | ||
9255 | |||
9256 | commit 47b8c99ab3221188ad3926108dd9d36da3b528ec | ||
9257 | Author: Darren Tucker <dtucker@zip.com.au> | ||
9258 | Date: Thu Dec 8 15:48:34 2016 +1100 | ||
9259 | |||
9260 | Check for utf8 local support before testing it. | ||
9261 | |||
9262 | Check for utf8 local support and if not found, do not attempt to run the | ||
9263 | utf8 tests. Suggested by djm@ | ||
9264 | |||
9265 | commit 4089fc1885b3a2822204effbb02b74e3da58240d | ||
9266 | Author: Darren Tucker <dtucker@zip.com.au> | ||
9267 | Date: Thu Dec 8 12:57:24 2016 +1100 | ||
9268 | |||
9269 | Use AC_PATH_TOOL for krb5-config. | ||
9270 | |||
9271 | This will use the host-prefixed version when cross compiling; patch from | ||
9272 | david.michael at coreos.com. | ||
9273 | |||
9274 | commit b4867e0712c89b93be905220c82f0a15e6865d1e | ||
9275 | Author: djm@openbsd.org <djm@openbsd.org> | ||
9276 | Date: Tue Dec 6 07:48:01 2016 +0000 | ||
9277 | |||
9278 | upstream commit | ||
9279 | |||
9280 | make IdentityFile successfully load and use certificates that | ||
9281 | have no corresponding bare public key. E.g. just a private id_rsa and | ||
9282 | certificate id_rsa-cert.pub (and no id_rsa.pub). | ||
9283 | |||
9284 | bz#2617 ok dtucker@ | ||
9285 | |||
9286 | Upstream-ID: c1e9699b8c0e3b63cc4189e6972e3522b6292604 | ||
9287 | |||
9288 | commit c9792783a98881eb7ed295680013ca97a958f8ac | ||
9289 | Author: Damien Miller <djm@mindrot.org> | ||
9290 | Date: Fri Nov 25 14:04:21 2016 +1100 | ||
9291 | |||
9292 | Add a gnome-ssh-askpass3 target for GTK+3 version | ||
9293 | |||
9294 | Based on patch from Colin Watson via bz#2640 | ||
9295 | |||
9296 | commit 7be85ae02b9de0993ce0a1d1e978e11329f6e763 | ||
9297 | Author: Damien Miller <djm@mindrot.org> | ||
9298 | Date: Fri Nov 25 14:03:53 2016 +1100 | ||
9299 | |||
9300 | Make gnome-ssh-askpass2.c GTK+3-friendly | ||
9301 | |||
9302 | Patch from Colin Watson via bz#2640 | ||
9303 | |||
9304 | commit b9844a45c7f0162fd1b5465683879793d4cc4aaa | ||
9305 | Author: djm@openbsd.org <djm@openbsd.org> | ||
9306 | Date: Sun Dec 4 23:54:02 2016 +0000 | ||
9307 | |||
9308 | upstream commit | ||
9309 | |||
9310 | Fix public key authentication when multiple | ||
9311 | authentication is in use. Instead of deleting and re-preparing the entire | ||
9312 | keys list, just reset the 'used' flags; the keys list is already in a good | ||
9313 | order (with already- tried keys at the back) | ||
9314 | |||
9315 | Analysis and patch from Vincent Brillault on bz#2642; ok dtucker@ | ||
9316 | |||
9317 | Upstream-ID: 7123f12dc2f3bcaae715853035a97923d7300176 | ||
9318 | |||
9319 | commit f2398eb774075c687b13af5bc22009eb08889abe | ||
9320 | Author: dtucker@openbsd.org <dtucker@openbsd.org> | ||
9321 | Date: Sun Dec 4 22:27:25 2016 +0000 | ||
9322 | |||
9323 | upstream commit | ||
9324 | |||
9325 | Unlink PidFile on SIGHUP and always recreate it when the | ||
9326 | new sshd starts. Regression tests (and possibly other things) depend on the | ||
9327 | pidfile being recreated after SIGHUP, and unlinking it means it won't contain | ||
9328 | a stale pid if sshd fails to restart. ok djm@ markus@ | ||
9329 | |||
9330 | Upstream-ID: 132dd6dda0c77dd49d2f15b2573b5794f6160870 | ||
9331 | |||
9332 | commit 85aa2efeba51a96bf6834f9accf2935d96150296 | ||
9333 | Author: djm@openbsd.org <djm@openbsd.org> | ||
9334 | Date: Wed Nov 30 03:01:33 2016 +0000 | ||
9335 | |||
9336 | upstream commit | ||
9337 | |||
9338 | test new behaviour of cert force-command restriction vs. | ||
9339 | authorized_key/ principals | ||
9340 | |||
9341 | Upstream-Regress-ID: 399efa7469d40c404c0b0a295064ce75d495387c | ||
9342 | |||
9343 | commit 5d333131cd8519d022389cfd3236280818dae1bc | ||
9344 | Author: jmc@openbsd.org <jmc@openbsd.org> | ||
9345 | Date: Wed Nov 30 06:54:26 2016 +0000 | ||
9346 | |||
9347 | upstream commit | ||
9348 | |||
9349 | tweak previous; while here fix up FILES and AUTHORS; | ||
9350 | |||
9351 | Upstream-ID: 93f6e54086145a75df8d8ec7d8689bdadbbac8fa | ||
9352 | |||
9353 | commit 786d5994da79151180cb14a6cf157ebbba61c0cc | ||
9354 | Author: djm@openbsd.org <djm@openbsd.org> | ||
9355 | Date: Wed Nov 30 03:07:37 2016 +0000 | ||
9356 | |||
9357 | upstream commit | ||
9358 | |||
9359 | add a whitelist of paths from which ssh-agent will load | ||
9360 | (via ssh-pkcs11-helper) a PKCS#11 module; ok markus@ | ||
9361 | |||
9362 | Upstream-ID: fe79769469d9cd6d26fe0dc15751b83ef2a06e8f | ||
9363 | |||
9364 | commit 7844f357cdd90530eec81340847783f1f1da010b | ||
9365 | Author: djm@openbsd.org <djm@openbsd.org> | ||
9366 | Date: Wed Nov 30 03:00:05 2016 +0000 | ||
9367 | |||
9368 | upstream commit | ||
9369 | |||
9370 | Add a sshd_config DisableForwaring option that disables | ||
9371 | X11, agent, TCP, tunnel and Unix domain socket forwarding, as well as | ||
9372 | anything else we might implement in the future. | ||
9373 | |||
9374 | This, like the 'restrict' authorized_keys flag, is intended to be a | ||
9375 | simple and future-proof way of restricting an account. Suggested as | ||
9376 | a complement to 'restrict' by Jann Horn; ok markus@ | ||
9377 | |||
9378 | Upstream-ID: 203803f66e533a474086b38a59ceb4cf2410fcf7 | ||
9379 | |||
9380 | commit fd6dcef2030d23c43f986d26979f84619c10589d | ||
9381 | Author: djm@openbsd.org <djm@openbsd.org> | ||
9382 | Date: Wed Nov 30 02:57:40 2016 +0000 | ||
9383 | |||
9384 | upstream commit | ||
9385 | |||
9386 | When a forced-command appears in both a certificate and | ||
9387 | an authorized keys/principals command= restriction, refuse to accept the | ||
9388 | certificate unless they are identical. | ||
9389 | |||
9390 | The previous (documented) behaviour of having the certificate forced- | ||
9391 | command override the other could be a bit confused and more error-prone. | ||
9392 | |||
9393 | Pointed out by Jann Horn of Project Zero; ok dtucker@ | ||
9394 | |||
9395 | Upstream-ID: 79d811b6eb6bbe1221bf146dde6928f92d2cd05f | ||
9396 | |||
9397 | commit 7fc4766ac78abae81ee75b22b7550720bfa28a33 | ||
9398 | Author: dtucker@openbsd.org <dtucker@openbsd.org> | ||
9399 | Date: Wed Nov 30 00:28:31 2016 +0000 | ||
9400 | |||
9401 | upstream commit | ||
9402 | |||
9403 | On startup, check to see if sshd is already daemonized | ||
9404 | and if so, skip the call to daemon() and do not rewrite the PidFile. This | ||
9405 | means that when sshd re-execs itself on SIGHUP the process ID will no longer | ||
9406 | change. Should address bz#2641. ok djm@ markus@. | ||
9407 | |||
9408 | Upstream-ID: 5ea0355580056fb3b25c1fd6364307d9638a37b9 | ||
9409 | |||
9410 | commit c9f880c195c65f1dddcbc4ce9d6bfea7747debcc | ||
9411 | Author: Damien Miller <djm@mindrot.org> | ||
9412 | Date: Wed Nov 30 13:51:49 2016 +1100 | ||
9413 | |||
9414 | factor out common PRNG reseed before privdrop | ||
9415 | |||
9416 | Add a call to RAND_poll() to ensure than more than pid+time gets | ||
9417 | stirred into child processes states. Prompted by analysis from Jann | ||
9418 | Horn at Project Zero. ok dtucker@ | ||
9419 | |||
9420 | commit 79e4829ec81dead1b30999e1626eca589319a47f | ||
9421 | Author: dtucker@openbsd.org <dtucker@openbsd.org> | ||
9422 | Date: Fri Nov 25 03:02:01 2016 +0000 | ||
9423 | |||
9424 | upstream commit | ||
9425 | |||
9426 | Allow PuTTY interop tests to run unattended. bz#2639, | ||
9427 | patch from cjwatson at debian.org. | ||
9428 | |||
9429 | Upstream-Regress-ID: 4345253558ac23b2082aebabccd48377433b6fe0 | ||
9430 | |||
9431 | commit 504c3a9a1bf090f6b27260fc3e8ea7d984d163dc | ||
9432 | Author: dtucker@openbsd.org <dtucker@openbsd.org> | ||
9433 | Date: Fri Nov 25 02:56:49 2016 +0000 | ||
9434 | |||
9435 | upstream commit | ||
9436 | |||
9437 | Reverse args to sshd-log-wrapper. Matches change in | ||
9438 | portable, where it allows sshd do be optionally run under Valgrind. | ||
9439 | |||
9440 | Upstream-Regress-ID: b438d1c6726dc5caa2a45153e6103a0393faa906 | ||
9441 | |||
9442 | commit bd13017736ec2f8f9ca498fe109fb0035f322733 | ||
9443 | Author: dtucker@openbsd.org <dtucker@openbsd.org> | ||
9444 | Date: Fri Nov 25 02:49:18 2016 +0000 | ||
9445 | |||
9446 | upstream commit | ||
9447 | |||
9448 | Fix typo in trace message; from portable. | ||
9449 | |||
9450 | Upstream-Regress-ID: 4c4a2ba0d37faf5fd230a91b4c7edb5699fbd73a | ||
9451 | |||
9452 | commit 7da751d8b007c7f3e814fd5737c2351440d78b4c | ||
9453 | Author: tb@openbsd.org <tb@openbsd.org> | ||
9454 | Date: Tue Nov 1 13:43:27 2016 +0000 | ||
9455 | |||
9456 | upstream commit | ||
9457 | |||
9458 | Clean up MALLOC_OPTIONS. For the unittests, move | ||
9459 | MALLOC_OPTIONS and TEST_ENV to unittets/Makefile.inc. | ||
9460 | |||
9461 | ok otto | ||
9462 | |||
9463 | Upstream-Regress-ID: 890d497e0a38eeddfebb11cc429098d76cf29f12 | ||
9464 | |||
9465 | commit 36f58e68221bced35e06d1cca8d97c48807a8b71 | ||
9466 | Author: tb@openbsd.org <tb@openbsd.org> | ||
9467 | Date: Mon Oct 31 23:45:08 2016 +0000 | ||
9468 | |||
9469 | upstream commit | ||
9470 | |||
9471 | Remove the obsolete A and P flags from MALLOC_OPTIONS. | ||
9472 | |||
9473 | ok dtucker | ||
9474 | |||
9475 | Upstream-Regress-ID: 6cc25024c8174a87e5734a0dc830194be216dd59 | ||
9476 | |||
9477 | commit b0899ee26a6630883c0f2350098b6a35e647f512 | ||
9478 | Author: dtucker@openbsd.org <dtucker@openbsd.org> | ||
9479 | Date: Tue Nov 29 03:54:50 2016 +0000 | ||
9480 | |||
9481 | upstream commit | ||
9482 | |||
9483 | Factor out code to disconnect from controlling terminal | ||
9484 | into its own function. ok djm@ | ||
9485 | |||
9486 | Upstream-ID: 39fd9e8ebd7222615a837312face5cc7ae962885 | ||
9487 | |||
9488 | commit 54d022026aae4f53fa74cc636e4a032d9689b64d | ||
9489 | Author: djm@openbsd.org <djm@openbsd.org> | ||
9490 | Date: Fri Nov 25 23:24:45 2016 +0000 | ||
9491 | |||
9492 | upstream commit | ||
9493 | |||
9494 | use sshbuf_allocate() to pre-allocate the buffer used for | ||
9495 | loading keys. This avoids implicit realloc inside the buffer code, which | ||
9496 | might theoretically leave fragments of the key on the heap. This doesn't | ||
9497 | appear to happen in practice for normal sized keys, but was observed for | ||
9498 | novelty oversize ones. | ||
9499 | |||
9500 | Pointed out by Jann Horn of Project Zero; ok markus@ | ||
9501 | |||
9502 | Upstream-ID: d620e1d46a29fdea56aeadeda120879eddc60ab1 | ||
9503 | |||
9504 | commit a9c746088787549bb5b1ae3add7d06a1b6d93d5e | ||
9505 | Author: djm@openbsd.org <djm@openbsd.org> | ||
9506 | Date: Fri Nov 25 23:22:04 2016 +0000 | ||
9507 | |||
9508 | upstream commit | ||
9509 | |||
9510 | split allocation out of sshbuf_reserve() into a separate | ||
9511 | sshbuf_allocate() function; ok markus@ | ||
9512 | |||
9513 | Upstream-ID: 11b8a2795afeeb1418d508a2c8095b3355577ec2 | ||
9514 | |||
9515 | commit f0ddedee460486fa0e32fefb2950548009e5026e | ||
9516 | Author: markus@openbsd.org <markus@openbsd.org> | ||
9517 | Date: Wed Nov 23 23:14:15 2016 +0000 | ||
9518 | |||
9519 | upstream commit | ||
9520 | |||
9521 | allow ClientAlive{Interval,CountMax} in Match; ok dtucker, | ||
9522 | djm | ||
9523 | |||
9524 | Upstream-ID: 8beb4c1eadd588f1080b58932281983864979f55 | ||
9525 | |||
9526 | commit 1a6f9d2e2493d445cd9ee496e6e3c2a2f283f66a | ||
9527 | Author: djm@openbsd.org <djm@openbsd.org> | ||
9528 | Date: Tue Nov 8 22:04:34 2016 +0000 | ||
9529 | |||
9530 | upstream commit | ||
9531 | |||
9532 | unbreak DenyUsers; reported by henning@ | ||
9533 | |||
9534 | Upstream-ID: 1c67d4148f5e953c35acdb62e7c08ae8e33f7cb2 | ||
9535 | |||
9536 | commit 010359b32659f455fddd2bd85fd7cc4d7a3b994a | ||
9537 | Author: djm@openbsd.org <djm@openbsd.org> | ||
9538 | Date: Sun Nov 6 05:46:37 2016 +0000 | ||
9539 | |||
9540 | upstream commit | ||
9541 | |||
9542 | Validate address ranges for AllowUser/DenyUsers at | ||
9543 | configuration load time and refuse to accept bad ones. It was previously | ||
9544 | possible to specify invalid CIDR address ranges (e.g. djm@127.1.2.3/55) and | ||
9545 | these would always match. | ||
9546 | |||
9547 | Thanks to Laurence Parry for a detailed bug report. ok markus (for | ||
9548 | a previous diff version) | ||
9549 | |||
9550 | Upstream-ID: 9dfcdd9672b06e65233ea4434c38226680d40bfb | ||
9551 | |||
9552 | commit efb494e81d1317209256b38b49f4280897c61e69 | ||
9553 | Author: djm@openbsd.org <djm@openbsd.org> | ||
9554 | Date: Fri Oct 28 03:33:52 2016 +0000 | ||
9555 | |||
9556 | upstream commit | ||
9557 | |||
9558 | Improve pkcs11_add_provider() logging: demote some | ||
9559 | excessively verbose error()s to debug()s, include PKCS#11 provider name and | ||
9560 | slot in log messages where possible. bz#2610, based on patch from Jakub Jelen | ||
9561 | |||
9562 | Upstream-ID: 3223ef693cfcbff9079edfc7e89f55bf63e1973d | ||
9563 | |||
9564 | commit 5ee3fb5affd7646f141749483205ade5fc54adaf | ||
9565 | Author: Darren Tucker <dtucker@zip.com.au> | ||
9566 | Date: Tue Nov 1 08:12:33 2016 +1100 | ||
9567 | |||
9568 | Use ptrace(PT_DENY_ATTACH, ..) on OS X. | ||
9569 | |||
9570 | commit 315d2a4e674d0b7115574645cb51f968420ebb34 | ||
9571 | Author: Damien Miller <djm@mindrot.org> | ||
9572 | Date: Fri Oct 28 14:34:07 2016 +1100 | ||
9573 | |||
9574 | Unbreak AES-CTR ciphers on old (~0.9.8) OpenSSL | ||
9575 | |||
9576 | ok dtucker@ | ||
9577 | |||
9578 | commit a9ff3950b8e80ff971b4d44bbce96df27aed28af | ||
9579 | Author: Darren Tucker <dtucker@zip.com.au> | ||
9580 | Date: Fri Oct 28 14:26:58 2016 +1100 | ||
9581 | |||
9582 | Move OPENSSL_NO_RIPEMD160 to compat. | ||
9583 | |||
9584 | Move OPENSSL_NO_RIPEMD160 to compat and add ifdefs to mac.c around the | ||
9585 | ripemd160 MACs. | ||
9586 | |||
9587 | commit bce58885160e5db2adda3054c3b81fe770f7285a | ||
9588 | Author: Darren Tucker <dtucker@zip.com.au> | ||
9589 | Date: Fri Oct 28 13:52:31 2016 +1100 | ||
9590 | |||
9591 | Check if RIPEMD160 is disabled in OpenSSL. | ||
9592 | |||
9593 | commit d924640d4c355d1b5eca1f4cc60146a9975dbbff | ||
9594 | Author: Darren Tucker <dtucker@zip.com.au> | ||
9595 | Date: Fri Oct 28 13:38:19 2016 +1100 | ||
9596 | |||
9597 | Skip ssh1 specfic ciphers. | ||
9598 | |||
9599 | cipher-3des1.c and cipher-bf1.c are specific to sshv1 so don't even try | ||
9600 | to compile them when Protocol 1 is not enabled. | ||
9601 | |||
9602 | commit 79d078e7a49caef746516d9710ec369ba45feab6 | ||
9603 | Author: jsg@openbsd.org <jsg@openbsd.org> | ||
9604 | Date: Tue Oct 25 04:08:13 2016 +0000 | ||
9605 | |||
9606 | upstream commit | ||
9607 | |||
9608 | Fix logic in add_local_forward() that inverted a test | ||
9609 | when code was refactored out into bind_permitted(). This broke ssh port | ||
9610 | forwarding for non-priv ports as a non root user. | ||
9611 | |||
9612 | ok dtucker@ 'looks good' deraadt@ | ||
9613 | |||
9614 | Upstream-ID: ddb8156ca03cc99997de284ce7777536ff9570c9 | ||
9615 | |||
9616 | commit a903e315dee483e555c8a3a02c2946937f9b4e5d | ||
9617 | Author: dtucker@openbsd.org <dtucker@openbsd.org> | ||
9618 | Date: Mon Oct 24 01:09:17 2016 +0000 | ||
9619 | |||
9620 | upstream commit | ||
9621 | |||
9622 | Remove dead breaks, found via opencoverage.net. ok | ||
9623 | deraadt@ | ||
9624 | |||
9625 | Upstream-ID: ad9cc655829d67fad219762810770787ba913069 | ||
9626 | |||
9627 | commit b4e96b4c9bea4182846e4942ba2048e6d708ee54 | ||
9628 | Author: Darren Tucker <dtucker@zip.com.au> | ||
9629 | Date: Wed Oct 26 08:43:25 2016 +1100 | ||
9630 | |||
9631 | Use !=NULL instead of >0 for getdefaultproj. | ||
9632 | |||
9633 | getdefaultproj() returns a pointer so test it for NULL inequality | ||
9634 | instead of >0. Fixes compiler warning and is more correct. Patch from | ||
9635 | David Binderman. | ||
9636 | |||
9637 | commit 1c4ef0b808d3d38232aeeb1cebb7e9a43def42c5 | ||
9638 | Author: dtucker@openbsd.org <dtucker@openbsd.org> | ||
9639 | Date: Sun Oct 23 22:04:05 2016 +0000 | ||
9640 | |||
9641 | upstream commit | ||
9642 | |||
9643 | Factor out "can bind to low ports" check into its own function. This will | ||
9644 | make it easier for Portable to support platforms with permissions models | ||
9645 | other than uid==0 (eg bz#2625). ok djm@, "doesn't offend me too much" | ||
9646 | deraadt@. | ||
9647 | |||
9648 | Upstream-ID: 86213df4183e92b8f189a6d2dac858c994bfface | ||
9649 | |||
9650 | commit 0b9ee623d57e5de7e83e66fd61a7ba9a5be98894 | ||
9651 | Author: dtucker@openbsd.org <dtucker@openbsd.org> | ||
9652 | Date: Wed Oct 19 23:21:56 2016 +0000 | ||
9653 | |||
9654 | upstream commit | ||
9655 | |||
9656 | When tearing down ControlMaster connecctions, don't | ||
9657 | pollute stderr when LogLevel=quiet. Patch from Tim Kuijsten via tech@. | ||
9658 | |||
9659 | Upstream-ID: d9b3a68b2a7c2f2fc7f74678e29a4618d55ceced | ||
9660 | |||
9661 | commit 09e6a7d8354224933febc08ddcbc2010f542284e | ||
9662 | Author: Darren Tucker <dtucker@zip.com.au> | ||
9663 | Date: Mon Oct 24 09:06:18 2016 +1100 | ||
9664 | |||
9665 | Wrap stdint.h include in ifdef. | ||
9666 | |||
9667 | commit 08d9e9516e587b25127545c029e5464b2e7f2919 | ||
9668 | Author: Darren Tucker <dtucker@zip.com.au> | ||
9669 | Date: Fri Oct 21 09:46:46 2016 +1100 | ||
9670 | |||
9671 | Fix formatting. | ||
9672 | |||
9673 | commit 461f50e7ab8751d3a55e9158c44c13031db7ba1d | ||
9674 | Author: Darren Tucker <dtucker@zip.com.au> | ||
9675 | Date: Fri Oct 21 06:55:58 2016 +1100 | ||
9676 | |||
9677 | Update links to https. | ||
9678 | |||
9679 | www.openssh.com now supports https and ftp.openbsd.org no longer | ||
9680 | supports ftp. Make all links to these https. | ||
9681 | |||
9682 | commit dd4e7212a6141f37742de97795e79db51e4427ad | ||
9683 | Author: Darren Tucker <dtucker@zip.com.au> | ||
9684 | Date: Fri Oct 21 06:48:46 2016 +1100 | ||
9685 | |||
9686 | Update host key generation examples. | ||
9687 | |||
9688 | Remove ssh1 host key generation, add ssh-keygen -A | ||
9689 | |||
9690 | commit 6d49ae82634c67e9a4d4af882bee20b40bb8c639 | ||
9691 | Author: Darren Tucker <dtucker@zip.com.au> | ||
9692 | Date: Fri Oct 21 05:22:55 2016 +1100 | ||
9693 | |||
9694 | Update links. | ||
9695 | |||
9696 | Make links to openssh.com HTTPS now that it's supported, point release | ||
9697 | notes link to the HTML release notes page, and update a couple of other | ||
9698 | links and bits of text. | ||
9699 | |||
9700 | commit fe0d1ca6ace06376625084b004ee533f2c2ea9d6 | ||
9701 | Author: Darren Tucker <dtucker@zip.com.au> | ||
9702 | Date: Thu Oct 20 03:42:09 2016 +1100 | ||
9703 | |||
9704 | Remote channels .orig and .rej files. | ||
9705 | |||
9706 | These files were incorrectly added during an OpenBSD sync. | ||
@@ -13,15 +13,15 @@ OpenSSL) | |||
13 | Zlib 1.1.4 or 1.2.1.2 or greater (earlier 1.2.x versions have problems): | 13 | Zlib 1.1.4 or 1.2.1.2 or greater (earlier 1.2.x versions have problems): |
14 | http://www.gzip.org/zlib/ | 14 | http://www.gzip.org/zlib/ |
15 | 15 | ||
16 | libcrypto (LibreSSL or OpenSSL >= 1.0.1 < 1.1.0) | 16 | libcrypto from either of: |
17 | LibreSSL http://www.libressl.org/ ; or | 17 | - LibreSSL (http://www.libressl.org/) |
18 | OpenSSL http://www.openssl.org/ | 18 | - OpenSSL 1.0.x >= 1.0.1 or 1.1.0 >= 1.1.0g (http://www.openssl.org/) |
19 | 19 | ||
20 | LibreSSL/OpenSSL should be compiled as a position-independent library | 20 | LibreSSL/OpenSSL should be compiled as a position-independent library |
21 | (i.e. with -fPIC) otherwise OpenSSH will not be able to link with it. | 21 | (i.e. with -fPIC) otherwise OpenSSH will not be able to link with it. |
22 | If you must use a non-position-independent libcrypto, then you may need | 22 | If you must use a non-position-independent libcrypto, then you may need |
23 | to configure OpenSSH --without-pie. Note that because of API changes, | 23 | to configure OpenSSH --without-pie. Note that due to a bug in EVP_CipherInit |
24 | OpenSSL 1.1.x is not currently supported. | 24 | OpenSSL 1.1 versions prior to 1.1.0g can't be used. |
25 | 25 | ||
26 | The remaining items are optional. | 26 | The remaining items are optional. |
27 | 27 | ||
diff --git a/Makefile.in b/Makefile.in index 126b2c742..6f001bb36 100644 --- a/Makefile.in +++ b/Makefile.in | |||
@@ -88,7 +88,7 @@ LIBSSH_OBJS=${LIBOPENSSH_OBJS} \ | |||
88 | canohost.o channels.o cipher.o cipher-aes.o cipher-aesctr.o \ | 88 | canohost.o channels.o cipher.o cipher-aes.o cipher-aesctr.o \ |
89 | cipher-ctr.o cleanup.o \ | 89 | cipher-ctr.o cleanup.o \ |
90 | compat.o crc32.o fatal.o hostfile.o \ | 90 | compat.o crc32.o fatal.o hostfile.o \ |
91 | log.o match.o moduli.o nchan.o packet.o opacket.o \ | 91 | log.o match.o moduli.o nchan.o packet.o \ |
92 | readpass.o ttymodes.o xmalloc.o addrmatch.o \ | 92 | readpass.o ttymodes.o xmalloc.o addrmatch.o \ |
93 | atomicio.o dispatch.o mac.o uuencode.o misc.o utf8.o \ | 93 | atomicio.o dispatch.o mac.o uuencode.o misc.o utf8.o \ |
94 | monitor_fdpass.o rijndael.o ssh-dss.o ssh-ecdsa.o ssh-rsa.o dh.o \ | 94 | monitor_fdpass.o rijndael.o ssh-dss.o ssh-ecdsa.o ssh-rsa.o dh.o \ |
@@ -98,10 +98,11 @@ LIBSSH_OBJS=${LIBOPENSSH_OBJS} \ | |||
98 | ssh-ed25519.o digest-openssl.o digest-libc.o hmac.o \ | 98 | ssh-ed25519.o digest-openssl.o digest-libc.o hmac.o \ |
99 | sc25519.o ge25519.o fe25519.o ed25519.o verify.o hash.o \ | 99 | sc25519.o ge25519.o fe25519.o ed25519.o verify.o hash.o \ |
100 | kex.o kexdh.o kexgex.o kexecdh.o kexc25519.o \ | 100 | kex.o kexdh.o kexgex.o kexecdh.o kexc25519.o \ |
101 | kexdhc.o kexgexc.o kexecdhc.o kexc25519c.o \ | 101 | kexgexc.o kexgexs.o \ |
102 | kexdhs.o kexgexs.o kexecdhs.o kexc25519s.o \ | 102 | sntrup4591761.o kexsntrup4591761x25519.o kexgen.o \ |
103 | platform-pledge.o platform-tracing.o platform-misc.o | 103 | platform-pledge.o platform-tracing.o platform-misc.o |
104 | 104 | ||
105 | |||
105 | SSHOBJS= ssh.o readconf.o clientloop.o sshtty.o \ | 106 | SSHOBJS= ssh.o readconf.o clientloop.o sshtty.o \ |
106 | sshconnect.o sshconnect2.o mux.o | 107 | sshconnect.o sshconnect2.o mux.o |
107 | 108 | ||
@@ -186,7 +187,7 @@ ssh-agent$(EXEEXT): $(LIBCOMPAT) libssh.a ssh-agent.o ssh-pkcs11-client.o | |||
186 | ssh-keygen$(EXEEXT): $(LIBCOMPAT) libssh.a ssh-keygen.o | 187 | ssh-keygen$(EXEEXT): $(LIBCOMPAT) libssh.a ssh-keygen.o |
187 | $(LD) -o $@ ssh-keygen.o $(LDFLAGS) -lssh -lopenbsd-compat $(LIBS) | 188 | $(LD) -o $@ ssh-keygen.o $(LDFLAGS) -lssh -lopenbsd-compat $(LIBS) |
188 | 189 | ||
189 | ssh-keysign$(EXEEXT): $(LIBCOMPAT) libssh.a ssh-keysign.o readconf.o uidswap.o | 190 | ssh-keysign$(EXEEXT): $(LIBCOMPAT) libssh.a ssh-keysign.o readconf.o uidswap.o compat.o |
190 | $(LD) -o $@ ssh-keysign.o readconf.o uidswap.o $(LDFLAGS) -lssh -lopenbsd-compat $(LIBS) | 191 | $(LD) -o $@ ssh-keysign.o readconf.o uidswap.o $(LDFLAGS) -lssh -lopenbsd-compat $(LIBS) |
191 | 192 | ||
192 | ssh-pkcs11-helper$(EXEEXT): $(LIBCOMPAT) libssh.a ssh-pkcs11-helper.o ssh-pkcs11.o | 193 | ssh-pkcs11-helper$(EXEEXT): $(LIBCOMPAT) libssh.a ssh-pkcs11-helper.o ssh-pkcs11.o |
@@ -598,6 +599,7 @@ tests interop-tests t-exec unit: regress-prep regress-binaries $(TARGETS) | |||
598 | TEST_SSH_SSHKEYSCAN="$${BUILDDIR}/ssh-keyscan"; \ | 599 | TEST_SSH_SSHKEYSCAN="$${BUILDDIR}/ssh-keyscan"; \ |
599 | TEST_SSH_SFTP="$${BUILDDIR}/sftp"; \ | 600 | TEST_SSH_SFTP="$${BUILDDIR}/sftp"; \ |
600 | TEST_SSH_SFTPSERVER="$${BUILDDIR}/sftp-server"; \ | 601 | TEST_SSH_SFTPSERVER="$${BUILDDIR}/sftp-server"; \ |
602 | TEST_SSH_SSHPKCS11HELPER="$${BUILDDIR}/ssh-pkcs11-helper"; \ | ||
601 | TEST_SSH_PLINK="plink"; \ | 603 | TEST_SSH_PLINK="plink"; \ |
602 | TEST_SSH_PUTTYGEN="puttygen"; \ | 604 | TEST_SSH_PUTTYGEN="puttygen"; \ |
603 | TEST_SSH_CONCH="conch"; \ | 605 | TEST_SSH_CONCH="conch"; \ |
@@ -34,11 +34,12 @@ these programs. | |||
34 | 34 | ||
35 | - Ssh contains several encryption algorithms. These are all | 35 | - Ssh contains several encryption algorithms. These are all |
36 | accessed through the cipher.h interface. The interface code is | 36 | accessed through the cipher.h interface. The interface code is |
37 | in cipher.c, and the implementations are in libc. | 37 | in cipher.c, and the implementations are either in libc or |
38 | LibreSSL. | ||
38 | 39 | ||
39 | Multiple Precision Integer Library | 40 | Multiple Precision Integer Library |
40 | 41 | ||
41 | - Uses the SSLeay BIGNUM sublibrary. | 42 | - Uses the LibreSSL BIGNUM sublibrary. |
42 | 43 | ||
43 | Random Numbers | 44 | Random Numbers |
44 | 45 | ||
@@ -158,4 +159,4 @@ these programs. | |||
158 | uidswap.c uid-swapping | 159 | uidswap.c uid-swapping |
159 | xmalloc.c "safe" malloc routines | 160 | xmalloc.c "safe" malloc routines |
160 | 161 | ||
161 | $OpenBSD: OVERVIEW,v 1.14 2018/07/27 03:55:22 dtucker Exp $ | 162 | $OpenBSD: OVERVIEW,v 1.15 2018/10/23 05:56:35 djm Exp $ |
diff --git a/PROTOCOL.certkeys b/PROTOCOL.certkeys index 11363fdc3..48338e671 100644 --- a/PROTOCOL.certkeys +++ b/PROTOCOL.certkeys | |||
@@ -36,6 +36,7 @@ Certified keys are represented using new key types: | |||
36 | ecdsa-sha2-nistp256-cert-v01@openssh.com | 36 | ecdsa-sha2-nistp256-cert-v01@openssh.com |
37 | ecdsa-sha2-nistp384-cert-v01@openssh.com | 37 | ecdsa-sha2-nistp384-cert-v01@openssh.com |
38 | ecdsa-sha2-nistp521-cert-v01@openssh.com | 38 | ecdsa-sha2-nistp521-cert-v01@openssh.com |
39 | ssh-ed25519-cert-v01@openssh.com | ||
39 | 40 | ||
40 | Two additional types exist for RSA certificates to force use of | 41 | Two additional types exist for RSA certificates to force use of |
41 | SHA-2 signatures (SHA-256 and SHA-512 respectively): | 42 | SHA-2 signatures (SHA-256 and SHA-512 respectively): |
@@ -303,4 +304,4 @@ permit-user-rc empty Flag indicating that execution of | |||
303 | of this script will not be permitted if | 304 | of this script will not be permitted if |
304 | this option is not present. | 305 | this option is not present. |
305 | 306 | ||
306 | $OpenBSD: PROTOCOL.certkeys,v 1.15 2018/07/03 11:39:54 djm Exp $ | 307 | $OpenBSD: PROTOCOL.certkeys,v 1.16 2018/10/26 01:23:03 djm Exp $ |
@@ -1,4 +1,4 @@ | |||
1 | See https://www.openssh.com/releasenotes.html#7.9p1 for the release notes. | 1 | See https://www.openssh.com/releasenotes.html#8.0p1 for the release notes. |
2 | 2 | ||
3 | Please read https://www.openssh.com/report.html for bug reporting | 3 | Please read https://www.openssh.com/report.html for bug reporting |
4 | instructions and note that we do not use Github for bug reporting or | 4 | instructions and note that we do not use Github for bug reporting or |
diff --git a/README.md b/README.md new file mode 100644 index 000000000..4e2624161 --- /dev/null +++ b/README.md | |||
@@ -0,0 +1,74 @@ | |||
1 | # Portable OpenSSH | ||
2 | |||
3 | OpenSSH is a complete implementation of the SSH protocol (version 2) for secure remote login, command execution and file transfer. It includes a client ``ssh`` and server ``sshd``, file transfer utilities ``scp`` and ``sftp`` as well as tools for key generation (``ssh-keygen``), run-time key storage (``ssh-agent``) and a number of supporting programs. | ||
4 | |||
5 | This is a port of OpenBSD's [OpenSSH](https://openssh.com) to most Unix-like operating systems, including Linux, OS X and Cygwin. Portable OpenSSH polyfills OpenBSD APIs that are not available elsewhere, adds sshd sandboxing for more operating systems and includes support for OS-native authentication and auditing (e.g. using PAM). | ||
6 | |||
7 | ## Documentation | ||
8 | |||
9 | The official documentation for OpenSSH are the man pages for each tool: | ||
10 | |||
11 | * [ssh(1)](https://man.openbsd.org/ssh.1) | ||
12 | * [sshd(8)](https://man.openbsd.org/sshd.8) | ||
13 | * [ssh-keygen(1)](https://man.openbsd.org/ssh-keygen.1) | ||
14 | * [ssh-agent(1)](https://man.openbsd.org/ssh-agent.1) | ||
15 | * [scp(1)](https://man.openbsd.org/scp.1) | ||
16 | * [sftp(1)](https://man.openbsd.org/sftp.1) | ||
17 | * [ssh-keyscan(8)](https://man.openbsd.org/ssh-keyscan.8) | ||
18 | * [sftp-server(8)](https://man.openbsd.org/sftp-server.8) | ||
19 | |||
20 | ## Stable Releases | ||
21 | |||
22 | Stable release tarballs are available from a number of [download mirrors](https://www.openssh.com/portable.html#downloads). We recommend the use of a stable release for most users. Please read the [release notes](https://www.openssh.com/releasenotes.html) for details of recent changes and potential incompatibilities. | ||
23 | |||
24 | ## Building Portable OpenSSH | ||
25 | |||
26 | ### Dependencies | ||
27 | |||
28 | Portable OpenSSH is built using autoconf and make. It requires a working C compiler, standard library and headers, as well as [zlib](https://www.zlib.net/) and ``libcrypto`` from either [LibreSSL](https://www.libressl.org/) or [OpenSSL](https://www.openssl.org) to build. Certain platforms and build-time options may require additional dependencies. | ||
29 | |||
30 | ### Building a release | ||
31 | |||
32 | Releases include a pre-built copy of the ``configure`` script and may be built using: | ||
33 | |||
34 | ``` | ||
35 | tar zxvf openssh-X.Y.tar.gz | ||
36 | cd openssh | ||
37 | ./configure # [options] | ||
38 | make && make tests | ||
39 | ``` | ||
40 | |||
41 | See the [Build-time Customisation](#build-time-customisation) section below for configure options. If you plan on installing OpenSSH to your system, then you will usually want to specify destination paths. | ||
42 | |||
43 | ### Building from git | ||
44 | |||
45 | If building from git, you'll need [autoconf](https://www.gnu.org/software/autoconf/) installed to build the ``configure`` script. The following commands will check out and build portable OpenSSH from git: | ||
46 | |||
47 | ``` | ||
48 | git clone https://github.com/openssh/openssh-portable # or https://anongit.mindrot.org/openssh.git | ||
49 | cd openssh-portable | ||
50 | autoreconf | ||
51 | ./configure | ||
52 | make && make tests | ||
53 | ``` | ||
54 | |||
55 | ### Build-time Customisation | ||
56 | |||
57 | There are many build-time customisation options available. All Autoconf destination path flags (e.g. ``--prefix``) are supported (and are usually required if you want to install OpenSSH). | ||
58 | |||
59 | For a full list of available flags, run ``configure --help`` but a few of the more frequently-used ones are described below. Some of these flags will require additional libraries and/or headers be installed. | ||
60 | |||
61 | Flag | Meaning | ||
62 | --- | --- | ||
63 | ``--with-pam`` | Enable [PAM](https://en.wikipedia.org/wiki/Pluggable_authentication_module) support. [OpenPAM](https://www.openpam.org/), [Linux PAM](http://www.linux-pam.org/) and Solaris PAM are supported. | ||
64 | ``--with-libedit`` | Enable [libedit](https://www.thrysoee.dk/editline/) support for sftp. | ||
65 | ``--with-kerberos5`` | Enable Kerberos/GSSAPI support. Both [Heimdal](https://www.h5l.org/) and [MIT](https://web.mit.edu/kerberos/) Kerberos implementations are supported. | ||
66 | ``--with-selinux`` | Enable [SELinux](https://en.wikipedia.org/wiki/Security-Enhanced_Linux) support. | ||
67 | |||
68 | ## Development | ||
69 | |||
70 | Portable OpenSSH development is discussed on the [openssh-unix-dev mailing list](https://lists.mindrot.org/mailman/listinfo/openssh-unix-dev) ([archive mirror](https://marc.info/?l=openssh-unix-dev)). Bugs and feature requests are tracked on our [Bugzilla](https://bugzilla.mindrot.org/). | ||
71 | |||
72 | ## Reporting bugs | ||
73 | |||
74 | _Non-security_ bugs may be reported to the developers via [Bugzilla](https://bugzilla.mindrot.org/) or via the mailing list above. Security bugs should be reported to [openssh@openssh.com](mailto:openssh.openssh.com). | ||
diff --git a/atomicio.c b/atomicio.c index f854a06f5..e00c9f0d4 100644 --- a/atomicio.c +++ b/atomicio.c | |||
@@ -1,4 +1,4 @@ | |||
1 | /* $OpenBSD: atomicio.c,v 1.28 2016/07/27 23:18:12 djm Exp $ */ | 1 | /* $OpenBSD: atomicio.c,v 1.30 2019/01/24 02:42:23 dtucker Exp $ */ |
2 | /* | 2 | /* |
3 | * Copyright (c) 2006 Damien Miller. All rights reserved. | 3 | * Copyright (c) 2006 Damien Miller. All rights reserved. |
4 | * Copyright (c) 2005 Anil Madhavapeddy. All rights reserved. | 4 | * Copyright (c) 2005 Anil Madhavapeddy. All rights reserved. |
@@ -57,20 +57,25 @@ atomicio6(ssize_t (*f) (int, void *, size_t), int fd, void *_s, size_t n, | |||
57 | ssize_t res; | 57 | ssize_t res; |
58 | struct pollfd pfd; | 58 | struct pollfd pfd; |
59 | 59 | ||
60 | #ifndef BROKEN_READ_COMPARISON | ||
61 | pfd.fd = fd; | 60 | pfd.fd = fd; |
61 | #ifndef BROKEN_READ_COMPARISON | ||
62 | pfd.events = f == read ? POLLIN : POLLOUT; | 62 | pfd.events = f == read ? POLLIN : POLLOUT; |
63 | #else | ||
64 | pfd.events = POLLIN|POLLOUT; | ||
63 | #endif | 65 | #endif |
64 | while (n > pos) { | 66 | while (n > pos) { |
65 | res = (f) (fd, s + pos, n - pos); | 67 | res = (f) (fd, s + pos, n - pos); |
66 | switch (res) { | 68 | switch (res) { |
67 | case -1: | 69 | case -1: |
68 | if (errno == EINTR) | 70 | if (errno == EINTR) { |
71 | /* possible SIGALARM, update callback */ | ||
72 | if (cb != NULL && cb(cb_arg, 0) == -1) { | ||
73 | errno = EINTR; | ||
74 | return pos; | ||
75 | } | ||
69 | continue; | 76 | continue; |
70 | if (errno == EAGAIN || errno == EWOULDBLOCK) { | 77 | } else if (errno == EAGAIN || errno == EWOULDBLOCK) { |
71 | #ifndef BROKEN_READ_COMPARISON | ||
72 | (void)poll(&pfd, 1, -1); | 78 | (void)poll(&pfd, 1, -1); |
73 | #endif | ||
74 | continue; | 79 | continue; |
75 | } | 80 | } |
76 | return 0; | 81 | return 0; |
@@ -114,20 +119,25 @@ atomiciov6(ssize_t (*f) (int, const struct iovec *, int), int fd, | |||
114 | /* Make a copy of the iov array because we may modify it below */ | 119 | /* Make a copy of the iov array because we may modify it below */ |
115 | memcpy(iov, _iov, (size_t)iovcnt * sizeof(*_iov)); | 120 | memcpy(iov, _iov, (size_t)iovcnt * sizeof(*_iov)); |
116 | 121 | ||
117 | #ifndef BROKEN_READV_COMPARISON | ||
118 | pfd.fd = fd; | 122 | pfd.fd = fd; |
123 | #ifndef BROKEN_READV_COMPARISON | ||
119 | pfd.events = f == readv ? POLLIN : POLLOUT; | 124 | pfd.events = f == readv ? POLLIN : POLLOUT; |
125 | #else | ||
126 | pfd.events = POLLIN|POLLOUT; | ||
120 | #endif | 127 | #endif |
121 | for (; iovcnt > 0 && iov[0].iov_len > 0;) { | 128 | for (; iovcnt > 0 && iov[0].iov_len > 0;) { |
122 | res = (f) (fd, iov, iovcnt); | 129 | res = (f) (fd, iov, iovcnt); |
123 | switch (res) { | 130 | switch (res) { |
124 | case -1: | 131 | case -1: |
125 | if (errno == EINTR) | 132 | if (errno == EINTR) { |
133 | /* possible SIGALARM, update callback */ | ||
134 | if (cb != NULL && cb(cb_arg, 0) == -1) { | ||
135 | errno = EINTR; | ||
136 | return pos; | ||
137 | } | ||
126 | continue; | 138 | continue; |
127 | if (errno == EAGAIN || errno == EWOULDBLOCK) { | 139 | } else if (errno == EAGAIN || errno == EWOULDBLOCK) { |
128 | #ifndef BROKEN_READV_COMPARISON | ||
129 | (void)poll(&pfd, 1, -1); | 140 | (void)poll(&pfd, 1, -1); |
130 | #endif | ||
131 | continue; | 141 | continue; |
132 | } | 142 | } |
133 | return 0; | 143 | return 0; |
diff --git a/atomicio.h b/atomicio.h index 0d728ac86..8b3cc6e21 100644 --- a/atomicio.h +++ b/atomicio.h | |||
@@ -1,4 +1,4 @@ | |||
1 | /* $OpenBSD: atomicio.h,v 1.11 2010/09/22 22:58:51 djm Exp $ */ | 1 | /* $OpenBSD: atomicio.h,v 1.12 2018/12/27 03:25:25 djm Exp $ */ |
2 | 2 | ||
3 | /* | 3 | /* |
4 | * Copyright (c) 2006 Damien Miller. All rights reserved. | 4 | * Copyright (c) 2006 Damien Miller. All rights reserved. |
@@ -29,6 +29,8 @@ | |||
29 | #ifndef _ATOMICIO_H | 29 | #ifndef _ATOMICIO_H |
30 | #define _ATOMICIO_H | 30 | #define _ATOMICIO_H |
31 | 31 | ||
32 | struct iovec; | ||
33 | |||
32 | /* | 34 | /* |
33 | * Ensure all of data on socket comes through. f==read || f==vwrite | 35 | * Ensure all of data on socket comes through. f==read || f==vwrite |
34 | */ | 36 | */ |
diff --git a/audit-bsm.c b/audit-bsm.c index 1409f69ae..0ba16c72c 100644 --- a/audit-bsm.c +++ b/audit-bsm.c | |||
@@ -391,7 +391,7 @@ audit_session_close(struct logininfo *li) | |||
391 | } | 391 | } |
392 | 392 | ||
393 | void | 393 | void |
394 | audit_event(ssh_audit_event_t event) | 394 | audit_event(struct ssh *ssh, ssh_audit_event_t event) |
395 | { | 395 | { |
396 | char textbuf[BSM_TEXTBUFSZ]; | 396 | char textbuf[BSM_TEXTBUFSZ]; |
397 | static int logged_in = 0; | 397 | static int logged_in = 0; |
diff --git a/audit-linux.c b/audit-linux.c index 136ed76bb..3fcbe5c53 100644 --- a/audit-linux.c +++ b/audit-linux.c | |||
@@ -97,10 +97,8 @@ audit_session_close(struct logininfo *li) | |||
97 | } | 97 | } |
98 | 98 | ||
99 | void | 99 | void |
100 | audit_event(ssh_audit_event_t event) | 100 | audit_event(struct ssh *ssh, ssh_audit_event_t event) |
101 | { | 101 | { |
102 | struct ssh *ssh = active_state; /* XXX */ | ||
103 | |||
104 | switch(event) { | 102 | switch(event) { |
105 | case SSH_AUTH_SUCCESS: | 103 | case SSH_AUTH_SUCCESS: |
106 | case SSH_CONNECTION_CLOSE: | 104 | case SSH_CONNECTION_CLOSE: |
@@ -131,7 +131,7 @@ audit_connection_from(const char *host, int port) | |||
131 | * events and what they mean). | 131 | * events and what they mean). |
132 | */ | 132 | */ |
133 | void | 133 | void |
134 | audit_event(ssh_audit_event_t event) | 134 | audit_event(struct ssh *ssh, ssh_audit_event_t event) |
135 | { | 135 | { |
136 | debug("audit event euid %d user %s event %d (%s)", geteuid(), | 136 | debug("audit event euid %d user %s event %d (%s)", geteuid(), |
137 | audit_username(), event, audit_event_lookup(event)); | 137 | audit_username(), event, audit_event_lookup(event)); |
@@ -27,6 +27,8 @@ | |||
27 | 27 | ||
28 | #include "loginrec.h" | 28 | #include "loginrec.h" |
29 | 29 | ||
30 | struct ssh; | ||
31 | |||
30 | enum ssh_audit_event_type { | 32 | enum ssh_audit_event_type { |
31 | SSH_LOGIN_EXCEED_MAXTRIES, | 33 | SSH_LOGIN_EXCEED_MAXTRIES, |
32 | SSH_LOGIN_ROOT_DENIED, | 34 | SSH_LOGIN_ROOT_DENIED, |
@@ -46,7 +48,7 @@ enum ssh_audit_event_type { | |||
46 | typedef enum ssh_audit_event_type ssh_audit_event_t; | 48 | typedef enum ssh_audit_event_type ssh_audit_event_t; |
47 | 49 | ||
48 | void audit_connection_from(const char *, int); | 50 | void audit_connection_from(const char *, int); |
49 | void audit_event(ssh_audit_event_t); | 51 | void audit_event(struct ssh *, ssh_audit_event_t); |
50 | void audit_session_open(struct logininfo *); | 52 | void audit_session_open(struct logininfo *); |
51 | void audit_session_close(struct logininfo *); | 53 | void audit_session_close(struct logininfo *); |
52 | void audit_run_command(const char *); | 54 | void audit_run_command(const char *); |
diff --git a/auth-pam.c b/auth-pam.c index 1dec53e92..bde0a8f56 100644 --- a/auth-pam.c +++ b/auth-pam.c | |||
@@ -248,6 +248,9 @@ static int sshpam_maxtries_reached = 0; | |||
248 | static char **sshpam_env = NULL; | 248 | static char **sshpam_env = NULL; |
249 | static Authctxt *sshpam_authctxt = NULL; | 249 | static Authctxt *sshpam_authctxt = NULL; |
250 | static const char *sshpam_password = NULL; | 250 | static const char *sshpam_password = NULL; |
251 | static char *sshpam_rhost = NULL; | ||
252 | static char *sshpam_laddr = NULL; | ||
253 | static char *sshpam_conninfo = NULL; | ||
251 | 254 | ||
252 | /* Some PAM implementations don't implement this */ | 255 | /* Some PAM implementations don't implement this */ |
253 | #ifndef HAVE_PAM_GETENVLIST | 256 | #ifndef HAVE_PAM_GETENVLIST |
@@ -669,13 +672,17 @@ sshpam_cleanup(void) | |||
669 | } | 672 | } |
670 | 673 | ||
671 | static int | 674 | static int |
672 | sshpam_init(Authctxt *authctxt) | 675 | sshpam_init(struct ssh *ssh, Authctxt *authctxt) |
673 | { | 676 | { |
674 | const char *pam_rhost, *pam_user, *user = authctxt->user; | 677 | const char *pam_user, *user = authctxt->user; |
675 | const char **ptr_pam_user = &pam_user; | 678 | const char **ptr_pam_user = &pam_user; |
676 | struct ssh *ssh = active_state; /* XXX */ | ||
677 | 679 | ||
678 | if (sshpam_handle != NULL) { | 680 | if (sshpam_handle == NULL) { |
681 | if (ssh == NULL) { | ||
682 | fatal("%s: called initially with no " | ||
683 | "packet context", __func__); | ||
684 | } | ||
685 | } if (sshpam_handle != NULL) { | ||
679 | /* We already have a PAM context; check if the user matches */ | 686 | /* We already have a PAM context; check if the user matches */ |
680 | sshpam_err = pam_get_item(sshpam_handle, | 687 | sshpam_err = pam_get_item(sshpam_handle, |
681 | PAM_USER, (sshpam_const void **)ptr_pam_user); | 688 | PAM_USER, (sshpam_const void **)ptr_pam_user); |
@@ -694,14 +701,33 @@ sshpam_init(Authctxt *authctxt) | |||
694 | sshpam_handle = NULL; | 701 | sshpam_handle = NULL; |
695 | return (-1); | 702 | return (-1); |
696 | } | 703 | } |
697 | pam_rhost = auth_get_canonical_hostname(ssh, options.use_dns); | 704 | |
698 | debug("PAM: setting PAM_RHOST to \"%s\"", pam_rhost); | 705 | if (ssh != NULL && sshpam_rhost == NULL) { |
699 | sshpam_err = pam_set_item(sshpam_handle, PAM_RHOST, pam_rhost); | 706 | /* |
700 | if (sshpam_err != PAM_SUCCESS) { | 707 | * We need to cache these as we don't have packet context |
701 | pam_end(sshpam_handle, sshpam_err); | 708 | * during the kbdint flow. |
702 | sshpam_handle = NULL; | 709 | */ |
703 | return (-1); | 710 | sshpam_rhost = xstrdup(auth_get_canonical_hostname(ssh, |
711 | options.use_dns)); | ||
712 | sshpam_laddr = get_local_ipaddr( | ||
713 | ssh_packet_get_connection_in(ssh)); | ||
714 | xasprintf(&sshpam_conninfo, "SSH_CONNECTION=%.50s %d %.50s %d", | ||
715 | ssh_remote_ipaddr(ssh), ssh_remote_port(ssh), | ||
716 | sshpam_laddr, ssh_local_port(ssh)); | ||
704 | } | 717 | } |
718 | if (sshpam_rhost != NULL) { | ||
719 | debug("PAM: setting PAM_RHOST to \"%s\"", sshpam_rhost); | ||
720 | sshpam_err = pam_set_item(sshpam_handle, PAM_RHOST, | ||
721 | sshpam_rhost); | ||
722 | if (sshpam_err != PAM_SUCCESS) { | ||
723 | pam_end(sshpam_handle, sshpam_err); | ||
724 | sshpam_handle = NULL; | ||
725 | return (-1); | ||
726 | } | ||
727 | /* Put SSH_CONNECTION in the PAM environment too */ | ||
728 | pam_putenv(sshpam_handle, sshpam_conninfo); | ||
729 | } | ||
730 | |||
705 | #ifdef PAM_TTY_KLUDGE | 731 | #ifdef PAM_TTY_KLUDGE |
706 | /* | 732 | /* |
707 | * Some silly PAM modules (e.g. pam_time) require a TTY to operate. | 733 | * Some silly PAM modules (e.g. pam_time) require a TTY to operate. |
@@ -755,7 +781,7 @@ sshpam_init_ctx(Authctxt *authctxt) | |||
755 | return NULL; | 781 | return NULL; |
756 | 782 | ||
757 | /* Initialize PAM */ | 783 | /* Initialize PAM */ |
758 | if (sshpam_init(authctxt) == -1) { | 784 | if (sshpam_init(NULL, authctxt) == -1) { |
759 | error("PAM: initialization failed"); | 785 | error("PAM: initialization failed"); |
760 | return (NULL); | 786 | return (NULL); |
761 | } | 787 | } |
@@ -787,7 +813,6 @@ static int | |||
787 | sshpam_query(void *ctx, char **name, char **info, | 813 | sshpam_query(void *ctx, char **name, char **info, |
788 | u_int *num, char ***prompts, u_int **echo_on) | 814 | u_int *num, char ***prompts, u_int **echo_on) |
789 | { | 815 | { |
790 | struct ssh *ssh = active_state; /* XXX */ | ||
791 | struct sshbuf *buffer; | 816 | struct sshbuf *buffer; |
792 | struct pam_ctxt *ctxt = ctx; | 817 | struct pam_ctxt *ctxt = ctx; |
793 | size_t plen; | 818 | size_t plen; |
@@ -877,8 +902,7 @@ sshpam_query(void *ctx, char **name, char **info, | |||
877 | } | 902 | } |
878 | error("PAM: %s for %s%.100s from %.100s", msg, | 903 | error("PAM: %s for %s%.100s from %.100s", msg, |
879 | sshpam_authctxt->valid ? "" : "illegal user ", | 904 | sshpam_authctxt->valid ? "" : "illegal user ", |
880 | sshpam_authctxt->user, | 905 | sshpam_authctxt->user, sshpam_rhost); |
881 | auth_get_canonical_hostname(ssh, options.use_dns)); | ||
882 | /* FALLTHROUGH */ | 906 | /* FALLTHROUGH */ |
883 | default: | 907 | default: |
884 | *num = 0; | 908 | *num = 0; |
@@ -995,12 +1019,14 @@ KbdintDevice mm_sshpam_device = { | |||
995 | * This replaces auth-pam.c | 1019 | * This replaces auth-pam.c |
996 | */ | 1020 | */ |
997 | void | 1021 | void |
998 | start_pam(Authctxt *authctxt) | 1022 | start_pam(struct ssh *ssh) |
999 | { | 1023 | { |
1024 | Authctxt *authctxt = (Authctxt *)ssh->authctxt; | ||
1025 | |||
1000 | if (!options.use_pam) | 1026 | if (!options.use_pam) |
1001 | fatal("PAM: initialisation requested when UsePAM=no"); | 1027 | fatal("PAM: initialisation requested when UsePAM=no"); |
1002 | 1028 | ||
1003 | if (sshpam_init(authctxt) == -1) | 1029 | if (sshpam_init(ssh, authctxt) == -1) |
1004 | fatal("PAM: initialisation failed"); | 1030 | fatal("PAM: initialisation failed"); |
1005 | } | 1031 | } |
1006 | 1032 | ||
diff --git a/auth-pam.h b/auth-pam.h index 419860745..9fcea270f 100644 --- a/auth-pam.h +++ b/auth-pam.h | |||
@@ -27,7 +27,7 @@ | |||
27 | 27 | ||
28 | struct ssh; | 28 | struct ssh; |
29 | 29 | ||
30 | void start_pam(Authctxt *); | 30 | void start_pam(struct ssh *); |
31 | void finish_pam(void); | 31 | void finish_pam(void); |
32 | u_int do_pam_account(void); | 32 | u_int do_pam_account(void); |
33 | void do_pam_session(struct ssh *); | 33 | void do_pam_session(struct ssh *); |
@@ -1,4 +1,4 @@ | |||
1 | /* $OpenBSD: auth.c,v 1.133 2018/09/12 01:19:12 djm Exp $ */ | 1 | /* $OpenBSD: auth.c,v 1.138 2019/01/19 21:41:18 djm Exp $ */ |
2 | /* | 2 | /* |
3 | * Copyright (c) 2000 Markus Friedl. All rights reserved. | 3 | * Copyright (c) 2000 Markus Friedl. All rights reserved. |
4 | * | 4 | * |
@@ -50,6 +50,7 @@ | |||
50 | #include <unistd.h> | 50 | #include <unistd.h> |
51 | #include <limits.h> | 51 | #include <limits.h> |
52 | #include <netdb.h> | 52 | #include <netdb.h> |
53 | #include <time.h> | ||
53 | 54 | ||
54 | #include "xmalloc.h" | 55 | #include "xmalloc.h" |
55 | #include "match.h" | 56 | #include "match.h" |
@@ -96,9 +97,8 @@ static struct sshbuf *auth_debug; | |||
96 | * Otherwise true is returned. | 97 | * Otherwise true is returned. |
97 | */ | 98 | */ |
98 | int | 99 | int |
99 | allowed_user(struct passwd * pw) | 100 | allowed_user(struct ssh *ssh, struct passwd * pw) |
100 | { | 101 | { |
101 | struct ssh *ssh = active_state; /* XXX */ | ||
102 | struct stat st; | 102 | struct stat st; |
103 | const char *hostname = NULL, *ipaddr = NULL, *passwd = NULL; | 103 | const char *hostname = NULL, *ipaddr = NULL, *passwd = NULL; |
104 | u_int i; | 104 | u_int i; |
@@ -258,7 +258,7 @@ allowed_user(struct passwd * pw) | |||
258 | } | 258 | } |
259 | 259 | ||
260 | #ifdef CUSTOM_SYS_AUTH_ALLOWED_USER | 260 | #ifdef CUSTOM_SYS_AUTH_ALLOWED_USER |
261 | if (!sys_auth_allowed_user(pw, &loginmsg)) | 261 | if (!sys_auth_allowed_user(pw, loginmsg)) |
262 | return 0; | 262 | return 0; |
263 | #endif | 263 | #endif |
264 | 264 | ||
@@ -308,10 +308,10 @@ format_method_key(Authctxt *authctxt) | |||
308 | } | 308 | } |
309 | 309 | ||
310 | void | 310 | void |
311 | auth_log(Authctxt *authctxt, int authenticated, int partial, | 311 | auth_log(struct ssh *ssh, int authenticated, int partial, |
312 | const char *method, const char *submethod) | 312 | const char *method, const char *submethod) |
313 | { | 313 | { |
314 | struct ssh *ssh = active_state; /* XXX */ | 314 | Authctxt *authctxt = (Authctxt *)ssh->authctxt; |
315 | int level = SYSLOG_LEVEL_VERBOSE; | 315 | int level = SYSLOG_LEVEL_VERBOSE; |
316 | const char *authmsg; | 316 | const char *authmsg; |
317 | char *extra = NULL; | 317 | char *extra = NULL; |
@@ -356,26 +356,26 @@ auth_log(Authctxt *authctxt, int authenticated, int partial, | |||
356 | (strcmp(method, "password") == 0 || | 356 | (strcmp(method, "password") == 0 || |
357 | strncmp(method, "keyboard-interactive", 20) == 0 || | 357 | strncmp(method, "keyboard-interactive", 20) == 0 || |
358 | strcmp(method, "challenge-response") == 0)) | 358 | strcmp(method, "challenge-response") == 0)) |
359 | record_failed_login(authctxt->user, | 359 | record_failed_login(ssh, authctxt->user, |
360 | auth_get_canonical_hostname(ssh, options.use_dns), "ssh"); | 360 | auth_get_canonical_hostname(ssh, options.use_dns), "ssh"); |
361 | # ifdef WITH_AIXAUTHENTICATE | 361 | # ifdef WITH_AIXAUTHENTICATE |
362 | if (authenticated) | 362 | if (authenticated) |
363 | sys_auth_record_login(authctxt->user, | 363 | sys_auth_record_login(authctxt->user, |
364 | auth_get_canonical_hostname(ssh, options.use_dns), "ssh", | 364 | auth_get_canonical_hostname(ssh, options.use_dns), "ssh", |
365 | &loginmsg); | 365 | loginmsg); |
366 | # endif | 366 | # endif |
367 | #endif | 367 | #endif |
368 | #ifdef SSH_AUDIT_EVENTS | 368 | #ifdef SSH_AUDIT_EVENTS |
369 | if (authenticated == 0 && !authctxt->postponed) | 369 | if (authenticated == 0 && !authctxt->postponed) |
370 | audit_event(audit_classify_auth(method)); | 370 | audit_event(ssh, audit_classify_auth(method)); |
371 | #endif | 371 | #endif |
372 | } | 372 | } |
373 | 373 | ||
374 | 374 | ||
375 | void | 375 | void |
376 | auth_maxtries_exceeded(Authctxt *authctxt) | 376 | auth_maxtries_exceeded(struct ssh *ssh) |
377 | { | 377 | { |
378 | struct ssh *ssh = active_state; /* XXX */ | 378 | Authctxt *authctxt = (Authctxt *)ssh->authctxt; |
379 | 379 | ||
380 | error("maximum authentication attempts exceeded for " | 380 | error("maximum authentication attempts exceeded for " |
381 | "%s%.100s from %.200s port %d ssh2", | 381 | "%s%.100s from %.200s port %d ssh2", |
@@ -383,7 +383,7 @@ auth_maxtries_exceeded(Authctxt *authctxt) | |||
383 | authctxt->user, | 383 | authctxt->user, |
384 | ssh_remote_ipaddr(ssh), | 384 | ssh_remote_ipaddr(ssh), |
385 | ssh_remote_port(ssh)); | 385 | ssh_remote_port(ssh)); |
386 | packet_disconnect("Too many authentication failures"); | 386 | ssh_packet_disconnect(ssh, "Too many authentication failures"); |
387 | /* NOTREACHED */ | 387 | /* NOTREACHED */ |
388 | } | 388 | } |
389 | 389 | ||
@@ -437,7 +437,7 @@ expand_authorized_keys(const char *filename, struct passwd *pw) | |||
437 | * Ensure that filename starts anchored. If not, be backward | 437 | * Ensure that filename starts anchored. If not, be backward |
438 | * compatible and prepend the '%h/' | 438 | * compatible and prepend the '%h/' |
439 | */ | 439 | */ |
440 | if (*file == '/') | 440 | if (path_absolute(file)) |
441 | return (file); | 441 | return (file); |
442 | 442 | ||
443 | i = snprintf(ret, sizeof(ret), "%s/%s", pw->pw_dir, file); | 443 | i = snprintf(ret, sizeof(ret), "%s/%s", pw->pw_dir, file); |
@@ -558,9 +558,8 @@ auth_openprincipals(const char *file, struct passwd *pw, int strict_modes) | |||
558 | } | 558 | } |
559 | 559 | ||
560 | struct passwd * | 560 | struct passwd * |
561 | getpwnamallow(const char *user) | 561 | getpwnamallow(struct ssh *ssh, const char *user) |
562 | { | 562 | { |
563 | struct ssh *ssh = active_state; /* XXX */ | ||
564 | #ifdef HAVE_LOGIN_CAP | 563 | #ifdef HAVE_LOGIN_CAP |
565 | extern login_cap_t *lc; | 564 | extern login_cap_t *lc; |
566 | #ifdef BSD_AUTH | 565 | #ifdef BSD_AUTH |
@@ -568,8 +567,9 @@ getpwnamallow(const char *user) | |||
568 | #endif | 567 | #endif |
569 | #endif | 568 | #endif |
570 | struct passwd *pw; | 569 | struct passwd *pw; |
571 | struct connection_info *ci = get_connection_info(1, options.use_dns); | 570 | struct connection_info *ci; |
572 | 571 | ||
572 | ci = get_connection_info(ssh, 1, options.use_dns); | ||
573 | ci->user = user; | 573 | ci->user = user; |
574 | parse_server_match_config(&options, ci); | 574 | parse_server_match_config(&options, ci); |
575 | log_change_level(options.log_level); | 575 | log_change_level(options.log_level); |
@@ -584,32 +584,19 @@ getpwnamallow(const char *user) | |||
584 | #if defined(_AIX) && defined(HAVE_SETAUTHDB) | 584 | #if defined(_AIX) && defined(HAVE_SETAUTHDB) |
585 | aix_restoreauthdb(); | 585 | aix_restoreauthdb(); |
586 | #endif | 586 | #endif |
587 | #ifdef HAVE_CYGWIN | ||
588 | /* | ||
589 | * Windows usernames are case-insensitive. To avoid later problems | ||
590 | * when trying to match the username, the user is only allowed to | ||
591 | * login if the username is given in the same case as stored in the | ||
592 | * user database. | ||
593 | */ | ||
594 | if (pw != NULL && strcmp(user, pw->pw_name) != 0) { | ||
595 | logit("Login name %.100s does not match stored username %.100s", | ||
596 | user, pw->pw_name); | ||
597 | pw = NULL; | ||
598 | } | ||
599 | #endif | ||
600 | if (pw == NULL) { | 587 | if (pw == NULL) { |
601 | logit("Invalid user %.100s from %.100s port %d", | 588 | logit("Invalid user %.100s from %.100s port %d", |
602 | user, ssh_remote_ipaddr(ssh), ssh_remote_port(ssh)); | 589 | user, ssh_remote_ipaddr(ssh), ssh_remote_port(ssh)); |
603 | #ifdef CUSTOM_FAILED_LOGIN | 590 | #ifdef CUSTOM_FAILED_LOGIN |
604 | record_failed_login(user, | 591 | record_failed_login(ssh, user, |
605 | auth_get_canonical_hostname(ssh, options.use_dns), "ssh"); | 592 | auth_get_canonical_hostname(ssh, options.use_dns), "ssh"); |
606 | #endif | 593 | #endif |
607 | #ifdef SSH_AUDIT_EVENTS | 594 | #ifdef SSH_AUDIT_EVENTS |
608 | audit_event(SSH_INVALID_USER); | 595 | audit_event(ssh, SSH_INVALID_USER); |
609 | #endif /* SSH_AUDIT_EVENTS */ | 596 | #endif /* SSH_AUDIT_EVENTS */ |
610 | return (NULL); | 597 | return (NULL); |
611 | } | 598 | } |
612 | if (!allowed_user(pw)) | 599 | if (!allowed_user(ssh, pw)) |
613 | return (NULL); | 600 | return (NULL); |
614 | #ifdef HAVE_LOGIN_CAP | 601 | #ifdef HAVE_LOGIN_CAP |
615 | if ((lc = login_getclass(pw->pw_class)) == NULL) { | 602 | if ((lc = login_getclass(pw->pw_class)) == NULL) { |
@@ -688,9 +675,8 @@ auth_debug_add(const char *fmt,...) | |||
688 | } | 675 | } |
689 | 676 | ||
690 | void | 677 | void |
691 | auth_debug_send(void) | 678 | auth_debug_send(struct ssh *ssh) |
692 | { | 679 | { |
693 | struct ssh *ssh = active_state; /* XXX */ | ||
694 | char *msg; | 680 | char *msg; |
695 | int r; | 681 | int r; |
696 | 682 | ||
@@ -893,7 +879,7 @@ subprocess(const char *tag, struct passwd *pw, const char *command, | |||
893 | * If executing an explicit binary, then verify the it exists | 879 | * If executing an explicit binary, then verify the it exists |
894 | * and appears safe-ish to execute | 880 | * and appears safe-ish to execute |
895 | */ | 881 | */ |
896 | if (*av[0] != '/') { | 882 | if (!path_absolute(av[0])) { |
897 | error("%s path is not absolute", tag); | 883 | error("%s path is not absolute", tag); |
898 | return 0; | 884 | return 0; |
899 | } | 885 | } |
@@ -1,4 +1,4 @@ | |||
1 | /* $OpenBSD: auth.h,v 1.96 2018/04/10 00:10:49 djm Exp $ */ | 1 | /* $OpenBSD: auth.h,v 1.99 2019/01/19 21:43:56 djm Exp $ */ |
2 | 2 | ||
3 | /* | 3 | /* |
4 | * Copyright (c) 2000 Markus Friedl. All rights reserved. | 4 | * Copyright (c) 2000 Markus Friedl. All rights reserved. |
@@ -132,8 +132,8 @@ auth_rhosts2(struct passwd *, const char *, const char *, const char *); | |||
132 | 132 | ||
133 | int auth_password(struct ssh *, const char *); | 133 | int auth_password(struct ssh *, const char *); |
134 | 134 | ||
135 | int hostbased_key_allowed(struct passwd *, const char *, char *, | 135 | int hostbased_key_allowed(struct ssh *, struct passwd *, |
136 | struct sshkey *); | 136 | const char *, char *, struct sshkey *); |
137 | int user_key_allowed(struct ssh *, struct passwd *, struct sshkey *, int, | 137 | int user_key_allowed(struct ssh *, struct passwd *, struct sshkey *, int, |
138 | struct sshauthopt **); | 138 | struct sshauthopt **); |
139 | int auth2_key_already_used(Authctxt *, const struct sshkey *); | 139 | int auth2_key_already_used(Authctxt *, const struct sshkey *); |
@@ -166,15 +166,13 @@ int auth_shadow_pwexpired(Authctxt *); | |||
166 | #include "audit.h" | 166 | #include "audit.h" |
167 | void remove_kbdint_device(const char *); | 167 | void remove_kbdint_device(const char *); |
168 | 168 | ||
169 | void do_authentication2(Authctxt *); | 169 | void do_authentication2(struct ssh *); |
170 | 170 | ||
171 | void auth_log(Authctxt *, int, int, const char *, const char *); | 171 | void auth_log(struct ssh *, int, int, const char *, const char *); |
172 | void auth_maxtries_exceeded(Authctxt *) __attribute__((noreturn)); | 172 | void auth_maxtries_exceeded(struct ssh *) __attribute__((noreturn)); |
173 | void userauth_finish(struct ssh *, int, const char *, const char *); | 173 | void userauth_finish(struct ssh *, int, const char *, const char *); |
174 | int auth_root_allowed(struct ssh *, const char *); | 174 | int auth_root_allowed(struct ssh *, const char *); |
175 | 175 | ||
176 | void userauth_send_banner(const char *); | ||
177 | |||
178 | char *auth2_read_banner(void); | 176 | char *auth2_read_banner(void); |
179 | int auth2_methods_valid(const char *, int); | 177 | int auth2_methods_valid(const char *, int); |
180 | int auth2_update_methods_lists(Authctxt *, const char *, const char *); | 178 | int auth2_update_methods_lists(Authctxt *, const char *, const char *); |
@@ -188,8 +186,8 @@ void auth2_challenge_stop(struct ssh *); | |||
188 | int bsdauth_query(void *, char **, char **, u_int *, char ***, u_int **); | 186 | int bsdauth_query(void *, char **, char **, u_int *, char ***, u_int **); |
189 | int bsdauth_respond(void *, u_int, char **); | 187 | int bsdauth_respond(void *, u_int, char **); |
190 | 188 | ||
191 | int allowed_user(struct passwd *); | 189 | int allowed_user(struct ssh *, struct passwd *); |
192 | struct passwd * getpwnamallow(const char *user); | 190 | struct passwd * getpwnamallow(struct ssh *, const char *user); |
193 | 191 | ||
194 | char *expand_authorized_keys(const char *, struct passwd *pw); | 192 | char *expand_authorized_keys(const char *, struct passwd *pw); |
195 | char *authorized_principals_file(struct passwd *); | 193 | char *authorized_principals_file(struct passwd *); |
@@ -210,8 +208,8 @@ struct sshkey *get_hostkey_public_by_index(int, struct ssh *); | |||
210 | struct sshkey *get_hostkey_public_by_type(int, int, struct ssh *); | 208 | struct sshkey *get_hostkey_public_by_type(int, int, struct ssh *); |
211 | struct sshkey *get_hostkey_private_by_type(int, int, struct ssh *); | 209 | struct sshkey *get_hostkey_private_by_type(int, int, struct ssh *); |
212 | int get_hostkey_index(struct sshkey *, int, struct ssh *); | 210 | int get_hostkey_index(struct sshkey *, int, struct ssh *); |
213 | int sshd_hostkey_sign(struct sshkey *, struct sshkey *, u_char **, | 211 | int sshd_hostkey_sign(struct ssh *, struct sshkey *, struct sshkey *, |
214 | size_t *, const u_char *, size_t, const char *, u_int); | 212 | u_char **, size_t *, const u_char *, size_t, const char *); |
215 | 213 | ||
216 | /* Key / cert options linkage to auth layer */ | 214 | /* Key / cert options linkage to auth layer */ |
217 | const struct sshauthopt *auth_options(struct ssh *); | 215 | const struct sshauthopt *auth_options(struct ssh *); |
@@ -224,7 +222,7 @@ void auth_log_authopts(const char *, const struct sshauthopt *, int); | |||
224 | /* debug messages during authentication */ | 222 | /* debug messages during authentication */ |
225 | void auth_debug_add(const char *fmt,...) | 223 | void auth_debug_add(const char *fmt,...) |
226 | __attribute__((format(printf, 1, 2))); | 224 | __attribute__((format(printf, 1, 2))); |
227 | void auth_debug_send(void); | 225 | void auth_debug_send(struct ssh *); |
228 | void auth_debug_reset(void); | 226 | void auth_debug_reset(void); |
229 | 227 | ||
230 | struct passwd *fakepw(void); | 228 | struct passwd *fakepw(void); |
diff --git a/auth2-hostbased.c b/auth2-hostbased.c index 764ceff74..0c40fad4e 100644 --- a/auth2-hostbased.c +++ b/auth2-hostbased.c | |||
@@ -1,4 +1,4 @@ | |||
1 | /* $OpenBSD: auth2-hostbased.c,v 1.38 2018/09/20 03:28:06 djm Exp $ */ | 1 | /* $OpenBSD: auth2-hostbased.c,v 1.40 2019/01/19 21:43:56 djm Exp $ */ |
2 | /* | 2 | /* |
3 | * Copyright (c) 2000 Markus Friedl. All rights reserved. | 3 | * Copyright (c) 2000 Markus Friedl. All rights reserved. |
4 | * | 4 | * |
@@ -147,7 +147,8 @@ userauth_hostbased(struct ssh *ssh) | |||
147 | 147 | ||
148 | /* test for allowed key and correct signature */ | 148 | /* test for allowed key and correct signature */ |
149 | authenticated = 0; | 149 | authenticated = 0; |
150 | if (PRIVSEP(hostbased_key_allowed(authctxt->pw, cuser, chost, key)) && | 150 | if (PRIVSEP(hostbased_key_allowed(ssh, authctxt->pw, cuser, |
151 | chost, key)) && | ||
151 | PRIVSEP(sshkey_verify(key, sig, slen, | 152 | PRIVSEP(sshkey_verify(key, sig, slen, |
152 | sshbuf_ptr(b), sshbuf_len(b), pkalg, ssh->compat)) == 0) | 153 | sshbuf_ptr(b), sshbuf_len(b), pkalg, ssh->compat)) == 0) |
153 | authenticated = 1; | 154 | authenticated = 1; |
@@ -167,10 +168,9 @@ done: | |||
167 | 168 | ||
168 | /* return 1 if given hostkey is allowed */ | 169 | /* return 1 if given hostkey is allowed */ |
169 | int | 170 | int |
170 | hostbased_key_allowed(struct passwd *pw, const char *cuser, char *chost, | 171 | hostbased_key_allowed(struct ssh *ssh, struct passwd *pw, |
171 | struct sshkey *key) | 172 | const char *cuser, char *chost, struct sshkey *key) |
172 | { | 173 | { |
173 | struct ssh *ssh = active_state; /* XXX */ | ||
174 | const char *resolvedname, *ipaddr, *lookup, *reason; | 174 | const char *resolvedname, *ipaddr, *lookup, *reason; |
175 | HostStatus host_status; | 175 | HostStatus host_status; |
176 | int len; | 176 | int len; |
diff --git a/auth2-pubkey.c b/auth2-pubkey.c index 2fb5950ea..0b3975a74 100644 --- a/auth2-pubkey.c +++ b/auth2-pubkey.c | |||
@@ -1,4 +1,4 @@ | |||
1 | /* $OpenBSD: auth2-pubkey.c,v 1.86 2018/09/20 03:28:06 djm Exp $ */ | 1 | /* $OpenBSD: auth2-pubkey.c,v 1.87 2019/01/22 11:26:16 djm Exp $ */ |
2 | /* | 2 | /* |
3 | * Copyright (c) 2000 Markus Friedl. All rights reserved. | 3 | * Copyright (c) 2000 Markus Friedl. All rights reserved. |
4 | * | 4 | * |
@@ -102,6 +102,22 @@ userauth_pubkey(struct ssh *ssh) | |||
102 | (r = sshpkt_get_cstring(ssh, &pkalg, NULL)) != 0 || | 102 | (r = sshpkt_get_cstring(ssh, &pkalg, NULL)) != 0 || |
103 | (r = sshpkt_get_string(ssh, &pkblob, &blen)) != 0) | 103 | (r = sshpkt_get_string(ssh, &pkblob, &blen)) != 0) |
104 | fatal("%s: parse request failed: %s", __func__, ssh_err(r)); | 104 | fatal("%s: parse request failed: %s", __func__, ssh_err(r)); |
105 | |||
106 | if (log_level_get() >= SYSLOG_LEVEL_DEBUG2) { | ||
107 | char *keystring; | ||
108 | struct sshbuf *pkbuf; | ||
109 | |||
110 | if ((pkbuf = sshbuf_from(pkblob, blen)) == NULL) | ||
111 | fatal("%s: sshbuf_from failed", __func__); | ||
112 | if ((keystring = sshbuf_dtob64(pkbuf)) == NULL) | ||
113 | fatal("%s: sshbuf_dtob64 failed", __func__); | ||
114 | debug2("%s: %s user %s %s public key %s %s", __func__, | ||
115 | authctxt->valid ? "valid" : "invalid", authctxt->user, | ||
116 | have_sig ? "attempting" : "querying", pkalg, keystring); | ||
117 | sshbuf_free(pkbuf); | ||
118 | free(keystring); | ||
119 | } | ||
120 | |||
105 | pktype = sshkey_type_from_name(pkalg); | 121 | pktype = sshkey_type_from_name(pkalg); |
106 | if (pktype == KEY_UNSPEC) { | 122 | if (pktype == KEY_UNSPEC) { |
107 | /* this is perfectly legal */ | 123 | /* this is perfectly legal */ |
@@ -1,4 +1,4 @@ | |||
1 | /* $OpenBSD: auth2.c,v 1.149 2018/07/11 18:53:29 markus Exp $ */ | 1 | /* $OpenBSD: auth2.c,v 1.155 2019/03/25 22:34:52 djm Exp $ */ |
2 | /* | 2 | /* |
3 | * Copyright (c) 2000 Markus Friedl. All rights reserved. | 3 | * Copyright (c) 2000 Markus Friedl. All rights reserved. |
4 | * | 4 | * |
@@ -35,6 +35,7 @@ | |||
35 | #include <stdarg.h> | 35 | #include <stdarg.h> |
36 | #include <string.h> | 36 | #include <string.h> |
37 | #include <unistd.h> | 37 | #include <unistd.h> |
38 | #include <time.h> | ||
38 | 39 | ||
39 | #include "atomicio.h" | 40 | #include "atomicio.h" |
40 | #include "xmalloc.h" | 41 | #include "xmalloc.h" |
@@ -137,18 +138,21 @@ auth2_read_banner(void) | |||
137 | return (banner); | 138 | return (banner); |
138 | } | 139 | } |
139 | 140 | ||
140 | void | 141 | static void |
141 | userauth_send_banner(const char *msg) | 142 | userauth_send_banner(struct ssh *ssh, const char *msg) |
142 | { | 143 | { |
143 | packet_start(SSH2_MSG_USERAUTH_BANNER); | 144 | int r; |
144 | packet_put_cstring(msg); | 145 | |
145 | packet_put_cstring(""); /* language, unused */ | 146 | if ((r = sshpkt_start(ssh, SSH2_MSG_USERAUTH_BANNER)) != 0 || |
146 | packet_send(); | 147 | (r = sshpkt_put_cstring(ssh, msg)) != 0 || |
148 | (r = sshpkt_put_cstring(ssh, "")) != 0 || /* language, unused */ | ||
149 | (r = sshpkt_send(ssh)) != 0) | ||
150 | fatal("%s: %s", __func__, ssh_err(r)); | ||
147 | debug("%s: sent", __func__); | 151 | debug("%s: sent", __func__); |
148 | } | 152 | } |
149 | 153 | ||
150 | static void | 154 | static void |
151 | userauth_banner(void) | 155 | userauth_banner(struct ssh *ssh) |
152 | { | 156 | { |
153 | char *banner = NULL; | 157 | char *banner = NULL; |
154 | 158 | ||
@@ -157,7 +161,7 @@ userauth_banner(void) | |||
157 | 161 | ||
158 | if ((banner = PRIVSEP(auth2_read_banner())) == NULL) | 162 | if ((banner = PRIVSEP(auth2_read_banner())) == NULL) |
159 | goto done; | 163 | goto done; |
160 | userauth_send_banner(banner); | 164 | userauth_send_banner(ssh, banner); |
161 | 165 | ||
162 | done: | 166 | done: |
163 | free(banner); | 167 | free(banner); |
@@ -167,10 +171,10 @@ done: | |||
167 | * loop until authctxt->success == TRUE | 171 | * loop until authctxt->success == TRUE |
168 | */ | 172 | */ |
169 | void | 173 | void |
170 | do_authentication2(Authctxt *authctxt) | 174 | do_authentication2(struct ssh *ssh) |
171 | { | 175 | { |
172 | struct ssh *ssh = active_state; /* XXX */ | 176 | Authctxt *authctxt = ssh->authctxt; |
173 | ssh->authctxt = authctxt; /* XXX move to caller */ | 177 | |
174 | ssh_dispatch_init(ssh, &dispatch_protocol_error); | 178 | ssh_dispatch_init(ssh, &dispatch_protocol_error); |
175 | ssh_dispatch_set(ssh, SSH2_MSG_SERVICE_REQUEST, &input_service_request); | 179 | ssh_dispatch_set(ssh, SSH2_MSG_SERVICE_REQUEST, &input_service_request); |
176 | ssh_dispatch_run_fatal(ssh, DISPATCH_BLOCK, &authctxt->success); | 180 | ssh_dispatch_run_fatal(ssh, DISPATCH_BLOCK, &authctxt->success); |
@@ -182,10 +186,12 @@ static int | |||
182 | input_service_request(int type, u_int32_t seq, struct ssh *ssh) | 186 | input_service_request(int type, u_int32_t seq, struct ssh *ssh) |
183 | { | 187 | { |
184 | Authctxt *authctxt = ssh->authctxt; | 188 | Authctxt *authctxt = ssh->authctxt; |
185 | u_int len; | 189 | char *service = NULL; |
186 | int acceptit = 0; | 190 | int r, acceptit = 0; |
187 | char *service = packet_get_cstring(&len); | 191 | |
188 | packet_check_eom(); | 192 | if ((r = sshpkt_get_cstring(ssh, &service, NULL)) != 0 || |
193 | (r = sshpkt_get_end(ssh)) != 0) | ||
194 | goto out; | ||
189 | 195 | ||
190 | if (authctxt == NULL) | 196 | if (authctxt == NULL) |
191 | fatal("input_service_request: no authctxt"); | 197 | fatal("input_service_request: no authctxt"); |
@@ -194,20 +200,24 @@ input_service_request(int type, u_int32_t seq, struct ssh *ssh) | |||
194 | if (!authctxt->success) { | 200 | if (!authctxt->success) { |
195 | acceptit = 1; | 201 | acceptit = 1; |
196 | /* now we can handle user-auth requests */ | 202 | /* now we can handle user-auth requests */ |
197 | ssh_dispatch_set(ssh, SSH2_MSG_USERAUTH_REQUEST, &input_userauth_request); | 203 | ssh_dispatch_set(ssh, SSH2_MSG_USERAUTH_REQUEST, |
204 | &input_userauth_request); | ||
198 | } | 205 | } |
199 | } | 206 | } |
200 | /* XXX all other service requests are denied */ | 207 | /* XXX all other service requests are denied */ |
201 | 208 | ||
202 | if (acceptit) { | 209 | if (acceptit) { |
203 | packet_start(SSH2_MSG_SERVICE_ACCEPT); | 210 | if ((r = sshpkt_start(ssh, SSH2_MSG_SERVICE_ACCEPT)) != 0 || |
204 | packet_put_cstring(service); | 211 | (r = sshpkt_put_cstring(ssh, service)) != 0 || |
205 | packet_send(); | 212 | (r = sshpkt_send(ssh)) != 0 || |
206 | packet_write_wait(); | 213 | (r = ssh_packet_write_wait(ssh)) != 0) |
214 | goto out; | ||
207 | } else { | 215 | } else { |
208 | debug("bad service request %s", service); | 216 | debug("bad service request %s", service); |
209 | packet_disconnect("bad service request %s", service); | 217 | ssh_packet_disconnect(ssh, "bad service request %s", service); |
210 | } | 218 | } |
219 | r = 0; | ||
220 | out: | ||
211 | free(service); | 221 | free(service); |
212 | return 0; | 222 | return 0; |
213 | } | 223 | } |
@@ -255,16 +265,17 @@ input_userauth_request(int type, u_int32_t seq, struct ssh *ssh) | |||
255 | { | 265 | { |
256 | Authctxt *authctxt = ssh->authctxt; | 266 | Authctxt *authctxt = ssh->authctxt; |
257 | Authmethod *m = NULL; | 267 | Authmethod *m = NULL; |
258 | char *user, *service, *method, *style = NULL; | 268 | char *user = NULL, *service = NULL, *method = NULL, *style = NULL; |
259 | int authenticated = 0; | 269 | int r, authenticated = 0; |
260 | double tstart = monotime_double(); | 270 | double tstart = monotime_double(); |
261 | 271 | ||
262 | if (authctxt == NULL) | 272 | if (authctxt == NULL) |
263 | fatal("input_userauth_request: no authctxt"); | 273 | fatal("input_userauth_request: no authctxt"); |
264 | 274 | ||
265 | user = packet_get_cstring(NULL); | 275 | if ((r = sshpkt_get_cstring(ssh, &user, NULL)) != 0 || |
266 | service = packet_get_cstring(NULL); | 276 | (r = sshpkt_get_cstring(ssh, &service, NULL)) != 0 || |
267 | method = packet_get_cstring(NULL); | 277 | (r = sshpkt_get_cstring(ssh, &method, NULL)) != 0) |
278 | goto out; | ||
268 | debug("userauth-request for user %s service %s method %s", user, service, method); | 279 | debug("userauth-request for user %s service %s method %s", user, service, method); |
269 | debug("attempt %d failures %d", authctxt->attempt, authctxt->failures); | 280 | debug("attempt %d failures %d", authctxt->attempt, authctxt->failures); |
270 | 281 | ||
@@ -273,7 +284,7 @@ input_userauth_request(int type, u_int32_t seq, struct ssh *ssh) | |||
273 | 284 | ||
274 | if (authctxt->attempt++ == 0) { | 285 | if (authctxt->attempt++ == 0) { |
275 | /* setup auth context */ | 286 | /* setup auth context */ |
276 | authctxt->pw = PRIVSEP(getpwnamallow(user)); | 287 | authctxt->pw = PRIVSEP(getpwnamallow(ssh, user)); |
277 | authctxt->user = xstrdup(user); | 288 | authctxt->user = xstrdup(user); |
278 | if (authctxt->pw && strcmp(service, "ssh-connection")==0) { | 289 | if (authctxt->pw && strcmp(service, "ssh-connection")==0) { |
279 | authctxt->valid = 1; | 290 | authctxt->valid = 1; |
@@ -283,12 +294,12 @@ input_userauth_request(int type, u_int32_t seq, struct ssh *ssh) | |||
283 | /* Invalid user, fake password information */ | 294 | /* Invalid user, fake password information */ |
284 | authctxt->pw = fakepw(); | 295 | authctxt->pw = fakepw(); |
285 | #ifdef SSH_AUDIT_EVENTS | 296 | #ifdef SSH_AUDIT_EVENTS |
286 | PRIVSEP(audit_event(SSH_INVALID_USER)); | 297 | PRIVSEP(audit_event(ssh, SSH_INVALID_USER)); |
287 | #endif | 298 | #endif |
288 | } | 299 | } |
289 | #ifdef USE_PAM | 300 | #ifdef USE_PAM |
290 | if (options.use_pam) | 301 | if (options.use_pam) |
291 | PRIVSEP(start_pam(authctxt)); | 302 | PRIVSEP(start_pam(ssh)); |
292 | #endif | 303 | #endif |
293 | ssh_packet_set_log_preamble(ssh, "%suser %s", | 304 | ssh_packet_set_log_preamble(ssh, "%suser %s", |
294 | authctxt->valid ? "authenticating " : "invalid ", user); | 305 | authctxt->valid ? "authenticating " : "invalid ", user); |
@@ -298,13 +309,14 @@ input_userauth_request(int type, u_int32_t seq, struct ssh *ssh) | |||
298 | authctxt->style = style ? xstrdup(style) : NULL; | 309 | authctxt->style = style ? xstrdup(style) : NULL; |
299 | if (use_privsep) | 310 | if (use_privsep) |
300 | mm_inform_authserv(service, style); | 311 | mm_inform_authserv(service, style); |
301 | userauth_banner(); | 312 | userauth_banner(ssh); |
302 | if (auth2_setup_methods_lists(authctxt) != 0) | 313 | if (auth2_setup_methods_lists(authctxt) != 0) |
303 | packet_disconnect("no authentication methods enabled"); | 314 | ssh_packet_disconnect(ssh, |
315 | "no authentication methods enabled"); | ||
304 | } else if (strcmp(user, authctxt->user) != 0 || | 316 | } else if (strcmp(user, authctxt->user) != 0 || |
305 | strcmp(service, authctxt->service) != 0) { | 317 | strcmp(service, authctxt->service) != 0) { |
306 | packet_disconnect("Change of username or service not allowed: " | 318 | ssh_packet_disconnect(ssh, "Change of username or service " |
307 | "(%s,%s) -> (%s,%s)", | 319 | "not allowed: (%s,%s) -> (%s,%s)", |
308 | authctxt->user, authctxt->service, user, service); | 320 | authctxt->user, authctxt->service, user, service); |
309 | } | 321 | } |
310 | /* reset state */ | 322 | /* reset state */ |
@@ -330,11 +342,12 @@ input_userauth_request(int type, u_int32_t seq, struct ssh *ssh) | |||
330 | ensure_minimum_time_since(tstart, | 342 | ensure_minimum_time_since(tstart, |
331 | user_specific_delay(authctxt->user)); | 343 | user_specific_delay(authctxt->user)); |
332 | userauth_finish(ssh, authenticated, method, NULL); | 344 | userauth_finish(ssh, authenticated, method, NULL); |
333 | 345 | r = 0; | |
346 | out: | ||
334 | free(service); | 347 | free(service); |
335 | free(user); | 348 | free(user); |
336 | free(method); | 349 | free(method); |
337 | return 0; | 350 | return r; |
338 | } | 351 | } |
339 | 352 | ||
340 | void | 353 | void |
@@ -343,7 +356,7 @@ userauth_finish(struct ssh *ssh, int authenticated, const char *method, | |||
343 | { | 356 | { |
344 | Authctxt *authctxt = ssh->authctxt; | 357 | Authctxt *authctxt = ssh->authctxt; |
345 | char *methods; | 358 | char *methods; |
346 | int partial = 0; | 359 | int r, partial = 0; |
347 | 360 | ||
348 | if (!authctxt->valid && authenticated) | 361 | if (!authctxt->valid && authenticated) |
349 | fatal("INTERNAL ERROR: authenticated invalid user %s", | 362 | fatal("INTERNAL ERROR: authenticated invalid user %s", |
@@ -356,7 +369,7 @@ userauth_finish(struct ssh *ssh, int authenticated, const char *method, | |||
356 | !auth_root_allowed(ssh, method)) { | 369 | !auth_root_allowed(ssh, method)) { |
357 | authenticated = 0; | 370 | authenticated = 0; |
358 | #ifdef SSH_AUDIT_EVENTS | 371 | #ifdef SSH_AUDIT_EVENTS |
359 | PRIVSEP(audit_event(SSH_LOGIN_ROOT_DENIED)); | 372 | PRIVSEP(audit_event(ssh, SSH_LOGIN_ROOT_DENIED)); |
360 | #endif | 373 | #endif |
361 | } | 374 | } |
362 | 375 | ||
@@ -368,7 +381,7 @@ userauth_finish(struct ssh *ssh, int authenticated, const char *method, | |||
368 | } | 381 | } |
369 | 382 | ||
370 | /* Log before sending the reply */ | 383 | /* Log before sending the reply */ |
371 | auth_log(authctxt, authenticated, partial, method, submethod); | 384 | auth_log(ssh, authenticated, partial, method, submethod); |
372 | 385 | ||
373 | /* Update information exposed to session */ | 386 | /* Update information exposed to session */ |
374 | if (authenticated || partial) | 387 | if (authenticated || partial) |
@@ -387,8 +400,11 @@ userauth_finish(struct ssh *ssh, int authenticated, const char *method, | |||
387 | if ((r = sshbuf_put(loginmsg, "\0", 1)) != 0) | 400 | if ((r = sshbuf_put(loginmsg, "\0", 1)) != 0) |
388 | fatal("%s: buffer error: %s", | 401 | fatal("%s: buffer error: %s", |
389 | __func__, ssh_err(r)); | 402 | __func__, ssh_err(r)); |
390 | userauth_send_banner(sshbuf_ptr(loginmsg)); | 403 | userauth_send_banner(ssh, sshbuf_ptr(loginmsg)); |
391 | packet_write_wait(); | 404 | if ((r = ssh_packet_write_wait(ssh)) != 0) { |
405 | sshpkt_fatal(ssh, r, | ||
406 | "%s: send PAM banner", __func__); | ||
407 | } | ||
392 | } | 408 | } |
393 | fatal("Access denied for user %s by PAM account " | 409 | fatal("Access denied for user %s by PAM account " |
394 | "configuration", authctxt->user); | 410 | "configuration", authctxt->user); |
@@ -398,10 +414,12 @@ userauth_finish(struct ssh *ssh, int authenticated, const char *method, | |||
398 | 414 | ||
399 | if (authenticated == 1) { | 415 | if (authenticated == 1) { |
400 | /* turn off userauth */ | 416 | /* turn off userauth */ |
401 | ssh_dispatch_set(ssh, SSH2_MSG_USERAUTH_REQUEST, &dispatch_protocol_ignore); | 417 | ssh_dispatch_set(ssh, SSH2_MSG_USERAUTH_REQUEST, |
402 | packet_start(SSH2_MSG_USERAUTH_SUCCESS); | 418 | &dispatch_protocol_ignore); |
403 | packet_send(); | 419 | if ((r = sshpkt_start(ssh, SSH2_MSG_USERAUTH_SUCCESS)) != 0 || |
404 | packet_write_wait(); | 420 | (r = sshpkt_send(ssh)) != 0 || |
421 | (r = ssh_packet_write_wait(ssh)) != 0) | ||
422 | fatal("%s: %s", __func__, ssh_err(r)); | ||
405 | /* now we can break out */ | 423 | /* now we can break out */ |
406 | authctxt->success = 1; | 424 | authctxt->success = 1; |
407 | ssh_packet_set_log_preamble(ssh, "user %s", authctxt->user); | 425 | ssh_packet_set_log_preamble(ssh, "user %s", authctxt->user); |
@@ -412,18 +430,19 @@ userauth_finish(struct ssh *ssh, int authenticated, const char *method, | |||
412 | authctxt->failures++; | 430 | authctxt->failures++; |
413 | if (authctxt->failures >= options.max_authtries) { | 431 | if (authctxt->failures >= options.max_authtries) { |
414 | #ifdef SSH_AUDIT_EVENTS | 432 | #ifdef SSH_AUDIT_EVENTS |
415 | PRIVSEP(audit_event(SSH_LOGIN_EXCEED_MAXTRIES)); | 433 | PRIVSEP(audit_event(ssh, SSH_LOGIN_EXCEED_MAXTRIES)); |
416 | #endif | 434 | #endif |
417 | auth_maxtries_exceeded(authctxt); | 435 | auth_maxtries_exceeded(ssh); |
418 | } | 436 | } |
419 | methods = authmethods_get(authctxt); | 437 | methods = authmethods_get(authctxt); |
420 | debug3("%s: failure partial=%d next methods=\"%s\"", __func__, | 438 | debug3("%s: failure partial=%d next methods=\"%s\"", __func__, |
421 | partial, methods); | 439 | partial, methods); |
422 | packet_start(SSH2_MSG_USERAUTH_FAILURE); | 440 | if ((r = sshpkt_start(ssh, SSH2_MSG_USERAUTH_FAILURE)) != 0 || |
423 | packet_put_cstring(methods); | 441 | (r = sshpkt_put_cstring(ssh, methods)) != 0 || |
424 | packet_put_char(partial); | 442 | (r = sshpkt_put_u8(ssh, partial)) != 0 || |
425 | packet_send(); | 443 | (r = sshpkt_send(ssh)) != 0 || |
426 | packet_write_wait(); | 444 | (r = ssh_packet_write_wait(ssh)) != 0) |
445 | fatal("%s: %s", __func__, ssh_err(r)); | ||
427 | free(methods); | 446 | free(methods); |
428 | } | 447 | } |
429 | } | 448 | } |
@@ -558,6 +577,14 @@ auth2_setup_methods_lists(Authctxt *authctxt) | |||
558 | { | 577 | { |
559 | u_int i; | 578 | u_int i; |
560 | 579 | ||
580 | /* First, normalise away the "any" pseudo-method */ | ||
581 | if (options.num_auth_methods == 1 && | ||
582 | strcmp(options.auth_methods[0], "any") == 0) { | ||
583 | free(options.auth_methods[0]); | ||
584 | options.auth_methods[0] = NULL; | ||
585 | options.num_auth_methods = 0; | ||
586 | } | ||
587 | |||
561 | if (options.num_auth_methods == 0) | 588 | if (options.num_auth_methods == 0) |
562 | return 0; | 589 | return 0; |
563 | debug3("%s: checking methods", __func__); | 590 | debug3("%s: checking methods", __func__); |
@@ -1,4 +1,4 @@ | |||
1 | /* $OpenBSD: authfd.c,v 1.111 2018/07/09 21:59:10 markus Exp $ */ | 1 | /* $OpenBSD: authfd.c,v 1.113 2018/12/27 23:02:11 djm Exp $ */ |
2 | /* | 2 | /* |
3 | * Author: Tatu Ylonen <ylo@cs.hut.fi> | 3 | * Author: Tatu Ylonen <ylo@cs.hut.fi> |
4 | * Copyright (c) 1995 Tatu Ylonen <ylo@cs.hut.fi>, Espoo, Finland | 4 | * Copyright (c) 1995 Tatu Ylonen <ylo@cs.hut.fi>, Espoo, Finland |
@@ -94,7 +94,7 @@ ssh_get_authentication_socket(int *fdp) | |||
94 | *fdp = -1; | 94 | *fdp = -1; |
95 | 95 | ||
96 | authsocket = getenv(SSH_AUTHSOCKET_ENV_NAME); | 96 | authsocket = getenv(SSH_AUTHSOCKET_ENV_NAME); |
97 | if (!authsocket) | 97 | if (authsocket == NULL || *authsocket == '\0') |
98 | return SSH_ERR_AGENT_NOT_PRESENT; | 98 | return SSH_ERR_AGENT_NOT_PRESENT; |
99 | 99 | ||
100 | memset(&sunaddr, 0, sizeof(sunaddr)); | 100 | memset(&sunaddr, 0, sizeof(sunaddr)); |
@@ -327,10 +327,12 @@ ssh_free_identitylist(struct ssh_identitylist *idl) | |||
327 | static u_int | 327 | static u_int |
328 | agent_encode_alg(const struct sshkey *key, const char *alg) | 328 | agent_encode_alg(const struct sshkey *key, const char *alg) |
329 | { | 329 | { |
330 | if (alg != NULL && key->type == KEY_RSA) { | 330 | if (alg != NULL && sshkey_type_plain(key->type) == KEY_RSA) { |
331 | if (strcmp(alg, "rsa-sha2-256") == 0) | 331 | if (strcmp(alg, "rsa-sha2-256") == 0 || |
332 | strcmp(alg, "rsa-sha2-256-cert-v01@openssh.com") == 0) | ||
332 | return SSH_AGENT_RSA_SHA2_256; | 333 | return SSH_AGENT_RSA_SHA2_256; |
333 | else if (strcmp(alg, "rsa-sha2-512") == 0) | 334 | if (strcmp(alg, "rsa-sha2-512") == 0 || |
335 | strcmp(alg, "rsa-sha2-512-cert-v01@openssh.com") == 0) | ||
334 | return SSH_AGENT_RSA_SHA2_512; | 336 | return SSH_AGENT_RSA_SHA2_512; |
335 | } | 337 | } |
336 | return 0; | 338 | return 0; |
diff --git a/channels.c b/channels.c index c85d46abd..657381b80 100644 --- a/channels.c +++ b/channels.c | |||
@@ -1,4 +1,4 @@ | |||
1 | /* $OpenBSD: channels.c,v 1.386 2018/10/04 01:04:52 djm Exp $ */ | 1 | /* $OpenBSD: channels.c,v 1.389 2019/01/19 21:37:13 djm Exp $ */ |
2 | /* | 2 | /* |
3 | * Author: Tatu Ylonen <ylo@cs.hut.fi> | 3 | * Author: Tatu Ylonen <ylo@cs.hut.fi> |
4 | * Copyright (c) 1995 Tatu Ylonen <ylo@cs.hut.fi>, Espoo, Finland | 4 | * Copyright (c) 1995 Tatu Ylonen <ylo@cs.hut.fi>, Espoo, Finland |
@@ -227,11 +227,7 @@ channel_init_channels(struct ssh *ssh) | |||
227 | { | 227 | { |
228 | struct ssh_channels *sc; | 228 | struct ssh_channels *sc; |
229 | 229 | ||
230 | if ((sc = calloc(1, sizeof(*sc))) == NULL || | 230 | if ((sc = calloc(1, sizeof(*sc))) == NULL) |
231 | (sc->channel_pre = calloc(SSH_CHANNEL_MAX_TYPE, | ||
232 | sizeof(*sc->channel_pre))) == NULL || | ||
233 | (sc->channel_post = calloc(SSH_CHANNEL_MAX_TYPE, | ||
234 | sizeof(*sc->channel_post))) == NULL) | ||
235 | fatal("%s: allocation failed", __func__); | 231 | fatal("%s: allocation failed", __func__); |
236 | sc->channels_alloc = 10; | 232 | sc->channels_alloc = 10; |
237 | sc->channels = xcalloc(sc->channels_alloc, sizeof(*sc->channels)); | 233 | sc->channels = xcalloc(sc->channels_alloc, sizeof(*sc->channels)); |
@@ -2104,16 +2100,18 @@ channel_handle_efd_read(struct ssh *ssh, Channel *c, | |||
2104 | fd_set *readset, fd_set *writeset) | 2100 | fd_set *readset, fd_set *writeset) |
2105 | { | 2101 | { |
2106 | char buf[CHAN_RBUF]; | 2102 | char buf[CHAN_RBUF]; |
2107 | int r; | ||
2108 | ssize_t len; | 2103 | ssize_t len; |
2104 | int r, force; | ||
2105 | |||
2106 | force = c->isatty && c->detach_close && c->istate != CHAN_INPUT_CLOSED; | ||
2109 | 2107 | ||
2110 | if (!c->detach_close && !FD_ISSET(c->efd, readset)) | 2108 | if (c->efd == -1 || (!force && !FD_ISSET(c->efd, readset))) |
2111 | return 1; | 2109 | return 1; |
2112 | 2110 | ||
2113 | len = read(c->efd, buf, sizeof(buf)); | 2111 | len = read(c->efd, buf, sizeof(buf)); |
2114 | debug2("channel %d: read %zd from efd %d", c->self, len, c->efd); | 2112 | debug2("channel %d: read %zd from efd %d", c->self, len, c->efd); |
2115 | if (len < 0 && (errno == EINTR || ((errno == EAGAIN || | 2113 | if (len < 0 && (errno == EINTR || ((errno == EAGAIN || |
2116 | errno == EWOULDBLOCK) && !c->detach_close))) | 2114 | errno == EWOULDBLOCK) && !force))) |
2117 | return 1; | 2115 | return 1; |
2118 | if (len <= 0) { | 2116 | if (len <= 0) { |
2119 | debug2("channel %d: closing read-efd %d", | 2117 | debug2("channel %d: closing read-efd %d", |
@@ -2995,10 +2993,10 @@ channel_input_data(int type, u_int32_t seq, struct ssh *ssh) | |||
2995 | return 0; | 2993 | return 0; |
2996 | 2994 | ||
2997 | /* Get the data. */ | 2995 | /* Get the data. */ |
2998 | if ((r = sshpkt_get_string_direct(ssh, &data, &data_len)) != 0) | 2996 | if ((r = sshpkt_get_string_direct(ssh, &data, &data_len)) != 0 || |
2997 | (r = sshpkt_get_end(ssh)) != 0) | ||
2999 | fatal("%s: channel %d: get data: %s", __func__, | 2998 | fatal("%s: channel %d: get data: %s", __func__, |
3000 | c->self, ssh_err(r)); | 2999 | c->self, ssh_err(r)); |
3001 | ssh_packet_check_eom(ssh); | ||
3002 | 3000 | ||
3003 | win_len = data_len; | 3001 | win_len = data_len; |
3004 | if (c->datagram) | 3002 | if (c->datagram) |
@@ -3072,11 +3070,11 @@ channel_input_extended_data(int type, u_int32_t seq, struct ssh *ssh) | |||
3072 | logit("channel %d: bad ext data", c->self); | 3070 | logit("channel %d: bad ext data", c->self); |
3073 | return 0; | 3071 | return 0; |
3074 | } | 3072 | } |
3075 | if ((r = sshpkt_get_string_direct(ssh, &data, &data_len)) != 0) { | 3073 | if ((r = sshpkt_get_string_direct(ssh, &data, &data_len)) != 0 || |
3074 | (r = sshpkt_get_end(ssh)) != 0) { | ||
3076 | error("%s: parse data: %s", __func__, ssh_err(r)); | 3075 | error("%s: parse data: %s", __func__, ssh_err(r)); |
3077 | ssh_packet_disconnect(ssh, "Invalid extended_data message"); | 3076 | ssh_packet_disconnect(ssh, "Invalid extended_data message"); |
3078 | } | 3077 | } |
3079 | ssh_packet_check_eom(ssh); | ||
3080 | 3078 | ||
3081 | if (data_len > c->local_window) { | 3079 | if (data_len > c->local_window) { |
3082 | logit("channel %d: rcvd too much extended_data %zu, win %u", | 3080 | logit("channel %d: rcvd too much extended_data %zu, win %u", |
@@ -3095,8 +3093,12 @@ int | |||
3095 | channel_input_ieof(int type, u_int32_t seq, struct ssh *ssh) | 3093 | channel_input_ieof(int type, u_int32_t seq, struct ssh *ssh) |
3096 | { | 3094 | { |
3097 | Channel *c = channel_from_packet_id(ssh, __func__, "ieof"); | 3095 | Channel *c = channel_from_packet_id(ssh, __func__, "ieof"); |
3096 | int r; | ||
3098 | 3097 | ||
3099 | ssh_packet_check_eom(ssh); | 3098 | if ((r = sshpkt_get_end(ssh)) != 0) { |
3099 | error("%s: parse data: %s", __func__, ssh_err(r)); | ||
3100 | ssh_packet_disconnect(ssh, "Invalid ieof message"); | ||
3101 | } | ||
3100 | 3102 | ||
3101 | if (channel_proxy_upstream(c, type, seq, ssh)) | 3103 | if (channel_proxy_upstream(c, type, seq, ssh)) |
3102 | return 0; | 3104 | return 0; |
@@ -3116,10 +3118,14 @@ int | |||
3116 | channel_input_oclose(int type, u_int32_t seq, struct ssh *ssh) | 3118 | channel_input_oclose(int type, u_int32_t seq, struct ssh *ssh) |
3117 | { | 3119 | { |
3118 | Channel *c = channel_from_packet_id(ssh, __func__, "oclose"); | 3120 | Channel *c = channel_from_packet_id(ssh, __func__, "oclose"); |
3121 | int r; | ||
3119 | 3122 | ||
3120 | if (channel_proxy_upstream(c, type, seq, ssh)) | 3123 | if (channel_proxy_upstream(c, type, seq, ssh)) |
3121 | return 0; | 3124 | return 0; |
3122 | ssh_packet_check_eom(ssh); | 3125 | if ((r = sshpkt_get_end(ssh)) != 0) { |
3126 | error("%s: parse data: %s", __func__, ssh_err(r)); | ||
3127 | ssh_packet_disconnect(ssh, "Invalid oclose message"); | ||
3128 | } | ||
3123 | chan_rcvd_oclose(ssh, c); | 3129 | chan_rcvd_oclose(ssh, c); |
3124 | return 0; | 3130 | return 0; |
3125 | } | 3131 | } |
@@ -3134,7 +3140,7 @@ channel_input_open_confirmation(int type, u_int32_t seq, struct ssh *ssh) | |||
3134 | if (channel_proxy_upstream(c, type, seq, ssh)) | 3140 | if (channel_proxy_upstream(c, type, seq, ssh)) |
3135 | return 0; | 3141 | return 0; |
3136 | if (c->type != SSH_CHANNEL_OPENING) | 3142 | if (c->type != SSH_CHANNEL_OPENING) |
3137 | packet_disconnect("Received open confirmation for " | 3143 | ssh_packet_disconnect(ssh, "Received open confirmation for " |
3138 | "non-opening channel %d.", c->self); | 3144 | "non-opening channel %d.", c->self); |
3139 | /* | 3145 | /* |
3140 | * Record the remote channel number and mark that the channel | 3146 | * Record the remote channel number and mark that the channel |
@@ -3142,11 +3148,11 @@ channel_input_open_confirmation(int type, u_int32_t seq, struct ssh *ssh) | |||
3142 | */ | 3148 | */ |
3143 | if ((r = sshpkt_get_u32(ssh, &c->remote_id)) != 0 || | 3149 | if ((r = sshpkt_get_u32(ssh, &c->remote_id)) != 0 || |
3144 | (r = sshpkt_get_u32(ssh, &remote_window)) != 0 || | 3150 | (r = sshpkt_get_u32(ssh, &remote_window)) != 0 || |
3145 | (r = sshpkt_get_u32(ssh, &remote_maxpacket)) != 0) { | 3151 | (r = sshpkt_get_u32(ssh, &remote_maxpacket)) != 0 || |
3152 | (r = sshpkt_get_end(ssh)) != 0) { | ||
3146 | error("%s: window/maxpacket: %s", __func__, ssh_err(r)); | 3153 | error("%s: window/maxpacket: %s", __func__, ssh_err(r)); |
3147 | packet_disconnect("Invalid open confirmation message"); | 3154 | ssh_packet_disconnect(ssh, "Invalid open confirmation message"); |
3148 | } | 3155 | } |
3149 | ssh_packet_check_eom(ssh); | ||
3150 | 3156 | ||
3151 | c->have_remote_id = 1; | 3157 | c->have_remote_id = 1; |
3152 | c->remote_window = remote_window; | 3158 | c->remote_window = remote_window; |
@@ -3189,19 +3195,19 @@ channel_input_open_failure(int type, u_int32_t seq, struct ssh *ssh) | |||
3189 | if (channel_proxy_upstream(c, type, seq, ssh)) | 3195 | if (channel_proxy_upstream(c, type, seq, ssh)) |
3190 | return 0; | 3196 | return 0; |
3191 | if (c->type != SSH_CHANNEL_OPENING) | 3197 | if (c->type != SSH_CHANNEL_OPENING) |
3192 | packet_disconnect("Received open failure for " | 3198 | ssh_packet_disconnect(ssh, "Received open failure for " |
3193 | "non-opening channel %d.", c->self); | 3199 | "non-opening channel %d.", c->self); |
3194 | if ((r = sshpkt_get_u32(ssh, &reason)) != 0) { | 3200 | if ((r = sshpkt_get_u32(ssh, &reason)) != 0) { |
3195 | error("%s: reason: %s", __func__, ssh_err(r)); | 3201 | error("%s: reason: %s", __func__, ssh_err(r)); |
3196 | packet_disconnect("Invalid open failure message"); | 3202 | ssh_packet_disconnect(ssh, "Invalid open failure message"); |
3197 | } | 3203 | } |
3198 | /* skip language */ | 3204 | /* skip language */ |
3199 | if ((r = sshpkt_get_cstring(ssh, &msg, NULL)) != 0 || | 3205 | if ((r = sshpkt_get_cstring(ssh, &msg, NULL)) != 0 || |
3200 | (r = sshpkt_get_string_direct(ssh, NULL, NULL)) != 0) { | 3206 | (r = sshpkt_get_string_direct(ssh, NULL, NULL)) != 0 || |
3207 | (r = sshpkt_get_end(ssh)) != 0) { | ||
3201 | error("%s: message/lang: %s", __func__, ssh_err(r)); | 3208 | error("%s: message/lang: %s", __func__, ssh_err(r)); |
3202 | packet_disconnect("Invalid open failure message"); | 3209 | ssh_packet_disconnect(ssh, "Invalid open failure message"); |
3203 | } | 3210 | } |
3204 | ssh_packet_check_eom(ssh); | ||
3205 | logit("channel %d: open failed: %s%s%s", c->self, | 3211 | logit("channel %d: open failed: %s%s%s", c->self, |
3206 | reason2txt(reason), msg ? ": ": "", msg ? msg : ""); | 3212 | reason2txt(reason), msg ? ": ": "", msg ? msg : ""); |
3207 | free(msg); | 3213 | free(msg); |
@@ -3231,11 +3237,11 @@ channel_input_window_adjust(int type, u_int32_t seq, struct ssh *ssh) | |||
3231 | 3237 | ||
3232 | if (channel_proxy_upstream(c, type, seq, ssh)) | 3238 | if (channel_proxy_upstream(c, type, seq, ssh)) |
3233 | return 0; | 3239 | return 0; |
3234 | if ((r = sshpkt_get_u32(ssh, &adjust)) != 0) { | 3240 | if ((r = sshpkt_get_u32(ssh, &adjust)) != 0 || |
3241 | (r = sshpkt_get_end(ssh)) != 0) { | ||
3235 | error("%s: adjust: %s", __func__, ssh_err(r)); | 3242 | error("%s: adjust: %s", __func__, ssh_err(r)); |
3236 | packet_disconnect("Invalid window adjust message"); | 3243 | ssh_packet_disconnect(ssh, "Invalid window adjust message"); |
3237 | } | 3244 | } |
3238 | ssh_packet_check_eom(ssh); | ||
3239 | debug2("channel %d: rcvd adjust %u", c->self, adjust); | 3245 | debug2("channel %d: rcvd adjust %u", c->self, adjust); |
3240 | if ((new_rwin = c->remote_window + adjust) < c->remote_window) { | 3246 | if ((new_rwin = c->remote_window + adjust) < c->remote_window) { |
3241 | fatal("channel %d: adjust %u overflows remote window %u", | 3247 | fatal("channel %d: adjust %u overflows remote window %u", |
@@ -3251,9 +3257,10 @@ channel_input_status_confirm(int type, u_int32_t seq, struct ssh *ssh) | |||
3251 | int id = channel_parse_id(ssh, __func__, "status confirm"); | 3257 | int id = channel_parse_id(ssh, __func__, "status confirm"); |
3252 | Channel *c; | 3258 | Channel *c; |
3253 | struct channel_confirm *cc; | 3259 | struct channel_confirm *cc; |
3260 | int r; | ||
3254 | 3261 | ||
3255 | /* Reset keepalive timeout */ | 3262 | /* Reset keepalive timeout */ |
3256 | packet_set_alive_timeouts(0); | 3263 | ssh_packet_set_alive_timeouts(ssh, 0); |
3257 | 3264 | ||
3258 | debug2("%s: type %d id %d", __func__, type, id); | 3265 | debug2("%s: type %d id %d", __func__, type, id); |
3259 | 3266 | ||
@@ -3263,7 +3270,8 @@ channel_input_status_confirm(int type, u_int32_t seq, struct ssh *ssh) | |||
3263 | } | 3270 | } |
3264 | if (channel_proxy_upstream(c, type, seq, ssh)) | 3271 | if (channel_proxy_upstream(c, type, seq, ssh)) |
3265 | return 0; | 3272 | return 0; |
3266 | ssh_packet_check_eom(ssh); | 3273 | if ((r = sshpkt_get_end(ssh)) != 0) |
3274 | ssh_packet_disconnect(ssh, "Invalid status confirm message"); | ||
3267 | if ((cc = TAILQ_FIRST(&c->status_confirms)) == NULL) | 3275 | if ((cc = TAILQ_FIRST(&c->status_confirms)) == NULL) |
3268 | return 0; | 3276 | return 0; |
3269 | cc->cb(ssh, type, c, cc->ctx); | 3277 | cc->cb(ssh, type, c, cc->ctx); |
@@ -3298,7 +3306,7 @@ channel_set_af(struct ssh *ssh, int af) | |||
3298 | * "127.0.0.1" / "::1" -> accepted even if gateway_ports isn't set | 3306 | * "127.0.0.1" / "::1" -> accepted even if gateway_ports isn't set |
3299 | */ | 3307 | */ |
3300 | static const char * | 3308 | static const char * |
3301 | channel_fwd_bind_addr(const char *listen_addr, int *wildcardp, | 3309 | channel_fwd_bind_addr(struct ssh *ssh, const char *listen_addr, int *wildcardp, |
3302 | int is_client, struct ForwardOptions *fwd_opts) | 3310 | int is_client, struct ForwardOptions *fwd_opts) |
3303 | { | 3311 | { |
3304 | const char *addr = NULL; | 3312 | const char *addr = NULL; |
@@ -3321,7 +3329,8 @@ channel_fwd_bind_addr(const char *listen_addr, int *wildcardp, | |||
3321 | if (*listen_addr != '\0' && | 3329 | if (*listen_addr != '\0' && |
3322 | strcmp(listen_addr, "0.0.0.0") != 0 && | 3330 | strcmp(listen_addr, "0.0.0.0") != 0 && |
3323 | strcmp(listen_addr, "*") != 0) { | 3331 | strcmp(listen_addr, "*") != 0) { |
3324 | packet_send_debug("Forwarding listen address " | 3332 | ssh_packet_send_debug(ssh, |
3333 | "Forwarding listen address " | ||
3325 | "\"%s\" overridden by server " | 3334 | "\"%s\" overridden by server " |
3326 | "GatewayPorts", listen_addr); | 3335 | "GatewayPorts", listen_addr); |
3327 | } | 3336 | } |
@@ -3375,7 +3384,7 @@ channel_setup_fwd_listener_tcpip(struct ssh *ssh, int type, | |||
3375 | } | 3384 | } |
3376 | 3385 | ||
3377 | /* Determine the bind address, cf. channel_fwd_bind_addr() comment */ | 3386 | /* Determine the bind address, cf. channel_fwd_bind_addr() comment */ |
3378 | addr = channel_fwd_bind_addr(fwd->listen_host, &wildcard, | 3387 | addr = channel_fwd_bind_addr(ssh, fwd->listen_host, &wildcard, |
3379 | is_client, fwd_opts); | 3388 | is_client, fwd_opts); |
3380 | debug3("%s: type %d wildcard %d addr %s", __func__, | 3389 | debug3("%s: type %d wildcard %d addr %s", __func__, |
3381 | type, wildcard, (addr == NULL) ? "NULL" : addr); | 3390 | type, wildcard, (addr == NULL) ? "NULL" : addr); |
@@ -3392,7 +3401,7 @@ channel_setup_fwd_listener_tcpip(struct ssh *ssh, int type, | |||
3392 | if ((r = getaddrinfo(addr, strport, &hints, &aitop)) != 0) { | 3401 | if ((r = getaddrinfo(addr, strport, &hints, &aitop)) != 0) { |
3393 | if (addr == NULL) { | 3402 | if (addr == NULL) { |
3394 | /* This really shouldn't happen */ | 3403 | /* This really shouldn't happen */ |
3395 | packet_disconnect("getaddrinfo: fatal error: %s", | 3404 | ssh_packet_disconnect(ssh, "getaddrinfo: fatal error: %s", |
3396 | ssh_gai_strerror(r)); | 3405 | ssh_gai_strerror(r)); |
3397 | } else { | 3406 | } else { |
3398 | error("%s: getaddrinfo(%.64s): %s", __func__, addr, | 3407 | error("%s: getaddrinfo(%.64s): %s", __func__, addr, |
@@ -3641,7 +3650,7 @@ channel_cancel_lport_listener_tcpip(struct ssh *ssh, | |||
3641 | { | 3650 | { |
3642 | u_int i; | 3651 | u_int i; |
3643 | int found = 0; | 3652 | int found = 0; |
3644 | const char *addr = channel_fwd_bind_addr(lhost, NULL, 1, fwd_opts); | 3653 | const char *addr = channel_fwd_bind_addr(ssh, lhost, NULL, 1, fwd_opts); |
3645 | 3654 | ||
3646 | for (i = 0; i < ssh->chanctxt->channels_alloc; i++) { | 3655 | for (i = 0; i < ssh->chanctxt->channels_alloc; i++) { |
3647 | Channel *c = ssh->chanctxt->channels[i]; | 3656 | Channel *c = ssh->chanctxt->channels[i]; |
@@ -3793,7 +3802,7 @@ channel_setup_remote_fwd_listener(struct ssh *ssh, struct Forward *fwd, | |||
3793 | int *allocated_listen_port, struct ForwardOptions *fwd_opts) | 3802 | int *allocated_listen_port, struct ForwardOptions *fwd_opts) |
3794 | { | 3803 | { |
3795 | if (!check_rfwd_permission(ssh, fwd)) { | 3804 | if (!check_rfwd_permission(ssh, fwd)) { |
3796 | packet_send_debug("port forwarding refused"); | 3805 | ssh_packet_send_debug(ssh, "port forwarding refused"); |
3797 | return 0; | 3806 | return 0; |
3798 | } | 3807 | } |
3799 | if (fwd->listen_path != NULL) { | 3808 | if (fwd->listen_path != NULL) { |
diff --git a/clientloop.c b/clientloop.c index 8d312cdaa..086c0dfe8 100644 --- a/clientloop.c +++ b/clientloop.c | |||
@@ -1,4 +1,4 @@ | |||
1 | /* $OpenBSD: clientloop.c,v 1.318 2018/09/21 12:46:22 djm Exp $ */ | 1 | /* $OpenBSD: clientloop.c,v 1.322 2019/03/29 11:31:40 djm Exp $ */ |
2 | /* | 2 | /* |
3 | * Author: Tatu Ylonen <ylo@cs.hut.fi> | 3 | * Author: Tatu Ylonen <ylo@cs.hut.fi> |
4 | * Copyright (c) 1995 Tatu Ylonen <ylo@cs.hut.fi>, Espoo, Finland | 4 | * Copyright (c) 1995 Tatu Ylonen <ylo@cs.hut.fi>, Espoo, Finland |
@@ -160,7 +160,7 @@ static int need_rekeying; /* Set to non-zero if rekeying is requested. */ | |||
160 | static int session_closed; /* In SSH2: login session closed. */ | 160 | static int session_closed; /* In SSH2: login session closed. */ |
161 | static u_int x11_refuse_time; /* If >0, refuse x11 opens after this time. */ | 161 | static u_int x11_refuse_time; /* If >0, refuse x11 opens after this time. */ |
162 | 162 | ||
163 | static void client_init_dispatch(void); | 163 | static void client_init_dispatch(struct ssh *ssh); |
164 | int session_ident = -1; | 164 | int session_ident = -1; |
165 | 165 | ||
166 | /* Track escape per proto2 channel */ | 166 | /* Track escape per proto2 channel */ |
@@ -364,7 +364,7 @@ client_x11_get_proto(struct ssh *ssh, const char *display, | |||
364 | SSH_X11_PROTO, x11_timeout_real, | 364 | SSH_X11_PROTO, x11_timeout_real, |
365 | _PATH_DEVNULL); | 365 | _PATH_DEVNULL); |
366 | } | 366 | } |
367 | debug2("%s: %s", __func__, cmd); | 367 | debug2("%s: xauth command: %s", __func__, cmd); |
368 | 368 | ||
369 | if (timeout != 0 && x11_refuse_time == 0) { | 369 | if (timeout != 0 && x11_refuse_time == 0) { |
370 | now = monotime() + 1; | 370 | now = monotime() + 1; |
@@ -475,21 +475,24 @@ client_global_request_reply(int type, u_int32_t seq, struct ssh *ssh) | |||
475 | free(gc); | 475 | free(gc); |
476 | } | 476 | } |
477 | 477 | ||
478 | packet_set_alive_timeouts(0); | 478 | ssh_packet_set_alive_timeouts(ssh, 0); |
479 | return 0; | 479 | return 0; |
480 | } | 480 | } |
481 | 481 | ||
482 | static void | 482 | static void |
483 | server_alive_check(void) | 483 | server_alive_check(struct ssh *ssh) |
484 | { | 484 | { |
485 | if (packet_inc_alive_timeouts() > options.server_alive_count_max) { | 485 | int r; |
486 | |||
487 | if (ssh_packet_inc_alive_timeouts(ssh) > options.server_alive_count_max) { | ||
486 | logit("Timeout, server %s not responding.", host); | 488 | logit("Timeout, server %s not responding.", host); |
487 | cleanup_exit(255); | 489 | cleanup_exit(255); |
488 | } | 490 | } |
489 | packet_start(SSH2_MSG_GLOBAL_REQUEST); | 491 | if ((r = sshpkt_start(ssh, SSH2_MSG_GLOBAL_REQUEST)) != 0 || |
490 | packet_put_cstring("keepalive@openssh.com"); | 492 | (r = sshpkt_put_cstring(ssh, "keepalive@openssh.com")) != 0 || |
491 | packet_put_char(1); /* boolean: want reply */ | 493 | (r = sshpkt_put_u8(ssh, 1)) != 0 || /* boolean: want reply */ |
492 | packet_send(); | 494 | (r = sshpkt_send(ssh)) != 0) |
495 | fatal("%s: send packet: %s", __func__, ssh_err(r)); | ||
493 | /* Insert an empty placeholder to maintain ordering */ | 496 | /* Insert an empty placeholder to maintain ordering */ |
494 | client_register_global_confirm(NULL, NULL); | 497 | client_register_global_confirm(NULL, NULL); |
495 | } | 498 | } |
@@ -509,12 +512,12 @@ client_wait_until_can_do_something(struct ssh *ssh, | |||
509 | int r, ret; | 512 | int r, ret; |
510 | 513 | ||
511 | /* Add any selections by the channel mechanism. */ | 514 | /* Add any selections by the channel mechanism. */ |
512 | channel_prepare_select(active_state, readsetp, writesetp, maxfdp, | 515 | channel_prepare_select(ssh, readsetp, writesetp, maxfdp, |
513 | nallocp, &minwait_secs); | 516 | nallocp, &minwait_secs); |
514 | 517 | ||
515 | /* channel_prepare_select could have closed the last channel */ | 518 | /* channel_prepare_select could have closed the last channel */ |
516 | if (session_closed && !channel_still_open(ssh) && | 519 | if (session_closed && !channel_still_open(ssh) && |
517 | !packet_have_data_to_write()) { | 520 | !ssh_packet_have_data_to_write(ssh)) { |
518 | /* clear mask since we did not call select() */ | 521 | /* clear mask since we did not call select() */ |
519 | memset(*readsetp, 0, *nallocp); | 522 | memset(*readsetp, 0, *nallocp); |
520 | memset(*writesetp, 0, *nallocp); | 523 | memset(*writesetp, 0, *nallocp); |
@@ -524,7 +527,7 @@ client_wait_until_can_do_something(struct ssh *ssh, | |||
524 | FD_SET(connection_in, *readsetp); | 527 | FD_SET(connection_in, *readsetp); |
525 | 528 | ||
526 | /* Select server connection if have data to write to the server. */ | 529 | /* Select server connection if have data to write to the server. */ |
527 | if (packet_have_data_to_write()) | 530 | if (ssh_packet_have_data_to_write(ssh)) |
528 | FD_SET(connection_out, *writesetp); | 531 | FD_SET(connection_out, *writesetp); |
529 | 532 | ||
530 | /* | 533 | /* |
@@ -539,7 +542,8 @@ client_wait_until_can_do_something(struct ssh *ssh, | |||
539 | server_alive_time = now + options.server_alive_interval; | 542 | server_alive_time = now + options.server_alive_interval; |
540 | } | 543 | } |
541 | if (options.rekey_interval > 0 && !rekeying) | 544 | if (options.rekey_interval > 0 && !rekeying) |
542 | timeout_secs = MINIMUM(timeout_secs, packet_get_rekey_timeout()); | 545 | timeout_secs = MINIMUM(timeout_secs, |
546 | ssh_packet_get_rekey_timeout(ssh)); | ||
543 | set_control_persist_exit_time(ssh); | 547 | set_control_persist_exit_time(ssh); |
544 | if (control_persist_exit_time > 0) { | 548 | if (control_persist_exit_time > 0) { |
545 | timeout_secs = MINIMUM(timeout_secs, | 549 | timeout_secs = MINIMUM(timeout_secs, |
@@ -580,7 +584,7 @@ client_wait_until_can_do_something(struct ssh *ssh, | |||
580 | * Keepalive we check here, rekeying is checked in clientloop. | 584 | * Keepalive we check here, rekeying is checked in clientloop. |
581 | */ | 585 | */ |
582 | if (server_alive_time != 0 && server_alive_time <= monotime()) | 586 | if (server_alive_time != 0 && server_alive_time <= monotime()) |
583 | server_alive_check(); | 587 | server_alive_check(ssh); |
584 | } | 588 | } |
585 | 589 | ||
586 | } | 590 | } |
@@ -612,7 +616,7 @@ client_suspend_self(struct sshbuf *bin, struct sshbuf *bout, struct sshbuf *berr | |||
612 | } | 616 | } |
613 | 617 | ||
614 | static void | 618 | static void |
615 | client_process_net_input(fd_set *readset) | 619 | client_process_net_input(struct ssh *ssh, fd_set *readset) |
616 | { | 620 | { |
617 | char buf[SSH_IOBUFSZ]; | 621 | char buf[SSH_IOBUFSZ]; |
618 | int r, len; | 622 | int r, len; |
@@ -658,7 +662,7 @@ client_process_net_input(fd_set *readset) | |||
658 | quit_pending = 1; | 662 | quit_pending = 1; |
659 | return; | 663 | return; |
660 | } | 664 | } |
661 | packet_process_incoming(buf, len); | 665 | ssh_packet_process_incoming(ssh, buf, len); |
662 | } | 666 | } |
663 | } | 667 | } |
664 | 668 | ||
@@ -1031,7 +1035,7 @@ process_escapes(struct ssh *ssh, Channel *c, | |||
1031 | channel_request_start(ssh, c->self, "break", 0); | 1035 | channel_request_start(ssh, c->self, "break", 0); |
1032 | if ((r = sshpkt_put_u32(ssh, 1000)) != 0 || | 1036 | if ((r = sshpkt_put_u32(ssh, 1000)) != 0 || |
1033 | (r = sshpkt_send(ssh)) != 0) | 1037 | (r = sshpkt_send(ssh)) != 0) |
1034 | fatal("%s: %s", __func__, | 1038 | fatal("%s: send packet: %s", __func__, |
1035 | ssh_err(r)); | 1039 | ssh_err(r)); |
1036 | continue; | 1040 | continue; |
1037 | 1041 | ||
@@ -1182,9 +1186,9 @@ process_escapes(struct ssh *ssh, Channel *c, | |||
1182 | */ | 1186 | */ |
1183 | 1187 | ||
1184 | static void | 1188 | static void |
1185 | client_process_buffered_input_packets(void) | 1189 | client_process_buffered_input_packets(struct ssh *ssh) |
1186 | { | 1190 | { |
1187 | ssh_dispatch_run_fatal(active_state, DISPATCH_NONBLOCK, &quit_pending); | 1191 | ssh_dispatch_run_fatal(ssh, DISPATCH_NONBLOCK, &quit_pending); |
1188 | } | 1192 | } |
1189 | 1193 | ||
1190 | /* scan buf[] for '~' before sending data to the peer */ | 1194 | /* scan buf[] for '~' before sending data to the peer */ |
@@ -1281,8 +1285,8 @@ client_loop(struct ssh *ssh, int have_pty, int escape_char_arg, | |||
1281 | /* Initialize variables. */ | 1285 | /* Initialize variables. */ |
1282 | last_was_cr = 1; | 1286 | last_was_cr = 1; |
1283 | exit_status = -1; | 1287 | exit_status = -1; |
1284 | connection_in = packet_get_connection_in(); | 1288 | connection_in = ssh_packet_get_connection_in(ssh); |
1285 | connection_out = packet_get_connection_out(); | 1289 | connection_out = ssh_packet_get_connection_out(ssh); |
1286 | max_fd = MAXIMUM(connection_in, connection_out); | 1290 | max_fd = MAXIMUM(connection_in, connection_out); |
1287 | 1291 | ||
1288 | quit_pending = 0; | 1292 | quit_pending = 0; |
@@ -1291,7 +1295,7 @@ client_loop(struct ssh *ssh, int have_pty, int escape_char_arg, | |||
1291 | if ((stderr_buffer = sshbuf_new()) == NULL) | 1295 | if ((stderr_buffer = sshbuf_new()) == NULL) |
1292 | fatal("%s: sshbuf_new failed", __func__); | 1296 | fatal("%s: sshbuf_new failed", __func__); |
1293 | 1297 | ||
1294 | client_init_dispatch(); | 1298 | client_init_dispatch(ssh); |
1295 | 1299 | ||
1296 | /* | 1300 | /* |
1297 | * Set signal handlers, (e.g. to restore non-blocking mode) | 1301 | * Set signal handlers, (e.g. to restore non-blocking mode) |
@@ -1327,7 +1331,7 @@ client_loop(struct ssh *ssh, int have_pty, int escape_char_arg, | |||
1327 | while (!quit_pending) { | 1331 | while (!quit_pending) { |
1328 | 1332 | ||
1329 | /* Process buffered packets sent by the server. */ | 1333 | /* Process buffered packets sent by the server. */ |
1330 | client_process_buffered_input_packets(); | 1334 | client_process_buffered_input_packets(ssh); |
1331 | 1335 | ||
1332 | if (session_closed && !channel_still_open(ssh)) | 1336 | if (session_closed && !channel_still_open(ssh)) |
1333 | break; | 1337 | break; |
@@ -1346,7 +1350,7 @@ client_loop(struct ssh *ssh, int have_pty, int escape_char_arg, | |||
1346 | * Make packets from buffered channel data, and | 1350 | * Make packets from buffered channel data, and |
1347 | * enqueue them for sending to the server. | 1351 | * enqueue them for sending to the server. |
1348 | */ | 1352 | */ |
1349 | if (packet_not_very_much_data_to_write()) | 1353 | if (ssh_packet_not_very_much_data_to_write(ssh)) |
1350 | channel_output_poll(ssh); | 1354 | channel_output_poll(ssh); |
1351 | 1355 | ||
1352 | /* | 1356 | /* |
@@ -1374,7 +1378,7 @@ client_loop(struct ssh *ssh, int have_pty, int escape_char_arg, | |||
1374 | channel_after_select(ssh, readset, writeset); | 1378 | channel_after_select(ssh, readset, writeset); |
1375 | 1379 | ||
1376 | /* Buffer input from the connection. */ | 1380 | /* Buffer input from the connection. */ |
1377 | client_process_net_input(readset); | 1381 | client_process_net_input(ssh, readset); |
1378 | 1382 | ||
1379 | if (quit_pending) | 1383 | if (quit_pending) |
1380 | break; | 1384 | break; |
@@ -1384,7 +1388,7 @@ client_loop(struct ssh *ssh, int have_pty, int escape_char_arg, | |||
1384 | * sender. | 1388 | * sender. |
1385 | */ | 1389 | */ |
1386 | if (FD_ISSET(connection_out, writeset)) | 1390 | if (FD_ISSET(connection_out, writeset)) |
1387 | packet_write_poll(); | 1391 | ssh_packet_write_poll(ssh); |
1388 | 1392 | ||
1389 | /* | 1393 | /* |
1390 | * If we are a backgrounded control master, and the | 1394 | * If we are a backgrounded control master, and the |
@@ -1406,12 +1410,13 @@ client_loop(struct ssh *ssh, int have_pty, int escape_char_arg, | |||
1406 | /* Stop watching for window change. */ | 1410 | /* Stop watching for window change. */ |
1407 | signal(SIGWINCH, SIG_DFL); | 1411 | signal(SIGWINCH, SIG_DFL); |
1408 | 1412 | ||
1409 | packet_start(SSH2_MSG_DISCONNECT); | 1413 | if ((r = sshpkt_start(ssh, SSH2_MSG_DISCONNECT)) != 0 || |
1410 | packet_put_int(SSH2_DISCONNECT_BY_APPLICATION); | 1414 | (r = sshpkt_put_u32(ssh, SSH2_DISCONNECT_BY_APPLICATION)) != 0 || |
1411 | packet_put_cstring("disconnected by user"); | 1415 | (r = sshpkt_put_cstring(ssh, "disconnected by user")) != 0 || |
1412 | packet_put_cstring(""); /* language tag */ | 1416 | (r = sshpkt_put_cstring(ssh, "")) != 0 || /* language tag */ |
1413 | packet_send(); | 1417 | (r = sshpkt_send(ssh)) != 0 || |
1414 | packet_write_wait(); | 1418 | (r = ssh_packet_write_wait(ssh)) != 0) |
1419 | fatal("%s: send disconnect: %s", __func__, ssh_err(r)); | ||
1415 | 1420 | ||
1416 | channel_free_all(ssh); | 1421 | channel_free_all(ssh); |
1417 | 1422 | ||
@@ -1468,7 +1473,7 @@ client_loop(struct ssh *ssh, int have_pty, int escape_char_arg, | |||
1468 | 1473 | ||
1469 | /* Report bytes transferred, and transfer rates. */ | 1474 | /* Report bytes transferred, and transfer rates. */ |
1470 | total_time = monotime_double() - start_time; | 1475 | total_time = monotime_double() - start_time; |
1471 | packet_get_bytes(&ibytes, &obytes); | 1476 | ssh_packet_get_bytes(ssh, &ibytes, &obytes); |
1472 | verbose("Transferred: sent %llu, received %llu bytes, in %.1f seconds", | 1477 | verbose("Transferred: sent %llu, received %llu bytes, in %.1f seconds", |
1473 | (unsigned long long)obytes, (unsigned long long)ibytes, total_time); | 1478 | (unsigned long long)obytes, (unsigned long long)ibytes, total_time); |
1474 | if (total_time > 0) | 1479 | if (total_time > 0) |
@@ -1488,21 +1493,29 @@ client_request_forwarded_tcpip(struct ssh *ssh, const char *request_type, | |||
1488 | Channel *c = NULL; | 1493 | Channel *c = NULL; |
1489 | struct sshbuf *b = NULL; | 1494 | struct sshbuf *b = NULL; |
1490 | char *listen_address, *originator_address; | 1495 | char *listen_address, *originator_address; |
1491 | u_short listen_port, originator_port; | 1496 | u_int listen_port, originator_port; |
1492 | int r; | 1497 | int r; |
1493 | 1498 | ||
1494 | /* Get rest of the packet */ | 1499 | /* Get rest of the packet */ |
1495 | listen_address = packet_get_string(NULL); | 1500 | if ((r = sshpkt_get_cstring(ssh, &listen_address, NULL)) != 0 || |
1496 | listen_port = packet_get_int(); | 1501 | (r = sshpkt_get_u32(ssh, &listen_port)) != 0 || |
1497 | originator_address = packet_get_string(NULL); | 1502 | (r = sshpkt_get_cstring(ssh, &originator_address, NULL)) != 0 || |
1498 | originator_port = packet_get_int(); | 1503 | (r = sshpkt_get_u32(ssh, &originator_port)) != 0 || |
1499 | packet_check_eom(); | 1504 | (r = sshpkt_get_end(ssh)) != 0) |
1505 | fatal("%s: parse packet: %s", __func__, ssh_err(r)); | ||
1500 | 1506 | ||
1501 | debug("%s: listen %s port %d, originator %s port %d", __func__, | 1507 | debug("%s: listen %s port %d, originator %s port %d", __func__, |
1502 | listen_address, listen_port, originator_address, originator_port); | 1508 | listen_address, listen_port, originator_address, originator_port); |
1503 | 1509 | ||
1504 | c = channel_connect_by_listen_address(ssh, listen_address, listen_port, | 1510 | if (listen_port > 0xffff) |
1505 | "forwarded-tcpip", originator_address); | 1511 | error("%s: invalid listen port", __func__); |
1512 | else if (originator_port > 0xffff) | ||
1513 | error("%s: invalid originator port", __func__); | ||
1514 | else { | ||
1515 | c = channel_connect_by_listen_address(ssh, | ||
1516 | listen_address, listen_port, "forwarded-tcpip", | ||
1517 | originator_address); | ||
1518 | } | ||
1506 | 1519 | ||
1507 | if (c != NULL && c->type == SSH_CHANNEL_MUX_CLIENT) { | 1520 | if (c != NULL && c->type == SSH_CHANNEL_MUX_CLIENT) { |
1508 | if ((b = sshbuf_new()) == NULL) { | 1521 | if ((b = sshbuf_new()) == NULL) { |
@@ -1540,15 +1553,15 @@ client_request_forwarded_streamlocal(struct ssh *ssh, | |||
1540 | { | 1553 | { |
1541 | Channel *c = NULL; | 1554 | Channel *c = NULL; |
1542 | char *listen_path; | 1555 | char *listen_path; |
1556 | int r; | ||
1543 | 1557 | ||
1544 | /* Get the remote path. */ | 1558 | /* Get the remote path. */ |
1545 | listen_path = packet_get_string(NULL); | 1559 | if ((r = sshpkt_get_cstring(ssh, &listen_path, NULL)) != 0 || |
1546 | /* XXX: Skip reserved field for now. */ | 1560 | (r = sshpkt_get_string(ssh, NULL, NULL)) != 0 || /* reserved */ |
1547 | if (packet_get_string_ptr(NULL) == NULL) | 1561 | (r = sshpkt_get_end(ssh)) != 0) |
1548 | fatal("%s: packet_get_string_ptr failed", __func__); | 1562 | fatal("%s: parse packet: %s", __func__, ssh_err(r)); |
1549 | packet_check_eom(); | ||
1550 | 1563 | ||
1551 | debug("%s: %s", __func__, listen_path); | 1564 | debug("%s: request: %s", __func__, listen_path); |
1552 | 1565 | ||
1553 | c = channel_connect_by_listen_path(ssh, listen_path, | 1566 | c = channel_connect_by_listen_path(ssh, listen_path, |
1554 | "forwarded-streamlocal@openssh.com", "forwarded-streamlocal"); | 1567 | "forwarded-streamlocal@openssh.com", "forwarded-streamlocal"); |
@@ -1561,8 +1574,8 @@ client_request_x11(struct ssh *ssh, const char *request_type, int rchan) | |||
1561 | { | 1574 | { |
1562 | Channel *c = NULL; | 1575 | Channel *c = NULL; |
1563 | char *originator; | 1576 | char *originator; |
1564 | u_short originator_port; | 1577 | u_int originator_port; |
1565 | int sock; | 1578 | int r, sock; |
1566 | 1579 | ||
1567 | if (!options.forward_x11) { | 1580 | if (!options.forward_x11) { |
1568 | error("Warning: ssh server tried X11 forwarding."); | 1581 | error("Warning: ssh server tried X11 forwarding."); |
@@ -1575,11 +1588,13 @@ client_request_x11(struct ssh *ssh, const char *request_type, int rchan) | |||
1575 | "expired"); | 1588 | "expired"); |
1576 | return NULL; | 1589 | return NULL; |
1577 | } | 1590 | } |
1578 | originator = packet_get_string(NULL); | 1591 | if ((r = sshpkt_get_cstring(ssh, &originator, NULL)) != 0 || |
1579 | originator_port = packet_get_int(); | 1592 | (r = sshpkt_get_u32(ssh, &originator_port)) != 0 || |
1580 | packet_check_eom(); | 1593 | (r = sshpkt_get_end(ssh)) != 0) |
1594 | fatal("%s: parse packet: %s", __func__, ssh_err(r)); | ||
1581 | /* XXX check permission */ | 1595 | /* XXX check permission */ |
1582 | debug("client_request_x11: request from %s %d", originator, | 1596 | /* XXX range check originator port? */ |
1597 | debug("client_request_x11: request from %s %u", originator, | ||
1583 | originator_port); | 1598 | originator_port); |
1584 | free(originator); | 1599 | free(originator); |
1585 | sock = x11_connect_display(ssh); | 1600 | sock = x11_connect_display(ssh); |
@@ -1623,7 +1638,7 @@ client_request_tun_fwd(struct ssh *ssh, int tun_mode, | |||
1623 | int local_tun, int remote_tun) | 1638 | int local_tun, int remote_tun) |
1624 | { | 1639 | { |
1625 | Channel *c; | 1640 | Channel *c; |
1626 | int fd; | 1641 | int r, fd; |
1627 | char *ifname = NULL; | 1642 | char *ifname = NULL; |
1628 | 1643 | ||
1629 | if (tun_mode == SSH_TUNMODE_NO) | 1644 | if (tun_mode == SSH_TUNMODE_NO) |
@@ -1648,14 +1663,15 @@ client_request_tun_fwd(struct ssh *ssh, int tun_mode, | |||
1648 | sys_tun_outfilter, NULL, NULL); | 1663 | sys_tun_outfilter, NULL, NULL); |
1649 | #endif | 1664 | #endif |
1650 | 1665 | ||
1651 | packet_start(SSH2_MSG_CHANNEL_OPEN); | 1666 | if ((r = sshpkt_start(ssh, SSH2_MSG_CHANNEL_OPEN)) != 0 || |
1652 | packet_put_cstring("tun@openssh.com"); | 1667 | (r = sshpkt_put_cstring(ssh, "tun@openssh.com")) != 0 || |
1653 | packet_put_int(c->self); | 1668 | (r = sshpkt_put_u32(ssh, c->self)) != 0 || |
1654 | packet_put_int(c->local_window_max); | 1669 | (r = sshpkt_put_u32(ssh, c->local_window_max)) != 0 || |
1655 | packet_put_int(c->local_maxpacket); | 1670 | (r = sshpkt_put_u32(ssh, c->local_maxpacket)) != 0 || |
1656 | packet_put_int(tun_mode); | 1671 | (r = sshpkt_put_u32(ssh, tun_mode)) != 0 || |
1657 | packet_put_int(remote_tun); | 1672 | (r = sshpkt_put_u32(ssh, remote_tun)) != 0 || |
1658 | packet_send(); | 1673 | (r = sshpkt_send(ssh)) != 0) |
1674 | sshpkt_fatal(ssh, r, "%s: send reply", __func__); | ||
1659 | 1675 | ||
1660 | return ifname; | 1676 | return ifname; |
1661 | } | 1677 | } |
@@ -1665,14 +1681,17 @@ static int | |||
1665 | client_input_channel_open(int type, u_int32_t seq, struct ssh *ssh) | 1681 | client_input_channel_open(int type, u_int32_t seq, struct ssh *ssh) |
1666 | { | 1682 | { |
1667 | Channel *c = NULL; | 1683 | Channel *c = NULL; |
1668 | char *ctype; | 1684 | char *ctype = NULL; |
1669 | int rchan; | 1685 | int r; |
1670 | u_int rmaxpack, rwindow, len; | 1686 | u_int rchan; |
1671 | 1687 | size_t len; | |
1672 | ctype = packet_get_string(&len); | 1688 | u_int rmaxpack, rwindow; |
1673 | rchan = packet_get_int(); | 1689 | |
1674 | rwindow = packet_get_int(); | 1690 | if ((r = sshpkt_get_cstring(ssh, &ctype, &len)) != 0 || |
1675 | rmaxpack = packet_get_int(); | 1691 | (r = sshpkt_get_u32(ssh, &rchan)) != 0 || |
1692 | (r = sshpkt_get_u32(ssh, &rwindow)) != 0 || | ||
1693 | (r = sshpkt_get_u32(ssh, &rmaxpack)) != 0) | ||
1694 | goto out; | ||
1676 | 1695 | ||
1677 | debug("client_input_channel_open: ctype %s rchan %d win %d max %d", | 1696 | debug("client_input_channel_open: ctype %s rchan %d win %d max %d", |
1678 | ctype, rchan, rwindow, rmaxpack); | 1697 | ctype, rchan, rwindow, rmaxpack); |
@@ -1696,57 +1715,66 @@ client_input_channel_open(int type, u_int32_t seq, struct ssh *ssh) | |||
1696 | c->remote_window = rwindow; | 1715 | c->remote_window = rwindow; |
1697 | c->remote_maxpacket = rmaxpack; | 1716 | c->remote_maxpacket = rmaxpack; |
1698 | if (c->type != SSH_CHANNEL_CONNECTING) { | 1717 | if (c->type != SSH_CHANNEL_CONNECTING) { |
1699 | packet_start(SSH2_MSG_CHANNEL_OPEN_CONFIRMATION); | 1718 | if ((r = sshpkt_start(ssh, SSH2_MSG_CHANNEL_OPEN_CONFIRMATION)) != 0 || |
1700 | packet_put_int(c->remote_id); | 1719 | (r = sshpkt_put_u32(ssh, c->remote_id)) != 0 || |
1701 | packet_put_int(c->self); | 1720 | (r = sshpkt_put_u32(ssh, c->self)) != 0 || |
1702 | packet_put_int(c->local_window); | 1721 | (r = sshpkt_put_u32(ssh, c->local_window)) != 0 || |
1703 | packet_put_int(c->local_maxpacket); | 1722 | (r = sshpkt_put_u32(ssh, c->local_maxpacket)) != 0 || |
1704 | packet_send(); | 1723 | (r = sshpkt_send(ssh)) != 0) |
1724 | sshpkt_fatal(ssh, r, "%s: send reply", __func__); | ||
1705 | } | 1725 | } |
1706 | } else { | 1726 | } else { |
1707 | debug("failure %s", ctype); | 1727 | debug("failure %s", ctype); |
1708 | packet_start(SSH2_MSG_CHANNEL_OPEN_FAILURE); | 1728 | if ((r = sshpkt_start(ssh, SSH2_MSG_CHANNEL_OPEN_FAILURE)) != 0 || |
1709 | packet_put_int(rchan); | 1729 | (r = sshpkt_put_u32(ssh, rchan)) != 0 || |
1710 | packet_put_int(SSH2_OPEN_ADMINISTRATIVELY_PROHIBITED); | 1730 | (r = sshpkt_put_u32(ssh, SSH2_OPEN_ADMINISTRATIVELY_PROHIBITED)) != 0 || |
1711 | packet_put_cstring("open failed"); | 1731 | (r = sshpkt_put_cstring(ssh, "open failed")) != 0 || |
1712 | packet_put_cstring(""); | 1732 | (r = sshpkt_put_cstring(ssh, "")) != 0 || |
1713 | packet_send(); | 1733 | (r = sshpkt_send(ssh)) != 0) |
1734 | sshpkt_fatal(ssh, r, "%s: send failure", __func__); | ||
1714 | } | 1735 | } |
1736 | r = 0; | ||
1737 | out: | ||
1715 | free(ctype); | 1738 | free(ctype); |
1716 | return 0; | 1739 | return r; |
1717 | } | 1740 | } |
1718 | 1741 | ||
1719 | static int | 1742 | static int |
1720 | client_input_channel_req(int type, u_int32_t seq, struct ssh *ssh) | 1743 | client_input_channel_req(int type, u_int32_t seq, struct ssh *ssh) |
1721 | { | 1744 | { |
1722 | Channel *c = NULL; | 1745 | Channel *c = NULL; |
1723 | int exitval, id, reply, success = 0; | 1746 | char *rtype = NULL; |
1724 | char *rtype; | 1747 | u_char reply; |
1725 | 1748 | u_int id, exitval; | |
1726 | id = packet_get_int(); | 1749 | int r, success = 0; |
1727 | c = channel_lookup(ssh, id); | 1750 | |
1751 | if ((r = sshpkt_get_u32(ssh, &id)) != 0) | ||
1752 | return r; | ||
1753 | if (id <= INT_MAX) | ||
1754 | c = channel_lookup(ssh, id); | ||
1728 | if (channel_proxy_upstream(c, type, seq, ssh)) | 1755 | if (channel_proxy_upstream(c, type, seq, ssh)) |
1729 | return 0; | 1756 | return 0; |
1730 | rtype = packet_get_string(NULL); | 1757 | if ((r = sshpkt_get_cstring(ssh, &rtype, NULL)) != 0 || |
1731 | reply = packet_get_char(); | 1758 | (r = sshpkt_get_u8(ssh, &reply)) != 0) |
1759 | goto out; | ||
1732 | 1760 | ||
1733 | debug("client_input_channel_req: channel %d rtype %s reply %d", | 1761 | debug("client_input_channel_req: channel %u rtype %s reply %d", |
1734 | id, rtype, reply); | 1762 | id, rtype, reply); |
1735 | 1763 | ||
1736 | if (id == -1) { | 1764 | if (c == NULL) { |
1737 | error("client_input_channel_req: request for channel -1"); | ||
1738 | } else if (c == NULL) { | ||
1739 | error("client_input_channel_req: channel %d: " | 1765 | error("client_input_channel_req: channel %d: " |
1740 | "unknown channel", id); | 1766 | "unknown channel", id); |
1741 | } else if (strcmp(rtype, "eow@openssh.com") == 0) { | 1767 | } else if (strcmp(rtype, "eow@openssh.com") == 0) { |
1742 | packet_check_eom(); | 1768 | if ((r = sshpkt_get_end(ssh)) != 0) |
1769 | goto out; | ||
1743 | chan_rcvd_eow(ssh, c); | 1770 | chan_rcvd_eow(ssh, c); |
1744 | } else if (strcmp(rtype, "exit-status") == 0) { | 1771 | } else if (strcmp(rtype, "exit-status") == 0) { |
1745 | exitval = packet_get_int(); | 1772 | if ((r = sshpkt_get_u32(ssh, &exitval)) != 0) |
1773 | goto out; | ||
1746 | if (c->ctl_chan != -1) { | 1774 | if (c->ctl_chan != -1) { |
1747 | mux_exit_message(ssh, c, exitval); | 1775 | mux_exit_message(ssh, c, exitval); |
1748 | success = 1; | 1776 | success = 1; |
1749 | } else if (id == session_ident) { | 1777 | } else if ((int)id == session_ident) { |
1750 | /* Record exit value of local session */ | 1778 | /* Record exit value of local session */ |
1751 | success = 1; | 1779 | success = 1; |
1752 | exit_status = exitval; | 1780 | exit_status = exitval; |
@@ -1755,19 +1783,23 @@ client_input_channel_req(int type, u_int32_t seq, struct ssh *ssh) | |||
1755 | debug("%s: no sink for exit-status on channel %d", | 1783 | debug("%s: no sink for exit-status on channel %d", |
1756 | __func__, id); | 1784 | __func__, id); |
1757 | } | 1785 | } |
1758 | packet_check_eom(); | 1786 | if ((r = sshpkt_get_end(ssh)) != 0) |
1787 | goto out; | ||
1759 | } | 1788 | } |
1760 | if (reply && c != NULL && !(c->flags & CHAN_CLOSE_SENT)) { | 1789 | if (reply && c != NULL && !(c->flags & CHAN_CLOSE_SENT)) { |
1761 | if (!c->have_remote_id) | 1790 | if (!c->have_remote_id) |
1762 | fatal("%s: channel %d: no remote_id", | 1791 | fatal("%s: channel %d: no remote_id", |
1763 | __func__, c->self); | 1792 | __func__, c->self); |
1764 | packet_start(success ? | 1793 | if ((r = sshpkt_start(ssh, success ? |
1765 | SSH2_MSG_CHANNEL_SUCCESS : SSH2_MSG_CHANNEL_FAILURE); | 1794 | SSH2_MSG_CHANNEL_SUCCESS : SSH2_MSG_CHANNEL_FAILURE)) != 0 || |
1766 | packet_put_int(c->remote_id); | 1795 | (r = sshpkt_put_u32(ssh, c->remote_id)) != 0 || |
1767 | packet_send(); | 1796 | (r = sshpkt_send(ssh)) != 0) |
1797 | sshpkt_fatal(ssh, r, "%s: send failure", __func__); | ||
1768 | } | 1798 | } |
1799 | r = 0; | ||
1800 | out: | ||
1769 | free(rtype); | 1801 | free(rtype); |
1770 | return 0; | 1802 | return r; |
1771 | } | 1803 | } |
1772 | 1804 | ||
1773 | struct hostkeys_update_ctx { | 1805 | struct hostkeys_update_ctx { |
@@ -1984,7 +2016,10 @@ client_global_hostkeys_private_confirm(struct ssh *ssh, int type, | |||
1984 | if (ndone != ctx->nnew) | 2016 | if (ndone != ctx->nnew) |
1985 | fatal("%s: ndone != ctx->nnew (%zu / %zu)", __func__, | 2017 | fatal("%s: ndone != ctx->nnew (%zu / %zu)", __func__, |
1986 | ndone, ctx->nnew); /* Shouldn't happen */ | 2018 | ndone, ctx->nnew); /* Shouldn't happen */ |
1987 | ssh_packet_check_eom(ssh); | 2019 | if ((r = sshpkt_get_end(ssh)) != 0) { |
2020 | error("%s: protocol error", __func__); | ||
2021 | goto out; | ||
2022 | } | ||
1988 | 2023 | ||
1989 | /* Make the edits to known_hosts */ | 2024 | /* Make the edits to known_hosts */ |
1990 | update_known_hosts(ctx); | 2025 | update_known_hosts(ctx); |
@@ -2018,9 +2053,8 @@ key_accepted_by_hostkeyalgs(const struct sshkey *key) | |||
2018 | * HostkeyAlgorithms preference before they are accepted. | 2053 | * HostkeyAlgorithms preference before they are accepted. |
2019 | */ | 2054 | */ |
2020 | static int | 2055 | static int |
2021 | client_input_hostkeys(void) | 2056 | client_input_hostkeys(struct ssh *ssh) |
2022 | { | 2057 | { |
2023 | struct ssh *ssh = active_state; /* XXX */ | ||
2024 | const u_char *blob = NULL; | 2058 | const u_char *blob = NULL; |
2025 | size_t i, len = 0; | 2059 | size_t i, len = 0; |
2026 | struct sshbuf *buf = NULL; | 2060 | struct sshbuf *buf = NULL; |
@@ -2171,23 +2205,27 @@ static int | |||
2171 | client_input_global_request(int type, u_int32_t seq, struct ssh *ssh) | 2205 | client_input_global_request(int type, u_int32_t seq, struct ssh *ssh) |
2172 | { | 2206 | { |
2173 | char *rtype; | 2207 | char *rtype; |
2174 | int want_reply; | 2208 | u_char want_reply; |
2175 | int success = 0; | 2209 | int r, success = 0; |
2176 | 2210 | ||
2177 | rtype = packet_get_cstring(NULL); | 2211 | if ((r = sshpkt_get_cstring(ssh, &rtype, NULL)) != 0 || |
2178 | want_reply = packet_get_char(); | 2212 | (r = sshpkt_get_u8(ssh, &want_reply)) != 0) |
2213 | goto out; | ||
2179 | debug("client_input_global_request: rtype %s want_reply %d", | 2214 | debug("client_input_global_request: rtype %s want_reply %d", |
2180 | rtype, want_reply); | 2215 | rtype, want_reply); |
2181 | if (strcmp(rtype, "hostkeys-00@openssh.com") == 0) | 2216 | if (strcmp(rtype, "hostkeys-00@openssh.com") == 0) |
2182 | success = client_input_hostkeys(); | 2217 | success = client_input_hostkeys(ssh); |
2183 | if (want_reply) { | 2218 | if (want_reply) { |
2184 | packet_start(success ? | 2219 | if ((r = sshpkt_start(ssh, success ? SSH2_MSG_REQUEST_SUCCESS : |
2185 | SSH2_MSG_REQUEST_SUCCESS : SSH2_MSG_REQUEST_FAILURE); | 2220 | SSH2_MSG_REQUEST_FAILURE)) != 0 || |
2186 | packet_send(); | 2221 | (r = sshpkt_send(ssh)) != 0 || |
2187 | packet_write_wait(); | 2222 | (r = ssh_packet_write_wait(ssh)) != 0) |
2223 | goto out; | ||
2188 | } | 2224 | } |
2225 | r = 0; | ||
2226 | out: | ||
2189 | free(rtype); | 2227 | free(rtype); |
2190 | return 0; | 2228 | return r; |
2191 | } | 2229 | } |
2192 | 2230 | ||
2193 | void | 2231 | void |
@@ -2195,7 +2233,7 @@ client_session2_setup(struct ssh *ssh, int id, int want_tty, int want_subsystem, | |||
2195 | const char *term, struct termios *tiop, int in_fd, struct sshbuf *cmd, | 2233 | const char *term, struct termios *tiop, int in_fd, struct sshbuf *cmd, |
2196 | char **env) | 2234 | char **env) |
2197 | { | 2235 | { |
2198 | int i, j, matched, len; | 2236 | int i, j, matched, len, r; |
2199 | char *name, *val; | 2237 | char *name, *val; |
2200 | Channel *c = NULL; | 2238 | Channel *c = NULL; |
2201 | 2239 | ||
@@ -2204,7 +2242,7 @@ client_session2_setup(struct ssh *ssh, int id, int want_tty, int want_subsystem, | |||
2204 | if ((c = channel_lookup(ssh, id)) == NULL) | 2242 | if ((c = channel_lookup(ssh, id)) == NULL) |
2205 | fatal("%s: channel %d: unknown channel", __func__, id); | 2243 | fatal("%s: channel %d: unknown channel", __func__, id); |
2206 | 2244 | ||
2207 | packet_set_interactive(want_tty, | 2245 | ssh_packet_set_interactive(ssh, want_tty, |
2208 | options.ip_qos_interactive, options.ip_qos_bulk); | 2246 | options.ip_qos_interactive, options.ip_qos_bulk); |
2209 | 2247 | ||
2210 | if (want_tty) { | 2248 | if (want_tty) { |
@@ -2216,15 +2254,18 @@ client_session2_setup(struct ssh *ssh, int id, int want_tty, int want_subsystem, | |||
2216 | 2254 | ||
2217 | channel_request_start(ssh, id, "pty-req", 1); | 2255 | channel_request_start(ssh, id, "pty-req", 1); |
2218 | client_expect_confirm(ssh, id, "PTY allocation", CONFIRM_TTY); | 2256 | client_expect_confirm(ssh, id, "PTY allocation", CONFIRM_TTY); |
2219 | packet_put_cstring(term != NULL ? term : ""); | 2257 | if ((r = sshpkt_put_cstring(ssh, term != NULL ? term : "")) |
2220 | packet_put_int((u_int)ws.ws_col); | 2258 | != 0 || |
2221 | packet_put_int((u_int)ws.ws_row); | 2259 | (r = sshpkt_put_u32(ssh, (u_int)ws.ws_col)) != 0 || |
2222 | packet_put_int((u_int)ws.ws_xpixel); | 2260 | (r = sshpkt_put_u32(ssh, (u_int)ws.ws_row)) != 0 || |
2223 | packet_put_int((u_int)ws.ws_ypixel); | 2261 | (r = sshpkt_put_u32(ssh, (u_int)ws.ws_xpixel)) != 0 || |
2262 | (r = sshpkt_put_u32(ssh, (u_int)ws.ws_ypixel)) != 0) | ||
2263 | fatal("%s: build packet: %s", __func__, ssh_err(r)); | ||
2224 | if (tiop == NULL) | 2264 | if (tiop == NULL) |
2225 | tiop = get_saved_tio(); | 2265 | tiop = get_saved_tio(); |
2226 | ssh_tty_make_modes(ssh, -1, tiop); | 2266 | ssh_tty_make_modes(ssh, -1, tiop); |
2227 | packet_send(); | 2267 | if ((r = sshpkt_send(ssh)) != 0) |
2268 | fatal("%s: send packet: %s", __func__, ssh_err(r)); | ||
2228 | /* XXX wait for reply */ | 2269 | /* XXX wait for reply */ |
2229 | c->client_tty = 1; | 2270 | c->client_tty = 1; |
2230 | } | 2271 | } |
@@ -2256,9 +2297,12 @@ client_session2_setup(struct ssh *ssh, int id, int want_tty, int want_subsystem, | |||
2256 | 2297 | ||
2257 | debug("Sending env %s = %s", name, val); | 2298 | debug("Sending env %s = %s", name, val); |
2258 | channel_request_start(ssh, id, "env", 0); | 2299 | channel_request_start(ssh, id, "env", 0); |
2259 | packet_put_cstring(name); | 2300 | if ((r = sshpkt_put_cstring(ssh, name)) != 0 || |
2260 | packet_put_cstring(val); | 2301 | (r = sshpkt_put_cstring(ssh, val)) != 0 || |
2261 | packet_send(); | 2302 | (r = sshpkt_send(ssh)) != 0) { |
2303 | fatal("%s: send packet: %s", | ||
2304 | __func__, ssh_err(r)); | ||
2305 | } | ||
2262 | free(name); | 2306 | free(name); |
2263 | } | 2307 | } |
2264 | } | 2308 | } |
@@ -2273,9 +2317,10 @@ client_session2_setup(struct ssh *ssh, int id, int want_tty, int want_subsystem, | |||
2273 | 2317 | ||
2274 | debug("Setting env %s = %s", name, val); | 2318 | debug("Setting env %s = %s", name, val); |
2275 | channel_request_start(ssh, id, "env", 0); | 2319 | channel_request_start(ssh, id, "env", 0); |
2276 | packet_put_cstring(name); | 2320 | if ((r = sshpkt_put_cstring(ssh, name)) != 0 || |
2277 | packet_put_cstring(val); | 2321 | (r = sshpkt_put_cstring(ssh, val)) != 0 || |
2278 | packet_send(); | 2322 | (r = sshpkt_send(ssh)) != 0) |
2323 | fatal("%s: send packet: %s", __func__, ssh_err(r)); | ||
2279 | free(name); | 2324 | free(name); |
2280 | } | 2325 | } |
2281 | 2326 | ||
@@ -2295,39 +2340,43 @@ client_session2_setup(struct ssh *ssh, int id, int want_tty, int want_subsystem, | |||
2295 | channel_request_start(ssh, id, "exec", 1); | 2340 | channel_request_start(ssh, id, "exec", 1); |
2296 | client_expect_confirm(ssh, id, "exec", CONFIRM_CLOSE); | 2341 | client_expect_confirm(ssh, id, "exec", CONFIRM_CLOSE); |
2297 | } | 2342 | } |
2298 | packet_put_string(sshbuf_ptr(cmd), sshbuf_len(cmd)); | 2343 | if ((r = sshpkt_put_stringb(ssh, cmd)) != 0 || |
2299 | packet_send(); | 2344 | (r = sshpkt_send(ssh)) != 0) |
2345 | fatal("%s: send command: %s", __func__, ssh_err(r)); | ||
2300 | } else { | 2346 | } else { |
2301 | channel_request_start(ssh, id, "shell", 1); | 2347 | channel_request_start(ssh, id, "shell", 1); |
2302 | client_expect_confirm(ssh, id, "shell", CONFIRM_CLOSE); | 2348 | client_expect_confirm(ssh, id, "shell", CONFIRM_CLOSE); |
2303 | packet_send(); | 2349 | if ((r = sshpkt_send(ssh)) != 0) { |
2350 | fatal("%s: send shell request: %s", | ||
2351 | __func__, ssh_err(r)); | ||
2352 | } | ||
2304 | } | 2353 | } |
2305 | } | 2354 | } |
2306 | 2355 | ||
2307 | static void | 2356 | static void |
2308 | client_init_dispatch(void) | 2357 | client_init_dispatch(struct ssh *ssh) |
2309 | { | 2358 | { |
2310 | dispatch_init(&dispatch_protocol_error); | 2359 | ssh_dispatch_init(ssh, &dispatch_protocol_error); |
2311 | 2360 | ||
2312 | dispatch_set(SSH2_MSG_CHANNEL_CLOSE, &channel_input_oclose); | 2361 | ssh_dispatch_set(ssh, SSH2_MSG_CHANNEL_CLOSE, &channel_input_oclose); |
2313 | dispatch_set(SSH2_MSG_CHANNEL_DATA, &channel_input_data); | 2362 | ssh_dispatch_set(ssh, SSH2_MSG_CHANNEL_DATA, &channel_input_data); |
2314 | dispatch_set(SSH2_MSG_CHANNEL_EOF, &channel_input_ieof); | 2363 | ssh_dispatch_set(ssh, SSH2_MSG_CHANNEL_EOF, &channel_input_ieof); |
2315 | dispatch_set(SSH2_MSG_CHANNEL_EXTENDED_DATA, &channel_input_extended_data); | 2364 | ssh_dispatch_set(ssh, SSH2_MSG_CHANNEL_EXTENDED_DATA, &channel_input_extended_data); |
2316 | dispatch_set(SSH2_MSG_CHANNEL_OPEN, &client_input_channel_open); | 2365 | ssh_dispatch_set(ssh, SSH2_MSG_CHANNEL_OPEN, &client_input_channel_open); |
2317 | dispatch_set(SSH2_MSG_CHANNEL_OPEN_CONFIRMATION, &channel_input_open_confirmation); | 2366 | ssh_dispatch_set(ssh, SSH2_MSG_CHANNEL_OPEN_CONFIRMATION, &channel_input_open_confirmation); |
2318 | dispatch_set(SSH2_MSG_CHANNEL_OPEN_FAILURE, &channel_input_open_failure); | 2367 | ssh_dispatch_set(ssh, SSH2_MSG_CHANNEL_OPEN_FAILURE, &channel_input_open_failure); |
2319 | dispatch_set(SSH2_MSG_CHANNEL_REQUEST, &client_input_channel_req); | 2368 | ssh_dispatch_set(ssh, SSH2_MSG_CHANNEL_REQUEST, &client_input_channel_req); |
2320 | dispatch_set(SSH2_MSG_CHANNEL_WINDOW_ADJUST, &channel_input_window_adjust); | 2369 | ssh_dispatch_set(ssh, SSH2_MSG_CHANNEL_WINDOW_ADJUST, &channel_input_window_adjust); |
2321 | dispatch_set(SSH2_MSG_CHANNEL_SUCCESS, &channel_input_status_confirm); | 2370 | ssh_dispatch_set(ssh, SSH2_MSG_CHANNEL_SUCCESS, &channel_input_status_confirm); |
2322 | dispatch_set(SSH2_MSG_CHANNEL_FAILURE, &channel_input_status_confirm); | 2371 | ssh_dispatch_set(ssh, SSH2_MSG_CHANNEL_FAILURE, &channel_input_status_confirm); |
2323 | dispatch_set(SSH2_MSG_GLOBAL_REQUEST, &client_input_global_request); | 2372 | ssh_dispatch_set(ssh, SSH2_MSG_GLOBAL_REQUEST, &client_input_global_request); |
2324 | 2373 | ||
2325 | /* rekeying */ | 2374 | /* rekeying */ |
2326 | dispatch_set(SSH2_MSG_KEXINIT, &kex_input_kexinit); | 2375 | ssh_dispatch_set(ssh, SSH2_MSG_KEXINIT, &kex_input_kexinit); |
2327 | 2376 | ||
2328 | /* global request reply messages */ | 2377 | /* global request reply messages */ |
2329 | dispatch_set(SSH2_MSG_REQUEST_FAILURE, &client_global_request_reply); | 2378 | ssh_dispatch_set(ssh, SSH2_MSG_REQUEST_FAILURE, &client_global_request_reply); |
2330 | dispatch_set(SSH2_MSG_REQUEST_SUCCESS, &client_global_request_reply); | 2379 | ssh_dispatch_set(ssh, SSH2_MSG_REQUEST_SUCCESS, &client_global_request_reply); |
2331 | } | 2380 | } |
2332 | 2381 | ||
2333 | void | 2382 | void |
diff --git a/config.h.in b/config.h.in index 91b65db8f..05b7206df 100644 --- a/config.h.in +++ b/config.h.in | |||
@@ -393,19 +393,19 @@ | |||
393 | /* Define if you have /dev/ptc */ | 393 | /* Define if you have /dev/ptc */ |
394 | #undef HAVE_DEV_PTS_AND_PTC | 394 | #undef HAVE_DEV_PTS_AND_PTC |
395 | 395 | ||
396 | /* Define if libcrypto has DH_get0_key */ | 396 | /* Define to 1 if you have the `DH_get0_key' function. */ |
397 | #undef HAVE_DH_GET0_KEY | 397 | #undef HAVE_DH_GET0_KEY |
398 | 398 | ||
399 | /* Define if libcrypto has DH_get0_pqg */ | 399 | /* Define to 1 if you have the `DH_get0_pqg' function. */ |
400 | #undef HAVE_DH_GET0_PQG | 400 | #undef HAVE_DH_GET0_PQG |
401 | 401 | ||
402 | /* Define if libcrypto has DH_set0_key */ | 402 | /* Define to 1 if you have the `DH_set0_key' function. */ |
403 | #undef HAVE_DH_SET0_KEY | 403 | #undef HAVE_DH_SET0_KEY |
404 | 404 | ||
405 | /* Define if libcrypto has DH_set0_pqg */ | 405 | /* Define to 1 if you have the `DH_set0_pqg' function. */ |
406 | #undef HAVE_DH_SET0_PQG | 406 | #undef HAVE_DH_SET0_PQG |
407 | 407 | ||
408 | /* Define if libcrypto has DH_set_length */ | 408 | /* Define to 1 if you have the `DH_set_length' function. */ |
409 | #undef HAVE_DH_SET_LENGTH | 409 | #undef HAVE_DH_SET_LENGTH |
410 | 410 | ||
411 | /* Define to 1 if you have the <dirent.h> header file. */ | 411 | /* Define to 1 if you have the <dirent.h> header file. */ |
@@ -420,30 +420,33 @@ | |||
420 | /* Define to 1 if you have the `DSA_generate_parameters_ex' function. */ | 420 | /* Define to 1 if you have the `DSA_generate_parameters_ex' function. */ |
421 | #undef HAVE_DSA_GENERATE_PARAMETERS_EX | 421 | #undef HAVE_DSA_GENERATE_PARAMETERS_EX |
422 | 422 | ||
423 | /* Define if libcrypto has DSA_get0_key */ | 423 | /* Define to 1 if you have the `DSA_get0_key' function. */ |
424 | #undef HAVE_DSA_GET0_KEY | 424 | #undef HAVE_DSA_GET0_KEY |
425 | 425 | ||
426 | /* Define if libcrypto has DSA_get0_pqg */ | 426 | /* Define to 1 if you have the `DSA_get0_pqg' function. */ |
427 | #undef HAVE_DSA_GET0_PQG | 427 | #undef HAVE_DSA_GET0_PQG |
428 | 428 | ||
429 | /* Define if libcrypto has DSA_set0_key */ | 429 | /* Define to 1 if you have the `DSA_set0_key' function. */ |
430 | #undef HAVE_DSA_SET0_KEY | 430 | #undef HAVE_DSA_SET0_KEY |
431 | 431 | ||
432 | /* Define if libcrypto has DSA_set0_pqg */ | 432 | /* Define to 1 if you have the `DSA_set0_pqg' function. */ |
433 | #undef HAVE_DSA_SET0_PQG | 433 | #undef HAVE_DSA_SET0_PQG |
434 | 434 | ||
435 | /* Define if libcrypto has DSA_SIG_get0 */ | 435 | /* Define to 1 if you have the `DSA_SIG_get0' function. */ |
436 | #undef HAVE_DSA_SIG_GET0 | 436 | #undef HAVE_DSA_SIG_GET0 |
437 | 437 | ||
438 | /* Define if libcrypto has DSA_SIG_set0 */ | 438 | /* Define to 1 if you have the `DSA_SIG_set0' function. */ |
439 | #undef HAVE_DSA_SIG_SET0 | 439 | #undef HAVE_DSA_SIG_SET0 |
440 | 440 | ||
441 | /* Define if libcrypto has ECDSA_SIG_get0 */ | 441 | /* Define to 1 if you have the `ECDSA_SIG_get0' function. */ |
442 | #undef HAVE_ECDSA_SIG_GET0 | 442 | #undef HAVE_ECDSA_SIG_GET0 |
443 | 443 | ||
444 | /* Define if libcrypto has ECDSA_SIG_set0 */ | 444 | /* Define to 1 if you have the `ECDSA_SIG_set0' function. */ |
445 | #undef HAVE_ECDSA_SIG_SET0 | 445 | #undef HAVE_ECDSA_SIG_SET0 |
446 | 446 | ||
447 | /* Define to 1 if you have the `EC_KEY_METHOD_new' function. */ | ||
448 | #undef HAVE_EC_KEY_METHOD_NEW | ||
449 | |||
447 | /* Define to 1 if you have the <elf.h> header file. */ | 450 | /* Define to 1 if you have the <elf.h> header file. */ |
448 | #undef HAVE_ELF_H | 451 | #undef HAVE_ELF_H |
449 | 452 | ||
@@ -471,18 +474,21 @@ | |||
471 | /* Define if your system has /etc/default/login */ | 474 | /* Define if your system has /etc/default/login */ |
472 | #undef HAVE_ETC_DEFAULT_LOGIN | 475 | #undef HAVE_ETC_DEFAULT_LOGIN |
473 | 476 | ||
474 | /* Define if libcrypto has EVP_CIPHER_CTX_ctrl */ | 477 | /* Define to 1 if you have the `EVP_CIPHER_CTX_ctrl' function. */ |
475 | #undef HAVE_EVP_CIPHER_CTX_CTRL | 478 | #undef HAVE_EVP_CIPHER_CTX_CTRL |
476 | 479 | ||
477 | /* Define if libcrypto has EVP_CIPHER_CTX_set_iv */ | 480 | /* Define to 1 if you have the `EVP_CIPHER_CTX_get_iv' function. */ |
478 | #undef HAVE_EVP_CIPHER_CTX_GET_IV | 481 | #undef HAVE_EVP_CIPHER_CTX_GET_IV |
479 | 482 | ||
480 | /* Define if libcrypto has EVP_CIPHER_CTX_iv */ | 483 | /* Define to 1 if you have the `EVP_CIPHER_CTX_iv' function. */ |
481 | #undef HAVE_EVP_CIPHER_CTX_IV | 484 | #undef HAVE_EVP_CIPHER_CTX_IV |
482 | 485 | ||
483 | /* Define if libcrypto has EVP_CIPHER_CTX_iv_noconst */ | 486 | /* Define to 1 if you have the `EVP_CIPHER_CTX_iv_noconst' function. */ |
484 | #undef HAVE_EVP_CIPHER_CTX_IV_NOCONST | 487 | #undef HAVE_EVP_CIPHER_CTX_IV_NOCONST |
485 | 488 | ||
489 | /* Define to 1 if you have the `EVP_CIPHER_CTX_set_iv' function. */ | ||
490 | #undef HAVE_EVP_CIPHER_CTX_SET_IV | ||
491 | |||
486 | /* Define to 1 if you have the `EVP_DigestFinal_ex' function. */ | 492 | /* Define to 1 if you have the `EVP_DigestFinal_ex' function. */ |
487 | #undef HAVE_EVP_DIGESTFINAL_EX | 493 | #undef HAVE_EVP_DIGESTFINAL_EX |
488 | 494 | ||
@@ -495,16 +501,16 @@ | |||
495 | /* Define to 1 if you have the `EVP_MD_CTX_copy_ex' function. */ | 501 | /* Define to 1 if you have the `EVP_MD_CTX_copy_ex' function. */ |
496 | #undef HAVE_EVP_MD_CTX_COPY_EX | 502 | #undef HAVE_EVP_MD_CTX_COPY_EX |
497 | 503 | ||
498 | /* Define if libcrypto has EVP_MD_CTX_free */ | 504 | /* Define to 1 if you have the `EVP_MD_CTX_free' function. */ |
499 | #undef HAVE_EVP_MD_CTX_FREE | 505 | #undef HAVE_EVP_MD_CTX_FREE |
500 | 506 | ||
501 | /* Define to 1 if you have the `EVP_MD_CTX_init' function. */ | 507 | /* Define to 1 if you have the `EVP_MD_CTX_init' function. */ |
502 | #undef HAVE_EVP_MD_CTX_INIT | 508 | #undef HAVE_EVP_MD_CTX_INIT |
503 | 509 | ||
504 | /* Define if libcrypto has EVP_MD_CTX_new */ | 510 | /* Define to 1 if you have the `EVP_MD_CTX_new' function. */ |
505 | #undef HAVE_EVP_MD_CTX_NEW | 511 | #undef HAVE_EVP_MD_CTX_NEW |
506 | 512 | ||
507 | /* Define if libcrypto has EVP_PKEY_get0_RSA */ | 513 | /* Define to 1 if you have the `EVP_PKEY_get0_RSA' function. */ |
508 | #undef HAVE_EVP_PKEY_GET0_RSA | 514 | #undef HAVE_EVP_PKEY_GET0_RSA |
509 | 515 | ||
510 | /* Define to 1 if you have the `EVP_ripemd160' function. */ | 516 | /* Define to 1 if you have the `EVP_ripemd160' function. */ |
@@ -522,9 +528,15 @@ | |||
522 | /* Define to 1 if you have the `fchmod' function. */ | 528 | /* Define to 1 if you have the `fchmod' function. */ |
523 | #undef HAVE_FCHMOD | 529 | #undef HAVE_FCHMOD |
524 | 530 | ||
531 | /* Define to 1 if you have the `fchmodat' function. */ | ||
532 | #undef HAVE_FCHMODAT | ||
533 | |||
525 | /* Define to 1 if you have the `fchown' function. */ | 534 | /* Define to 1 if you have the `fchown' function. */ |
526 | #undef HAVE_FCHOWN | 535 | #undef HAVE_FCHOWN |
527 | 536 | ||
537 | /* Define to 1 if you have the `fchownat' function. */ | ||
538 | #undef HAVE_FCHOWNAT | ||
539 | |||
528 | /* Use F_CLOSEM fcntl for closefrom */ | 540 | /* Use F_CLOSEM fcntl for closefrom */ |
529 | #undef HAVE_FCNTL_CLOSEM | 541 | #undef HAVE_FCNTL_CLOSEM |
530 | 542 | ||
@@ -935,8 +947,17 @@ | |||
935 | /* Define to 1 if you have the `openpty' function. */ | 947 | /* Define to 1 if you have the `openpty' function. */ |
936 | #undef HAVE_OPENPTY | 948 | #undef HAVE_OPENPTY |
937 | 949 | ||
938 | /* Define if your ssl headers are included with #include <openssl/header.h> */ | 950 | /* as a macro */ |
939 | #undef HAVE_OPENSSL | 951 | #undef HAVE_OPENSSL_ADD_ALL_ALGORITHMS |
952 | |||
953 | /* Define to 1 if you have the `OPENSSL_init_crypto' function. */ | ||
954 | #undef HAVE_OPENSSL_INIT_CRYPTO | ||
955 | |||
956 | /* Define to 1 if you have the `OpenSSL_version' function. */ | ||
957 | #undef HAVE_OPENSSL_VERSION | ||
958 | |||
959 | /* Define to 1 if you have the `OpenSSL_version_num' function. */ | ||
960 | #undef HAVE_OPENSSL_VERSION_NUM | ||
940 | 961 | ||
941 | /* Define if you have Digital Unix Security Integration Architecture */ | 962 | /* Define if you have Digital Unix Security Integration Architecture */ |
942 | #undef HAVE_OSF_SIA | 963 | #undef HAVE_OSF_SIA |
@@ -1029,46 +1050,46 @@ | |||
1029 | /* Define to 1 if you have the `RSA_generate_key_ex' function. */ | 1050 | /* Define to 1 if you have the `RSA_generate_key_ex' function. */ |
1030 | #undef HAVE_RSA_GENERATE_KEY_EX | 1051 | #undef HAVE_RSA_GENERATE_KEY_EX |
1031 | 1052 | ||
1032 | /* Define if libcrypto has RSA_get0_crt_params */ | 1053 | /* Define to 1 if you have the `RSA_get0_crt_params' function. */ |
1033 | #undef HAVE_RSA_GET0_CRT_PARAMS | 1054 | #undef HAVE_RSA_GET0_CRT_PARAMS |
1034 | 1055 | ||
1035 | /* Define if libcrypto has RSA_get0_factors */ | 1056 | /* Define to 1 if you have the `RSA_get0_factors' function. */ |
1036 | #undef HAVE_RSA_GET0_FACTORS | 1057 | #undef HAVE_RSA_GET0_FACTORS |
1037 | 1058 | ||
1038 | /* Define if libcrypto has RSA_get0_key */ | 1059 | /* Define to 1 if you have the `RSA_get0_key' function. */ |
1039 | #undef HAVE_RSA_GET0_KEY | 1060 | #undef HAVE_RSA_GET0_KEY |
1040 | 1061 | ||
1041 | /* Define to 1 if you have the `RSA_get_default_method' function. */ | 1062 | /* Define to 1 if you have the `RSA_get_default_method' function. */ |
1042 | #undef HAVE_RSA_GET_DEFAULT_METHOD | 1063 | #undef HAVE_RSA_GET_DEFAULT_METHOD |
1043 | 1064 | ||
1044 | /* Define if libcrypto has RSA_meth_dup */ | 1065 | /* Define to 1 if you have the `RSA_meth_dup' function. */ |
1045 | #undef HAVE_RSA_METH_DUP | 1066 | #undef HAVE_RSA_METH_DUP |
1046 | 1067 | ||
1047 | /* Define if libcrypto has RSA_meth_free */ | 1068 | /* Define to 1 if you have the `RSA_meth_free' function. */ |
1048 | #undef HAVE_RSA_METH_FREE | 1069 | #undef HAVE_RSA_METH_FREE |
1049 | 1070 | ||
1050 | /* Define if libcrypto has RSA_meth_get_finish */ | 1071 | /* Define to 1 if you have the `RSA_meth_get_finish' function. */ |
1051 | #undef HAVE_RSA_METH_GET_FINISH | 1072 | #undef HAVE_RSA_METH_GET_FINISH |
1052 | 1073 | ||
1053 | /* Define if libcrypto has RSA_meth_set1_name */ | 1074 | /* Define to 1 if you have the `RSA_meth_set1_name' function. */ |
1054 | #undef HAVE_RSA_METH_SET1_NAME | 1075 | #undef HAVE_RSA_METH_SET1_NAME |
1055 | 1076 | ||
1056 | /* Define if libcrypto has RSA_meth_set_finish */ | 1077 | /* Define to 1 if you have the `RSA_meth_set_finish' function. */ |
1057 | #undef HAVE_RSA_METH_SET_FINISH | 1078 | #undef HAVE_RSA_METH_SET_FINISH |
1058 | 1079 | ||
1059 | /* Define if libcrypto has RSA_meth_set_priv_dec */ | 1080 | /* Define to 1 if you have the `RSA_meth_set_priv_dec' function. */ |
1060 | #undef HAVE_RSA_METH_SET_PRIV_DEC | 1081 | #undef HAVE_RSA_METH_SET_PRIV_DEC |
1061 | 1082 | ||
1062 | /* Define if libcrypto has RSA_meth_set_priv_enc */ | 1083 | /* Define to 1 if you have the `RSA_meth_set_priv_enc' function. */ |
1063 | #undef HAVE_RSA_METH_SET_PRIV_ENC | 1084 | #undef HAVE_RSA_METH_SET_PRIV_ENC |
1064 | 1085 | ||
1065 | /* Define if libcrypto has RSA_get0_srt_params */ | 1086 | /* Define to 1 if you have the `RSA_set0_crt_params' function. */ |
1066 | #undef HAVE_RSA_SET0_CRT_PARAMS | 1087 | #undef HAVE_RSA_SET0_CRT_PARAMS |
1067 | 1088 | ||
1068 | /* Define if libcrypto has RSA_set0_factors */ | 1089 | /* Define to 1 if you have the `RSA_set0_factors' function. */ |
1069 | #undef HAVE_RSA_SET0_FACTORS | 1090 | #undef HAVE_RSA_SET0_FACTORS |
1070 | 1091 | ||
1071 | /* Define if libcrypto has RSA_set0_key */ | 1092 | /* Define to 1 if you have the `RSA_set0_key' function. */ |
1072 | #undef HAVE_RSA_SET0_KEY | 1093 | #undef HAVE_RSA_SET0_KEY |
1073 | 1094 | ||
1074 | /* Define to 1 if you have the <sandbox.h> header file. */ | 1095 | /* Define to 1 if you have the <sandbox.h> header file. */ |
@@ -1512,6 +1533,9 @@ | |||
1512 | /* Define to 1 if you have the <util.h> header file. */ | 1533 | /* Define to 1 if you have the <util.h> header file. */ |
1513 | #undef HAVE_UTIL_H | 1534 | #undef HAVE_UTIL_H |
1514 | 1535 | ||
1536 | /* Define to 1 if you have the `utimensat' function. */ | ||
1537 | #undef HAVE_UTIMENSAT | ||
1538 | |||
1515 | /* Define to 1 if you have the `utimes' function. */ | 1539 | /* Define to 1 if you have the `utimes' function. */ |
1516 | #undef HAVE_UTIMES | 1540 | #undef HAVE_UTIMES |
1517 | 1541 | ||
@@ -2625,197 +2625,7 @@ ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' | |||
2625 | ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' | 2625 | ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' |
2626 | ac_compiler_gnu=$ac_cv_c_compiler_gnu | 2626 | ac_compiler_gnu=$ac_cv_c_compiler_gnu |
2627 | if test -n "$ac_tool_prefix"; then | 2627 | if test -n "$ac_tool_prefix"; then |
2628 | # Extract the first word of "${ac_tool_prefix}gcc", so it can be a program name with args. | 2628 | for ac_prog in cc gcc |
2629 | set dummy ${ac_tool_prefix}gcc; ac_word=$2 | ||
2630 | { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 | ||
2631 | $as_echo_n "checking for $ac_word... " >&6; } | ||
2632 | if ${ac_cv_prog_CC+:} false; then : | ||
2633 | $as_echo_n "(cached) " >&6 | ||
2634 | else | ||
2635 | if test -n "$CC"; then | ||
2636 | ac_cv_prog_CC="$CC" # Let the user override the test. | ||
2637 | else | ||
2638 | as_save_IFS=$IFS; IFS=$PATH_SEPARATOR | ||
2639 | for as_dir in $PATH | ||
2640 | do | ||
2641 | IFS=$as_save_IFS | ||
2642 | test -z "$as_dir" && as_dir=. | ||
2643 | for ac_exec_ext in '' $ac_executable_extensions; do | ||
2644 | if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then | ||
2645 | ac_cv_prog_CC="${ac_tool_prefix}gcc" | ||
2646 | $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 | ||
2647 | break 2 | ||
2648 | fi | ||
2649 | done | ||
2650 | done | ||
2651 | IFS=$as_save_IFS | ||
2652 | |||
2653 | fi | ||
2654 | fi | ||
2655 | CC=$ac_cv_prog_CC | ||
2656 | if test -n "$CC"; then | ||
2657 | { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 | ||
2658 | $as_echo "$CC" >&6; } | ||
2659 | else | ||
2660 | { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 | ||
2661 | $as_echo "no" >&6; } | ||
2662 | fi | ||
2663 | |||
2664 | |||
2665 | fi | ||
2666 | if test -z "$ac_cv_prog_CC"; then | ||
2667 | ac_ct_CC=$CC | ||
2668 | # Extract the first word of "gcc", so it can be a program name with args. | ||
2669 | set dummy gcc; ac_word=$2 | ||
2670 | { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 | ||
2671 | $as_echo_n "checking for $ac_word... " >&6; } | ||
2672 | if ${ac_cv_prog_ac_ct_CC+:} false; then : | ||
2673 | $as_echo_n "(cached) " >&6 | ||
2674 | else | ||
2675 | if test -n "$ac_ct_CC"; then | ||
2676 | ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. | ||
2677 | else | ||
2678 | as_save_IFS=$IFS; IFS=$PATH_SEPARATOR | ||
2679 | for as_dir in $PATH | ||
2680 | do | ||
2681 | IFS=$as_save_IFS | ||
2682 | test -z "$as_dir" && as_dir=. | ||
2683 | for ac_exec_ext in '' $ac_executable_extensions; do | ||
2684 | if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then | ||
2685 | ac_cv_prog_ac_ct_CC="gcc" | ||
2686 | $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 | ||
2687 | break 2 | ||
2688 | fi | ||
2689 | done | ||
2690 | done | ||
2691 | IFS=$as_save_IFS | ||
2692 | |||
2693 | fi | ||
2694 | fi | ||
2695 | ac_ct_CC=$ac_cv_prog_ac_ct_CC | ||
2696 | if test -n "$ac_ct_CC"; then | ||
2697 | { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5 | ||
2698 | $as_echo "$ac_ct_CC" >&6; } | ||
2699 | else | ||
2700 | { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 | ||
2701 | $as_echo "no" >&6; } | ||
2702 | fi | ||
2703 | |||
2704 | if test "x$ac_ct_CC" = x; then | ||
2705 | CC="" | ||
2706 | else | ||
2707 | case $cross_compiling:$ac_tool_warned in | ||
2708 | yes:) | ||
2709 | { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 | ||
2710 | $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} | ||
2711 | ac_tool_warned=yes ;; | ||
2712 | esac | ||
2713 | CC=$ac_ct_CC | ||
2714 | fi | ||
2715 | else | ||
2716 | CC="$ac_cv_prog_CC" | ||
2717 | fi | ||
2718 | |||
2719 | if test -z "$CC"; then | ||
2720 | if test -n "$ac_tool_prefix"; then | ||
2721 | # Extract the first word of "${ac_tool_prefix}cc", so it can be a program name with args. | ||
2722 | set dummy ${ac_tool_prefix}cc; ac_word=$2 | ||
2723 | { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 | ||
2724 | $as_echo_n "checking for $ac_word... " >&6; } | ||
2725 | if ${ac_cv_prog_CC+:} false; then : | ||
2726 | $as_echo_n "(cached) " >&6 | ||
2727 | else | ||
2728 | if test -n "$CC"; then | ||
2729 | ac_cv_prog_CC="$CC" # Let the user override the test. | ||
2730 | else | ||
2731 | as_save_IFS=$IFS; IFS=$PATH_SEPARATOR | ||
2732 | for as_dir in $PATH | ||
2733 | do | ||
2734 | IFS=$as_save_IFS | ||
2735 | test -z "$as_dir" && as_dir=. | ||
2736 | for ac_exec_ext in '' $ac_executable_extensions; do | ||
2737 | if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then | ||
2738 | ac_cv_prog_CC="${ac_tool_prefix}cc" | ||
2739 | $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 | ||
2740 | break 2 | ||
2741 | fi | ||
2742 | done | ||
2743 | done | ||
2744 | IFS=$as_save_IFS | ||
2745 | |||
2746 | fi | ||
2747 | fi | ||
2748 | CC=$ac_cv_prog_CC | ||
2749 | if test -n "$CC"; then | ||
2750 | { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 | ||
2751 | $as_echo "$CC" >&6; } | ||
2752 | else | ||
2753 | { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 | ||
2754 | $as_echo "no" >&6; } | ||
2755 | fi | ||
2756 | |||
2757 | |||
2758 | fi | ||
2759 | fi | ||
2760 | if test -z "$CC"; then | ||
2761 | # Extract the first word of "cc", so it can be a program name with args. | ||
2762 | set dummy cc; ac_word=$2 | ||
2763 | { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 | ||
2764 | $as_echo_n "checking for $ac_word... " >&6; } | ||
2765 | if ${ac_cv_prog_CC+:} false; then : | ||
2766 | $as_echo_n "(cached) " >&6 | ||
2767 | else | ||
2768 | if test -n "$CC"; then | ||
2769 | ac_cv_prog_CC="$CC" # Let the user override the test. | ||
2770 | else | ||
2771 | ac_prog_rejected=no | ||
2772 | as_save_IFS=$IFS; IFS=$PATH_SEPARATOR | ||
2773 | for as_dir in $PATH | ||
2774 | do | ||
2775 | IFS=$as_save_IFS | ||
2776 | test -z "$as_dir" && as_dir=. | ||
2777 | for ac_exec_ext in '' $ac_executable_extensions; do | ||
2778 | if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then | ||
2779 | if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then | ||
2780 | ac_prog_rejected=yes | ||
2781 | continue | ||
2782 | fi | ||
2783 | ac_cv_prog_CC="cc" | ||
2784 | $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 | ||
2785 | break 2 | ||
2786 | fi | ||
2787 | done | ||
2788 | done | ||
2789 | IFS=$as_save_IFS | ||
2790 | |||
2791 | if test $ac_prog_rejected = yes; then | ||
2792 | # We found a bogon in the path, so make sure we never use it. | ||
2793 | set dummy $ac_cv_prog_CC | ||
2794 | shift | ||
2795 | if test $# != 0; then | ||
2796 | # We chose a different compiler from the bogus one. | ||
2797 | # However, it has the same basename, so the bogon will be chosen | ||
2798 | # first if we set CC to just the basename; use the full file name. | ||
2799 | shift | ||
2800 | ac_cv_prog_CC="$as_dir/$ac_word${1+' '}$@" | ||
2801 | fi | ||
2802 | fi | ||
2803 | fi | ||
2804 | fi | ||
2805 | CC=$ac_cv_prog_CC | ||
2806 | if test -n "$CC"; then | ||
2807 | { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 | ||
2808 | $as_echo "$CC" >&6; } | ||
2809 | else | ||
2810 | { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 | ||
2811 | $as_echo "no" >&6; } | ||
2812 | fi | ||
2813 | |||
2814 | |||
2815 | fi | ||
2816 | if test -z "$CC"; then | ||
2817 | if test -n "$ac_tool_prefix"; then | ||
2818 | for ac_prog in cl.exe | ||
2819 | do | 2629 | do |
2820 | # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. | 2630 | # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. |
2821 | set dummy $ac_tool_prefix$ac_prog; ac_word=$2 | 2631 | set dummy $ac_tool_prefix$ac_prog; ac_word=$2 |
@@ -2859,7 +2669,7 @@ fi | |||
2859 | fi | 2669 | fi |
2860 | if test -z "$CC"; then | 2670 | if test -z "$CC"; then |
2861 | ac_ct_CC=$CC | 2671 | ac_ct_CC=$CC |
2862 | for ac_prog in cl.exe | 2672 | for ac_prog in cc gcc |
2863 | do | 2673 | do |
2864 | # Extract the first word of "$ac_prog", so it can be a program name with args. | 2674 | # Extract the first word of "$ac_prog", so it can be a program name with args. |
2865 | set dummy $ac_prog; ac_word=$2 | 2675 | set dummy $ac_prog; ac_word=$2 |
@@ -2914,8 +2724,6 @@ esac | |||
2914 | fi | 2724 | fi |
2915 | fi | 2725 | fi |
2916 | 2726 | ||
2917 | fi | ||
2918 | |||
2919 | 2727 | ||
2920 | test -z "$CC" && { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 | 2728 | test -z "$CC" && { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 |
2921 | $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} | 2729 | $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} |
@@ -6735,10 +6543,11 @@ fi | |||
6735 | if test "${with_rpath+set}" = set; then : | 6543 | if test "${with_rpath+set}" = set; then : |
6736 | withval=$with_rpath; | 6544 | withval=$with_rpath; |
6737 | if test "x$withval" = "xno" ; then | 6545 | if test "x$withval" = "xno" ; then |
6738 | need_dash_r="" | 6546 | rpath_opt="" |
6739 | fi | 6547 | elif test "x$withval" = "xyes" ; then |
6740 | if test "x$withval" = "xyes" ; then | 6548 | rpath_opt="-R" |
6741 | need_dash_r=1 | 6549 | else |
6550 | rpath_opt="$withval" | ||
6742 | fi | 6551 | fi |
6743 | 6552 | ||
6744 | 6553 | ||
@@ -8059,7 +7868,7 @@ $as_echo "#define NEED_SETPGRP 1" >>confdefs.h | |||
8059 | *-*-netbsd*) | 7868 | *-*-netbsd*) |
8060 | check_for_libcrypt_before=1 | 7869 | check_for_libcrypt_before=1 |
8061 | if test "x$withval" != "xno" ; then | 7870 | if test "x$withval" != "xno" ; then |
8062 | need_dash_r=1 | 7871 | rpath_opt="-R" |
8063 | fi | 7872 | fi |
8064 | CPPFLAGS="$CPPFLAGS -D_OPENBSD_SOURCE" | 7873 | CPPFLAGS="$CPPFLAGS -D_OPENBSD_SOURCE" |
8065 | 7874 | ||
@@ -8153,7 +7962,7 @@ $as_echo "#define SYSLOG_R_SAFE_IN_SIGHAND 1" >>confdefs.h | |||
8153 | ;; | 7962 | ;; |
8154 | *-*-solaris*) | 7963 | *-*-solaris*) |
8155 | if test "x$withval" != "xno" ; then | 7964 | if test "x$withval" != "xno" ; then |
8156 | need_dash_r=1 | 7965 | rpath_opt="-R" |
8157 | fi | 7966 | fi |
8158 | $as_echo "#define PAM_SUN_CODEBASE 1" >>confdefs.h | 7967 | $as_echo "#define PAM_SUN_CODEBASE 1" >>confdefs.h |
8159 | 7968 | ||
@@ -9083,14 +8892,14 @@ if test "${with_zlib+set}" = set; then : | |||
9083 | as_fn_error $? "*** zlib is required ***" "$LINENO" 5 | 8892 | as_fn_error $? "*** zlib is required ***" "$LINENO" 5 |
9084 | elif test "x$withval" != "xyes"; then | 8893 | elif test "x$withval" != "xyes"; then |
9085 | if test -d "$withval/lib"; then | 8894 | if test -d "$withval/lib"; then |
9086 | if test -n "${need_dash_r}"; then | 8895 | if test -n "${rpath_opt}"; then |
9087 | LDFLAGS="-L${withval}/lib -R${withval}/lib ${LDFLAGS}" | 8896 | LDFLAGS="-L${withval}/lib ${rpath_opt}${withval}/lib ${LDFLAGS}" |
9088 | else | 8897 | else |
9089 | LDFLAGS="-L${withval}/lib ${LDFLAGS}" | 8898 | LDFLAGS="-L${withval}/lib ${LDFLAGS}" |
9090 | fi | 8899 | fi |
9091 | else | 8900 | else |
9092 | if test -n "${need_dash_r}"; then | 8901 | if test -n "${rpath_opt}"; then |
9093 | LDFLAGS="-L${withval} -R${withval} ${LDFLAGS}" | 8902 | LDFLAGS="-L${withval} ${rpath_opt}${withval} ${LDFLAGS}" |
9094 | else | 8903 | else |
9095 | LDFLAGS="-L${withval} ${LDFLAGS}" | 8904 | LDFLAGS="-L${withval} ${LDFLAGS}" |
9096 | fi | 8905 | fi |
@@ -9161,8 +8970,8 @@ else | |||
9161 | saved_CPPFLAGS="$CPPFLAGS" | 8970 | saved_CPPFLAGS="$CPPFLAGS" |
9162 | saved_LDFLAGS="$LDFLAGS" | 8971 | saved_LDFLAGS="$LDFLAGS" |
9163 | save_LIBS="$LIBS" | 8972 | save_LIBS="$LIBS" |
9164 | if test -n "${need_dash_r}"; then | 8973 | if test -n "${rpath_opt}"; then |
9165 | LDFLAGS="-L/usr/local/lib -R/usr/local/lib ${saved_LDFLAGS}" | 8974 | LDFLAGS="-L/usr/local/lib ${rpath_opt}/usr/local/lib ${saved_LDFLAGS}" |
9166 | else | 8975 | else |
9167 | LDFLAGS="-L/usr/local/lib ${saved_LDFLAGS}" | 8976 | LDFLAGS="-L/usr/local/lib ${saved_LDFLAGS}" |
9168 | fi | 8977 | fi |
@@ -10607,8 +10416,8 @@ $as_echo "no" >&6; } | |||
10607 | fi | 10416 | fi |
10608 | else | 10417 | else |
10609 | CPPFLAGS="$CPPFLAGS -I${withval}/include" | 10418 | CPPFLAGS="$CPPFLAGS -I${withval}/include" |
10610 | if test -n "${need_dash_r}"; then | 10419 | if test -n "${rpath_opt}"; then |
10611 | LDFLAGS="-L${withval}/lib -R${withval}/lib ${LDFLAGS}" | 10420 | LDFLAGS="-L${withval}/lib ${rpath_opt}${withval}/lib ${LDFLAGS}" |
10612 | else | 10421 | else |
10613 | LDFLAGS="-L${withval}/lib ${LDFLAGS}" | 10422 | LDFLAGS="-L${withval}/lib ${LDFLAGS}" |
10614 | fi | 10423 | fi |
@@ -11030,7 +10839,9 @@ for ac_func in \ | |||
11030 | errx \ | 10839 | errx \ |
11031 | explicit_bzero \ | 10840 | explicit_bzero \ |
11032 | fchmod \ | 10841 | fchmod \ |
10842 | fchmodat \ | ||
11033 | fchown \ | 10843 | fchown \ |
10844 | fchownat \ | ||
11034 | flock \ | 10845 | flock \ |
11035 | freeaddrinfo \ | 10846 | freeaddrinfo \ |
11036 | freezero \ | 10847 | freezero \ |
@@ -11123,6 +10934,7 @@ for ac_func in \ | |||
11123 | truncate \ | 10934 | truncate \ |
11124 | unsetenv \ | 10935 | unsetenv \ |
11125 | updwtmpx \ | 10936 | updwtmpx \ |
10937 | utimensat \ | ||
11126 | user_from_uid \ | 10938 | user_from_uid \ |
11127 | usleep \ | 10939 | usleep \ |
11128 | vasprintf \ | 10940 | vasprintf \ |
@@ -12742,20 +12554,20 @@ if test "${with_ssl_dir+set}" = set; then : | |||
12742 | ./*|../*) withval="`pwd`/$withval" | 12554 | ./*|../*) withval="`pwd`/$withval" |
12743 | esac | 12555 | esac |
12744 | if test -d "$withval/lib"; then | 12556 | if test -d "$withval/lib"; then |
12745 | if test -n "${need_dash_r}"; then | 12557 | if test -n "${rpath_opt}"; then |
12746 | LDFLAGS="-L${withval}/lib -R${withval}/lib ${LDFLAGS}" | 12558 | LDFLAGS="-L${withval}/lib ${rpath_opt}${withval}/lib ${LDFLAGS}" |
12747 | else | 12559 | else |
12748 | LDFLAGS="-L${withval}/lib ${LDFLAGS}" | 12560 | LDFLAGS="-L${withval}/lib ${LDFLAGS}" |
12749 | fi | 12561 | fi |
12750 | elif test -d "$withval/lib64"; then | 12562 | elif test -d "$withval/lib64"; then |
12751 | if test -n "${need_dash_r}"; then | 12563 | if test -n "${rpath_opt}"; then |
12752 | LDFLAGS="-L${withval}/lib64 -R${withval}/lib64 ${LDFLAGS}" | 12564 | LDFLAGS="-L${withval}/lib64 ${rpath_opt}${withval}/lib64 ${LDFLAGS}" |
12753 | else | 12565 | else |
12754 | LDFLAGS="-L${withval}/lib64 ${LDFLAGS}" | 12566 | LDFLAGS="-L${withval}/lib64 ${LDFLAGS}" |
12755 | fi | 12567 | fi |
12756 | else | 12568 | else |
12757 | if test -n "${need_dash_r}"; then | 12569 | if test -n "${rpath_opt}"; then |
12758 | LDFLAGS="-L${withval} -R${withval} ${LDFLAGS}" | 12570 | LDFLAGS="-L${withval} ${rpath_opt}${withval} ${LDFLAGS}" |
12759 | else | 12571 | else |
12760 | LDFLAGS="-L${withval} ${LDFLAGS}" | 12572 | LDFLAGS="-L${withval} ${LDFLAGS}" |
12761 | fi | 12573 | fi |
@@ -12821,17 +12633,12 @@ return RAND_add (); | |||
12821 | _ACEOF | 12633 | _ACEOF |
12822 | if ac_fn_c_try_link "$LINENO"; then : | 12634 | if ac_fn_c_try_link "$LINENO"; then : |
12823 | 12635 | ||
12824 | $as_echo "#define HAVE_OPENSSL 1" >>confdefs.h | ||
12825 | |||
12826 | else | 12636 | else |
12827 | 12637 | as_fn_error $? "*** working libcrypto not found, check config.log" "$LINENO" 5 | |
12828 | if test -n "${need_dash_r}"; then | 12638 | fi |
12829 | LDFLAGS="-L/usr/local/ssl/lib -R/usr/local/ssl/lib ${saved_LDFLAGS}" | 12639 | rm -f core conftest.err conftest.$ac_objext \ |
12830 | else | 12640 | conftest$ac_exeext conftest.$ac_ext |
12831 | LDFLAGS="-L/usr/local/ssl/lib ${saved_LDFLAGS}" | 12641 | ac_fn_c_check_header_mongrel "$LINENO" "openssl/opensslv.h" "ac_cv_header_openssl_opensslv_h" "$ac_includes_default" |
12832 | fi | ||
12833 | CPPFLAGS="-I/usr/local/ssl/include ${saved_CPPFLAGS}" | ||
12834 | ac_fn_c_check_header_mongrel "$LINENO" "openssl/opensslv.h" "ac_cv_header_openssl_opensslv_h" "$ac_includes_default" | ||
12835 | if test "x$ac_cv_header_openssl_opensslv_h" = xyes; then : | 12642 | if test "x$ac_cv_header_openssl_opensslv_h" = xyes; then : |
12836 | 12643 | ||
12837 | else | 12644 | else |
@@ -12839,40 +12646,6 @@ else | |||
12839 | fi | 12646 | fi |
12840 | 12647 | ||
12841 | 12648 | ||
12842 | cat confdefs.h - <<_ACEOF >conftest.$ac_ext | ||
12843 | /* end confdefs.h. */ | ||
12844 | |||
12845 | /* Override any GCC internal prototype to avoid an error. | ||
12846 | Use char because int might match the return type of a GCC | ||
12847 | builtin and then its argument prototype would still apply. */ | ||
12848 | #ifdef __cplusplus | ||
12849 | extern "C" | ||
12850 | #endif | ||
12851 | char RAND_add (); | ||
12852 | int | ||
12853 | main () | ||
12854 | { | ||
12855 | return RAND_add (); | ||
12856 | ; | ||
12857 | return 0; | ||
12858 | } | ||
12859 | _ACEOF | ||
12860 | if ac_fn_c_try_link "$LINENO"; then : | ||
12861 | $as_echo "#define HAVE_OPENSSL 1" >>confdefs.h | ||
12862 | |||
12863 | else | ||
12864 | |||
12865 | as_fn_error $? "*** Can't find recent OpenSSL libcrypto (see config.log for details) ***" "$LINENO" 5 | ||
12866 | |||
12867 | |||
12868 | fi | ||
12869 | rm -f core conftest.err conftest.$ac_objext \ | ||
12870 | conftest$ac_exeext conftest.$ac_ext | ||
12871 | |||
12872 | |||
12873 | fi | ||
12874 | rm -f core conftest.err conftest.$ac_objext \ | ||
12875 | conftest$ac_exeext conftest.$ac_ext | ||
12876 | 12649 | ||
12877 | # Determine OpenSSL header version | 12650 | # Determine OpenSSL header version |
12878 | { $as_echo "$as_me:${as_lineno-$LINENO}: checking OpenSSL header version" >&5 | 12651 | { $as_echo "$as_me:${as_lineno-$LINENO}: checking OpenSSL header version" >&5 |
@@ -12933,6 +12706,20 @@ rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ | |||
12933 | fi | 12706 | fi |
12934 | 12707 | ||
12935 | 12708 | ||
12709 | # Determining OpenSSL library version is version dependent. | ||
12710 | for ac_func in OpenSSL_version OpenSSL_version_num | ||
12711 | do : | ||
12712 | as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` | ||
12713 | ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var" | ||
12714 | if eval test \"x\$"$as_ac_var"\" = x"yes"; then : | ||
12715 | cat >>confdefs.h <<_ACEOF | ||
12716 | #define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 | ||
12717 | _ACEOF | ||
12718 | |||
12719 | fi | ||
12720 | done | ||
12721 | |||
12722 | |||
12936 | # Determine OpenSSL library version | 12723 | # Determine OpenSSL library version |
12937 | { $as_echo "$as_me:${as_lineno-$LINENO}: checking OpenSSL library version" >&5 | 12724 | { $as_echo "$as_me:${as_lineno-$LINENO}: checking OpenSSL library version" >&5 |
12938 | $as_echo_n "checking OpenSSL library version... " >&6; } | 12725 | $as_echo_n "checking OpenSSL library version... " >&6; } |
@@ -12962,9 +12749,18 @@ main () | |||
12962 | fd = fopen(DATA,"w"); | 12749 | fd = fopen(DATA,"w"); |
12963 | if(fd == NULL) | 12750 | if(fd == NULL) |
12964 | exit(1); | 12751 | exit(1); |
12965 | 12752 | #ifndef OPENSSL_VERSION | |
12966 | if ((rc = fprintf(fd, "%08lx (%s)\n", (unsigned long)SSLeay(), | 12753 | # define OPENSSL_VERSION SSLEAY_VERSION |
12967 | SSLeay_version(SSLEAY_VERSION))) < 0) | 12754 | #endif |
12755 | #ifndef HAVE_OPENSSL_VERSION | ||
12756 | # define OpenSSL_version SSLeay_version | ||
12757 | #endif | ||
12758 | #ifndef HAVE_OPENSSL_VERSION_NUM | ||
12759 | # define OpenSSL_version_num SSLeay | ||
12760 | #endif | ||
12761 | if ((rc = fprintf(fd, "%08lx (%s)\n", | ||
12762 | (unsigned long)OpenSSL_version_num(), | ||
12763 | OpenSSL_version(OPENSSL_VERSION))) < 0) | ||
12968 | exit(1); | 12764 | exit(1); |
12969 | 12765 | ||
12970 | exit(0); | 12766 | exit(0); |
@@ -12982,14 +12778,15 @@ if ac_fn_c_try_run "$LINENO"; then : | |||
12982 | as_fn_error $? "OpenSSL >= 1.0.1 required (have \"$ssl_library_ver\")" "$LINENO" 5 | 12778 | as_fn_error $? "OpenSSL >= 1.0.1 required (have \"$ssl_library_ver\")" "$LINENO" 5 |
12983 | ;; | 12779 | ;; |
12984 | 100*) ;; # 1.0.x | 12780 | 100*) ;; # 1.0.x |
12985 | 1010000123456*) | 12781 | 101000[0123456]*) |
12986 | # https://github.com/openssl/openssl/pull/4613 | 12782 | # https://github.com/openssl/openssl/pull/4613 |
12987 | as_fn_error $? "OpenSSL 1.1.x versions prior to 1.1.0g have a bug that breaks their use with OpenSSH (have \"$ssl_library_ver\")" "$LINENO" 5 | 12783 | as_fn_error $? "OpenSSL 1.1.x versions prior to 1.1.0g have a bug that breaks their use with OpenSSH (have \"$ssl_library_ver\")" "$LINENO" 5 |
12988 | ;; | 12784 | ;; |
12989 | 101*) ;; # 1.1.x | 12785 | 101*) ;; # 1.1.x |
12990 | 200*) ;; # LibreSSL | 12786 | 200*) ;; # LibreSSL |
12787 | 300*) ;; # OpenSSL development branch. | ||
12991 | *) | 12788 | *) |
12992 | as_fn_error $? "OpenSSL > 1.1.x is not yet supported (have \"$ssl_library_ver\")" "$LINENO" 5 | 12789 | as_fn_error $? "Unknown/unsupported OpenSSL version (\"$ssl_library_ver\")" "$LINENO" 5 |
12993 | ;; | 12790 | ;; |
12994 | esac | 12791 | esac |
12995 | { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ssl_library_ver" >&5 | 12792 | { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ssl_library_ver" >&5 |
@@ -13028,7 +12825,10 @@ int | |||
13028 | main () | 12825 | main () |
13029 | { | 12826 | { |
13030 | 12827 | ||
13031 | exit(SSLeay() == OPENSSL_VERSION_NUMBER ? 0 : 1); | 12828 | #ifndef HAVE_OPENSSL_VERSION_NUM |
12829 | # define OpenSSL_version_num SSLeay | ||
12830 | #endif | ||
12831 | exit(OpenSSL_version_num() == OPENSSL_VERSION_NUMBER ? 0 : 1); | ||
13032 | 12832 | ||
13033 | ; | 12833 | ; |
13034 | return 0; | 12834 | return 0; |
@@ -13069,11 +12869,11 @@ fi | |||
13069 | $as_echo_n "checking if programs using OpenSSL functions will link... " >&6; } | 12869 | $as_echo_n "checking if programs using OpenSSL functions will link... " >&6; } |
13070 | cat confdefs.h - <<_ACEOF >conftest.$ac_ext | 12870 | cat confdefs.h - <<_ACEOF >conftest.$ac_ext |
13071 | /* end confdefs.h. */ | 12871 | /* end confdefs.h. */ |
13072 | #include <openssl/evp.h> | 12872 | #include <openssl/err.h> |
13073 | int | 12873 | int |
13074 | main () | 12874 | main () |
13075 | { | 12875 | { |
13076 | SSLeay_add_all_algorithms(); | 12876 | ERR_load_crypto_strings(); |
13077 | ; | 12877 | ; |
13078 | return 0; | 12878 | return 0; |
13079 | } | 12879 | } |
@@ -13093,11 +12893,11 @@ $as_echo "no" >&6; } | |||
13093 | $as_echo_n "checking if programs using OpenSSL need -ldl... " >&6; } | 12893 | $as_echo_n "checking if programs using OpenSSL need -ldl... " >&6; } |
13094 | cat confdefs.h - <<_ACEOF >conftest.$ac_ext | 12894 | cat confdefs.h - <<_ACEOF >conftest.$ac_ext |
13095 | /* end confdefs.h. */ | 12895 | /* end confdefs.h. */ |
13096 | #include <openssl/evp.h> | 12896 | #include <openssl/err.h> |
13097 | int | 12897 | int |
13098 | main () | 12898 | main () |
13099 | { | 12899 | { |
13100 | SSLeay_add_all_algorithms(); | 12900 | ERR_load_crypto_strings(); |
13101 | ; | 12901 | ; |
13102 | return 0; | 12902 | return 0; |
13103 | } | 12903 | } |
@@ -13126,11 +12926,12 @@ rm -f core conftest.err conftest.$ac_objext \ | |||
13126 | for ac_func in \ | 12926 | for ac_func in \ |
13127 | BN_is_prime_ex \ | 12927 | BN_is_prime_ex \ |
13128 | DSA_generate_parameters_ex \ | 12928 | DSA_generate_parameters_ex \ |
13129 | EVP_DigestInit_ex \ | 12929 | EVP_CIPHER_CTX_ctrl \ |
13130 | EVP_DigestFinal_ex \ | 12930 | EVP_DigestFinal_ex \ |
13131 | EVP_MD_CTX_init \ | 12931 | EVP_DigestInit_ex \ |
13132 | EVP_MD_CTX_cleanup \ | 12932 | EVP_MD_CTX_cleanup \ |
13133 | EVP_MD_CTX_copy_ex \ | 12933 | EVP_MD_CTX_copy_ex \ |
12934 | EVP_MD_CTX_init \ | ||
13134 | HMAC_CTX_init \ | 12935 | HMAC_CTX_init \ |
13135 | RSA_generate_key_ex \ | 12936 | RSA_generate_key_ex \ |
13136 | RSA_get_default_method \ | 12937 | RSA_get_default_method \ |
@@ -13147,6 +12948,75 @@ fi | |||
13147 | done | 12948 | done |
13148 | 12949 | ||
13149 | 12950 | ||
12951 | # OpenSSL_add_all_algorithms may be a macro. | ||
12952 | ac_fn_c_check_func "$LINENO" "OpenSSL_add_all_algorithms" "ac_cv_func_OpenSSL_add_all_algorithms" | ||
12953 | if test "x$ac_cv_func_OpenSSL_add_all_algorithms" = xyes; then : | ||
12954 | |||
12955 | $as_echo "#define HAVE_OPENSSL_ADD_ALL_ALGORITHMS 1" >>confdefs.h | ||
12956 | |||
12957 | else | ||
12958 | ac_fn_c_check_decl "$LINENO" "OpenSSL_add_all_algorithms" "ac_cv_have_decl_OpenSSL_add_all_algorithms" "#include <openssl/evp.h> | ||
12959 | |||
12960 | " | ||
12961 | if test "x$ac_cv_have_decl_OpenSSL_add_all_algorithms" = xyes; then : | ||
12962 | |||
12963 | $as_echo "#define HAVE_OPENSSL_ADD_ALL_ALGORITHMS 1" >>confdefs.h | ||
12964 | |||
12965 | fi | ||
12966 | |||
12967 | |||
12968 | fi | ||
12969 | |||
12970 | |||
12971 | # LibreSSL/OpenSSL 1.1x API | ||
12972 | for ac_func in \ | ||
12973 | OPENSSL_init_crypto \ | ||
12974 | DH_get0_key \ | ||
12975 | DH_get0_pqg \ | ||
12976 | DH_set0_key \ | ||
12977 | DH_set_length \ | ||
12978 | DH_set0_pqg \ | ||
12979 | DSA_get0_key \ | ||
12980 | DSA_get0_pqg \ | ||
12981 | DSA_set0_key \ | ||
12982 | DSA_set0_pqg \ | ||
12983 | DSA_SIG_get0 \ | ||
12984 | DSA_SIG_set0 \ | ||
12985 | ECDSA_SIG_get0 \ | ||
12986 | ECDSA_SIG_set0 \ | ||
12987 | EVP_CIPHER_CTX_iv \ | ||
12988 | EVP_CIPHER_CTX_iv_noconst \ | ||
12989 | EVP_CIPHER_CTX_get_iv \ | ||
12990 | EVP_CIPHER_CTX_set_iv \ | ||
12991 | RSA_get0_crt_params \ | ||
12992 | RSA_get0_factors \ | ||
12993 | RSA_get0_key \ | ||
12994 | RSA_set0_crt_params \ | ||
12995 | RSA_set0_factors \ | ||
12996 | RSA_set0_key \ | ||
12997 | RSA_meth_free \ | ||
12998 | RSA_meth_dup \ | ||
12999 | RSA_meth_set1_name \ | ||
13000 | RSA_meth_get_finish \ | ||
13001 | RSA_meth_set_priv_enc \ | ||
13002 | RSA_meth_set_priv_dec \ | ||
13003 | RSA_meth_set_finish \ | ||
13004 | EVP_PKEY_get0_RSA \ | ||
13005 | EVP_MD_CTX_new \ | ||
13006 | EVP_MD_CTX_free \ | ||
13007 | |||
13008 | do : | ||
13009 | as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` | ||
13010 | ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var" | ||
13011 | if eval test \"x\$"$as_ac_var"\" = x"yes"; then : | ||
13012 | cat >>confdefs.h <<_ACEOF | ||
13013 | #define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 | ||
13014 | _ACEOF | ||
13015 | |||
13016 | fi | ||
13017 | done | ||
13018 | |||
13019 | |||
13150 | if test "x$openssl_engine" = "xyes" ; then | 13020 | if test "x$openssl_engine" = "xyes" ; then |
13151 | { $as_echo "$as_me:${as_lineno-$LINENO}: checking for OpenSSL ENGINE support" >&5 | 13021 | { $as_echo "$as_me:${as_lineno-$LINENO}: checking for OpenSSL ENGINE support" >&5 |
13152 | $as_echo_n "checking for OpenSSL ENGINE support... " >&6; } | 13022 | $as_echo_n "checking for OpenSSL ENGINE support... " >&6; } |
@@ -13302,1989 +13172,6 @@ fi | |||
13302 | rm -f core conftest.err conftest.$ac_objext \ | 13172 | rm -f core conftest.err conftest.$ac_objext \ |
13303 | conftest$ac_exeext conftest.$ac_ext | 13173 | conftest$ac_exeext conftest.$ac_ext |
13304 | 13174 | ||
13305 | { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing EVP_CIPHER_CTX_ctrl" >&5 | ||
13306 | $as_echo_n "checking for library containing EVP_CIPHER_CTX_ctrl... " >&6; } | ||
13307 | if ${ac_cv_search_EVP_CIPHER_CTX_ctrl+:} false; then : | ||
13308 | $as_echo_n "(cached) " >&6 | ||
13309 | else | ||
13310 | ac_func_search_save_LIBS=$LIBS | ||
13311 | cat confdefs.h - <<_ACEOF >conftest.$ac_ext | ||
13312 | /* end confdefs.h. */ | ||
13313 | |||
13314 | /* Override any GCC internal prototype to avoid an error. | ||
13315 | Use char because int might match the return type of a GCC | ||
13316 | builtin and then its argument prototype would still apply. */ | ||
13317 | #ifdef __cplusplus | ||
13318 | extern "C" | ||
13319 | #endif | ||
13320 | char EVP_CIPHER_CTX_ctrl (); | ||
13321 | int | ||
13322 | main () | ||
13323 | { | ||
13324 | return EVP_CIPHER_CTX_ctrl (); | ||
13325 | ; | ||
13326 | return 0; | ||
13327 | } | ||
13328 | _ACEOF | ||
13329 | for ac_lib in '' crypto; do | ||
13330 | if test -z "$ac_lib"; then | ||
13331 | ac_res="none required" | ||
13332 | else | ||
13333 | ac_res=-l$ac_lib | ||
13334 | LIBS="-l$ac_lib $ac_func_search_save_LIBS" | ||
13335 | fi | ||
13336 | if ac_fn_c_try_link "$LINENO"; then : | ||
13337 | ac_cv_search_EVP_CIPHER_CTX_ctrl=$ac_res | ||
13338 | fi | ||
13339 | rm -f core conftest.err conftest.$ac_objext \ | ||
13340 | conftest$ac_exeext | ||
13341 | if ${ac_cv_search_EVP_CIPHER_CTX_ctrl+:} false; then : | ||
13342 | break | ||
13343 | fi | ||
13344 | done | ||
13345 | if ${ac_cv_search_EVP_CIPHER_CTX_ctrl+:} false; then : | ||
13346 | |||
13347 | else | ||
13348 | ac_cv_search_EVP_CIPHER_CTX_ctrl=no | ||
13349 | fi | ||
13350 | rm conftest.$ac_ext | ||
13351 | LIBS=$ac_func_search_save_LIBS | ||
13352 | fi | ||
13353 | { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_EVP_CIPHER_CTX_ctrl" >&5 | ||
13354 | $as_echo "$ac_cv_search_EVP_CIPHER_CTX_ctrl" >&6; } | ||
13355 | ac_res=$ac_cv_search_EVP_CIPHER_CTX_ctrl | ||
13356 | if test "$ac_res" != no; then : | ||
13357 | test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" | ||
13358 | |||
13359 | $as_echo "#define HAVE_EVP_CIPHER_CTX_CTRL 1" >>confdefs.h | ||
13360 | |||
13361 | fi | ||
13362 | |||
13363 | |||
13364 | # LibreSSL/OpenSSL 1.1x API | ||
13365 | { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing DH_get0_key" >&5 | ||
13366 | $as_echo_n "checking for library containing DH_get0_key... " >&6; } | ||
13367 | if ${ac_cv_search_DH_get0_key+:} false; then : | ||
13368 | $as_echo_n "(cached) " >&6 | ||
13369 | else | ||
13370 | ac_func_search_save_LIBS=$LIBS | ||
13371 | cat confdefs.h - <<_ACEOF >conftest.$ac_ext | ||
13372 | /* end confdefs.h. */ | ||
13373 | |||
13374 | /* Override any GCC internal prototype to avoid an error. | ||
13375 | Use char because int might match the return type of a GCC | ||
13376 | builtin and then its argument prototype would still apply. */ | ||
13377 | #ifdef __cplusplus | ||
13378 | extern "C" | ||
13379 | #endif | ||
13380 | char DH_get0_key (); | ||
13381 | int | ||
13382 | main () | ||
13383 | { | ||
13384 | return DH_get0_key (); | ||
13385 | ; | ||
13386 | return 0; | ||
13387 | } | ||
13388 | _ACEOF | ||
13389 | for ac_lib in '' crypto; do | ||
13390 | if test -z "$ac_lib"; then | ||
13391 | ac_res="none required" | ||
13392 | else | ||
13393 | ac_res=-l$ac_lib | ||
13394 | LIBS="-l$ac_lib $ac_func_search_save_LIBS" | ||
13395 | fi | ||
13396 | if ac_fn_c_try_link "$LINENO"; then : | ||
13397 | ac_cv_search_DH_get0_key=$ac_res | ||
13398 | fi | ||
13399 | rm -f core conftest.err conftest.$ac_objext \ | ||
13400 | conftest$ac_exeext | ||
13401 | if ${ac_cv_search_DH_get0_key+:} false; then : | ||
13402 | break | ||
13403 | fi | ||
13404 | done | ||
13405 | if ${ac_cv_search_DH_get0_key+:} false; then : | ||
13406 | |||
13407 | else | ||
13408 | ac_cv_search_DH_get0_key=no | ||
13409 | fi | ||
13410 | rm conftest.$ac_ext | ||
13411 | LIBS=$ac_func_search_save_LIBS | ||
13412 | fi | ||
13413 | { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_DH_get0_key" >&5 | ||
13414 | $as_echo "$ac_cv_search_DH_get0_key" >&6; } | ||
13415 | ac_res=$ac_cv_search_DH_get0_key | ||
13416 | if test "$ac_res" != no; then : | ||
13417 | test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" | ||
13418 | |||
13419 | $as_echo "#define HAVE_DH_GET0_KEY 1" >>confdefs.h | ||
13420 | |||
13421 | fi | ||
13422 | |||
13423 | { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing DH_get0_pqg" >&5 | ||
13424 | $as_echo_n "checking for library containing DH_get0_pqg... " >&6; } | ||
13425 | if ${ac_cv_search_DH_get0_pqg+:} false; then : | ||
13426 | $as_echo_n "(cached) " >&6 | ||
13427 | else | ||
13428 | ac_func_search_save_LIBS=$LIBS | ||
13429 | cat confdefs.h - <<_ACEOF >conftest.$ac_ext | ||
13430 | /* end confdefs.h. */ | ||
13431 | |||
13432 | /* Override any GCC internal prototype to avoid an error. | ||
13433 | Use char because int might match the return type of a GCC | ||
13434 | builtin and then its argument prototype would still apply. */ | ||
13435 | #ifdef __cplusplus | ||
13436 | extern "C" | ||
13437 | #endif | ||
13438 | char DH_get0_pqg (); | ||
13439 | int | ||
13440 | main () | ||
13441 | { | ||
13442 | return DH_get0_pqg (); | ||
13443 | ; | ||
13444 | return 0; | ||
13445 | } | ||
13446 | _ACEOF | ||
13447 | for ac_lib in '' crypto; do | ||
13448 | if test -z "$ac_lib"; then | ||
13449 | ac_res="none required" | ||
13450 | else | ||
13451 | ac_res=-l$ac_lib | ||
13452 | LIBS="-l$ac_lib $ac_func_search_save_LIBS" | ||
13453 | fi | ||
13454 | if ac_fn_c_try_link "$LINENO"; then : | ||
13455 | ac_cv_search_DH_get0_pqg=$ac_res | ||
13456 | fi | ||
13457 | rm -f core conftest.err conftest.$ac_objext \ | ||
13458 | conftest$ac_exeext | ||
13459 | if ${ac_cv_search_DH_get0_pqg+:} false; then : | ||
13460 | break | ||
13461 | fi | ||
13462 | done | ||
13463 | if ${ac_cv_search_DH_get0_pqg+:} false; then : | ||
13464 | |||
13465 | else | ||
13466 | ac_cv_search_DH_get0_pqg=no | ||
13467 | fi | ||
13468 | rm conftest.$ac_ext | ||
13469 | LIBS=$ac_func_search_save_LIBS | ||
13470 | fi | ||
13471 | { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_DH_get0_pqg" >&5 | ||
13472 | $as_echo "$ac_cv_search_DH_get0_pqg" >&6; } | ||
13473 | ac_res=$ac_cv_search_DH_get0_pqg | ||
13474 | if test "$ac_res" != no; then : | ||
13475 | test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" | ||
13476 | |||
13477 | $as_echo "#define HAVE_DH_GET0_PQG 1" >>confdefs.h | ||
13478 | |||
13479 | fi | ||
13480 | |||
13481 | { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing DH_set0_key" >&5 | ||
13482 | $as_echo_n "checking for library containing DH_set0_key... " >&6; } | ||
13483 | if ${ac_cv_search_DH_set0_key+:} false; then : | ||
13484 | $as_echo_n "(cached) " >&6 | ||
13485 | else | ||
13486 | ac_func_search_save_LIBS=$LIBS | ||
13487 | cat confdefs.h - <<_ACEOF >conftest.$ac_ext | ||
13488 | /* end confdefs.h. */ | ||
13489 | |||
13490 | /* Override any GCC internal prototype to avoid an error. | ||
13491 | Use char because int might match the return type of a GCC | ||
13492 | builtin and then its argument prototype would still apply. */ | ||
13493 | #ifdef __cplusplus | ||
13494 | extern "C" | ||
13495 | #endif | ||
13496 | char DH_set0_key (); | ||
13497 | int | ||
13498 | main () | ||
13499 | { | ||
13500 | return DH_set0_key (); | ||
13501 | ; | ||
13502 | return 0; | ||
13503 | } | ||
13504 | _ACEOF | ||
13505 | for ac_lib in '' crypto; do | ||
13506 | if test -z "$ac_lib"; then | ||
13507 | ac_res="none required" | ||
13508 | else | ||
13509 | ac_res=-l$ac_lib | ||
13510 | LIBS="-l$ac_lib $ac_func_search_save_LIBS" | ||
13511 | fi | ||
13512 | if ac_fn_c_try_link "$LINENO"; then : | ||
13513 | ac_cv_search_DH_set0_key=$ac_res | ||
13514 | fi | ||
13515 | rm -f core conftest.err conftest.$ac_objext \ | ||
13516 | conftest$ac_exeext | ||
13517 | if ${ac_cv_search_DH_set0_key+:} false; then : | ||
13518 | break | ||
13519 | fi | ||
13520 | done | ||
13521 | if ${ac_cv_search_DH_set0_key+:} false; then : | ||
13522 | |||
13523 | else | ||
13524 | ac_cv_search_DH_set0_key=no | ||
13525 | fi | ||
13526 | rm conftest.$ac_ext | ||
13527 | LIBS=$ac_func_search_save_LIBS | ||
13528 | fi | ||
13529 | { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_DH_set0_key" >&5 | ||
13530 | $as_echo "$ac_cv_search_DH_set0_key" >&6; } | ||
13531 | ac_res=$ac_cv_search_DH_set0_key | ||
13532 | if test "$ac_res" != no; then : | ||
13533 | test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" | ||
13534 | |||
13535 | $as_echo "#define HAVE_DH_SET0_KEY 1" >>confdefs.h | ||
13536 | |||
13537 | fi | ||
13538 | |||
13539 | { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing DH_set_length" >&5 | ||
13540 | $as_echo_n "checking for library containing DH_set_length... " >&6; } | ||
13541 | if ${ac_cv_search_DH_set_length+:} false; then : | ||
13542 | $as_echo_n "(cached) " >&6 | ||
13543 | else | ||
13544 | ac_func_search_save_LIBS=$LIBS | ||
13545 | cat confdefs.h - <<_ACEOF >conftest.$ac_ext | ||
13546 | /* end confdefs.h. */ | ||
13547 | |||
13548 | /* Override any GCC internal prototype to avoid an error. | ||
13549 | Use char because int might match the return type of a GCC | ||
13550 | builtin and then its argument prototype would still apply. */ | ||
13551 | #ifdef __cplusplus | ||
13552 | extern "C" | ||
13553 | #endif | ||
13554 | char DH_set_length (); | ||
13555 | int | ||
13556 | main () | ||
13557 | { | ||
13558 | return DH_set_length (); | ||
13559 | ; | ||
13560 | return 0; | ||
13561 | } | ||
13562 | _ACEOF | ||
13563 | for ac_lib in '' crypto; do | ||
13564 | if test -z "$ac_lib"; then | ||
13565 | ac_res="none required" | ||
13566 | else | ||
13567 | ac_res=-l$ac_lib | ||
13568 | LIBS="-l$ac_lib $ac_func_search_save_LIBS" | ||
13569 | fi | ||
13570 | if ac_fn_c_try_link "$LINENO"; then : | ||
13571 | ac_cv_search_DH_set_length=$ac_res | ||
13572 | fi | ||
13573 | rm -f core conftest.err conftest.$ac_objext \ | ||
13574 | conftest$ac_exeext | ||
13575 | if ${ac_cv_search_DH_set_length+:} false; then : | ||
13576 | break | ||
13577 | fi | ||
13578 | done | ||
13579 | if ${ac_cv_search_DH_set_length+:} false; then : | ||
13580 | |||
13581 | else | ||
13582 | ac_cv_search_DH_set_length=no | ||
13583 | fi | ||
13584 | rm conftest.$ac_ext | ||
13585 | LIBS=$ac_func_search_save_LIBS | ||
13586 | fi | ||
13587 | { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_DH_set_length" >&5 | ||
13588 | $as_echo "$ac_cv_search_DH_set_length" >&6; } | ||
13589 | ac_res=$ac_cv_search_DH_set_length | ||
13590 | if test "$ac_res" != no; then : | ||
13591 | test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" | ||
13592 | |||
13593 | $as_echo "#define HAVE_DH_SET_LENGTH 1" >>confdefs.h | ||
13594 | |||
13595 | fi | ||
13596 | |||
13597 | { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing DH_set0_pqg" >&5 | ||
13598 | $as_echo_n "checking for library containing DH_set0_pqg... " >&6; } | ||
13599 | if ${ac_cv_search_DH_set0_pqg+:} false; then : | ||
13600 | $as_echo_n "(cached) " >&6 | ||
13601 | else | ||
13602 | ac_func_search_save_LIBS=$LIBS | ||
13603 | cat confdefs.h - <<_ACEOF >conftest.$ac_ext | ||
13604 | /* end confdefs.h. */ | ||
13605 | |||
13606 | /* Override any GCC internal prototype to avoid an error. | ||
13607 | Use char because int might match the return type of a GCC | ||
13608 | builtin and then its argument prototype would still apply. */ | ||
13609 | #ifdef __cplusplus | ||
13610 | extern "C" | ||
13611 | #endif | ||
13612 | char DH_set0_pqg (); | ||
13613 | int | ||
13614 | main () | ||
13615 | { | ||
13616 | return DH_set0_pqg (); | ||
13617 | ; | ||
13618 | return 0; | ||
13619 | } | ||
13620 | _ACEOF | ||
13621 | for ac_lib in '' crypto; do | ||
13622 | if test -z "$ac_lib"; then | ||
13623 | ac_res="none required" | ||
13624 | else | ||
13625 | ac_res=-l$ac_lib | ||
13626 | LIBS="-l$ac_lib $ac_func_search_save_LIBS" | ||
13627 | fi | ||
13628 | if ac_fn_c_try_link "$LINENO"; then : | ||
13629 | ac_cv_search_DH_set0_pqg=$ac_res | ||
13630 | fi | ||
13631 | rm -f core conftest.err conftest.$ac_objext \ | ||
13632 | conftest$ac_exeext | ||
13633 | if ${ac_cv_search_DH_set0_pqg+:} false; then : | ||
13634 | break | ||
13635 | fi | ||
13636 | done | ||
13637 | if ${ac_cv_search_DH_set0_pqg+:} false; then : | ||
13638 | |||
13639 | else | ||
13640 | ac_cv_search_DH_set0_pqg=no | ||
13641 | fi | ||
13642 | rm conftest.$ac_ext | ||
13643 | LIBS=$ac_func_search_save_LIBS | ||
13644 | fi | ||
13645 | { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_DH_set0_pqg" >&5 | ||
13646 | $as_echo "$ac_cv_search_DH_set0_pqg" >&6; } | ||
13647 | ac_res=$ac_cv_search_DH_set0_pqg | ||
13648 | if test "$ac_res" != no; then : | ||
13649 | test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" | ||
13650 | |||
13651 | $as_echo "#define HAVE_DH_SET0_PQG 1" >>confdefs.h | ||
13652 | |||
13653 | fi | ||
13654 | |||
13655 | |||
13656 | { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing DSA_get0_key" >&5 | ||
13657 | $as_echo_n "checking for library containing DSA_get0_key... " >&6; } | ||
13658 | if ${ac_cv_search_DSA_get0_key+:} false; then : | ||
13659 | $as_echo_n "(cached) " >&6 | ||
13660 | else | ||
13661 | ac_func_search_save_LIBS=$LIBS | ||
13662 | cat confdefs.h - <<_ACEOF >conftest.$ac_ext | ||
13663 | /* end confdefs.h. */ | ||
13664 | |||
13665 | /* Override any GCC internal prototype to avoid an error. | ||
13666 | Use char because int might match the return type of a GCC | ||
13667 | builtin and then its argument prototype would still apply. */ | ||
13668 | #ifdef __cplusplus | ||
13669 | extern "C" | ||
13670 | #endif | ||
13671 | char DSA_get0_key (); | ||
13672 | int | ||
13673 | main () | ||
13674 | { | ||
13675 | return DSA_get0_key (); | ||
13676 | ; | ||
13677 | return 0; | ||
13678 | } | ||
13679 | _ACEOF | ||
13680 | for ac_lib in '' crypto; do | ||
13681 | if test -z "$ac_lib"; then | ||
13682 | ac_res="none required" | ||
13683 | else | ||
13684 | ac_res=-l$ac_lib | ||
13685 | LIBS="-l$ac_lib $ac_func_search_save_LIBS" | ||
13686 | fi | ||
13687 | if ac_fn_c_try_link "$LINENO"; then : | ||
13688 | ac_cv_search_DSA_get0_key=$ac_res | ||
13689 | fi | ||
13690 | rm -f core conftest.err conftest.$ac_objext \ | ||
13691 | conftest$ac_exeext | ||
13692 | if ${ac_cv_search_DSA_get0_key+:} false; then : | ||
13693 | break | ||
13694 | fi | ||
13695 | done | ||
13696 | if ${ac_cv_search_DSA_get0_key+:} false; then : | ||
13697 | |||
13698 | else | ||
13699 | ac_cv_search_DSA_get0_key=no | ||
13700 | fi | ||
13701 | rm conftest.$ac_ext | ||
13702 | LIBS=$ac_func_search_save_LIBS | ||
13703 | fi | ||
13704 | { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_DSA_get0_key" >&5 | ||
13705 | $as_echo "$ac_cv_search_DSA_get0_key" >&6; } | ||
13706 | ac_res=$ac_cv_search_DSA_get0_key | ||
13707 | if test "$ac_res" != no; then : | ||
13708 | test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" | ||
13709 | |||
13710 | $as_echo "#define HAVE_DSA_GET0_KEY 1" >>confdefs.h | ||
13711 | |||
13712 | fi | ||
13713 | |||
13714 | { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing DSA_get0_pqg" >&5 | ||
13715 | $as_echo_n "checking for library containing DSA_get0_pqg... " >&6; } | ||
13716 | if ${ac_cv_search_DSA_get0_pqg+:} false; then : | ||
13717 | $as_echo_n "(cached) " >&6 | ||
13718 | else | ||
13719 | ac_func_search_save_LIBS=$LIBS | ||
13720 | cat confdefs.h - <<_ACEOF >conftest.$ac_ext | ||
13721 | /* end confdefs.h. */ | ||
13722 | |||
13723 | /* Override any GCC internal prototype to avoid an error. | ||
13724 | Use char because int might match the return type of a GCC | ||
13725 | builtin and then its argument prototype would still apply. */ | ||
13726 | #ifdef __cplusplus | ||
13727 | extern "C" | ||
13728 | #endif | ||
13729 | char DSA_get0_pqg (); | ||
13730 | int | ||
13731 | main () | ||
13732 | { | ||
13733 | return DSA_get0_pqg (); | ||
13734 | ; | ||
13735 | return 0; | ||
13736 | } | ||
13737 | _ACEOF | ||
13738 | for ac_lib in '' crypto; do | ||
13739 | if test -z "$ac_lib"; then | ||
13740 | ac_res="none required" | ||
13741 | else | ||
13742 | ac_res=-l$ac_lib | ||
13743 | LIBS="-l$ac_lib $ac_func_search_save_LIBS" | ||
13744 | fi | ||
13745 | if ac_fn_c_try_link "$LINENO"; then : | ||
13746 | ac_cv_search_DSA_get0_pqg=$ac_res | ||
13747 | fi | ||
13748 | rm -f core conftest.err conftest.$ac_objext \ | ||
13749 | conftest$ac_exeext | ||
13750 | if ${ac_cv_search_DSA_get0_pqg+:} false; then : | ||
13751 | break | ||
13752 | fi | ||
13753 | done | ||
13754 | if ${ac_cv_search_DSA_get0_pqg+:} false; then : | ||
13755 | |||
13756 | else | ||
13757 | ac_cv_search_DSA_get0_pqg=no | ||
13758 | fi | ||
13759 | rm conftest.$ac_ext | ||
13760 | LIBS=$ac_func_search_save_LIBS | ||
13761 | fi | ||
13762 | { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_DSA_get0_pqg" >&5 | ||
13763 | $as_echo "$ac_cv_search_DSA_get0_pqg" >&6; } | ||
13764 | ac_res=$ac_cv_search_DSA_get0_pqg | ||
13765 | if test "$ac_res" != no; then : | ||
13766 | test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" | ||
13767 | |||
13768 | $as_echo "#define HAVE_DSA_GET0_PQG 1" >>confdefs.h | ||
13769 | |||
13770 | fi | ||
13771 | |||
13772 | { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing DSA_set0_key" >&5 | ||
13773 | $as_echo_n "checking for library containing DSA_set0_key... " >&6; } | ||
13774 | if ${ac_cv_search_DSA_set0_key+:} false; then : | ||
13775 | $as_echo_n "(cached) " >&6 | ||
13776 | else | ||
13777 | ac_func_search_save_LIBS=$LIBS | ||
13778 | cat confdefs.h - <<_ACEOF >conftest.$ac_ext | ||
13779 | /* end confdefs.h. */ | ||
13780 | |||
13781 | /* Override any GCC internal prototype to avoid an error. | ||
13782 | Use char because int might match the return type of a GCC | ||
13783 | builtin and then its argument prototype would still apply. */ | ||
13784 | #ifdef __cplusplus | ||
13785 | extern "C" | ||
13786 | #endif | ||
13787 | char DSA_set0_key (); | ||
13788 | int | ||
13789 | main () | ||
13790 | { | ||
13791 | return DSA_set0_key (); | ||
13792 | ; | ||
13793 | return 0; | ||
13794 | } | ||
13795 | _ACEOF | ||
13796 | for ac_lib in '' crypto; do | ||
13797 | if test -z "$ac_lib"; then | ||
13798 | ac_res="none required" | ||
13799 | else | ||
13800 | ac_res=-l$ac_lib | ||
13801 | LIBS="-l$ac_lib $ac_func_search_save_LIBS" | ||
13802 | fi | ||
13803 | if ac_fn_c_try_link "$LINENO"; then : | ||
13804 | ac_cv_search_DSA_set0_key=$ac_res | ||
13805 | fi | ||
13806 | rm -f core conftest.err conftest.$ac_objext \ | ||
13807 | conftest$ac_exeext | ||
13808 | if ${ac_cv_search_DSA_set0_key+:} false; then : | ||
13809 | break | ||
13810 | fi | ||
13811 | done | ||
13812 | if ${ac_cv_search_DSA_set0_key+:} false; then : | ||
13813 | |||
13814 | else | ||
13815 | ac_cv_search_DSA_set0_key=no | ||
13816 | fi | ||
13817 | rm conftest.$ac_ext | ||
13818 | LIBS=$ac_func_search_save_LIBS | ||
13819 | fi | ||
13820 | { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_DSA_set0_key" >&5 | ||
13821 | $as_echo "$ac_cv_search_DSA_set0_key" >&6; } | ||
13822 | ac_res=$ac_cv_search_DSA_set0_key | ||
13823 | if test "$ac_res" != no; then : | ||
13824 | test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" | ||
13825 | |||
13826 | $as_echo "#define HAVE_DSA_SET0_KEY 1" >>confdefs.h | ||
13827 | |||
13828 | fi | ||
13829 | |||
13830 | { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing DSA_set0_pqg" >&5 | ||
13831 | $as_echo_n "checking for library containing DSA_set0_pqg... " >&6; } | ||
13832 | if ${ac_cv_search_DSA_set0_pqg+:} false; then : | ||
13833 | $as_echo_n "(cached) " >&6 | ||
13834 | else | ||
13835 | ac_func_search_save_LIBS=$LIBS | ||
13836 | cat confdefs.h - <<_ACEOF >conftest.$ac_ext | ||
13837 | /* end confdefs.h. */ | ||
13838 | |||
13839 | /* Override any GCC internal prototype to avoid an error. | ||
13840 | Use char because int might match the return type of a GCC | ||
13841 | builtin and then its argument prototype would still apply. */ | ||
13842 | #ifdef __cplusplus | ||
13843 | extern "C" | ||
13844 | #endif | ||
13845 | char DSA_set0_pqg (); | ||
13846 | int | ||
13847 | main () | ||
13848 | { | ||
13849 | return DSA_set0_pqg (); | ||
13850 | ; | ||
13851 | return 0; | ||
13852 | } | ||
13853 | _ACEOF | ||
13854 | for ac_lib in '' crypto; do | ||
13855 | if test -z "$ac_lib"; then | ||
13856 | ac_res="none required" | ||
13857 | else | ||
13858 | ac_res=-l$ac_lib | ||
13859 | LIBS="-l$ac_lib $ac_func_search_save_LIBS" | ||
13860 | fi | ||
13861 | if ac_fn_c_try_link "$LINENO"; then : | ||
13862 | ac_cv_search_DSA_set0_pqg=$ac_res | ||
13863 | fi | ||
13864 | rm -f core conftest.err conftest.$ac_objext \ | ||
13865 | conftest$ac_exeext | ||
13866 | if ${ac_cv_search_DSA_set0_pqg+:} false; then : | ||
13867 | break | ||
13868 | fi | ||
13869 | done | ||
13870 | if ${ac_cv_search_DSA_set0_pqg+:} false; then : | ||
13871 | |||
13872 | else | ||
13873 | ac_cv_search_DSA_set0_pqg=no | ||
13874 | fi | ||
13875 | rm conftest.$ac_ext | ||
13876 | LIBS=$ac_func_search_save_LIBS | ||
13877 | fi | ||
13878 | { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_DSA_set0_pqg" >&5 | ||
13879 | $as_echo "$ac_cv_search_DSA_set0_pqg" >&6; } | ||
13880 | ac_res=$ac_cv_search_DSA_set0_pqg | ||
13881 | if test "$ac_res" != no; then : | ||
13882 | test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" | ||
13883 | |||
13884 | $as_echo "#define HAVE_DSA_SET0_PQG 1" >>confdefs.h | ||
13885 | |||
13886 | fi | ||
13887 | |||
13888 | |||
13889 | { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing DSA_SIG_get0" >&5 | ||
13890 | $as_echo_n "checking for library containing DSA_SIG_get0... " >&6; } | ||
13891 | if ${ac_cv_search_DSA_SIG_get0+:} false; then : | ||
13892 | $as_echo_n "(cached) " >&6 | ||
13893 | else | ||
13894 | ac_func_search_save_LIBS=$LIBS | ||
13895 | cat confdefs.h - <<_ACEOF >conftest.$ac_ext | ||
13896 | /* end confdefs.h. */ | ||
13897 | |||
13898 | /* Override any GCC internal prototype to avoid an error. | ||
13899 | Use char because int might match the return type of a GCC | ||
13900 | builtin and then its argument prototype would still apply. */ | ||
13901 | #ifdef __cplusplus | ||
13902 | extern "C" | ||
13903 | #endif | ||
13904 | char DSA_SIG_get0 (); | ||
13905 | int | ||
13906 | main () | ||
13907 | { | ||
13908 | return DSA_SIG_get0 (); | ||
13909 | ; | ||
13910 | return 0; | ||
13911 | } | ||
13912 | _ACEOF | ||
13913 | for ac_lib in '' crypto; do | ||
13914 | if test -z "$ac_lib"; then | ||
13915 | ac_res="none required" | ||
13916 | else | ||
13917 | ac_res=-l$ac_lib | ||
13918 | LIBS="-l$ac_lib $ac_func_search_save_LIBS" | ||
13919 | fi | ||
13920 | if ac_fn_c_try_link "$LINENO"; then : | ||
13921 | ac_cv_search_DSA_SIG_get0=$ac_res | ||
13922 | fi | ||
13923 | rm -f core conftest.err conftest.$ac_objext \ | ||
13924 | conftest$ac_exeext | ||
13925 | if ${ac_cv_search_DSA_SIG_get0+:} false; then : | ||
13926 | break | ||
13927 | fi | ||
13928 | done | ||
13929 | if ${ac_cv_search_DSA_SIG_get0+:} false; then : | ||
13930 | |||
13931 | else | ||
13932 | ac_cv_search_DSA_SIG_get0=no | ||
13933 | fi | ||
13934 | rm conftest.$ac_ext | ||
13935 | LIBS=$ac_func_search_save_LIBS | ||
13936 | fi | ||
13937 | { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_DSA_SIG_get0" >&5 | ||
13938 | $as_echo "$ac_cv_search_DSA_SIG_get0" >&6; } | ||
13939 | ac_res=$ac_cv_search_DSA_SIG_get0 | ||
13940 | if test "$ac_res" != no; then : | ||
13941 | test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" | ||
13942 | |||
13943 | $as_echo "#define HAVE_DSA_SIG_GET0 1" >>confdefs.h | ||
13944 | |||
13945 | fi | ||
13946 | |||
13947 | { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing DSA_SIG_set0" >&5 | ||
13948 | $as_echo_n "checking for library containing DSA_SIG_set0... " >&6; } | ||
13949 | if ${ac_cv_search_DSA_SIG_set0+:} false; then : | ||
13950 | $as_echo_n "(cached) " >&6 | ||
13951 | else | ||
13952 | ac_func_search_save_LIBS=$LIBS | ||
13953 | cat confdefs.h - <<_ACEOF >conftest.$ac_ext | ||
13954 | /* end confdefs.h. */ | ||
13955 | |||
13956 | /* Override any GCC internal prototype to avoid an error. | ||
13957 | Use char because int might match the return type of a GCC | ||
13958 | builtin and then its argument prototype would still apply. */ | ||
13959 | #ifdef __cplusplus | ||
13960 | extern "C" | ||
13961 | #endif | ||
13962 | char DSA_SIG_set0 (); | ||
13963 | int | ||
13964 | main () | ||
13965 | { | ||
13966 | return DSA_SIG_set0 (); | ||
13967 | ; | ||
13968 | return 0; | ||
13969 | } | ||
13970 | _ACEOF | ||
13971 | for ac_lib in '' crypto; do | ||
13972 | if test -z "$ac_lib"; then | ||
13973 | ac_res="none required" | ||
13974 | else | ||
13975 | ac_res=-l$ac_lib | ||
13976 | LIBS="-l$ac_lib $ac_func_search_save_LIBS" | ||
13977 | fi | ||
13978 | if ac_fn_c_try_link "$LINENO"; then : | ||
13979 | ac_cv_search_DSA_SIG_set0=$ac_res | ||
13980 | fi | ||
13981 | rm -f core conftest.err conftest.$ac_objext \ | ||
13982 | conftest$ac_exeext | ||
13983 | if ${ac_cv_search_DSA_SIG_set0+:} false; then : | ||
13984 | break | ||
13985 | fi | ||
13986 | done | ||
13987 | if ${ac_cv_search_DSA_SIG_set0+:} false; then : | ||
13988 | |||
13989 | else | ||
13990 | ac_cv_search_DSA_SIG_set0=no | ||
13991 | fi | ||
13992 | rm conftest.$ac_ext | ||
13993 | LIBS=$ac_func_search_save_LIBS | ||
13994 | fi | ||
13995 | { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_DSA_SIG_set0" >&5 | ||
13996 | $as_echo "$ac_cv_search_DSA_SIG_set0" >&6; } | ||
13997 | ac_res=$ac_cv_search_DSA_SIG_set0 | ||
13998 | if test "$ac_res" != no; then : | ||
13999 | test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" | ||
14000 | |||
14001 | $as_echo "#define HAVE_DSA_SIG_SET0 1" >>confdefs.h | ||
14002 | |||
14003 | fi | ||
14004 | |||
14005 | |||
14006 | { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing ECDSA_SIG_get0" >&5 | ||
14007 | $as_echo_n "checking for library containing ECDSA_SIG_get0... " >&6; } | ||
14008 | if ${ac_cv_search_ECDSA_SIG_get0+:} false; then : | ||
14009 | $as_echo_n "(cached) " >&6 | ||
14010 | else | ||
14011 | ac_func_search_save_LIBS=$LIBS | ||
14012 | cat confdefs.h - <<_ACEOF >conftest.$ac_ext | ||
14013 | /* end confdefs.h. */ | ||
14014 | |||
14015 | /* Override any GCC internal prototype to avoid an error. | ||
14016 | Use char because int might match the return type of a GCC | ||
14017 | builtin and then its argument prototype would still apply. */ | ||
14018 | #ifdef __cplusplus | ||
14019 | extern "C" | ||
14020 | #endif | ||
14021 | char ECDSA_SIG_get0 (); | ||
14022 | int | ||
14023 | main () | ||
14024 | { | ||
14025 | return ECDSA_SIG_get0 (); | ||
14026 | ; | ||
14027 | return 0; | ||
14028 | } | ||
14029 | _ACEOF | ||
14030 | for ac_lib in '' crypto; do | ||
14031 | if test -z "$ac_lib"; then | ||
14032 | ac_res="none required" | ||
14033 | else | ||
14034 | ac_res=-l$ac_lib | ||
14035 | LIBS="-l$ac_lib $ac_func_search_save_LIBS" | ||
14036 | fi | ||
14037 | if ac_fn_c_try_link "$LINENO"; then : | ||
14038 | ac_cv_search_ECDSA_SIG_get0=$ac_res | ||
14039 | fi | ||
14040 | rm -f core conftest.err conftest.$ac_objext \ | ||
14041 | conftest$ac_exeext | ||
14042 | if ${ac_cv_search_ECDSA_SIG_get0+:} false; then : | ||
14043 | break | ||
14044 | fi | ||
14045 | done | ||
14046 | if ${ac_cv_search_ECDSA_SIG_get0+:} false; then : | ||
14047 | |||
14048 | else | ||
14049 | ac_cv_search_ECDSA_SIG_get0=no | ||
14050 | fi | ||
14051 | rm conftest.$ac_ext | ||
14052 | LIBS=$ac_func_search_save_LIBS | ||
14053 | fi | ||
14054 | { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_ECDSA_SIG_get0" >&5 | ||
14055 | $as_echo "$ac_cv_search_ECDSA_SIG_get0" >&6; } | ||
14056 | ac_res=$ac_cv_search_ECDSA_SIG_get0 | ||
14057 | if test "$ac_res" != no; then : | ||
14058 | test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" | ||
14059 | |||
14060 | $as_echo "#define HAVE_ECDSA_SIG_GET0 1" >>confdefs.h | ||
14061 | |||
14062 | fi | ||
14063 | |||
14064 | { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing ECDSA_SIG_set0" >&5 | ||
14065 | $as_echo_n "checking for library containing ECDSA_SIG_set0... " >&6; } | ||
14066 | if ${ac_cv_search_ECDSA_SIG_set0+:} false; then : | ||
14067 | $as_echo_n "(cached) " >&6 | ||
14068 | else | ||
14069 | ac_func_search_save_LIBS=$LIBS | ||
14070 | cat confdefs.h - <<_ACEOF >conftest.$ac_ext | ||
14071 | /* end confdefs.h. */ | ||
14072 | |||
14073 | /* Override any GCC internal prototype to avoid an error. | ||
14074 | Use char because int might match the return type of a GCC | ||
14075 | builtin and then its argument prototype would still apply. */ | ||
14076 | #ifdef __cplusplus | ||
14077 | extern "C" | ||
14078 | #endif | ||
14079 | char ECDSA_SIG_set0 (); | ||
14080 | int | ||
14081 | main () | ||
14082 | { | ||
14083 | return ECDSA_SIG_set0 (); | ||
14084 | ; | ||
14085 | return 0; | ||
14086 | } | ||
14087 | _ACEOF | ||
14088 | for ac_lib in '' crypto; do | ||
14089 | if test -z "$ac_lib"; then | ||
14090 | ac_res="none required" | ||
14091 | else | ||
14092 | ac_res=-l$ac_lib | ||
14093 | LIBS="-l$ac_lib $ac_func_search_save_LIBS" | ||
14094 | fi | ||
14095 | if ac_fn_c_try_link "$LINENO"; then : | ||
14096 | ac_cv_search_ECDSA_SIG_set0=$ac_res | ||
14097 | fi | ||
14098 | rm -f core conftest.err conftest.$ac_objext \ | ||
14099 | conftest$ac_exeext | ||
14100 | if ${ac_cv_search_ECDSA_SIG_set0+:} false; then : | ||
14101 | break | ||
14102 | fi | ||
14103 | done | ||
14104 | if ${ac_cv_search_ECDSA_SIG_set0+:} false; then : | ||
14105 | |||
14106 | else | ||
14107 | ac_cv_search_ECDSA_SIG_set0=no | ||
14108 | fi | ||
14109 | rm conftest.$ac_ext | ||
14110 | LIBS=$ac_func_search_save_LIBS | ||
14111 | fi | ||
14112 | { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_ECDSA_SIG_set0" >&5 | ||
14113 | $as_echo "$ac_cv_search_ECDSA_SIG_set0" >&6; } | ||
14114 | ac_res=$ac_cv_search_ECDSA_SIG_set0 | ||
14115 | if test "$ac_res" != no; then : | ||
14116 | test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" | ||
14117 | |||
14118 | $as_echo "#define HAVE_ECDSA_SIG_SET0 1" >>confdefs.h | ||
14119 | |||
14120 | fi | ||
14121 | |||
14122 | |||
14123 | { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing EVP_CIPHER_CTX_iv" >&5 | ||
14124 | $as_echo_n "checking for library containing EVP_CIPHER_CTX_iv... " >&6; } | ||
14125 | if ${ac_cv_search_EVP_CIPHER_CTX_iv+:} false; then : | ||
14126 | $as_echo_n "(cached) " >&6 | ||
14127 | else | ||
14128 | ac_func_search_save_LIBS=$LIBS | ||
14129 | cat confdefs.h - <<_ACEOF >conftest.$ac_ext | ||
14130 | /* end confdefs.h. */ | ||
14131 | |||
14132 | /* Override any GCC internal prototype to avoid an error. | ||
14133 | Use char because int might match the return type of a GCC | ||
14134 | builtin and then its argument prototype would still apply. */ | ||
14135 | #ifdef __cplusplus | ||
14136 | extern "C" | ||
14137 | #endif | ||
14138 | char EVP_CIPHER_CTX_iv (); | ||
14139 | int | ||
14140 | main () | ||
14141 | { | ||
14142 | return EVP_CIPHER_CTX_iv (); | ||
14143 | ; | ||
14144 | return 0; | ||
14145 | } | ||
14146 | _ACEOF | ||
14147 | for ac_lib in '' crypto; do | ||
14148 | if test -z "$ac_lib"; then | ||
14149 | ac_res="none required" | ||
14150 | else | ||
14151 | ac_res=-l$ac_lib | ||
14152 | LIBS="-l$ac_lib $ac_func_search_save_LIBS" | ||
14153 | fi | ||
14154 | if ac_fn_c_try_link "$LINENO"; then : | ||
14155 | ac_cv_search_EVP_CIPHER_CTX_iv=$ac_res | ||
14156 | fi | ||
14157 | rm -f core conftest.err conftest.$ac_objext \ | ||
14158 | conftest$ac_exeext | ||
14159 | if ${ac_cv_search_EVP_CIPHER_CTX_iv+:} false; then : | ||
14160 | break | ||
14161 | fi | ||
14162 | done | ||
14163 | if ${ac_cv_search_EVP_CIPHER_CTX_iv+:} false; then : | ||
14164 | |||
14165 | else | ||
14166 | ac_cv_search_EVP_CIPHER_CTX_iv=no | ||
14167 | fi | ||
14168 | rm conftest.$ac_ext | ||
14169 | LIBS=$ac_func_search_save_LIBS | ||
14170 | fi | ||
14171 | { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_EVP_CIPHER_CTX_iv" >&5 | ||
14172 | $as_echo "$ac_cv_search_EVP_CIPHER_CTX_iv" >&6; } | ||
14173 | ac_res=$ac_cv_search_EVP_CIPHER_CTX_iv | ||
14174 | if test "$ac_res" != no; then : | ||
14175 | test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" | ||
14176 | |||
14177 | $as_echo "#define HAVE_EVP_CIPHER_CTX_IV 1" >>confdefs.h | ||
14178 | |||
14179 | fi | ||
14180 | |||
14181 | { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing EVP_CIPHER_CTX_iv_noconst" >&5 | ||
14182 | $as_echo_n "checking for library containing EVP_CIPHER_CTX_iv_noconst... " >&6; } | ||
14183 | if ${ac_cv_search_EVP_CIPHER_CTX_iv_noconst+:} false; then : | ||
14184 | $as_echo_n "(cached) " >&6 | ||
14185 | else | ||
14186 | ac_func_search_save_LIBS=$LIBS | ||
14187 | cat confdefs.h - <<_ACEOF >conftest.$ac_ext | ||
14188 | /* end confdefs.h. */ | ||
14189 | |||
14190 | /* Override any GCC internal prototype to avoid an error. | ||
14191 | Use char because int might match the return type of a GCC | ||
14192 | builtin and then its argument prototype would still apply. */ | ||
14193 | #ifdef __cplusplus | ||
14194 | extern "C" | ||
14195 | #endif | ||
14196 | char EVP_CIPHER_CTX_iv_noconst (); | ||
14197 | int | ||
14198 | main () | ||
14199 | { | ||
14200 | return EVP_CIPHER_CTX_iv_noconst (); | ||
14201 | ; | ||
14202 | return 0; | ||
14203 | } | ||
14204 | _ACEOF | ||
14205 | for ac_lib in '' crypto; do | ||
14206 | if test -z "$ac_lib"; then | ||
14207 | ac_res="none required" | ||
14208 | else | ||
14209 | ac_res=-l$ac_lib | ||
14210 | LIBS="-l$ac_lib $ac_func_search_save_LIBS" | ||
14211 | fi | ||
14212 | if ac_fn_c_try_link "$LINENO"; then : | ||
14213 | ac_cv_search_EVP_CIPHER_CTX_iv_noconst=$ac_res | ||
14214 | fi | ||
14215 | rm -f core conftest.err conftest.$ac_objext \ | ||
14216 | conftest$ac_exeext | ||
14217 | if ${ac_cv_search_EVP_CIPHER_CTX_iv_noconst+:} false; then : | ||
14218 | break | ||
14219 | fi | ||
14220 | done | ||
14221 | if ${ac_cv_search_EVP_CIPHER_CTX_iv_noconst+:} false; then : | ||
14222 | |||
14223 | else | ||
14224 | ac_cv_search_EVP_CIPHER_CTX_iv_noconst=no | ||
14225 | fi | ||
14226 | rm conftest.$ac_ext | ||
14227 | LIBS=$ac_func_search_save_LIBS | ||
14228 | fi | ||
14229 | { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_EVP_CIPHER_CTX_iv_noconst" >&5 | ||
14230 | $as_echo "$ac_cv_search_EVP_CIPHER_CTX_iv_noconst" >&6; } | ||
14231 | ac_res=$ac_cv_search_EVP_CIPHER_CTX_iv_noconst | ||
14232 | if test "$ac_res" != no; then : | ||
14233 | test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" | ||
14234 | |||
14235 | $as_echo "#define HAVE_EVP_CIPHER_CTX_IV_NOCONST 1" >>confdefs.h | ||
14236 | |||
14237 | fi | ||
14238 | |||
14239 | { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing EVP_CIPHER_CTX_get_iv" >&5 | ||
14240 | $as_echo_n "checking for library containing EVP_CIPHER_CTX_get_iv... " >&6; } | ||
14241 | if ${ac_cv_search_EVP_CIPHER_CTX_get_iv+:} false; then : | ||
14242 | $as_echo_n "(cached) " >&6 | ||
14243 | else | ||
14244 | ac_func_search_save_LIBS=$LIBS | ||
14245 | cat confdefs.h - <<_ACEOF >conftest.$ac_ext | ||
14246 | /* end confdefs.h. */ | ||
14247 | |||
14248 | /* Override any GCC internal prototype to avoid an error. | ||
14249 | Use char because int might match the return type of a GCC | ||
14250 | builtin and then its argument prototype would still apply. */ | ||
14251 | #ifdef __cplusplus | ||
14252 | extern "C" | ||
14253 | #endif | ||
14254 | char EVP_CIPHER_CTX_get_iv (); | ||
14255 | int | ||
14256 | main () | ||
14257 | { | ||
14258 | return EVP_CIPHER_CTX_get_iv (); | ||
14259 | ; | ||
14260 | return 0; | ||
14261 | } | ||
14262 | _ACEOF | ||
14263 | for ac_lib in '' crypto; do | ||
14264 | if test -z "$ac_lib"; then | ||
14265 | ac_res="none required" | ||
14266 | else | ||
14267 | ac_res=-l$ac_lib | ||
14268 | LIBS="-l$ac_lib $ac_func_search_save_LIBS" | ||
14269 | fi | ||
14270 | if ac_fn_c_try_link "$LINENO"; then : | ||
14271 | ac_cv_search_EVP_CIPHER_CTX_get_iv=$ac_res | ||
14272 | fi | ||
14273 | rm -f core conftest.err conftest.$ac_objext \ | ||
14274 | conftest$ac_exeext | ||
14275 | if ${ac_cv_search_EVP_CIPHER_CTX_get_iv+:} false; then : | ||
14276 | break | ||
14277 | fi | ||
14278 | done | ||
14279 | if ${ac_cv_search_EVP_CIPHER_CTX_get_iv+:} false; then : | ||
14280 | |||
14281 | else | ||
14282 | ac_cv_search_EVP_CIPHER_CTX_get_iv=no | ||
14283 | fi | ||
14284 | rm conftest.$ac_ext | ||
14285 | LIBS=$ac_func_search_save_LIBS | ||
14286 | fi | ||
14287 | { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_EVP_CIPHER_CTX_get_iv" >&5 | ||
14288 | $as_echo "$ac_cv_search_EVP_CIPHER_CTX_get_iv" >&6; } | ||
14289 | ac_res=$ac_cv_search_EVP_CIPHER_CTX_get_iv | ||
14290 | if test "$ac_res" != no; then : | ||
14291 | test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" | ||
14292 | |||
14293 | $as_echo "#define HAVE_EVP_CIPHER_CTX_GET_IV 1" >>confdefs.h | ||
14294 | |||
14295 | fi | ||
14296 | |||
14297 | { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing EVP_CIPHER_CTX_set_iv" >&5 | ||
14298 | $as_echo_n "checking for library containing EVP_CIPHER_CTX_set_iv... " >&6; } | ||
14299 | if ${ac_cv_search_EVP_CIPHER_CTX_set_iv+:} false; then : | ||
14300 | $as_echo_n "(cached) " >&6 | ||
14301 | else | ||
14302 | ac_func_search_save_LIBS=$LIBS | ||
14303 | cat confdefs.h - <<_ACEOF >conftest.$ac_ext | ||
14304 | /* end confdefs.h. */ | ||
14305 | |||
14306 | /* Override any GCC internal prototype to avoid an error. | ||
14307 | Use char because int might match the return type of a GCC | ||
14308 | builtin and then its argument prototype would still apply. */ | ||
14309 | #ifdef __cplusplus | ||
14310 | extern "C" | ||
14311 | #endif | ||
14312 | char EVP_CIPHER_CTX_set_iv (); | ||
14313 | int | ||
14314 | main () | ||
14315 | { | ||
14316 | return EVP_CIPHER_CTX_set_iv (); | ||
14317 | ; | ||
14318 | return 0; | ||
14319 | } | ||
14320 | _ACEOF | ||
14321 | for ac_lib in '' crypto; do | ||
14322 | if test -z "$ac_lib"; then | ||
14323 | ac_res="none required" | ||
14324 | else | ||
14325 | ac_res=-l$ac_lib | ||
14326 | LIBS="-l$ac_lib $ac_func_search_save_LIBS" | ||
14327 | fi | ||
14328 | if ac_fn_c_try_link "$LINENO"; then : | ||
14329 | ac_cv_search_EVP_CIPHER_CTX_set_iv=$ac_res | ||
14330 | fi | ||
14331 | rm -f core conftest.err conftest.$ac_objext \ | ||
14332 | conftest$ac_exeext | ||
14333 | if ${ac_cv_search_EVP_CIPHER_CTX_set_iv+:} false; then : | ||
14334 | break | ||
14335 | fi | ||
14336 | done | ||
14337 | if ${ac_cv_search_EVP_CIPHER_CTX_set_iv+:} false; then : | ||
14338 | |||
14339 | else | ||
14340 | ac_cv_search_EVP_CIPHER_CTX_set_iv=no | ||
14341 | fi | ||
14342 | rm conftest.$ac_ext | ||
14343 | LIBS=$ac_func_search_save_LIBS | ||
14344 | fi | ||
14345 | { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_EVP_CIPHER_CTX_set_iv" >&5 | ||
14346 | $as_echo "$ac_cv_search_EVP_CIPHER_CTX_set_iv" >&6; } | ||
14347 | ac_res=$ac_cv_search_EVP_CIPHER_CTX_set_iv | ||
14348 | if test "$ac_res" != no; then : | ||
14349 | test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" | ||
14350 | |||
14351 | $as_echo "#define HAVE_EVP_CIPHER_CTX_GET_IV 1" >>confdefs.h | ||
14352 | |||
14353 | fi | ||
14354 | |||
14355 | |||
14356 | { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing RSA_get0_crt_params" >&5 | ||
14357 | $as_echo_n "checking for library containing RSA_get0_crt_params... " >&6; } | ||
14358 | if ${ac_cv_search_RSA_get0_crt_params+:} false; then : | ||
14359 | $as_echo_n "(cached) " >&6 | ||
14360 | else | ||
14361 | ac_func_search_save_LIBS=$LIBS | ||
14362 | cat confdefs.h - <<_ACEOF >conftest.$ac_ext | ||
14363 | /* end confdefs.h. */ | ||
14364 | |||
14365 | /* Override any GCC internal prototype to avoid an error. | ||
14366 | Use char because int might match the return type of a GCC | ||
14367 | builtin and then its argument prototype would still apply. */ | ||
14368 | #ifdef __cplusplus | ||
14369 | extern "C" | ||
14370 | #endif | ||
14371 | char RSA_get0_crt_params (); | ||
14372 | int | ||
14373 | main () | ||
14374 | { | ||
14375 | return RSA_get0_crt_params (); | ||
14376 | ; | ||
14377 | return 0; | ||
14378 | } | ||
14379 | _ACEOF | ||
14380 | for ac_lib in '' crypto; do | ||
14381 | if test -z "$ac_lib"; then | ||
14382 | ac_res="none required" | ||
14383 | else | ||
14384 | ac_res=-l$ac_lib | ||
14385 | LIBS="-l$ac_lib $ac_func_search_save_LIBS" | ||
14386 | fi | ||
14387 | if ac_fn_c_try_link "$LINENO"; then : | ||
14388 | ac_cv_search_RSA_get0_crt_params=$ac_res | ||
14389 | fi | ||
14390 | rm -f core conftest.err conftest.$ac_objext \ | ||
14391 | conftest$ac_exeext | ||
14392 | if ${ac_cv_search_RSA_get0_crt_params+:} false; then : | ||
14393 | break | ||
14394 | fi | ||
14395 | done | ||
14396 | if ${ac_cv_search_RSA_get0_crt_params+:} false; then : | ||
14397 | |||
14398 | else | ||
14399 | ac_cv_search_RSA_get0_crt_params=no | ||
14400 | fi | ||
14401 | rm conftest.$ac_ext | ||
14402 | LIBS=$ac_func_search_save_LIBS | ||
14403 | fi | ||
14404 | { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_RSA_get0_crt_params" >&5 | ||
14405 | $as_echo "$ac_cv_search_RSA_get0_crt_params" >&6; } | ||
14406 | ac_res=$ac_cv_search_RSA_get0_crt_params | ||
14407 | if test "$ac_res" != no; then : | ||
14408 | test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" | ||
14409 | |||
14410 | $as_echo "#define HAVE_RSA_GET0_CRT_PARAMS 1" >>confdefs.h | ||
14411 | |||
14412 | fi | ||
14413 | |||
14414 | { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing RSA_get0_factors" >&5 | ||
14415 | $as_echo_n "checking for library containing RSA_get0_factors... " >&6; } | ||
14416 | if ${ac_cv_search_RSA_get0_factors+:} false; then : | ||
14417 | $as_echo_n "(cached) " >&6 | ||
14418 | else | ||
14419 | ac_func_search_save_LIBS=$LIBS | ||
14420 | cat confdefs.h - <<_ACEOF >conftest.$ac_ext | ||
14421 | /* end confdefs.h. */ | ||
14422 | |||
14423 | /* Override any GCC internal prototype to avoid an error. | ||
14424 | Use char because int might match the return type of a GCC | ||
14425 | builtin and then its argument prototype would still apply. */ | ||
14426 | #ifdef __cplusplus | ||
14427 | extern "C" | ||
14428 | #endif | ||
14429 | char RSA_get0_factors (); | ||
14430 | int | ||
14431 | main () | ||
14432 | { | ||
14433 | return RSA_get0_factors (); | ||
14434 | ; | ||
14435 | return 0; | ||
14436 | } | ||
14437 | _ACEOF | ||
14438 | for ac_lib in '' crypto; do | ||
14439 | if test -z "$ac_lib"; then | ||
14440 | ac_res="none required" | ||
14441 | else | ||
14442 | ac_res=-l$ac_lib | ||
14443 | LIBS="-l$ac_lib $ac_func_search_save_LIBS" | ||
14444 | fi | ||
14445 | if ac_fn_c_try_link "$LINENO"; then : | ||
14446 | ac_cv_search_RSA_get0_factors=$ac_res | ||
14447 | fi | ||
14448 | rm -f core conftest.err conftest.$ac_objext \ | ||
14449 | conftest$ac_exeext | ||
14450 | if ${ac_cv_search_RSA_get0_factors+:} false; then : | ||
14451 | break | ||
14452 | fi | ||
14453 | done | ||
14454 | if ${ac_cv_search_RSA_get0_factors+:} false; then : | ||
14455 | |||
14456 | else | ||
14457 | ac_cv_search_RSA_get0_factors=no | ||
14458 | fi | ||
14459 | rm conftest.$ac_ext | ||
14460 | LIBS=$ac_func_search_save_LIBS | ||
14461 | fi | ||
14462 | { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_RSA_get0_factors" >&5 | ||
14463 | $as_echo "$ac_cv_search_RSA_get0_factors" >&6; } | ||
14464 | ac_res=$ac_cv_search_RSA_get0_factors | ||
14465 | if test "$ac_res" != no; then : | ||
14466 | test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" | ||
14467 | |||
14468 | $as_echo "#define HAVE_RSA_GET0_FACTORS 1" >>confdefs.h | ||
14469 | |||
14470 | fi | ||
14471 | |||
14472 | { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing RSA_get0_key" >&5 | ||
14473 | $as_echo_n "checking for library containing RSA_get0_key... " >&6; } | ||
14474 | if ${ac_cv_search_RSA_get0_key+:} false; then : | ||
14475 | $as_echo_n "(cached) " >&6 | ||
14476 | else | ||
14477 | ac_func_search_save_LIBS=$LIBS | ||
14478 | cat confdefs.h - <<_ACEOF >conftest.$ac_ext | ||
14479 | /* end confdefs.h. */ | ||
14480 | |||
14481 | /* Override any GCC internal prototype to avoid an error. | ||
14482 | Use char because int might match the return type of a GCC | ||
14483 | builtin and then its argument prototype would still apply. */ | ||
14484 | #ifdef __cplusplus | ||
14485 | extern "C" | ||
14486 | #endif | ||
14487 | char RSA_get0_key (); | ||
14488 | int | ||
14489 | main () | ||
14490 | { | ||
14491 | return RSA_get0_key (); | ||
14492 | ; | ||
14493 | return 0; | ||
14494 | } | ||
14495 | _ACEOF | ||
14496 | for ac_lib in '' crypto; do | ||
14497 | if test -z "$ac_lib"; then | ||
14498 | ac_res="none required" | ||
14499 | else | ||
14500 | ac_res=-l$ac_lib | ||
14501 | LIBS="-l$ac_lib $ac_func_search_save_LIBS" | ||
14502 | fi | ||
14503 | if ac_fn_c_try_link "$LINENO"; then : | ||
14504 | ac_cv_search_RSA_get0_key=$ac_res | ||
14505 | fi | ||
14506 | rm -f core conftest.err conftest.$ac_objext \ | ||
14507 | conftest$ac_exeext | ||
14508 | if ${ac_cv_search_RSA_get0_key+:} false; then : | ||
14509 | break | ||
14510 | fi | ||
14511 | done | ||
14512 | if ${ac_cv_search_RSA_get0_key+:} false; then : | ||
14513 | |||
14514 | else | ||
14515 | ac_cv_search_RSA_get0_key=no | ||
14516 | fi | ||
14517 | rm conftest.$ac_ext | ||
14518 | LIBS=$ac_func_search_save_LIBS | ||
14519 | fi | ||
14520 | { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_RSA_get0_key" >&5 | ||
14521 | $as_echo "$ac_cv_search_RSA_get0_key" >&6; } | ||
14522 | ac_res=$ac_cv_search_RSA_get0_key | ||
14523 | if test "$ac_res" != no; then : | ||
14524 | test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" | ||
14525 | |||
14526 | $as_echo "#define HAVE_RSA_GET0_KEY 1" >>confdefs.h | ||
14527 | |||
14528 | fi | ||
14529 | |||
14530 | { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing RSA_set0_crt_params" >&5 | ||
14531 | $as_echo_n "checking for library containing RSA_set0_crt_params... " >&6; } | ||
14532 | if ${ac_cv_search_RSA_set0_crt_params+:} false; then : | ||
14533 | $as_echo_n "(cached) " >&6 | ||
14534 | else | ||
14535 | ac_func_search_save_LIBS=$LIBS | ||
14536 | cat confdefs.h - <<_ACEOF >conftest.$ac_ext | ||
14537 | /* end confdefs.h. */ | ||
14538 | |||
14539 | /* Override any GCC internal prototype to avoid an error. | ||
14540 | Use char because int might match the return type of a GCC | ||
14541 | builtin and then its argument prototype would still apply. */ | ||
14542 | #ifdef __cplusplus | ||
14543 | extern "C" | ||
14544 | #endif | ||
14545 | char RSA_set0_crt_params (); | ||
14546 | int | ||
14547 | main () | ||
14548 | { | ||
14549 | return RSA_set0_crt_params (); | ||
14550 | ; | ||
14551 | return 0; | ||
14552 | } | ||
14553 | _ACEOF | ||
14554 | for ac_lib in '' crypto; do | ||
14555 | if test -z "$ac_lib"; then | ||
14556 | ac_res="none required" | ||
14557 | else | ||
14558 | ac_res=-l$ac_lib | ||
14559 | LIBS="-l$ac_lib $ac_func_search_save_LIBS" | ||
14560 | fi | ||
14561 | if ac_fn_c_try_link "$LINENO"; then : | ||
14562 | ac_cv_search_RSA_set0_crt_params=$ac_res | ||
14563 | fi | ||
14564 | rm -f core conftest.err conftest.$ac_objext \ | ||
14565 | conftest$ac_exeext | ||
14566 | if ${ac_cv_search_RSA_set0_crt_params+:} false; then : | ||
14567 | break | ||
14568 | fi | ||
14569 | done | ||
14570 | if ${ac_cv_search_RSA_set0_crt_params+:} false; then : | ||
14571 | |||
14572 | else | ||
14573 | ac_cv_search_RSA_set0_crt_params=no | ||
14574 | fi | ||
14575 | rm conftest.$ac_ext | ||
14576 | LIBS=$ac_func_search_save_LIBS | ||
14577 | fi | ||
14578 | { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_RSA_set0_crt_params" >&5 | ||
14579 | $as_echo "$ac_cv_search_RSA_set0_crt_params" >&6; } | ||
14580 | ac_res=$ac_cv_search_RSA_set0_crt_params | ||
14581 | if test "$ac_res" != no; then : | ||
14582 | test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" | ||
14583 | |||
14584 | $as_echo "#define HAVE_RSA_SET0_CRT_PARAMS 1" >>confdefs.h | ||
14585 | |||
14586 | fi | ||
14587 | |||
14588 | { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing RSA_set0_factors" >&5 | ||
14589 | $as_echo_n "checking for library containing RSA_set0_factors... " >&6; } | ||
14590 | if ${ac_cv_search_RSA_set0_factors+:} false; then : | ||
14591 | $as_echo_n "(cached) " >&6 | ||
14592 | else | ||
14593 | ac_func_search_save_LIBS=$LIBS | ||
14594 | cat confdefs.h - <<_ACEOF >conftest.$ac_ext | ||
14595 | /* end confdefs.h. */ | ||
14596 | |||
14597 | /* Override any GCC internal prototype to avoid an error. | ||
14598 | Use char because int might match the return type of a GCC | ||
14599 | builtin and then its argument prototype would still apply. */ | ||
14600 | #ifdef __cplusplus | ||
14601 | extern "C" | ||
14602 | #endif | ||
14603 | char RSA_set0_factors (); | ||
14604 | int | ||
14605 | main () | ||
14606 | { | ||
14607 | return RSA_set0_factors (); | ||
14608 | ; | ||
14609 | return 0; | ||
14610 | } | ||
14611 | _ACEOF | ||
14612 | for ac_lib in '' crypto; do | ||
14613 | if test -z "$ac_lib"; then | ||
14614 | ac_res="none required" | ||
14615 | else | ||
14616 | ac_res=-l$ac_lib | ||
14617 | LIBS="-l$ac_lib $ac_func_search_save_LIBS" | ||
14618 | fi | ||
14619 | if ac_fn_c_try_link "$LINENO"; then : | ||
14620 | ac_cv_search_RSA_set0_factors=$ac_res | ||
14621 | fi | ||
14622 | rm -f core conftest.err conftest.$ac_objext \ | ||
14623 | conftest$ac_exeext | ||
14624 | if ${ac_cv_search_RSA_set0_factors+:} false; then : | ||
14625 | break | ||
14626 | fi | ||
14627 | done | ||
14628 | if ${ac_cv_search_RSA_set0_factors+:} false; then : | ||
14629 | |||
14630 | else | ||
14631 | ac_cv_search_RSA_set0_factors=no | ||
14632 | fi | ||
14633 | rm conftest.$ac_ext | ||
14634 | LIBS=$ac_func_search_save_LIBS | ||
14635 | fi | ||
14636 | { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_RSA_set0_factors" >&5 | ||
14637 | $as_echo "$ac_cv_search_RSA_set0_factors" >&6; } | ||
14638 | ac_res=$ac_cv_search_RSA_set0_factors | ||
14639 | if test "$ac_res" != no; then : | ||
14640 | test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" | ||
14641 | |||
14642 | $as_echo "#define HAVE_RSA_SET0_FACTORS 1" >>confdefs.h | ||
14643 | |||
14644 | fi | ||
14645 | |||
14646 | { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing RSA_set0_key" >&5 | ||
14647 | $as_echo_n "checking for library containing RSA_set0_key... " >&6; } | ||
14648 | if ${ac_cv_search_RSA_set0_key+:} false; then : | ||
14649 | $as_echo_n "(cached) " >&6 | ||
14650 | else | ||
14651 | ac_func_search_save_LIBS=$LIBS | ||
14652 | cat confdefs.h - <<_ACEOF >conftest.$ac_ext | ||
14653 | /* end confdefs.h. */ | ||
14654 | |||
14655 | /* Override any GCC internal prototype to avoid an error. | ||
14656 | Use char because int might match the return type of a GCC | ||
14657 | builtin and then its argument prototype would still apply. */ | ||
14658 | #ifdef __cplusplus | ||
14659 | extern "C" | ||
14660 | #endif | ||
14661 | char RSA_set0_key (); | ||
14662 | int | ||
14663 | main () | ||
14664 | { | ||
14665 | return RSA_set0_key (); | ||
14666 | ; | ||
14667 | return 0; | ||
14668 | } | ||
14669 | _ACEOF | ||
14670 | for ac_lib in '' crypto; do | ||
14671 | if test -z "$ac_lib"; then | ||
14672 | ac_res="none required" | ||
14673 | else | ||
14674 | ac_res=-l$ac_lib | ||
14675 | LIBS="-l$ac_lib $ac_func_search_save_LIBS" | ||
14676 | fi | ||
14677 | if ac_fn_c_try_link "$LINENO"; then : | ||
14678 | ac_cv_search_RSA_set0_key=$ac_res | ||
14679 | fi | ||
14680 | rm -f core conftest.err conftest.$ac_objext \ | ||
14681 | conftest$ac_exeext | ||
14682 | if ${ac_cv_search_RSA_set0_key+:} false; then : | ||
14683 | break | ||
14684 | fi | ||
14685 | done | ||
14686 | if ${ac_cv_search_RSA_set0_key+:} false; then : | ||
14687 | |||
14688 | else | ||
14689 | ac_cv_search_RSA_set0_key=no | ||
14690 | fi | ||
14691 | rm conftest.$ac_ext | ||
14692 | LIBS=$ac_func_search_save_LIBS | ||
14693 | fi | ||
14694 | { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_RSA_set0_key" >&5 | ||
14695 | $as_echo "$ac_cv_search_RSA_set0_key" >&6; } | ||
14696 | ac_res=$ac_cv_search_RSA_set0_key | ||
14697 | if test "$ac_res" != no; then : | ||
14698 | test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" | ||
14699 | |||
14700 | $as_echo "#define HAVE_RSA_SET0_KEY 1" >>confdefs.h | ||
14701 | |||
14702 | fi | ||
14703 | |||
14704 | |||
14705 | { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing RSA_meth_free" >&5 | ||
14706 | $as_echo_n "checking for library containing RSA_meth_free... " >&6; } | ||
14707 | if ${ac_cv_search_RSA_meth_free+:} false; then : | ||
14708 | $as_echo_n "(cached) " >&6 | ||
14709 | else | ||
14710 | ac_func_search_save_LIBS=$LIBS | ||
14711 | cat confdefs.h - <<_ACEOF >conftest.$ac_ext | ||
14712 | /* end confdefs.h. */ | ||
14713 | |||
14714 | /* Override any GCC internal prototype to avoid an error. | ||
14715 | Use char because int might match the return type of a GCC | ||
14716 | builtin and then its argument prototype would still apply. */ | ||
14717 | #ifdef __cplusplus | ||
14718 | extern "C" | ||
14719 | #endif | ||
14720 | char RSA_meth_free (); | ||
14721 | int | ||
14722 | main () | ||
14723 | { | ||
14724 | return RSA_meth_free (); | ||
14725 | ; | ||
14726 | return 0; | ||
14727 | } | ||
14728 | _ACEOF | ||
14729 | for ac_lib in '' crypto; do | ||
14730 | if test -z "$ac_lib"; then | ||
14731 | ac_res="none required" | ||
14732 | else | ||
14733 | ac_res=-l$ac_lib | ||
14734 | LIBS="-l$ac_lib $ac_func_search_save_LIBS" | ||
14735 | fi | ||
14736 | if ac_fn_c_try_link "$LINENO"; then : | ||
14737 | ac_cv_search_RSA_meth_free=$ac_res | ||
14738 | fi | ||
14739 | rm -f core conftest.err conftest.$ac_objext \ | ||
14740 | conftest$ac_exeext | ||
14741 | if ${ac_cv_search_RSA_meth_free+:} false; then : | ||
14742 | break | ||
14743 | fi | ||
14744 | done | ||
14745 | if ${ac_cv_search_RSA_meth_free+:} false; then : | ||
14746 | |||
14747 | else | ||
14748 | ac_cv_search_RSA_meth_free=no | ||
14749 | fi | ||
14750 | rm conftest.$ac_ext | ||
14751 | LIBS=$ac_func_search_save_LIBS | ||
14752 | fi | ||
14753 | { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_RSA_meth_free" >&5 | ||
14754 | $as_echo "$ac_cv_search_RSA_meth_free" >&6; } | ||
14755 | ac_res=$ac_cv_search_RSA_meth_free | ||
14756 | if test "$ac_res" != no; then : | ||
14757 | test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" | ||
14758 | |||
14759 | $as_echo "#define HAVE_RSA_METH_FREE 1" >>confdefs.h | ||
14760 | |||
14761 | fi | ||
14762 | |||
14763 | { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing RSA_meth_dup" >&5 | ||
14764 | $as_echo_n "checking for library containing RSA_meth_dup... " >&6; } | ||
14765 | if ${ac_cv_search_RSA_meth_dup+:} false; then : | ||
14766 | $as_echo_n "(cached) " >&6 | ||
14767 | else | ||
14768 | ac_func_search_save_LIBS=$LIBS | ||
14769 | cat confdefs.h - <<_ACEOF >conftest.$ac_ext | ||
14770 | /* end confdefs.h. */ | ||
14771 | |||
14772 | /* Override any GCC internal prototype to avoid an error. | ||
14773 | Use char because int might match the return type of a GCC | ||
14774 | builtin and then its argument prototype would still apply. */ | ||
14775 | #ifdef __cplusplus | ||
14776 | extern "C" | ||
14777 | #endif | ||
14778 | char RSA_meth_dup (); | ||
14779 | int | ||
14780 | main () | ||
14781 | { | ||
14782 | return RSA_meth_dup (); | ||
14783 | ; | ||
14784 | return 0; | ||
14785 | } | ||
14786 | _ACEOF | ||
14787 | for ac_lib in '' crypto; do | ||
14788 | if test -z "$ac_lib"; then | ||
14789 | ac_res="none required" | ||
14790 | else | ||
14791 | ac_res=-l$ac_lib | ||
14792 | LIBS="-l$ac_lib $ac_func_search_save_LIBS" | ||
14793 | fi | ||
14794 | if ac_fn_c_try_link "$LINENO"; then : | ||
14795 | ac_cv_search_RSA_meth_dup=$ac_res | ||
14796 | fi | ||
14797 | rm -f core conftest.err conftest.$ac_objext \ | ||
14798 | conftest$ac_exeext | ||
14799 | if ${ac_cv_search_RSA_meth_dup+:} false; then : | ||
14800 | break | ||
14801 | fi | ||
14802 | done | ||
14803 | if ${ac_cv_search_RSA_meth_dup+:} false; then : | ||
14804 | |||
14805 | else | ||
14806 | ac_cv_search_RSA_meth_dup=no | ||
14807 | fi | ||
14808 | rm conftest.$ac_ext | ||
14809 | LIBS=$ac_func_search_save_LIBS | ||
14810 | fi | ||
14811 | { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_RSA_meth_dup" >&5 | ||
14812 | $as_echo "$ac_cv_search_RSA_meth_dup" >&6; } | ||
14813 | ac_res=$ac_cv_search_RSA_meth_dup | ||
14814 | if test "$ac_res" != no; then : | ||
14815 | test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" | ||
14816 | |||
14817 | $as_echo "#define HAVE_RSA_METH_DUP 1" >>confdefs.h | ||
14818 | |||
14819 | fi | ||
14820 | |||
14821 | { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing RSA_meth_set1_name" >&5 | ||
14822 | $as_echo_n "checking for library containing RSA_meth_set1_name... " >&6; } | ||
14823 | if ${ac_cv_search_RSA_meth_set1_name+:} false; then : | ||
14824 | $as_echo_n "(cached) " >&6 | ||
14825 | else | ||
14826 | ac_func_search_save_LIBS=$LIBS | ||
14827 | cat confdefs.h - <<_ACEOF >conftest.$ac_ext | ||
14828 | /* end confdefs.h. */ | ||
14829 | |||
14830 | /* Override any GCC internal prototype to avoid an error. | ||
14831 | Use char because int might match the return type of a GCC | ||
14832 | builtin and then its argument prototype would still apply. */ | ||
14833 | #ifdef __cplusplus | ||
14834 | extern "C" | ||
14835 | #endif | ||
14836 | char RSA_meth_set1_name (); | ||
14837 | int | ||
14838 | main () | ||
14839 | { | ||
14840 | return RSA_meth_set1_name (); | ||
14841 | ; | ||
14842 | return 0; | ||
14843 | } | ||
14844 | _ACEOF | ||
14845 | for ac_lib in '' crypto; do | ||
14846 | if test -z "$ac_lib"; then | ||
14847 | ac_res="none required" | ||
14848 | else | ||
14849 | ac_res=-l$ac_lib | ||
14850 | LIBS="-l$ac_lib $ac_func_search_save_LIBS" | ||
14851 | fi | ||
14852 | if ac_fn_c_try_link "$LINENO"; then : | ||
14853 | ac_cv_search_RSA_meth_set1_name=$ac_res | ||
14854 | fi | ||
14855 | rm -f core conftest.err conftest.$ac_objext \ | ||
14856 | conftest$ac_exeext | ||
14857 | if ${ac_cv_search_RSA_meth_set1_name+:} false; then : | ||
14858 | break | ||
14859 | fi | ||
14860 | done | ||
14861 | if ${ac_cv_search_RSA_meth_set1_name+:} false; then : | ||
14862 | |||
14863 | else | ||
14864 | ac_cv_search_RSA_meth_set1_name=no | ||
14865 | fi | ||
14866 | rm conftest.$ac_ext | ||
14867 | LIBS=$ac_func_search_save_LIBS | ||
14868 | fi | ||
14869 | { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_RSA_meth_set1_name" >&5 | ||
14870 | $as_echo "$ac_cv_search_RSA_meth_set1_name" >&6; } | ||
14871 | ac_res=$ac_cv_search_RSA_meth_set1_name | ||
14872 | if test "$ac_res" != no; then : | ||
14873 | test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" | ||
14874 | |||
14875 | $as_echo "#define HAVE_RSA_METH_SET1_NAME 1" >>confdefs.h | ||
14876 | |||
14877 | fi | ||
14878 | |||
14879 | { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing RSA_meth_get_finish" >&5 | ||
14880 | $as_echo_n "checking for library containing RSA_meth_get_finish... " >&6; } | ||
14881 | if ${ac_cv_search_RSA_meth_get_finish+:} false; then : | ||
14882 | $as_echo_n "(cached) " >&6 | ||
14883 | else | ||
14884 | ac_func_search_save_LIBS=$LIBS | ||
14885 | cat confdefs.h - <<_ACEOF >conftest.$ac_ext | ||
14886 | /* end confdefs.h. */ | ||
14887 | |||
14888 | /* Override any GCC internal prototype to avoid an error. | ||
14889 | Use char because int might match the return type of a GCC | ||
14890 | builtin and then its argument prototype would still apply. */ | ||
14891 | #ifdef __cplusplus | ||
14892 | extern "C" | ||
14893 | #endif | ||
14894 | char RSA_meth_get_finish (); | ||
14895 | int | ||
14896 | main () | ||
14897 | { | ||
14898 | return RSA_meth_get_finish (); | ||
14899 | ; | ||
14900 | return 0; | ||
14901 | } | ||
14902 | _ACEOF | ||
14903 | for ac_lib in '' crypto; do | ||
14904 | if test -z "$ac_lib"; then | ||
14905 | ac_res="none required" | ||
14906 | else | ||
14907 | ac_res=-l$ac_lib | ||
14908 | LIBS="-l$ac_lib $ac_func_search_save_LIBS" | ||
14909 | fi | ||
14910 | if ac_fn_c_try_link "$LINENO"; then : | ||
14911 | ac_cv_search_RSA_meth_get_finish=$ac_res | ||
14912 | fi | ||
14913 | rm -f core conftest.err conftest.$ac_objext \ | ||
14914 | conftest$ac_exeext | ||
14915 | if ${ac_cv_search_RSA_meth_get_finish+:} false; then : | ||
14916 | break | ||
14917 | fi | ||
14918 | done | ||
14919 | if ${ac_cv_search_RSA_meth_get_finish+:} false; then : | ||
14920 | |||
14921 | else | ||
14922 | ac_cv_search_RSA_meth_get_finish=no | ||
14923 | fi | ||
14924 | rm conftest.$ac_ext | ||
14925 | LIBS=$ac_func_search_save_LIBS | ||
14926 | fi | ||
14927 | { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_RSA_meth_get_finish" >&5 | ||
14928 | $as_echo "$ac_cv_search_RSA_meth_get_finish" >&6; } | ||
14929 | ac_res=$ac_cv_search_RSA_meth_get_finish | ||
14930 | if test "$ac_res" != no; then : | ||
14931 | test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" | ||
14932 | |||
14933 | $as_echo "#define HAVE_RSA_METH_GET_FINISH 1" >>confdefs.h | ||
14934 | |||
14935 | fi | ||
14936 | |||
14937 | { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing RSA_meth_set_priv_enc" >&5 | ||
14938 | $as_echo_n "checking for library containing RSA_meth_set_priv_enc... " >&6; } | ||
14939 | if ${ac_cv_search_RSA_meth_set_priv_enc+:} false; then : | ||
14940 | $as_echo_n "(cached) " >&6 | ||
14941 | else | ||
14942 | ac_func_search_save_LIBS=$LIBS | ||
14943 | cat confdefs.h - <<_ACEOF >conftest.$ac_ext | ||
14944 | /* end confdefs.h. */ | ||
14945 | |||
14946 | /* Override any GCC internal prototype to avoid an error. | ||
14947 | Use char because int might match the return type of a GCC | ||
14948 | builtin and then its argument prototype would still apply. */ | ||
14949 | #ifdef __cplusplus | ||
14950 | extern "C" | ||
14951 | #endif | ||
14952 | char RSA_meth_set_priv_enc (); | ||
14953 | int | ||
14954 | main () | ||
14955 | { | ||
14956 | return RSA_meth_set_priv_enc (); | ||
14957 | ; | ||
14958 | return 0; | ||
14959 | } | ||
14960 | _ACEOF | ||
14961 | for ac_lib in '' crypto; do | ||
14962 | if test -z "$ac_lib"; then | ||
14963 | ac_res="none required" | ||
14964 | else | ||
14965 | ac_res=-l$ac_lib | ||
14966 | LIBS="-l$ac_lib $ac_func_search_save_LIBS" | ||
14967 | fi | ||
14968 | if ac_fn_c_try_link "$LINENO"; then : | ||
14969 | ac_cv_search_RSA_meth_set_priv_enc=$ac_res | ||
14970 | fi | ||
14971 | rm -f core conftest.err conftest.$ac_objext \ | ||
14972 | conftest$ac_exeext | ||
14973 | if ${ac_cv_search_RSA_meth_set_priv_enc+:} false; then : | ||
14974 | break | ||
14975 | fi | ||
14976 | done | ||
14977 | if ${ac_cv_search_RSA_meth_set_priv_enc+:} false; then : | ||
14978 | |||
14979 | else | ||
14980 | ac_cv_search_RSA_meth_set_priv_enc=no | ||
14981 | fi | ||
14982 | rm conftest.$ac_ext | ||
14983 | LIBS=$ac_func_search_save_LIBS | ||
14984 | fi | ||
14985 | { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_RSA_meth_set_priv_enc" >&5 | ||
14986 | $as_echo "$ac_cv_search_RSA_meth_set_priv_enc" >&6; } | ||
14987 | ac_res=$ac_cv_search_RSA_meth_set_priv_enc | ||
14988 | if test "$ac_res" != no; then : | ||
14989 | test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" | ||
14990 | |||
14991 | $as_echo "#define HAVE_RSA_METH_SET_PRIV_ENC 1" >>confdefs.h | ||
14992 | |||
14993 | fi | ||
14994 | |||
14995 | { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing RSA_meth_set_priv_dec" >&5 | ||
14996 | $as_echo_n "checking for library containing RSA_meth_set_priv_dec... " >&6; } | ||
14997 | if ${ac_cv_search_RSA_meth_set_priv_dec+:} false; then : | ||
14998 | $as_echo_n "(cached) " >&6 | ||
14999 | else | ||
15000 | ac_func_search_save_LIBS=$LIBS | ||
15001 | cat confdefs.h - <<_ACEOF >conftest.$ac_ext | ||
15002 | /* end confdefs.h. */ | ||
15003 | |||
15004 | /* Override any GCC internal prototype to avoid an error. | ||
15005 | Use char because int might match the return type of a GCC | ||
15006 | builtin and then its argument prototype would still apply. */ | ||
15007 | #ifdef __cplusplus | ||
15008 | extern "C" | ||
15009 | #endif | ||
15010 | char RSA_meth_set_priv_dec (); | ||
15011 | int | ||
15012 | main () | ||
15013 | { | ||
15014 | return RSA_meth_set_priv_dec (); | ||
15015 | ; | ||
15016 | return 0; | ||
15017 | } | ||
15018 | _ACEOF | ||
15019 | for ac_lib in '' crypto; do | ||
15020 | if test -z "$ac_lib"; then | ||
15021 | ac_res="none required" | ||
15022 | else | ||
15023 | ac_res=-l$ac_lib | ||
15024 | LIBS="-l$ac_lib $ac_func_search_save_LIBS" | ||
15025 | fi | ||
15026 | if ac_fn_c_try_link "$LINENO"; then : | ||
15027 | ac_cv_search_RSA_meth_set_priv_dec=$ac_res | ||
15028 | fi | ||
15029 | rm -f core conftest.err conftest.$ac_objext \ | ||
15030 | conftest$ac_exeext | ||
15031 | if ${ac_cv_search_RSA_meth_set_priv_dec+:} false; then : | ||
15032 | break | ||
15033 | fi | ||
15034 | done | ||
15035 | if ${ac_cv_search_RSA_meth_set_priv_dec+:} false; then : | ||
15036 | |||
15037 | else | ||
15038 | ac_cv_search_RSA_meth_set_priv_dec=no | ||
15039 | fi | ||
15040 | rm conftest.$ac_ext | ||
15041 | LIBS=$ac_func_search_save_LIBS | ||
15042 | fi | ||
15043 | { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_RSA_meth_set_priv_dec" >&5 | ||
15044 | $as_echo "$ac_cv_search_RSA_meth_set_priv_dec" >&6; } | ||
15045 | ac_res=$ac_cv_search_RSA_meth_set_priv_dec | ||
15046 | if test "$ac_res" != no; then : | ||
15047 | test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" | ||
15048 | |||
15049 | $as_echo "#define HAVE_RSA_METH_SET_PRIV_DEC 1" >>confdefs.h | ||
15050 | |||
15051 | fi | ||
15052 | |||
15053 | { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing RSA_meth_set_finish" >&5 | ||
15054 | $as_echo_n "checking for library containing RSA_meth_set_finish... " >&6; } | ||
15055 | if ${ac_cv_search_RSA_meth_set_finish+:} false; then : | ||
15056 | $as_echo_n "(cached) " >&6 | ||
15057 | else | ||
15058 | ac_func_search_save_LIBS=$LIBS | ||
15059 | cat confdefs.h - <<_ACEOF >conftest.$ac_ext | ||
15060 | /* end confdefs.h. */ | ||
15061 | |||
15062 | /* Override any GCC internal prototype to avoid an error. | ||
15063 | Use char because int might match the return type of a GCC | ||
15064 | builtin and then its argument prototype would still apply. */ | ||
15065 | #ifdef __cplusplus | ||
15066 | extern "C" | ||
15067 | #endif | ||
15068 | char RSA_meth_set_finish (); | ||
15069 | int | ||
15070 | main () | ||
15071 | { | ||
15072 | return RSA_meth_set_finish (); | ||
15073 | ; | ||
15074 | return 0; | ||
15075 | } | ||
15076 | _ACEOF | ||
15077 | for ac_lib in '' crypto; do | ||
15078 | if test -z "$ac_lib"; then | ||
15079 | ac_res="none required" | ||
15080 | else | ||
15081 | ac_res=-l$ac_lib | ||
15082 | LIBS="-l$ac_lib $ac_func_search_save_LIBS" | ||
15083 | fi | ||
15084 | if ac_fn_c_try_link "$LINENO"; then : | ||
15085 | ac_cv_search_RSA_meth_set_finish=$ac_res | ||
15086 | fi | ||
15087 | rm -f core conftest.err conftest.$ac_objext \ | ||
15088 | conftest$ac_exeext | ||
15089 | if ${ac_cv_search_RSA_meth_set_finish+:} false; then : | ||
15090 | break | ||
15091 | fi | ||
15092 | done | ||
15093 | if ${ac_cv_search_RSA_meth_set_finish+:} false; then : | ||
15094 | |||
15095 | else | ||
15096 | ac_cv_search_RSA_meth_set_finish=no | ||
15097 | fi | ||
15098 | rm conftest.$ac_ext | ||
15099 | LIBS=$ac_func_search_save_LIBS | ||
15100 | fi | ||
15101 | { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_RSA_meth_set_finish" >&5 | ||
15102 | $as_echo "$ac_cv_search_RSA_meth_set_finish" >&6; } | ||
15103 | ac_res=$ac_cv_search_RSA_meth_set_finish | ||
15104 | if test "$ac_res" != no; then : | ||
15105 | test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" | ||
15106 | |||
15107 | $as_echo "#define HAVE_RSA_METH_SET_FINISH 1" >>confdefs.h | ||
15108 | |||
15109 | fi | ||
15110 | |||
15111 | |||
15112 | { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing EVP_PKEY_get0_RSA" >&5 | ||
15113 | $as_echo_n "checking for library containing EVP_PKEY_get0_RSA... " >&6; } | ||
15114 | if ${ac_cv_search_EVP_PKEY_get0_RSA+:} false; then : | ||
15115 | $as_echo_n "(cached) " >&6 | ||
15116 | else | ||
15117 | ac_func_search_save_LIBS=$LIBS | ||
15118 | cat confdefs.h - <<_ACEOF >conftest.$ac_ext | ||
15119 | /* end confdefs.h. */ | ||
15120 | |||
15121 | /* Override any GCC internal prototype to avoid an error. | ||
15122 | Use char because int might match the return type of a GCC | ||
15123 | builtin and then its argument prototype would still apply. */ | ||
15124 | #ifdef __cplusplus | ||
15125 | extern "C" | ||
15126 | #endif | ||
15127 | char EVP_PKEY_get0_RSA (); | ||
15128 | int | ||
15129 | main () | ||
15130 | { | ||
15131 | return EVP_PKEY_get0_RSA (); | ||
15132 | ; | ||
15133 | return 0; | ||
15134 | } | ||
15135 | _ACEOF | ||
15136 | for ac_lib in '' crypto; do | ||
15137 | if test -z "$ac_lib"; then | ||
15138 | ac_res="none required" | ||
15139 | else | ||
15140 | ac_res=-l$ac_lib | ||
15141 | LIBS="-l$ac_lib $ac_func_search_save_LIBS" | ||
15142 | fi | ||
15143 | if ac_fn_c_try_link "$LINENO"; then : | ||
15144 | ac_cv_search_EVP_PKEY_get0_RSA=$ac_res | ||
15145 | fi | ||
15146 | rm -f core conftest.err conftest.$ac_objext \ | ||
15147 | conftest$ac_exeext | ||
15148 | if ${ac_cv_search_EVP_PKEY_get0_RSA+:} false; then : | ||
15149 | break | ||
15150 | fi | ||
15151 | done | ||
15152 | if ${ac_cv_search_EVP_PKEY_get0_RSA+:} false; then : | ||
15153 | |||
15154 | else | ||
15155 | ac_cv_search_EVP_PKEY_get0_RSA=no | ||
15156 | fi | ||
15157 | rm conftest.$ac_ext | ||
15158 | LIBS=$ac_func_search_save_LIBS | ||
15159 | fi | ||
15160 | { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_EVP_PKEY_get0_RSA" >&5 | ||
15161 | $as_echo "$ac_cv_search_EVP_PKEY_get0_RSA" >&6; } | ||
15162 | ac_res=$ac_cv_search_EVP_PKEY_get0_RSA | ||
15163 | if test "$ac_res" != no; then : | ||
15164 | test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" | ||
15165 | |||
15166 | $as_echo "#define HAVE_EVP_PKEY_GET0_RSA 1" >>confdefs.h | ||
15167 | |||
15168 | fi | ||
15169 | |||
15170 | |||
15171 | { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing EVP_MD_CTX_new" >&5 | ||
15172 | $as_echo_n "checking for library containing EVP_MD_CTX_new... " >&6; } | ||
15173 | if ${ac_cv_search_EVP_MD_CTX_new+:} false; then : | ||
15174 | $as_echo_n "(cached) " >&6 | ||
15175 | else | ||
15176 | ac_func_search_save_LIBS=$LIBS | ||
15177 | cat confdefs.h - <<_ACEOF >conftest.$ac_ext | ||
15178 | /* end confdefs.h. */ | ||
15179 | |||
15180 | /* Override any GCC internal prototype to avoid an error. | ||
15181 | Use char because int might match the return type of a GCC | ||
15182 | builtin and then its argument prototype would still apply. */ | ||
15183 | #ifdef __cplusplus | ||
15184 | extern "C" | ||
15185 | #endif | ||
15186 | char EVP_MD_CTX_new (); | ||
15187 | int | ||
15188 | main () | ||
15189 | { | ||
15190 | return EVP_MD_CTX_new (); | ||
15191 | ; | ||
15192 | return 0; | ||
15193 | } | ||
15194 | _ACEOF | ||
15195 | for ac_lib in '' crypto; do | ||
15196 | if test -z "$ac_lib"; then | ||
15197 | ac_res="none required" | ||
15198 | else | ||
15199 | ac_res=-l$ac_lib | ||
15200 | LIBS="-l$ac_lib $ac_func_search_save_LIBS" | ||
15201 | fi | ||
15202 | if ac_fn_c_try_link "$LINENO"; then : | ||
15203 | ac_cv_search_EVP_MD_CTX_new=$ac_res | ||
15204 | fi | ||
15205 | rm -f core conftest.err conftest.$ac_objext \ | ||
15206 | conftest$ac_exeext | ||
15207 | if ${ac_cv_search_EVP_MD_CTX_new+:} false; then : | ||
15208 | break | ||
15209 | fi | ||
15210 | done | ||
15211 | if ${ac_cv_search_EVP_MD_CTX_new+:} false; then : | ||
15212 | |||
15213 | else | ||
15214 | ac_cv_search_EVP_MD_CTX_new=no | ||
15215 | fi | ||
15216 | rm conftest.$ac_ext | ||
15217 | LIBS=$ac_func_search_save_LIBS | ||
15218 | fi | ||
15219 | { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_EVP_MD_CTX_new" >&5 | ||
15220 | $as_echo "$ac_cv_search_EVP_MD_CTX_new" >&6; } | ||
15221 | ac_res=$ac_cv_search_EVP_MD_CTX_new | ||
15222 | if test "$ac_res" != no; then : | ||
15223 | test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" | ||
15224 | |||
15225 | $as_echo "#define HAVE_EVP_MD_CTX_NEW 1" >>confdefs.h | ||
15226 | |||
15227 | fi | ||
15228 | |||
15229 | { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing EVP_MD_CTX_free" >&5 | ||
15230 | $as_echo_n "checking for library containing EVP_MD_CTX_free... " >&6; } | ||
15231 | if ${ac_cv_search_EVP_MD_CTX_free+:} false; then : | ||
15232 | $as_echo_n "(cached) " >&6 | ||
15233 | else | ||
15234 | ac_func_search_save_LIBS=$LIBS | ||
15235 | cat confdefs.h - <<_ACEOF >conftest.$ac_ext | ||
15236 | /* end confdefs.h. */ | ||
15237 | |||
15238 | /* Override any GCC internal prototype to avoid an error. | ||
15239 | Use char because int might match the return type of a GCC | ||
15240 | builtin and then its argument prototype would still apply. */ | ||
15241 | #ifdef __cplusplus | ||
15242 | extern "C" | ||
15243 | #endif | ||
15244 | char EVP_MD_CTX_free (); | ||
15245 | int | ||
15246 | main () | ||
15247 | { | ||
15248 | return EVP_MD_CTX_free (); | ||
15249 | ; | ||
15250 | return 0; | ||
15251 | } | ||
15252 | _ACEOF | ||
15253 | for ac_lib in '' crypto; do | ||
15254 | if test -z "$ac_lib"; then | ||
15255 | ac_res="none required" | ||
15256 | else | ||
15257 | ac_res=-l$ac_lib | ||
15258 | LIBS="-l$ac_lib $ac_func_search_save_LIBS" | ||
15259 | fi | ||
15260 | if ac_fn_c_try_link "$LINENO"; then : | ||
15261 | ac_cv_search_EVP_MD_CTX_free=$ac_res | ||
15262 | fi | ||
15263 | rm -f core conftest.err conftest.$ac_objext \ | ||
15264 | conftest$ac_exeext | ||
15265 | if ${ac_cv_search_EVP_MD_CTX_free+:} false; then : | ||
15266 | break | ||
15267 | fi | ||
15268 | done | ||
15269 | if ${ac_cv_search_EVP_MD_CTX_free+:} false; then : | ||
15270 | |||
15271 | else | ||
15272 | ac_cv_search_EVP_MD_CTX_free=no | ||
15273 | fi | ||
15274 | rm conftest.$ac_ext | ||
15275 | LIBS=$ac_func_search_save_LIBS | ||
15276 | fi | ||
15277 | { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_EVP_MD_CTX_free" >&5 | ||
15278 | $as_echo "$ac_cv_search_EVP_MD_CTX_free" >&6; } | ||
15279 | ac_res=$ac_cv_search_EVP_MD_CTX_free | ||
15280 | if test "$ac_res" != no; then : | ||
15281 | test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" | ||
15282 | |||
15283 | $as_echo "#define HAVE_EVP_MD_CTX_FREE 1" >>confdefs.h | ||
15284 | |||
15285 | fi | ||
15286 | |||
15287 | |||
15288 | { $as_echo "$as_me:${as_lineno-$LINENO}: checking if EVP_DigestUpdate returns an int" >&5 | 13175 | { $as_echo "$as_me:${as_lineno-$LINENO}: checking if EVP_DigestUpdate returns an int" >&5 |
15289 | $as_echo_n "checking if EVP_DigestUpdate returns an int... " >&6; } | 13176 | $as_echo_n "checking if EVP_DigestUpdate returns an int... " >&6; } |
15290 | cat confdefs.h - <<_ACEOF >conftest.$ac_ext | 13177 | cat confdefs.h - <<_ACEOF >conftest.$ac_ext |
@@ -15626,6 +13513,17 @@ rm -f core conftest.err conftest.$ac_objext \ | |||
15626 | 13513 | ||
15627 | $as_echo "#define OPENSSL_HAS_ECC 1" >>confdefs.h | 13514 | $as_echo "#define OPENSSL_HAS_ECC 1" >>confdefs.h |
15628 | 13515 | ||
13516 | for ac_func in EC_KEY_METHOD_new | ||
13517 | do : | ||
13518 | ac_fn_c_check_func "$LINENO" "EC_KEY_METHOD_new" "ac_cv_func_EC_KEY_METHOD_new" | ||
13519 | if test "x$ac_cv_func_EC_KEY_METHOD_new" = xyes; then : | ||
13520 | cat >>confdefs.h <<_ACEOF | ||
13521 | #define HAVE_EC_KEY_METHOD_NEW 1 | ||
13522 | _ACEOF | ||
13523 | |||
13524 | fi | ||
13525 | done | ||
13526 | |||
15629 | fi | 13527 | fi |
15630 | if test x$enable_nistp256 = x1; then | 13528 | if test x$enable_nistp256 = x1; then |
15631 | 13529 | ||
@@ -20190,8 +18088,8 @@ fi | |||
20190 | 18088 | ||
20191 | 18089 | ||
20192 | fi | 18090 | fi |
20193 | if test ! -z "$need_dash_r" ; then | 18091 | if test -n "${rpath_opt}" ; then |
20194 | LDFLAGS="$LDFLAGS -R${KRB5ROOT}/lib" | 18092 | LDFLAGS="$LDFLAGS ${rpath_opt}${KRB5ROOT}/lib" |
20195 | fi | 18093 | fi |
20196 | if test ! -z "$blibpath" ; then | 18094 | if test ! -z "$blibpath" ; then |
20197 | blibpath="$blibpath:${KRB5ROOT}/lib" | 18095 | blibpath="$blibpath:${KRB5ROOT}/lib" |
diff --git a/configure.ac b/configure.ac index 7379ab358..30be6c182 100644 --- a/configure.ac +++ b/configure.ac | |||
@@ -19,7 +19,7 @@ AC_CONFIG_SRCDIR([ssh.c]) | |||
19 | AC_LANG([C]) | 19 | AC_LANG([C]) |
20 | 20 | ||
21 | AC_CONFIG_HEADER([config.h]) | 21 | AC_CONFIG_HEADER([config.h]) |
22 | AC_PROG_CC | 22 | AC_PROG_CC([cc gcc]) |
23 | AC_CANONICAL_HOST | 23 | AC_CANONICAL_HOST |
24 | AC_C_BIGENDIAN | 24 | AC_C_BIGENDIAN |
25 | 25 | ||
@@ -285,10 +285,11 @@ AC_ARG_WITH([rpath], | |||
285 | [ --without-rpath Disable auto-added -R linker paths], | 285 | [ --without-rpath Disable auto-added -R linker paths], |
286 | [ | 286 | [ |
287 | if test "x$withval" = "xno" ; then | 287 | if test "x$withval" = "xno" ; then |
288 | need_dash_r="" | 288 | rpath_opt="" |
289 | fi | 289 | elif test "x$withval" = "xyes" ; then |
290 | if test "x$withval" = "xyes" ; then | 290 | rpath_opt="-R" |
291 | need_dash_r=1 | 291 | else |
292 | rpath_opt="$withval" | ||
292 | fi | 293 | fi |
293 | ] | 294 | ] |
294 | ) | 295 | ) |
@@ -911,7 +912,7 @@ mips-sony-bsd|mips-sony-newsos4) | |||
911 | *-*-netbsd*) | 912 | *-*-netbsd*) |
912 | check_for_libcrypt_before=1 | 913 | check_for_libcrypt_before=1 |
913 | if test "x$withval" != "xno" ; then | 914 | if test "x$withval" != "xno" ; then |
914 | need_dash_r=1 | 915 | rpath_opt="-R" |
915 | fi | 916 | fi |
916 | CPPFLAGS="$CPPFLAGS -D_OPENBSD_SOURCE" | 917 | CPPFLAGS="$CPPFLAGS -D_OPENBSD_SOURCE" |
917 | AC_DEFINE([SSH_TUN_FREEBSD], [1], [Open tunnel devices the FreeBSD way]) | 918 | AC_DEFINE([SSH_TUN_FREEBSD], [1], [Open tunnel devices the FreeBSD way]) |
@@ -962,7 +963,7 @@ mips-sony-bsd|mips-sony-newsos4) | |||
962 | ;; | 963 | ;; |
963 | *-*-solaris*) | 964 | *-*-solaris*) |
964 | if test "x$withval" != "xno" ; then | 965 | if test "x$withval" != "xno" ; then |
965 | need_dash_r=1 | 966 | rpath_opt="-R" |
966 | fi | 967 | fi |
967 | AC_DEFINE([PAM_SUN_CODEBASE]) | 968 | AC_DEFINE([PAM_SUN_CODEBASE]) |
968 | AC_DEFINE([LOGIN_NEEDS_UTMPX]) | 969 | AC_DEFINE([LOGIN_NEEDS_UTMPX]) |
@@ -1263,14 +1264,14 @@ AC_ARG_WITH([zlib], | |||
1263 | AC_MSG_ERROR([*** zlib is required ***]) | 1264 | AC_MSG_ERROR([*** zlib is required ***]) |
1264 | elif test "x$withval" != "xyes"; then | 1265 | elif test "x$withval" != "xyes"; then |
1265 | if test -d "$withval/lib"; then | 1266 | if test -d "$withval/lib"; then |
1266 | if test -n "${need_dash_r}"; then | 1267 | if test -n "${rpath_opt}"; then |
1267 | LDFLAGS="-L${withval}/lib -R${withval}/lib ${LDFLAGS}" | 1268 | LDFLAGS="-L${withval}/lib ${rpath_opt}${withval}/lib ${LDFLAGS}" |
1268 | else | 1269 | else |
1269 | LDFLAGS="-L${withval}/lib ${LDFLAGS}" | 1270 | LDFLAGS="-L${withval}/lib ${LDFLAGS}" |
1270 | fi | 1271 | fi |
1271 | else | 1272 | else |
1272 | if test -n "${need_dash_r}"; then | 1273 | if test -n "${rpath_opt}"; then |
1273 | LDFLAGS="-L${withval} -R${withval} ${LDFLAGS}" | 1274 | LDFLAGS="-L${withval} ${rpath_opt}${withval} ${LDFLAGS}" |
1274 | else | 1275 | else |
1275 | LDFLAGS="-L${withval} ${LDFLAGS}" | 1276 | LDFLAGS="-L${withval} ${LDFLAGS}" |
1276 | fi | 1277 | fi |
@@ -1290,8 +1291,8 @@ AC_CHECK_LIB([z], [deflate], , | |||
1290 | saved_LDFLAGS="$LDFLAGS" | 1291 | saved_LDFLAGS="$LDFLAGS" |
1291 | save_LIBS="$LIBS" | 1292 | save_LIBS="$LIBS" |
1292 | dnl Check default zlib install dir | 1293 | dnl Check default zlib install dir |
1293 | if test -n "${need_dash_r}"; then | 1294 | if test -n "${rpath_opt}"; then |
1294 | LDFLAGS="-L/usr/local/lib -R/usr/local/lib ${saved_LDFLAGS}" | 1295 | LDFLAGS="-L/usr/local/lib ${rpath_opt}/usr/local/lib ${saved_LDFLAGS}" |
1295 | else | 1296 | else |
1296 | LDFLAGS="-L/usr/local/lib ${saved_LDFLAGS}" | 1297 | LDFLAGS="-L/usr/local/lib ${saved_LDFLAGS}" |
1297 | fi | 1298 | fi |
@@ -1558,8 +1559,8 @@ AC_ARG_WITH([libedit], | |||
1558 | fi | 1559 | fi |
1559 | else | 1560 | else |
1560 | CPPFLAGS="$CPPFLAGS -I${withval}/include" | 1561 | CPPFLAGS="$CPPFLAGS -I${withval}/include" |
1561 | if test -n "${need_dash_r}"; then | 1562 | if test -n "${rpath_opt}"; then |
1562 | LDFLAGS="-L${withval}/lib -R${withval}/lib ${LDFLAGS}" | 1563 | LDFLAGS="-L${withval}/lib ${rpath_opt}${withval}/lib ${LDFLAGS}" |
1563 | else | 1564 | else |
1564 | LDFLAGS="-L${withval}/lib ${LDFLAGS}" | 1565 | LDFLAGS="-L${withval}/lib ${LDFLAGS}" |
1565 | fi | 1566 | fi |
@@ -1719,7 +1720,9 @@ AC_CHECK_FUNCS([ \ | |||
1719 | errx \ | 1720 | errx \ |
1720 | explicit_bzero \ | 1721 | explicit_bzero \ |
1721 | fchmod \ | 1722 | fchmod \ |
1723 | fchmodat \ | ||
1722 | fchown \ | 1724 | fchown \ |
1725 | fchownat \ | ||
1723 | flock \ | 1726 | flock \ |
1724 | freeaddrinfo \ | 1727 | freeaddrinfo \ |
1725 | freezero \ | 1728 | freezero \ |
@@ -1812,6 +1815,7 @@ AC_CHECK_FUNCS([ \ | |||
1812 | truncate \ | 1815 | truncate \ |
1813 | unsetenv \ | 1816 | unsetenv \ |
1814 | updwtmpx \ | 1817 | updwtmpx \ |
1818 | utimensat \ | ||
1815 | user_from_uid \ | 1819 | user_from_uid \ |
1816 | usleep \ | 1820 | usleep \ |
1817 | vasprintf \ | 1821 | vasprintf \ |
@@ -2476,20 +2480,20 @@ AC_ARG_WITH([ssl-dir], | |||
2476 | ./*|../*) withval="`pwd`/$withval" | 2480 | ./*|../*) withval="`pwd`/$withval" |
2477 | esac | 2481 | esac |
2478 | if test -d "$withval/lib"; then | 2482 | if test -d "$withval/lib"; then |
2479 | if test -n "${need_dash_r}"; then | 2483 | if test -n "${rpath_opt}"; then |
2480 | LDFLAGS="-L${withval}/lib -R${withval}/lib ${LDFLAGS}" | 2484 | LDFLAGS="-L${withval}/lib ${rpath_opt}${withval}/lib ${LDFLAGS}" |
2481 | else | 2485 | else |
2482 | LDFLAGS="-L${withval}/lib ${LDFLAGS}" | 2486 | LDFLAGS="-L${withval}/lib ${LDFLAGS}" |
2483 | fi | 2487 | fi |
2484 | elif test -d "$withval/lib64"; then | 2488 | elif test -d "$withval/lib64"; then |
2485 | if test -n "${need_dash_r}"; then | 2489 | if test -n "${rpath_opt}"; then |
2486 | LDFLAGS="-L${withval}/lib64 -R${withval}/lib64 ${LDFLAGS}" | 2490 | LDFLAGS="-L${withval}/lib64 ${rpath_opt}${withval}/lib64 ${LDFLAGS}" |
2487 | else | 2491 | else |
2488 | LDFLAGS="-L${withval}/lib64 ${LDFLAGS}" | 2492 | LDFLAGS="-L${withval}/lib64 ${LDFLAGS}" |
2489 | fi | 2493 | fi |
2490 | else | 2494 | else |
2491 | if test -n "${need_dash_r}"; then | 2495 | if test -n "${rpath_opt}"; then |
2492 | LDFLAGS="-L${withval} -R${withval} ${LDFLAGS}" | 2496 | LDFLAGS="-L${withval} ${rpath_opt}${withval} ${LDFLAGS}" |
2493 | else | 2497 | else |
2494 | LDFLAGS="-L${withval} ${LDFLAGS}" | 2498 | LDFLAGS="-L${withval} ${LDFLAGS}" |
2495 | fi | 2499 | fi |
@@ -2527,26 +2531,10 @@ AC_ARG_WITH([ssl-engine], | |||
2527 | 2531 | ||
2528 | if test "x$openssl" = "xyes" ; then | 2532 | if test "x$openssl" = "xyes" ; then |
2529 | LIBS="-lcrypto $LIBS" | 2533 | LIBS="-lcrypto $LIBS" |
2530 | AC_TRY_LINK_FUNC([RAND_add], [AC_DEFINE([HAVE_OPENSSL], [1], | 2534 | AC_TRY_LINK_FUNC([RAND_add], , |
2531 | [Define if your ssl headers are included | 2535 | [AC_MSG_ERROR([*** working libcrypto not found, check config.log])]) |
2532 | with #include <openssl/header.h>])], | 2536 | AC_CHECK_HEADER([openssl/opensslv.h], , |
2533 | [ | 2537 | [AC_MSG_ERROR([*** OpenSSL headers missing - please install first or check config.log ***])]) |
2534 | dnl Check default openssl install dir | ||
2535 | if test -n "${need_dash_r}"; then | ||
2536 | LDFLAGS="-L/usr/local/ssl/lib -R/usr/local/ssl/lib ${saved_LDFLAGS}" | ||
2537 | else | ||
2538 | LDFLAGS="-L/usr/local/ssl/lib ${saved_LDFLAGS}" | ||
2539 | fi | ||
2540 | CPPFLAGS="-I/usr/local/ssl/include ${saved_CPPFLAGS}" | ||
2541 | AC_CHECK_HEADER([openssl/opensslv.h], , | ||
2542 | [AC_MSG_ERROR([*** OpenSSL headers missing - please install first or check config.log ***])]) | ||
2543 | AC_TRY_LINK_FUNC([RAND_add], [AC_DEFINE([HAVE_OPENSSL])], | ||
2544 | [ | ||
2545 | AC_MSG_ERROR([*** Can't find recent OpenSSL libcrypto (see config.log for details) ***]) | ||
2546 | ] | ||
2547 | ) | ||
2548 | ] | ||
2549 | ) | ||
2550 | 2538 | ||
2551 | # Determine OpenSSL header version | 2539 | # Determine OpenSSL header version |
2552 | AC_MSG_CHECKING([OpenSSL header version]) | 2540 | AC_MSG_CHECKING([OpenSSL header version]) |
@@ -2585,6 +2573,9 @@ if test "x$openssl" = "xyes" ; then | |||
2585 | ] | 2573 | ] |
2586 | ) | 2574 | ) |
2587 | 2575 | ||
2576 | # Determining OpenSSL library version is version dependent. | ||
2577 | AC_CHECK_FUNCS([OpenSSL_version OpenSSL_version_num]) | ||
2578 | |||
2588 | # Determine OpenSSL library version | 2579 | # Determine OpenSSL library version |
2589 | AC_MSG_CHECKING([OpenSSL library version]) | 2580 | AC_MSG_CHECKING([OpenSSL library version]) |
2590 | AC_RUN_IFELSE( | 2581 | AC_RUN_IFELSE( |
@@ -2601,9 +2592,18 @@ if test "x$openssl" = "xyes" ; then | |||
2601 | fd = fopen(DATA,"w"); | 2592 | fd = fopen(DATA,"w"); |
2602 | if(fd == NULL) | 2593 | if(fd == NULL) |
2603 | exit(1); | 2594 | exit(1); |
2604 | 2595 | #ifndef OPENSSL_VERSION | |
2605 | if ((rc = fprintf(fd, "%08lx (%s)\n", (unsigned long)SSLeay(), | 2596 | # define OPENSSL_VERSION SSLEAY_VERSION |
2606 | SSLeay_version(SSLEAY_VERSION))) < 0) | 2597 | #endif |
2598 | #ifndef HAVE_OPENSSL_VERSION | ||
2599 | # define OpenSSL_version SSLeay_version | ||
2600 | #endif | ||
2601 | #ifndef HAVE_OPENSSL_VERSION_NUM | ||
2602 | # define OpenSSL_version_num SSLeay | ||
2603 | #endif | ||
2604 | if ((rc = fprintf(fd, "%08lx (%s)\n", | ||
2605 | (unsigned long)OpenSSL_version_num(), | ||
2606 | OpenSSL_version(OPENSSL_VERSION))) < 0) | ||
2607 | exit(1); | 2607 | exit(1); |
2608 | 2608 | ||
2609 | exit(0); | 2609 | exit(0); |
@@ -2616,14 +2616,15 @@ if test "x$openssl" = "xyes" ; then | |||
2616 | AC_MSG_ERROR([OpenSSL >= 1.0.1 required (have "$ssl_library_ver")]) | 2616 | AC_MSG_ERROR([OpenSSL >= 1.0.1 required (have "$ssl_library_ver")]) |
2617 | ;; | 2617 | ;; |
2618 | 100*) ;; # 1.0.x | 2618 | 100*) ;; # 1.0.x |
2619 | 101000[0123456]*) | 2619 | 101000[[0123456]]*) |
2620 | # https://github.com/openssl/openssl/pull/4613 | 2620 | # https://github.com/openssl/openssl/pull/4613 |
2621 | AC_MSG_ERROR([OpenSSL 1.1.x versions prior to 1.1.0g have a bug that breaks their use with OpenSSH (have "$ssl_library_ver")]) | 2621 | AC_MSG_ERROR([OpenSSL 1.1.x versions prior to 1.1.0g have a bug that breaks their use with OpenSSH (have "$ssl_library_ver")]) |
2622 | ;; | 2622 | ;; |
2623 | 101*) ;; # 1.1.x | 2623 | 101*) ;; # 1.1.x |
2624 | 200*) ;; # LibreSSL | 2624 | 200*) ;; # LibreSSL |
2625 | 300*) ;; # OpenSSL development branch. | ||
2625 | *) | 2626 | *) |
2626 | AC_MSG_ERROR([OpenSSL > 1.1.x is not yet supported (have "$ssl_library_ver")]) | 2627 | AC_MSG_ERROR([Unknown/unsupported OpenSSL version ("$ssl_library_ver")]) |
2627 | ;; | 2628 | ;; |
2628 | esac | 2629 | esac |
2629 | AC_MSG_RESULT([$ssl_library_ver]) | 2630 | AC_MSG_RESULT([$ssl_library_ver]) |
@@ -2645,7 +2646,10 @@ if test "x$openssl" = "xyes" ; then | |||
2645 | #include <openssl/opensslv.h> | 2646 | #include <openssl/opensslv.h> |
2646 | #include <openssl/crypto.h> | 2647 | #include <openssl/crypto.h> |
2647 | ]], [[ | 2648 | ]], [[ |
2648 | exit(SSLeay() == OPENSSL_VERSION_NUMBER ? 0 : 1); | 2649 | #ifndef HAVE_OPENSSL_VERSION_NUM |
2650 | # define OpenSSL_version_num SSLeay | ||
2651 | #endif | ||
2652 | exit(OpenSSL_version_num() == OPENSSL_VERSION_NUMBER ? 0 : 1); | ||
2649 | ]])], | 2653 | ]])], |
2650 | [ | 2654 | [ |
2651 | AC_MSG_RESULT([yes]) | 2655 | AC_MSG_RESULT([yes]) |
@@ -2672,8 +2676,8 @@ if test "x$openssl" = "xyes" ; then | |||
2672 | 2676 | ||
2673 | AC_MSG_CHECKING([if programs using OpenSSL functions will link]) | 2677 | AC_MSG_CHECKING([if programs using OpenSSL functions will link]) |
2674 | AC_LINK_IFELSE( | 2678 | AC_LINK_IFELSE( |
2675 | [AC_LANG_PROGRAM([[ #include <openssl/evp.h> ]], | 2679 | [AC_LANG_PROGRAM([[ #include <openssl/err.h> ]], |
2676 | [[ SSLeay_add_all_algorithms(); ]])], | 2680 | [[ ERR_load_crypto_strings(); ]])], |
2677 | [ | 2681 | [ |
2678 | AC_MSG_RESULT([yes]) | 2682 | AC_MSG_RESULT([yes]) |
2679 | ], | 2683 | ], |
@@ -2683,8 +2687,8 @@ if test "x$openssl" = "xyes" ; then | |||
2683 | LIBS="$LIBS -ldl" | 2687 | LIBS="$LIBS -ldl" |
2684 | AC_MSG_CHECKING([if programs using OpenSSL need -ldl]) | 2688 | AC_MSG_CHECKING([if programs using OpenSSL need -ldl]) |
2685 | AC_LINK_IFELSE( | 2689 | AC_LINK_IFELSE( |
2686 | [AC_LANG_PROGRAM([[ #include <openssl/evp.h> ]], | 2690 | [AC_LANG_PROGRAM([[ #include <openssl/err.h> ]], |
2687 | [[ SSLeay_add_all_algorithms(); ]])], | 2691 | [[ ERR_load_crypto_strings(); ]])], |
2688 | [ | 2692 | [ |
2689 | AC_MSG_RESULT([yes]) | 2693 | AC_MSG_RESULT([yes]) |
2690 | ], | 2694 | ], |
@@ -2699,16 +2703,64 @@ if test "x$openssl" = "xyes" ; then | |||
2699 | AC_CHECK_FUNCS([ \ | 2703 | AC_CHECK_FUNCS([ \ |
2700 | BN_is_prime_ex \ | 2704 | BN_is_prime_ex \ |
2701 | DSA_generate_parameters_ex \ | 2705 | DSA_generate_parameters_ex \ |
2702 | EVP_DigestInit_ex \ | 2706 | EVP_CIPHER_CTX_ctrl \ |
2703 | EVP_DigestFinal_ex \ | 2707 | EVP_DigestFinal_ex \ |
2704 | EVP_MD_CTX_init \ | 2708 | EVP_DigestInit_ex \ |
2705 | EVP_MD_CTX_cleanup \ | 2709 | EVP_MD_CTX_cleanup \ |
2706 | EVP_MD_CTX_copy_ex \ | 2710 | EVP_MD_CTX_copy_ex \ |
2711 | EVP_MD_CTX_init \ | ||
2707 | HMAC_CTX_init \ | 2712 | HMAC_CTX_init \ |
2708 | RSA_generate_key_ex \ | 2713 | RSA_generate_key_ex \ |
2709 | RSA_get_default_method \ | 2714 | RSA_get_default_method \ |
2710 | ]) | 2715 | ]) |
2711 | 2716 | ||
2717 | # OpenSSL_add_all_algorithms may be a macro. | ||
2718 | AC_CHECK_FUNC(OpenSSL_add_all_algorithms, | ||
2719 | AC_DEFINE(HAVE_OPENSSL_ADD_ALL_ALGORITHMS, 1, [as a function]), | ||
2720 | AC_CHECK_DECL(OpenSSL_add_all_algorithms, | ||
2721 | AC_DEFINE(HAVE_OPENSSL_ADD_ALL_ALGORITHMS, 1, [as a macro]), , | ||
2722 | [[#include <openssl/evp.h>]] | ||
2723 | ) | ||
2724 | ) | ||
2725 | |||
2726 | # LibreSSL/OpenSSL 1.1x API | ||
2727 | AC_CHECK_FUNCS([ \ | ||
2728 | OPENSSL_init_crypto \ | ||
2729 | DH_get0_key \ | ||
2730 | DH_get0_pqg \ | ||
2731 | DH_set0_key \ | ||
2732 | DH_set_length \ | ||
2733 | DH_set0_pqg \ | ||
2734 | DSA_get0_key \ | ||
2735 | DSA_get0_pqg \ | ||
2736 | DSA_set0_key \ | ||
2737 | DSA_set0_pqg \ | ||
2738 | DSA_SIG_get0 \ | ||
2739 | DSA_SIG_set0 \ | ||
2740 | ECDSA_SIG_get0 \ | ||
2741 | ECDSA_SIG_set0 \ | ||
2742 | EVP_CIPHER_CTX_iv \ | ||
2743 | EVP_CIPHER_CTX_iv_noconst \ | ||
2744 | EVP_CIPHER_CTX_get_iv \ | ||
2745 | EVP_CIPHER_CTX_set_iv \ | ||
2746 | RSA_get0_crt_params \ | ||
2747 | RSA_get0_factors \ | ||
2748 | RSA_get0_key \ | ||
2749 | RSA_set0_crt_params \ | ||
2750 | RSA_set0_factors \ | ||
2751 | RSA_set0_key \ | ||
2752 | RSA_meth_free \ | ||
2753 | RSA_meth_dup \ | ||
2754 | RSA_meth_set1_name \ | ||
2755 | RSA_meth_get_finish \ | ||
2756 | RSA_meth_set_priv_enc \ | ||
2757 | RSA_meth_set_priv_dec \ | ||
2758 | RSA_meth_set_finish \ | ||
2759 | EVP_PKEY_get0_RSA \ | ||
2760 | EVP_MD_CTX_new \ | ||
2761 | EVP_MD_CTX_free \ | ||
2762 | ]) | ||
2763 | |||
2712 | if test "x$openssl_engine" = "xyes" ; then | 2764 | if test "x$openssl_engine" = "xyes" ; then |
2713 | AC_MSG_CHECKING([for OpenSSL ENGINE support]) | 2765 | AC_MSG_CHECKING([for OpenSSL ENGINE support]) |
2714 | AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[ | 2766 | AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[ |
@@ -2792,119 +2844,6 @@ if test "x$openssl" = "xyes" ; then | |||
2792 | ] | 2844 | ] |
2793 | ) | 2845 | ) |
2794 | 2846 | ||
2795 | AC_SEARCH_LIBS([EVP_CIPHER_CTX_ctrl], [crypto], | ||
2796 | [AC_DEFINE([HAVE_EVP_CIPHER_CTX_CTRL], [1], | ||
2797 | [Define if libcrypto has EVP_CIPHER_CTX_ctrl])]) | ||
2798 | |||
2799 | # LibreSSL/OpenSSL 1.1x API | ||
2800 | AC_SEARCH_LIBS([DH_get0_key], [crypto], | ||
2801 | [AC_DEFINE([HAVE_DH_GET0_KEY], [1], | ||
2802 | [Define if libcrypto has DH_get0_key])]) | ||
2803 | AC_SEARCH_LIBS([DH_get0_pqg], [crypto], | ||
2804 | [AC_DEFINE([HAVE_DH_GET0_PQG], [1], | ||
2805 | [Define if libcrypto has DH_get0_pqg])]) | ||
2806 | AC_SEARCH_LIBS([DH_set0_key], [crypto], | ||
2807 | [AC_DEFINE([HAVE_DH_SET0_KEY], [1], | ||
2808 | [Define if libcrypto has DH_set0_key])]) | ||
2809 | AC_SEARCH_LIBS([DH_set_length], [crypto], | ||
2810 | [AC_DEFINE([HAVE_DH_SET_LENGTH], [1], | ||
2811 | [Define if libcrypto has DH_set_length])]) | ||
2812 | AC_SEARCH_LIBS([DH_set0_pqg], [crypto], | ||
2813 | [AC_DEFINE([HAVE_DH_SET0_PQG], [1], | ||
2814 | [Define if libcrypto has DH_set0_pqg])]) | ||
2815 | |||
2816 | AC_SEARCH_LIBS([DSA_get0_key], [crypto], | ||
2817 | [AC_DEFINE([HAVE_DSA_GET0_KEY], [1], | ||
2818 | [Define if libcrypto has DSA_get0_key])]) | ||
2819 | AC_SEARCH_LIBS([DSA_get0_pqg], [crypto], | ||
2820 | [AC_DEFINE([HAVE_DSA_GET0_PQG], [1], | ||
2821 | [Define if libcrypto has DSA_get0_pqg])]) | ||
2822 | AC_SEARCH_LIBS([DSA_set0_key], [crypto], | ||
2823 | [AC_DEFINE([HAVE_DSA_SET0_KEY], [1], | ||
2824 | [Define if libcrypto has DSA_set0_key])]) | ||
2825 | AC_SEARCH_LIBS([DSA_set0_pqg], [crypto], | ||
2826 | [AC_DEFINE([HAVE_DSA_SET0_PQG], [1], | ||
2827 | [Define if libcrypto has DSA_set0_pqg])]) | ||
2828 | |||
2829 | AC_SEARCH_LIBS([DSA_SIG_get0], [crypto], | ||
2830 | [AC_DEFINE([HAVE_DSA_SIG_GET0], [1], | ||
2831 | [Define if libcrypto has DSA_SIG_get0])]) | ||
2832 | AC_SEARCH_LIBS([DSA_SIG_set0], [crypto], | ||
2833 | [AC_DEFINE([HAVE_DSA_SIG_SET0], [1], | ||
2834 | [Define if libcrypto has DSA_SIG_set0])]) | ||
2835 | |||
2836 | AC_SEARCH_LIBS([ECDSA_SIG_get0], [crypto], | ||
2837 | [AC_DEFINE([HAVE_ECDSA_SIG_GET0], [1], | ||
2838 | [Define if libcrypto has ECDSA_SIG_get0])]) | ||
2839 | AC_SEARCH_LIBS([ECDSA_SIG_set0], [crypto], | ||
2840 | [AC_DEFINE([HAVE_ECDSA_SIG_SET0], [1], | ||
2841 | [Define if libcrypto has ECDSA_SIG_set0])]) | ||
2842 | |||
2843 | AC_SEARCH_LIBS([EVP_CIPHER_CTX_iv], [crypto], | ||
2844 | [AC_DEFINE([HAVE_EVP_CIPHER_CTX_IV], [1], | ||
2845 | [Define if libcrypto has EVP_CIPHER_CTX_iv])]) | ||
2846 | AC_SEARCH_LIBS([EVP_CIPHER_CTX_iv_noconst], [crypto], | ||
2847 | [AC_DEFINE([HAVE_EVP_CIPHER_CTX_IV_NOCONST], [1], | ||
2848 | [Define if libcrypto has EVP_CIPHER_CTX_iv_noconst])]) | ||
2849 | AC_SEARCH_LIBS([EVP_CIPHER_CTX_get_iv], [crypto], | ||
2850 | [AC_DEFINE([HAVE_EVP_CIPHER_CTX_GET_IV], [1], | ||
2851 | [Define if libcrypto has EVP_CIPHER_CTX_get_iv])]) | ||
2852 | AC_SEARCH_LIBS([EVP_CIPHER_CTX_set_iv], [crypto], | ||
2853 | [AC_DEFINE([HAVE_EVP_CIPHER_CTX_GET_IV], [1], | ||
2854 | [Define if libcrypto has EVP_CIPHER_CTX_set_iv])]) | ||
2855 | |||
2856 | AC_SEARCH_LIBS([RSA_get0_crt_params], [crypto], | ||
2857 | [AC_DEFINE([HAVE_RSA_GET0_CRT_PARAMS], [1], | ||
2858 | [Define if libcrypto has RSA_get0_crt_params])]) | ||
2859 | AC_SEARCH_LIBS([RSA_get0_factors], [crypto], | ||
2860 | [AC_DEFINE([HAVE_RSA_GET0_FACTORS], [1], | ||
2861 | [Define if libcrypto has RSA_get0_factors])]) | ||
2862 | AC_SEARCH_LIBS([RSA_get0_key], [crypto], | ||
2863 | [AC_DEFINE([HAVE_RSA_GET0_KEY], [1], | ||
2864 | [Define if libcrypto has RSA_get0_key])]) | ||
2865 | AC_SEARCH_LIBS([RSA_set0_crt_params], [crypto], | ||
2866 | [AC_DEFINE([HAVE_RSA_SET0_CRT_PARAMS], [1], | ||
2867 | [Define if libcrypto has RSA_get0_srt_params])]) | ||
2868 | AC_SEARCH_LIBS([RSA_set0_factors], [crypto], | ||
2869 | [AC_DEFINE([HAVE_RSA_SET0_FACTORS], [1], | ||
2870 | [Define if libcrypto has RSA_set0_factors])]) | ||
2871 | AC_SEARCH_LIBS([RSA_set0_key], [crypto], | ||
2872 | [AC_DEFINE([HAVE_RSA_SET0_KEY], [1], | ||
2873 | [Define if libcrypto has RSA_set0_key])]) | ||
2874 | |||
2875 | AC_SEARCH_LIBS([RSA_meth_free], [crypto], | ||
2876 | [AC_DEFINE([HAVE_RSA_METH_FREE], [1], | ||
2877 | [Define if libcrypto has RSA_meth_free])]) | ||
2878 | AC_SEARCH_LIBS([RSA_meth_dup], [crypto], | ||
2879 | [AC_DEFINE([HAVE_RSA_METH_DUP], [1], | ||
2880 | [Define if libcrypto has RSA_meth_dup])]) | ||
2881 | AC_SEARCH_LIBS([RSA_meth_set1_name], [crypto], | ||
2882 | [AC_DEFINE([HAVE_RSA_METH_SET1_NAME], [1], | ||
2883 | [Define if libcrypto has RSA_meth_set1_name])]) | ||
2884 | AC_SEARCH_LIBS([RSA_meth_get_finish], [crypto], | ||
2885 | [AC_DEFINE([HAVE_RSA_METH_GET_FINISH], [1], | ||
2886 | [Define if libcrypto has RSA_meth_get_finish])]) | ||
2887 | AC_SEARCH_LIBS([RSA_meth_set_priv_enc], [crypto], | ||
2888 | [AC_DEFINE([HAVE_RSA_METH_SET_PRIV_ENC], [1], | ||
2889 | [Define if libcrypto has RSA_meth_set_priv_enc])]) | ||
2890 | AC_SEARCH_LIBS([RSA_meth_set_priv_dec], [crypto], | ||
2891 | [AC_DEFINE([HAVE_RSA_METH_SET_PRIV_DEC], [1], | ||
2892 | [Define if libcrypto has RSA_meth_set_priv_dec])]) | ||
2893 | AC_SEARCH_LIBS([RSA_meth_set_finish], [crypto], | ||
2894 | [AC_DEFINE([HAVE_RSA_METH_SET_FINISH], [1], | ||
2895 | [Define if libcrypto has RSA_meth_set_finish])]) | ||
2896 | |||
2897 | AC_SEARCH_LIBS([EVP_PKEY_get0_RSA], [crypto], | ||
2898 | [AC_DEFINE([HAVE_EVP_PKEY_GET0_RSA], [1], | ||
2899 | [Define if libcrypto has EVP_PKEY_get0_RSA])]) | ||
2900 | |||
2901 | AC_SEARCH_LIBS([EVP_MD_CTX_new], [crypto], | ||
2902 | [AC_DEFINE([HAVE_EVP_MD_CTX_NEW], [1], | ||
2903 | [Define if libcrypto has EVP_MD_CTX_new])]) | ||
2904 | AC_SEARCH_LIBS([EVP_MD_CTX_free], [crypto], | ||
2905 | [AC_DEFINE([HAVE_EVP_MD_CTX_FREE], [1], | ||
2906 | [Define if libcrypto has EVP_MD_CTX_free])]) | ||
2907 | |||
2908 | AC_MSG_CHECKING([if EVP_DigestUpdate returns an int]) | 2847 | AC_MSG_CHECKING([if EVP_DigestUpdate returns an int]) |
2909 | AC_LINK_IFELSE( | 2848 | AC_LINK_IFELSE( |
2910 | [AC_LANG_PROGRAM([[ | 2849 | [AC_LANG_PROGRAM([[ |
@@ -3036,6 +2975,7 @@ if test "x$openssl" = "xyes" ; then | |||
3036 | if test x$enable_nistp256 = x1 || test x$enable_nistp384 = x1 || \ | 2975 | if test x$enable_nistp256 = x1 || test x$enable_nistp384 = x1 || \ |
3037 | test x$enable_nistp521 = x1; then | 2976 | test x$enable_nistp521 = x1; then |
3038 | AC_DEFINE(OPENSSL_HAS_ECC, [1], [OpenSSL has ECC]) | 2977 | AC_DEFINE(OPENSSL_HAS_ECC, [1], [OpenSSL has ECC]) |
2978 | AC_CHECK_FUNCS([EC_KEY_METHOD_new]) | ||
3039 | fi | 2979 | fi |
3040 | if test x$enable_nistp256 = x1; then | 2980 | if test x$enable_nistp256 = x1; then |
3041 | AC_DEFINE([OPENSSL_HAS_NISTP256], [1], | 2981 | AC_DEFINE([OPENSSL_HAS_NISTP256], [1], |
@@ -3516,10 +3456,10 @@ fi | |||
3516 | AC_CHECK_TYPES([long long, unsigned long long, long double]) | 3456 | AC_CHECK_TYPES([long long, unsigned long long, long double]) |
3517 | 3457 | ||
3518 | # Check datatype sizes | 3458 | # Check datatype sizes |
3519 | AC_CHECK_SIZEOF([short int], [2]) | 3459 | AC_CHECK_SIZEOF([short int]) |
3520 | AC_CHECK_SIZEOF([int], [4]) | 3460 | AC_CHECK_SIZEOF([int]) |
3521 | AC_CHECK_SIZEOF([long int], [4]) | 3461 | AC_CHECK_SIZEOF([long int]) |
3522 | AC_CHECK_SIZEOF([long long int], [8]) | 3462 | AC_CHECK_SIZEOF([long long int]) |
3523 | 3463 | ||
3524 | # Sanity check long long for some platforms (AIX) | 3464 | # Sanity check long long for some platforms (AIX) |
3525 | if test "x$ac_cv_sizeof_long_long_int" = "x4" ; then | 3465 | if test "x$ac_cv_sizeof_long_long_int" = "x4" ; then |
@@ -4468,8 +4408,8 @@ AC_ARG_WITH([kerberos5], | |||
4468 | [ CPPFLAGS="$oldCPP" ]) | 4408 | [ CPPFLAGS="$oldCPP" ]) |
4469 | 4409 | ||
4470 | fi | 4410 | fi |
4471 | if test ! -z "$need_dash_r" ; then | 4411 | if test -n "${rpath_opt}" ; then |
4472 | LDFLAGS="$LDFLAGS -R${KRB5ROOT}/lib" | 4412 | LDFLAGS="$LDFLAGS ${rpath_opt}${KRB5ROOT}/lib" |
4473 | fi | 4413 | fi |
4474 | if test ! -z "$blibpath" ; then | 4414 | if test ! -z "$blibpath" ; then |
4475 | blibpath="$blibpath:${KRB5ROOT}/lib" | 4415 | blibpath="$blibpath:${KRB5ROOT}/lib" |
diff --git a/contrib/cygwin/ssh-host-config b/contrib/cygwin/ssh-host-config index 261020af3..a8572e2ac 100644 --- a/contrib/cygwin/ssh-host-config +++ b/contrib/cygwin/ssh-host-config | |||
@@ -61,7 +61,7 @@ LOCALSTATEDIR=/var | |||
61 | 61 | ||
62 | sshd_config_configured=no | 62 | sshd_config_configured=no |
63 | port_number=22 | 63 | port_number=22 |
64 | service_name=sshd | 64 | service_name=cygsshd |
65 | strictmodes=yes | 65 | strictmodes=yes |
66 | cygwin_value="" | 66 | cygwin_value="" |
67 | user_account= | 67 | user_account= |
@@ -307,7 +307,7 @@ check_service_files_ownership() { | |||
307 | 307 | ||
308 | if [ -z "${run_service_as}" ] | 308 | if [ -z "${run_service_as}" ] |
309 | then | 309 | then |
310 | accnt_name=$(/usr/bin/cygrunsrv -VQ sshd | | 310 | accnt_name=$(/usr/bin/cygrunsrv -VQ "${service_name}" | |
311 | /usr/bin/sed -ne 's/^Account *: *//gp') | 311 | /usr/bin/sed -ne 's/^Account *: *//gp') |
312 | if [ "${accnt_name}" = "LocalSystem" ] | 312 | if [ "${accnt_name}" = "LocalSystem" ] |
313 | then | 313 | then |
@@ -329,9 +329,9 @@ check_service_files_ownership() { | |||
329 | fi | 329 | fi |
330 | if [ -z "${run_service_as}" ] | 330 | if [ -z "${run_service_as}" ] |
331 | then | 331 | then |
332 | csih_warning "Couldn't determine name of user running sshd service from account database!" | 332 | csih_warning "Couldn't determine name of user running ${service_name} service from account database!" |
333 | csih_warning "As a result, this script cannot make sure that the files used" | 333 | csih_warning "As a result, this script cannot make sure that the files used" |
334 | csih_warning "by the sshd service belong to the user running the service." | 334 | csih_warning "by the ${service_name} service belong to the user running the service." |
335 | return 1 | 335 | return 1 |
336 | fi | 336 | fi |
337 | fi | 337 | fi |
@@ -367,8 +367,8 @@ check_service_files_ownership() { | |||
367 | if [ $ret -ne 0 ] | 367 | if [ $ret -ne 0 ] |
368 | then | 368 | then |
369 | csih_warning "Couldn't change owner of important files to ${run_service_as}!" | 369 | csih_warning "Couldn't change owner of important files to ${run_service_as}!" |
370 | csih_warning "This may cause the sshd service to fail! Please make sure that" | 370 | csih_warning "This may cause the ${service_name} service to fail! Please make sure that" |
371 | csih_warning "you have suufficient permissions to change the ownership of files" | 371 | csih_warning "you have sufficient permissions to change the ownership of files" |
372 | csih_warning "and try to run the ssh-host-config script again." | 372 | csih_warning "and try to run the ssh-host-config script again." |
373 | fi | 373 | fi |
374 | return $ret | 374 | return $ret |
@@ -394,14 +394,24 @@ install_service() { | |||
394 | then | 394 | then |
395 | csih_get_cygenv "${cygwin_value}" | 395 | csih_get_cygenv "${cygwin_value}" |
396 | 396 | ||
397 | if ( csih_is_nt2003 || [ "$csih_FORCE_PRIVILEGED_USER" = "yes" ] ) | 397 | if ( [ "$csih_FORCE_PRIVILEGED_USER" != "yes" ] ) |
398 | then | 398 | then |
399 | csih_inform "On Windows Server 2003, Windows Vista, and above, the" | 399 | # Enforce using privileged user on 64 bit Vista or W7 under WOW64 |
400 | csih_inform "SYSTEM account cannot setuid to other users -- a capability" | 400 | is_wow64=$(/usr/bin/uname | /usr/bin/grep -q 'WOW' && echo 1 || echo 0) |
401 | csih_inform "sshd requires. You need to have or to create a privileged" | ||
402 | csih_inform "account. This script will help you do so." | ||
403 | echo | ||
404 | 401 | ||
402 | if ( csih_is_nt2003 && ! csih_is_windows8 && [ "${is_wow64}" = "1" ] ) | ||
403 | then | ||
404 | csih_inform "Running 32 bit Cygwin on 64 bit Windows Vista or Windows 7" | ||
405 | csih_inform "the SYSTEM account is not sufficient to setuid to a local" | ||
406 | csih_inform "user account. You need to have or to create a privileged" | ||
407 | csih_inform "account. This script will help you do so." | ||
408 | echo | ||
409 | csih_FORCE_PRIVILEGED_USER=yes | ||
410 | fi | ||
411 | fi | ||
412 | |||
413 | if ( [ "$csih_FORCE_PRIVILEGED_USER" = "yes" ] ) | ||
414 | then | ||
405 | [ "${opt_force}" = "yes" ] && opt_f=-f | 415 | [ "${opt_force}" = "yes" ] && opt_f=-f |
406 | [ -n "${user_account}" ] && opt_u="-u ""${user_account}""" | 416 | [ -n "${user_account}" ] && opt_u="-u ""${user_account}""" |
407 | csih_select_privileged_username ${opt_f} ${opt_u} sshd | 417 | csih_select_privileged_username ${opt_f} ${opt_u} sshd |
@@ -412,11 +422,12 @@ install_service() { | |||
412 | csih_request "Do you want to proceed anyway?" || exit 1 | 422 | csih_request "Do you want to proceed anyway?" || exit 1 |
413 | let ++ret | 423 | let ++ret |
414 | fi | 424 | fi |
425 | # Never returns empty if NT or above | ||
426 | run_service_as=$(csih_service_should_run_as) | ||
427 | else | ||
428 | run_service_as="SYSTEM" | ||
415 | fi | 429 | fi |
416 | 430 | ||
417 | # Never returns empty if NT or above | ||
418 | run_service_as=$(csih_service_should_run_as) | ||
419 | |||
420 | if [ "${run_service_as}" = "${csih_PRIVILEGED_USERNAME}" ] | 431 | if [ "${run_service_as}" = "${csih_PRIVILEGED_USERNAME}" ] |
421 | then | 432 | then |
422 | password="${csih_PRIVILEGED_PASSWORD}" | 433 | password="${csih_PRIVILEGED_PASSWORD}" |
@@ -446,7 +457,7 @@ install_service() { | |||
446 | echo | 457 | echo |
447 | csih_inform "The sshd service has been installed under the LocalSystem" | 458 | csih_inform "The sshd service has been installed under the LocalSystem" |
448 | csih_inform "account (also known as SYSTEM). To start the service now, call" | 459 | csih_inform "account (also known as SYSTEM). To start the service now, call" |
449 | csih_inform "\`net start sshd' or \`cygrunsrv -S sshd'. Otherwise, it" | 460 | csih_inform "\`net start ${service_name}' or \`cygrunsrv -S ${service_name}'. Otherwise, it" |
450 | csih_inform "will start automatically after the next reboot." | 461 | csih_inform "will start automatically after the next reboot." |
451 | fi | 462 | fi |
452 | else | 463 | else |
@@ -669,14 +680,24 @@ then | |||
669 | fi | 680 | fi |
670 | 681 | ||
671 | # handle sshd_config | 682 | # handle sshd_config |
683 | # make sure not to change the existing file | ||
684 | mod_before="" | ||
685 | if [ -e "${SYSCONFDIR}/sshd_config" ] | ||
686 | then | ||
687 | mod_before=$(stat "${SYSCONFDIR}/sshd_config" | grep '^Modify:') | ||
688 | fi | ||
672 | csih_install_config "${SYSCONFDIR}/sshd_config" "${SYSCONFDIR}/defaults" || let ++warning_cnt | 689 | csih_install_config "${SYSCONFDIR}/sshd_config" "${SYSCONFDIR}/defaults" || let ++warning_cnt |
690 | mod_now=$(stat "${SYSCONFDIR}/sshd_config" | grep '^Modify:') | ||
673 | if ! /usr/bin/cmp "${SYSCONFDIR}/sshd_config" "${SYSCONFDIR}/defaults/${SYSCONFDIR}/sshd_config" >/dev/null 2>&1 | 691 | if ! /usr/bin/cmp "${SYSCONFDIR}/sshd_config" "${SYSCONFDIR}/defaults/${SYSCONFDIR}/sshd_config" >/dev/null 2>&1 |
674 | then | 692 | then |
675 | sshd_config_configured=yes | 693 | sshd_config_configured=yes |
676 | fi | 694 | fi |
677 | sshd_strictmodes || let warning_cnt+=$? | 695 | if [ "${mod_before}" != "${mod_now}" ] |
678 | sshd_privsep || let warning_cnt+=$? | 696 | then |
679 | sshd_config_tweak || let warning_cnt+=$? | 697 | sshd_strictmodes || let warning_cnt+=$? |
698 | sshd_config_tweak || let warning_cnt+=$? | ||
699 | fi | ||
700 | #sshd_privsep || let warning_cnt+=$? | ||
680 | update_services_file || let warning_cnt+=$? | 701 | update_services_file || let warning_cnt+=$? |
681 | update_inetd_conf || let warning_cnt+=$? | 702 | update_inetd_conf || let warning_cnt+=$? |
682 | install_service || let warning_cnt+=$? | 703 | install_service || let warning_cnt+=$? |
diff --git a/contrib/redhat/openssh.spec b/contrib/redhat/openssh.spec index d7823483d..f3c175523 100644 --- a/contrib/redhat/openssh.spec +++ b/contrib/redhat/openssh.spec | |||
@@ -1,4 +1,4 @@ | |||
1 | %define ver 7.9p1 | 1 | %define ver 8.0p1 |
2 | %define rel 1%{?dist} | 2 | %define rel 1%{?dist} |
3 | 3 | ||
4 | # OpenSSH privilege separation requires a user & group ID | 4 | # OpenSSH privilege separation requires a user & group ID |
diff --git a/contrib/suse/openssh.spec b/contrib/suse/openssh.spec index b43d8985a..478871815 100644 --- a/contrib/suse/openssh.spec +++ b/contrib/suse/openssh.spec | |||
@@ -13,7 +13,7 @@ | |||
13 | 13 | ||
14 | Summary: OpenSSH, a free Secure Shell (SSH) protocol implementation | 14 | Summary: OpenSSH, a free Secure Shell (SSH) protocol implementation |
15 | Name: openssh | 15 | Name: openssh |
16 | Version: 7.9p1 | 16 | Version: 8.0p1 |
17 | URL: https://www.openssh.com/ | 17 | URL: https://www.openssh.com/ |
18 | Release: 1 | 18 | Release: 1 |
19 | Source0: openssh-%{version}.tar.gz | 19 | Source0: openssh-%{version}.tar.gz |
diff --git a/crypto_api.h b/crypto_api.h index 7f45bbd69..eb05251ff 100644 --- a/crypto_api.h +++ b/crypto_api.h | |||
@@ -1,4 +1,4 @@ | |||
1 | /* $OpenBSD: crypto_api.h,v 1.4 2017/12/14 21:07:39 naddy Exp $ */ | 1 | /* $OpenBSD: crypto_api.h,v 1.5 2019/01/21 10:20:12 djm Exp $ */ |
2 | 2 | ||
3 | /* | 3 | /* |
4 | * Assembled from generated headers and source files by Markus Friedl. | 4 | * Assembled from generated headers and source files by Markus Friedl. |
@@ -15,10 +15,15 @@ | |||
15 | #endif | 15 | #endif |
16 | #include <stdlib.h> | 16 | #include <stdlib.h> |
17 | 17 | ||
18 | typedef int8_t crypto_int8; | ||
19 | typedef uint8_t crypto_uint8; | ||
20 | typedef int16_t crypto_int16; | ||
21 | typedef uint16_t crypto_uint16; | ||
18 | typedef int32_t crypto_int32; | 22 | typedef int32_t crypto_int32; |
19 | typedef uint32_t crypto_uint32; | 23 | typedef uint32_t crypto_uint32; |
20 | 24 | ||
21 | #define randombytes(buf, buf_len) arc4random_buf((buf), (buf_len)) | 25 | #define randombytes(buf, buf_len) arc4random_buf((buf), (buf_len)) |
26 | #define small_random32() arc4random() | ||
22 | 27 | ||
23 | #define crypto_hash_sha512_BYTES 64U | 28 | #define crypto_hash_sha512_BYTES 64U |
24 | 29 | ||
@@ -37,4 +42,15 @@ int crypto_sign_ed25519_open(unsigned char *, unsigned long long *, | |||
37 | const unsigned char *, unsigned long long, const unsigned char *); | 42 | const unsigned char *, unsigned long long, const unsigned char *); |
38 | int crypto_sign_ed25519_keypair(unsigned char *, unsigned char *); | 43 | int crypto_sign_ed25519_keypair(unsigned char *, unsigned char *); |
39 | 44 | ||
45 | #define crypto_kem_sntrup4591761_PUBLICKEYBYTES 1218 | ||
46 | #define crypto_kem_sntrup4591761_SECRETKEYBYTES 1600 | ||
47 | #define crypto_kem_sntrup4591761_CIPHERTEXTBYTES 1047 | ||
48 | #define crypto_kem_sntrup4591761_BYTES 32 | ||
49 | |||
50 | int crypto_kem_sntrup4591761_enc(unsigned char *cstr, unsigned char *k, | ||
51 | const unsigned char *pk); | ||
52 | int crypto_kem_sntrup4591761_dec(unsigned char *k, | ||
53 | const unsigned char *cstr, const unsigned char *sk); | ||
54 | int crypto_kem_sntrup4591761_keypair(unsigned char *pk, unsigned char *sk); | ||
55 | |||
40 | #endif /* crypto_api_h */ | 56 | #endif /* crypto_api_h */ |
@@ -1,4 +1,4 @@ | |||
1 | /* $OpenBSD: dh.c,v 1.68 2018/09/17 15:40:14 millert Exp $ */ | 1 | /* $OpenBSD: dh.c,v 1.69 2018/11/09 02:56:22 djm Exp $ */ |
2 | /* | 2 | /* |
3 | * Copyright (c) 2000 Niels Provos. All rights reserved. | 3 | * Copyright (c) 2000 Niels Provos. All rights reserved. |
4 | * | 4 | * |
@@ -406,7 +406,7 @@ dh_new_group16(void) | |||
406 | DH * | 406 | DH * |
407 | dh_new_group18(void) | 407 | dh_new_group18(void) |
408 | { | 408 | { |
409 | static char *gen = "2", *group16 = | 409 | static char *gen = "2", *group18 = |
410 | "FFFFFFFF" "FFFFFFFF" "C90FDAA2" "2168C234" "C4C6628B" "80DC1CD1" | 410 | "FFFFFFFF" "FFFFFFFF" "C90FDAA2" "2168C234" "C4C6628B" "80DC1CD1" |
411 | "29024E08" "8A67CC74" "020BBEA6" "3B139B22" "514A0879" "8E3404DD" | 411 | "29024E08" "8A67CC74" "020BBEA6" "3B139B22" "514A0879" "8E3404DD" |
412 | "EF9519B3" "CD3A431B" "302B0A6D" "F25F1437" "4FE1356D" "6D51C245" | 412 | "EF9519B3" "CD3A431B" "302B0A6D" "F25F1437" "4FE1356D" "6D51C245" |
@@ -451,7 +451,7 @@ dh_new_group18(void) | |||
451 | "9558E447" "5677E9AA" "9E3050E2" "765694DF" "C81F56E8" "80B96E71" | 451 | "9558E447" "5677E9AA" "9E3050E2" "765694DF" "C81F56E8" "80B96E71" |
452 | "60C980DD" "98EDD3DF" "FFFFFFFF" "FFFFFFFF"; | 452 | "60C980DD" "98EDD3DF" "FFFFFFFF" "FFFFFFFF"; |
453 | 453 | ||
454 | return (dh_new_group_asc(gen, group16)); | 454 | return (dh_new_group_asc(gen, group18)); |
455 | } | 455 | } |
456 | 456 | ||
457 | /* Select fallback group used by DH-GEX if moduli file cannot be read. */ | 457 | /* Select fallback group used by DH-GEX if moduli file cannot be read. */ |
@@ -1,4 +1,4 @@ | |||
1 | /* $OpenBSD: dh.h,v 1.15 2016/05/02 10:26:04 djm Exp $ */ | 1 | /* $OpenBSD: dh.h,v 1.17 2019/01/20 01:12:40 dtucker Exp $ */ |
2 | 2 | ||
3 | /* | 3 | /* |
4 | * Copyright (c) 2000 Niels Provos. All rights reserved. | 4 | * Copyright (c) 2000 Niels Provos. All rights reserved. |
@@ -48,7 +48,7 @@ u_int dh_estimate(int); | |||
48 | 48 | ||
49 | /* | 49 | /* |
50 | * Max value from RFC4419. | 50 | * Max value from RFC4419. |
51 | * Miniumum increased in light of DH precomputation attacks. | 51 | * Min value from RFC8270. |
52 | */ | 52 | */ |
53 | #define DH_GRP_MIN 2048 | 53 | #define DH_GRP_MIN 2048 |
54 | #define DH_GRP_MAX 8192 | 54 | #define DH_GRP_MAX 8192 |
diff --git a/dispatch.c b/dispatch.c index 0b3ea614e..6e4c501e0 100644 --- a/dispatch.c +++ b/dispatch.c | |||
@@ -1,4 +1,4 @@ | |||
1 | /* $OpenBSD: dispatch.c,v 1.31 2017/05/31 07:00:13 markus Exp $ */ | 1 | /* $OpenBSD: dispatch.c,v 1.32 2019/01/19 21:33:13 djm Exp $ */ |
2 | /* | 2 | /* |
3 | * Copyright (c) 2000 Markus Friedl. All rights reserved. | 3 | * Copyright (c) 2000 Markus Friedl. All rights reserved. |
4 | * | 4 | * |
@@ -47,7 +47,7 @@ dispatch_protocol_error(int type, u_int32_t seq, struct ssh *ssh) | |||
47 | (r = sshpkt_put_u32(ssh, seq)) != 0 || | 47 | (r = sshpkt_put_u32(ssh, seq)) != 0 || |
48 | (r = sshpkt_send(ssh)) != 0 || | 48 | (r = sshpkt_send(ssh)) != 0 || |
49 | (r = ssh_packet_write_wait(ssh)) != 0) | 49 | (r = ssh_packet_write_wait(ssh)) != 0) |
50 | sshpkt_fatal(ssh, __func__, r); | 50 | sshpkt_fatal(ssh, r, "%s", __func__); |
51 | return 0; | 51 | return 0; |
52 | } | 52 | } |
53 | 53 | ||
@@ -131,5 +131,5 @@ ssh_dispatch_run_fatal(struct ssh *ssh, int mode, volatile sig_atomic_t *done) | |||
131 | int r; | 131 | int r; |
132 | 132 | ||
133 | if ((r = ssh_dispatch_run(ssh, mode, done)) != 0) | 133 | if ((r = ssh_dispatch_run(ssh, mode, done)) != 0) |
134 | sshpkt_fatal(ssh, __func__, r); | 134 | sshpkt_fatal(ssh, r, "%s", __func__); |
135 | } | 135 | } |
diff --git a/dispatch.h b/dispatch.h index 17a6f3db6..a22d7749f 100644 --- a/dispatch.h +++ b/dispatch.h | |||
@@ -1,4 +1,4 @@ | |||
1 | /* $OpenBSD: dispatch.h,v 1.14 2017/05/31 07:00:13 markus Exp $ */ | 1 | /* $OpenBSD: dispatch.h,v 1.15 2019/01/19 21:45:31 djm Exp $ */ |
2 | 2 | ||
3 | /* | 3 | /* |
4 | * Copyright (c) 2000 Markus Friedl. All rights reserved. | 4 | * Copyright (c) 2000 Markus Friedl. All rights reserved. |
@@ -46,11 +46,4 @@ void ssh_dispatch_range(struct ssh *, u_int, u_int, dispatch_fn *); | |||
46 | int ssh_dispatch_run(struct ssh *, int, volatile sig_atomic_t *); | 46 | int ssh_dispatch_run(struct ssh *, int, volatile sig_atomic_t *); |
47 | void ssh_dispatch_run_fatal(struct ssh *, int, volatile sig_atomic_t *); | 47 | void ssh_dispatch_run_fatal(struct ssh *, int, volatile sig_atomic_t *); |
48 | 48 | ||
49 | #define dispatch_init(dflt) \ | ||
50 | ssh_dispatch_init(active_state, (dflt)) | ||
51 | #define dispatch_range(from, to, fn) \ | ||
52 | ssh_dispatch_range(active_state, (from), (to), (fn)) | ||
53 | #define dispatch_set(type, fn) \ | ||
54 | ssh_dispatch_set(active_state, (type), (fn)) | ||
55 | |||
56 | #endif | 49 | #endif |
@@ -24,6 +24,8 @@ | |||
24 | 24 | ||
25 | #include "includes.h" | 25 | #include "includes.h" |
26 | 26 | ||
27 | #define RANDOM_SEED_SIZE 48 | ||
28 | |||
27 | #ifdef WITH_OPENSSL | 29 | #ifdef WITH_OPENSSL |
28 | 30 | ||
29 | #include <sys/types.h> | 31 | #include <sys/types.h> |
@@ -64,8 +66,6 @@ | |||
64 | */ | 66 | */ |
65 | #ifndef OPENSSL_PRNG_ONLY | 67 | #ifndef OPENSSL_PRNG_ONLY |
66 | 68 | ||
67 | #define RANDOM_SEED_SIZE 48 | ||
68 | |||
69 | /* | 69 | /* |
70 | * Collect 'len' bytes of entropy into 'buf' from PRNGD/EGD daemon | 70 | * Collect 'len' bytes of entropy into 'buf' from PRNGD/EGD daemon |
71 | * listening either on 'tcp_port', or via Unix domain socket at * | 71 | * listening either on 'tcp_port', or via Unix domain socket at * |
@@ -216,35 +216,46 @@ rexec_recv_rng_seed(struct sshbuf *m) | |||
216 | void | 216 | void |
217 | seed_rng(void) | 217 | seed_rng(void) |
218 | { | 218 | { |
219 | #ifndef OPENSSL_PRNG_ONLY | ||
220 | unsigned char buf[RANDOM_SEED_SIZE]; | 219 | unsigned char buf[RANDOM_SEED_SIZE]; |
221 | #endif | 220 | |
222 | if (!ssh_compatible_openssl(OPENSSL_VERSION_NUMBER, SSLeay())) | 221 | /* Initialise libcrypto */ |
222 | ssh_libcrypto_init(); | ||
223 | |||
224 | if (!ssh_compatible_openssl(OPENSSL_VERSION_NUMBER, | ||
225 | OpenSSL_version_num())) | ||
223 | fatal("OpenSSL version mismatch. Built against %lx, you " | 226 | fatal("OpenSSL version mismatch. Built against %lx, you " |
224 | "have %lx", (u_long)OPENSSL_VERSION_NUMBER, SSLeay()); | 227 | "have %lx", (u_long)OPENSSL_VERSION_NUMBER, |
228 | OpenSSL_version_num()); | ||
225 | 229 | ||
226 | #ifndef OPENSSL_PRNG_ONLY | 230 | #ifndef OPENSSL_PRNG_ONLY |
227 | if (RAND_status() == 1) { | 231 | if (RAND_status() == 1) |
228 | debug3("RNG is ready, skipping seeding"); | 232 | debug3("RNG is ready, skipping seeding"); |
229 | return; | 233 | else { |
234 | if (seed_from_prngd(buf, sizeof(buf)) == -1) | ||
235 | fatal("Could not obtain seed from PRNGd"); | ||
236 | RAND_add(buf, sizeof(buf), sizeof(buf)); | ||
230 | } | 237 | } |
231 | |||
232 | if (seed_from_prngd(buf, sizeof(buf)) == -1) | ||
233 | fatal("Could not obtain seed from PRNGd"); | ||
234 | RAND_add(buf, sizeof(buf), sizeof(buf)); | ||
235 | memset(buf, '\0', sizeof(buf)); | ||
236 | |||
237 | #endif /* OPENSSL_PRNG_ONLY */ | 238 | #endif /* OPENSSL_PRNG_ONLY */ |
239 | |||
238 | if (RAND_status() != 1) | 240 | if (RAND_status() != 1) |
239 | fatal("PRNG is not seeded"); | 241 | fatal("PRNG is not seeded"); |
242 | |||
243 | /* Ensure arc4random() is primed */ | ||
244 | arc4random_buf(buf, sizeof(buf)); | ||
245 | explicit_bzero(buf, sizeof(buf)); | ||
240 | } | 246 | } |
241 | 247 | ||
242 | #else /* WITH_OPENSSL */ | 248 | #else /* WITH_OPENSSL */ |
243 | 249 | ||
244 | /* Handled in arc4random() */ | 250 | /* Acutal initialisation is handled in arc4random() */ |
245 | void | 251 | void |
246 | seed_rng(void) | 252 | seed_rng(void) |
247 | { | 253 | { |
254 | unsigned char buf[RANDOM_SEED_SIZE]; | ||
255 | |||
256 | /* Ensure arc4random() is primed */ | ||
257 | arc4random_buf(buf, sizeof(buf)); | ||
258 | explicit_bzero(buf, sizeof(buf)); | ||
248 | } | 259 | } |
249 | 260 | ||
250 | #endif /* WITH_OPENSSL */ | 261 | #endif /* WITH_OPENSSL */ |
diff --git a/groupaccess.c b/groupaccess.c index 9e4d25521..80d301915 100644 --- a/groupaccess.c +++ b/groupaccess.c | |||
@@ -1,4 +1,4 @@ | |||
1 | /* $OpenBSD: groupaccess.c,v 1.16 2015/05/04 06:10:48 djm Exp $ */ | 1 | /* $OpenBSD: groupaccess.c,v 1.17 2019/03/06 22:14:23 dtucker Exp $ */ |
2 | /* | 2 | /* |
3 | * Copyright (c) 2001 Kevin Steves. All rights reserved. | 3 | * Copyright (c) 2001 Kevin Steves. All rights reserved. |
4 | * | 4 | * |
@@ -103,7 +103,8 @@ ga_match_pattern_list(const char *group_pattern) | |||
103 | int i, found = 0; | 103 | int i, found = 0; |
104 | 104 | ||
105 | for (i = 0; i < ngroups; i++) { | 105 | for (i = 0; i < ngroups; i++) { |
106 | switch (match_pattern_list(groups_byname[i], group_pattern, 0)) { | 106 | switch (match_usergroup_pattern_list(groups_byname[i], |
107 | group_pattern)) { | ||
107 | case -1: | 108 | case -1: |
108 | return 0; /* Negated match wins */ | 109 | return 0; /* Negated match wins */ |
109 | case 0: | 110 | case 0: |
@@ -1,4 +1,4 @@ | |||
1 | /* $OpenBSD: kex.c,v 1.141 2018/07/09 13:37:10 sf Exp $ */ | 1 | /* $OpenBSD: kex.c,v 1.150 2019/01/21 12:08:13 djm Exp $ */ |
2 | /* | 2 | /* |
3 | * Copyright (c) 2000, 2001 Markus Friedl. All rights reserved. | 3 | * Copyright (c) 2000, 2001 Markus Friedl. All rights reserved. |
4 | * | 4 | * |
@@ -25,19 +25,25 @@ | |||
25 | 25 | ||
26 | #include "includes.h" | 26 | #include "includes.h" |
27 | 27 | ||
28 | 28 | #include <sys/types.h> | |
29 | #include <errno.h> | ||
29 | #include <signal.h> | 30 | #include <signal.h> |
30 | #include <stdarg.h> | 31 | #include <stdarg.h> |
31 | #include <stdio.h> | 32 | #include <stdio.h> |
32 | #include <stdlib.h> | 33 | #include <stdlib.h> |
33 | #include <string.h> | 34 | #include <string.h> |
35 | #include <unistd.h> | ||
36 | #include <poll.h> | ||
34 | 37 | ||
35 | #ifdef WITH_OPENSSL | 38 | #ifdef WITH_OPENSSL |
36 | #include <openssl/crypto.h> | 39 | #include <openssl/crypto.h> |
37 | #include <openssl/dh.h> | 40 | #include <openssl/dh.h> |
38 | #endif | 41 | #endif |
39 | 42 | ||
43 | #include "ssh.h" | ||
40 | #include "ssh2.h" | 44 | #include "ssh2.h" |
45 | #include "atomicio.h" | ||
46 | #include "version.h" | ||
41 | #include "packet.h" | 47 | #include "packet.h" |
42 | #include "compat.h" | 48 | #include "compat.h" |
43 | #include "cipher.h" | 49 | #include "cipher.h" |
@@ -102,6 +108,8 @@ static const struct kexalg kexalgs[] = { | |||
102 | #if defined(HAVE_EVP_SHA256) || !defined(WITH_OPENSSL) | 108 | #if defined(HAVE_EVP_SHA256) || !defined(WITH_OPENSSL) |
103 | { KEX_CURVE25519_SHA256, KEX_C25519_SHA256, 0, SSH_DIGEST_SHA256 }, | 109 | { KEX_CURVE25519_SHA256, KEX_C25519_SHA256, 0, SSH_DIGEST_SHA256 }, |
104 | { KEX_CURVE25519_SHA256_OLD, KEX_C25519_SHA256, 0, SSH_DIGEST_SHA256 }, | 110 | { KEX_CURVE25519_SHA256_OLD, KEX_C25519_SHA256, 0, SSH_DIGEST_SHA256 }, |
111 | { KEX_SNTRUP4591761X25519_SHA512, KEX_KEM_SNTRUP4591761X25519_SHA512, 0, | ||
112 | SSH_DIGEST_SHA512 }, | ||
105 | #endif /* HAVE_EVP_SHA256 || !WITH_OPENSSL */ | 113 | #endif /* HAVE_EVP_SHA256 || !WITH_OPENSSL */ |
106 | { NULL, -1, -1, -1}, | 114 | { NULL, -1, -1, -1}, |
107 | }; | 115 | }; |
@@ -487,6 +495,7 @@ kex_input_newkeys(int type, u_int32_t seq, struct ssh *ssh) | |||
487 | if ((r = ssh_set_newkeys(ssh, MODE_IN)) != 0) | 495 | if ((r = ssh_set_newkeys(ssh, MODE_IN)) != 0) |
488 | return r; | 496 | return r; |
489 | kex->done = 1; | 497 | kex->done = 1; |
498 | kex->flags &= ~KEX_INITIAL; | ||
490 | sshbuf_reset(kex->peer); | 499 | sshbuf_reset(kex->peer); |
491 | /* sshbuf_reset(kex->my); */ | 500 | /* sshbuf_reset(kex->my); */ |
492 | kex->flags &= ~KEX_INIT_SENT; | 501 | kex->flags &= ~KEX_INIT_SENT; |
@@ -577,31 +586,20 @@ kex_input_kexinit(int type, u_int32_t seq, struct ssh *ssh) | |||
577 | return SSH_ERR_INTERNAL_ERROR; | 586 | return SSH_ERR_INTERNAL_ERROR; |
578 | } | 587 | } |
579 | 588 | ||
580 | int | 589 | struct kex * |
581 | kex_new(struct ssh *ssh, char *proposal[PROPOSAL_MAX], struct kex **kexp) | 590 | kex_new(void) |
582 | { | 591 | { |
583 | struct kex *kex; | 592 | struct kex *kex; |
584 | int r; | ||
585 | 593 | ||
586 | *kexp = NULL; | 594 | if ((kex = calloc(1, sizeof(*kex))) == NULL || |
587 | if ((kex = calloc(1, sizeof(*kex))) == NULL) | 595 | (kex->peer = sshbuf_new()) == NULL || |
588 | return SSH_ERR_ALLOC_FAIL; | 596 | (kex->my = sshbuf_new()) == NULL || |
589 | if ((kex->peer = sshbuf_new()) == NULL || | 597 | (kex->client_version = sshbuf_new()) == NULL || |
590 | (kex->my = sshbuf_new()) == NULL) { | 598 | (kex->server_version = sshbuf_new()) == NULL) { |
591 | r = SSH_ERR_ALLOC_FAIL; | ||
592 | goto out; | ||
593 | } | ||
594 | if ((r = kex_prop2buf(kex->my, proposal)) != 0) | ||
595 | goto out; | ||
596 | kex->done = 0; | ||
597 | kex_reset_dispatch(ssh); | ||
598 | ssh_dispatch_set(ssh, SSH2_MSG_KEXINIT, &kex_input_kexinit); | ||
599 | r = 0; | ||
600 | *kexp = kex; | ||
601 | out: | ||
602 | if (r != 0) | ||
603 | kex_free(kex); | 599 | kex_free(kex); |
604 | return r; | 600 | return NULL; |
601 | } | ||
602 | return kex; | ||
605 | } | 603 | } |
606 | 604 | ||
607 | void | 605 | void |
@@ -640,6 +638,9 @@ kex_free(struct kex *kex) | |||
640 | { | 638 | { |
641 | u_int mode; | 639 | u_int mode; |
642 | 640 | ||
641 | if (kex == NULL) | ||
642 | return; | ||
643 | |||
643 | #ifdef WITH_OPENSSL | 644 | #ifdef WITH_OPENSSL |
644 | DH_free(kex->dh); | 645 | DH_free(kex->dh); |
645 | #ifdef OPENSSL_HAS_ECC | 646 | #ifdef OPENSSL_HAS_ECC |
@@ -652,9 +653,10 @@ kex_free(struct kex *kex) | |||
652 | } | 653 | } |
653 | sshbuf_free(kex->peer); | 654 | sshbuf_free(kex->peer); |
654 | sshbuf_free(kex->my); | 655 | sshbuf_free(kex->my); |
656 | sshbuf_free(kex->client_version); | ||
657 | sshbuf_free(kex->server_version); | ||
658 | sshbuf_free(kex->client_pub); | ||
655 | free(kex->session_id); | 659 | free(kex->session_id); |
656 | free(kex->client_version_string); | ||
657 | free(kex->server_version_string); | ||
658 | free(kex->failed_choice); | 660 | free(kex->failed_choice); |
659 | free(kex->hostkey_alg); | 661 | free(kex->hostkey_alg); |
660 | free(kex->name); | 662 | free(kex->name); |
@@ -662,11 +664,24 @@ kex_free(struct kex *kex) | |||
662 | } | 664 | } |
663 | 665 | ||
664 | int | 666 | int |
667 | kex_ready(struct ssh *ssh, char *proposal[PROPOSAL_MAX]) | ||
668 | { | ||
669 | int r; | ||
670 | |||
671 | if ((r = kex_prop2buf(ssh->kex->my, proposal)) != 0) | ||
672 | return r; | ||
673 | ssh->kex->flags = KEX_INITIAL; | ||
674 | kex_reset_dispatch(ssh); | ||
675 | ssh_dispatch_set(ssh, SSH2_MSG_KEXINIT, &kex_input_kexinit); | ||
676 | return 0; | ||
677 | } | ||
678 | |||
679 | int | ||
665 | kex_setup(struct ssh *ssh, char *proposal[PROPOSAL_MAX]) | 680 | kex_setup(struct ssh *ssh, char *proposal[PROPOSAL_MAX]) |
666 | { | 681 | { |
667 | int r; | 682 | int r; |
668 | 683 | ||
669 | if ((r = kex_new(ssh, proposal, &ssh->kex)) != 0) | 684 | if ((r = kex_ready(ssh, proposal)) != 0) |
670 | return r; | 685 | return r; |
671 | if ((r = kex_send_kexinit(ssh)) != 0) { /* we start */ | 686 | if ((r = kex_send_kexinit(ssh)) != 0) { /* we start */ |
672 | kex_free(ssh->kex); | 687 | kex_free(ssh->kex); |
@@ -839,7 +854,7 @@ kex_choose_conf(struct ssh *ssh) | |||
839 | } | 854 | } |
840 | 855 | ||
841 | /* Check whether client supports ext_info_c */ | 856 | /* Check whether client supports ext_info_c */ |
842 | if (kex->server) { | 857 | if (kex->server && (kex->flags & KEX_INITIAL)) { |
843 | char *ext; | 858 | char *ext; |
844 | 859 | ||
845 | ext = match_list("ext-info-c", peer[PROPOSAL_KEX_ALGS], NULL); | 860 | ext = match_list("ext-info-c", peer[PROPOSAL_KEX_ALGS], NULL); |
@@ -997,6 +1012,14 @@ kex_derive_keys(struct ssh *ssh, u_char *hash, u_int hashlen, | |||
997 | u_int i, j, mode, ctos; | 1012 | u_int i, j, mode, ctos; |
998 | int r; | 1013 | int r; |
999 | 1014 | ||
1015 | /* save initial hash as session id */ | ||
1016 | if (kex->session_id == NULL) { | ||
1017 | kex->session_id_len = hashlen; | ||
1018 | kex->session_id = malloc(kex->session_id_len); | ||
1019 | if (kex->session_id == NULL) | ||
1020 | return SSH_ERR_ALLOC_FAIL; | ||
1021 | memcpy(kex->session_id, hash, kex->session_id_len); | ||
1022 | } | ||
1000 | for (i = 0; i < NKEYS; i++) { | 1023 | for (i = 0; i < NKEYS; i++) { |
1001 | if ((r = derive_key(ssh, 'A'+i, kex->we_need, hash, hashlen, | 1024 | if ((r = derive_key(ssh, 'A'+i, kex->we_need, hash, hashlen, |
1002 | shared_secret, &keys[i])) != 0) { | 1025 | shared_secret, &keys[i])) != 0) { |
@@ -1015,29 +1038,276 @@ kex_derive_keys(struct ssh *ssh, u_char *hash, u_int hashlen, | |||
1015 | return 0; | 1038 | return 0; |
1016 | } | 1039 | } |
1017 | 1040 | ||
1018 | #ifdef WITH_OPENSSL | ||
1019 | int | 1041 | int |
1020 | kex_derive_keys_bn(struct ssh *ssh, u_char *hash, u_int hashlen, | 1042 | kex_load_hostkey(struct ssh *ssh, struct sshkey **prvp, struct sshkey **pubp) |
1021 | const BIGNUM *secret) | ||
1022 | { | 1043 | { |
1023 | struct sshbuf *shared_secret; | 1044 | struct kex *kex = ssh->kex; |
1024 | int r; | ||
1025 | 1045 | ||
1026 | if ((shared_secret = sshbuf_new()) == NULL) | 1046 | *pubp = NULL; |
1027 | return SSH_ERR_ALLOC_FAIL; | 1047 | *prvp = NULL; |
1028 | if ((r = sshbuf_put_bignum2(shared_secret, secret)) == 0) | 1048 | if (kex->load_host_public_key == NULL || |
1029 | r = kex_derive_keys(ssh, hash, hashlen, shared_secret); | 1049 | kex->load_host_private_key == NULL) |
1030 | sshbuf_free(shared_secret); | 1050 | return SSH_ERR_INVALID_ARGUMENT; |
1031 | return r; | 1051 | *pubp = kex->load_host_public_key(kex->hostkey_type, |
1052 | kex->hostkey_nid, ssh); | ||
1053 | *prvp = kex->load_host_private_key(kex->hostkey_type, | ||
1054 | kex->hostkey_nid, ssh); | ||
1055 | if (*pubp == NULL) | ||
1056 | return SSH_ERR_NO_HOSTKEY_LOADED; | ||
1057 | return 0; | ||
1032 | } | 1058 | } |
1033 | #endif | ||
1034 | 1059 | ||
1060 | int | ||
1061 | kex_verify_host_key(struct ssh *ssh, struct sshkey *server_host_key) | ||
1062 | { | ||
1063 | struct kex *kex = ssh->kex; | ||
1064 | |||
1065 | if (kex->verify_host_key == NULL) | ||
1066 | return SSH_ERR_INVALID_ARGUMENT; | ||
1067 | if (server_host_key->type != kex->hostkey_type || | ||
1068 | (kex->hostkey_type == KEY_ECDSA && | ||
1069 | server_host_key->ecdsa_nid != kex->hostkey_nid)) | ||
1070 | return SSH_ERR_KEY_TYPE_MISMATCH; | ||
1071 | if (kex->verify_host_key(server_host_key, ssh) == -1) | ||
1072 | return SSH_ERR_SIGNATURE_INVALID; | ||
1073 | return 0; | ||
1074 | } | ||
1035 | 1075 | ||
1036 | #if defined(DEBUG_KEX) || defined(DEBUG_KEXDH) || defined(DEBUG_KEXECDH) | 1076 | #if defined(DEBUG_KEX) || defined(DEBUG_KEXDH) || defined(DEBUG_KEXECDH) |
1037 | void | 1077 | void |
1038 | dump_digest(char *msg, u_char *digest, int len) | 1078 | dump_digest(const char *msg, const u_char *digest, int len) |
1039 | { | 1079 | { |
1040 | fprintf(stderr, "%s\n", msg); | 1080 | fprintf(stderr, "%s\n", msg); |
1041 | sshbuf_dump_data(digest, len, stderr); | 1081 | sshbuf_dump_data(digest, len, stderr); |
1042 | } | 1082 | } |
1043 | #endif | 1083 | #endif |
1084 | |||
1085 | /* | ||
1086 | * Send a plaintext error message to the peer, suffixed by \r\n. | ||
1087 | * Only used during banner exchange, and there only for the server. | ||
1088 | */ | ||
1089 | static void | ||
1090 | send_error(struct ssh *ssh, char *msg) | ||
1091 | { | ||
1092 | char *crnl = "\r\n"; | ||
1093 | |||
1094 | if (!ssh->kex->server) | ||
1095 | return; | ||
1096 | |||
1097 | if (atomicio(vwrite, ssh_packet_get_connection_out(ssh), | ||
1098 | msg, strlen(msg)) != strlen(msg) || | ||
1099 | atomicio(vwrite, ssh_packet_get_connection_out(ssh), | ||
1100 | crnl, strlen(crnl)) != strlen(crnl)) | ||
1101 | error("%s: write: %.100s", __func__, strerror(errno)); | ||
1102 | } | ||
1103 | |||
1104 | /* | ||
1105 | * Sends our identification string and waits for the peer's. Will block for | ||
1106 | * up to timeout_ms (or indefinitely if timeout_ms <= 0). | ||
1107 | * Returns on 0 success or a ssherr.h code on failure. | ||
1108 | */ | ||
1109 | int | ||
1110 | kex_exchange_identification(struct ssh *ssh, int timeout_ms, | ||
1111 | const char *version_addendum) | ||
1112 | { | ||
1113 | int remote_major, remote_minor, mismatch; | ||
1114 | size_t len, i, n; | ||
1115 | int r, expect_nl; | ||
1116 | u_char c; | ||
1117 | struct sshbuf *our_version = ssh->kex->server ? | ||
1118 | ssh->kex->server_version : ssh->kex->client_version; | ||
1119 | struct sshbuf *peer_version = ssh->kex->server ? | ||
1120 | ssh->kex->client_version : ssh->kex->server_version; | ||
1121 | char *our_version_string = NULL, *peer_version_string = NULL; | ||
1122 | char *cp, *remote_version = NULL; | ||
1123 | |||
1124 | /* Prepare and send our banner */ | ||
1125 | sshbuf_reset(our_version); | ||
1126 | if (version_addendum != NULL && *version_addendum == '\0') | ||
1127 | version_addendum = NULL; | ||
1128 | if ((r = sshbuf_putf(our_version, "SSH-%d.%d-%.100s%s%s\r\n", | ||
1129 | PROTOCOL_MAJOR_2, PROTOCOL_MINOR_2, SSH_VERSION, | ||
1130 | version_addendum == NULL ? "" : " ", | ||
1131 | version_addendum == NULL ? "" : version_addendum)) != 0) { | ||
1132 | error("%s: sshbuf_putf: %s", __func__, ssh_err(r)); | ||
1133 | goto out; | ||
1134 | } | ||
1135 | |||
1136 | if (atomicio(vwrite, ssh_packet_get_connection_out(ssh), | ||
1137 | sshbuf_mutable_ptr(our_version), | ||
1138 | sshbuf_len(our_version)) != sshbuf_len(our_version)) { | ||
1139 | error("%s: write: %.100s", __func__, strerror(errno)); | ||
1140 | r = SSH_ERR_SYSTEM_ERROR; | ||
1141 | goto out; | ||
1142 | } | ||
1143 | if ((r = sshbuf_consume_end(our_version, 2)) != 0) { /* trim \r\n */ | ||
1144 | error("%s: sshbuf_consume_end: %s", __func__, ssh_err(r)); | ||
1145 | goto out; | ||
1146 | } | ||
1147 | our_version_string = sshbuf_dup_string(our_version); | ||
1148 | if (our_version_string == NULL) { | ||
1149 | error("%s: sshbuf_dup_string failed", __func__); | ||
1150 | r = SSH_ERR_ALLOC_FAIL; | ||
1151 | goto out; | ||
1152 | } | ||
1153 | debug("Local version string %.100s", our_version_string); | ||
1154 | |||
1155 | /* Read other side's version identification. */ | ||
1156 | for (n = 0; ; n++) { | ||
1157 | if (n >= SSH_MAX_PRE_BANNER_LINES) { | ||
1158 | send_error(ssh, "No SSH identification string " | ||
1159 | "received."); | ||
1160 | error("%s: No SSH version received in first %u lines " | ||
1161 | "from server", __func__, SSH_MAX_PRE_BANNER_LINES); | ||
1162 | r = SSH_ERR_INVALID_FORMAT; | ||
1163 | goto out; | ||
1164 | } | ||
1165 | sshbuf_reset(peer_version); | ||
1166 | expect_nl = 0; | ||
1167 | for (i = 0; ; i++) { | ||
1168 | if (timeout_ms > 0) { | ||
1169 | r = waitrfd(ssh_packet_get_connection_in(ssh), | ||
1170 | &timeout_ms); | ||
1171 | if (r == -1 && errno == ETIMEDOUT) { | ||
1172 | send_error(ssh, "Timed out waiting " | ||
1173 | "for SSH identification string."); | ||
1174 | error("Connection timed out during " | ||
1175 | "banner exchange"); | ||
1176 | r = SSH_ERR_CONN_TIMEOUT; | ||
1177 | goto out; | ||
1178 | } else if (r == -1) { | ||
1179 | error("%s: %s", | ||
1180 | __func__, strerror(errno)); | ||
1181 | r = SSH_ERR_SYSTEM_ERROR; | ||
1182 | goto out; | ||
1183 | } | ||
1184 | } | ||
1185 | |||
1186 | len = atomicio(read, ssh_packet_get_connection_in(ssh), | ||
1187 | &c, 1); | ||
1188 | if (len != 1 && errno == EPIPE) { | ||
1189 | error("%s: Connection closed by remote host", | ||
1190 | __func__); | ||
1191 | r = SSH_ERR_CONN_CLOSED; | ||
1192 | goto out; | ||
1193 | } else if (len != 1) { | ||
1194 | error("%s: read: %.100s", | ||
1195 | __func__, strerror(errno)); | ||
1196 | r = SSH_ERR_SYSTEM_ERROR; | ||
1197 | goto out; | ||
1198 | } | ||
1199 | if (c == '\r') { | ||
1200 | expect_nl = 1; | ||
1201 | continue; | ||
1202 | } | ||
1203 | if (c == '\n') | ||
1204 | break; | ||
1205 | if (c == '\0' || expect_nl) { | ||
1206 | error("%s: banner line contains invalid " | ||
1207 | "characters", __func__); | ||
1208 | goto invalid; | ||
1209 | } | ||
1210 | if ((r = sshbuf_put_u8(peer_version, c)) != 0) { | ||
1211 | error("%s: sshbuf_put: %s", | ||
1212 | __func__, ssh_err(r)); | ||
1213 | goto out; | ||
1214 | } | ||
1215 | if (sshbuf_len(peer_version) > SSH_MAX_BANNER_LEN) { | ||
1216 | error("%s: banner line too long", __func__); | ||
1217 | goto invalid; | ||
1218 | } | ||
1219 | } | ||
1220 | /* Is this an actual protocol banner? */ | ||
1221 | if (sshbuf_len(peer_version) > 4 && | ||
1222 | memcmp(sshbuf_ptr(peer_version), "SSH-", 4) == 0) | ||
1223 | break; | ||
1224 | /* If not, then just log the line and continue */ | ||
1225 | if ((cp = sshbuf_dup_string(peer_version)) == NULL) { | ||
1226 | error("%s: sshbuf_dup_string failed", __func__); | ||
1227 | r = SSH_ERR_ALLOC_FAIL; | ||
1228 | goto out; | ||
1229 | } | ||
1230 | /* Do not accept lines before the SSH ident from a client */ | ||
1231 | if (ssh->kex->server) { | ||
1232 | error("%s: client sent invalid protocol identifier " | ||
1233 | "\"%.256s\"", __func__, cp); | ||
1234 | free(cp); | ||
1235 | goto invalid; | ||
1236 | } | ||
1237 | debug("%s: banner line %zu: %s", __func__, n, cp); | ||
1238 | free(cp); | ||
1239 | } | ||
1240 | peer_version_string = sshbuf_dup_string(peer_version); | ||
1241 | if (peer_version_string == NULL) | ||
1242 | error("%s: sshbuf_dup_string failed", __func__); | ||
1243 | /* XXX must be same size for sscanf */ | ||
1244 | if ((remote_version = calloc(1, sshbuf_len(peer_version))) == NULL) { | ||
1245 | error("%s: calloc failed", __func__); | ||
1246 | r = SSH_ERR_ALLOC_FAIL; | ||
1247 | goto out; | ||
1248 | } | ||
1249 | |||
1250 | /* | ||
1251 | * Check that the versions match. In future this might accept | ||
1252 | * several versions and set appropriate flags to handle them. | ||
1253 | */ | ||
1254 | if (sscanf(peer_version_string, "SSH-%d.%d-%[^\n]\n", | ||
1255 | &remote_major, &remote_minor, remote_version) != 3) { | ||
1256 | error("Bad remote protocol version identification: '%.100s'", | ||
1257 | peer_version_string); | ||
1258 | invalid: | ||
1259 | send_error(ssh, "Invalid SSH identification string."); | ||
1260 | r = SSH_ERR_INVALID_FORMAT; | ||
1261 | goto out; | ||
1262 | } | ||
1263 | debug("Remote protocol version %d.%d, remote software version %.100s", | ||
1264 | remote_major, remote_minor, remote_version); | ||
1265 | ssh->compat = compat_datafellows(remote_version); | ||
1266 | |||
1267 | mismatch = 0; | ||
1268 | switch (remote_major) { | ||
1269 | case 2: | ||
1270 | break; | ||
1271 | case 1: | ||
1272 | if (remote_minor != 99) | ||
1273 | mismatch = 1; | ||
1274 | break; | ||
1275 | default: | ||
1276 | mismatch = 1; | ||
1277 | break; | ||
1278 | } | ||
1279 | if (mismatch) { | ||
1280 | error("Protocol major versions differ: %d vs. %d", | ||
1281 | PROTOCOL_MAJOR_2, remote_major); | ||
1282 | send_error(ssh, "Protocol major versions differ."); | ||
1283 | r = SSH_ERR_NO_PROTOCOL_VERSION; | ||
1284 | goto out; | ||
1285 | } | ||
1286 | |||
1287 | if (ssh->kex->server && (ssh->compat & SSH_BUG_PROBE) != 0) { | ||
1288 | logit("probed from %s port %d with %s. Don't panic.", | ||
1289 | ssh_remote_ipaddr(ssh), ssh_remote_port(ssh), | ||
1290 | peer_version_string); | ||
1291 | r = SSH_ERR_CONN_CLOSED; /* XXX */ | ||
1292 | goto out; | ||
1293 | } | ||
1294 | if (ssh->kex->server && (ssh->compat & SSH_BUG_SCANNER) != 0) { | ||
1295 | logit("scanned from %s port %d with %s. Don't panic.", | ||
1296 | ssh_remote_ipaddr(ssh), ssh_remote_port(ssh), | ||
1297 | peer_version_string); | ||
1298 | r = SSH_ERR_CONN_CLOSED; /* XXX */ | ||
1299 | goto out; | ||
1300 | } | ||
1301 | if ((ssh->compat & SSH_BUG_RSASIGMD5) != 0) { | ||
1302 | logit("Remote version \"%.100s\" uses unsafe RSA signature " | ||
1303 | "scheme; disabling use of RSA keys", remote_version); | ||
1304 | } | ||
1305 | /* success */ | ||
1306 | r = 0; | ||
1307 | out: | ||
1308 | free(our_version_string); | ||
1309 | free(peer_version_string); | ||
1310 | free(remote_version); | ||
1311 | return r; | ||
1312 | } | ||
1313 | |||
@@ -1,4 +1,4 @@ | |||
1 | /* $OpenBSD: kex.h,v 1.91 2018/07/11 18:53:29 markus Exp $ */ | 1 | /* $OpenBSD: kex.h,v 1.107 2019/01/23 00:30:41 djm Exp $ */ |
2 | 2 | ||
3 | /* | 3 | /* |
4 | * Copyright (c) 2000, 2001 Markus Friedl. All rights reserved. | 4 | * Copyright (c) 2000, 2001 Markus Friedl. All rights reserved. |
@@ -27,6 +27,7 @@ | |||
27 | #define KEX_H | 27 | #define KEX_H |
28 | 28 | ||
29 | #include "mac.h" | 29 | #include "mac.h" |
30 | #include "crypto_api.h" | ||
30 | 31 | ||
31 | #ifdef WITH_LEAKMALLOC | 32 | #ifdef WITH_LEAKMALLOC |
32 | #include "leakmalloc.h" | 33 | #include "leakmalloc.h" |
@@ -62,6 +63,7 @@ | |||
62 | #define KEX_ECDH_SHA2_NISTP521 "ecdh-sha2-nistp521" | 63 | #define KEX_ECDH_SHA2_NISTP521 "ecdh-sha2-nistp521" |
63 | #define KEX_CURVE25519_SHA256 "curve25519-sha256" | 64 | #define KEX_CURVE25519_SHA256 "curve25519-sha256" |
64 | #define KEX_CURVE25519_SHA256_OLD "curve25519-sha256@libssh.org" | 65 | #define KEX_CURVE25519_SHA256_OLD "curve25519-sha256@libssh.org" |
66 | #define KEX_SNTRUP4591761X25519_SHA512 "sntrup4591761x25519-sha512@tinyssh.org" | ||
65 | 67 | ||
66 | #define COMP_NONE 0 | 68 | #define COMP_NONE 0 |
67 | /* pre-auth compression (COMP_ZLIB) is only supported in the client */ | 69 | /* pre-auth compression (COMP_ZLIB) is only supported in the client */ |
@@ -100,10 +102,12 @@ enum kex_exchange { | |||
100 | KEX_DH_GEX_SHA256, | 102 | KEX_DH_GEX_SHA256, |
101 | KEX_ECDH_SHA2, | 103 | KEX_ECDH_SHA2, |
102 | KEX_C25519_SHA256, | 104 | KEX_C25519_SHA256, |
105 | KEX_KEM_SNTRUP4591761X25519_SHA512, | ||
103 | KEX_MAX | 106 | KEX_MAX |
104 | }; | 107 | }; |
105 | 108 | ||
106 | #define KEX_INIT_SENT 0x0001 | 109 | #define KEX_INIT_SENT 0x0001 |
110 | #define KEX_INITIAL 0x0002 | ||
107 | 111 | ||
108 | struct sshenc { | 112 | struct sshenc { |
109 | char *name; | 113 | char *name; |
@@ -144,27 +148,29 @@ struct kex { | |||
144 | int ext_info_c; | 148 | int ext_info_c; |
145 | struct sshbuf *my; | 149 | struct sshbuf *my; |
146 | struct sshbuf *peer; | 150 | struct sshbuf *peer; |
151 | struct sshbuf *client_version; | ||
152 | struct sshbuf *server_version; | ||
147 | sig_atomic_t done; | 153 | sig_atomic_t done; |
148 | u_int flags; | 154 | u_int flags; |
149 | int hash_alg; | 155 | int hash_alg; |
150 | int ec_nid; | 156 | int ec_nid; |
151 | char *client_version_string; | ||
152 | char *server_version_string; | ||
153 | char *failed_choice; | 157 | char *failed_choice; |
154 | int (*verify_host_key)(struct sshkey *, struct ssh *); | 158 | int (*verify_host_key)(struct sshkey *, struct ssh *); |
155 | struct sshkey *(*load_host_public_key)(int, int, struct ssh *); | 159 | struct sshkey *(*load_host_public_key)(int, int, struct ssh *); |
156 | struct sshkey *(*load_host_private_key)(int, int, struct ssh *); | 160 | struct sshkey *(*load_host_private_key)(int, int, struct ssh *); |
157 | int (*host_key_index)(struct sshkey *, int, struct ssh *); | 161 | int (*host_key_index)(struct sshkey *, int, struct ssh *); |
158 | int (*sign)(struct sshkey *, struct sshkey *, u_char **, size_t *, | 162 | int (*sign)(struct ssh *, struct sshkey *, struct sshkey *, |
159 | const u_char *, size_t, const char *, u_int); | 163 | u_char **, size_t *, const u_char *, size_t, const char *); |
160 | int (*kex[KEX_MAX])(struct ssh *); | 164 | int (*kex[KEX_MAX])(struct ssh *); |
161 | /* kex specific state */ | 165 | /* kex specific state */ |
162 | DH *dh; /* DH */ | 166 | DH *dh; /* DH */ |
163 | u_int min, max, nbits; /* GEX */ | 167 | u_int min, max, nbits; /* GEX */ |
164 | EC_KEY *ec_client_key; /* ECDH */ | 168 | EC_KEY *ec_client_key; /* ECDH */ |
165 | const EC_GROUP *ec_group; /* ECDH */ | 169 | const EC_GROUP *ec_group; /* ECDH */ |
166 | u_char c25519_client_key[CURVE25519_SIZE]; /* 25519 */ | 170 | u_char c25519_client_key[CURVE25519_SIZE]; /* 25519 + KEM */ |
167 | u_char c25519_client_pubkey[CURVE25519_SIZE]; /* 25519 */ | 171 | u_char c25519_client_pubkey[CURVE25519_SIZE]; /* 25519 */ |
172 | u_char sntrup4591761_client_key[crypto_kem_sntrup4591761_SECRETKEYBYTES]; /* KEM */ | ||
173 | struct sshbuf *client_pub; | ||
168 | }; | 174 | }; |
169 | 175 | ||
170 | int kex_names_valid(const char *); | 176 | int kex_names_valid(const char *); |
@@ -172,7 +178,10 @@ char *kex_alg_list(char); | |||
172 | char *kex_names_cat(const char *, const char *); | 178 | char *kex_names_cat(const char *, const char *); |
173 | int kex_assemble_names(char **, const char *, const char *); | 179 | int kex_assemble_names(char **, const char *, const char *); |
174 | 180 | ||
175 | int kex_new(struct ssh *, char *[PROPOSAL_MAX], struct kex **); | 181 | int kex_exchange_identification(struct ssh *, int, const char *); |
182 | |||
183 | struct kex *kex_new(void); | ||
184 | int kex_ready(struct ssh *, char *[PROPOSAL_MAX]); | ||
176 | int kex_setup(struct ssh *, char *[PROPOSAL_MAX]); | 185 | int kex_setup(struct ssh *, char *[PROPOSAL_MAX]); |
177 | void kex_free_newkeys(struct newkeys *); | 186 | void kex_free_newkeys(struct newkeys *); |
178 | void kex_free(struct kex *); | 187 | void kex_free(struct kex *); |
@@ -180,44 +189,52 @@ void kex_free(struct kex *); | |||
180 | int kex_buf2prop(struct sshbuf *, int *, char ***); | 189 | int kex_buf2prop(struct sshbuf *, int *, char ***); |
181 | int kex_prop2buf(struct sshbuf *, char *proposal[PROPOSAL_MAX]); | 190 | int kex_prop2buf(struct sshbuf *, char *proposal[PROPOSAL_MAX]); |
182 | void kex_prop_free(char **); | 191 | void kex_prop_free(char **); |
192 | int kex_load_hostkey(struct ssh *, struct sshkey **, struct sshkey **); | ||
193 | int kex_verify_host_key(struct ssh *, struct sshkey *); | ||
183 | 194 | ||
184 | int kex_send_kexinit(struct ssh *); | 195 | int kex_send_kexinit(struct ssh *); |
185 | int kex_input_kexinit(int, u_int32_t, struct ssh *); | 196 | int kex_input_kexinit(int, u_int32_t, struct ssh *); |
186 | int kex_input_ext_info(int, u_int32_t, struct ssh *); | 197 | int kex_input_ext_info(int, u_int32_t, struct ssh *); |
187 | int kex_derive_keys(struct ssh *, u_char *, u_int, const struct sshbuf *); | 198 | int kex_derive_keys(struct ssh *, u_char *, u_int, const struct sshbuf *); |
188 | int kex_derive_keys_bn(struct ssh *, u_char *, u_int, const BIGNUM *); | ||
189 | int kex_send_newkeys(struct ssh *); | 199 | int kex_send_newkeys(struct ssh *); |
190 | int kex_start_rekex(struct ssh *); | 200 | int kex_start_rekex(struct ssh *); |
191 | 201 | ||
192 | int kexdh_client(struct ssh *); | ||
193 | int kexdh_server(struct ssh *); | ||
194 | int kexgex_client(struct ssh *); | 202 | int kexgex_client(struct ssh *); |
195 | int kexgex_server(struct ssh *); | 203 | int kexgex_server(struct ssh *); |
196 | int kexecdh_client(struct ssh *); | 204 | int kex_gen_client(struct ssh *); |
197 | int kexecdh_server(struct ssh *); | 205 | int kex_gen_server(struct ssh *); |
198 | int kexc25519_client(struct ssh *); | 206 | |
199 | int kexc25519_server(struct ssh *); | 207 | int kex_dh_keypair(struct kex *); |
208 | int kex_dh_enc(struct kex *, const struct sshbuf *, struct sshbuf **, | ||
209 | struct sshbuf **); | ||
210 | int kex_dh_dec(struct kex *, const struct sshbuf *, struct sshbuf **); | ||
211 | |||
212 | int kex_ecdh_keypair(struct kex *); | ||
213 | int kex_ecdh_enc(struct kex *, const struct sshbuf *, struct sshbuf **, | ||
214 | struct sshbuf **); | ||
215 | int kex_ecdh_dec(struct kex *, const struct sshbuf *, struct sshbuf **); | ||
216 | |||
217 | int kex_c25519_keypair(struct kex *); | ||
218 | int kex_c25519_enc(struct kex *, const struct sshbuf *, struct sshbuf **, | ||
219 | struct sshbuf **); | ||
220 | int kex_c25519_dec(struct kex *, const struct sshbuf *, struct sshbuf **); | ||
221 | |||
222 | int kex_kem_sntrup4591761x25519_keypair(struct kex *); | ||
223 | int kex_kem_sntrup4591761x25519_enc(struct kex *, const struct sshbuf *, | ||
224 | struct sshbuf **, struct sshbuf **); | ||
225 | int kex_kem_sntrup4591761x25519_dec(struct kex *, const struct sshbuf *, | ||
226 | struct sshbuf **); | ||
200 | 227 | ||
201 | int kex_dh_hash(int, const char *, const char *, | 228 | int kex_dh_keygen(struct kex *); |
202 | const u_char *, size_t, const u_char *, size_t, const u_char *, size_t, | 229 | int kex_dh_compute_key(struct kex *, BIGNUM *, struct sshbuf *); |
203 | const BIGNUM *, const BIGNUM *, const BIGNUM *, u_char *, size_t *); | ||
204 | 230 | ||
205 | int kexgex_hash(int, const char *, const char *, | 231 | int kexgex_hash(int, const struct sshbuf *, const struct sshbuf *, |
206 | const u_char *, size_t, const u_char *, size_t, const u_char *, size_t, | 232 | const struct sshbuf *, const struct sshbuf *, const struct sshbuf *, |
207 | int, int, int, | 233 | int, int, int, |
208 | const BIGNUM *, const BIGNUM *, const BIGNUM *, | 234 | const BIGNUM *, const BIGNUM *, const BIGNUM *, |
209 | const BIGNUM *, const BIGNUM *, | 235 | const BIGNUM *, const u_char *, size_t, |
210 | u_char *, size_t *); | 236 | u_char *, size_t *); |
211 | 237 | ||
212 | int kex_ecdh_hash(int, const EC_GROUP *, const char *, const char *, | ||
213 | const u_char *, size_t, const u_char *, size_t, const u_char *, size_t, | ||
214 | const EC_POINT *, const EC_POINT *, const BIGNUM *, u_char *, size_t *); | ||
215 | |||
216 | int kex_c25519_hash(int, const char *, const char *, | ||
217 | const u_char *, size_t, const u_char *, size_t, | ||
218 | const u_char *, size_t, const u_char *, const u_char *, | ||
219 | const u_char *, size_t, u_char *, size_t *); | ||
220 | |||
221 | void kexc25519_keygen(u_char key[CURVE25519_SIZE], u_char pub[CURVE25519_SIZE]) | 238 | void kexc25519_keygen(u_char key[CURVE25519_SIZE], u_char pub[CURVE25519_SIZE]) |
222 | __attribute__((__bounded__(__minbytes__, 1, CURVE25519_SIZE))) | 239 | __attribute__((__bounded__(__minbytes__, 1, CURVE25519_SIZE))) |
223 | __attribute__((__bounded__(__minbytes__, 2, CURVE25519_SIZE))); | 240 | __attribute__((__bounded__(__minbytes__, 2, CURVE25519_SIZE))); |
@@ -225,9 +242,13 @@ int kexc25519_shared_key(const u_char key[CURVE25519_SIZE], | |||
225 | const u_char pub[CURVE25519_SIZE], struct sshbuf *out) | 242 | const u_char pub[CURVE25519_SIZE], struct sshbuf *out) |
226 | __attribute__((__bounded__(__minbytes__, 1, CURVE25519_SIZE))) | 243 | __attribute__((__bounded__(__minbytes__, 1, CURVE25519_SIZE))) |
227 | __attribute__((__bounded__(__minbytes__, 2, CURVE25519_SIZE))); | 244 | __attribute__((__bounded__(__minbytes__, 2, CURVE25519_SIZE))); |
245 | int kexc25519_shared_key_ext(const u_char key[CURVE25519_SIZE], | ||
246 | const u_char pub[CURVE25519_SIZE], struct sshbuf *out, int) | ||
247 | __attribute__((__bounded__(__minbytes__, 1, CURVE25519_SIZE))) | ||
248 | __attribute__((__bounded__(__minbytes__, 2, CURVE25519_SIZE))); | ||
228 | 249 | ||
229 | #if defined(DEBUG_KEX) || defined(DEBUG_KEXDH) || defined(DEBUG_KEXECDH) | 250 | #if defined(DEBUG_KEX) || defined(DEBUG_KEXDH) || defined(DEBUG_KEXECDH) |
230 | void dump_digest(char *, u_char *, int); | 251 | void dump_digest(const char *, const u_char *, int); |
231 | #endif | 252 | #endif |
232 | 253 | ||
233 | #if !defined(WITH_OPENSSL) || !defined(OPENSSL_HAS_ECC) | 254 | #if !defined(WITH_OPENSSL) || !defined(OPENSSL_HAS_ECC) |
diff --git a/kexc25519.c b/kexc25519.c index 0897b8c51..f13d766d7 100644 --- a/kexc25519.c +++ b/kexc25519.c | |||
@@ -1,6 +1,6 @@ | |||
1 | /* $OpenBSD: kexc25519.c,v 1.10 2016/05/02 08:49:03 djm Exp $ */ | 1 | /* $OpenBSD: kexc25519.c,v 1.17 2019/01/21 10:40:11 djm Exp $ */ |
2 | /* | 2 | /* |
3 | * Copyright (c) 2001, 2013 Markus Friedl. All rights reserved. | 3 | * Copyright (c) 2019 Markus Friedl. All rights reserved. |
4 | * Copyright (c) 2010 Damien Miller. All rights reserved. | 4 | * Copyright (c) 2010 Damien Miller. All rights reserved. |
5 | * Copyright (c) 2013 Aris Adamantiadis. All rights reserved. | 5 | * Copyright (c) 2013 Aris Adamantiadis. All rights reserved. |
6 | * | 6 | * |
@@ -29,20 +29,16 @@ | |||
29 | 29 | ||
30 | #include <sys/types.h> | 30 | #include <sys/types.h> |
31 | 31 | ||
32 | #include <signal.h> | 32 | #include <stdio.h> |
33 | #include <string.h> | 33 | #include <string.h> |
34 | #include <signal.h> | ||
34 | 35 | ||
35 | #include <openssl/bn.h> | ||
36 | #include <openssl/evp.h> | ||
37 | |||
38 | #include "sshbuf.h" | ||
39 | #include "ssh2.h" | ||
40 | #include "sshkey.h" | 36 | #include "sshkey.h" |
41 | #include "cipher.h" | ||
42 | #include "kex.h" | 37 | #include "kex.h" |
43 | #include "log.h" | 38 | #include "sshbuf.h" |
44 | #include "digest.h" | 39 | #include "digest.h" |
45 | #include "ssherr.h" | 40 | #include "ssherr.h" |
41 | #include "ssh2.h" | ||
46 | 42 | ||
47 | extern int crypto_scalarmult_curve25519(u_char a[CURVE25519_SIZE], | 43 | extern int crypto_scalarmult_curve25519(u_char a[CURVE25519_SIZE], |
48 | const u_char b[CURVE25519_SIZE], const u_char c[CURVE25519_SIZE]) | 44 | const u_char b[CURVE25519_SIZE], const u_char c[CURVE25519_SIZE]) |
@@ -60,74 +56,144 @@ kexc25519_keygen(u_char key[CURVE25519_SIZE], u_char pub[CURVE25519_SIZE]) | |||
60 | } | 56 | } |
61 | 57 | ||
62 | int | 58 | int |
63 | kexc25519_shared_key(const u_char key[CURVE25519_SIZE], | 59 | kexc25519_shared_key_ext(const u_char key[CURVE25519_SIZE], |
64 | const u_char pub[CURVE25519_SIZE], struct sshbuf *out) | 60 | const u_char pub[CURVE25519_SIZE], struct sshbuf *out, int raw) |
65 | { | 61 | { |
66 | u_char shared_key[CURVE25519_SIZE]; | 62 | u_char shared_key[CURVE25519_SIZE]; |
63 | u_char zero[CURVE25519_SIZE]; | ||
67 | int r; | 64 | int r; |
68 | 65 | ||
69 | /* Check for all-zero public key */ | 66 | crypto_scalarmult_curve25519(shared_key, key, pub); |
70 | explicit_bzero(shared_key, CURVE25519_SIZE); | 67 | |
71 | if (timingsafe_bcmp(pub, shared_key, CURVE25519_SIZE) == 0) | 68 | /* Check for all-zero shared secret */ |
69 | explicit_bzero(zero, CURVE25519_SIZE); | ||
70 | if (timingsafe_bcmp(zero, shared_key, CURVE25519_SIZE) == 0) | ||
72 | return SSH_ERR_KEY_INVALID_EC_VALUE; | 71 | return SSH_ERR_KEY_INVALID_EC_VALUE; |
73 | 72 | ||
74 | crypto_scalarmult_curve25519(shared_key, key, pub); | ||
75 | #ifdef DEBUG_KEXECDH | 73 | #ifdef DEBUG_KEXECDH |
76 | dump_digest("shared secret", shared_key, CURVE25519_SIZE); | 74 | dump_digest("shared secret", shared_key, CURVE25519_SIZE); |
77 | #endif | 75 | #endif |
78 | sshbuf_reset(out); | 76 | if (raw) |
79 | r = sshbuf_put_bignum2_bytes(out, shared_key, CURVE25519_SIZE); | 77 | r = sshbuf_put(out, shared_key, CURVE25519_SIZE); |
78 | else | ||
79 | r = sshbuf_put_bignum2_bytes(out, shared_key, CURVE25519_SIZE); | ||
80 | explicit_bzero(shared_key, CURVE25519_SIZE); | 80 | explicit_bzero(shared_key, CURVE25519_SIZE); |
81 | return r; | 81 | return r; |
82 | } | 82 | } |
83 | 83 | ||
84 | int | 84 | int |
85 | kex_c25519_hash( | 85 | kexc25519_shared_key(const u_char key[CURVE25519_SIZE], |
86 | int hash_alg, | 86 | const u_char pub[CURVE25519_SIZE], struct sshbuf *out) |
87 | const char *client_version_string, | 87 | { |
88 | const char *server_version_string, | 88 | return kexc25519_shared_key_ext(key, pub, out, 0); |
89 | const u_char *ckexinit, size_t ckexinitlen, | 89 | } |
90 | const u_char *skexinit, size_t skexinitlen, | 90 | |
91 | const u_char *serverhostkeyblob, size_t sbloblen, | 91 | int |
92 | const u_char client_dh_pub[CURVE25519_SIZE], | 92 | kex_c25519_keypair(struct kex *kex) |
93 | const u_char server_dh_pub[CURVE25519_SIZE], | ||
94 | const u_char *shared_secret, size_t secretlen, | ||
95 | u_char *hash, size_t *hashlen) | ||
96 | { | 93 | { |
97 | struct sshbuf *b; | 94 | struct sshbuf *buf = NULL; |
95 | u_char *cp = NULL; | ||
98 | int r; | 96 | int r; |
99 | 97 | ||
100 | if (*hashlen < ssh_digest_bytes(hash_alg)) | 98 | if ((buf = sshbuf_new()) == NULL) |
101 | return SSH_ERR_INVALID_ARGUMENT; | ||
102 | if ((b = sshbuf_new()) == NULL) | ||
103 | return SSH_ERR_ALLOC_FAIL; | 99 | return SSH_ERR_ALLOC_FAIL; |
104 | if ((r = sshbuf_put_cstring(b, client_version_string)) < 0 || | 100 | if ((r = sshbuf_reserve(buf, CURVE25519_SIZE, &cp)) != 0) |
105 | (r = sshbuf_put_cstring(b, server_version_string)) < 0 || | 101 | goto out; |
106 | /* kexinit messages: fake header: len+SSH2_MSG_KEXINIT */ | 102 | kexc25519_keygen(kex->c25519_client_key, cp); |
107 | (r = sshbuf_put_u32(b, ckexinitlen+1)) < 0 || | 103 | #ifdef DEBUG_KEXECDH |
108 | (r = sshbuf_put_u8(b, SSH2_MSG_KEXINIT)) < 0 || | 104 | dump_digest("client public key c25519:", cp, CURVE25519_SIZE); |
109 | (r = sshbuf_put(b, ckexinit, ckexinitlen)) < 0 || | 105 | #endif |
110 | (r = sshbuf_put_u32(b, skexinitlen+1)) < 0 || | 106 | kex->client_pub = buf; |
111 | (r = sshbuf_put_u8(b, SSH2_MSG_KEXINIT)) < 0 || | 107 | buf = NULL; |
112 | (r = sshbuf_put(b, skexinit, skexinitlen)) < 0 || | 108 | out: |
113 | (r = sshbuf_put_string(b, serverhostkeyblob, sbloblen)) < 0 || | 109 | sshbuf_free(buf); |
114 | (r = sshbuf_put_string(b, client_dh_pub, CURVE25519_SIZE)) < 0 || | 110 | return r; |
115 | (r = sshbuf_put_string(b, server_dh_pub, CURVE25519_SIZE)) < 0 || | 111 | } |
116 | (r = sshbuf_put(b, shared_secret, secretlen)) < 0) { | 112 | |
117 | sshbuf_free(b); | 113 | int |
118 | return r; | 114 | kex_c25519_enc(struct kex *kex, const struct sshbuf *client_blob, |
115 | struct sshbuf **server_blobp, struct sshbuf **shared_secretp) | ||
116 | { | ||
117 | struct sshbuf *server_blob = NULL; | ||
118 | struct sshbuf *buf = NULL; | ||
119 | const u_char *client_pub; | ||
120 | u_char *server_pub; | ||
121 | u_char server_key[CURVE25519_SIZE]; | ||
122 | int r; | ||
123 | |||
124 | *server_blobp = NULL; | ||
125 | *shared_secretp = NULL; | ||
126 | |||
127 | if (sshbuf_len(client_blob) != CURVE25519_SIZE) { | ||
128 | r = SSH_ERR_SIGNATURE_INVALID; | ||
129 | goto out; | ||
119 | } | 130 | } |
120 | #ifdef DEBUG_KEX | 131 | client_pub = sshbuf_ptr(client_blob); |
121 | sshbuf_dump(b, stderr); | 132 | #ifdef DEBUG_KEXECDH |
133 | dump_digest("client public key 25519:", client_pub, CURVE25519_SIZE); | ||
122 | #endif | 134 | #endif |
123 | if (ssh_digest_buffer(hash_alg, b, hash, *hashlen) != 0) { | 135 | /* allocate space for encrypted KEM key and ECDH pub key */ |
124 | sshbuf_free(b); | 136 | if ((server_blob = sshbuf_new()) == NULL) { |
125 | return SSH_ERR_LIBCRYPTO_ERROR; | 137 | r = SSH_ERR_ALLOC_FAIL; |
138 | goto out; | ||
126 | } | 139 | } |
127 | sshbuf_free(b); | 140 | if ((r = sshbuf_reserve(server_blob, CURVE25519_SIZE, &server_pub)) != 0) |
128 | *hashlen = ssh_digest_bytes(hash_alg); | 141 | goto out; |
129 | #ifdef DEBUG_KEX | 142 | kexc25519_keygen(server_key, server_pub); |
130 | dump_digest("hash", hash, *hashlen); | 143 | /* allocate shared secret */ |
144 | if ((buf = sshbuf_new()) == NULL) { | ||
145 | r = SSH_ERR_ALLOC_FAIL; | ||
146 | goto out; | ||
147 | } | ||
148 | if ((r = kexc25519_shared_key_ext(server_key, client_pub, buf, 0)) < 0) | ||
149 | goto out; | ||
150 | #ifdef DEBUG_KEXECDH | ||
151 | dump_digest("server public key 25519:", server_pub, CURVE25519_SIZE); | ||
152 | dump_digest("encoded shared secret:", sshbuf_ptr(buf), sshbuf_len(buf)); | ||
131 | #endif | 153 | #endif |
132 | return 0; | 154 | *server_blobp = server_blob; |
155 | *shared_secretp = buf; | ||
156 | server_blob = NULL; | ||
157 | buf = NULL; | ||
158 | out: | ||
159 | explicit_bzero(server_key, sizeof(server_key)); | ||
160 | sshbuf_free(server_blob); | ||
161 | sshbuf_free(buf); | ||
162 | return r; | ||
163 | } | ||
164 | |||
165 | int | ||
166 | kex_c25519_dec(struct kex *kex, const struct sshbuf *server_blob, | ||
167 | struct sshbuf **shared_secretp) | ||
168 | { | ||
169 | struct sshbuf *buf = NULL; | ||
170 | const u_char *server_pub; | ||
171 | int r; | ||
172 | |||
173 | *shared_secretp = NULL; | ||
174 | |||
175 | if (sshbuf_len(server_blob) != CURVE25519_SIZE) { | ||
176 | r = SSH_ERR_SIGNATURE_INVALID; | ||
177 | goto out; | ||
178 | } | ||
179 | server_pub = sshbuf_ptr(server_blob); | ||
180 | #ifdef DEBUG_KEXECDH | ||
181 | dump_digest("server public key c25519:", server_pub, CURVE25519_SIZE); | ||
182 | #endif | ||
183 | /* shared secret */ | ||
184 | if ((buf = sshbuf_new()) == NULL) { | ||
185 | r = SSH_ERR_ALLOC_FAIL; | ||
186 | goto out; | ||
187 | } | ||
188 | if ((r = kexc25519_shared_key_ext(kex->c25519_client_key, server_pub, | ||
189 | buf, 0)) < 0) | ||
190 | goto out; | ||
191 | #ifdef DEBUG_KEXECDH | ||
192 | dump_digest("encoded shared secret:", sshbuf_ptr(buf), sshbuf_len(buf)); | ||
193 | #endif | ||
194 | *shared_secretp = buf; | ||
195 | buf = NULL; | ||
196 | out: | ||
197 | sshbuf_free(buf); | ||
198 | return r; | ||
133 | } | 199 | } |
diff --git a/kexc25519c.c b/kexc25519c.c deleted file mode 100644 index a8d92149c..000000000 --- a/kexc25519c.c +++ /dev/null | |||
@@ -1,169 +0,0 @@ | |||
1 | /* $OpenBSD: kexc25519c.c,v 1.9 2017/12/18 02:25:15 djm Exp $ */ | ||
2 | /* | ||
3 | * Copyright (c) 2001 Markus Friedl. All rights reserved. | ||
4 | * Copyright (c) 2010 Damien Miller. All rights reserved. | ||
5 | * Copyright (c) 2013 Aris Adamantiadis. All rights reserved. | ||
6 | * | ||
7 | * Redistribution and use in source and binary forms, with or without | ||
8 | * modification, are permitted provided that the following conditions | ||
9 | * are met: | ||
10 | * 1. Redistributions of source code must retain the above copyright | ||
11 | * notice, this list of conditions and the following disclaimer. | ||
12 | * 2. Redistributions in binary form must reproduce the above copyright | ||
13 | * notice, this list of conditions and the following disclaimer in the | ||
14 | * documentation and/or other materials provided with the distribution. | ||
15 | * | ||
16 | * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR | ||
17 | * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES | ||
18 | * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. | ||
19 | * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, | ||
20 | * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT | ||
21 | * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, | ||
22 | * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY | ||
23 | * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT | ||
24 | * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF | ||
25 | * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | ||
26 | */ | ||
27 | |||
28 | #include "includes.h" | ||
29 | |||
30 | #include <sys/types.h> | ||
31 | |||
32 | #include <stdio.h> | ||
33 | #include <string.h> | ||
34 | #include <signal.h> | ||
35 | |||
36 | #include "sshkey.h" | ||
37 | #include "cipher.h" | ||
38 | #include "kex.h" | ||
39 | #include "log.h" | ||
40 | #include "packet.h" | ||
41 | #include "ssh2.h" | ||
42 | #include "sshbuf.h" | ||
43 | #include "digest.h" | ||
44 | #include "ssherr.h" | ||
45 | |||
46 | static int | ||
47 | input_kex_c25519_reply(int type, u_int32_t seq, struct ssh *ssh); | ||
48 | |||
49 | int | ||
50 | kexc25519_client(struct ssh *ssh) | ||
51 | { | ||
52 | struct kex *kex = ssh->kex; | ||
53 | int r; | ||
54 | |||
55 | kexc25519_keygen(kex->c25519_client_key, kex->c25519_client_pubkey); | ||
56 | #ifdef DEBUG_KEXECDH | ||
57 | dump_digest("client private key:", kex->c25519_client_key, | ||
58 | sizeof(kex->c25519_client_key)); | ||
59 | #endif | ||
60 | if ((r = sshpkt_start(ssh, SSH2_MSG_KEX_ECDH_INIT)) != 0 || | ||
61 | (r = sshpkt_put_string(ssh, kex->c25519_client_pubkey, | ||
62 | sizeof(kex->c25519_client_pubkey))) != 0 || | ||
63 | (r = sshpkt_send(ssh)) != 0) | ||
64 | return r; | ||
65 | |||
66 | debug("expecting SSH2_MSG_KEX_ECDH_REPLY"); | ||
67 | ssh_dispatch_set(ssh, SSH2_MSG_KEX_ECDH_REPLY, &input_kex_c25519_reply); | ||
68 | return 0; | ||
69 | } | ||
70 | |||
71 | static int | ||
72 | input_kex_c25519_reply(int type, u_int32_t seq, struct ssh *ssh) | ||
73 | { | ||
74 | struct kex *kex = ssh->kex; | ||
75 | struct sshkey *server_host_key = NULL; | ||
76 | struct sshbuf *shared_secret = NULL; | ||
77 | u_char *server_pubkey = NULL; | ||
78 | u_char *server_host_key_blob = NULL, *signature = NULL; | ||
79 | u_char hash[SSH_DIGEST_MAX_LENGTH]; | ||
80 | size_t slen, pklen, sbloblen, hashlen; | ||
81 | int r; | ||
82 | |||
83 | if (kex->verify_host_key == NULL) { | ||
84 | r = SSH_ERR_INVALID_ARGUMENT; | ||
85 | goto out; | ||
86 | } | ||
87 | |||
88 | /* hostkey */ | ||
89 | if ((r = sshpkt_get_string(ssh, &server_host_key_blob, | ||
90 | &sbloblen)) != 0 || | ||
91 | (r = sshkey_from_blob(server_host_key_blob, sbloblen, | ||
92 | &server_host_key)) != 0) | ||
93 | goto out; | ||
94 | if (server_host_key->type != kex->hostkey_type || | ||
95 | (kex->hostkey_type == KEY_ECDSA && | ||
96 | server_host_key->ecdsa_nid != kex->hostkey_nid)) { | ||
97 | r = SSH_ERR_KEY_TYPE_MISMATCH; | ||
98 | goto out; | ||
99 | } | ||
100 | if (kex->verify_host_key(server_host_key, ssh) == -1) { | ||
101 | r = SSH_ERR_SIGNATURE_INVALID; | ||
102 | goto out; | ||
103 | } | ||
104 | |||
105 | /* Q_S, server public key */ | ||
106 | /* signed H */ | ||
107 | if ((r = sshpkt_get_string(ssh, &server_pubkey, &pklen)) != 0 || | ||
108 | (r = sshpkt_get_string(ssh, &signature, &slen)) != 0 || | ||
109 | (r = sshpkt_get_end(ssh)) != 0) | ||
110 | goto out; | ||
111 | if (pklen != CURVE25519_SIZE) { | ||
112 | r = SSH_ERR_SIGNATURE_INVALID; | ||
113 | goto out; | ||
114 | } | ||
115 | |||
116 | #ifdef DEBUG_KEXECDH | ||
117 | dump_digest("server public key:", server_pubkey, CURVE25519_SIZE); | ||
118 | #endif | ||
119 | |||
120 | if ((shared_secret = sshbuf_new()) == NULL) { | ||
121 | r = SSH_ERR_ALLOC_FAIL; | ||
122 | goto out; | ||
123 | } | ||
124 | if ((r = kexc25519_shared_key(kex->c25519_client_key, server_pubkey, | ||
125 | shared_secret)) < 0) | ||
126 | goto out; | ||
127 | |||
128 | /* calc and verify H */ | ||
129 | hashlen = sizeof(hash); | ||
130 | if ((r = kex_c25519_hash( | ||
131 | kex->hash_alg, | ||
132 | kex->client_version_string, | ||
133 | kex->server_version_string, | ||
134 | sshbuf_ptr(kex->my), sshbuf_len(kex->my), | ||
135 | sshbuf_ptr(kex->peer), sshbuf_len(kex->peer), | ||
136 | server_host_key_blob, sbloblen, | ||
137 | kex->c25519_client_pubkey, | ||
138 | server_pubkey, | ||
139 | sshbuf_ptr(shared_secret), sshbuf_len(shared_secret), | ||
140 | hash, &hashlen)) < 0) | ||
141 | goto out; | ||
142 | |||
143 | if ((r = sshkey_verify(server_host_key, signature, slen, hash, hashlen, | ||
144 | kex->hostkey_alg, ssh->compat)) != 0) | ||
145 | goto out; | ||
146 | |||
147 | /* save session id */ | ||
148 | if (kex->session_id == NULL) { | ||
149 | kex->session_id_len = hashlen; | ||
150 | kex->session_id = malloc(kex->session_id_len); | ||
151 | if (kex->session_id == NULL) { | ||
152 | r = SSH_ERR_ALLOC_FAIL; | ||
153 | goto out; | ||
154 | } | ||
155 | memcpy(kex->session_id, hash, kex->session_id_len); | ||
156 | } | ||
157 | |||
158 | if ((r = kex_derive_keys(ssh, hash, hashlen, shared_secret)) == 0) | ||
159 | r = kex_send_newkeys(ssh); | ||
160 | out: | ||
161 | explicit_bzero(hash, sizeof(hash)); | ||
162 | explicit_bzero(kex->c25519_client_key, sizeof(kex->c25519_client_key)); | ||
163 | free(server_host_key_blob); | ||
164 | free(server_pubkey); | ||
165 | free(signature); | ||
166 | sshkey_free(server_host_key); | ||
167 | sshbuf_free(shared_secret); | ||
168 | return r; | ||
169 | } | ||
diff --git a/kexc25519s.c b/kexc25519s.c deleted file mode 100644 index 0800a7a4b..000000000 --- a/kexc25519s.c +++ /dev/null | |||
@@ -1,158 +0,0 @@ | |||
1 | /* $OpenBSD: kexc25519s.c,v 1.11 2017/05/31 04:19:28 djm Exp $ */ | ||
2 | /* | ||
3 | * Copyright (c) 2001 Markus Friedl. All rights reserved. | ||
4 | * Copyright (c) 2010 Damien Miller. All rights reserved. | ||
5 | * Copyright (c) 2013 Aris Adamantiadis. All rights reserved. | ||
6 | * | ||
7 | * modification, are permitted provided that the following conditions | ||
8 | * are met: | ||
9 | * 1. Redistributions of source code must retain the above copyright | ||
10 | * notice, this list of conditions and the following disclaimer. | ||
11 | * 2. Redistributions in binary form must reproduce the above copyright | ||
12 | * notice, this list of conditions and the following disclaimer in the | ||
13 | * documentation and/or other materials provided with the distribution. | ||
14 | * | ||
15 | * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR | ||
16 | * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES | ||
17 | * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. | ||
18 | * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, | ||
19 | * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT | ||
20 | * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, | ||
21 | * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY | ||
22 | * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT | ||
23 | * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF | ||
24 | * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | ||
25 | */ | ||
26 | |||
27 | #include "includes.h" | ||
28 | |||
29 | #include <sys/types.h> | ||
30 | #include <stdio.h> | ||
31 | #include <string.h> | ||
32 | #include <signal.h> | ||
33 | |||
34 | #include "sshkey.h" | ||
35 | #include "cipher.h" | ||
36 | #include "digest.h" | ||
37 | #include "kex.h" | ||
38 | #include "log.h" | ||
39 | #include "packet.h" | ||
40 | #include "ssh2.h" | ||
41 | #include "sshbuf.h" | ||
42 | #include "ssherr.h" | ||
43 | |||
44 | static int input_kex_c25519_init(int, u_int32_t, struct ssh *); | ||
45 | |||
46 | int | ||
47 | kexc25519_server(struct ssh *ssh) | ||
48 | { | ||
49 | debug("expecting SSH2_MSG_KEX_ECDH_INIT"); | ||
50 | ssh_dispatch_set(ssh, SSH2_MSG_KEX_ECDH_INIT, &input_kex_c25519_init); | ||
51 | return 0; | ||
52 | } | ||
53 | |||
54 | static int | ||
55 | input_kex_c25519_init(int type, u_int32_t seq, struct ssh *ssh) | ||
56 | { | ||
57 | struct kex *kex = ssh->kex; | ||
58 | struct sshkey *server_host_private, *server_host_public; | ||
59 | struct sshbuf *shared_secret = NULL; | ||
60 | u_char *server_host_key_blob = NULL, *signature = NULL; | ||
61 | u_char server_key[CURVE25519_SIZE]; | ||
62 | u_char *client_pubkey = NULL; | ||
63 | u_char server_pubkey[CURVE25519_SIZE]; | ||
64 | u_char hash[SSH_DIGEST_MAX_LENGTH]; | ||
65 | size_t slen, pklen, sbloblen, hashlen; | ||
66 | int r; | ||
67 | |||
68 | /* generate private key */ | ||
69 | kexc25519_keygen(server_key, server_pubkey); | ||
70 | #ifdef DEBUG_KEXECDH | ||
71 | dump_digest("server private key:", server_key, sizeof(server_key)); | ||
72 | #endif | ||
73 | if (kex->load_host_public_key == NULL || | ||
74 | kex->load_host_private_key == NULL) { | ||
75 | r = SSH_ERR_INVALID_ARGUMENT; | ||
76 | goto out; | ||
77 | } | ||
78 | server_host_public = kex->load_host_public_key(kex->hostkey_type, | ||
79 | kex->hostkey_nid, ssh); | ||
80 | server_host_private = kex->load_host_private_key(kex->hostkey_type, | ||
81 | kex->hostkey_nid, ssh); | ||
82 | if (server_host_public == NULL) { | ||
83 | r = SSH_ERR_NO_HOSTKEY_LOADED; | ||
84 | goto out; | ||
85 | } | ||
86 | |||
87 | if ((r = sshpkt_get_string(ssh, &client_pubkey, &pklen)) != 0 || | ||
88 | (r = sshpkt_get_end(ssh)) != 0) | ||
89 | goto out; | ||
90 | if (pklen != CURVE25519_SIZE) { | ||
91 | r = SSH_ERR_SIGNATURE_INVALID; | ||
92 | goto out; | ||
93 | } | ||
94 | #ifdef DEBUG_KEXECDH | ||
95 | dump_digest("client public key:", client_pubkey, CURVE25519_SIZE); | ||
96 | #endif | ||
97 | |||
98 | if ((shared_secret = sshbuf_new()) == NULL) { | ||
99 | r = SSH_ERR_ALLOC_FAIL; | ||
100 | goto out; | ||
101 | } | ||
102 | if ((r = kexc25519_shared_key(server_key, client_pubkey, | ||
103 | shared_secret)) < 0) | ||
104 | goto out; | ||
105 | |||
106 | /* calc H */ | ||
107 | if ((r = sshkey_to_blob(server_host_public, &server_host_key_blob, | ||
108 | &sbloblen)) != 0) | ||
109 | goto out; | ||
110 | hashlen = sizeof(hash); | ||
111 | if ((r = kex_c25519_hash( | ||
112 | kex->hash_alg, | ||
113 | kex->client_version_string, | ||
114 | kex->server_version_string, | ||
115 | sshbuf_ptr(kex->peer), sshbuf_len(kex->peer), | ||
116 | sshbuf_ptr(kex->my), sshbuf_len(kex->my), | ||
117 | server_host_key_blob, sbloblen, | ||
118 | client_pubkey, | ||
119 | server_pubkey, | ||
120 | sshbuf_ptr(shared_secret), sshbuf_len(shared_secret), | ||
121 | hash, &hashlen)) < 0) | ||
122 | goto out; | ||
123 | |||
124 | /* save session id := H */ | ||
125 | if (kex->session_id == NULL) { | ||
126 | kex->session_id_len = hashlen; | ||
127 | kex->session_id = malloc(kex->session_id_len); | ||
128 | if (kex->session_id == NULL) { | ||
129 | r = SSH_ERR_ALLOC_FAIL; | ||
130 | goto out; | ||
131 | } | ||
132 | memcpy(kex->session_id, hash, kex->session_id_len); | ||
133 | } | ||
134 | |||
135 | /* sign H */ | ||
136 | if ((r = kex->sign(server_host_private, server_host_public, &signature, | ||
137 | &slen, hash, hashlen, kex->hostkey_alg, ssh->compat)) < 0) | ||
138 | goto out; | ||
139 | |||
140 | /* send server hostkey, ECDH pubkey 'Q_S' and signed H */ | ||
141 | if ((r = sshpkt_start(ssh, SSH2_MSG_KEX_ECDH_REPLY)) != 0 || | ||
142 | (r = sshpkt_put_string(ssh, server_host_key_blob, sbloblen)) != 0 || | ||
143 | (r = sshpkt_put_string(ssh, server_pubkey, sizeof(server_pubkey))) != 0 || | ||
144 | (r = sshpkt_put_string(ssh, signature, slen)) != 0 || | ||
145 | (r = sshpkt_send(ssh)) != 0) | ||
146 | goto out; | ||
147 | |||
148 | if ((r = kex_derive_keys(ssh, hash, hashlen, shared_secret)) == 0) | ||
149 | r = kex_send_newkeys(ssh); | ||
150 | out: | ||
151 | explicit_bzero(hash, sizeof(hash)); | ||
152 | explicit_bzero(server_key, sizeof(server_key)); | ||
153 | free(server_host_key_blob); | ||
154 | free(signature); | ||
155 | free(client_pubkey); | ||
156 | sshbuf_free(shared_secret); | ||
157 | return r; | ||
158 | } | ||
@@ -1,6 +1,6 @@ | |||
1 | /* $OpenBSD: kexdh.c,v 1.26 2016/05/02 10:26:04 djm Exp $ */ | 1 | /* $OpenBSD: kexdh.c,v 1.32 2019/01/21 10:40:11 djm Exp $ */ |
2 | /* | 2 | /* |
3 | * Copyright (c) 2001 Markus Friedl. All rights reserved. | 3 | * Copyright (c) 2019 Markus Friedl. All rights reserved. |
4 | * | 4 | * |
5 | * Redistribution and use in source and binary forms, with or without | 5 | * Redistribution and use in source and binary forms, with or without |
6 | * modification, are permitted provided that the following conditions | 6 | * modification, are permitted provided that the following conditions |
@@ -30,67 +30,172 @@ | |||
30 | #include <sys/types.h> | 30 | #include <sys/types.h> |
31 | 31 | ||
32 | #include <signal.h> | 32 | #include <signal.h> |
33 | 33 | #include <stdio.h> | |
34 | #include <openssl/evp.h> | 34 | #include <string.h> |
35 | 35 | ||
36 | #include "openbsd-compat/openssl-compat.h" | 36 | #include "openbsd-compat/openssl-compat.h" |
37 | #include <openssl/dh.h> | ||
37 | 38 | ||
38 | #include "ssh2.h" | ||
39 | #include "sshkey.h" | 39 | #include "sshkey.h" |
40 | #include "cipher.h" | ||
41 | #include "kex.h" | 40 | #include "kex.h" |
42 | #include "ssherr.h" | ||
43 | #include "sshbuf.h" | 41 | #include "sshbuf.h" |
44 | #include "digest.h" | 42 | #include "digest.h" |
43 | #include "ssherr.h" | ||
44 | #include "dh.h" | ||
45 | 45 | ||
46 | int | 46 | int |
47 | kex_dh_hash( | 47 | kex_dh_keygen(struct kex *kex) |
48 | int hash_alg, | ||
49 | const char *client_version_string, | ||
50 | const char *server_version_string, | ||
51 | const u_char *ckexinit, size_t ckexinitlen, | ||
52 | const u_char *skexinit, size_t skexinitlen, | ||
53 | const u_char *serverhostkeyblob, size_t sbloblen, | ||
54 | const BIGNUM *client_dh_pub, | ||
55 | const BIGNUM *server_dh_pub, | ||
56 | const BIGNUM *shared_secret, | ||
57 | u_char *hash, size_t *hashlen) | ||
58 | { | 48 | { |
59 | struct sshbuf *b; | 49 | switch (kex->kex_type) { |
60 | int r; | 50 | case KEX_DH_GRP1_SHA1: |
61 | 51 | kex->dh = dh_new_group1(); | |
62 | if (*hashlen < ssh_digest_bytes(hash_alg)) | 52 | break; |
53 | case KEX_DH_GRP14_SHA1: | ||
54 | case KEX_DH_GRP14_SHA256: | ||
55 | kex->dh = dh_new_group14(); | ||
56 | break; | ||
57 | case KEX_DH_GRP16_SHA512: | ||
58 | kex->dh = dh_new_group16(); | ||
59 | break; | ||
60 | case KEX_DH_GRP18_SHA512: | ||
61 | kex->dh = dh_new_group18(); | ||
62 | break; | ||
63 | default: | ||
63 | return SSH_ERR_INVALID_ARGUMENT; | 64 | return SSH_ERR_INVALID_ARGUMENT; |
64 | if ((b = sshbuf_new()) == NULL) | ||
65 | return SSH_ERR_ALLOC_FAIL; | ||
66 | if ((r = sshbuf_put_cstring(b, client_version_string)) != 0 || | ||
67 | (r = sshbuf_put_cstring(b, server_version_string)) != 0 || | ||
68 | /* kexinit messages: fake header: len+SSH2_MSG_KEXINIT */ | ||
69 | (r = sshbuf_put_u32(b, ckexinitlen+1)) != 0 || | ||
70 | (r = sshbuf_put_u8(b, SSH2_MSG_KEXINIT)) != 0 || | ||
71 | (r = sshbuf_put(b, ckexinit, ckexinitlen)) != 0 || | ||
72 | (r = sshbuf_put_u32(b, skexinitlen+1)) != 0 || | ||
73 | (r = sshbuf_put_u8(b, SSH2_MSG_KEXINIT)) != 0 || | ||
74 | (r = sshbuf_put(b, skexinit, skexinitlen)) != 0 || | ||
75 | (r = sshbuf_put_string(b, serverhostkeyblob, sbloblen)) != 0 || | ||
76 | (r = sshbuf_put_bignum2(b, client_dh_pub)) != 0 || | ||
77 | (r = sshbuf_put_bignum2(b, server_dh_pub)) != 0 || | ||
78 | (r = sshbuf_put_bignum2(b, shared_secret)) != 0) { | ||
79 | sshbuf_free(b); | ||
80 | return r; | ||
81 | } | 65 | } |
82 | #ifdef DEBUG_KEX | 66 | if (kex->dh == NULL) |
83 | sshbuf_dump(b, stderr); | 67 | return SSH_ERR_ALLOC_FAIL; |
68 | return (dh_gen_key(kex->dh, kex->we_need * 8)); | ||
69 | } | ||
70 | |||
71 | int | ||
72 | kex_dh_compute_key(struct kex *kex, BIGNUM *dh_pub, struct sshbuf *out) | ||
73 | { | ||
74 | BIGNUM *shared_secret = NULL; | ||
75 | u_char *kbuf = NULL; | ||
76 | size_t klen = 0; | ||
77 | int kout, r; | ||
78 | |||
79 | #ifdef DEBUG_KEXDH | ||
80 | fprintf(stderr, "dh_pub= "); | ||
81 | BN_print_fp(stderr, dh_pub); | ||
82 | fprintf(stderr, "\n"); | ||
83 | debug("bits %d", BN_num_bits(dh_pub)); | ||
84 | DHparams_print_fp(stderr, kex->dh); | ||
85 | fprintf(stderr, "\n"); | ||
84 | #endif | 86 | #endif |
85 | if (ssh_digest_buffer(hash_alg, b, hash, *hashlen) != 0) { | 87 | |
86 | sshbuf_free(b); | 88 | if (!dh_pub_is_valid(kex->dh, dh_pub)) { |
87 | return SSH_ERR_LIBCRYPTO_ERROR; | 89 | r = SSH_ERR_MESSAGE_INCOMPLETE; |
90 | goto out; | ||
91 | } | ||
92 | klen = DH_size(kex->dh); | ||
93 | if ((kbuf = malloc(klen)) == NULL || | ||
94 | (shared_secret = BN_new()) == NULL) { | ||
95 | r = SSH_ERR_ALLOC_FAIL; | ||
96 | goto out; | ||
97 | } | ||
98 | if ((kout = DH_compute_key(kbuf, dh_pub, kex->dh)) < 0 || | ||
99 | BN_bin2bn(kbuf, kout, shared_secret) == NULL) { | ||
100 | r = SSH_ERR_LIBCRYPTO_ERROR; | ||
101 | goto out; | ||
88 | } | 102 | } |
89 | sshbuf_free(b); | 103 | #ifdef DEBUG_KEXDH |
90 | *hashlen = ssh_digest_bytes(hash_alg); | 104 | dump_digest("shared secret", kbuf, kout); |
91 | #ifdef DEBUG_KEX | ||
92 | dump_digest("hash", hash, *hashlen); | ||
93 | #endif | 105 | #endif |
94 | return 0; | 106 | r = sshbuf_put_bignum2(out, shared_secret); |
107 | out: | ||
108 | freezero(kbuf, klen); | ||
109 | BN_clear_free(shared_secret); | ||
110 | return r; | ||
111 | } | ||
112 | |||
113 | int | ||
114 | kex_dh_keypair(struct kex *kex) | ||
115 | { | ||
116 | const BIGNUM *pub_key; | ||
117 | struct sshbuf *buf = NULL; | ||
118 | int r; | ||
119 | |||
120 | if ((r = kex_dh_keygen(kex)) != 0) | ||
121 | return r; | ||
122 | DH_get0_key(kex->dh, &pub_key, NULL); | ||
123 | if ((buf = sshbuf_new()) == NULL) | ||
124 | return SSH_ERR_ALLOC_FAIL; | ||
125 | if ((r = sshbuf_put_bignum2(buf, pub_key)) != 0 || | ||
126 | (r = sshbuf_get_u32(buf, NULL)) != 0) | ||
127 | goto out; | ||
128 | #ifdef DEBUG_KEXDH | ||
129 | DHparams_print_fp(stderr, kex->dh); | ||
130 | fprintf(stderr, "pub= "); | ||
131 | BN_print_fp(stderr, pub_key); | ||
132 | fprintf(stderr, "\n"); | ||
133 | #endif | ||
134 | kex->client_pub = buf; | ||
135 | buf = NULL; | ||
136 | out: | ||
137 | sshbuf_free(buf); | ||
138 | return r; | ||
139 | } | ||
140 | |||
141 | int | ||
142 | kex_dh_enc(struct kex *kex, const struct sshbuf *client_blob, | ||
143 | struct sshbuf **server_blobp, struct sshbuf **shared_secretp) | ||
144 | { | ||
145 | const BIGNUM *pub_key; | ||
146 | struct sshbuf *server_blob = NULL; | ||
147 | int r; | ||
148 | |||
149 | *server_blobp = NULL; | ||
150 | *shared_secretp = NULL; | ||
151 | |||
152 | if ((r = kex_dh_keygen(kex)) != 0) | ||
153 | goto out; | ||
154 | DH_get0_key(kex->dh, &pub_key, NULL); | ||
155 | if ((server_blob = sshbuf_new()) == NULL) { | ||
156 | r = SSH_ERR_ALLOC_FAIL; | ||
157 | goto out; | ||
158 | } | ||
159 | if ((r = sshbuf_put_bignum2(server_blob, pub_key)) != 0 || | ||
160 | (r = sshbuf_get_u32(server_blob, NULL)) != 0) | ||
161 | goto out; | ||
162 | if ((r = kex_dh_dec(kex, client_blob, shared_secretp)) != 0) | ||
163 | goto out; | ||
164 | *server_blobp = server_blob; | ||
165 | server_blob = NULL; | ||
166 | out: | ||
167 | DH_free(kex->dh); | ||
168 | kex->dh = NULL; | ||
169 | sshbuf_free(server_blob); | ||
170 | return r; | ||
171 | } | ||
172 | |||
173 | int | ||
174 | kex_dh_dec(struct kex *kex, const struct sshbuf *dh_blob, | ||
175 | struct sshbuf **shared_secretp) | ||
176 | { | ||
177 | struct sshbuf *buf = NULL; | ||
178 | BIGNUM *dh_pub = NULL; | ||
179 | int r; | ||
180 | |||
181 | *shared_secretp = NULL; | ||
182 | |||
183 | if ((buf = sshbuf_new()) == NULL) { | ||
184 | r = SSH_ERR_ALLOC_FAIL; | ||
185 | goto out; | ||
186 | } | ||
187 | if ((r = sshbuf_put_stringb(buf, dh_blob)) != 0 || | ||
188 | (r = sshbuf_get_bignum2(buf, &dh_pub)) != 0) | ||
189 | goto out; | ||
190 | sshbuf_reset(buf); | ||
191 | if ((r = kex_dh_compute_key(kex, dh_pub, buf)) != 0) | ||
192 | goto out; | ||
193 | *shared_secretp = buf; | ||
194 | buf = NULL; | ||
195 | out: | ||
196 | DH_free(kex->dh); | ||
197 | kex->dh = NULL; | ||
198 | sshbuf_free(buf); | ||
199 | return r; | ||
95 | } | 200 | } |
96 | #endif /* WITH_OPENSSL */ | 201 | #endif /* WITH_OPENSSL */ |
diff --git a/kexdhc.c b/kexdhc.c deleted file mode 100644 index 8b56377ad..000000000 --- a/kexdhc.c +++ /dev/null | |||
@@ -1,224 +0,0 @@ | |||
1 | /* $OpenBSD: kexdhc.c,v 1.22 2018/02/07 02:06:51 jsing Exp $ */ | ||
2 | /* | ||
3 | * Copyright (c) 2001 Markus Friedl. All rights reserved. | ||
4 | * | ||
5 | * Redistribution and use in source and binary forms, with or without | ||
6 | * modification, are permitted provided that the following conditions | ||
7 | * are met: | ||
8 | * 1. Redistributions of source code must retain the above copyright | ||
9 | * notice, this list of conditions and the following disclaimer. | ||
10 | * 2. Redistributions in binary form must reproduce the above copyright | ||
11 | * notice, this list of conditions and the following disclaimer in the | ||
12 | * documentation and/or other materials provided with the distribution. | ||
13 | * | ||
14 | * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR | ||
15 | * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES | ||
16 | * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. | ||
17 | * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, | ||
18 | * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT | ||
19 | * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, | ||
20 | * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY | ||
21 | * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT | ||
22 | * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF | ||
23 | * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | ||
24 | */ | ||
25 | |||
26 | #include "includes.h" | ||
27 | |||
28 | #ifdef WITH_OPENSSL | ||
29 | |||
30 | #include <sys/types.h> | ||
31 | |||
32 | #include <openssl/dh.h> | ||
33 | |||
34 | #include <stdarg.h> | ||
35 | #include <stdio.h> | ||
36 | #include <string.h> | ||
37 | #include <signal.h> | ||
38 | |||
39 | #include "openbsd-compat/openssl-compat.h" | ||
40 | |||
41 | #include "sshkey.h" | ||
42 | #include "cipher.h" | ||
43 | #include "digest.h" | ||
44 | #include "kex.h" | ||
45 | #include "log.h" | ||
46 | #include "packet.h" | ||
47 | #include "dh.h" | ||
48 | #include "ssh2.h" | ||
49 | #include "dispatch.h" | ||
50 | #include "compat.h" | ||
51 | #include "ssherr.h" | ||
52 | #include "sshbuf.h" | ||
53 | |||
54 | static int input_kex_dh(int, u_int32_t, struct ssh *); | ||
55 | |||
56 | int | ||
57 | kexdh_client(struct ssh *ssh) | ||
58 | { | ||
59 | struct kex *kex = ssh->kex; | ||
60 | int r; | ||
61 | const BIGNUM *pub_key; | ||
62 | |||
63 | /* generate and send 'e', client DH public key */ | ||
64 | switch (kex->kex_type) { | ||
65 | case KEX_DH_GRP1_SHA1: | ||
66 | kex->dh = dh_new_group1(); | ||
67 | break; | ||
68 | case KEX_DH_GRP14_SHA1: | ||
69 | case KEX_DH_GRP14_SHA256: | ||
70 | kex->dh = dh_new_group14(); | ||
71 | break; | ||
72 | case KEX_DH_GRP16_SHA512: | ||
73 | kex->dh = dh_new_group16(); | ||
74 | break; | ||
75 | case KEX_DH_GRP18_SHA512: | ||
76 | kex->dh = dh_new_group18(); | ||
77 | break; | ||
78 | default: | ||
79 | r = SSH_ERR_INVALID_ARGUMENT; | ||
80 | goto out; | ||
81 | } | ||
82 | if (kex->dh == NULL) { | ||
83 | r = SSH_ERR_ALLOC_FAIL; | ||
84 | goto out; | ||
85 | } | ||
86 | debug("sending SSH2_MSG_KEXDH_INIT"); | ||
87 | if ((r = dh_gen_key(kex->dh, kex->we_need * 8)) != 0) | ||
88 | goto out; | ||
89 | DH_get0_key(kex->dh, &pub_key, NULL); | ||
90 | if ((r = sshpkt_start(ssh, SSH2_MSG_KEXDH_INIT)) != 0 || | ||
91 | (r = sshpkt_put_bignum2(ssh, pub_key)) != 0 || | ||
92 | (r = sshpkt_send(ssh)) != 0) | ||
93 | goto out; | ||
94 | #ifdef DEBUG_KEXDH | ||
95 | DHparams_print_fp(stderr, kex->dh); | ||
96 | fprintf(stderr, "pub= "); | ||
97 | BN_print_fp(stderr, pub_key); | ||
98 | fprintf(stderr, "\n"); | ||
99 | #endif | ||
100 | debug("expecting SSH2_MSG_KEXDH_REPLY"); | ||
101 | ssh_dispatch_set(ssh, SSH2_MSG_KEXDH_REPLY, &input_kex_dh); | ||
102 | r = 0; | ||
103 | out: | ||
104 | return r; | ||
105 | } | ||
106 | |||
107 | static int | ||
108 | input_kex_dh(int type, u_int32_t seq, struct ssh *ssh) | ||
109 | { | ||
110 | struct kex *kex = ssh->kex; | ||
111 | BIGNUM *dh_server_pub = NULL, *shared_secret = NULL; | ||
112 | const BIGNUM *pub_key; | ||
113 | struct sshkey *server_host_key = NULL; | ||
114 | u_char *kbuf = NULL, *server_host_key_blob = NULL, *signature = NULL; | ||
115 | u_char hash[SSH_DIGEST_MAX_LENGTH]; | ||
116 | size_t klen = 0, slen, sbloblen, hashlen; | ||
117 | int kout, r; | ||
118 | |||
119 | if (kex->verify_host_key == NULL) { | ||
120 | r = SSH_ERR_INVALID_ARGUMENT; | ||
121 | goto out; | ||
122 | } | ||
123 | /* key, cert */ | ||
124 | if ((r = sshpkt_get_string(ssh, &server_host_key_blob, | ||
125 | &sbloblen)) != 0 || | ||
126 | (r = sshkey_from_blob(server_host_key_blob, sbloblen, | ||
127 | &server_host_key)) != 0) | ||
128 | goto out; | ||
129 | if (server_host_key->type != kex->hostkey_type || | ||
130 | (kex->hostkey_type == KEY_ECDSA && | ||
131 | server_host_key->ecdsa_nid != kex->hostkey_nid)) { | ||
132 | r = SSH_ERR_KEY_TYPE_MISMATCH; | ||
133 | goto out; | ||
134 | } | ||
135 | if (kex->verify_host_key(server_host_key, ssh) == -1) { | ||
136 | r = SSH_ERR_SIGNATURE_INVALID; | ||
137 | goto out; | ||
138 | } | ||
139 | /* DH parameter f, server public DH key */ | ||
140 | if ((dh_server_pub = BN_new()) == NULL) { | ||
141 | r = SSH_ERR_ALLOC_FAIL; | ||
142 | goto out; | ||
143 | } | ||
144 | /* signed H */ | ||
145 | if ((r = sshpkt_get_bignum2(ssh, dh_server_pub)) != 0 || | ||
146 | (r = sshpkt_get_string(ssh, &signature, &slen)) != 0 || | ||
147 | (r = sshpkt_get_end(ssh)) != 0) | ||
148 | goto out; | ||
149 | #ifdef DEBUG_KEXDH | ||
150 | fprintf(stderr, "dh_server_pub= "); | ||
151 | BN_print_fp(stderr, dh_server_pub); | ||
152 | fprintf(stderr, "\n"); | ||
153 | debug("bits %d", BN_num_bits(dh_server_pub)); | ||
154 | #endif | ||
155 | if (!dh_pub_is_valid(kex->dh, dh_server_pub)) { | ||
156 | sshpkt_disconnect(ssh, "bad server public DH value"); | ||
157 | r = SSH_ERR_MESSAGE_INCOMPLETE; | ||
158 | goto out; | ||
159 | } | ||
160 | |||
161 | klen = DH_size(kex->dh); | ||
162 | if ((kbuf = malloc(klen)) == NULL || | ||
163 | (shared_secret = BN_new()) == NULL) { | ||
164 | r = SSH_ERR_ALLOC_FAIL; | ||
165 | goto out; | ||
166 | } | ||
167 | if ((kout = DH_compute_key(kbuf, dh_server_pub, kex->dh)) < 0 || | ||
168 | BN_bin2bn(kbuf, kout, shared_secret) == NULL) { | ||
169 | r = SSH_ERR_LIBCRYPTO_ERROR; | ||
170 | goto out; | ||
171 | } | ||
172 | #ifdef DEBUG_KEXDH | ||
173 | dump_digest("shared secret", kbuf, kout); | ||
174 | #endif | ||
175 | |||
176 | /* calc and verify H */ | ||
177 | DH_get0_key(kex->dh, &pub_key, NULL); | ||
178 | hashlen = sizeof(hash); | ||
179 | if ((r = kex_dh_hash( | ||
180 | kex->hash_alg, | ||
181 | kex->client_version_string, | ||
182 | kex->server_version_string, | ||
183 | sshbuf_ptr(kex->my), sshbuf_len(kex->my), | ||
184 | sshbuf_ptr(kex->peer), sshbuf_len(kex->peer), | ||
185 | server_host_key_blob, sbloblen, | ||
186 | pub_key, | ||
187 | dh_server_pub, | ||
188 | shared_secret, | ||
189 | hash, &hashlen)) != 0) | ||
190 | goto out; | ||
191 | |||
192 | if ((r = sshkey_verify(server_host_key, signature, slen, hash, hashlen, | ||
193 | kex->hostkey_alg, ssh->compat)) != 0) | ||
194 | goto out; | ||
195 | |||
196 | /* save session id */ | ||
197 | if (kex->session_id == NULL) { | ||
198 | kex->session_id_len = hashlen; | ||
199 | kex->session_id = malloc(kex->session_id_len); | ||
200 | if (kex->session_id == NULL) { | ||
201 | r = SSH_ERR_ALLOC_FAIL; | ||
202 | goto out; | ||
203 | } | ||
204 | memcpy(kex->session_id, hash, kex->session_id_len); | ||
205 | } | ||
206 | |||
207 | if ((r = kex_derive_keys_bn(ssh, hash, hashlen, shared_secret)) == 0) | ||
208 | r = kex_send_newkeys(ssh); | ||
209 | out: | ||
210 | explicit_bzero(hash, sizeof(hash)); | ||
211 | DH_free(kex->dh); | ||
212 | kex->dh = NULL; | ||
213 | BN_clear_free(dh_server_pub); | ||
214 | if (kbuf) { | ||
215 | explicit_bzero(kbuf, klen); | ||
216 | free(kbuf); | ||
217 | } | ||
218 | BN_clear_free(shared_secret); | ||
219 | sshkey_free(server_host_key); | ||
220 | free(server_host_key_blob); | ||
221 | free(signature); | ||
222 | return r; | ||
223 | } | ||
224 | #endif /* WITH_OPENSSL */ | ||
diff --git a/kexdhs.c b/kexdhs.c deleted file mode 100644 index 337aab5be..000000000 --- a/kexdhs.c +++ /dev/null | |||
@@ -1,222 +0,0 @@ | |||
1 | /* $OpenBSD: kexdhs.c,v 1.27 2018/04/10 00:10:49 djm Exp $ */ | ||
2 | /* | ||
3 | * Copyright (c) 2001 Markus Friedl. All rights reserved. | ||
4 | * | ||
5 | * Redistribution and use in source and binary forms, with or without | ||
6 | * modification, are permitted provided that the following conditions | ||
7 | * are met: | ||
8 | * 1. Redistributions of source code must retain the above copyright | ||
9 | * notice, this list of conditions and the following disclaimer. | ||
10 | * 2. Redistributions in binary form must reproduce the above copyright | ||
11 | * notice, this list of conditions and the following disclaimer in the | ||
12 | * documentation and/or other materials provided with the distribution. | ||
13 | * | ||
14 | * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR | ||
15 | * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES | ||
16 | * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. | ||
17 | * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, | ||
18 | * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT | ||
19 | * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, | ||
20 | * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY | ||
21 | * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT | ||
22 | * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF | ||
23 | * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | ||
24 | */ | ||
25 | |||
26 | #include "includes.h" | ||
27 | |||
28 | #ifdef WITH_OPENSSL | ||
29 | |||
30 | #include <sys/types.h> | ||
31 | |||
32 | #include <stdarg.h> | ||
33 | #include <string.h> | ||
34 | #include <signal.h> | ||
35 | |||
36 | #include <openssl/dh.h> | ||
37 | |||
38 | #include "openbsd-compat/openssl-compat.h" | ||
39 | |||
40 | #include "sshkey.h" | ||
41 | #include "cipher.h" | ||
42 | #include "digest.h" | ||
43 | #include "kex.h" | ||
44 | #include "log.h" | ||
45 | #include "packet.h" | ||
46 | #include "dh.h" | ||
47 | #include "ssh2.h" | ||
48 | |||
49 | #include "dispatch.h" | ||
50 | #include "compat.h" | ||
51 | #include "ssherr.h" | ||
52 | #include "sshbuf.h" | ||
53 | |||
54 | static int input_kex_dh_init(int, u_int32_t, struct ssh *); | ||
55 | |||
56 | int | ||
57 | kexdh_server(struct ssh *ssh) | ||
58 | { | ||
59 | struct kex *kex = ssh->kex; | ||
60 | int r; | ||
61 | |||
62 | /* generate server DH public key */ | ||
63 | switch (kex->kex_type) { | ||
64 | case KEX_DH_GRP1_SHA1: | ||
65 | kex->dh = dh_new_group1(); | ||
66 | break; | ||
67 | case KEX_DH_GRP14_SHA1: | ||
68 | case KEX_DH_GRP14_SHA256: | ||
69 | kex->dh = dh_new_group14(); | ||
70 | break; | ||
71 | case KEX_DH_GRP16_SHA512: | ||
72 | kex->dh = dh_new_group16(); | ||
73 | break; | ||
74 | case KEX_DH_GRP18_SHA512: | ||
75 | kex->dh = dh_new_group18(); | ||
76 | break; | ||
77 | default: | ||
78 | r = SSH_ERR_INVALID_ARGUMENT; | ||
79 | goto out; | ||
80 | } | ||
81 | if (kex->dh == NULL) { | ||
82 | r = SSH_ERR_ALLOC_FAIL; | ||
83 | goto out; | ||
84 | } | ||
85 | if ((r = dh_gen_key(kex->dh, kex->we_need * 8)) != 0) | ||
86 | goto out; | ||
87 | |||
88 | debug("expecting SSH2_MSG_KEXDH_INIT"); | ||
89 | ssh_dispatch_set(ssh, SSH2_MSG_KEXDH_INIT, &input_kex_dh_init); | ||
90 | r = 0; | ||
91 | out: | ||
92 | return r; | ||
93 | } | ||
94 | |||
95 | int | ||
96 | input_kex_dh_init(int type, u_int32_t seq, struct ssh *ssh) | ||
97 | { | ||
98 | struct kex *kex = ssh->kex; | ||
99 | BIGNUM *shared_secret = NULL, *dh_client_pub = NULL; | ||
100 | const BIGNUM *pub_key; | ||
101 | struct sshkey *server_host_public, *server_host_private; | ||
102 | u_char *kbuf = NULL, *signature = NULL, *server_host_key_blob = NULL; | ||
103 | u_char hash[SSH_DIGEST_MAX_LENGTH]; | ||
104 | size_t sbloblen, slen; | ||
105 | size_t klen = 0, hashlen; | ||
106 | int kout, r; | ||
107 | |||
108 | if (kex->load_host_public_key == NULL || | ||
109 | kex->load_host_private_key == NULL) { | ||
110 | r = SSH_ERR_INVALID_ARGUMENT; | ||
111 | goto out; | ||
112 | } | ||
113 | server_host_public = kex->load_host_public_key(kex->hostkey_type, | ||
114 | kex->hostkey_nid, ssh); | ||
115 | server_host_private = kex->load_host_private_key(kex->hostkey_type, | ||
116 | kex->hostkey_nid, ssh); | ||
117 | if (server_host_public == NULL) { | ||
118 | r = SSH_ERR_NO_HOSTKEY_LOADED; | ||
119 | goto out; | ||
120 | } | ||
121 | |||
122 | /* key, cert */ | ||
123 | if ((dh_client_pub = BN_new()) == NULL) { | ||
124 | r = SSH_ERR_ALLOC_FAIL; | ||
125 | goto out; | ||
126 | } | ||
127 | DH_get0_key(kex->dh, &pub_key, NULL); | ||
128 | if ((r = sshpkt_get_bignum2(ssh, dh_client_pub)) != 0 || | ||
129 | (r = sshpkt_get_end(ssh)) != 0) | ||
130 | goto out; | ||
131 | |||
132 | #ifdef DEBUG_KEXDH | ||
133 | fprintf(stderr, "dh_client_pub= "); | ||
134 | BN_print_fp(stderr, dh_client_pub); | ||
135 | fprintf(stderr, "\n"); | ||
136 | debug("bits %d", BN_num_bits(dh_client_pub)); | ||
137 | DHparams_print_fp(stderr, kex->dh); | ||
138 | fprintf(stderr, "pub= "); | ||
139 | BN_print_fp(stderr, pub_key); | ||
140 | fprintf(stderr, "\n"); | ||
141 | #endif | ||
142 | if (!dh_pub_is_valid(kex->dh, dh_client_pub)) { | ||
143 | sshpkt_disconnect(ssh, "bad client public DH value"); | ||
144 | r = SSH_ERR_MESSAGE_INCOMPLETE; | ||
145 | goto out; | ||
146 | } | ||
147 | |||
148 | klen = DH_size(kex->dh); | ||
149 | if ((kbuf = malloc(klen)) == NULL || | ||
150 | (shared_secret = BN_new()) == NULL) { | ||
151 | r = SSH_ERR_ALLOC_FAIL; | ||
152 | goto out; | ||
153 | } | ||
154 | if ((kout = DH_compute_key(kbuf, dh_client_pub, kex->dh)) < 0 || | ||
155 | BN_bin2bn(kbuf, kout, shared_secret) == NULL) { | ||
156 | r = SSH_ERR_LIBCRYPTO_ERROR; | ||
157 | goto out; | ||
158 | } | ||
159 | #ifdef DEBUG_KEXDH | ||
160 | dump_digest("shared secret", kbuf, kout); | ||
161 | #endif | ||
162 | if ((r = sshkey_to_blob(server_host_public, &server_host_key_blob, | ||
163 | &sbloblen)) != 0) | ||
164 | goto out; | ||
165 | /* calc H */ | ||
166 | hashlen = sizeof(hash); | ||
167 | if ((r = kex_dh_hash( | ||
168 | kex->hash_alg, | ||
169 | kex->client_version_string, | ||
170 | kex->server_version_string, | ||
171 | sshbuf_ptr(kex->peer), sshbuf_len(kex->peer), | ||
172 | sshbuf_ptr(kex->my), sshbuf_len(kex->my), | ||
173 | server_host_key_blob, sbloblen, | ||
174 | dh_client_pub, | ||
175 | pub_key, | ||
176 | shared_secret, | ||
177 | hash, &hashlen)) != 0) | ||
178 | goto out; | ||
179 | |||
180 | /* save session id := H */ | ||
181 | if (kex->session_id == NULL) { | ||
182 | kex->session_id_len = hashlen; | ||
183 | kex->session_id = malloc(kex->session_id_len); | ||
184 | if (kex->session_id == NULL) { | ||
185 | r = SSH_ERR_ALLOC_FAIL; | ||
186 | goto out; | ||
187 | } | ||
188 | memcpy(kex->session_id, hash, kex->session_id_len); | ||
189 | } | ||
190 | |||
191 | /* sign H */ | ||
192 | if ((r = kex->sign(server_host_private, server_host_public, &signature, | ||
193 | &slen, hash, hashlen, kex->hostkey_alg, ssh->compat)) < 0) | ||
194 | goto out; | ||
195 | |||
196 | /* destroy_sensitive_data(); */ | ||
197 | |||
198 | /* send server hostkey, DH pubkey 'f' and signed H */ | ||
199 | if ((r = sshpkt_start(ssh, SSH2_MSG_KEXDH_REPLY)) != 0 || | ||
200 | (r = sshpkt_put_string(ssh, server_host_key_blob, sbloblen)) != 0 || | ||
201 | (r = sshpkt_put_bignum2(ssh, pub_key)) != 0 || /* f */ | ||
202 | (r = sshpkt_put_string(ssh, signature, slen)) != 0 || | ||
203 | (r = sshpkt_send(ssh)) != 0) | ||
204 | goto out; | ||
205 | |||
206 | if ((r = kex_derive_keys_bn(ssh, hash, hashlen, shared_secret)) == 0) | ||
207 | r = kex_send_newkeys(ssh); | ||
208 | out: | ||
209 | explicit_bzero(hash, sizeof(hash)); | ||
210 | DH_free(kex->dh); | ||
211 | kex->dh = NULL; | ||
212 | BN_clear_free(dh_client_pub); | ||
213 | if (kbuf) { | ||
214 | explicit_bzero(kbuf, klen); | ||
215 | free(kbuf); | ||
216 | } | ||
217 | BN_clear_free(shared_secret); | ||
218 | free(server_host_key_blob); | ||
219 | free(signature); | ||
220 | return r; | ||
221 | } | ||
222 | #endif /* WITH_OPENSSL */ | ||
@@ -1,7 +1,7 @@ | |||
1 | /* $OpenBSD: kexecdh.c,v 1.6 2015/01/19 20:16:15 markus Exp $ */ | 1 | /* $OpenBSD: kexecdh.c,v 1.10 2019/01/21 10:40:11 djm Exp $ */ |
2 | /* | 2 | /* |
3 | * Copyright (c) 2001 Markus Friedl. All rights reserved. | ||
4 | * Copyright (c) 2010 Damien Miller. All rights reserved. | 3 | * Copyright (c) 2010 Damien Miller. All rights reserved. |
4 | * Copyright (c) 2019 Markus Friedl. All rights reserved. | ||
5 | * | 5 | * |
6 | * Redistribution and use in source and binary forms, with or without | 6 | * Redistribution and use in source and binary forms, with or without |
7 | * modification, are permitted provided that the following conditions | 7 | * modification, are permitted provided that the following conditions |
@@ -30,71 +30,182 @@ | |||
30 | 30 | ||
31 | #include <sys/types.h> | 31 | #include <sys/types.h> |
32 | 32 | ||
33 | #include <signal.h> | 33 | #include <stdio.h> |
34 | #include <string.h> | 34 | #include <string.h> |
35 | #include <signal.h> | ||
35 | 36 | ||
36 | #include <openssl/bn.h> | ||
37 | #include <openssl/evp.h> | ||
38 | #include <openssl/ec.h> | ||
39 | #include <openssl/ecdh.h> | 37 | #include <openssl/ecdh.h> |
40 | 38 | ||
41 | #include "ssh2.h" | ||
42 | #include "sshkey.h" | 39 | #include "sshkey.h" |
43 | #include "cipher.h" | ||
44 | #include "kex.h" | 40 | #include "kex.h" |
45 | #include "sshbuf.h" | 41 | #include "sshbuf.h" |
46 | #include "digest.h" | 42 | #include "digest.h" |
47 | #include "ssherr.h" | 43 | #include "ssherr.h" |
48 | 44 | ||
45 | static int | ||
46 | kex_ecdh_dec_key_group(struct kex *, const struct sshbuf *, EC_KEY *key, | ||
47 | const EC_GROUP *, struct sshbuf **); | ||
48 | |||
49 | int | 49 | int |
50 | kex_ecdh_hash( | 50 | kex_ecdh_keypair(struct kex *kex) |
51 | int hash_alg, | ||
52 | const EC_GROUP *ec_group, | ||
53 | const char *client_version_string, | ||
54 | const char *server_version_string, | ||
55 | const u_char *ckexinit, size_t ckexinitlen, | ||
56 | const u_char *skexinit, size_t skexinitlen, | ||
57 | const u_char *serverhostkeyblob, size_t sbloblen, | ||
58 | const EC_POINT *client_dh_pub, | ||
59 | const EC_POINT *server_dh_pub, | ||
60 | const BIGNUM *shared_secret, | ||
61 | u_char *hash, size_t *hashlen) | ||
62 | { | 51 | { |
63 | struct sshbuf *b; | 52 | EC_KEY *client_key = NULL; |
53 | const EC_GROUP *group; | ||
54 | const EC_POINT *public_key; | ||
55 | struct sshbuf *buf = NULL; | ||
64 | int r; | 56 | int r; |
65 | 57 | ||
66 | if (*hashlen < ssh_digest_bytes(hash_alg)) | 58 | if ((client_key = EC_KEY_new_by_curve_name(kex->ec_nid)) == NULL) { |
67 | return SSH_ERR_INVALID_ARGUMENT; | 59 | r = SSH_ERR_ALLOC_FAIL; |
68 | if ((b = sshbuf_new()) == NULL) | 60 | goto out; |
69 | return SSH_ERR_ALLOC_FAIL; | 61 | } |
70 | if ((r = sshbuf_put_cstring(b, client_version_string)) != 0 || | 62 | if (EC_KEY_generate_key(client_key) != 1) { |
71 | (r = sshbuf_put_cstring(b, server_version_string)) != 0 || | 63 | r = SSH_ERR_LIBCRYPTO_ERROR; |
72 | /* kexinit messages: fake header: len+SSH2_MSG_KEXINIT */ | 64 | goto out; |
73 | (r = sshbuf_put_u32(b, ckexinitlen+1)) != 0 || | 65 | } |
74 | (r = sshbuf_put_u8(b, SSH2_MSG_KEXINIT)) != 0 || | 66 | group = EC_KEY_get0_group(client_key); |
75 | (r = sshbuf_put(b, ckexinit, ckexinitlen)) != 0 || | 67 | public_key = EC_KEY_get0_public_key(client_key); |
76 | (r = sshbuf_put_u32(b, skexinitlen+1)) != 0 || | 68 | |
77 | (r = sshbuf_put_u8(b, SSH2_MSG_KEXINIT)) != 0 || | 69 | if ((buf = sshbuf_new()) == NULL) { |
78 | (r = sshbuf_put(b, skexinit, skexinitlen)) != 0 || | 70 | r = SSH_ERR_ALLOC_FAIL; |
79 | (r = sshbuf_put_string(b, serverhostkeyblob, sbloblen)) != 0 || | 71 | goto out; |
80 | (r = sshbuf_put_ec(b, client_dh_pub, ec_group)) != 0 || | ||
81 | (r = sshbuf_put_ec(b, server_dh_pub, ec_group)) != 0 || | ||
82 | (r = sshbuf_put_bignum2(b, shared_secret)) != 0) { | ||
83 | sshbuf_free(b); | ||
84 | return r; | ||
85 | } | 72 | } |
86 | #ifdef DEBUG_KEX | 73 | if ((r = sshbuf_put_ec(buf, public_key, group)) != 0 || |
87 | sshbuf_dump(b, stderr); | 74 | (r = sshbuf_get_u32(buf, NULL)) != 0) |
75 | goto out; | ||
76 | #ifdef DEBUG_KEXECDH | ||
77 | fputs("client private key:\n", stderr); | ||
78 | sshkey_dump_ec_key(client_key); | ||
88 | #endif | 79 | #endif |
89 | if (ssh_digest_buffer(hash_alg, b, hash, *hashlen) != 0) { | 80 | kex->ec_client_key = client_key; |
90 | sshbuf_free(b); | 81 | kex->ec_group = group; |
91 | return SSH_ERR_LIBCRYPTO_ERROR; | 82 | client_key = NULL; /* owned by the kex */ |
83 | kex->client_pub = buf; | ||
84 | buf = NULL; | ||
85 | out: | ||
86 | EC_KEY_free(client_key); | ||
87 | sshbuf_free(buf); | ||
88 | return r; | ||
89 | } | ||
90 | |||
91 | int | ||
92 | kex_ecdh_enc(struct kex *kex, const struct sshbuf *client_blob, | ||
93 | struct sshbuf **server_blobp, struct sshbuf **shared_secretp) | ||
94 | { | ||
95 | const EC_GROUP *group; | ||
96 | const EC_POINT *pub_key; | ||
97 | EC_KEY *server_key = NULL; | ||
98 | struct sshbuf *server_blob = NULL; | ||
99 | int r; | ||
100 | |||
101 | *server_blobp = NULL; | ||
102 | *shared_secretp = NULL; | ||
103 | |||
104 | if ((server_key = EC_KEY_new_by_curve_name(kex->ec_nid)) == NULL) { | ||
105 | r = SSH_ERR_ALLOC_FAIL; | ||
106 | goto out; | ||
92 | } | 107 | } |
93 | sshbuf_free(b); | 108 | if (EC_KEY_generate_key(server_key) != 1) { |
94 | *hashlen = ssh_digest_bytes(hash_alg); | 109 | r = SSH_ERR_LIBCRYPTO_ERROR; |
95 | #ifdef DEBUG_KEX | 110 | goto out; |
96 | dump_digest("hash", hash, *hashlen); | 111 | } |
112 | group = EC_KEY_get0_group(server_key); | ||
113 | |||
114 | #ifdef DEBUG_KEXECDH | ||
115 | fputs("server private key:\n", stderr); | ||
116 | sshkey_dump_ec_key(server_key); | ||
97 | #endif | 117 | #endif |
98 | return 0; | 118 | pub_key = EC_KEY_get0_public_key(server_key); |
119 | if ((server_blob = sshbuf_new()) == NULL) { | ||
120 | r = SSH_ERR_ALLOC_FAIL; | ||
121 | goto out; | ||
122 | } | ||
123 | if ((r = sshbuf_put_ec(server_blob, pub_key, group)) != 0 || | ||
124 | (r = sshbuf_get_u32(server_blob, NULL)) != 0) | ||
125 | goto out; | ||
126 | if ((r = kex_ecdh_dec_key_group(kex, client_blob, server_key, group, | ||
127 | shared_secretp)) != 0) | ||
128 | goto out; | ||
129 | *server_blobp = server_blob; | ||
130 | server_blob = NULL; | ||
131 | out: | ||
132 | EC_KEY_free(server_key); | ||
133 | sshbuf_free(server_blob); | ||
134 | return r; | ||
135 | } | ||
136 | |||
137 | static int | ||
138 | kex_ecdh_dec_key_group(struct kex *kex, const struct sshbuf *ec_blob, | ||
139 | EC_KEY *key, const EC_GROUP *group, struct sshbuf **shared_secretp) | ||
140 | { | ||
141 | struct sshbuf *buf = NULL; | ||
142 | BIGNUM *shared_secret = NULL; | ||
143 | EC_POINT *dh_pub = NULL; | ||
144 | u_char *kbuf = NULL; | ||
145 | size_t klen = 0; | ||
146 | int r; | ||
147 | |||
148 | *shared_secretp = NULL; | ||
149 | |||
150 | if ((buf = sshbuf_new()) == NULL) { | ||
151 | r = SSH_ERR_ALLOC_FAIL; | ||
152 | goto out; | ||
153 | } | ||
154 | if ((r = sshbuf_put_stringb(buf, ec_blob)) != 0) | ||
155 | goto out; | ||
156 | if ((dh_pub = EC_POINT_new(group)) == NULL) { | ||
157 | r = SSH_ERR_ALLOC_FAIL; | ||
158 | goto out; | ||
159 | } | ||
160 | if ((r = sshbuf_get_ec(buf, dh_pub, group)) != 0) { | ||
161 | goto out; | ||
162 | } | ||
163 | sshbuf_reset(buf); | ||
164 | |||
165 | #ifdef DEBUG_KEXECDH | ||
166 | fputs("public key:\n", stderr); | ||
167 | sshkey_dump_ec_point(group, dh_pub); | ||
168 | #endif | ||
169 | if (sshkey_ec_validate_public(group, dh_pub) != 0) { | ||
170 | r = SSH_ERR_MESSAGE_INCOMPLETE; | ||
171 | goto out; | ||
172 | } | ||
173 | klen = (EC_GROUP_get_degree(group) + 7) / 8; | ||
174 | if ((kbuf = malloc(klen)) == NULL || | ||
175 | (shared_secret = BN_new()) == NULL) { | ||
176 | r = SSH_ERR_ALLOC_FAIL; | ||
177 | goto out; | ||
178 | } | ||
179 | if (ECDH_compute_key(kbuf, klen, dh_pub, key, NULL) != (int)klen || | ||
180 | BN_bin2bn(kbuf, klen, shared_secret) == NULL) { | ||
181 | r = SSH_ERR_LIBCRYPTO_ERROR; | ||
182 | goto out; | ||
183 | } | ||
184 | #ifdef DEBUG_KEXECDH | ||
185 | dump_digest("shared secret", kbuf, klen); | ||
186 | #endif | ||
187 | if ((r = sshbuf_put_bignum2(buf, shared_secret)) != 0) | ||
188 | goto out; | ||
189 | *shared_secretp = buf; | ||
190 | buf = NULL; | ||
191 | out: | ||
192 | EC_POINT_clear_free(dh_pub); | ||
193 | BN_clear_free(shared_secret); | ||
194 | freezero(kbuf, klen); | ||
195 | sshbuf_free(buf); | ||
196 | return r; | ||
197 | } | ||
198 | |||
199 | int | ||
200 | kex_ecdh_dec(struct kex *kex, const struct sshbuf *server_blob, | ||
201 | struct sshbuf **shared_secretp) | ||
202 | { | ||
203 | int r; | ||
204 | |||
205 | r = kex_ecdh_dec_key_group(kex, server_blob, kex->ec_client_key, | ||
206 | kex->ec_group, shared_secretp); | ||
207 | EC_KEY_free(kex->ec_client_key); | ||
208 | kex->ec_client_key = NULL; | ||
209 | return r; | ||
99 | } | 210 | } |
100 | #endif /* defined(WITH_OPENSSL) && defined(OPENSSL_HAS_ECC) */ | 211 | #endif /* defined(WITH_OPENSSL) && defined(OPENSSL_HAS_ECC) */ |
diff --git a/kexecdhc.c b/kexecdhc.c deleted file mode 100644 index ac146a362..000000000 --- a/kexecdhc.c +++ /dev/null | |||
@@ -1,222 +0,0 @@ | |||
1 | /* $OpenBSD: kexecdhc.c,v 1.13 2018/02/07 02:06:51 jsing Exp $ */ | ||
2 | /* | ||
3 | * Copyright (c) 2001 Markus Friedl. All rights reserved. | ||
4 | * Copyright (c) 2010 Damien Miller. All rights reserved. | ||
5 | * | ||
6 | * Redistribution and use in source and binary forms, with or without | ||
7 | * modification, are permitted provided that the following conditions | ||
8 | * are met: | ||
9 | * 1. Redistributions of source code must retain the above copyright | ||
10 | * notice, this list of conditions and the following disclaimer. | ||
11 | * 2. Redistributions in binary form must reproduce the above copyright | ||
12 | * notice, this list of conditions and the following disclaimer in the | ||
13 | * documentation and/or other materials provided with the distribution. | ||
14 | * | ||
15 | * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR | ||
16 | * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES | ||
17 | * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. | ||
18 | * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, | ||
19 | * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT | ||
20 | * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, | ||
21 | * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY | ||
22 | * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT | ||
23 | * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF | ||
24 | * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | ||
25 | */ | ||
26 | |||
27 | #include "includes.h" | ||
28 | |||
29 | #if defined(WITH_OPENSSL) && defined(OPENSSL_HAS_ECC) | ||
30 | |||
31 | #include <sys/types.h> | ||
32 | |||
33 | #include <stdio.h> | ||
34 | #include <string.h> | ||
35 | #include <signal.h> | ||
36 | |||
37 | #include <openssl/ecdh.h> | ||
38 | |||
39 | #include "sshkey.h" | ||
40 | #include "cipher.h" | ||
41 | #include "digest.h" | ||
42 | #include "kex.h" | ||
43 | #include "log.h" | ||
44 | #include "packet.h" | ||
45 | #include "dh.h" | ||
46 | #include "ssh2.h" | ||
47 | #include "dispatch.h" | ||
48 | #include "compat.h" | ||
49 | #include "ssherr.h" | ||
50 | #include "sshbuf.h" | ||
51 | |||
52 | static int input_kex_ecdh_reply(int, u_int32_t, struct ssh *); | ||
53 | |||
54 | int | ||
55 | kexecdh_client(struct ssh *ssh) | ||
56 | { | ||
57 | struct kex *kex = ssh->kex; | ||
58 | EC_KEY *client_key = NULL; | ||
59 | const EC_GROUP *group; | ||
60 | const EC_POINT *public_key; | ||
61 | int r; | ||
62 | |||
63 | if ((client_key = EC_KEY_new_by_curve_name(kex->ec_nid)) == NULL) { | ||
64 | r = SSH_ERR_ALLOC_FAIL; | ||
65 | goto out; | ||
66 | } | ||
67 | if (EC_KEY_generate_key(client_key) != 1) { | ||
68 | r = SSH_ERR_LIBCRYPTO_ERROR; | ||
69 | goto out; | ||
70 | } | ||
71 | group = EC_KEY_get0_group(client_key); | ||
72 | public_key = EC_KEY_get0_public_key(client_key); | ||
73 | |||
74 | if ((r = sshpkt_start(ssh, SSH2_MSG_KEX_ECDH_INIT)) != 0 || | ||
75 | (r = sshpkt_put_ec(ssh, public_key, group)) != 0 || | ||
76 | (r = sshpkt_send(ssh)) != 0) | ||
77 | goto out; | ||
78 | debug("sending SSH2_MSG_KEX_ECDH_INIT"); | ||
79 | |||
80 | #ifdef DEBUG_KEXECDH | ||
81 | fputs("client private key:\n", stderr); | ||
82 | sshkey_dump_ec_key(client_key); | ||
83 | #endif | ||
84 | kex->ec_client_key = client_key; | ||
85 | kex->ec_group = group; | ||
86 | client_key = NULL; /* owned by the kex */ | ||
87 | |||
88 | debug("expecting SSH2_MSG_KEX_ECDH_REPLY"); | ||
89 | ssh_dispatch_set(ssh, SSH2_MSG_KEX_ECDH_REPLY, &input_kex_ecdh_reply); | ||
90 | r = 0; | ||
91 | out: | ||
92 | EC_KEY_free(client_key); | ||
93 | return r; | ||
94 | } | ||
95 | |||
96 | static int | ||
97 | input_kex_ecdh_reply(int type, u_int32_t seq, struct ssh *ssh) | ||
98 | { | ||
99 | struct kex *kex = ssh->kex; | ||
100 | const EC_GROUP *group; | ||
101 | EC_POINT *server_public = NULL; | ||
102 | EC_KEY *client_key; | ||
103 | BIGNUM *shared_secret = NULL; | ||
104 | struct sshkey *server_host_key = NULL; | ||
105 | u_char *server_host_key_blob = NULL, *signature = NULL; | ||
106 | u_char *kbuf = NULL; | ||
107 | u_char hash[SSH_DIGEST_MAX_LENGTH]; | ||
108 | size_t slen, sbloblen; | ||
109 | size_t klen = 0, hashlen; | ||
110 | int r; | ||
111 | |||
112 | if (kex->verify_host_key == NULL) { | ||
113 | r = SSH_ERR_INVALID_ARGUMENT; | ||
114 | goto out; | ||
115 | } | ||
116 | group = kex->ec_group; | ||
117 | client_key = kex->ec_client_key; | ||
118 | |||
119 | /* hostkey */ | ||
120 | if ((r = sshpkt_get_string(ssh, &server_host_key_blob, | ||
121 | &sbloblen)) != 0 || | ||
122 | (r = sshkey_from_blob(server_host_key_blob, sbloblen, | ||
123 | &server_host_key)) != 0) | ||
124 | goto out; | ||
125 | if (server_host_key->type != kex->hostkey_type || | ||
126 | (kex->hostkey_type == KEY_ECDSA && | ||
127 | server_host_key->ecdsa_nid != kex->hostkey_nid)) { | ||
128 | r = SSH_ERR_KEY_TYPE_MISMATCH; | ||
129 | goto out; | ||
130 | } | ||
131 | if (kex->verify_host_key(server_host_key, ssh) == -1) { | ||
132 | r = SSH_ERR_SIGNATURE_INVALID; | ||
133 | goto out; | ||
134 | } | ||
135 | |||
136 | /* Q_S, server public key */ | ||
137 | /* signed H */ | ||
138 | if ((server_public = EC_POINT_new(group)) == NULL) { | ||
139 | r = SSH_ERR_ALLOC_FAIL; | ||
140 | goto out; | ||
141 | } | ||
142 | if ((r = sshpkt_get_ec(ssh, server_public, group)) != 0 || | ||
143 | (r = sshpkt_get_string(ssh, &signature, &slen)) != 0 || | ||
144 | (r = sshpkt_get_end(ssh)) != 0) | ||
145 | goto out; | ||
146 | |||
147 | #ifdef DEBUG_KEXECDH | ||
148 | fputs("server public key:\n", stderr); | ||
149 | sshkey_dump_ec_point(group, server_public); | ||
150 | #endif | ||
151 | if (sshkey_ec_validate_public(group, server_public) != 0) { | ||
152 | sshpkt_disconnect(ssh, "invalid server public key"); | ||
153 | r = SSH_ERR_MESSAGE_INCOMPLETE; | ||
154 | goto out; | ||
155 | } | ||
156 | |||
157 | klen = (EC_GROUP_get_degree(group) + 7) / 8; | ||
158 | if ((kbuf = malloc(klen)) == NULL || | ||
159 | (shared_secret = BN_new()) == NULL) { | ||
160 | r = SSH_ERR_ALLOC_FAIL; | ||
161 | goto out; | ||
162 | } | ||
163 | if (ECDH_compute_key(kbuf, klen, server_public, | ||
164 | client_key, NULL) != (int)klen || | ||
165 | BN_bin2bn(kbuf, klen, shared_secret) == NULL) { | ||
166 | r = SSH_ERR_LIBCRYPTO_ERROR; | ||
167 | goto out; | ||
168 | } | ||
169 | |||
170 | #ifdef DEBUG_KEXECDH | ||
171 | dump_digest("shared secret", kbuf, klen); | ||
172 | #endif | ||
173 | /* calc and verify H */ | ||
174 | hashlen = sizeof(hash); | ||
175 | if ((r = kex_ecdh_hash( | ||
176 | kex->hash_alg, | ||
177 | group, | ||
178 | kex->client_version_string, | ||
179 | kex->server_version_string, | ||
180 | sshbuf_ptr(kex->my), sshbuf_len(kex->my), | ||
181 | sshbuf_ptr(kex->peer), sshbuf_len(kex->peer), | ||
182 | server_host_key_blob, sbloblen, | ||
183 | EC_KEY_get0_public_key(client_key), | ||
184 | server_public, | ||
185 | shared_secret, | ||
186 | hash, &hashlen)) != 0) | ||
187 | goto out; | ||
188 | |||
189 | if ((r = sshkey_verify(server_host_key, signature, slen, hash, | ||
190 | hashlen, kex->hostkey_alg, ssh->compat)) != 0) | ||
191 | goto out; | ||
192 | |||
193 | /* save session id */ | ||
194 | if (kex->session_id == NULL) { | ||
195 | kex->session_id_len = hashlen; | ||
196 | kex->session_id = malloc(kex->session_id_len); | ||
197 | if (kex->session_id == NULL) { | ||
198 | r = SSH_ERR_ALLOC_FAIL; | ||
199 | goto out; | ||
200 | } | ||
201 | memcpy(kex->session_id, hash, kex->session_id_len); | ||
202 | } | ||
203 | |||
204 | if ((r = kex_derive_keys_bn(ssh, hash, hashlen, shared_secret)) == 0) | ||
205 | r = kex_send_newkeys(ssh); | ||
206 | out: | ||
207 | explicit_bzero(hash, sizeof(hash)); | ||
208 | EC_KEY_free(kex->ec_client_key); | ||
209 | kex->ec_client_key = NULL; | ||
210 | EC_POINT_clear_free(server_public); | ||
211 | if (kbuf) { | ||
212 | explicit_bzero(kbuf, klen); | ||
213 | free(kbuf); | ||
214 | } | ||
215 | BN_clear_free(shared_secret); | ||
216 | sshkey_free(server_host_key); | ||
217 | free(server_host_key_blob); | ||
218 | free(signature); | ||
219 | return r; | ||
220 | } | ||
221 | #endif /* defined(WITH_OPENSSL) && defined(OPENSSL_HAS_ECC) */ | ||
222 | |||
diff --git a/kexecdhs.c b/kexecdhs.c deleted file mode 100644 index af4f30309..000000000 --- a/kexecdhs.c +++ /dev/null | |||
@@ -1,203 +0,0 @@ | |||
1 | /* $OpenBSD: kexecdhs.c,v 1.17 2018/02/07 02:06:51 jsing Exp $ */ | ||
2 | /* | ||
3 | * Copyright (c) 2001 Markus Friedl. All rights reserved. | ||
4 | * Copyright (c) 2010 Damien Miller. All rights reserved. | ||
5 | * | ||
6 | * Redistribution and use in source and binary forms, with or without | ||
7 | * modification, are permitted provided that the following conditions | ||
8 | * are met: | ||
9 | * 1. Redistributions of source code must retain the above copyright | ||
10 | * notice, this list of conditions and the following disclaimer. | ||
11 | * 2. Redistributions in binary form must reproduce the above copyright | ||
12 | * notice, this list of conditions and the following disclaimer in the | ||
13 | * documentation and/or other materials provided with the distribution. | ||
14 | * | ||
15 | * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR | ||
16 | * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES | ||
17 | * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. | ||
18 | * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, | ||
19 | * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT | ||
20 | * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, | ||
21 | * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY | ||
22 | * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT | ||
23 | * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF | ||
24 | * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | ||
25 | */ | ||
26 | |||
27 | #include "includes.h" | ||
28 | |||
29 | #if defined(WITH_OPENSSL) && defined(OPENSSL_HAS_ECC) | ||
30 | |||
31 | #include <sys/types.h> | ||
32 | #include <string.h> | ||
33 | #include <signal.h> | ||
34 | |||
35 | #include <openssl/ecdh.h> | ||
36 | |||
37 | #include "sshkey.h" | ||
38 | #include "cipher.h" | ||
39 | #include "digest.h" | ||
40 | #include "kex.h" | ||
41 | #include "log.h" | ||
42 | #include "packet.h" | ||
43 | #include "ssh2.h" | ||
44 | |||
45 | #include "dispatch.h" | ||
46 | #include "compat.h" | ||
47 | #include "ssherr.h" | ||
48 | #include "sshbuf.h" | ||
49 | |||
50 | static int input_kex_ecdh_init(int, u_int32_t, struct ssh *); | ||
51 | |||
52 | int | ||
53 | kexecdh_server(struct ssh *ssh) | ||
54 | { | ||
55 | debug("expecting SSH2_MSG_KEX_ECDH_INIT"); | ||
56 | ssh_dispatch_set(ssh, SSH2_MSG_KEX_ECDH_INIT, &input_kex_ecdh_init); | ||
57 | return 0; | ||
58 | } | ||
59 | |||
60 | static int | ||
61 | input_kex_ecdh_init(int type, u_int32_t seq, struct ssh *ssh) | ||
62 | { | ||
63 | struct kex *kex = ssh->kex; | ||
64 | EC_POINT *client_public; | ||
65 | EC_KEY *server_key = NULL; | ||
66 | const EC_GROUP *group; | ||
67 | const EC_POINT *public_key; | ||
68 | BIGNUM *shared_secret = NULL; | ||
69 | struct sshkey *server_host_private, *server_host_public; | ||
70 | u_char *server_host_key_blob = NULL, *signature = NULL; | ||
71 | u_char *kbuf = NULL; | ||
72 | u_char hash[SSH_DIGEST_MAX_LENGTH]; | ||
73 | size_t slen, sbloblen; | ||
74 | size_t klen = 0, hashlen; | ||
75 | int r; | ||
76 | |||
77 | if ((server_key = EC_KEY_new_by_curve_name(kex->ec_nid)) == NULL) { | ||
78 | r = SSH_ERR_ALLOC_FAIL; | ||
79 | goto out; | ||
80 | } | ||
81 | if (EC_KEY_generate_key(server_key) != 1) { | ||
82 | r = SSH_ERR_LIBCRYPTO_ERROR; | ||
83 | goto out; | ||
84 | } | ||
85 | group = EC_KEY_get0_group(server_key); | ||
86 | |||
87 | #ifdef DEBUG_KEXECDH | ||
88 | fputs("server private key:\n", stderr); | ||
89 | sshkey_dump_ec_key(server_key); | ||
90 | #endif | ||
91 | |||
92 | if (kex->load_host_public_key == NULL || | ||
93 | kex->load_host_private_key == NULL) { | ||
94 | r = SSH_ERR_INVALID_ARGUMENT; | ||
95 | goto out; | ||
96 | } | ||
97 | server_host_public = kex->load_host_public_key(kex->hostkey_type, | ||
98 | kex->hostkey_nid, ssh); | ||
99 | server_host_private = kex->load_host_private_key(kex->hostkey_type, | ||
100 | kex->hostkey_nid, ssh); | ||
101 | if (server_host_public == NULL) { | ||
102 | r = SSH_ERR_NO_HOSTKEY_LOADED; | ||
103 | goto out; | ||
104 | } | ||
105 | if ((client_public = EC_POINT_new(group)) == NULL) { | ||
106 | r = SSH_ERR_ALLOC_FAIL; | ||
107 | goto out; | ||
108 | } | ||
109 | if ((r = sshpkt_get_ec(ssh, client_public, group)) != 0 || | ||
110 | (r = sshpkt_get_end(ssh)) != 0) | ||
111 | goto out; | ||
112 | |||
113 | #ifdef DEBUG_KEXECDH | ||
114 | fputs("client public key:\n", stderr); | ||
115 | sshkey_dump_ec_point(group, client_public); | ||
116 | #endif | ||
117 | if (sshkey_ec_validate_public(group, client_public) != 0) { | ||
118 | sshpkt_disconnect(ssh, "invalid client public key"); | ||
119 | r = SSH_ERR_MESSAGE_INCOMPLETE; | ||
120 | goto out; | ||
121 | } | ||
122 | |||
123 | /* Calculate shared_secret */ | ||
124 | klen = (EC_GROUP_get_degree(group) + 7) / 8; | ||
125 | if ((kbuf = malloc(klen)) == NULL || | ||
126 | (shared_secret = BN_new()) == NULL) { | ||
127 | r = SSH_ERR_ALLOC_FAIL; | ||
128 | goto out; | ||
129 | } | ||
130 | if (ECDH_compute_key(kbuf, klen, client_public, | ||
131 | server_key, NULL) != (int)klen || | ||
132 | BN_bin2bn(kbuf, klen, shared_secret) == NULL) { | ||
133 | r = SSH_ERR_LIBCRYPTO_ERROR; | ||
134 | goto out; | ||
135 | } | ||
136 | |||
137 | #ifdef DEBUG_KEXECDH | ||
138 | dump_digest("shared secret", kbuf, klen); | ||
139 | #endif | ||
140 | /* calc H */ | ||
141 | if ((r = sshkey_to_blob(server_host_public, &server_host_key_blob, | ||
142 | &sbloblen)) != 0) | ||
143 | goto out; | ||
144 | hashlen = sizeof(hash); | ||
145 | if ((r = kex_ecdh_hash( | ||
146 | kex->hash_alg, | ||
147 | group, | ||
148 | kex->client_version_string, | ||
149 | kex->server_version_string, | ||
150 | sshbuf_ptr(kex->peer), sshbuf_len(kex->peer), | ||
151 | sshbuf_ptr(kex->my), sshbuf_len(kex->my), | ||
152 | server_host_key_blob, sbloblen, | ||
153 | client_public, | ||
154 | EC_KEY_get0_public_key(server_key), | ||
155 | shared_secret, | ||
156 | hash, &hashlen)) != 0) | ||
157 | goto out; | ||
158 | |||
159 | /* save session id := H */ | ||
160 | if (kex->session_id == NULL) { | ||
161 | kex->session_id_len = hashlen; | ||
162 | kex->session_id = malloc(kex->session_id_len); | ||
163 | if (kex->session_id == NULL) { | ||
164 | r = SSH_ERR_ALLOC_FAIL; | ||
165 | goto out; | ||
166 | } | ||
167 | memcpy(kex->session_id, hash, kex->session_id_len); | ||
168 | } | ||
169 | |||
170 | /* sign H */ | ||
171 | if ((r = kex->sign(server_host_private, server_host_public, &signature, | ||
172 | &slen, hash, hashlen, kex->hostkey_alg, ssh->compat)) < 0) | ||
173 | goto out; | ||
174 | |||
175 | /* destroy_sensitive_data(); */ | ||
176 | |||
177 | public_key = EC_KEY_get0_public_key(server_key); | ||
178 | /* send server hostkey, ECDH pubkey 'Q_S' and signed H */ | ||
179 | if ((r = sshpkt_start(ssh, SSH2_MSG_KEX_ECDH_REPLY)) != 0 || | ||
180 | (r = sshpkt_put_string(ssh, server_host_key_blob, sbloblen)) != 0 || | ||
181 | (r = sshpkt_put_ec(ssh, public_key, group)) != 0 || | ||
182 | (r = sshpkt_put_string(ssh, signature, slen)) != 0 || | ||
183 | (r = sshpkt_send(ssh)) != 0) | ||
184 | goto out; | ||
185 | |||
186 | if ((r = kex_derive_keys_bn(ssh, hash, hashlen, shared_secret)) == 0) | ||
187 | r = kex_send_newkeys(ssh); | ||
188 | out: | ||
189 | explicit_bzero(hash, sizeof(hash)); | ||
190 | EC_KEY_free(kex->ec_client_key); | ||
191 | kex->ec_client_key = NULL; | ||
192 | EC_KEY_free(server_key); | ||
193 | if (kbuf) { | ||
194 | explicit_bzero(kbuf, klen); | ||
195 | free(kbuf); | ||
196 | } | ||
197 | BN_clear_free(shared_secret); | ||
198 | free(server_host_key_blob); | ||
199 | free(signature); | ||
200 | return r; | ||
201 | } | ||
202 | #endif /* defined(WITH_OPENSSL) && defined(OPENSSL_HAS_ECC) */ | ||
203 | |||
diff --git a/kexgen.c b/kexgen.c new file mode 100644 index 000000000..2abbb9ef6 --- /dev/null +++ b/kexgen.c | |||
@@ -0,0 +1,339 @@ | |||
1 | /* $OpenBSD: kexgen.c,v 1.2 2019/01/23 00:30:41 djm Exp $ */ | ||
2 | /* | ||
3 | * Copyright (c) 2019 Markus Friedl. All rights reserved. | ||
4 | * | ||
5 | * Redistribution and use in source and binary forms, with or without | ||
6 | * modification, are permitted provided that the following conditions | ||
7 | * are met: | ||
8 | * 1. Redistributions of source code must retain the above copyright | ||
9 | * notice, this list of conditions and the following disclaimer. | ||
10 | * 2. Redistributions in binary form must reproduce the above copyright | ||
11 | * notice, this list of conditions and the following disclaimer in the | ||
12 | * documentation and/or other materials provided with the distribution. | ||
13 | * | ||
14 | * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR | ||
15 | * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES | ||
16 | * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. | ||
17 | * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, | ||
18 | * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT | ||
19 | * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, | ||
20 | * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY | ||
21 | * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT | ||
22 | * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF | ||
23 | * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | ||
24 | */ | ||
25 | |||
26 | #include "includes.h" | ||
27 | |||
28 | #include <sys/types.h> | ||
29 | |||
30 | #include <stdio.h> | ||
31 | #include <string.h> | ||
32 | #include <signal.h> | ||
33 | |||
34 | #include "sshkey.h" | ||
35 | #include "kex.h" | ||
36 | #include "log.h" | ||
37 | #include "packet.h" | ||
38 | #include "ssh2.h" | ||
39 | #include "sshbuf.h" | ||
40 | #include "digest.h" | ||
41 | #include "ssherr.h" | ||
42 | |||
43 | static int input_kex_gen_init(int, u_int32_t, struct ssh *); | ||
44 | static int input_kex_gen_reply(int type, u_int32_t seq, struct ssh *ssh); | ||
45 | |||
46 | static int | ||
47 | kex_gen_hash( | ||
48 | int hash_alg, | ||
49 | const struct sshbuf *client_version, | ||
50 | const struct sshbuf *server_version, | ||
51 | const struct sshbuf *client_kexinit, | ||
52 | const struct sshbuf *server_kexinit, | ||
53 | const struct sshbuf *server_host_key_blob, | ||
54 | const struct sshbuf *client_pub, | ||
55 | const struct sshbuf *server_pub, | ||
56 | const struct sshbuf *shared_secret, | ||
57 | u_char *hash, size_t *hashlen) | ||
58 | { | ||
59 | struct sshbuf *b; | ||
60 | int r; | ||
61 | |||
62 | if (*hashlen < ssh_digest_bytes(hash_alg)) | ||
63 | return SSH_ERR_INVALID_ARGUMENT; | ||
64 | if ((b = sshbuf_new()) == NULL) | ||
65 | return SSH_ERR_ALLOC_FAIL; | ||
66 | if ((r = sshbuf_put_stringb(b, client_version)) != 0 || | ||
67 | (r = sshbuf_put_stringb(b, server_version)) != 0 || | ||
68 | /* kexinit messages: fake header: len+SSH2_MSG_KEXINIT */ | ||
69 | (r = sshbuf_put_u32(b, sshbuf_len(client_kexinit) + 1)) != 0 || | ||
70 | (r = sshbuf_put_u8(b, SSH2_MSG_KEXINIT)) != 0 || | ||
71 | (r = sshbuf_putb(b, client_kexinit)) != 0 || | ||
72 | (r = sshbuf_put_u32(b, sshbuf_len(server_kexinit) + 1)) != 0 || | ||
73 | (r = sshbuf_put_u8(b, SSH2_MSG_KEXINIT)) != 0 || | ||
74 | (r = sshbuf_putb(b, server_kexinit)) != 0 || | ||
75 | (r = sshbuf_put_stringb(b, server_host_key_blob)) != 0 || | ||
76 | (r = sshbuf_put_stringb(b, client_pub)) != 0 || | ||
77 | (r = sshbuf_put_stringb(b, server_pub)) != 0 || | ||
78 | (r = sshbuf_putb(b, shared_secret)) != 0) { | ||
79 | sshbuf_free(b); | ||
80 | return r; | ||
81 | } | ||
82 | #ifdef DEBUG_KEX | ||
83 | sshbuf_dump(b, stderr); | ||
84 | #endif | ||
85 | if (ssh_digest_buffer(hash_alg, b, hash, *hashlen) != 0) { | ||
86 | sshbuf_free(b); | ||
87 | return SSH_ERR_LIBCRYPTO_ERROR; | ||
88 | } | ||
89 | sshbuf_free(b); | ||
90 | *hashlen = ssh_digest_bytes(hash_alg); | ||
91 | #ifdef DEBUG_KEX | ||
92 | dump_digest("hash", hash, *hashlen); | ||
93 | #endif | ||
94 | return 0; | ||
95 | } | ||
96 | |||
97 | int | ||
98 | kex_gen_client(struct ssh *ssh) | ||
99 | { | ||
100 | struct kex *kex = ssh->kex; | ||
101 | int r; | ||
102 | |||
103 | switch (kex->kex_type) { | ||
104 | #ifdef WITH_OPENSSL | ||
105 | case KEX_DH_GRP1_SHA1: | ||
106 | case KEX_DH_GRP14_SHA1: | ||
107 | case KEX_DH_GRP14_SHA256: | ||
108 | case KEX_DH_GRP16_SHA512: | ||
109 | case KEX_DH_GRP18_SHA512: | ||
110 | r = kex_dh_keypair(kex); | ||
111 | break; | ||
112 | case KEX_ECDH_SHA2: | ||
113 | r = kex_ecdh_keypair(kex); | ||
114 | break; | ||
115 | #endif | ||
116 | case KEX_C25519_SHA256: | ||
117 | r = kex_c25519_keypair(kex); | ||
118 | break; | ||
119 | case KEX_KEM_SNTRUP4591761X25519_SHA512: | ||
120 | r = kex_kem_sntrup4591761x25519_keypair(kex); | ||
121 | break; | ||
122 | default: | ||
123 | r = SSH_ERR_INVALID_ARGUMENT; | ||
124 | break; | ||
125 | } | ||
126 | if (r != 0) | ||
127 | return r; | ||
128 | if ((r = sshpkt_start(ssh, SSH2_MSG_KEX_ECDH_INIT)) != 0 || | ||
129 | (r = sshpkt_put_stringb(ssh, kex->client_pub)) != 0 || | ||
130 | (r = sshpkt_send(ssh)) != 0) | ||
131 | return r; | ||
132 | debug("expecting SSH2_MSG_KEX_ECDH_REPLY"); | ||
133 | ssh_dispatch_set(ssh, SSH2_MSG_KEX_ECDH_REPLY, &input_kex_gen_reply); | ||
134 | return 0; | ||
135 | } | ||
136 | |||
137 | static int | ||
138 | input_kex_gen_reply(int type, u_int32_t seq, struct ssh *ssh) | ||
139 | { | ||
140 | struct kex *kex = ssh->kex; | ||
141 | struct sshkey *server_host_key = NULL; | ||
142 | struct sshbuf *shared_secret = NULL; | ||
143 | struct sshbuf *server_blob = NULL; | ||
144 | struct sshbuf *tmp = NULL, *server_host_key_blob = NULL; | ||
145 | u_char *signature = NULL; | ||
146 | u_char hash[SSH_DIGEST_MAX_LENGTH]; | ||
147 | size_t slen, hashlen; | ||
148 | int r; | ||
149 | |||
150 | /* hostkey */ | ||
151 | if ((r = sshpkt_getb_froms(ssh, &server_host_key_blob)) != 0) | ||
152 | goto out; | ||
153 | /* sshkey_fromb() consumes its buffer, so make a copy */ | ||
154 | if ((tmp = sshbuf_fromb(server_host_key_blob)) == NULL) { | ||
155 | r = SSH_ERR_ALLOC_FAIL; | ||
156 | goto out; | ||
157 | } | ||
158 | if ((r = sshkey_fromb(tmp, &server_host_key)) != 0) | ||
159 | goto out; | ||
160 | if ((r = kex_verify_host_key(ssh, server_host_key)) != 0) | ||
161 | goto out; | ||
162 | |||
163 | /* Q_S, server public key */ | ||
164 | /* signed H */ | ||
165 | if ((r = sshpkt_getb_froms(ssh, &server_blob)) != 0 || | ||
166 | (r = sshpkt_get_string(ssh, &signature, &slen)) != 0 || | ||
167 | (r = sshpkt_get_end(ssh)) != 0) | ||
168 | goto out; | ||
169 | |||
170 | /* compute shared secret */ | ||
171 | switch (kex->kex_type) { | ||
172 | #ifdef WITH_OPENSSL | ||
173 | case KEX_DH_GRP1_SHA1: | ||
174 | case KEX_DH_GRP14_SHA1: | ||
175 | case KEX_DH_GRP14_SHA256: | ||
176 | case KEX_DH_GRP16_SHA512: | ||
177 | case KEX_DH_GRP18_SHA512: | ||
178 | r = kex_dh_dec(kex, server_blob, &shared_secret); | ||
179 | break; | ||
180 | case KEX_ECDH_SHA2: | ||
181 | r = kex_ecdh_dec(kex, server_blob, &shared_secret); | ||
182 | break; | ||
183 | #endif | ||
184 | case KEX_C25519_SHA256: | ||
185 | r = kex_c25519_dec(kex, server_blob, &shared_secret); | ||
186 | break; | ||
187 | case KEX_KEM_SNTRUP4591761X25519_SHA512: | ||
188 | r = kex_kem_sntrup4591761x25519_dec(kex, server_blob, | ||
189 | &shared_secret); | ||
190 | break; | ||
191 | default: | ||
192 | r = SSH_ERR_INVALID_ARGUMENT; | ||
193 | break; | ||
194 | } | ||
195 | if (r !=0 ) | ||
196 | goto out; | ||
197 | |||
198 | /* calc and verify H */ | ||
199 | hashlen = sizeof(hash); | ||
200 | if ((r = kex_gen_hash( | ||
201 | kex->hash_alg, | ||
202 | kex->client_version, | ||
203 | kex->server_version, | ||
204 | kex->my, | ||
205 | kex->peer, | ||
206 | server_host_key_blob, | ||
207 | kex->client_pub, | ||
208 | server_blob, | ||
209 | shared_secret, | ||
210 | hash, &hashlen)) != 0) | ||
211 | goto out; | ||
212 | |||
213 | if ((r = sshkey_verify(server_host_key, signature, slen, hash, hashlen, | ||
214 | kex->hostkey_alg, ssh->compat)) != 0) | ||
215 | goto out; | ||
216 | |||
217 | if ((r = kex_derive_keys(ssh, hash, hashlen, shared_secret)) == 0) | ||
218 | r = kex_send_newkeys(ssh); | ||
219 | out: | ||
220 | explicit_bzero(hash, sizeof(hash)); | ||
221 | explicit_bzero(kex->c25519_client_key, sizeof(kex->c25519_client_key)); | ||
222 | explicit_bzero(kex->sntrup4591761_client_key, | ||
223 | sizeof(kex->sntrup4591761_client_key)); | ||
224 | sshbuf_free(server_host_key_blob); | ||
225 | free(signature); | ||
226 | sshbuf_free(tmp); | ||
227 | sshkey_free(server_host_key); | ||
228 | sshbuf_free(server_blob); | ||
229 | sshbuf_free(shared_secret); | ||
230 | sshbuf_free(kex->client_pub); | ||
231 | kex->client_pub = NULL; | ||
232 | return r; | ||
233 | } | ||
234 | |||
235 | int | ||
236 | kex_gen_server(struct ssh *ssh) | ||
237 | { | ||
238 | debug("expecting SSH2_MSG_KEX_ECDH_INIT"); | ||
239 | ssh_dispatch_set(ssh, SSH2_MSG_KEX_ECDH_INIT, &input_kex_gen_init); | ||
240 | return 0; | ||
241 | } | ||
242 | |||
243 | static int | ||
244 | input_kex_gen_init(int type, u_int32_t seq, struct ssh *ssh) | ||
245 | { | ||
246 | struct kex *kex = ssh->kex; | ||
247 | struct sshkey *server_host_private, *server_host_public; | ||
248 | struct sshbuf *shared_secret = NULL; | ||
249 | struct sshbuf *server_pubkey = NULL; | ||
250 | struct sshbuf *client_pubkey = NULL; | ||
251 | struct sshbuf *server_host_key_blob = NULL; | ||
252 | u_char *signature = NULL, hash[SSH_DIGEST_MAX_LENGTH]; | ||
253 | size_t slen, hashlen; | ||
254 | int r; | ||
255 | |||
256 | if ((r = kex_load_hostkey(ssh, &server_host_private, | ||
257 | &server_host_public)) != 0) | ||
258 | goto out; | ||
259 | |||
260 | if ((r = sshpkt_getb_froms(ssh, &client_pubkey)) != 0 || | ||
261 | (r = sshpkt_get_end(ssh)) != 0) | ||
262 | goto out; | ||
263 | |||
264 | /* compute shared secret */ | ||
265 | switch (kex->kex_type) { | ||
266 | #ifdef WITH_OPENSSL | ||
267 | case KEX_DH_GRP1_SHA1: | ||
268 | case KEX_DH_GRP14_SHA1: | ||
269 | case KEX_DH_GRP14_SHA256: | ||
270 | case KEX_DH_GRP16_SHA512: | ||
271 | case KEX_DH_GRP18_SHA512: | ||
272 | r = kex_dh_enc(kex, client_pubkey, &server_pubkey, | ||
273 | &shared_secret); | ||
274 | break; | ||
275 | case KEX_ECDH_SHA2: | ||
276 | r = kex_ecdh_enc(kex, client_pubkey, &server_pubkey, | ||
277 | &shared_secret); | ||
278 | break; | ||
279 | #endif | ||
280 | case KEX_C25519_SHA256: | ||
281 | r = kex_c25519_enc(kex, client_pubkey, &server_pubkey, | ||
282 | &shared_secret); | ||
283 | break; | ||
284 | case KEX_KEM_SNTRUP4591761X25519_SHA512: | ||
285 | r = kex_kem_sntrup4591761x25519_enc(kex, client_pubkey, | ||
286 | &server_pubkey, &shared_secret); | ||
287 | break; | ||
288 | default: | ||
289 | r = SSH_ERR_INVALID_ARGUMENT; | ||
290 | break; | ||
291 | } | ||
292 | if (r !=0 ) | ||
293 | goto out; | ||
294 | |||
295 | /* calc H */ | ||
296 | if ((server_host_key_blob = sshbuf_new()) == NULL) { | ||
297 | r = SSH_ERR_ALLOC_FAIL; | ||
298 | goto out; | ||
299 | } | ||
300 | if ((r = sshkey_putb(server_host_public, server_host_key_blob)) != 0) | ||
301 | goto out; | ||
302 | hashlen = sizeof(hash); | ||
303 | if ((r = kex_gen_hash( | ||
304 | kex->hash_alg, | ||
305 | kex->client_version, | ||
306 | kex->server_version, | ||
307 | kex->peer, | ||
308 | kex->my, | ||
309 | server_host_key_blob, | ||
310 | client_pubkey, | ||
311 | server_pubkey, | ||
312 | shared_secret, | ||
313 | hash, &hashlen)) != 0) | ||
314 | goto out; | ||
315 | |||
316 | /* sign H */ | ||
317 | if ((r = kex->sign(ssh, server_host_private, server_host_public, | ||
318 | &signature, &slen, hash, hashlen, kex->hostkey_alg)) != 0) | ||
319 | goto out; | ||
320 | |||
321 | /* send server hostkey, ECDH pubkey 'Q_S' and signed H */ | ||
322 | if ((r = sshpkt_start(ssh, SSH2_MSG_KEX_ECDH_REPLY)) != 0 || | ||
323 | (r = sshpkt_put_stringb(ssh, server_host_key_blob)) != 0 || | ||
324 | (r = sshpkt_put_stringb(ssh, server_pubkey)) != 0 || | ||
325 | (r = sshpkt_put_string(ssh, signature, slen)) != 0 || | ||
326 | (r = sshpkt_send(ssh)) != 0) | ||
327 | goto out; | ||
328 | |||
329 | if ((r = kex_derive_keys(ssh, hash, hashlen, shared_secret)) == 0) | ||
330 | r = kex_send_newkeys(ssh); | ||
331 | out: | ||
332 | explicit_bzero(hash, sizeof(hash)); | ||
333 | sshbuf_free(server_host_key_blob); | ||
334 | free(signature); | ||
335 | sshbuf_free(shared_secret); | ||
336 | sshbuf_free(client_pubkey); | ||
337 | sshbuf_free(server_pubkey); | ||
338 | return r; | ||
339 | } | ||
@@ -1,4 +1,4 @@ | |||
1 | /* $OpenBSD: kexgex.c,v 1.29 2015/01/19 20:16:15 markus Exp $ */ | 1 | /* $OpenBSD: kexgex.c,v 1.32 2019/01/23 00:30:41 djm Exp $ */ |
2 | /* | 2 | /* |
3 | * Copyright (c) 2000 Niels Provos. All rights reserved. | 3 | * Copyright (c) 2000 Niels Provos. All rights reserved. |
4 | * Copyright (c) 2001 Markus Friedl. All rights reserved. | 4 | * Copyright (c) 2001 Markus Friedl. All rights reserved. |
@@ -46,17 +46,17 @@ | |||
46 | int | 46 | int |
47 | kexgex_hash( | 47 | kexgex_hash( |
48 | int hash_alg, | 48 | int hash_alg, |
49 | const char *client_version_string, | 49 | const struct sshbuf *client_version, |
50 | const char *server_version_string, | 50 | const struct sshbuf *server_version, |
51 | const u_char *ckexinit, size_t ckexinitlen, | 51 | const struct sshbuf *client_kexinit, |
52 | const u_char *skexinit, size_t skexinitlen, | 52 | const struct sshbuf *server_kexinit, |
53 | const u_char *serverhostkeyblob, size_t sbloblen, | 53 | const struct sshbuf *server_host_key_blob, |
54 | int min, int wantbits, int max, | 54 | int min, int wantbits, int max, |
55 | const BIGNUM *prime, | 55 | const BIGNUM *prime, |
56 | const BIGNUM *gen, | 56 | const BIGNUM *gen, |
57 | const BIGNUM *client_dh_pub, | 57 | const BIGNUM *client_dh_pub, |
58 | const BIGNUM *server_dh_pub, | 58 | const BIGNUM *server_dh_pub, |
59 | const BIGNUM *shared_secret, | 59 | const u_char *shared_secret, size_t secretlen, |
60 | u_char *hash, size_t *hashlen) | 60 | u_char *hash, size_t *hashlen) |
61 | { | 61 | { |
62 | struct sshbuf *b; | 62 | struct sshbuf *b; |
@@ -66,16 +66,16 @@ kexgex_hash( | |||
66 | return SSH_ERR_INVALID_ARGUMENT; | 66 | return SSH_ERR_INVALID_ARGUMENT; |
67 | if ((b = sshbuf_new()) == NULL) | 67 | if ((b = sshbuf_new()) == NULL) |
68 | return SSH_ERR_ALLOC_FAIL; | 68 | return SSH_ERR_ALLOC_FAIL; |
69 | if ((r = sshbuf_put_cstring(b, client_version_string)) != 0 || | 69 | if ((r = sshbuf_put_stringb(b, client_version)) < 0 || |
70 | (r = sshbuf_put_cstring(b, server_version_string)) != 0 || | 70 | (r = sshbuf_put_stringb(b, server_version)) < 0 || |
71 | /* kexinit messages: fake header: len+SSH2_MSG_KEXINIT */ | 71 | /* kexinit messages: fake header: len+SSH2_MSG_KEXINIT */ |
72 | (r = sshbuf_put_u32(b, ckexinitlen+1)) != 0 || | 72 | (r = sshbuf_put_u32(b, sshbuf_len(client_kexinit) + 1)) != 0 || |
73 | (r = sshbuf_put_u8(b, SSH2_MSG_KEXINIT)) != 0 || | 73 | (r = sshbuf_put_u8(b, SSH2_MSG_KEXINIT)) != 0 || |
74 | (r = sshbuf_put(b, ckexinit, ckexinitlen)) != 0 || | 74 | (r = sshbuf_putb(b, client_kexinit)) != 0 || |
75 | (r = sshbuf_put_u32(b, skexinitlen+1)) != 0 || | 75 | (r = sshbuf_put_u32(b, sshbuf_len(server_kexinit) + 1)) != 0 || |
76 | (r = sshbuf_put_u8(b, SSH2_MSG_KEXINIT)) != 0 || | 76 | (r = sshbuf_put_u8(b, SSH2_MSG_KEXINIT)) != 0 || |
77 | (r = sshbuf_put(b, skexinit, skexinitlen)) != 0 || | 77 | (r = sshbuf_putb(b, server_kexinit)) != 0 || |
78 | (r = sshbuf_put_string(b, serverhostkeyblob, sbloblen)) != 0 || | 78 | (r = sshbuf_put_stringb(b, server_host_key_blob)) != 0 || |
79 | (min != -1 && (r = sshbuf_put_u32(b, min)) != 0) || | 79 | (min != -1 && (r = sshbuf_put_u32(b, min)) != 0) || |
80 | (r = sshbuf_put_u32(b, wantbits)) != 0 || | 80 | (r = sshbuf_put_u32(b, wantbits)) != 0 || |
81 | (max != -1 && (r = sshbuf_put_u32(b, max)) != 0) || | 81 | (max != -1 && (r = sshbuf_put_u32(b, max)) != 0) || |
@@ -83,7 +83,7 @@ kexgex_hash( | |||
83 | (r = sshbuf_put_bignum2(b, gen)) != 0 || | 83 | (r = sshbuf_put_bignum2(b, gen)) != 0 || |
84 | (r = sshbuf_put_bignum2(b, client_dh_pub)) != 0 || | 84 | (r = sshbuf_put_bignum2(b, client_dh_pub)) != 0 || |
85 | (r = sshbuf_put_bignum2(b, server_dh_pub)) != 0 || | 85 | (r = sshbuf_put_bignum2(b, server_dh_pub)) != 0 || |
86 | (r = sshbuf_put_bignum2(b, shared_secret)) != 0) { | 86 | (r = sshbuf_put(b, shared_secret, secretlen)) != 0) { |
87 | sshbuf_free(b); | 87 | sshbuf_free(b); |
88 | return r; | 88 | return r; |
89 | } | 89 | } |
@@ -1,4 +1,4 @@ | |||
1 | /* $OpenBSD: kexgexc.c,v 1.27 2018/02/07 02:06:51 jsing Exp $ */ | 1 | /* $OpenBSD: kexgexc.c,v 1.34 2019/01/23 00:30:41 djm Exp $ */ |
2 | /* | 2 | /* |
3 | * Copyright (c) 2000 Niels Provos. All rights reserved. | 3 | * Copyright (c) 2000 Niels Provos. All rights reserved. |
4 | * Copyright (c) 2001 Markus Friedl. All rights reserved. | 4 | * Copyright (c) 2001 Markus Friedl. All rights reserved. |
@@ -100,13 +100,8 @@ input_kex_dh_gex_group(int type, u_int32_t seq, struct ssh *ssh) | |||
100 | 100 | ||
101 | debug("got SSH2_MSG_KEX_DH_GEX_GROUP"); | 101 | debug("got SSH2_MSG_KEX_DH_GEX_GROUP"); |
102 | 102 | ||
103 | if ((p = BN_new()) == NULL || | 103 | if ((r = sshpkt_get_bignum2(ssh, &p)) != 0 || |
104 | (g = BN_new()) == NULL) { | 104 | (r = sshpkt_get_bignum2(ssh, &g)) != 0 || |
105 | r = SSH_ERR_ALLOC_FAIL; | ||
106 | goto out; | ||
107 | } | ||
108 | if ((r = sshpkt_get_bignum2(ssh, p)) != 0 || | ||
109 | (r = sshpkt_get_bignum2(ssh, g)) != 0 || | ||
110 | (r = sshpkt_get_end(ssh)) != 0) | 105 | (r = sshpkt_get_end(ssh)) != 0) |
111 | goto out; | 106 | goto out; |
112 | if ((bits = BN_num_bits(p)) < 0 || | 107 | if ((bits = BN_num_bits(p)) < 0 || |
@@ -148,71 +143,39 @@ static int | |||
148 | input_kex_dh_gex_reply(int type, u_int32_t seq, struct ssh *ssh) | 143 | input_kex_dh_gex_reply(int type, u_int32_t seq, struct ssh *ssh) |
149 | { | 144 | { |
150 | struct kex *kex = ssh->kex; | 145 | struct kex *kex = ssh->kex; |
151 | BIGNUM *dh_server_pub = NULL, *shared_secret = NULL; | 146 | BIGNUM *dh_server_pub = NULL; |
152 | const BIGNUM *pub_key, *dh_p, *dh_g; | 147 | const BIGNUM *pub_key, *dh_p, *dh_g; |
148 | struct sshbuf *shared_secret = NULL; | ||
149 | struct sshbuf *tmp = NULL, *server_host_key_blob = NULL; | ||
153 | struct sshkey *server_host_key = NULL; | 150 | struct sshkey *server_host_key = NULL; |
154 | u_char *kbuf = NULL, *signature = NULL, *server_host_key_blob = NULL; | 151 | u_char *signature = NULL; |
155 | u_char hash[SSH_DIGEST_MAX_LENGTH]; | 152 | u_char hash[SSH_DIGEST_MAX_LENGTH]; |
156 | size_t klen = 0, slen, sbloblen, hashlen; | 153 | size_t slen, hashlen; |
157 | int kout, r; | 154 | int r; |
158 | 155 | ||
159 | debug("got SSH2_MSG_KEX_DH_GEX_REPLY"); | 156 | debug("got SSH2_MSG_KEX_DH_GEX_REPLY"); |
160 | if (kex->verify_host_key == NULL) { | ||
161 | r = SSH_ERR_INVALID_ARGUMENT; | ||
162 | goto out; | ||
163 | } | ||
164 | /* key, cert */ | 157 | /* key, cert */ |
165 | if ((r = sshpkt_get_string(ssh, &server_host_key_blob, | 158 | if ((r = sshpkt_getb_froms(ssh, &server_host_key_blob)) != 0) |
166 | &sbloblen)) != 0 || | ||
167 | (r = sshkey_from_blob(server_host_key_blob, sbloblen, | ||
168 | &server_host_key)) != 0) | ||
169 | goto out; | 159 | goto out; |
170 | if (server_host_key->type != kex->hostkey_type || | 160 | /* sshkey_fromb() consumes its buffer, so make a copy */ |
171 | (kex->hostkey_type == KEY_ECDSA && | 161 | if ((tmp = sshbuf_fromb(server_host_key_blob)) == NULL) { |
172 | server_host_key->ecdsa_nid != kex->hostkey_nid)) { | ||
173 | r = SSH_ERR_KEY_TYPE_MISMATCH; | ||
174 | goto out; | ||
175 | } | ||
176 | if (kex->verify_host_key(server_host_key, ssh) == -1) { | ||
177 | r = SSH_ERR_SIGNATURE_INVALID; | ||
178 | goto out; | ||
179 | } | ||
180 | /* DH parameter f, server public DH key */ | ||
181 | if ((dh_server_pub = BN_new()) == NULL) { | ||
182 | r = SSH_ERR_ALLOC_FAIL; | 162 | r = SSH_ERR_ALLOC_FAIL; |
183 | goto out; | 163 | goto out; |
184 | } | 164 | } |
185 | /* signed H */ | 165 | if ((r = sshkey_fromb(tmp, &server_host_key)) != 0 || |
186 | if ((r = sshpkt_get_bignum2(ssh, dh_server_pub)) != 0 || | 166 | (r = kex_verify_host_key(ssh, server_host_key)) != 0) |
167 | goto out; | ||
168 | /* DH parameter f, server public DH key, signed H */ | ||
169 | if ((r = sshpkt_get_bignum2(ssh, &dh_server_pub)) != 0 || | ||
187 | (r = sshpkt_get_string(ssh, &signature, &slen)) != 0 || | 170 | (r = sshpkt_get_string(ssh, &signature, &slen)) != 0 || |
188 | (r = sshpkt_get_end(ssh)) != 0) | 171 | (r = sshpkt_get_end(ssh)) != 0) |
189 | goto out; | 172 | goto out; |
190 | #ifdef DEBUG_KEXDH | 173 | if ((shared_secret = sshbuf_new()) == NULL) { |
191 | fprintf(stderr, "dh_server_pub= "); | ||
192 | BN_print_fp(stderr, dh_server_pub); | ||
193 | fprintf(stderr, "\n"); | ||
194 | debug("bits %d", BN_num_bits(dh_server_pub)); | ||
195 | #endif | ||
196 | if (!dh_pub_is_valid(kex->dh, dh_server_pub)) { | ||
197 | sshpkt_disconnect(ssh, "bad server public DH value"); | ||
198 | r = SSH_ERR_MESSAGE_INCOMPLETE; | ||
199 | goto out; | ||
200 | } | ||
201 | |||
202 | klen = DH_size(kex->dh); | ||
203 | if ((kbuf = malloc(klen)) == NULL || | ||
204 | (shared_secret = BN_new()) == NULL) { | ||
205 | r = SSH_ERR_ALLOC_FAIL; | 174 | r = SSH_ERR_ALLOC_FAIL; |
206 | goto out; | 175 | goto out; |
207 | } | 176 | } |
208 | if ((kout = DH_compute_key(kbuf, dh_server_pub, kex->dh)) < 0 || | 177 | if ((r = kex_dh_compute_key(kex, dh_server_pub, shared_secret)) != 0) |
209 | BN_bin2bn(kbuf, kout, shared_secret) == NULL) { | ||
210 | r = SSH_ERR_LIBCRYPTO_ERROR; | ||
211 | goto out; | 178 | goto out; |
212 | } | ||
213 | #ifdef DEBUG_KEXDH | ||
214 | dump_digest("shared secret", kbuf, kout); | ||
215 | #endif | ||
216 | if (ssh->compat & SSH_OLD_DHGEX) | 179 | if (ssh->compat & SSH_OLD_DHGEX) |
217 | kex->min = kex->max = -1; | 180 | kex->min = kex->max = -1; |
218 | 181 | ||
@@ -222,16 +185,16 @@ input_kex_dh_gex_reply(int type, u_int32_t seq, struct ssh *ssh) | |||
222 | hashlen = sizeof(hash); | 185 | hashlen = sizeof(hash); |
223 | if ((r = kexgex_hash( | 186 | if ((r = kexgex_hash( |
224 | kex->hash_alg, | 187 | kex->hash_alg, |
225 | kex->client_version_string, | 188 | kex->client_version, |
226 | kex->server_version_string, | 189 | kex->server_version, |
227 | sshbuf_ptr(kex->my), sshbuf_len(kex->my), | 190 | kex->my, |
228 | sshbuf_ptr(kex->peer), sshbuf_len(kex->peer), | 191 | kex->peer, |
229 | server_host_key_blob, sbloblen, | 192 | server_host_key_blob, |
230 | kex->min, kex->nbits, kex->max, | 193 | kex->min, kex->nbits, kex->max, |
231 | dh_p, dh_g, | 194 | dh_p, dh_g, |
232 | pub_key, | 195 | pub_key, |
233 | dh_server_pub, | 196 | dh_server_pub, |
234 | shared_secret, | 197 | sshbuf_ptr(shared_secret), sshbuf_len(shared_secret), |
235 | hash, &hashlen)) != 0) | 198 | hash, &hashlen)) != 0) |
236 | goto out; | 199 | goto out; |
237 | 200 | ||
@@ -239,31 +202,17 @@ input_kex_dh_gex_reply(int type, u_int32_t seq, struct ssh *ssh) | |||
239 | hashlen, kex->hostkey_alg, ssh->compat)) != 0) | 202 | hashlen, kex->hostkey_alg, ssh->compat)) != 0) |
240 | goto out; | 203 | goto out; |
241 | 204 | ||
242 | /* save session id */ | 205 | if ((r = kex_derive_keys(ssh, hash, hashlen, shared_secret)) == 0) |
243 | if (kex->session_id == NULL) { | ||
244 | kex->session_id_len = hashlen; | ||
245 | kex->session_id = malloc(kex->session_id_len); | ||
246 | if (kex->session_id == NULL) { | ||
247 | r = SSH_ERR_ALLOC_FAIL; | ||
248 | goto out; | ||
249 | } | ||
250 | memcpy(kex->session_id, hash, kex->session_id_len); | ||
251 | } | ||
252 | |||
253 | if ((r = kex_derive_keys_bn(ssh, hash, hashlen, shared_secret)) == 0) | ||
254 | r = kex_send_newkeys(ssh); | 206 | r = kex_send_newkeys(ssh); |
255 | out: | 207 | out: |
256 | explicit_bzero(hash, sizeof(hash)); | 208 | explicit_bzero(hash, sizeof(hash)); |
257 | DH_free(kex->dh); | 209 | DH_free(kex->dh); |
258 | kex->dh = NULL; | 210 | kex->dh = NULL; |
259 | BN_clear_free(dh_server_pub); | 211 | BN_clear_free(dh_server_pub); |
260 | if (kbuf) { | 212 | sshbuf_free(shared_secret); |
261 | explicit_bzero(kbuf, klen); | ||
262 | free(kbuf); | ||
263 | } | ||
264 | BN_clear_free(shared_secret); | ||
265 | sshkey_free(server_host_key); | 213 | sshkey_free(server_host_key); |
266 | free(server_host_key_blob); | 214 | sshbuf_free(tmp); |
215 | sshbuf_free(server_host_key_blob); | ||
267 | free(signature); | 216 | free(signature); |
268 | return r; | 217 | return r; |
269 | } | 218 | } |
@@ -1,4 +1,4 @@ | |||
1 | /* $OpenBSD: kexgexs.c,v 1.35 2018/10/04 00:04:41 djm Exp $ */ | 1 | /* $OpenBSD: kexgexs.c,v 1.42 2019/01/23 00:30:41 djm Exp $ */ |
2 | /* | 2 | /* |
3 | * Copyright (c) 2000 Niels Provos. All rights reserved. | 3 | * Copyright (c) 2000 Niels Provos. All rights reserved. |
4 | * Copyright (c) 2001 Markus Friedl. All rights reserved. | 4 | * Copyright (c) 2001 Markus Friedl. All rights reserved. |
@@ -126,130 +126,78 @@ static int | |||
126 | input_kex_dh_gex_init(int type, u_int32_t seq, struct ssh *ssh) | 126 | input_kex_dh_gex_init(int type, u_int32_t seq, struct ssh *ssh) |
127 | { | 127 | { |
128 | struct kex *kex = ssh->kex; | 128 | struct kex *kex = ssh->kex; |
129 | BIGNUM *shared_secret = NULL, *dh_client_pub = NULL; | 129 | BIGNUM *dh_client_pub = NULL; |
130 | const BIGNUM *pub_key, *dh_p, *dh_g; | 130 | const BIGNUM *pub_key, *dh_p, *dh_g; |
131 | struct sshbuf *shared_secret = NULL; | ||
132 | struct sshbuf *server_host_key_blob = NULL; | ||
131 | struct sshkey *server_host_public, *server_host_private; | 133 | struct sshkey *server_host_public, *server_host_private; |
132 | u_char *kbuf = NULL, *signature = NULL, *server_host_key_blob = NULL; | 134 | u_char *signature = NULL; |
133 | u_char hash[SSH_DIGEST_MAX_LENGTH]; | 135 | u_char hash[SSH_DIGEST_MAX_LENGTH]; |
134 | size_t sbloblen, slen; | 136 | size_t slen, hashlen; |
135 | size_t klen = 0, hashlen; | 137 | int r; |
136 | int kout, r; | ||
137 | 138 | ||
138 | if (kex->load_host_public_key == NULL || | 139 | if ((r = kex_load_hostkey(ssh, &server_host_private, |
139 | kex->load_host_private_key == NULL) { | 140 | &server_host_public)) != 0) |
140 | r = SSH_ERR_INVALID_ARGUMENT; | ||
141 | goto out; | ||
142 | } | ||
143 | server_host_public = kex->load_host_public_key(kex->hostkey_type, | ||
144 | kex->hostkey_nid, ssh); | ||
145 | server_host_private = kex->load_host_private_key(kex->hostkey_type, | ||
146 | kex->hostkey_nid, ssh); | ||
147 | if (server_host_public == NULL) { | ||
148 | r = SSH_ERR_NO_HOSTKEY_LOADED; | ||
149 | goto out; | 141 | goto out; |
150 | } | ||
151 | 142 | ||
152 | /* key, cert */ | 143 | /* key, cert */ |
153 | if ((dh_client_pub = BN_new()) == NULL) { | 144 | if ((r = sshpkt_get_bignum2(ssh, &dh_client_pub)) != 0 || |
154 | r = SSH_ERR_ALLOC_FAIL; | ||
155 | goto out; | ||
156 | } | ||
157 | if ((r = sshpkt_get_bignum2(ssh, dh_client_pub)) != 0 || | ||
158 | (r = sshpkt_get_end(ssh)) != 0) | 145 | (r = sshpkt_get_end(ssh)) != 0) |
159 | goto out; | 146 | goto out; |
160 | 147 | if ((shared_secret = sshbuf_new()) == NULL) { | |
161 | DH_get0_key(kex->dh, &pub_key, NULL); | ||
162 | DH_get0_pqg(kex->dh, &dh_p, NULL, &dh_g); | ||
163 | |||
164 | #ifdef DEBUG_KEXDH | ||
165 | fprintf(stderr, "dh_client_pub= "); | ||
166 | BN_print_fp(stderr, dh_client_pub); | ||
167 | fprintf(stderr, "\n"); | ||
168 | debug("bits %d", BN_num_bits(dh_client_pub)); | ||
169 | DHparams_print_fp(stderr, kex->dh); | ||
170 | fprintf(stderr, "pub= "); | ||
171 | BN_print_fp(stderr, pub_key); | ||
172 | fprintf(stderr, "\n"); | ||
173 | #endif | ||
174 | if (!dh_pub_is_valid(kex->dh, dh_client_pub)) { | ||
175 | sshpkt_disconnect(ssh, "bad client public DH value"); | ||
176 | r = SSH_ERR_MESSAGE_INCOMPLETE; | ||
177 | goto out; | ||
178 | } | ||
179 | |||
180 | klen = DH_size(kex->dh); | ||
181 | if ((kbuf = malloc(klen)) == NULL || | ||
182 | (shared_secret = BN_new()) == NULL) { | ||
183 | r = SSH_ERR_ALLOC_FAIL; | 148 | r = SSH_ERR_ALLOC_FAIL; |
184 | goto out; | 149 | goto out; |
185 | } | 150 | } |
186 | if ((kout = DH_compute_key(kbuf, dh_client_pub, kex->dh)) < 0 || | 151 | if ((r = kex_dh_compute_key(kex, dh_client_pub, shared_secret)) != 0) |
187 | BN_bin2bn(kbuf, kout, shared_secret) == NULL) { | 152 | goto out; |
188 | r = SSH_ERR_LIBCRYPTO_ERROR; | 153 | if ((server_host_key_blob = sshbuf_new()) == NULL) { |
154 | r = SSH_ERR_ALLOC_FAIL; | ||
189 | goto out; | 155 | goto out; |
190 | } | 156 | } |
191 | #ifdef DEBUG_KEXDH | 157 | if ((r = sshkey_putb(server_host_public, server_host_key_blob)) != 0) |
192 | dump_digest("shared secret", kbuf, kout); | ||
193 | #endif | ||
194 | if ((r = sshkey_to_blob(server_host_public, &server_host_key_blob, | ||
195 | &sbloblen)) != 0) | ||
196 | goto out; | 158 | goto out; |
159 | |||
197 | /* calc H */ | 160 | /* calc H */ |
161 | DH_get0_key(kex->dh, &pub_key, NULL); | ||
162 | DH_get0_pqg(kex->dh, &dh_p, NULL, &dh_g); | ||
198 | hashlen = sizeof(hash); | 163 | hashlen = sizeof(hash); |
199 | if ((r = kexgex_hash( | 164 | if ((r = kexgex_hash( |
200 | kex->hash_alg, | 165 | kex->hash_alg, |
201 | kex->client_version_string, | 166 | kex->client_version, |
202 | kex->server_version_string, | 167 | kex->server_version, |
203 | sshbuf_ptr(kex->peer), sshbuf_len(kex->peer), | 168 | kex->peer, |
204 | sshbuf_ptr(kex->my), sshbuf_len(kex->my), | 169 | kex->my, |
205 | server_host_key_blob, sbloblen, | 170 | server_host_key_blob, |
206 | kex->min, kex->nbits, kex->max, | 171 | kex->min, kex->nbits, kex->max, |
207 | dh_p, dh_g, | 172 | dh_p, dh_g, |
208 | dh_client_pub, | 173 | dh_client_pub, |
209 | pub_key, | 174 | pub_key, |
210 | shared_secret, | 175 | sshbuf_ptr(shared_secret), sshbuf_len(shared_secret), |
211 | hash, &hashlen)) != 0) | 176 | hash, &hashlen)) != 0) |
212 | goto out; | 177 | goto out; |
213 | 178 | ||
214 | /* save session id := H */ | ||
215 | if (kex->session_id == NULL) { | ||
216 | kex->session_id_len = hashlen; | ||
217 | kex->session_id = malloc(kex->session_id_len); | ||
218 | if (kex->session_id == NULL) { | ||
219 | r = SSH_ERR_ALLOC_FAIL; | ||
220 | goto out; | ||
221 | } | ||
222 | memcpy(kex->session_id, hash, kex->session_id_len); | ||
223 | } | ||
224 | |||
225 | /* sign H */ | 179 | /* sign H */ |
226 | if ((r = kex->sign(server_host_private, server_host_public, &signature, | 180 | if ((r = kex->sign(ssh, server_host_private, server_host_public, |
227 | &slen, hash, hashlen, kex->hostkey_alg, ssh->compat)) < 0) | 181 | &signature, &slen, hash, hashlen, kex->hostkey_alg)) < 0) |
228 | goto out; | 182 | goto out; |
229 | 183 | ||
230 | /* destroy_sensitive_data(); */ | ||
231 | |||
232 | /* send server hostkey, DH pubkey 'f' and signed H */ | 184 | /* send server hostkey, DH pubkey 'f' and signed H */ |
233 | if ((r = sshpkt_start(ssh, SSH2_MSG_KEX_DH_GEX_REPLY)) != 0 || | 185 | if ((r = sshpkt_start(ssh, SSH2_MSG_KEX_DH_GEX_REPLY)) != 0 || |
234 | (r = sshpkt_put_string(ssh, server_host_key_blob, sbloblen)) != 0 || | 186 | (r = sshpkt_put_stringb(ssh, server_host_key_blob)) != 0 || |
235 | (r = sshpkt_put_bignum2(ssh, pub_key)) != 0 || /* f */ | 187 | (r = sshpkt_put_bignum2(ssh, pub_key)) != 0 || /* f */ |
236 | (r = sshpkt_put_string(ssh, signature, slen)) != 0 || | 188 | (r = sshpkt_put_string(ssh, signature, slen)) != 0 || |
237 | (r = sshpkt_send(ssh)) != 0) | 189 | (r = sshpkt_send(ssh)) != 0) |
238 | goto out; | 190 | goto out; |
239 | 191 | ||
240 | if ((r = kex_derive_keys_bn(ssh, hash, hashlen, shared_secret)) == 0) | 192 | if ((r = kex_derive_keys(ssh, hash, hashlen, shared_secret)) == 0) |
241 | r = kex_send_newkeys(ssh); | 193 | r = kex_send_newkeys(ssh); |
242 | out: | 194 | out: |
243 | explicit_bzero(hash, sizeof(hash)); | 195 | explicit_bzero(hash, sizeof(hash)); |
244 | DH_free(kex->dh); | 196 | DH_free(kex->dh); |
245 | kex->dh = NULL; | 197 | kex->dh = NULL; |
246 | BN_clear_free(dh_client_pub); | 198 | BN_clear_free(dh_client_pub); |
247 | if (kbuf) { | 199 | sshbuf_free(shared_secret); |
248 | explicit_bzero(kbuf, klen); | 200 | sshbuf_free(server_host_key_blob); |
249 | free(kbuf); | ||
250 | } | ||
251 | BN_clear_free(shared_secret); | ||
252 | free(server_host_key_blob); | ||
253 | free(signature); | 201 | free(signature); |
254 | return r; | 202 | return r; |
255 | } | 203 | } |
diff --git a/kexsntrup4591761x25519.c b/kexsntrup4591761x25519.c new file mode 100644 index 000000000..3b9b664f8 --- /dev/null +++ b/kexsntrup4591761x25519.c | |||
@@ -0,0 +1,219 @@ | |||
1 | /* $OpenBSD: kexsntrup4591761x25519.c,v 1.3 2019/01/21 10:40:11 djm Exp $ */ | ||
2 | /* | ||
3 | * Copyright (c) 2019 Markus Friedl. All rights reserved. | ||
4 | * | ||
5 | * Redistribution and use in source and binary forms, with or without | ||
6 | * modification, are permitted provided that the following conditions | ||
7 | * are met: | ||
8 | * 1. Redistributions of source code must retain the above copyright | ||
9 | * notice, this list of conditions and the following disclaimer. | ||
10 | * 2. Redistributions in binary form must reproduce the above copyright | ||
11 | * notice, this list of conditions and the following disclaimer in the | ||
12 | * documentation and/or other materials provided with the distribution. | ||
13 | * | ||
14 | * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR | ||
15 | * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES | ||
16 | * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. | ||
17 | * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, | ||
18 | * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT | ||
19 | * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, | ||
20 | * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY | ||
21 | * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT | ||
22 | * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF | ||
23 | * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | ||
24 | */ | ||
25 | |||
26 | #include "includes.h" | ||
27 | |||
28 | #include <sys/types.h> | ||
29 | |||
30 | #include <stdio.h> | ||
31 | #include <string.h> | ||
32 | #include <signal.h> | ||
33 | |||
34 | #include "sshkey.h" | ||
35 | #include "kex.h" | ||
36 | #include "sshbuf.h" | ||
37 | #include "digest.h" | ||
38 | #include "ssherr.h" | ||
39 | |||
40 | int | ||
41 | kex_kem_sntrup4591761x25519_keypair(struct kex *kex) | ||
42 | { | ||
43 | struct sshbuf *buf = NULL; | ||
44 | u_char *cp = NULL; | ||
45 | size_t need; | ||
46 | int r; | ||
47 | |||
48 | if ((buf = sshbuf_new()) == NULL) | ||
49 | return SSH_ERR_ALLOC_FAIL; | ||
50 | need = crypto_kem_sntrup4591761_PUBLICKEYBYTES + CURVE25519_SIZE; | ||
51 | if ((r = sshbuf_reserve(buf, need, &cp)) != 0) | ||
52 | goto out; | ||
53 | crypto_kem_sntrup4591761_keypair(cp, kex->sntrup4591761_client_key); | ||
54 | #ifdef DEBUG_KEXECDH | ||
55 | dump_digest("client public key sntrup4591761:", cp, | ||
56 | crypto_kem_sntrup4591761_PUBLICKEYBYTES); | ||
57 | #endif | ||
58 | cp += crypto_kem_sntrup4591761_PUBLICKEYBYTES; | ||
59 | kexc25519_keygen(kex->c25519_client_key, cp); | ||
60 | #ifdef DEBUG_KEXECDH | ||
61 | dump_digest("client public key c25519:", cp, CURVE25519_SIZE); | ||
62 | #endif | ||
63 | kex->client_pub = buf; | ||
64 | buf = NULL; | ||
65 | out: | ||
66 | sshbuf_free(buf); | ||
67 | return r; | ||
68 | } | ||
69 | |||
70 | int | ||
71 | kex_kem_sntrup4591761x25519_enc(struct kex *kex, | ||
72 | const struct sshbuf *client_blob, struct sshbuf **server_blobp, | ||
73 | struct sshbuf **shared_secretp) | ||
74 | { | ||
75 | struct sshbuf *server_blob = NULL; | ||
76 | struct sshbuf *buf = NULL; | ||
77 | const u_char *client_pub; | ||
78 | u_char *kem_key, *ciphertext, *server_pub; | ||
79 | u_char server_key[CURVE25519_SIZE]; | ||
80 | u_char hash[SSH_DIGEST_MAX_LENGTH]; | ||
81 | size_t need; | ||
82 | int r; | ||
83 | |||
84 | *server_blobp = NULL; | ||
85 | *shared_secretp = NULL; | ||
86 | |||
87 | /* client_blob contains both KEM and ECDH client pubkeys */ | ||
88 | need = crypto_kem_sntrup4591761_PUBLICKEYBYTES + CURVE25519_SIZE; | ||
89 | if (sshbuf_len(client_blob) != need) { | ||
90 | r = SSH_ERR_SIGNATURE_INVALID; | ||
91 | goto out; | ||
92 | } | ||
93 | client_pub = sshbuf_ptr(client_blob); | ||
94 | #ifdef DEBUG_KEXECDH | ||
95 | dump_digest("client public key sntrup4591761:", client_pub, | ||
96 | crypto_kem_sntrup4591761_PUBLICKEYBYTES); | ||
97 | dump_digest("client public key 25519:", | ||
98 | client_pub + crypto_kem_sntrup4591761_PUBLICKEYBYTES, | ||
99 | CURVE25519_SIZE); | ||
100 | #endif | ||
101 | /* allocate buffer for concatenation of KEM key and ECDH shared key */ | ||
102 | /* the buffer will be hashed and the result is the shared secret */ | ||
103 | if ((buf = sshbuf_new()) == NULL) { | ||
104 | r = SSH_ERR_ALLOC_FAIL; | ||
105 | goto out; | ||
106 | } | ||
107 | if ((r = sshbuf_reserve(buf, crypto_kem_sntrup4591761_BYTES, | ||
108 | &kem_key)) != 0) | ||
109 | goto out; | ||
110 | /* allocate space for encrypted KEM key and ECDH pub key */ | ||
111 | if ((server_blob = sshbuf_new()) == NULL) { | ||
112 | r = SSH_ERR_ALLOC_FAIL; | ||
113 | goto out; | ||
114 | } | ||
115 | need = crypto_kem_sntrup4591761_CIPHERTEXTBYTES + CURVE25519_SIZE; | ||
116 | if ((r = sshbuf_reserve(server_blob, need, &ciphertext)) != 0) | ||
117 | goto out; | ||
118 | /* generate and encrypt KEM key with client key */ | ||
119 | crypto_kem_sntrup4591761_enc(ciphertext, kem_key, client_pub); | ||
120 | /* generate ECDH key pair, store server pubkey after ciphertext */ | ||
121 | server_pub = ciphertext + crypto_kem_sntrup4591761_CIPHERTEXTBYTES; | ||
122 | kexc25519_keygen(server_key, server_pub); | ||
123 | /* append ECDH shared key */ | ||
124 | client_pub += crypto_kem_sntrup4591761_PUBLICKEYBYTES; | ||
125 | if ((r = kexc25519_shared_key_ext(server_key, client_pub, buf, 1)) < 0) | ||
126 | goto out; | ||
127 | if ((r = ssh_digest_buffer(kex->hash_alg, buf, hash, sizeof(hash))) != 0) | ||
128 | goto out; | ||
129 | #ifdef DEBUG_KEXECDH | ||
130 | dump_digest("server public key 25519:", server_pub, CURVE25519_SIZE); | ||
131 | dump_digest("server cipher text:", ciphertext, | ||
132 | crypto_kem_sntrup4591761_CIPHERTEXTBYTES); | ||
133 | dump_digest("server kem key:", kem_key, sizeof(kem_key)); | ||
134 | dump_digest("concatenation of KEM key and ECDH shared key:", | ||
135 | sshbuf_ptr(buf), sshbuf_len(buf)); | ||
136 | #endif | ||
137 | /* string-encoded hash is resulting shared secret */ | ||
138 | sshbuf_reset(buf); | ||
139 | if ((r = sshbuf_put_string(buf, hash, | ||
140 | ssh_digest_bytes(kex->hash_alg))) != 0) | ||
141 | goto out; | ||
142 | #ifdef DEBUG_KEXECDH | ||
143 | dump_digest("encoded shared secret:", sshbuf_ptr(buf), sshbuf_len(buf)); | ||
144 | #endif | ||
145 | *server_blobp = server_blob; | ||
146 | *shared_secretp = buf; | ||
147 | server_blob = NULL; | ||
148 | buf = NULL; | ||
149 | out: | ||
150 | explicit_bzero(hash, sizeof(hash)); | ||
151 | explicit_bzero(server_key, sizeof(server_key)); | ||
152 | sshbuf_free(server_blob); | ||
153 | sshbuf_free(buf); | ||
154 | return r; | ||
155 | } | ||
156 | |||
157 | int | ||
158 | kex_kem_sntrup4591761x25519_dec(struct kex *kex, | ||
159 | const struct sshbuf *server_blob, struct sshbuf **shared_secretp) | ||
160 | { | ||
161 | struct sshbuf *buf = NULL; | ||
162 | u_char *kem_key = NULL; | ||
163 | const u_char *ciphertext, *server_pub; | ||
164 | u_char hash[SSH_DIGEST_MAX_LENGTH]; | ||
165 | size_t need; | ||
166 | int r, decoded; | ||
167 | |||
168 | *shared_secretp = NULL; | ||
169 | |||
170 | need = crypto_kem_sntrup4591761_CIPHERTEXTBYTES + CURVE25519_SIZE; | ||
171 | if (sshbuf_len(server_blob) != need) { | ||
172 | r = SSH_ERR_SIGNATURE_INVALID; | ||
173 | goto out; | ||
174 | } | ||
175 | ciphertext = sshbuf_ptr(server_blob); | ||
176 | server_pub = ciphertext + crypto_kem_sntrup4591761_CIPHERTEXTBYTES; | ||
177 | #ifdef DEBUG_KEXECDH | ||
178 | dump_digest("server cipher text:", ciphertext, | ||
179 | crypto_kem_sntrup4591761_CIPHERTEXTBYTES); | ||
180 | dump_digest("server public key c25519:", server_pub, CURVE25519_SIZE); | ||
181 | #endif | ||
182 | /* hash concatenation of KEM key and ECDH shared key */ | ||
183 | if ((buf = sshbuf_new()) == NULL) { | ||
184 | r = SSH_ERR_ALLOC_FAIL; | ||
185 | goto out; | ||
186 | } | ||
187 | if ((r = sshbuf_reserve(buf, crypto_kem_sntrup4591761_BYTES, | ||
188 | &kem_key)) != 0) | ||
189 | goto out; | ||
190 | decoded = crypto_kem_sntrup4591761_dec(kem_key, ciphertext, | ||
191 | kex->sntrup4591761_client_key); | ||
192 | if ((r = kexc25519_shared_key_ext(kex->c25519_client_key, server_pub, | ||
193 | buf, 1)) < 0) | ||
194 | goto out; | ||
195 | if ((r = ssh_digest_buffer(kex->hash_alg, buf, hash, sizeof(hash))) != 0) | ||
196 | goto out; | ||
197 | #ifdef DEBUG_KEXECDH | ||
198 | dump_digest("client kem key:", kem_key, sizeof(kem_key)); | ||
199 | dump_digest("concatenation of KEM key and ECDH shared key:", | ||
200 | sshbuf_ptr(buf), sshbuf_len(buf)); | ||
201 | #endif | ||
202 | sshbuf_reset(buf); | ||
203 | if ((r = sshbuf_put_string(buf, hash, | ||
204 | ssh_digest_bytes(kex->hash_alg))) != 0) | ||
205 | goto out; | ||
206 | #ifdef DEBUG_KEXECDH | ||
207 | dump_digest("encoded shared secret:", sshbuf_ptr(buf), sshbuf_len(buf)); | ||
208 | #endif | ||
209 | if (decoded != 0) { | ||
210 | r = SSH_ERR_SIGNATURE_INVALID; | ||
211 | goto out; | ||
212 | } | ||
213 | *shared_secretp = buf; | ||
214 | buf = NULL; | ||
215 | out: | ||
216 | explicit_bzero(hash, sizeof(hash)); | ||
217 | sshbuf_free(buf); | ||
218 | return r; | ||
219 | } | ||
diff --git a/loginrec.c b/loginrec.c index 9a427dec4..5f2a47797 100644 --- a/loginrec.c +++ b/loginrec.c | |||
@@ -467,7 +467,7 @@ login_write(struct logininfo *li) | |||
467 | #ifdef CUSTOM_SYS_AUTH_RECORD_LOGIN | 467 | #ifdef CUSTOM_SYS_AUTH_RECORD_LOGIN |
468 | if (li->type == LTYPE_LOGIN && | 468 | if (li->type == LTYPE_LOGIN && |
469 | !sys_auth_record_login(li->username,li->hostname,li->line, | 469 | !sys_auth_record_login(li->username,li->hostname,li->line, |
470 | &loginmsg)) | 470 | loginmsg)) |
471 | logit("Writing login record failed for %s", li->username); | 471 | logit("Writing login record failed for %s", li->username); |
472 | #endif | 472 | #endif |
473 | #ifdef SSH_AUDIT_EVENTS | 473 | #ifdef SSH_AUDIT_EVENTS |
@@ -1653,7 +1653,7 @@ utmpx_get_entry(struct logininfo *li) | |||
1653 | */ | 1653 | */ |
1654 | 1654 | ||
1655 | void | 1655 | void |
1656 | record_failed_login(const char *username, const char *hostname, | 1656 | record_failed_login(struct ssh *ssh, const char *username, const char *hostname, |
1657 | const char *ttyn) | 1657 | const char *ttyn) |
1658 | { | 1658 | { |
1659 | int fd; | 1659 | int fd; |
@@ -1696,8 +1696,8 @@ record_failed_login(const char *username, const char *hostname, | |||
1696 | /* strncpy because we don't necessarily want nul termination */ | 1696 | /* strncpy because we don't necessarily want nul termination */ |
1697 | strncpy(ut.ut_host, hostname, sizeof(ut.ut_host)); | 1697 | strncpy(ut.ut_host, hostname, sizeof(ut.ut_host)); |
1698 | 1698 | ||
1699 | if (packet_connection_is_on_socket() && | 1699 | if (ssh_packet_connection_is_on_socket(ssh) && |
1700 | getpeername(packet_get_connection_in(), | 1700 | getpeername(ssh_packet_get_connection_in(ssh), |
1701 | (struct sockaddr *)&from, &fromlen) == 0) { | 1701 | (struct sockaddr *)&from, &fromlen) == 0) { |
1702 | ipv64_normalise_mapped(&from, &fromlen); | 1702 | ipv64_normalise_mapped(&from, &fromlen); |
1703 | if (from.ss_family == AF_INET) { | 1703 | if (from.ss_family == AF_INET) { |
diff --git a/loginrec.h b/loginrec.h index 28923e781..62cc0e78c 100644 --- a/loginrec.h +++ b/loginrec.h | |||
@@ -31,6 +31,8 @@ | |||
31 | 31 | ||
32 | #include "includes.h" | 32 | #include "includes.h" |
33 | 33 | ||
34 | struct ssh; | ||
35 | |||
34 | /** | 36 | /** |
35 | ** you should use the login_* calls to work around platform dependencies | 37 | ** you should use the login_* calls to work around platform dependencies |
36 | **/ | 38 | **/ |
@@ -126,6 +128,7 @@ char *line_fullname(char *dst, const char *src, u_int dstsize); | |||
126 | char *line_stripname(char *dst, const char *src, int dstsize); | 128 | char *line_stripname(char *dst, const char *src, int dstsize); |
127 | char *line_abbrevname(char *dst, const char *src, int dstsize); | 129 | char *line_abbrevname(char *dst, const char *src, int dstsize); |
128 | 130 | ||
129 | void record_failed_login(const char *, const char *, const char *); | 131 | void record_failed_login(struct ssh *, const char *, const char *, |
132 | const char *); | ||
130 | 133 | ||
131 | #endif /* _HAVE_LOGINREC_H_ */ | 134 | #endif /* _HAVE_LOGINREC_H_ */ |
@@ -1,4 +1,4 @@ | |||
1 | /* $OpenBSD: match.c,v 1.38 2018/07/04 13:49:31 djm Exp $ */ | 1 | /* $OpenBSD: match.c,v 1.39 2019/03/06 22:14:23 dtucker Exp $ */ |
2 | /* | 2 | /* |
3 | * Author: Tatu Ylonen <ylo@cs.hut.fi> | 3 | * Author: Tatu Ylonen <ylo@cs.hut.fi> |
4 | * Copyright (c) 1995 Tatu Ylonen <ylo@cs.hut.fi>, Espoo, Finland | 4 | * Copyright (c) 1995 Tatu Ylonen <ylo@cs.hut.fi>, Espoo, Finland |
@@ -170,6 +170,19 @@ match_pattern_list(const char *string, const char *pattern, int dolower) | |||
170 | return got_positive; | 170 | return got_positive; |
171 | } | 171 | } |
172 | 172 | ||
173 | /* Match a list representing users or groups. */ | ||
174 | int | ||
175 | match_usergroup_pattern_list(const char *string, const char *pattern) | ||
176 | { | ||
177 | #ifdef HAVE_CYGWIN | ||
178 | /* Windows usernames may be Unicode and are not case sensitive */ | ||
179 | return cygwin_ug_match_pattern_list(string, pattern); | ||
180 | #else | ||
181 | /* Case insensitive match */ | ||
182 | return match_pattern_list(string, pattern, 0); | ||
183 | #endif | ||
184 | } | ||
185 | |||
173 | /* | 186 | /* |
174 | * Tries to match the host name (which must be in all lowercase) against the | 187 | * Tries to match the host name (which must be in all lowercase) against the |
175 | * comma-separated sequence of subpatterns (each possibly preceded by ! to | 188 | * comma-separated sequence of subpatterns (each possibly preceded by ! to |
@@ -1,4 +1,4 @@ | |||
1 | /* $OpenBSD: match.h,v 1.18 2018/07/04 13:49:31 djm Exp $ */ | 1 | /* $OpenBSD: match.h,v 1.19 2019/03/06 22:14:23 dtucker Exp $ */ |
2 | 2 | ||
3 | /* | 3 | /* |
4 | * Author: Tatu Ylonen <ylo@cs.hut.fi> | 4 | * Author: Tatu Ylonen <ylo@cs.hut.fi> |
@@ -16,6 +16,7 @@ | |||
16 | 16 | ||
17 | int match_pattern(const char *, const char *); | 17 | int match_pattern(const char *, const char *); |
18 | int match_pattern_list(const char *, const char *, int); | 18 | int match_pattern_list(const char *, const char *, int); |
19 | int match_usergroup_pattern_list(const char *, const char *); | ||
19 | int match_hostname(const char *, const char *); | 20 | int match_hostname(const char *, const char *); |
20 | int match_host_and_ip(const char *, const char *, const char *); | 21 | int match_host_and_ip(const char *, const char *, const char *); |
21 | int match_user(const char *, const char *, const char *, const char *); | 22 | int match_user(const char *, const char *, const char *, const char *); |
@@ -1,4 +1,4 @@ | |||
1 | /* $OpenBSD: misc.c,v 1.133 2018/10/05 14:26:09 naddy Exp $ */ | 1 | /* $OpenBSD: misc.c,v 1.137 2019/01/23 21:50:56 dtucker Exp $ */ |
2 | /* | 2 | /* |
3 | * Copyright (c) 2000 Markus Friedl. All rights reserved. | 3 | * Copyright (c) 2000 Markus Friedl. All rights reserved. |
4 | * Copyright (c) 2005,2006 Damien Miller. All rights reserved. | 4 | * Copyright (c) 2005,2006 Damien Miller. All rights reserved. |
@@ -38,6 +38,7 @@ | |||
38 | #ifdef HAVE_LIBGEN_H | 38 | #ifdef HAVE_LIBGEN_H |
39 | # include <libgen.h> | 39 | # include <libgen.h> |
40 | #endif | 40 | #endif |
41 | #include <poll.h> | ||
41 | #include <signal.h> | 42 | #include <signal.h> |
42 | #include <stdarg.h> | 43 | #include <stdarg.h> |
43 | #include <stdio.h> | 44 | #include <stdio.h> |
@@ -234,6 +235,80 @@ set_rdomain(int fd, const char *name) | |||
234 | #endif | 235 | #endif |
235 | } | 236 | } |
236 | 237 | ||
238 | /* | ||
239 | * Wait up to *timeoutp milliseconds for fd to be readable. Updates | ||
240 | * *timeoutp with time remaining. | ||
241 | * Returns 0 if fd ready or -1 on timeout or error (see errno). | ||
242 | */ | ||
243 | int | ||
244 | waitrfd(int fd, int *timeoutp) | ||
245 | { | ||
246 | struct pollfd pfd; | ||
247 | struct timeval t_start; | ||
248 | int oerrno, r; | ||
249 | |||
250 | monotime_tv(&t_start); | ||
251 | pfd.fd = fd; | ||
252 | pfd.events = POLLIN; | ||
253 | for (; *timeoutp >= 0;) { | ||
254 | r = poll(&pfd, 1, *timeoutp); | ||
255 | oerrno = errno; | ||
256 | ms_subtract_diff(&t_start, timeoutp); | ||
257 | errno = oerrno; | ||
258 | if (r > 0) | ||
259 | return 0; | ||
260 | else if (r == -1 && errno != EAGAIN) | ||
261 | return -1; | ||
262 | else if (r == 0) | ||
263 | break; | ||
264 | } | ||
265 | /* timeout */ | ||
266 | errno = ETIMEDOUT; | ||
267 | return -1; | ||
268 | } | ||
269 | |||
270 | /* | ||
271 | * Attempt a non-blocking connect(2) to the specified address, waiting up to | ||
272 | * *timeoutp milliseconds for the connection to complete. If the timeout is | ||
273 | * <=0, then wait indefinitely. | ||
274 | * | ||
275 | * Returns 0 on success or -1 on failure. | ||
276 | */ | ||
277 | int | ||
278 | timeout_connect(int sockfd, const struct sockaddr *serv_addr, | ||
279 | socklen_t addrlen, int *timeoutp) | ||
280 | { | ||
281 | int optval = 0; | ||
282 | socklen_t optlen = sizeof(optval); | ||
283 | |||
284 | /* No timeout: just do a blocking connect() */ | ||
285 | if (timeoutp == NULL || *timeoutp <= 0) | ||
286 | return connect(sockfd, serv_addr, addrlen); | ||
287 | |||
288 | set_nonblock(sockfd); | ||
289 | if (connect(sockfd, serv_addr, addrlen) == 0) { | ||
290 | /* Succeeded already? */ | ||
291 | unset_nonblock(sockfd); | ||
292 | return 0; | ||
293 | } else if (errno != EINPROGRESS) | ||
294 | return -1; | ||
295 | |||
296 | if (waitrfd(sockfd, timeoutp) == -1) | ||
297 | return -1; | ||
298 | |||
299 | /* Completed or failed */ | ||
300 | if (getsockopt(sockfd, SOL_SOCKET, SO_ERROR, &optval, &optlen) == -1) { | ||
301 | debug("getsockopt: %s", strerror(errno)); | ||
302 | return -1; | ||
303 | } | ||
304 | if (optval != 0) { | ||
305 | errno = optval; | ||
306 | return -1; | ||
307 | } | ||
308 | unset_nonblock(sockfd); | ||
309 | return 0; | ||
310 | } | ||
311 | |||
237 | /* Characters considered whitespace in strsep calls. */ | 312 | /* Characters considered whitespace in strsep calls. */ |
238 | #define WHITESPACE " \t\r\n" | 313 | #define WHITESPACE " \t\r\n" |
239 | #define QUOTE "\"" | 314 | #define QUOTE "\"" |
@@ -489,7 +564,7 @@ put_host_port(const char *host, u_short port) | |||
489 | * The delimiter char, if present, is stored in delim. | 564 | * The delimiter char, if present, is stored in delim. |
490 | * If this is the last field, *cp is set to NULL. | 565 | * If this is the last field, *cp is set to NULL. |
491 | */ | 566 | */ |
492 | static char * | 567 | char * |
493 | hpdelim2(char **cp, char *delim) | 568 | hpdelim2(char **cp, char *delim) |
494 | { | 569 | { |
495 | char *s, *old; | 570 | char *s, *old; |
@@ -1335,11 +1410,11 @@ bandwidth_limit_init(struct bwlimit *bw, u_int64_t kbps, size_t buflen) | |||
1335 | { | 1410 | { |
1336 | bw->buflen = buflen; | 1411 | bw->buflen = buflen; |
1337 | bw->rate = kbps; | 1412 | bw->rate = kbps; |
1338 | bw->thresh = bw->rate; | 1413 | bw->thresh = buflen; |
1339 | bw->lamt = 0; | 1414 | bw->lamt = 0; |
1340 | timerclear(&bw->bwstart); | 1415 | timerclear(&bw->bwstart); |
1341 | timerclear(&bw->bwend); | 1416 | timerclear(&bw->bwend); |
1342 | } | 1417 | } |
1343 | 1418 | ||
1344 | /* Callback from read/write loop to insert bandwidth-limiting delays */ | 1419 | /* Callback from read/write loop to insert bandwidth-limiting delays */ |
1345 | void | 1420 | void |
@@ -1348,12 +1423,11 @@ bandwidth_limit(struct bwlimit *bw, size_t read_len) | |||
1348 | u_int64_t waitlen; | 1423 | u_int64_t waitlen; |
1349 | struct timespec ts, rm; | 1424 | struct timespec ts, rm; |
1350 | 1425 | ||
1426 | bw->lamt += read_len; | ||
1351 | if (!timerisset(&bw->bwstart)) { | 1427 | if (!timerisset(&bw->bwstart)) { |
1352 | monotime_tv(&bw->bwstart); | 1428 | monotime_tv(&bw->bwstart); |
1353 | return; | 1429 | return; |
1354 | } | 1430 | } |
1355 | |||
1356 | bw->lamt += read_len; | ||
1357 | if (bw->lamt < bw->thresh) | 1431 | if (bw->lamt < bw->thresh) |
1358 | return; | 1432 | return; |
1359 | 1433 | ||
@@ -2037,3 +2111,10 @@ format_absolute_time(uint64_t t, char *buf, size_t len) | |||
2037 | localtime_r(&tt, &tm); | 2111 | localtime_r(&tt, &tm); |
2038 | strftime(buf, len, "%Y-%m-%dT%H:%M:%S", &tm); | 2112 | strftime(buf, len, "%Y-%m-%dT%H:%M:%S", &tm); |
2039 | } | 2113 | } |
2114 | |||
2115 | /* check if path is absolute */ | ||
2116 | int | ||
2117 | path_absolute(const char *path) | ||
2118 | { | ||
2119 | return (*path == '/') ? 1 : 0; | ||
2120 | } | ||
@@ -1,4 +1,4 @@ | |||
1 | /* $OpenBSD: misc.h,v 1.75 2018/10/03 06:38:35 djm Exp $ */ | 1 | /* $OpenBSD: misc.h,v 1.79 2019/01/23 21:50:56 dtucker Exp $ */ |
2 | 2 | ||
3 | /* | 3 | /* |
4 | * Author: Tatu Ylonen <ylo@cs.hut.fi> | 4 | * Author: Tatu Ylonen <ylo@cs.hut.fi> |
@@ -17,6 +17,7 @@ | |||
17 | 17 | ||
18 | #include <sys/time.h> | 18 | #include <sys/time.h> |
19 | #include <sys/types.h> | 19 | #include <sys/types.h> |
20 | #include <sys/socket.h> | ||
20 | 21 | ||
21 | /* Data structure for representing a forwarding request. */ | 22 | /* Data structure for representing a forwarding request. */ |
22 | struct Forward { | 23 | struct Forward { |
@@ -51,9 +52,12 @@ void set_nodelay(int); | |||
51 | int set_reuseaddr(int); | 52 | int set_reuseaddr(int); |
52 | char *get_rdomain(int); | 53 | char *get_rdomain(int); |
53 | int set_rdomain(int, const char *); | 54 | int set_rdomain(int, const char *); |
55 | int waitrfd(int, int *); | ||
56 | int timeout_connect(int, const struct sockaddr *, socklen_t, int *); | ||
54 | int a2port(const char *); | 57 | int a2port(const char *); |
55 | int a2tun(const char *, int *); | 58 | int a2tun(const char *, int *); |
56 | char *put_host_port(const char *, u_short); | 59 | char *put_host_port(const char *, u_short); |
60 | char *hpdelim2(char **, char *); | ||
57 | char *hpdelim(char **); | 61 | char *hpdelim(char **); |
58 | char *cleanhostname(char *); | 62 | char *cleanhostname(char *); |
59 | char *colon(char *); | 63 | char *colon(char *); |
@@ -78,6 +82,7 @@ int valid_env_name(const char *); | |||
78 | const char *atoi_err(const char *, int *); | 82 | const char *atoi_err(const char *, int *); |
79 | int parse_absolute_time(const char *, uint64_t *); | 83 | int parse_absolute_time(const char *, uint64_t *); |
80 | void format_absolute_time(uint64_t, char *, size_t); | 84 | void format_absolute_time(uint64_t, char *, size_t); |
85 | int path_absolute(const char *); | ||
81 | 86 | ||
82 | void sock_set_v6only(int); | 87 | void sock_set_v6only(int); |
83 | 88 | ||
@@ -134,7 +139,9 @@ void put_u32_le(void *, u_int32_t) | |||
134 | 139 | ||
135 | struct bwlimit { | 140 | struct bwlimit { |
136 | size_t buflen; | 141 | size_t buflen; |
137 | u_int64_t rate, thresh, lamt; | 142 | u_int64_t rate; /* desired rate in kbit/s */ |
143 | u_int64_t thresh; /* threshold after which we'll check timers */ | ||
144 | u_int64_t lamt; /* amount written in last timer interval */ | ||
138 | struct timeval bwstart, bwend; | 145 | struct timeval bwstart, bwend; |
139 | }; | 146 | }; |
140 | 147 | ||
@@ -1,428 +1,452 @@ | |||
1 | # $OpenBSD: moduli,v 1.22 2018/09/20 08:07:03 dtucker Exp $ | 1 | # $OpenBSD: moduli,v 1.23 2018/10/31 11:20:04 dtucker Exp $ |
2 | # Time Type Tests Tries Size Generator Modulus | 2 | # Time Type Tests Tries Size Generator Modulus |
3 | 20180403031539 2 6 100 2047 5 F78A3F3A47AFE34101F186DF022B970FB51586E65B1D1875E41D02EDDD4BDF6D6D8BA1CC296EA6A8BD7036297A0C01C636A55493E3ADEC2F1DAB9D8D7E0CCD39D7FFC9D4011C3F57A944AA1EEB1AC1784E28ACF7B6FB3AC49185F4E638B567DA6B4903CB8C6D815ED1253D512670FAF71E6BF1ED6669863B552B3BB2173A7F16262454142B7B928F91E60EED00BDFA465F2C46665BD30C1426F9B8D9611D086D6BAB672CB472E8F8E6990F623C2E7458991D982E199BB168C93F96F71974181F898D6C56C02D9DABA852E7E51CA0DC723255B49CAA122D2A6CC64F1389128A0E3298B0E155EC8A4D9BF1D1671B808DDD835015381C1F16C35A84D20A591E4B57 | 3 | 20180920083436 2 6 100 2047 2 F13B549CC6FE8517551E48FAEBA8D93EAC29403838E22ED862927B8AC9A9ABBA96AB7E306F0A01B75C0E960AB9DEA0F8519BAA2F13E541E194604848CBC9DEC51165E7A45897104B4A9C54C7337270A8B1B7F53B9DC203744ED2C634889C879E713BEA519452AE800B390FFBABF40B992AF659947D3ED78AA04DDF51C84D7B0824978643683F2153C99F682E30A25683CE180948F62E2CC1EFA1513CB16E74117334356E4E365132BB37BA41B4B79F148F26842A61F12D42B149F3FAB0041CB7DF7F53742544FA4E956D314B140F49786E23A5446C1F5CD55CB59D845774C6D6EF1CE5B7426F351FE906C69D23720BCFC5E250DE2786ACEBEC823E1DE0BE8103 |
4 | 20180403031604 2 6 100 2047 2 F78A3F3A47AFE34101F186DF022B970FB51586E65B1D1875E41D02EDDD4BDF6D6D8BA1CC296EA6A8BD7036297A0C01C636A55493E3ADEC2F1DAB9D8D7E0CCD39D7FFC9D4011C3F57A944AA1EEB1AC1784E28ACF7B6FB3AC49185F4E638B567DA6B4903CB8C6D815ED1253D512670FAF71E6BF1ED6669863B552B3BB2173A7F16262454142B7B928F91E60EED00BDFA465F2C46665BD30C1426F9B8D9611D086D6BAB672CB472E8F8E6990F623C2E7458991D982E199BB168C93F96F71974181F898D6C56C02D9DABA852E7E51CA0DC723255B49CAA122D2A6CC64F1389128A0E3298B0E155EC8A4D9BF1D1671B808DDD835015381C1F16C35A84D20A5923D0DB | 4 | 20180920083444 2 6 100 2047 5 F13B549CC6FE8517551E48FAEBA8D93EAC29403838E22ED862927B8AC9A9ABBA96AB7E306F0A01B75C0E960AB9DEA0F8519BAA2F13E541E194604848CBC9DEC51165E7A45897104B4A9C54C7337270A8B1B7F53B9DC203744ED2C634889C879E713BEA519452AE800B390FFBABF40B992AF659947D3ED78AA04DDF51C84D7B0824978643683F2153C99F682E30A25683CE180948F62E2CC1EFA1513CB16E74117334356E4E365132BB37BA41B4B79F148F26842A61F12D42B149F3FAB0041CB7DF7F53742544FA4E956D314B140F49786E23A5446C1F5CD55CB59D845774C6D6EF1CE5B7426F351FE906C69D23720BCFC5E250DE2786ACEBEC823E1DE0C7C3CF |
5 | 20180403031626 2 6 100 2047 5 F78A3F3A47AFE34101F186DF022B970FB51586E65B1D1875E41D02EDDD4BDF6D6D8BA1CC296EA6A8BD7036297A0C01C636A55493E3ADEC2F1DAB9D8D7E0CCD39D7FFC9D4011C3F57A944AA1EEB1AC1784E28ACF7B6FB3AC49185F4E638B567DA6B4903CB8C6D815ED1253D512670FAF71E6BF1ED6669863B552B3BB2173A7F16262454142B7B928F91E60EED00BDFA465F2C46665BD30C1426F9B8D9611D086D6BAB672CB472E8F8E6990F623C2E7458991D982E199BB168C93F96F71974181F898D6C56C02D9DABA852E7E51CA0DC723255B49CAA122D2A6CC64F1389128A0E3298B0E155EC8A4D9BF1D1671B808DDD835015381C1F16C35A84D20A592B11B7 | 5 | 20180920083448 2 6 100 2047 2 F13B549CC6FE8517551E48FAEBA8D93EAC29403838E22ED862927B8AC9A9ABBA96AB7E306F0A01B75C0E960AB9DEA0F8519BAA2F13E541E194604848CBC9DEC51165E7A45897104B4A9C54C7337270A8B1B7F53B9DC203744ED2C634889C879E713BEA519452AE800B390FFBABF40B992AF659947D3ED78AA04DDF51C84D7B0824978643683F2153C99F682E30A25683CE180948F62E2CC1EFA1513CB16E74117334356E4E365132BB37BA41B4B79F148F26842A61F12D42B149F3FAB0041CB7DF7F53742544FA4E956D314B140F49786E23A5446C1F5CD55CB59D845774C6D6EF1CE5B7426F351FE906C69D23720BCFC5E250DE2786ACEBEC823E1DE0C8204B |
6 | 20180403031845 2 6 100 2047 2 F78A3F3A47AFE34101F186DF022B970FB51586E65B1D1875E41D02EDDD4BDF6D6D8BA1CC296EA6A8BD7036297A0C01C636A55493E3ADEC2F1DAB9D8D7E0CCD39D7FFC9D4011C3F57A944AA1EEB1AC1784E28ACF7B6FB3AC49185F4E638B567DA6B4903CB8C6D815ED1253D512670FAF71E6BF1ED6669863B552B3BB2173A7F16262454142B7B928F91E60EED00BDFA465F2C46665BD30C1426F9B8D9611D086D6BAB672CB472E8F8E6990F623C2E7458991D982E199BB168C93F96F71974181F898D6C56C02D9DABA852E7E51CA0DC723255B49CAA122D2A6CC64F1389128A0E3298B0E155EC8A4D9BF1D1671B808DDD835015381C1F16C35A84D20A59715A73 | 6 | 20180920083506 2 6 100 2047 2 F13B549CC6FE8517551E48FAEBA8D93EAC29403838E22ED862927B8AC9A9ABBA96AB7E306F0A01B75C0E960AB9DEA0F8519BAA2F13E541E194604848CBC9DEC51165E7A45897104B4A9C54C7337270A8B1B7F53B9DC203744ED2C634889C879E713BEA519452AE800B390FFBABF40B992AF659947D3ED78AA04DDF51C84D7B0824978643683F2153C99F682E30A25683CE180948F62E2CC1EFA1513CB16E74117334356E4E365132BB37BA41B4B79F148F26842A61F12D42B149F3FAB0041CB7DF7F53742544FA4E956D314B140F49786E23A5446C1F5CD55CB59D845774C6D6EF1CE5B7426F351FE906C69D23720BCFC5E250DE2786ACEBEC823E1DE0E7A6DB |
7 | 20180403032143 2 6 100 2047 2 F78A3F3A47AFE34101F186DF022B970FB51586E65B1D1875E41D02EDDD4BDF6D6D8BA1CC296EA6A8BD7036297A0C01C636A55493E3ADEC2F1DAB9D8D7E0CCD39D7FFC9D4011C3F57A944AA1EEB1AC1784E28ACF7B6FB3AC49185F4E638B567DA6B4903CB8C6D815ED1253D512670FAF71E6BF1ED6669863B552B3BB2173A7F16262454142B7B928F91E60EED00BDFA465F2C46665BD30C1426F9B8D9611D086D6BAB672CB472E8F8E6990F623C2E7458991D982E199BB168C93F96F71974181F898D6C56C02D9DABA852E7E51CA0DC723255B49CAA122D2A6CC64F1389128A0E3298B0E155EC8A4D9BF1D1671B808DDD835015381C1F16C35A84D20A59CDE963 | 7 | 20180920083516 2 6 100 2047 2 F13B549CC6FE8517551E48FAEBA8D93EAC29403838E22ED862927B8AC9A9ABBA96AB7E306F0A01B75C0E960AB9DEA0F8519BAA2F13E541E194604848CBC9DEC51165E7A45897104B4A9C54C7337270A8B1B7F53B9DC203744ED2C634889C879E713BEA519452AE800B390FFBABF40B992AF659947D3ED78AA04DDF51C84D7B0824978643683F2153C99F682E30A25683CE180948F62E2CC1EFA1513CB16E74117334356E4E365132BB37BA41B4B79F148F26842A61F12D42B149F3FAB0041CB7DF7F53742544FA4E956D314B140F49786E23A5446C1F5CD55CB59D845774C6D6EF1CE5B7426F351FE906C69D23720BCFC5E250DE2786ACEBEC823E1DE0F5096B |
8 | 20180403032347 2 6 100 2047 2 F78A3F3A47AFE34101F186DF022B970FB51586E65B1D1875E41D02EDDD4BDF6D6D8BA1CC296EA6A8BD7036297A0C01C636A55493E3ADEC2F1DAB9D8D7E0CCD39D7FFC9D4011C3F57A944AA1EEB1AC1784E28ACF7B6FB3AC49185F4E638B567DA6B4903CB8C6D815ED1253D512670FAF71E6BF1ED6669863B552B3BB2173A7F16262454142B7B928F91E60EED00BDFA465F2C46665BD30C1426F9B8D9611D086D6BAB672CB472E8F8E6990F623C2E7458991D982E199BB168C93F96F71974181F898D6C56C02D9DABA852E7E51CA0DC723255B49CAA122D2A6CC64F1389128A0E3298B0E155EC8A4D9BF1D1671B808DDD835015381C1F16C35A84D20A5A11B463 | 8 | 20180920083532 2 6 100 2047 5 F13B549CC6FE8517551E48FAEBA8D93EAC29403838E22ED862927B8AC9A9ABBA96AB7E306F0A01B75C0E960AB9DEA0F8519BAA2F13E541E194604848CBC9DEC51165E7A45897104B4A9C54C7337270A8B1B7F53B9DC203744ED2C634889C879E713BEA519452AE800B390FFBABF40B992AF659947D3ED78AA04DDF51C84D7B0824978643683F2153C99F682E30A25683CE180948F62E2CC1EFA1513CB16E74117334356E4E365132BB37BA41B4B79F148F26842A61F12D42B149F3FAB0041CB7DF7F53742544FA4E956D314B140F49786E23A5446C1F5CD55CB59D845774C6D6EF1CE5B7426F351FE906C69D23720BCFC5E250DE2786ACEBEC823E1DE11027BF |
9 | 20180403032438 2 6 100 2047 5 F78A3F3A47AFE34101F186DF022B970FB51586E65B1D1875E41D02EDDD4BDF6D6D8BA1CC296EA6A8BD7036297A0C01C636A55493E3ADEC2F1DAB9D8D7E0CCD39D7FFC9D4011C3F57A944AA1EEB1AC1784E28ACF7B6FB3AC49185F4E638B567DA6B4903CB8C6D815ED1253D512670FAF71E6BF1ED6669863B552B3BB2173A7F16262454142B7B928F91E60EED00BDFA465F2C46665BD30C1426F9B8D9611D086D6BAB672CB472E8F8E6990F623C2E7458991D982E199BB168C93F96F71974181F898D6C56C02D9DABA852E7E51CA0DC723255B49CAA122D2A6CC64F1389128A0E3298B0E155EC8A4D9BF1D1671B808DDD835015381C1F16C35A84D20A5A2BBC5F | 9 | 20180920083549 2 6 100 2047 2 F13B549CC6FE8517551E48FAEBA8D93EAC29403838E22ED862927B8AC9A9ABBA96AB7E306F0A01B75C0E960AB9DEA0F8519BAA2F13E541E194604848CBC9DEC51165E7A45897104B4A9C54C7337270A8B1B7F53B9DC203744ED2C634889C879E713BEA519452AE800B390FFBABF40B992AF659947D3ED78AA04DDF51C84D7B0824978643683F2153C99F682E30A25683CE180948F62E2CC1EFA1513CB16E74117334356E4E365132BB37BA41B4B79F148F26842A61F12D42B149F3FAB0041CB7DF7F53742544FA4E956D314B140F49786E23A5446C1F5CD55CB59D845774C6D6EF1CE5B7426F351FE906C69D23720BCFC5E250DE2786ACEBEC823E1DE12EA013 |
10 | 20180403032617 2 6 100 2047 2 F78A3F3A47AFE34101F186DF022B970FB51586E65B1D1875E41D02EDDD4BDF6D6D8BA1CC296EA6A8BD7036297A0C01C636A55493E3ADEC2F1DAB9D8D7E0CCD39D7FFC9D4011C3F57A944AA1EEB1AC1784E28ACF7B6FB3AC49185F4E638B567DA6B4903CB8C6D815ED1253D512670FAF71E6BF1ED6669863B552B3BB2173A7F16262454142B7B928F91E60EED00BDFA465F2C46665BD30C1426F9B8D9611D086D6BAB672CB472E8F8E6990F623C2E7458991D982E199BB168C93F96F71974181F898D6C56C02D9DABA852E7E51CA0DC723255B49CAA122D2A6CC64F1389128A0E3298B0E155EC8A4D9BF1D1671B808DDD835015381C1F16C35A84D20A5A6308C3 | 10 | 20180920083601 2 6 100 2047 5 F13B549CC6FE8517551E48FAEBA8D93EAC29403838E22ED862927B8AC9A9ABBA96AB7E306F0A01B75C0E960AB9DEA0F8519BAA2F13E541E194604848CBC9DEC51165E7A45897104B4A9C54C7337270A8B1B7F53B9DC203744ED2C634889C879E713BEA519452AE800B390FFBABF40B992AF659947D3ED78AA04DDF51C84D7B0824978643683F2153C99F682E30A25683CE180948F62E2CC1EFA1513CB16E74117334356E4E365132BB37BA41B4B79F148F26842A61F12D42B149F3FAB0041CB7DF7F53742544FA4E956D314B140F49786E23A5446C1F5CD55CB59D845774C6D6EF1CE5B7426F351FE906C69D23720BCFC5E250DE2786ACEBEC823E1DE13F42E7 |
11 | 20180403032923 2 6 100 2047 2 F78A3F3A47AFE34101F186DF022B970FB51586E65B1D1875E41D02EDDD4BDF6D6D8BA1CC296EA6A8BD7036297A0C01C636A55493E3ADEC2F1DAB9D8D7E0CCD39D7FFC9D4011C3F57A944AA1EEB1AC1784E28ACF7B6FB3AC49185F4E638B567DA6B4903CB8C6D815ED1253D512670FAF71E6BF1ED6669863B552B3BB2173A7F16262454142B7B928F91E60EED00BDFA465F2C46665BD30C1426F9B8D9611D086D6BAB672CB472E8F8E6990F623C2E7458991D982E199BB168C93F96F71974181F898D6C56C02D9DABA852E7E51CA0DC723255B49CAA122D2A6CC64F1389128A0E3298B0E155EC8A4D9BF1D1671B808DDD835015381C1F16C35A84D20A5ADA5523 | 11 | 20180920083617 2 6 100 2047 2 F13B549CC6FE8517551E48FAEBA8D93EAC29403838E22ED862927B8AC9A9ABBA96AB7E306F0A01B75C0E960AB9DEA0F8519BAA2F13E541E194604848CBC9DEC51165E7A45897104B4A9C54C7337270A8B1B7F53B9DC203744ED2C634889C879E713BEA519452AE800B390FFBABF40B992AF659947D3ED78AA04DDF51C84D7B0824978643683F2153C99F682E30A25683CE180948F62E2CC1EFA1513CB16E74117334356E4E365132BB37BA41B4B79F148F26842A61F12D42B149F3FAB0041CB7DF7F53742544FA4E956D314B140F49786E23A5446C1F5CD55CB59D845774C6D6EF1CE5B7426F351FE906C69D23720BCFC5E250DE2786ACEBEC823E1DE15AA2C3 |
12 | 20180403033405 2 6 100 2047 5 F78A3F3A47AFE34101F186DF022B970FB51586E65B1D1875E41D02EDDD4BDF6D6D8BA1CC296EA6A8BD7036297A0C01C636A55493E3ADEC2F1DAB9D8D7E0CCD39D7FFC9D4011C3F57A944AA1EEB1AC1784E28ACF7B6FB3AC49185F4E638B567DA6B4903CB8C6D815ED1253D512670FAF71E6BF1ED6669863B552B3BB2173A7F16262454142B7B928F91E60EED00BDFA465F2C46665BD30C1426F9B8D9611D086D6BAB672CB472E8F8E6990F623C2E7458991D982E199BB168C93F96F71974181F898D6C56C02D9DABA852E7E51CA0DC723255B49CAA122D2A6CC64F1389128A0E3298B0E155EC8A4D9BF1D1671B808DDD835015381C1F16C35A84D20A5B9A6B37 | 12 | 20180920083643 2 6 100 2047 2 F13B549CC6FE8517551E48FAEBA8D93EAC29403838E22ED862927B8AC9A9ABBA96AB7E306F0A01B75C0E960AB9DEA0F8519BAA2F13E541E194604848CBC9DEC51165E7A45897104B4A9C54C7337270A8B1B7F53B9DC203744ED2C634889C879E713BEA519452AE800B390FFBABF40B992AF659947D3ED78AA04DDF51C84D7B0824978643683F2153C99F682E30A25683CE180948F62E2CC1EFA1513CB16E74117334356E4E365132BB37BA41B4B79F148F26842A61F12D42B149F3FAB0041CB7DF7F53742544FA4E956D314B140F49786E23A5446C1F5CD55CB59D845774C6D6EF1CE5B7426F351FE906C69D23720BCFC5E250DE2786ACEBEC823E1DE18AB6BB |
13 | 20180403033427 2 6 100 2047 5 F78A3F3A47AFE34101F186DF022B970FB51586E65B1D1875E41D02EDDD4BDF6D6D8BA1CC296EA6A8BD7036297A0C01C636A55493E3ADEC2F1DAB9D8D7E0CCD39D7FFC9D4011C3F57A944AA1EEB1AC1784E28ACF7B6FB3AC49185F4E638B567DA6B4903CB8C6D815ED1253D512670FAF71E6BF1ED6669863B552B3BB2173A7F16262454142B7B928F91E60EED00BDFA465F2C46665BD30C1426F9B8D9611D086D6BAB672CB472E8F8E6990F623C2E7458991D982E199BB168C93F96F71974181F898D6C56C02D9DABA852E7E51CA0DC723255B49CAA122D2A6CC64F1389128A0E3298B0E155EC8A4D9BF1D1671B808DDD835015381C1F16C35A84D20A5B9F8E27 | 13 | 20180920083714 2 6 100 2047 5 F13B549CC6FE8517551E48FAEBA8D93EAC29403838E22ED862927B8AC9A9ABBA96AB7E306F0A01B75C0E960AB9DEA0F8519BAA2F13E541E194604848CBC9DEC51165E7A45897104B4A9C54C7337270A8B1B7F53B9DC203744ED2C634889C879E713BEA519452AE800B390FFBABF40B992AF659947D3ED78AA04DDF51C84D7B0824978643683F2153C99F682E30A25683CE180948F62E2CC1EFA1513CB16E74117334356E4E365132BB37BA41B4B79F148F26842A61F12D42B149F3FAB0041CB7DF7F53742544FA4E956D314B140F49786E23A5446C1F5CD55CB59D845774C6D6EF1CE5B7426F351FE906C69D23720BCFC5E250DE2786ACEBEC823E1DE1C69837 |
14 | 20180403033655 2 6 100 2047 5 F78A3F3A47AFE34101F186DF022B970FB51586E65B1D1875E41D02EDDD4BDF6D6D8BA1CC296EA6A8BD7036297A0C01C636A55493E3ADEC2F1DAB9D8D7E0CCD39D7FFC9D4011C3F57A944AA1EEB1AC1784E28ACF7B6FB3AC49185F4E638B567DA6B4903CB8C6D815ED1253D512670FAF71E6BF1ED6669863B552B3BB2173A7F16262454142B7B928F91E60EED00BDFA465F2C46665BD30C1426F9B8D9611D086D6BAB672CB472E8F8E6990F623C2E7458991D982E199BB168C93F96F71974181F898D6C56C02D9DABA852E7E51CA0DC723255B49CAA122D2A6CC64F1389128A0E3298B0E155EC8A4D9BF1D1671B808DDD835015381C1F16C35A84D20A5C00897F | 14 | 20180920083747 2 6 100 2047 2 F13B549CC6FE8517551E48FAEBA8D93EAC29403838E22ED862927B8AC9A9ABBA96AB7E306F0A01B75C0E960AB9DEA0F8519BAA2F13E541E194604848CBC9DEC51165E7A45897104B4A9C54C7337270A8B1B7F53B9DC203744ED2C634889C879E713BEA519452AE800B390FFBABF40B992AF659947D3ED78AA04DDF51C84D7B0824978643683F2153C99F682E30A25683CE180948F62E2CC1EFA1513CB16E74117334356E4E365132BB37BA41B4B79F148F26842A61F12D42B149F3FAB0041CB7DF7F53742544FA4E956D314B140F49786E23A5446C1F5CD55CB59D845774C6D6EF1CE5B7426F351FE906C69D23720BCFC5E250DE2786ACEBEC823E1DE207143B |
15 | 20180403033742 2 6 100 2047 2 F78A3F3A47AFE34101F186DF022B970FB51586E65B1D1875E41D02EDDD4BDF6D6D8BA1CC296EA6A8BD7036297A0C01C636A55493E3ADEC2F1DAB9D8D7E0CCD39D7FFC9D4011C3F57A944AA1EEB1AC1784E28ACF7B6FB3AC49185F4E638B567DA6B4903CB8C6D815ED1253D512670FAF71E6BF1ED6669863B552B3BB2173A7F16262454142B7B928F91E60EED00BDFA465F2C46665BD30C1426F9B8D9611D086D6BAB672CB472E8F8E6990F623C2E7458991D982E199BB168C93F96F71974181F898D6C56C02D9DABA852E7E51CA0DC723255B49CAA122D2A6CC64F1389128A0E3298B0E155EC8A4D9BF1D1671B808DDD835015381C1F16C35A84D20A5C172DBB | 15 | 20180920083825 2 6 100 2047 5 F13B549CC6FE8517551E48FAEBA8D93EAC29403838E22ED862927B8AC9A9ABBA96AB7E306F0A01B75C0E960AB9DEA0F8519BAA2F13E541E194604848CBC9DEC51165E7A45897104B4A9C54C7337270A8B1B7F53B9DC203744ED2C634889C879E713BEA519452AE800B390FFBABF40B992AF659947D3ED78AA04DDF51C84D7B0824978643683F2153C99F682E30A25683CE180948F62E2CC1EFA1513CB16E74117334356E4E365132BB37BA41B4B79F148F26842A61F12D42B149F3FAB0041CB7DF7F53742544FA4E956D314B140F49786E23A5446C1F5CD55CB59D845774C6D6EF1CE5B7426F351FE906C69D23720BCFC5E250DE2786ACEBEC823E1DE24E3977 |
16 | 20180403033837 2 6 100 2047 2 F78A3F3A47AFE34101F186DF022B970FB51586E65B1D1875E41D02EDDD4BDF6D6D8BA1CC296EA6A8BD7036297A0C01C636A55493E3ADEC2F1DAB9D8D7E0CCD39D7FFC9D4011C3F57A944AA1EEB1AC1784E28ACF7B6FB3AC49185F4E638B567DA6B4903CB8C6D815ED1253D512670FAF71E6BF1ED6669863B552B3BB2173A7F16262454142B7B928F91E60EED00BDFA465F2C46665BD30C1426F9B8D9611D086D6BAB672CB472E8F8E6990F623C2E7458991D982E199BB168C93F96F71974181F898D6C56C02D9DABA852E7E51CA0DC723255B49CAA122D2A6CC64F1389128A0E3298B0E155EC8A4D9BF1D1671B808DDD835015381C1F16C35A84D20A5C33AEAB | 16 | 20180920083852 2 6 100 2047 5 F13B549CC6FE8517551E48FAEBA8D93EAC29403838E22ED862927B8AC9A9ABBA96AB7E306F0A01B75C0E960AB9DEA0F8519BAA2F13E541E194604848CBC9DEC51165E7A45897104B4A9C54C7337270A8B1B7F53B9DC203744ED2C634889C879E713BEA519452AE800B390FFBABF40B992AF659947D3ED78AA04DDF51C84D7B0824978643683F2153C99F682E30A25683CE180948F62E2CC1EFA1513CB16E74117334356E4E365132BB37BA41B4B79F148F26842A61F12D42B149F3FAB0041CB7DF7F53742544FA4E956D314B140F49786E23A5446C1F5CD55CB59D845774C6D6EF1CE5B7426F351FE906C69D23720BCFC5E250DE2786ACEBEC823E1DE2843EE7 |
17 | 20180403033952 2 6 100 2047 5 F78A3F3A47AFE34101F186DF022B970FB51586E65B1D1875E41D02EDDD4BDF6D6D8BA1CC296EA6A8BD7036297A0C01C636A55493E3ADEC2F1DAB9D8D7E0CCD39D7FFC9D4011C3F57A944AA1EEB1AC1784E28ACF7B6FB3AC49185F4E638B567DA6B4903CB8C6D815ED1253D512670FAF71E6BF1ED6669863B552B3BB2173A7F16262454142B7B928F91E60EED00BDFA465F2C46665BD30C1426F9B8D9611D086D6BAB672CB472E8F8E6990F623C2E7458991D982E199BB168C93F96F71974181F898D6C56C02D9DABA852E7E51CA0DC723255B49CAA122D2A6CC64F1389128A0E3298B0E155EC8A4D9BF1D1671B808DDD835015381C1F16C35A84D20A5C5F6067 | 17 | 20180920083857 2 6 100 2047 2 F13B549CC6FE8517551E48FAEBA8D93EAC29403838E22ED862927B8AC9A9ABBA96AB7E306F0A01B75C0E960AB9DEA0F8519BAA2F13E541E194604848CBC9DEC51165E7A45897104B4A9C54C7337270A8B1B7F53B9DC203744ED2C634889C879E713BEA519452AE800B390FFBABF40B992AF659947D3ED78AA04DDF51C84D7B0824978643683F2153C99F682E30A25683CE180948F62E2CC1EFA1513CB16E74117334356E4E365132BB37BA41B4B79F148F26842A61F12D42B149F3FAB0041CB7DF7F53742544FA4E956D314B140F49786E23A5446C1F5CD55CB59D845774C6D6EF1CE5B7426F351FE906C69D23720BCFC5E250DE2786ACEBEC823E1DE285908B |
18 | 20180403034409 2 6 100 2047 5 F78A3F3A47AFE34101F186DF022B970FB51586E65B1D1875E41D02EDDD4BDF6D6D8BA1CC296EA6A8BD7036297A0C01C636A55493E3ADEC2F1DAB9D8D7E0CCD39D7FFC9D4011C3F57A944AA1EEB1AC1784E28ACF7B6FB3AC49185F4E638B567DA6B4903CB8C6D815ED1253D512670FAF71E6BF1ED6669863B552B3BB2173A7F16262454142B7B928F91E60EED00BDFA465F2C46665BD30C1426F9B8D9611D086D6BAB672CB472E8F8E6990F623C2E7458991D982E199BB168C93F96F71974181F898D6C56C02D9DABA852E7E51CA0DC723255B49CAA122D2A6CC64F1389128A0E3298B0E155EC8A4D9BF1D1671B808DDD835015381C1F16C35A84D20A5CEE2AD7 | 18 | 20180920083917 2 6 100 2047 2 F13B549CC6FE8517551E48FAEBA8D93EAC29403838E22ED862927B8AC9A9ABBA96AB7E306F0A01B75C0E960AB9DEA0F8519BAA2F13E541E194604848CBC9DEC51165E7A45897104B4A9C54C7337270A8B1B7F53B9DC203744ED2C634889C879E713BEA519452AE800B390FFBABF40B992AF659947D3ED78AA04DDF51C84D7B0824978643683F2153C99F682E30A25683CE180948F62E2CC1EFA1513CB16E74117334356E4E365132BB37BA41B4B79F148F26842A61F12D42B149F3FAB0041CB7DF7F53742544FA4E956D314B140F49786E23A5446C1F5CD55CB59D845774C6D6EF1CE5B7426F351FE906C69D23720BCFC5E250DE2786ACEBEC823E1DE2A7511B |
19 | 20180403034453 2 6 100 2047 2 F78A3F3A47AFE34101F186DF022B970FB51586E65B1D1875E41D02EDDD4BDF6D6D8BA1CC296EA6A8BD7036297A0C01C636A55493E3ADEC2F1DAB9D8D7E0CCD39D7FFC9D4011C3F57A944AA1EEB1AC1784E28ACF7B6FB3AC49185F4E638B567DA6B4903CB8C6D815ED1253D512670FAF71E6BF1ED6669863B552B3BB2173A7F16262454142B7B928F91E60EED00BDFA465F2C46665BD30C1426F9B8D9611D086D6BAB672CB472E8F8E6990F623C2E7458991D982E199BB168C93F96F71974181F898D6C56C02D9DABA852E7E51CA0DC723255B49CAA122D2A6CC64F1389128A0E3298B0E155EC8A4D9BF1D1671B808DDD835015381C1F16C35A84D20A5CFFE4F3 | 19 | 20180920083924 2 6 100 2047 5 F13B549CC6FE8517551E48FAEBA8D93EAC29403838E22ED862927B8AC9A9ABBA96AB7E306F0A01B75C0E960AB9DEA0F8519BAA2F13E541E194604848CBC9DEC51165E7A45897104B4A9C54C7337270A8B1B7F53B9DC203744ED2C634889C879E713BEA519452AE800B390FFBABF40B992AF659947D3ED78AA04DDF51C84D7B0824978643683F2153C99F682E30A25683CE180948F62E2CC1EFA1513CB16E74117334356E4E365132BB37BA41B4B79F148F26842A61F12D42B149F3FAB0041CB7DF7F53742544FA4E956D314B140F49786E23A5446C1F5CD55CB59D845774C6D6EF1CE5B7426F351FE906C69D23720BCFC5E250DE2786ACEBEC823E1DE2B08EBF |
20 | 20180403034601 2 6 100 2047 2 F78A3F3A47AFE34101F186DF022B970FB51586E65B1D1875E41D02EDDD4BDF6D6D8BA1CC296EA6A8BD7036297A0C01C636A55493E3ADEC2F1DAB9D8D7E0CCD39D7FFC9D4011C3F57A944AA1EEB1AC1784E28ACF7B6FB3AC49185F4E638B567DA6B4903CB8C6D815ED1253D512670FAF71E6BF1ED6669863B552B3BB2173A7F16262454142B7B928F91E60EED00BDFA465F2C46665BD30C1426F9B8D9611D086D6BAB672CB472E8F8E6990F623C2E7458991D982E199BB168C93F96F71974181F898D6C56C02D9DABA852E7E51CA0DC723255B49CAA122D2A6CC64F1389128A0E3298B0E155EC8A4D9BF1D1671B808DDD835015381C1F16C35A84D20A5D1A691B | 20 | 20180920083936 2 6 100 2047 5 F13B549CC6FE8517551E48FAEBA8D93EAC29403838E22ED862927B8AC9A9ABBA96AB7E306F0A01B75C0E960AB9DEA0F8519BAA2F13E541E194604848CBC9DEC51165E7A45897104B4A9C54C7337270A8B1B7F53B9DC203744ED2C634889C879E713BEA519452AE800B390FFBABF40B992AF659947D3ED78AA04DDF51C84D7B0824978643683F2153C99F682E30A25683CE180948F62E2CC1EFA1513CB16E74117334356E4E365132BB37BA41B4B79F148F26842A61F12D42B149F3FAB0041CB7DF7F53742544FA4E956D314B140F49786E23A5446C1F5CD55CB59D845774C6D6EF1CE5B7426F351FE906C69D23720BCFC5E250DE2786ACEBEC823E1DE2C326CF |
21 | 20180403035311 2 6 100 2047 2 F78A3F3A47AFE34101F186DF022B970FB51586E65B1D1875E41D02EDDD4BDF6D6D8BA1CC296EA6A8BD7036297A0C01C636A55493E3ADEC2F1DAB9D8D7E0CCD39D7FFC9D4011C3F57A944AA1EEB1AC1784E28ACF7B6FB3AC49185F4E638B567DA6B4903CB8C6D815ED1253D512670FAF71E6BF1ED6669863B552B3BB2173A7F16262454142B7B928F91E60EED00BDFA465F2C46665BD30C1426F9B8D9611D086D6BAB672CB472E8F8E6990F623C2E7458991D982E199BB168C93F96F71974181F898D6C56C02D9DABA852E7E51CA0DC723255B49CAA122D2A6CC64F1389128A0E3298B0E155EC8A4D9BF1D1671B808DDD835015381C1F16C35A84D20A5E04B193 | 21 | 20180920083953 2 6 100 2047 2 F13B549CC6FE8517551E48FAEBA8D93EAC29403838E22ED862927B8AC9A9ABBA96AB7E306F0A01B75C0E960AB9DEA0F8519BAA2F13E541E194604848CBC9DEC51165E7A45897104B4A9C54C7337270A8B1B7F53B9DC203744ED2C634889C879E713BEA519452AE800B390FFBABF40B992AF659947D3ED78AA04DDF51C84D7B0824978643683F2153C99F682E30A25683CE180948F62E2CC1EFA1513CB16E74117334356E4E365132BB37BA41B4B79F148F26842A61F12D42B149F3FAB0041CB7DF7F53742544FA4E956D314B140F49786E23A5446C1F5CD55CB59D845774C6D6EF1CE5B7426F351FE906C69D23720BCFC5E250DE2786ACEBEC823E1DE2E0BCBB |
22 | 20180403035645 2 6 100 2047 5 F78A3F3A47AFE34101F186DF022B970FB51586E65B1D1875E41D02EDDD4BDF6D6D8BA1CC296EA6A8BD7036297A0C01C636A55493E3ADEC2F1DAB9D8D7E0CCD39D7FFC9D4011C3F57A944AA1EEB1AC1784E28ACF7B6FB3AC49185F4E638B567DA6B4903CB8C6D815ED1253D512670FAF71E6BF1ED6669863B552B3BB2173A7F16262454142B7B928F91E60EED00BDFA465F2C46665BD30C1426F9B8D9611D086D6BAB672CB472E8F8E6990F623C2E7458991D982E199BB168C93F96F71974181F898D6C56C02D9DABA852E7E51CA0DC723255B49CAA122D2A6CC64F1389128A0E3298B0E155EC8A4D9BF1D1671B808DDD835015381C1F16C35A84D20A5E75D66F | 22 | 20180920084017 2 6 100 2047 2 F13B549CC6FE8517551E48FAEBA8D93EAC29403838E22ED862927B8AC9A9ABBA96AB7E306F0A01B75C0E960AB9DEA0F8519BAA2F13E541E194604848CBC9DEC51165E7A45897104B4A9C54C7337270A8B1B7F53B9DC203744ED2C634889C879E713BEA519452AE800B390FFBABF40B992AF659947D3ED78AA04DDF51C84D7B0824978643683F2153C99F682E30A25683CE180948F62E2CC1EFA1513CB16E74117334356E4E365132BB37BA41B4B79F148F26842A61F12D42B149F3FAB0041CB7DF7F53742544FA4E956D314B140F49786E23A5446C1F5CD55CB59D845774C6D6EF1CE5B7426F351FE906C69D23720BCFC5E250DE2786ACEBEC823E1DE30D862B |
23 | 20180403035724 2 6 100 2047 5 F78A3F3A47AFE34101F186DF022B970FB51586E65B1D1875E41D02EDDD4BDF6D6D8BA1CC296EA6A8BD7036297A0C01C636A55493E3ADEC2F1DAB9D8D7E0CCD39D7FFC9D4011C3F57A944AA1EEB1AC1784E28ACF7B6FB3AC49185F4E638B567DA6B4903CB8C6D815ED1253D512670FAF71E6BF1ED6669863B552B3BB2173A7F16262454142B7B928F91E60EED00BDFA465F2C46665BD30C1426F9B8D9611D086D6BAB672CB472E8F8E6990F623C2E7458991D982E199BB168C93F96F71974181F898D6C56C02D9DABA852E7E51CA0DC723255B49CAA122D2A6CC64F1389128A0E3298B0E155EC8A4D9BF1D1671B808DDD835015381C1F16C35A84D20A5E864847 | 23 | 20180920084034 2 6 100 2047 5 F13B549CC6FE8517551E48FAEBA8D93EAC29403838E22ED862927B8AC9A9ABBA96AB7E306F0A01B75C0E960AB9DEA0F8519BAA2F13E541E194604848CBC9DEC51165E7A45897104B4A9C54C7337270A8B1B7F53B9DC203744ED2C634889C879E713BEA519452AE800B390FFBABF40B992AF659947D3ED78AA04DDF51C84D7B0824978643683F2153C99F682E30A25683CE180948F62E2CC1EFA1513CB16E74117334356E4E365132BB37BA41B4B79F148F26842A61F12D42B149F3FAB0041CB7DF7F53742544FA4E956D314B140F49786E23A5446C1F5CD55CB59D845774C6D6EF1CE5B7426F351FE906C69D23720BCFC5E250DE2786ACEBEC823E1DE32AADEF |
24 | 20180403035828 2 6 100 2047 5 F78A3F3A47AFE34101F186DF022B970FB51586E65B1D1875E41D02EDDD4BDF6D6D8BA1CC296EA6A8BD7036297A0C01C636A55493E3ADEC2F1DAB9D8D7E0CCD39D7FFC9D4011C3F57A944AA1EEB1AC1784E28ACF7B6FB3AC49185F4E638B567DA6B4903CB8C6D815ED1253D512670FAF71E6BF1ED6669863B552B3BB2173A7F16262454142B7B928F91E60EED00BDFA465F2C46665BD30C1426F9B8D9611D086D6BAB672CB472E8F8E6990F623C2E7458991D982E199BB168C93F96F71974181F898D6C56C02D9DABA852E7E51CA0DC723255B49CAA122D2A6CC64F1389128A0E3298B0E155EC8A4D9BF1D1671B808DDD835015381C1F16C35A84D20A5EA44DCF | 24 | 20180920084040 2 6 100 2047 2 F13B549CC6FE8517551E48FAEBA8D93EAC29403838E22ED862927B8AC9A9ABBA96AB7E306F0A01B75C0E960AB9DEA0F8519BAA2F13E541E194604848CBC9DEC51165E7A45897104B4A9C54C7337270A8B1B7F53B9DC203744ED2C634889C879E713BEA519452AE800B390FFBABF40B992AF659947D3ED78AA04DDF51C84D7B0824978643683F2153C99F682E30A25683CE180948F62E2CC1EFA1513CB16E74117334356E4E365132BB37BA41B4B79F148F26842A61F12D42B149F3FAB0041CB7DF7F53742544FA4E956D314B140F49786E23A5446C1F5CD55CB59D845774C6D6EF1CE5B7426F351FE906C69D23720BCFC5E250DE2786ACEBEC823E1DE32F8FDB |
25 | 20180403035953 2 6 100 2047 2 F78A3F3A47AFE34101F186DF022B970FB51586E65B1D1875E41D02EDDD4BDF6D6D8BA1CC296EA6A8BD7036297A0C01C636A55493E3ADEC2F1DAB9D8D7E0CCD39D7FFC9D4011C3F57A944AA1EEB1AC1784E28ACF7B6FB3AC49185F4E638B567DA6B4903CB8C6D815ED1253D512670FAF71E6BF1ED6669863B552B3BB2173A7F16262454142B7B928F91E60EED00BDFA465F2C46665BD30C1426F9B8D9611D086D6BAB672CB472E8F8E6990F623C2E7458991D982E199BB168C93F96F71974181F898D6C56C02D9DABA852E7E51CA0DC723255B49CAA122D2A6CC64F1389128A0E3298B0E155EC8A4D9BF1D1671B808DDD835015381C1F16C35A84D20A5ECCB51B | 25 | 20180920084114 2 6 100 2047 2 F13B549CC6FE8517551E48FAEBA8D93EAC29403838E22ED862927B8AC9A9ABBA96AB7E306F0A01B75C0E960AB9DEA0F8519BAA2F13E541E194604848CBC9DEC51165E7A45897104B4A9C54C7337270A8B1B7F53B9DC203744ED2C634889C879E713BEA519452AE800B390FFBABF40B992AF659947D3ED78AA04DDF51C84D7B0824978643683F2153C99F682E30A25683CE180948F62E2CC1EFA1513CB16E74117334356E4E365132BB37BA41B4B79F148F26842A61F12D42B149F3FAB0041CB7DF7F53742544FA4E956D314B140F49786E23A5446C1F5CD55CB59D845774C6D6EF1CE5B7426F351FE906C69D23720BCFC5E250DE2786ACEBEC823E1DE372E443 |
26 | 20180403040048 2 6 100 2047 5 F78A3F3A47AFE34101F186DF022B970FB51586E65B1D1875E41D02EDDD4BDF6D6D8BA1CC296EA6A8BD7036297A0C01C636A55493E3ADEC2F1DAB9D8D7E0CCD39D7FFC9D4011C3F57A944AA1EEB1AC1784E28ACF7B6FB3AC49185F4E638B567DA6B4903CB8C6D815ED1253D512670FAF71E6BF1ED6669863B552B3BB2173A7F16262454142B7B928F91E60EED00BDFA465F2C46665BD30C1426F9B8D9611D086D6BAB672CB472E8F8E6990F623C2E7458991D982E199BB168C93F96F71974181F898D6C56C02D9DABA852E7E51CA0DC723255B49CAA122D2A6CC64F1389128A0E3298B0E155EC8A4D9BF1D1671B808DDD835015381C1F16C35A84D20A5EE55A9F | 26 | 20180920084154 2 6 100 2047 5 F13B549CC6FE8517551E48FAEBA8D93EAC29403838E22ED862927B8AC9A9ABBA96AB7E306F0A01B75C0E960AB9DEA0F8519BAA2F13E541E194604848CBC9DEC51165E7A45897104B4A9C54C7337270A8B1B7F53B9DC203744ED2C634889C879E713BEA519452AE800B390FFBABF40B992AF659947D3ED78AA04DDF51C84D7B0824978643683F2153C99F682E30A25683CE180948F62E2CC1EFA1513CB16E74117334356E4E365132BB37BA41B4B79F148F26842A61F12D42B149F3FAB0041CB7DF7F53742544FA4E956D314B140F49786E23A5446C1F5CD55CB59D845774C6D6EF1CE5B7426F351FE906C69D23720BCFC5E250DE2786ACEBEC823E1DE3C3748F |
27 | 20180403040339 2 6 100 2047 5 F78A3F3A47AFE34101F186DF022B970FB51586E65B1D1875E41D02EDDD4BDF6D6D8BA1CC296EA6A8BD7036297A0C01C636A55493E3ADEC2F1DAB9D8D7E0CCD39D7FFC9D4011C3F57A944AA1EEB1AC1784E28ACF7B6FB3AC49185F4E638B567DA6B4903CB8C6D815ED1253D512670FAF71E6BF1ED6669863B552B3BB2173A7F16262454142B7B928F91E60EED00BDFA465F2C46665BD30C1426F9B8D9611D086D6BAB672CB472E8F8E6990F623C2E7458991D982E199BB168C93F96F71974181F898D6C56C02D9DABA852E7E51CA0DC723255B49CAA122D2A6CC64F1389128A0E3298B0E155EC8A4D9BF1D1671B808DDD835015381C1F16C35A84D20A5F4D5E6F | 27 | 20180920084236 2 6 100 2047 5 F13B549CC6FE8517551E48FAEBA8D93EAC29403838E22ED862927B8AC9A9ABBA96AB7E306F0A01B75C0E960AB9DEA0F8519BAA2F13E541E194604848CBC9DEC51165E7A45897104B4A9C54C7337270A8B1B7F53B9DC203744ED2C634889C879E713BEA519452AE800B390FFBABF40B992AF659947D3ED78AA04DDF51C84D7B0824978643683F2153C99F682E30A25683CE180948F62E2CC1EFA1513CB16E74117334356E4E365132BB37BA41B4B79F148F26842A61F12D42B149F3FAB0041CB7DF7F53742544FA4E956D314B140F49786E23A5446C1F5CD55CB59D845774C6D6EF1CE5B7426F351FE906C69D23720BCFC5E250DE2786ACEBEC823E1DE4158847 |
28 | 20180403040523 2 6 100 2047 2 F78A3F3A47AFE34101F186DF022B970FB51586E65B1D1875E41D02EDDD4BDF6D6D8BA1CC296EA6A8BD7036297A0C01C636A55493E3ADEC2F1DAB9D8D7E0CCD39D7FFC9D4011C3F57A944AA1EEB1AC1784E28ACF7B6FB3AC49185F4E638B567DA6B4903CB8C6D815ED1253D512670FAF71E6BF1ED6669863B552B3BB2173A7F16262454142B7B928F91E60EED00BDFA465F2C46665BD30C1426F9B8D9611D086D6BAB672CB472E8F8E6990F623C2E7458991D982E199BB168C93F96F71974181F898D6C56C02D9DABA852E7E51CA0DC723255B49CAA122D2A6CC64F1389128A0E3298B0E155EC8A4D9BF1D1671B808DDD835015381C1F16C35A84D20A5F8939A3 | 28 | 20180920084247 2 6 100 2047 5 F13B549CC6FE8517551E48FAEBA8D93EAC29403838E22ED862927B8AC9A9ABBA96AB7E306F0A01B75C0E960AB9DEA0F8519BAA2F13E541E194604848CBC9DEC51165E7A45897104B4A9C54C7337270A8B1B7F53B9DC203744ED2C634889C879E713BEA519452AE800B390FFBABF40B992AF659947D3ED78AA04DDF51C84D7B0824978643683F2153C99F682E30A25683CE180948F62E2CC1EFA1513CB16E74117334356E4E365132BB37BA41B4B79F148F26842A61F12D42B149F3FAB0041CB7DF7F53742544FA4E956D314B140F49786E23A5446C1F5CD55CB59D845774C6D6EF1CE5B7426F351FE906C69D23720BCFC5E250DE2786ACEBEC823E1DE4262F2F |
29 | 20180403040638 2 6 100 2047 2 F78A3F3A47AFE34101F186DF022B970FB51586E65B1D1875E41D02EDDD4BDF6D6D8BA1CC296EA6A8BD7036297A0C01C636A55493E3ADEC2F1DAB9D8D7E0CCD39D7FFC9D4011C3F57A944AA1EEB1AC1784E28ACF7B6FB3AC49185F4E638B567DA6B4903CB8C6D815ED1253D512670FAF71E6BF1ED6669863B552B3BB2173A7F16262454142B7B928F91E60EED00BDFA465F2C46665BD30C1426F9B8D9611D086D6BAB672CB472E8F8E6990F623C2E7458991D982E199BB168C93F96F71974181F898D6C56C02D9DABA852E7E51CA0DC723255B49CAA122D2A6CC64F1389128A0E3298B0E155EC8A4D9BF1D1671B808DDD835015381C1F16C35A84D20A5FB85E8B | 29 | 20180920084310 2 6 100 2047 5 F13B549CC6FE8517551E48FAEBA8D93EAC29403838E22ED862927B8AC9A9ABBA96AB7E306F0A01B75C0E960AB9DEA0F8519BAA2F13E541E194604848CBC9DEC51165E7A45897104B4A9C54C7337270A8B1B7F53B9DC203744ED2C634889C879E713BEA519452AE800B390FFBABF40B992AF659947D3ED78AA04DDF51C84D7B0824978643683F2153C99F682E30A25683CE180948F62E2CC1EFA1513CB16E74117334356E4E365132BB37BA41B4B79F148F26842A61F12D42B149F3FAB0041CB7DF7F53742544FA4E956D314B140F49786E23A5446C1F5CD55CB59D845774C6D6EF1CE5B7426F351FE906C69D23720BCFC5E250DE2786ACEBEC823E1DE452029F |
30 | 20180403040715 2 6 100 2047 2 F78A3F3A47AFE34101F186DF022B970FB51586E65B1D1875E41D02EDDD4BDF6D6D8BA1CC296EA6A8BD7036297A0C01C636A55493E3ADEC2F1DAB9D8D7E0CCD39D7FFC9D4011C3F57A944AA1EEB1AC1784E28ACF7B6FB3AC49185F4E638B567DA6B4903CB8C6D815ED1253D512670FAF71E6BF1ED6669863B552B3BB2173A7F16262454142B7B928F91E60EED00BDFA465F2C46665BD30C1426F9B8D9611D086D6BAB672CB472E8F8E6990F623C2E7458991D982E199BB168C93F96F71974181F898D6C56C02D9DABA852E7E51CA0DC723255B49CAA122D2A6CC64F1389128A0E3298B0E155EC8A4D9BF1D1671B808DDD835015381C1F16C35A84D20A5FCC3033 | 30 | 20180920084323 2 6 100 2047 2 F13B549CC6FE8517551E48FAEBA8D93EAC29403838E22ED862927B8AC9A9ABBA96AB7E306F0A01B75C0E960AB9DEA0F8519BAA2F13E541E194604848CBC9DEC51165E7A45897104B4A9C54C7337270A8B1B7F53B9DC203744ED2C634889C879E713BEA519452AE800B390FFBABF40B992AF659947D3ED78AA04DDF51C84D7B0824978643683F2153C99F682E30A25683CE180948F62E2CC1EFA1513CB16E74117334356E4E365132BB37BA41B4B79F148F26842A61F12D42B149F3FAB0041CB7DF7F53742544FA4E956D314B140F49786E23A5446C1F5CD55CB59D845774C6D6EF1CE5B7426F351FE906C69D23720BCFC5E250DE2786ACEBEC823E1DE467FAEB |
31 | 20180403041128 2 6 100 2047 5 F78A3F3A47AFE34101F186DF022B970FB51586E65B1D1875E41D02EDDD4BDF6D6D8BA1CC296EA6A8BD7036297A0C01C636A55493E3ADEC2F1DAB9D8D7E0CCD39D7FFC9D4011C3F57A944AA1EEB1AC1784E28ACF7B6FB3AC49185F4E638B567DA6B4903CB8C6D815ED1253D512670FAF71E6BF1ED6669863B552B3BB2173A7F16262454142B7B928F91E60EED00BDFA465F2C46665BD30C1426F9B8D9611D086D6BAB672CB472E8F8E6990F623C2E7458991D982E199BB168C93F96F71974181F898D6C56C02D9DABA852E7E51CA0DC723255B49CAA122D2A6CC64F1389128A0E3298B0E155EC8A4D9BF1D1671B808DDD835015381C1F16C35A84D20A60755C57 | 31 | 20180920084353 2 6 100 2047 2 F13B549CC6FE8517551E48FAEBA8D93EAC29403838E22ED862927B8AC9A9ABBA96AB7E306F0A01B75C0E960AB9DEA0F8519BAA2F13E541E194604848CBC9DEC51165E7A45897104B4A9C54C7337270A8B1B7F53B9DC203744ED2C634889C879E713BEA519452AE800B390FFBABF40B992AF659947D3ED78AA04DDF51C84D7B0824978643683F2153C99F682E30A25683CE180948F62E2CC1EFA1513CB16E74117334356E4E365132BB37BA41B4B79F148F26842A61F12D42B149F3FAB0041CB7DF7F53742544FA4E956D314B140F49786E23A5446C1F5CD55CB59D845774C6D6EF1CE5B7426F351FE906C69D23720BCFC5E250DE2786ACEBEC823E1DE4A3A77B |
32 | 20180403041637 2 6 100 2047 5 EA0303D03FF69BCABDC25DDEA6AC9CFEE8C36EF48C7F2882B65D568B0D14A7DACCF4A6E8E905727C0B982FA4D7C4E59DDAF4704D0EC767D79B13A32467C8D39F615B5268E4338DD70C6072C702CDF6F39153C472E668ABF0B85B8D08454027AA52E3227C5BA017B2558F7A611F09C7BE5E28A472FAB51C71FF7E8C758CD5205C562F3674D941EF2DEC7F3B3F49C4CE3A9DD7B4275BD537BF04A4A8E98FAA42AD0A2280CFC0D4692339EEC803B69FDC33057837FBD233DB6B78920F7049B5F9CA9CFDD98351B9E7947265439F48429306D6CAB08774F2B7427A61DA757375D26C08B99BCAFB8085E41DBA0E49D142EEC164CC3153AB3119FB76033B336541B76F | 32 | 20180920084435 2 6 100 2047 2 F13B549CC6FE8517551E48FAEBA8D93EAC29403838E22ED862927B8AC9A9ABBA96AB7E306F0A01B75C0E960AB9DEA0F8519BAA2F13E541E194604848CBC9DEC51165E7A45897104B4A9C54C7337270A8B1B7F53B9DC203744ED2C634889C879E713BEA519452AE800B390FFBABF40B992AF659947D3ED78AA04DDF51C84D7B0824978643683F2153C99F682E30A25683CE180948F62E2CC1EFA1513CB16E74117334356E4E365132BB37BA41B4B79F148F26842A61F12D42B149F3FAB0041CB7DF7F53742544FA4E956D314B140F49786E23A5446C1F5CD55CB59D845774C6D6EF1CE5B7426F351FE906C69D23720BCFC5E250DE2786ACEBEC823E1DE4F4FEC3 |
33 | 20180403041935 2 6 100 2047 2 EA0303D03FF69BCABDC25DDEA6AC9CFEE8C36EF48C7F2882B65D568B0D14A7DACCF4A6E8E905727C0B982FA4D7C4E59DDAF4704D0EC767D79B13A32467C8D39F615B5268E4338DD70C6072C702CDF6F39153C472E668ABF0B85B8D08454027AA52E3227C5BA017B2558F7A611F09C7BE5E28A472FAB51C71FF7E8C758CD5205C562F3674D941EF2DEC7F3B3F49C4CE3A9DD7B4275BD537BF04A4A8E98FAA42AD0A2280CFC0D4692339EEC803B69FDC33057837FBD233DB6B78920F7049B5F9CA9CFDD98351B9E7947265439F48429306D6CAB08774F2B7427A61DA757375D26C08B99BCAFB8085E41DBA0E49D142EEC164CC3153AB3119FB76033B3365BF1D13 | 33 | 20180920084446 2 6 100 2047 2 F13B549CC6FE8517551E48FAEBA8D93EAC29403838E22ED862927B8AC9A9ABBA96AB7E306F0A01B75C0E960AB9DEA0F8519BAA2F13E541E194604848CBC9DEC51165E7A45897104B4A9C54C7337270A8B1B7F53B9DC203744ED2C634889C879E713BEA519452AE800B390FFBABF40B992AF659947D3ED78AA04DDF51C84D7B0824978643683F2153C99F682E30A25683CE180948F62E2CC1EFA1513CB16E74117334356E4E365132BB37BA41B4B79F148F26842A61F12D42B149F3FAB0041CB7DF7F53742544FA4E956D314B140F49786E23A5446C1F5CD55CB59D845774C6D6EF1CE5B7426F351FE906C69D23720BCFC5E250DE2786ACEBEC823E1DE50404F3 |
34 | 20180403042035 2 6 100 2047 5 EA0303D03FF69BCABDC25DDEA6AC9CFEE8C36EF48C7F2882B65D568B0D14A7DACCF4A6E8E905727C0B982FA4D7C4E59DDAF4704D0EC767D79B13A32467C8D39F615B5268E4338DD70C6072C702CDF6F39153C472E668ABF0B85B8D08454027AA52E3227C5BA017B2558F7A611F09C7BE5E28A472FAB51C71FF7E8C758CD5205C562F3674D941EF2DEC7F3B3F49C4CE3A9DD7B4275BD537BF04A4A8E98FAA42AD0A2280CFC0D4692339EEC803B69FDC33057837FBD233DB6B78920F7049B5F9CA9CFDD98351B9E7947265439F48429306D6CAB08774F2B7427A61DA757375D26C08B99BCAFB8085E41DBA0E49D142EEC164CC3153AB3119FB76033B3365E41E47 | 34 | 20180920084451 2 6 100 2047 2 F13B549CC6FE8517551E48FAEBA8D93EAC29403838E22ED862927B8AC9A9ABBA96AB7E306F0A01B75C0E960AB9DEA0F8519BAA2F13E541E194604848CBC9DEC51165E7A45897104B4A9C54C7337270A8B1B7F53B9DC203744ED2C634889C879E713BEA519452AE800B390FFBABF40B992AF659947D3ED78AA04DDF51C84D7B0824978643683F2153C99F682E30A25683CE180948F62E2CC1EFA1513CB16E74117334356E4E365132BB37BA41B4B79F148F26842A61F12D42B149F3FAB0041CB7DF7F53742544FA4E956D314B140F49786E23A5446C1F5CD55CB59D845774C6D6EF1CE5B7426F351FE906C69D23720BCFC5E250DE2786ACEBEC823E1DE50889BB |
35 | 20180403042109 2 6 100 2047 2 EA0303D03FF69BCABDC25DDEA6AC9CFEE8C36EF48C7F2882B65D568B0D14A7DACCF4A6E8E905727C0B982FA4D7C4E59DDAF4704D0EC767D79B13A32467C8D39F615B5268E4338DD70C6072C702CDF6F39153C472E668ABF0B85B8D08454027AA52E3227C5BA017B2558F7A611F09C7BE5E28A472FAB51C71FF7E8C758CD5205C562F3674D941EF2DEC7F3B3F49C4CE3A9DD7B4275BD537BF04A4A8E98FAA42AD0A2280CFC0D4692339EEC803B69FDC33057837FBD233DB6B78920F7049B5F9CA9CFDD98351B9E7947265439F48429306D6CAB08774F2B7427A61DA757375D26C08B99BCAFB8085E41DBA0E49D142EEC164CC3153AB3119FB76033B3365F700BB | 35 | 20180920084547 2 6 100 2047 2 F13B549CC6FE8517551E48FAEBA8D93EAC29403838E22ED862927B8AC9A9ABBA96AB7E306F0A01B75C0E960AB9DEA0F8519BAA2F13E541E194604848CBC9DEC51165E7A45897104B4A9C54C7337270A8B1B7F53B9DC203744ED2C634889C879E713BEA519452AE800B390FFBABF40B992AF659947D3ED78AA04DDF51C84D7B0824978643683F2153C99F682E30A25683CE180948F62E2CC1EFA1513CB16E74117334356E4E365132BB37BA41B4B79F148F26842A61F12D42B149F3FAB0041CB7DF7F53742544FA4E956D314B140F49786E23A5446C1F5CD55CB59D845774C6D6EF1CE5B7426F351FE906C69D23720BCFC5E250DE2786ACEBEC823E1DE57A3D23 |
36 | 20180403042214 2 6 100 2047 2 EA0303D03FF69BCABDC25DDEA6AC9CFEE8C36EF48C7F2882B65D568B0D14A7DACCF4A6E8E905727C0B982FA4D7C4E59DDAF4704D0EC767D79B13A32467C8D39F615B5268E4338DD70C6072C702CDF6F39153C472E668ABF0B85B8D08454027AA52E3227C5BA017B2558F7A611F09C7BE5E28A472FAB51C71FF7E8C758CD5205C562F3674D941EF2DEC7F3B3F49C4CE3A9DD7B4275BD537BF04A4A8E98FAA42AD0A2280CFC0D4692339EEC803B69FDC33057837FBD233DB6B78920F7049B5F9CA9CFDD98351B9E7947265439F48429306D6CAB08774F2B7427A61DA757375D26C08B99BCAFB8085E41DBA0E49D142EEC164CC3153AB3119FB76033B336624FF2B | 36 | 20180920084627 2 6 100 2047 2 F13B549CC6FE8517551E48FAEBA8D93EAC29403838E22ED862927B8AC9A9ABBA96AB7E306F0A01B75C0E960AB9DEA0F8519BAA2F13E541E194604848CBC9DEC51165E7A45897104B4A9C54C7337270A8B1B7F53B9DC203744ED2C634889C879E713BEA519452AE800B390FFBABF40B992AF659947D3ED78AA04DDF51C84D7B0824978643683F2153C99F682E30A25683CE180948F62E2CC1EFA1513CB16E74117334356E4E365132BB37BA41B4B79F148F26842A61F12D42B149F3FAB0041CB7DF7F53742544FA4E956D314B140F49786E23A5446C1F5CD55CB59D845774C6D6EF1CE5B7426F351FE906C69D23720BCFC5E250DE2786ACEBEC823E1DE5CC4913 |
37 | 20180403042419 2 6 100 2047 2 EA0303D03FF69BCABDC25DDEA6AC9CFEE8C36EF48C7F2882B65D568B0D14A7DACCF4A6E8E905727C0B982FA4D7C4E59DDAF4704D0EC767D79B13A32467C8D39F615B5268E4338DD70C6072C702CDF6F39153C472E668ABF0B85B8D08454027AA52E3227C5BA017B2558F7A611F09C7BE5E28A472FAB51C71FF7E8C758CD5205C562F3674D941EF2DEC7F3B3F49C4CE3A9DD7B4275BD537BF04A4A8E98FAA42AD0A2280CFC0D4692339EEC803B69FDC33057837FBD233DB6B78920F7049B5F9CA9CFDD98351B9E7947265439F48429306D6CAB08774F2B7427A61DA757375D26C08B99BCAFB8085E41DBA0E49D142EEC164CC3153AB3119FB76033B336687845B | 37 | 20180920084636 2 6 100 2047 2 F13B549CC6FE8517551E48FAEBA8D93EAC29403838E22ED862927B8AC9A9ABBA96AB7E306F0A01B75C0E960AB9DEA0F8519BAA2F13E541E194604848CBC9DEC51165E7A45897104B4A9C54C7337270A8B1B7F53B9DC203744ED2C634889C879E713BEA519452AE800B390FFBABF40B992AF659947D3ED78AA04DDF51C84D7B0824978643683F2153C99F682E30A25683CE180948F62E2CC1EFA1513CB16E74117334356E4E365132BB37BA41B4B79F148F26842A61F12D42B149F3FAB0041CB7DF7F53742544FA4E956D314B140F49786E23A5446C1F5CD55CB59D845774C6D6EF1CE5B7426F351FE906C69D23720BCFC5E250DE2786ACEBEC823E1DE5D944FB |
38 | 20180403042507 2 6 100 2047 2 EA0303D03FF69BCABDC25DDEA6AC9CFEE8C36EF48C7F2882B65D568B0D14A7DACCF4A6E8E905727C0B982FA4D7C4E59DDAF4704D0EC767D79B13A32467C8D39F615B5268E4338DD70C6072C702CDF6F39153C472E668ABF0B85B8D08454027AA52E3227C5BA017B2558F7A611F09C7BE5E28A472FAB51C71FF7E8C758CD5205C562F3674D941EF2DEC7F3B3F49C4CE3A9DD7B4275BD537BF04A4A8E98FAA42AD0A2280CFC0D4692339EEC803B69FDC33057837FBD233DB6B78920F7049B5F9CA9CFDD98351B9E7947265439F48429306D6CAB08774F2B7427A61DA757375D26C08B99BCAFB8085E41DBA0E49D142EEC164CC3153AB3119FB76033B3366A8266B | 38 | 20180920084649 2 6 100 2047 5 F13B549CC6FE8517551E48FAEBA8D93EAC29403838E22ED862927B8AC9A9ABBA96AB7E306F0A01B75C0E960AB9DEA0F8519BAA2F13E541E194604848CBC9DEC51165E7A45897104B4A9C54C7337270A8B1B7F53B9DC203744ED2C634889C879E713BEA519452AE800B390FFBABF40B992AF659947D3ED78AA04DDF51C84D7B0824978643683F2153C99F682E30A25683CE180948F62E2CC1EFA1513CB16E74117334356E4E365132BB37BA41B4B79F148F26842A61F12D42B149F3FAB0041CB7DF7F53742544FA4E956D314B140F49786E23A5446C1F5CD55CB59D845774C6D6EF1CE5B7426F351FE906C69D23720BCFC5E250DE2786ACEBEC823E1DE5EF41F7 |
39 | 20180403042626 2 6 100 2047 2 EA0303D03FF69BCABDC25DDEA6AC9CFEE8C36EF48C7F2882B65D568B0D14A7DACCF4A6E8E905727C0B982FA4D7C4E59DDAF4704D0EC767D79B13A32467C8D39F615B5268E4338DD70C6072C702CDF6F39153C472E668ABF0B85B8D08454027AA52E3227C5BA017B2558F7A611F09C7BE5E28A472FAB51C71FF7E8C758CD5205C562F3674D941EF2DEC7F3B3F49C4CE3A9DD7B4275BD537BF04A4A8E98FAA42AD0A2280CFC0D4692339EEC803B69FDC33057837FBD233DB6B78920F7049B5F9CA9CFDD98351B9E7947265439F48429306D6CAB08774F2B7427A61DA757375D26C08B99BCAFB8085E41DBA0E49D142EEC164CC3153AB3119FB76033B3366E23603 | 39 | 20180920084732 2 6 100 2047 5 F13B549CC6FE8517551E48FAEBA8D93EAC29403838E22ED862927B8AC9A9ABBA96AB7E306F0A01B75C0E960AB9DEA0F8519BAA2F13E541E194604848CBC9DEC51165E7A45897104B4A9C54C7337270A8B1B7F53B9DC203744ED2C634889C879E713BEA519452AE800B390FFBABF40B992AF659947D3ED78AA04DDF51C84D7B0824978643683F2153C99F682E30A25683CE180948F62E2CC1EFA1513CB16E74117334356E4E365132BB37BA41B4B79F148F26842A61F12D42B149F3FAB0041CB7DF7F53742544FA4E956D314B140F49786E23A5446C1F5CD55CB59D845774C6D6EF1CE5B7426F351FE906C69D23720BCFC5E250DE2786ACEBEC823E1DE646894F |
40 | 20180403042722 2 6 100 2047 2 EA0303D03FF69BCABDC25DDEA6AC9CFEE8C36EF48C7F2882B65D568B0D14A7DACCF4A6E8E905727C0B982FA4D7C4E59DDAF4704D0EC767D79B13A32467C8D39F615B5268E4338DD70C6072C702CDF6F39153C472E668ABF0B85B8D08454027AA52E3227C5BA017B2558F7A611F09C7BE5E28A472FAB51C71FF7E8C758CD5205C562F3674D941EF2DEC7F3B3F49C4CE3A9DD7B4275BD537BF04A4A8E98FAA42AD0A2280CFC0D4692339EEC803B69FDC33057837FBD233DB6B78920F7049B5F9CA9CFDD98351B9E7947265439F48429306D6CAB08774F2B7427A61DA757375D26C08B99BCAFB8085E41DBA0E49D142EEC164CC3153AB3119FB76033B3367059073 | 40 | 20180920084755 2 6 100 2047 5 F13B549CC6FE8517551E48FAEBA8D93EAC29403838E22ED862927B8AC9A9ABBA96AB7E306F0A01B75C0E960AB9DEA0F8519BAA2F13E541E194604848CBC9DEC51165E7A45897104B4A9C54C7337270A8B1B7F53B9DC203744ED2C634889C879E713BEA519452AE800B390FFBABF40B992AF659947D3ED78AA04DDF51C84D7B0824978643683F2153C99F682E30A25683CE180948F62E2CC1EFA1513CB16E74117334356E4E365132BB37BA41B4B79F148F26842A61F12D42B149F3FAB0041CB7DF7F53742544FA4E956D314B140F49786E23A5446C1F5CD55CB59D845774C6D6EF1CE5B7426F351FE906C69D23720BCFC5E250DE2786ACEBEC823E1DE670C3B7 |
41 | 20180403042819 2 6 100 2047 2 EA0303D03FF69BCABDC25DDEA6AC9CFEE8C36EF48C7F2882B65D568B0D14A7DACCF4A6E8E905727C0B982FA4D7C4E59DDAF4704D0EC767D79B13A32467C8D39F615B5268E4338DD70C6072C702CDF6F39153C472E668ABF0B85B8D08454027AA52E3227C5BA017B2558F7A611F09C7BE5E28A472FAB51C71FF7E8C758CD5205C562F3674D941EF2DEC7F3B3F49C4CE3A9DD7B4275BD537BF04A4A8E98FAA42AD0A2280CFC0D4692339EEC803B69FDC33057837FBD233DB6B78920F7049B5F9CA9CFDD98351B9E7947265439F48429306D6CAB08774F2B7427A61DA757375D26C08B99BCAFB8085E41DBA0E49D142EEC164CC3153AB3119FB76033B3367289EC3 | 41 | 20180920084818 2 6 100 2047 5 F13B549CC6FE8517551E48FAEBA8D93EAC29403838E22ED862927B8AC9A9ABBA96AB7E306F0A01B75C0E960AB9DEA0F8519BAA2F13E541E194604848CBC9DEC51165E7A45897104B4A9C54C7337270A8B1B7F53B9DC203744ED2C634889C879E713BEA519452AE800B390FFBABF40B992AF659947D3ED78AA04DDF51C84D7B0824978643683F2153C99F682E30A25683CE180948F62E2CC1EFA1513CB16E74117334356E4E365132BB37BA41B4B79F148F26842A61F12D42B149F3FAB0041CB7DF7F53742544FA4E956D314B140F49786E23A5446C1F5CD55CB59D845774C6D6EF1CE5B7426F351FE906C69D23720BCFC5E250DE2786ACEBEC823E1DE69AD617 |
42 | 20180403042928 2 6 100 2047 2 EA0303D03FF69BCABDC25DDEA6AC9CFEE8C36EF48C7F2882B65D568B0D14A7DACCF4A6E8E905727C0B982FA4D7C4E59DDAF4704D0EC767D79B13A32467C8D39F615B5268E4338DD70C6072C702CDF6F39153C472E668ABF0B85B8D08454027AA52E3227C5BA017B2558F7A611F09C7BE5E28A472FAB51C71FF7E8C758CD5205C562F3674D941EF2DEC7F3B3F49C4CE3A9DD7B4275BD537BF04A4A8E98FAA42AD0A2280CFC0D4692339EEC803B69FDC33057837FBD233DB6B78920F7049B5F9CA9CFDD98351B9E7947265439F48429306D6CAB08774F2B7427A61DA757375D26C08B99BCAFB8085E41DBA0E49D142EEC164CC3153AB3119FB76033B3367519D23 | 42 | 20180920084821 2 6 100 2047 2 F13B549CC6FE8517551E48FAEBA8D93EAC29403838E22ED862927B8AC9A9ABBA96AB7E306F0A01B75C0E960AB9DEA0F8519BAA2F13E541E194604848CBC9DEC51165E7A45897104B4A9C54C7337270A8B1B7F53B9DC203744ED2C634889C879E713BEA519452AE800B390FFBABF40B992AF659947D3ED78AA04DDF51C84D7B0824978643683F2153C99F682E30A25683CE180948F62E2CC1EFA1513CB16E74117334356E4E365132BB37BA41B4B79F148F26842A61F12D42B149F3FAB0041CB7DF7F53742544FA4E956D314B140F49786E23A5446C1F5CD55CB59D845774C6D6EF1CE5B7426F351FE906C69D23720BCFC5E250DE2786ACEBEC823E1DE69AE223 |
43 | 20180403042946 2 6 100 2047 2 EA0303D03FF69BCABDC25DDEA6AC9CFEE8C36EF48C7F2882B65D568B0D14A7DACCF4A6E8E905727C0B982FA4D7C4E59DDAF4704D0EC767D79B13A32467C8D39F615B5268E4338DD70C6072C702CDF6F39153C472E668ABF0B85B8D08454027AA52E3227C5BA017B2558F7A611F09C7BE5E28A472FAB51C71FF7E8C758CD5205C562F3674D941EF2DEC7F3B3F49C4CE3A9DD7B4275BD537BF04A4A8E98FAA42AD0A2280CFC0D4692339EEC803B69FDC33057837FBD233DB6B78920F7049B5F9CA9CFDD98351B9E7947265439F48429306D6CAB08774F2B7427A61DA757375D26C08B99BCAFB8085E41DBA0E49D142EEC164CC3153AB3119FB76033B336758BFC3 | 43 | 20180920084833 2 6 100 2047 2 F13B549CC6FE8517551E48FAEBA8D93EAC29403838E22ED862927B8AC9A9ABBA96AB7E306F0A01B75C0E960AB9DEA0F8519BAA2F13E541E194604848CBC9DEC51165E7A45897104B4A9C54C7337270A8B1B7F53B9DC203744ED2C634889C879E713BEA519452AE800B390FFBABF40B992AF659947D3ED78AA04DDF51C84D7B0824978643683F2153C99F682E30A25683CE180948F62E2CC1EFA1513CB16E74117334356E4E365132BB37BA41B4B79F148F26842A61F12D42B149F3FAB0041CB7DF7F53742544FA4E956D314B140F49786E23A5446C1F5CD55CB59D845774C6D6EF1CE5B7426F351FE906C69D23720BCFC5E250DE2786ACEBEC823E1DE6ADE1B3 |
44 | 20180403043032 2 6 100 2047 2 EA0303D03FF69BCABDC25DDEA6AC9CFEE8C36EF48C7F2882B65D568B0D14A7DACCF4A6E8E905727C0B982FA4D7C4E59DDAF4704D0EC767D79B13A32467C8D39F615B5268E4338DD70C6072C702CDF6F39153C472E668ABF0B85B8D08454027AA52E3227C5BA017B2558F7A611F09C7BE5E28A472FAB51C71FF7E8C758CD5205C562F3674D941EF2DEC7F3B3F49C4CE3A9DD7B4275BD537BF04A4A8E98FAA42AD0A2280CFC0D4692339EEC803B69FDC33057837FBD233DB6B78920F7049B5F9CA9CFDD98351B9E7947265439F48429306D6CAB08774F2B7427A61DA757375D26C08B99BCAFB8085E41DBA0E49D142EEC164CC3153AB3119FB76033B336774A8EB | 44 | 20180920084844 2 6 100 2047 5 F13B549CC6FE8517551E48FAEBA8D93EAC29403838E22ED862927B8AC9A9ABBA96AB7E306F0A01B75C0E960AB9DEA0F8519BAA2F13E541E194604848CBC9DEC51165E7A45897104B4A9C54C7337270A8B1B7F53B9DC203744ED2C634889C879E713BEA519452AE800B390FFBABF40B992AF659947D3ED78AA04DDF51C84D7B0824978643683F2153C99F682E30A25683CE180948F62E2CC1EFA1513CB16E74117334356E4E365132BB37BA41B4B79F148F26842A61F12D42B149F3FAB0041CB7DF7F53742544FA4E956D314B140F49786E23A5446C1F5CD55CB59D845774C6D6EF1CE5B7426F351FE906C69D23720BCFC5E250DE2786ACEBEC823E1DE6BD0ACF |
45 | 20180403043218 2 6 100 2047 5 EA0303D03FF69BCABDC25DDEA6AC9CFEE8C36EF48C7F2882B65D568B0D14A7DACCF4A6E8E905727C0B982FA4D7C4E59DDAF4704D0EC767D79B13A32467C8D39F615B5268E4338DD70C6072C702CDF6F39153C472E668ABF0B85B8D08454027AA52E3227C5BA017B2558F7A611F09C7BE5E28A472FAB51C71FF7E8C758CD5205C562F3674D941EF2DEC7F3B3F49C4CE3A9DD7B4275BD537BF04A4A8E98FAA42AD0A2280CFC0D4692339EEC803B69FDC33057837FBD233DB6B78920F7049B5F9CA9CFDD98351B9E7947265439F48429306D6CAB08774F2B7427A61DA757375D26C08B99BCAFB8085E41DBA0E49D142EEC164CC3153AB3119FB76033B3367BAAE3F | 45 | 20180920085036 2 6 100 2047 2 F13B549CC6FE8517551E48FAEBA8D93EAC29403838E22ED862927B8AC9A9ABBA96AB7E306F0A01B75C0E960AB9DEA0F8519BAA2F13E541E194604848CBC9DEC51165E7A45897104B4A9C54C7337270A8B1B7F53B9DC203744ED2C634889C879E713BEA519452AE800B390FFBABF40B992AF659947D3ED78AA04DDF51C84D7B0824978643683F2153C99F682E30A25683CE180948F62E2CC1EFA1513CB16E74117334356E4E365132BB37BA41B4B79F148F26842A61F12D42B149F3FAB0041CB7DF7F53742544FA4E956D314B140F49786E23A5446C1F5CD55CB59D845774C6D6EF1CE5B7426F351FE906C69D23720BCFC5E250DE2786ACEBEC823E1DE7ACC18B |
46 | 20180403043245 2 6 100 2047 2 EA0303D03FF69BCABDC25DDEA6AC9CFEE8C36EF48C7F2882B65D568B0D14A7DACCF4A6E8E905727C0B982FA4D7C4E59DDAF4704D0EC767D79B13A32467C8D39F615B5268E4338DD70C6072C702CDF6F39153C472E668ABF0B85B8D08454027AA52E3227C5BA017B2558F7A611F09C7BE5E28A472FAB51C71FF7E8C758CD5205C562F3674D941EF2DEC7F3B3F49C4CE3A9DD7B4275BD537BF04A4A8E98FAA42AD0A2280CFC0D4692339EEC803B69FDC33057837FBD233DB6B78920F7049B5F9CA9CFDD98351B9E7947265439F48429306D6CAB08774F2B7427A61DA757375D26C08B99BCAFB8085E41DBA0E49D142EEC164CC3153AB3119FB76033B3367C6B5CB | 46 | 20180920085043 2 6 100 2047 2 F13B549CC6FE8517551E48FAEBA8D93EAC29403838E22ED862927B8AC9A9ABBA96AB7E306F0A01B75C0E960AB9DEA0F8519BAA2F13E541E194604848CBC9DEC51165E7A45897104B4A9C54C7337270A8B1B7F53B9DC203744ED2C634889C879E713BEA519452AE800B390FFBABF40B992AF659947D3ED78AA04DDF51C84D7B0824978643683F2153C99F682E30A25683CE180948F62E2CC1EFA1513CB16E74117334356E4E365132BB37BA41B4B79F148F26842A61F12D42B149F3FAB0041CB7DF7F53742544FA4E956D314B140F49786E23A5446C1F5CD55CB59D845774C6D6EF1CE5B7426F351FE906C69D23720BCFC5E250DE2786ACEBEC823E1DE7B37CAB |
47 | 20180403043522 2 6 100 2047 2 EA0303D03FF69BCABDC25DDEA6AC9CFEE8C36EF48C7F2882B65D568B0D14A7DACCF4A6E8E905727C0B982FA4D7C4E59DDAF4704D0EC767D79B13A32467C8D39F615B5268E4338DD70C6072C702CDF6F39153C472E668ABF0B85B8D08454027AA52E3227C5BA017B2558F7A611F09C7BE5E28A472FAB51C71FF7E8C758CD5205C562F3674D941EF2DEC7F3B3F49C4CE3A9DD7B4275BD537BF04A4A8E98FAA42AD0A2280CFC0D4692339EEC803B69FDC33057837FBD233DB6B78920F7049B5F9CA9CFDD98351B9E7947265439F48429306D6CAB08774F2B7427A61DA757375D26C08B99BCAFB8085E41DBA0E49D142EEC164CC3153AB3119FB76033B3368340BB3 | 47 | 20180920085052 2 6 100 2047 5 F13B549CC6FE8517551E48FAEBA8D93EAC29403838E22ED862927B8AC9A9ABBA96AB7E306F0A01B75C0E960AB9DEA0F8519BAA2F13E541E194604848CBC9DEC51165E7A45897104B4A9C54C7337270A8B1B7F53B9DC203744ED2C634889C879E713BEA519452AE800B390FFBABF40B992AF659947D3ED78AA04DDF51C84D7B0824978643683F2153C99F682E30A25683CE180948F62E2CC1EFA1513CB16E74117334356E4E365132BB37BA41B4B79F148F26842A61F12D42B149F3FAB0041CB7DF7F53742544FA4E956D314B140F49786E23A5446C1F5CD55CB59D845774C6D6EF1CE5B7426F351FE906C69D23720BCFC5E250DE2786ACEBEC823E1DE7BF34CF |
48 | 20180403043954 2 6 100 2047 2 EA0303D03FF69BCABDC25DDEA6AC9CFEE8C36EF48C7F2882B65D568B0D14A7DACCF4A6E8E905727C0B982FA4D7C4E59DDAF4704D0EC767D79B13A32467C8D39F615B5268E4338DD70C6072C702CDF6F39153C472E668ABF0B85B8D08454027AA52E3227C5BA017B2558F7A611F09C7BE5E28A472FAB51C71FF7E8C758CD5205C562F3674D941EF2DEC7F3B3F49C4CE3A9DD7B4275BD537BF04A4A8E98FAA42AD0A2280CFC0D4692339EEC803B69FDC33057837FBD233DB6B78920F7049B5F9CA9CFDD98351B9E7947265439F48429306D6CAB08774F2B7427A61DA757375D26C08B99BCAFB8085E41DBA0E49D142EEC164CC3153AB3119FB76033B33690CEBC3 | 48 | 20180920085121 2 6 100 2047 2 F13B549CC6FE8517551E48FAEBA8D93EAC29403838E22ED862927B8AC9A9ABBA96AB7E306F0A01B75C0E960AB9DEA0F8519BAA2F13E541E194604848CBC9DEC51165E7A45897104B4A9C54C7337270A8B1B7F53B9DC203744ED2C634889C879E713BEA519452AE800B390FFBABF40B992AF659947D3ED78AA04DDF51C84D7B0824978643683F2153C99F682E30A25683CE180948F62E2CC1EFA1513CB16E74117334356E4E365132BB37BA41B4B79F148F26842A61F12D42B149F3FAB0041CB7DF7F53742544FA4E956D314B140F49786E23A5446C1F5CD55CB59D845774C6D6EF1CE5B7426F351FE906C69D23720BCFC5E250DE2786ACEBEC823E1DE7F719A3 |
49 | 20180403044107 2 6 100 2047 2 EA0303D03FF69BCABDC25DDEA6AC9CFEE8C36EF48C7F2882B65D568B0D14A7DACCF4A6E8E905727C0B982FA4D7C4E59DDAF4704D0EC767D79B13A32467C8D39F615B5268E4338DD70C6072C702CDF6F39153C472E668ABF0B85B8D08454027AA52E3227C5BA017B2558F7A611F09C7BE5E28A472FAB51C71FF7E8C758CD5205C562F3674D941EF2DEC7F3B3F49C4CE3A9DD7B4275BD537BF04A4A8E98FAA42AD0A2280CFC0D4692339EEC803B69FDC33057837FBD233DB6B78920F7049B5F9CA9CFDD98351B9E7947265439F48429306D6CAB08774F2B7427A61DA757375D26C08B99BCAFB8085E41DBA0E49D142EEC164CC3153AB3119FB76033B33693DA563 | 49 | 20180920085126 2 6 100 2047 5 F13B549CC6FE8517551E48FAEBA8D93EAC29403838E22ED862927B8AC9A9ABBA96AB7E306F0A01B75C0E960AB9DEA0F8519BAA2F13E541E194604848CBC9DEC51165E7A45897104B4A9C54C7337270A8B1B7F53B9DC203744ED2C634889C879E713BEA519452AE800B390FFBABF40B992AF659947D3ED78AA04DDF51C84D7B0824978643683F2153C99F682E30A25683CE180948F62E2CC1EFA1513CB16E74117334356E4E365132BB37BA41B4B79F148F26842A61F12D42B149F3FAB0041CB7DF7F53742544FA4E956D314B140F49786E23A5446C1F5CD55CB59D845774C6D6EF1CE5B7426F351FE906C69D23720BCFC5E250DE2786ACEBEC823E1DE7F7A70F |
50 | 20180403044245 2 6 100 2047 2 EA0303D03FF69BCABDC25DDEA6AC9CFEE8C36EF48C7F2882B65D568B0D14A7DACCF4A6E8E905727C0B982FA4D7C4E59DDAF4704D0EC767D79B13A32467C8D39F615B5268E4338DD70C6072C702CDF6F39153C472E668ABF0B85B8D08454027AA52E3227C5BA017B2558F7A611F09C7BE5E28A472FAB51C71FF7E8C758CD5205C562F3674D941EF2DEC7F3B3F49C4CE3A9DD7B4275BD537BF04A4A8E98FAA42AD0A2280CFC0D4692339EEC803B69FDC33057837FBD233DB6B78920F7049B5F9CA9CFDD98351B9E7947265439F48429306D6CAB08774F2B7427A61DA757375D26C08B99BCAFB8085E41DBA0E49D142EEC164CC3153AB3119FB76033B33697A63FB | 50 | 20180920085132 2 6 100 2047 2 F13B549CC6FE8517551E48FAEBA8D93EAC29403838E22ED862927B8AC9A9ABBA96AB7E306F0A01B75C0E960AB9DEA0F8519BAA2F13E541E194604848CBC9DEC51165E7A45897104B4A9C54C7337270A8B1B7F53B9DC203744ED2C634889C879E713BEA519452AE800B390FFBABF40B992AF659947D3ED78AA04DDF51C84D7B0824978643683F2153C99F682E30A25683CE180948F62E2CC1EFA1513CB16E74117334356E4E365132BB37BA41B4B79F148F26842A61F12D42B149F3FAB0041CB7DF7F53742544FA4E956D314B140F49786E23A5446C1F5CD55CB59D845774C6D6EF1CE5B7426F351FE906C69D23720BCFC5E250DE2786ACEBEC823E1DE7FD3383 |
51 | 20180403044527 2 6 100 2047 5 EA0303D03FF69BCABDC25DDEA6AC9CFEE8C36EF48C7F2882B65D568B0D14A7DACCF4A6E8E905727C0B982FA4D7C4E59DDAF4704D0EC767D79B13A32467C8D39F615B5268E4338DD70C6072C702CDF6F39153C472E668ABF0B85B8D08454027AA52E3227C5BA017B2558F7A611F09C7BE5E28A472FAB51C71FF7E8C758CD5205C562F3674D941EF2DEC7F3B3F49C4CE3A9DD7B4275BD537BF04A4A8E98FAA42AD0A2280CFC0D4692339EEC803B69FDC33057837FBD233DB6B78920F7049B5F9CA9CFDD98351B9E7947265439F48429306D6CAB08774F2B7427A61DA757375D26C08B99BCAFB8085E41DBA0E49D142EEC164CC3153AB3119FB76033B3369F3CAFF | 51 | 20180920085137 2 6 100 2047 2 F13B549CC6FE8517551E48FAEBA8D93EAC29403838E22ED862927B8AC9A9ABBA96AB7E306F0A01B75C0E960AB9DEA0F8519BAA2F13E541E194604848CBC9DEC51165E7A45897104B4A9C54C7337270A8B1B7F53B9DC203744ED2C634889C879E713BEA519452AE800B390FFBABF40B992AF659947D3ED78AA04DDF51C84D7B0824978643683F2153C99F682E30A25683CE180948F62E2CC1EFA1513CB16E74117334356E4E365132BB37BA41B4B79F148F26842A61F12D42B149F3FAB0041CB7DF7F53742544FA4E956D314B140F49786E23A5446C1F5CD55CB59D845774C6D6EF1CE5B7426F351FE906C69D23720BCFC5E250DE2786ACEBEC823E1DE7FF6C03 |
52 | 20180403044559 2 6 100 2047 2 EA0303D03FF69BCABDC25DDEA6AC9CFEE8C36EF48C7F2882B65D568B0D14A7DACCF4A6E8E905727C0B982FA4D7C4E59DDAF4704D0EC767D79B13A32467C8D39F615B5268E4338DD70C6072C702CDF6F39153C472E668ABF0B85B8D08454027AA52E3227C5BA017B2558F7A611F09C7BE5E28A472FAB51C71FF7E8C758CD5205C562F3674D941EF2DEC7F3B3F49C4CE3A9DD7B4275BD537BF04A4A8E98FAA42AD0A2280CFC0D4692339EEC803B69FDC33057837FBD233DB6B78920F7049B5F9CA9CFDD98351B9E7947265439F48429306D6CAB08774F2B7427A61DA757375D26C08B99BCAFB8085E41DBA0E49D142EEC164CC3153AB3119FB76033B336A09E6EB | 52 | 20180920085143 2 6 100 2047 5 F13B549CC6FE8517551E48FAEBA8D93EAC29403838E22ED862927B8AC9A9ABBA96AB7E306F0A01B75C0E960AB9DEA0F8519BAA2F13E541E194604848CBC9DEC51165E7A45897104B4A9C54C7337270A8B1B7F53B9DC203744ED2C634889C879E713BEA519452AE800B390FFBABF40B992AF659947D3ED78AA04DDF51C84D7B0824978643683F2153C99F682E30A25683CE180948F62E2CC1EFA1513CB16E74117334356E4E365132BB37BA41B4B79F148F26842A61F12D42B149F3FAB0041CB7DF7F53742544FA4E956D314B140F49786E23A5446C1F5CD55CB59D845774C6D6EF1CE5B7426F351FE906C69D23720BCFC5E250DE2786ACEBEC823E1DE806800F |
53 | 20180403044611 2 6 100 2047 2 EA0303D03FF69BCABDC25DDEA6AC9CFEE8C36EF48C7F2882B65D568B0D14A7DACCF4A6E8E905727C0B982FA4D7C4E59DDAF4704D0EC767D79B13A32467C8D39F615B5268E4338DD70C6072C702CDF6F39153C472E668ABF0B85B8D08454027AA52E3227C5BA017B2558F7A611F09C7BE5E28A472FAB51C71FF7E8C758CD5205C562F3674D941EF2DEC7F3B3F49C4CE3A9DD7B4275BD537BF04A4A8E98FAA42AD0A2280CFC0D4692339EEC803B69FDC33057837FBD233DB6B78920F7049B5F9CA9CFDD98351B9E7947265439F48429306D6CAB08774F2B7427A61DA757375D26C08B99BCAFB8085E41DBA0E49D142EEC164CC3153AB3119FB76033B336A0C4F53 | 53 | 20180920085147 2 6 100 2047 2 F13B549CC6FE8517551E48FAEBA8D93EAC29403838E22ED862927B8AC9A9ABBA96AB7E306F0A01B75C0E960AB9DEA0F8519BAA2F13E541E194604848CBC9DEC51165E7A45897104B4A9C54C7337270A8B1B7F53B9DC203744ED2C634889C879E713BEA519452AE800B390FFBABF40B992AF659947D3ED78AA04DDF51C84D7B0824978643683F2153C99F682E30A25683CE180948F62E2CC1EFA1513CB16E74117334356E4E365132BB37BA41B4B79F148F26842A61F12D42B149F3FAB0041CB7DF7F53742544FA4E956D314B140F49786E23A5446C1F5CD55CB59D845774C6D6EF1CE5B7426F351FE906C69D23720BCFC5E250DE2786ACEBEC823E1DE807F56B |
54 | 20180403044719 2 6 100 2047 5 EA0303D03FF69BCABDC25DDEA6AC9CFEE8C36EF48C7F2882B65D568B0D14A7DACCF4A6E8E905727C0B982FA4D7C4E59DDAF4704D0EC767D79B13A32467C8D39F615B5268E4338DD70C6072C702CDF6F39153C472E668ABF0B85B8D08454027AA52E3227C5BA017B2558F7A611F09C7BE5E28A472FAB51C71FF7E8C758CD5205C562F3674D941EF2DEC7F3B3F49C4CE3A9DD7B4275BD537BF04A4A8E98FAA42AD0A2280CFC0D4692339EEC803B69FDC33057837FBD233DB6B78920F7049B5F9CA9CFDD98351B9E7947265439F48429306D6CAB08774F2B7427A61DA757375D26C08B99BCAFB8085E41DBA0E49D142EEC164CC3153AB3119FB76033B336A4348BF | 54 | 20180920085153 2 6 100 2047 5 F13B549CC6FE8517551E48FAEBA8D93EAC29403838E22ED862927B8AC9A9ABBA96AB7E306F0A01B75C0E960AB9DEA0F8519BAA2F13E541E194604848CBC9DEC51165E7A45897104B4A9C54C7337270A8B1B7F53B9DC203744ED2C634889C879E713BEA519452AE800B390FFBABF40B992AF659947D3ED78AA04DDF51C84D7B0824978643683F2153C99F682E30A25683CE180948F62E2CC1EFA1513CB16E74117334356E4E365132BB37BA41B4B79F148F26842A61F12D42B149F3FAB0041CB7DF7F53742544FA4E956D314B140F49786E23A5446C1F5CD55CB59D845774C6D6EF1CE5B7426F351FE906C69D23720BCFC5E250DE2786ACEBEC823E1DE80BD7DF |
55 | 20180403044820 2 6 100 2047 2 EA0303D03FF69BCABDC25DDEA6AC9CFEE8C36EF48C7F2882B65D568B0D14A7DACCF4A6E8E905727C0B982FA4D7C4E59DDAF4704D0EC767D79B13A32467C8D39F615B5268E4338DD70C6072C702CDF6F39153C472E668ABF0B85B8D08454027AA52E3227C5BA017B2558F7A611F09C7BE5E28A472FAB51C71FF7E8C758CD5205C562F3674D941EF2DEC7F3B3F49C4CE3A9DD7B4275BD537BF04A4A8E98FAA42AD0A2280CFC0D4692339EEC803B69FDC33057837FBD233DB6B78920F7049B5F9CA9CFDD98351B9E7947265439F48429306D6CAB08774F2B7427A61DA757375D26C08B99BCAFB8085E41DBA0E49D142EEC164CC3153AB3119FB76033B336A6E3193 | 55 | 20180920085205 2 6 100 2047 5 F13B549CC6FE8517551E48FAEBA8D93EAC29403838E22ED862927B8AC9A9ABBA96AB7E306F0A01B75C0E960AB9DEA0F8519BAA2F13E541E194604848CBC9DEC51165E7A45897104B4A9C54C7337270A8B1B7F53B9DC203744ED2C634889C879E713BEA519452AE800B390FFBABF40B992AF659947D3ED78AA04DDF51C84D7B0824978643683F2153C99F682E30A25683CE180948F62E2CC1EFA1513CB16E74117334356E4E365132BB37BA41B4B79F148F26842A61F12D42B149F3FAB0041CB7DF7F53742544FA4E956D314B140F49786E23A5446C1F5CD55CB59D845774C6D6EF1CE5B7426F351FE906C69D23720BCFC5E250DE2786ACEBEC823E1DE81F7F6F |
56 | 20180403044844 2 6 100 2047 5 EA0303D03FF69BCABDC25DDEA6AC9CFEE8C36EF48C7F2882B65D568B0D14A7DACCF4A6E8E905727C0B982FA4D7C4E59DDAF4704D0EC767D79B13A32467C8D39F615B5268E4338DD70C6072C702CDF6F39153C472E668ABF0B85B8D08454027AA52E3227C5BA017B2558F7A611F09C7BE5E28A472FAB51C71FF7E8C758CD5205C562F3674D941EF2DEC7F3B3F49C4CE3A9DD7B4275BD537BF04A4A8E98FAA42AD0A2280CFC0D4692339EEC803B69FDC33057837FBD233DB6B78920F7049B5F9CA9CFDD98351B9E7947265439F48429306D6CAB08774F2B7427A61DA757375D26C08B99BCAFB8085E41DBA0E49D142EEC164CC3153AB3119FB76033B336A7A9C7F | 56 | 20180920085257 2 6 100 2047 5 F13B549CC6FE8517551E48FAEBA8D93EAC29403838E22ED862927B8AC9A9ABBA96AB7E306F0A01B75C0E960AB9DEA0F8519BAA2F13E541E194604848CBC9DEC51165E7A45897104B4A9C54C7337270A8B1B7F53B9DC203744ED2C634889C879E713BEA519452AE800B390FFBABF40B992AF659947D3ED78AA04DDF51C84D7B0824978643683F2153C99F682E30A25683CE180948F62E2CC1EFA1513CB16E74117334356E4E365132BB37BA41B4B79F148F26842A61F12D42B149F3FAB0041CB7DF7F53742544FA4E956D314B140F49786E23A5446C1F5CD55CB59D845774C6D6EF1CE5B7426F351FE906C69D23720BCFC5E250DE2786ACEBEC823E1DE88D9BB7 |
57 | 20180403045235 2 6 100 2047 2 EA0303D03FF69BCABDC25DDEA6AC9CFEE8C36EF48C7F2882B65D568B0D14A7DACCF4A6E8E905727C0B982FA4D7C4E59DDAF4704D0EC767D79B13A32467C8D39F615B5268E4338DD70C6072C702CDF6F39153C472E668ABF0B85B8D08454027AA52E3227C5BA017B2558F7A611F09C7BE5E28A472FAB51C71FF7E8C758CD5205C562F3674D941EF2DEC7F3B3F49C4CE3A9DD7B4275BD537BF04A4A8E98FAA42AD0A2280CFC0D4692339EEC803B69FDC33057837FBD233DB6B78920F7049B5F9CA9CFDD98351B9E7947265439F48429306D6CAB08774F2B7427A61DA757375D26C08B99BCAFB8085E41DBA0E49D142EEC164CC3153AB3119FB76033B336B2E2173 | 57 | 20180920085403 2 6 100 2047 5 FAEA3B642004FC1DB17244B7DE6AE7EFEA5B3AB4D54A13674A0E4B460E9D0716E6313530F9BA5D9C959562FD4A1D23FC92D99F1060A3C1B374050C77152C461AEC19CBE7AD6818C48CC9568FF8F4E45367C1053D6DEBCF76BD4DE8E3BA808FA43A3649722202C83417ED96F423DCEA18BB3F99E4598C797D05E0D3E6D2E27A5EC0B10304BB7643AEA01DD989AE84AA4B08AC3AA5613C222C41F5CD46EAF191343F1D07664F2D6E7BC876BFC46CFEFBE50991EBC15664112F6DC8D58D6665B9BB9F974D7210AB8E04F963128E43D92B6D645A963121058BA29C668AC5DA81DF3CC17908D240E8771EB52E4396AB6DA2157F3EE55D0C0E20A52C560FD79F990A17 |
58 | 20180403045518 2 6 100 2047 2 EA0303D03FF69BCABDC25DDEA6AC9CFEE8C36EF48C7F2882B65D568B0D14A7DACCF4A6E8E905727C0B982FA4D7C4E59DDAF4704D0EC767D79B13A32467C8D39F615B5268E4338DD70C6072C702CDF6F39153C472E668ABF0B85B8D08454027AA52E3227C5BA017B2558F7A611F09C7BE5E28A472FAB51C71FF7E8C758CD5205C562F3674D941EF2DEC7F3B3F49C4CE3A9DD7B4275BD537BF04A4A8E98FAA42AD0A2280CFC0D4692339EEC803B69FDC33057837FBD233DB6B78920F7049B5F9CA9CFDD98351B9E7947265439F48429306D6CAB08774F2B7427A61DA757375D26C08B99BCAFB8085E41DBA0E49D142EEC164CC3153AB3119FB76033B336BAD847B | 58 | 20180920085428 2 6 100 2047 2 FAEA3B642004FC1DB17244B7DE6AE7EFEA5B3AB4D54A13674A0E4B460E9D0716E6313530F9BA5D9C959562FD4A1D23FC92D99F1060A3C1B374050C77152C461AEC19CBE7AD6818C48CC9568FF8F4E45367C1053D6DEBCF76BD4DE8E3BA808FA43A3649722202C83417ED96F423DCEA18BB3F99E4598C797D05E0D3E6D2E27A5EC0B10304BB7643AEA01DD989AE84AA4B08AC3AA5613C222C41F5CD46EAF191343F1D07664F2D6E7BC876BFC46CFEFBE50991EBC15664112F6DC8D58D6665B9BB9F974D7210AB8E04F963128E43D92B6D645A963121058BA29C668AC5DA81DF3CC17908D240E8771EB52E4396AB6DA2157F3EE55D0C0E20A52C560FD79FC4B55B |
59 | 20180403045629 2 6 100 2047 2 EA0303D03FF69BCABDC25DDEA6AC9CFEE8C36EF48C7F2882B65D568B0D14A7DACCF4A6E8E905727C0B982FA4D7C4E59DDAF4704D0EC767D79B13A32467C8D39F615B5268E4338DD70C6072C702CDF6F39153C472E668ABF0B85B8D08454027AA52E3227C5BA017B2558F7A611F09C7BE5E28A472FAB51C71FF7E8C758CD5205C562F3674D941EF2DEC7F3B3F49C4CE3A9DD7B4275BD537BF04A4A8E98FAA42AD0A2280CFC0D4692339EEC803B69FDC33057837FBD233DB6B78920F7049B5F9CA9CFDD98351B9E7947265439F48429306D6CAB08774F2B7427A61DA757375D26C08B99BCAFB8085E41DBA0E49D142EEC164CC3153AB3119FB76033B336BE29A4B | 59 | 20180920085452 2 6 100 2047 5 FAEA3B642004FC1DB17244B7DE6AE7EFEA5B3AB4D54A13674A0E4B460E9D0716E6313530F9BA5D9C959562FD4A1D23FC92D99F1060A3C1B374050C77152C461AEC19CBE7AD6818C48CC9568FF8F4E45367C1053D6DEBCF76BD4DE8E3BA808FA43A3649722202C83417ED96F423DCEA18BB3F99E4598C797D05E0D3E6D2E27A5EC0B10304BB7643AEA01DD989AE84AA4B08AC3AA5613C222C41F5CD46EAF191343F1D07664F2D6E7BC876BFC46CFEFBE50991EBC15664112F6DC8D58D6665B9BB9F974D7210AB8E04F963128E43D92B6D645A963121058BA29C668AC5DA81DF3CC17908D240E8771EB52E4396AB6DA2157F3EE55D0C0E20A52C560FD79FF25EFF |
60 | 20180403045953 2 6 100 2047 2 EA0303D03FF69BCABDC25DDEA6AC9CFEE8C36EF48C7F2882B65D568B0D14A7DACCF4A6E8E905727C0B982FA4D7C4E59DDAF4704D0EC767D79B13A32467C8D39F615B5268E4338DD70C6072C702CDF6F39153C472E668ABF0B85B8D08454027AA52E3227C5BA017B2558F7A611F09C7BE5E28A472FAB51C71FF7E8C758CD5205C562F3674D941EF2DEC7F3B3F49C4CE3A9DD7B4275BD537BF04A4A8E98FAA42AD0A2280CFC0D4692339EEC803B69FDC33057837FBD233DB6B78920F7049B5F9CA9CFDD98351B9E7947265439F48429306D6CAB08774F2B7427A61DA757375D26C08B99BCAFB8085E41DBA0E49D142EEC164CC3153AB3119FB76033B336C865153 | 60 | 20180920085519 2 6 100 2047 2 FAEA3B642004FC1DB17244B7DE6AE7EFEA5B3AB4D54A13674A0E4B460E9D0716E6313530F9BA5D9C959562FD4A1D23FC92D99F1060A3C1B374050C77152C461AEC19CBE7AD6818C48CC9568FF8F4E45367C1053D6DEBCF76BD4DE8E3BA808FA43A3649722202C83417ED96F423DCEA18BB3F99E4598C797D05E0D3E6D2E27A5EC0B10304BB7643AEA01DD989AE84AA4B08AC3AA5613C222C41F5CD46EAF191343F1D07664F2D6E7BC876BFC46CFEFBE50991EBC15664112F6DC8D58D6665B9BB9F974D7210AB8E04F963128E43D92B6D645A963121058BA29C668AC5DA81DF3CC17908D240E8771EB52E4396AB6DA2157F3EE55D0C0E20A52C560FD7A0250433 |
61 | 20180403050042 2 6 100 2047 5 EA0303D03FF69BCABDC25DDEA6AC9CFEE8C36EF48C7F2882B65D568B0D14A7DACCF4A6E8E905727C0B982FA4D7C4E59DDAF4704D0EC767D79B13A32467C8D39F615B5268E4338DD70C6072C702CDF6F39153C472E668ABF0B85B8D08454027AA52E3227C5BA017B2558F7A611F09C7BE5E28A472FAB51C71FF7E8C758CD5205C562F3674D941EF2DEC7F3B3F49C4CE3A9DD7B4275BD537BF04A4A8E98FAA42AD0A2280CFC0D4692339EEC803B69FDC33057837FBD233DB6B78920F7049B5F9CA9CFDD98351B9E7947265439F48429306D6CAB08774F2B7427A61DA757375D26C08B99BCAFB8085E41DBA0E49D142EEC164CC3153AB3119FB76033B336CA6948F | 61 | 20180920085620 2 6 100 2047 2 FAEA3B642004FC1DB17244B7DE6AE7EFEA5B3AB4D54A13674A0E4B460E9D0716E6313530F9BA5D9C959562FD4A1D23FC92D99F1060A3C1B374050C77152C461AEC19CBE7AD6818C48CC9568FF8F4E45367C1053D6DEBCF76BD4DE8E3BA808FA43A3649722202C83417ED96F423DCEA18BB3F99E4598C797D05E0D3E6D2E27A5EC0B10304BB7643AEA01DD989AE84AA4B08AC3AA5613C222C41F5CD46EAF191343F1D07664F2D6E7BC876BFC46CFEFBE50991EBC15664112F6DC8D58D6665B9BB9F974D7210AB8E04F963128E43D92B6D645A963121058BA29C668AC5DA81DF3CC17908D240E8771EB52E4396AB6DA2157F3EE55D0C0E20A52C560FD7A0A900D3 |
62 | 20180403055314 2 6 100 3071 2 FF8DCF143A9E3CC447F8D3D03206E386572BFAC54F4BDE233C8B1223CC9CBA99689328E35F8F83F0922A9F0AB33E7C7892E940377CE0064700ECDCC8532F0FEF888913E1894054707878511DD84455BEACCA35E8418D6CAD03111BC1842581D40E280A13055030CB35339E2A0E422DB9EC47916AD6302BE248AD5EBCCE7CF087CB2285A6B8D227DC7130ADB14163BE4D1AA779DBCD36710AA080F219B535B1887392DE9EF44116C933F5CA2234A7A82A8A48F1691A39434D70E3C3995AEE7CEAFF86DAA2326CF367B7E3C7939E4B78A00EE58E52F7BB36C8A89525CA4D44173E30AA6B40FD0B60C29F6CBC763241AC5DA16E2A9FB9B78F360EED32704B686AD6D40DAE8127C9351A2B21C140292E77592A7159000FB2AA9561DA10B2AC3167CC8E41C10CDF86E9041A3A114F42EF4AA5134C716893E81C3A7488ED5131073FC76B20358549BF1B0858B571550663DA9CF73B7B28BF9CA1FAF8EC96966D493C174B03DBCF9B5470DD9A79FB3E14A0B73B6E6C09D531886ACF60E51B57012EEDBB | 62 | 20180920085639 2 6 100 2047 5 FAEA3B642004FC1DB17244B7DE6AE7EFEA5B3AB4D54A13674A0E4B460E9D0716E6313530F9BA5D9C959562FD4A1D23FC92D99F1060A3C1B374050C77152C461AEC19CBE7AD6818C48CC9568FF8F4E45367C1053D6DEBCF76BD4DE8E3BA808FA43A3649722202C83417ED96F423DCEA18BB3F99E4598C797D05E0D3E6D2E27A5EC0B10304BB7643AEA01DD989AE84AA4B08AC3AA5613C222C41F5CD46EAF191343F1D07664F2D6E7BC876BFC46CFEFBE50991EBC15664112F6DC8D58D6665B9BB9F974D7210AB8E04F963128E43D92B6D645A963121058BA29C668AC5DA81DF3CC17908D240E8771EB52E4396AB6DA2157F3EE55D0C0E20A52C560FD7A0C7B767 |
63 | 20180403055637 2 6 100 3071 2 FF8DCF143A9E3CC447F8D3D03206E386572BFAC54F4BDE233C8B1223CC9CBA99689328E35F8F83F0922A9F0AB33E7C7892E940377CE0064700ECDCC8532F0FEF888913E1894054707878511DD84455BEACCA35E8418D6CAD03111BC1842581D40E280A13055030CB35339E2A0E422DB9EC47916AD6302BE248AD5EBCCE7CF087CB2285A6B8D227DC7130ADB14163BE4D1AA779DBCD36710AA080F219B535B1887392DE9EF44116C933F5CA2234A7A82A8A48F1691A39434D70E3C3995AEE7CEAFF86DAA2326CF367B7E3C7939E4B78A00EE58E52F7BB36C8A89525CA4D44173E30AA6B40FD0B60C29F6CBC763241AC5DA16E2A9FB9B78F360EED32704B686AD6D40DAE8127C9351A2B21C140292E77592A7159000FB2AA9561DA10B2AC3167CC8E41C10CDF86E9041A3A114F42EF4AA5134C716893E81C3A7488ED5131073FC76B20358549BF1B0858B571550663DA9CF73B7B28BF9CA1FAF8EC96966D493C174B03DBCF9B5470DD9A79FB3E14A0B73B6E6C09D531886ACF60E51B57015FFFAB | 63 | 20180920085651 2 6 100 2047 2 FAEA3B642004FC1DB17244B7DE6AE7EFEA5B3AB4D54A13674A0E4B460E9D0716E6313530F9BA5D9C959562FD4A1D23FC92D99F1060A3C1B374050C77152C461AEC19CBE7AD6818C48CC9568FF8F4E45367C1053D6DEBCF76BD4DE8E3BA808FA43A3649722202C83417ED96F423DCEA18BB3F99E4598C797D05E0D3E6D2E27A5EC0B10304BB7643AEA01DD989AE84AA4B08AC3AA5613C222C41F5CD46EAF191343F1D07664F2D6E7BC876BFC46CFEFBE50991EBC15664112F6DC8D58D6665B9BB9F974D7210AB8E04F963128E43D92B6D645A963121058BA29C668AC5DA81DF3CC17908D240E8771EB52E4396AB6DA2157F3EE55D0C0E20A52C560FD7A0DB38C3 |
64 | 20180403060753 2 6 100 3071 2 FF8DCF143A9E3CC447F8D3D03206E386572BFAC54F4BDE233C8B1223CC9CBA99689328E35F8F83F0922A9F0AB33E7C7892E940377CE0064700ECDCC8532F0FEF888913E1894054707878511DD84455BEACCA35E8418D6CAD03111BC1842581D40E280A13055030CB35339E2A0E422DB9EC47916AD6302BE248AD5EBCCE7CF087CB2285A6B8D227DC7130ADB14163BE4D1AA779DBCD36710AA080F219B535B1887392DE9EF44116C933F5CA2234A7A82A8A48F1691A39434D70E3C3995AEE7CEAFF86DAA2326CF367B7E3C7939E4B78A00EE58E52F7BB36C8A89525CA4D44173E30AA6B40FD0B60C29F6CBC763241AC5DA16E2A9FB9B78F360EED32704B686AD6D40DAE8127C9351A2B21C140292E77592A7159000FB2AA9561DA10B2AC3167CC8E41C10CDF86E9041A3A114F42EF4AA5134C716893E81C3A7488ED5131073FC76B20358549BF1B0858B571550663DA9CF73B7B28BF9CA1FAF8EC96966D493C174B03DBCF9B5470DD9A79FB3E14A0B73B6E6C09D531886ACF60E51B57021C5763 | 64 | 20180920085658 2 6 100 2047 2 FAEA3B642004FC1DB17244B7DE6AE7EFEA5B3AB4D54A13674A0E4B460E9D0716E6313530F9BA5D9C959562FD4A1D23FC92D99F1060A3C1B374050C77152C461AEC19CBE7AD6818C48CC9568FF8F4E45367C1053D6DEBCF76BD4DE8E3BA808FA43A3649722202C83417ED96F423DCEA18BB3F99E4598C797D05E0D3E6D2E27A5EC0B10304BB7643AEA01DD989AE84AA4B08AC3AA5613C222C41F5CD46EAF191343F1D07664F2D6E7BC876BFC46CFEFBE50991EBC15664112F6DC8D58D6665B9BB9F974D7210AB8E04F963128E43D92B6D645A963121058BA29C668AC5DA81DF3CC17908D240E8771EB52E4396AB6DA2157F3EE55D0C0E20A52C560FD7A0E45E73 |
65 | 20180403061035 2 6 100 3071 2 FF8DCF143A9E3CC447F8D3D03206E386572BFAC54F4BDE233C8B1223CC9CBA99689328E35F8F83F0922A9F0AB33E7C7892E940377CE0064700ECDCC8532F0FEF888913E1894054707878511DD84455BEACCA35E8418D6CAD03111BC1842581D40E280A13055030CB35339E2A0E422DB9EC47916AD6302BE248AD5EBCCE7CF087CB2285A6B8D227DC7130ADB14163BE4D1AA779DBCD36710AA080F219B535B1887392DE9EF44116C933F5CA2234A7A82A8A48F1691A39434D70E3C3995AEE7CEAFF86DAA2326CF367B7E3C7939E4B78A00EE58E52F7BB36C8A89525CA4D44173E30AA6B40FD0B60C29F6CBC763241AC5DA16E2A9FB9B78F360EED32704B686AD6D40DAE8127C9351A2B21C140292E77592A7159000FB2AA9561DA10B2AC3167CC8E41C10CDF86E9041A3A114F42EF4AA5134C716893E81C3A7488ED5131073FC76B20358549BF1B0858B571550663DA9CF73B7B28BF9CA1FAF8EC96966D493C174B03DBCF9B5470DD9A79FB3E14A0B73B6E6C09D531886ACF60E51B570243FBBB | 65 | 20180920085744 2 6 100 2047 2 FAEA3B642004FC1DB17244B7DE6AE7EFEA5B3AB4D54A13674A0E4B460E9D0716E6313530F9BA5D9C959562FD4A1D23FC92D99F1060A3C1B374050C77152C461AEC19CBE7AD6818C48CC9568FF8F4E45367C1053D6DEBCF76BD4DE8E3BA808FA43A3649722202C83417ED96F423DCEA18BB3F99E4598C797D05E0D3E6D2E27A5EC0B10304BB7643AEA01DD989AE84AA4B08AC3AA5613C222C41F5CD46EAF191343F1D07664F2D6E7BC876BFC46CFEFBE50991EBC15664112F6DC8D58D6665B9BB9F974D7210AB8E04F963128E43D92B6D645A963121058BA29C668AC5DA81DF3CC17908D240E8771EB52E4396AB6DA2157F3EE55D0C0E20A52C560FD7A13B7883 |
66 | 20180403061925 2 6 100 3071 2 FF8DCF143A9E3CC447F8D3D03206E386572BFAC54F4BDE233C8B1223CC9CBA99689328E35F8F83F0922A9F0AB33E7C7892E940377CE0064700ECDCC8532F0FEF888913E1894054707878511DD84455BEACCA35E8418D6CAD03111BC1842581D40E280A13055030CB35339E2A0E422DB9EC47916AD6302BE248AD5EBCCE7CF087CB2285A6B8D227DC7130ADB14163BE4D1AA779DBCD36710AA080F219B535B1887392DE9EF44116C933F5CA2234A7A82A8A48F1691A39434D70E3C3995AEE7CEAFF86DAA2326CF367B7E3C7939E4B78A00EE58E52F7BB36C8A89525CA4D44173E30AA6B40FD0B60C29F6CBC763241AC5DA16E2A9FB9B78F360EED32704B686AD6D40DAE8127C9351A2B21C140292E77592A7159000FB2AA9561DA10B2AC3167CC8E41C10CDF86E9041A3A114F42EF4AA5134C716893E81C3A7488ED5131073FC76B20358549BF1B0858B571550663DA9CF73B7B28BF9CA1FAF8EC96966D493C174B03DBCF9B5470DD9A79FB3E14A0B73B6E6C09D531886ACF60E51B5702CE55A3 | 66 | 20180920085800 2 6 100 2047 5 FAEA3B642004FC1DB17244B7DE6AE7EFEA5B3AB4D54A13674A0E4B460E9D0716E6313530F9BA5D9C959562FD4A1D23FC92D99F1060A3C1B374050C77152C461AEC19CBE7AD6818C48CC9568FF8F4E45367C1053D6DEBCF76BD4DE8E3BA808FA43A3649722202C83417ED96F423DCEA18BB3F99E4598C797D05E0D3E6D2E27A5EC0B10304BB7643AEA01DD989AE84AA4B08AC3AA5613C222C41F5CD46EAF191343F1D07664F2D6E7BC876BFC46CFEFBE50991EBC15664112F6DC8D58D6665B9BB9F974D7210AB8E04F963128E43D92B6D645A963121058BA29C668AC5DA81DF3CC17908D240E8771EB52E4396AB6DA2157F3EE55D0C0E20A52C560FD7A155F0FF |
67 | 20180403062241 2 6 100 3071 2 FF8DCF143A9E3CC447F8D3D03206E386572BFAC54F4BDE233C8B1223CC9CBA99689328E35F8F83F0922A9F0AB33E7C7892E940377CE0064700ECDCC8532F0FEF888913E1894054707878511DD84455BEACCA35E8418D6CAD03111BC1842581D40E280A13055030CB35339E2A0E422DB9EC47916AD6302BE248AD5EBCCE7CF087CB2285A6B8D227DC7130ADB14163BE4D1AA779DBCD36710AA080F219B535B1887392DE9EF44116C933F5CA2234A7A82A8A48F1691A39434D70E3C3995AEE7CEAFF86DAA2326CF367B7E3C7939E4B78A00EE58E52F7BB36C8A89525CA4D44173E30AA6B40FD0B60C29F6CBC763241AC5DA16E2A9FB9B78F360EED32704B686AD6D40DAE8127C9351A2B21C140292E77592A7159000FB2AA9561DA10B2AC3167CC8E41C10CDF86E9041A3A114F42EF4AA5134C716893E81C3A7488ED5131073FC76B20358549BF1B0858B571550663DA9CF73B7B28BF9CA1FAF8EC96966D493C174B03DBCF9B5470DD9A79FB3E14A0B73B6E6C09D531886ACF60E51B5702FA4263 | 67 | 20180920085834 2 6 100 2047 2 FAEA3B642004FC1DB17244B7DE6AE7EFEA5B3AB4D54A13674A0E4B460E9D0716E6313530F9BA5D9C959562FD4A1D23FC92D99F1060A3C1B374050C77152C461AEC19CBE7AD6818C48CC9568FF8F4E45367C1053D6DEBCF76BD4DE8E3BA808FA43A3649722202C83417ED96F423DCEA18BB3F99E4598C797D05E0D3E6D2E27A5EC0B10304BB7643AEA01DD989AE84AA4B08AC3AA5613C222C41F5CD46EAF191343F1D07664F2D6E7BC876BFC46CFEFBE50991EBC15664112F6DC8D58D6665B9BB9F974D7210AB8E04F963128E43D92B6D645A963121058BA29C668AC5DA81DF3CC17908D240E8771EB52E4396AB6DA2157F3EE55D0C0E20A52C560FD7A19802C3 |
68 | 20180403062828 2 6 100 3071 5 FF8DCF143A9E3CC447F8D3D03206E386572BFAC54F4BDE233C8B1223CC9CBA99689328E35F8F83F0922A9F0AB33E7C7892E940377CE0064700ECDCC8532F0FEF888913E1894054707878511DD84455BEACCA35E8418D6CAD03111BC1842581D40E280A13055030CB35339E2A0E422DB9EC47916AD6302BE248AD5EBCCE7CF087CB2285A6B8D227DC7130ADB14163BE4D1AA779DBCD36710AA080F219B535B1887392DE9EF44116C933F5CA2234A7A82A8A48F1691A39434D70E3C3995AEE7CEAFF86DAA2326CF367B7E3C7939E4B78A00EE58E52F7BB36C8A89525CA4D44173E30AA6B40FD0B60C29F6CBC763241AC5DA16E2A9FB9B78F360EED32704B686AD6D40DAE8127C9351A2B21C140292E77592A7159000FB2AA9561DA10B2AC3167CC8E41C10CDF86E9041A3A114F42EF4AA5134C716893E81C3A7488ED5131073FC76B20358549BF1B0858B571550663DA9CF73B7B28BF9CA1FAF8EC96966D493C174B03DBCF9B5470DD9A79FB3E14A0B73B6E6C09D531886ACF60E51B5703495AD7 | 68 | 20180920085838 2 6 100 2047 2 FAEA3B642004FC1DB17244B7DE6AE7EFEA5B3AB4D54A13674A0E4B460E9D0716E6313530F9BA5D9C959562FD4A1D23FC92D99F1060A3C1B374050C77152C461AEC19CBE7AD6818C48CC9568FF8F4E45367C1053D6DEBCF76BD4DE8E3BA808FA43A3649722202C83417ED96F423DCEA18BB3F99E4598C797D05E0D3E6D2E27A5EC0B10304BB7643AEA01DD989AE84AA4B08AC3AA5613C222C41F5CD46EAF191343F1D07664F2D6E7BC876BFC46CFEFBE50991EBC15664112F6DC8D58D6665B9BB9F974D7210AB8E04F963128E43D92B6D645A963121058BA29C668AC5DA81DF3CC17908D240E8771EB52E4396AB6DA2157F3EE55D0C0E20A52C560FD7A198FC0B |
69 | 20180403063232 2 6 100 3071 5 FF8DCF143A9E3CC447F8D3D03206E386572BFAC54F4BDE233C8B1223CC9CBA99689328E35F8F83F0922A9F0AB33E7C7892E940377CE0064700ECDCC8532F0FEF888913E1894054707878511DD84455BEACCA35E8418D6CAD03111BC1842581D40E280A13055030CB35339E2A0E422DB9EC47916AD6302BE248AD5EBCCE7CF087CB2285A6B8D227DC7130ADB14163BE4D1AA779DBCD36710AA080F219B535B1887392DE9EF44116C933F5CA2234A7A82A8A48F1691A39434D70E3C3995AEE7CEAFF86DAA2326CF367B7E3C7939E4B78A00EE58E52F7BB36C8A89525CA4D44173E30AA6B40FD0B60C29F6CBC763241AC5DA16E2A9FB9B78F360EED32704B686AD6D40DAE8127C9351A2B21C140292E77592A7159000FB2AA9561DA10B2AC3167CC8E41C10CDF86E9041A3A114F42EF4AA5134C716893E81C3A7488ED5131073FC76B20358549BF1B0858B571550663DA9CF73B7B28BF9CA1FAF8EC96966D493C174B03DBCF9B5470DD9A79FB3E14A0B73B6E6C09D531886ACF60E51B570383322F | 69 | 20180920085854 2 6 100 2047 2 FAEA3B642004FC1DB17244B7DE6AE7EFEA5B3AB4D54A13674A0E4B460E9D0716E6313530F9BA5D9C959562FD4A1D23FC92D99F1060A3C1B374050C77152C461AEC19CBE7AD6818C48CC9568FF8F4E45367C1053D6DEBCF76BD4DE8E3BA808FA43A3649722202C83417ED96F423DCEA18BB3F99E4598C797D05E0D3E6D2E27A5EC0B10304BB7643AEA01DD989AE84AA4B08AC3AA5613C222C41F5CD46EAF191343F1D07664F2D6E7BC876BFC46CFEFBE50991EBC15664112F6DC8D58D6665B9BB9F974D7210AB8E04F963128E43D92B6D645A963121058BA29C668AC5DA81DF3CC17908D240E8771EB52E4396AB6DA2157F3EE55D0C0E20A52C560FD7A1B38723 |
70 | 20180403063441 2 6 100 3071 5 FF8DCF143A9E3CC447F8D3D03206E386572BFAC54F4BDE233C8B1223CC9CBA99689328E35F8F83F0922A9F0AB33E7C7892E940377CE0064700ECDCC8532F0FEF888913E1894054707878511DD84455BEACCA35E8418D6CAD03111BC1842581D40E280A13055030CB35339E2A0E422DB9EC47916AD6302BE248AD5EBCCE7CF087CB2285A6B8D227DC7130ADB14163BE4D1AA779DBCD36710AA080F219B535B1887392DE9EF44116C933F5CA2234A7A82A8A48F1691A39434D70E3C3995AEE7CEAFF86DAA2326CF367B7E3C7939E4B78A00EE58E52F7BB36C8A89525CA4D44173E30AA6B40FD0B60C29F6CBC763241AC5DA16E2A9FB9B78F360EED32704B686AD6D40DAE8127C9351A2B21C140292E77592A7159000FB2AA9561DA10B2AC3167CC8E41C10CDF86E9041A3A114F42EF4AA5134C716893E81C3A7488ED5131073FC76B20358549BF1B0858B571550663DA9CF73B7B28BF9CA1FAF8EC96966D493C174B03DBCF9B5470DD9A79FB3E14A0B73B6E6C09D531886ACF60E51B57039D0EE7 | 70 | 20180920085908 2 6 100 2047 5 FAEA3B642004FC1DB17244B7DE6AE7EFEA5B3AB4D54A13674A0E4B460E9D0716E6313530F9BA5D9C959562FD4A1D23FC92D99F1060A3C1B374050C77152C461AEC19CBE7AD6818C48CC9568FF8F4E45367C1053D6DEBCF76BD4DE8E3BA808FA43A3649722202C83417ED96F423DCEA18BB3F99E4598C797D05E0D3E6D2E27A5EC0B10304BB7643AEA01DD989AE84AA4B08AC3AA5613C222C41F5CD46EAF191343F1D07664F2D6E7BC876BFC46CFEFBE50991EBC15664112F6DC8D58D6665B9BB9F974D7210AB8E04F963128E43D92B6D645A963121058BA29C668AC5DA81DF3CC17908D240E8771EB52E4396AB6DA2157F3EE55D0C0E20A52C560FD7A1CBBC3F |
71 | 20180403065803 2 6 100 3071 2 FF8DCF143A9E3CC447F8D3D03206E386572BFAC54F4BDE233C8B1223CC9CBA99689328E35F8F83F0922A9F0AB33E7C7892E940377CE0064700ECDCC8532F0FEF888913E1894054707878511DD84455BEACCA35E8418D6CAD03111BC1842581D40E280A13055030CB35339E2A0E422DB9EC47916AD6302BE248AD5EBCCE7CF087CB2285A6B8D227DC7130ADB14163BE4D1AA779DBCD36710AA080F219B535B1887392DE9EF44116C933F5CA2234A7A82A8A48F1691A39434D70E3C3995AEE7CEAFF86DAA2326CF367B7E3C7939E4B78A00EE58E52F7BB36C8A89525CA4D44173E30AA6B40FD0B60C29F6CBC763241AC5DA16E2A9FB9B78F360EED32704B686AD6D40DAE8127C9351A2B21C140292E77592A7159000FB2AA9561DA10B2AC3167CC8E41C10CDF86E9041A3A114F42EF4AA5134C716893E81C3A7488ED5131073FC76B20358549BF1B0858B571550663DA9CF73B7B28BF9CA1FAF8EC96966D493C174B03DBCF9B5470DD9A79FB3E14A0B73B6E6C09D531886ACF60E51B5704F5DFCB | 71 | 20180920090009 2 6 100 2047 5 FAEA3B642004FC1DB17244B7DE6AE7EFEA5B3AB4D54A13674A0E4B460E9D0716E6313530F9BA5D9C959562FD4A1D23FC92D99F1060A3C1B374050C77152C461AEC19CBE7AD6818C48CC9568FF8F4E45367C1053D6DEBCF76BD4DE8E3BA808FA43A3649722202C83417ED96F423DCEA18BB3F99E4598C797D05E0D3E6D2E27A5EC0B10304BB7643AEA01DD989AE84AA4B08AC3AA5613C222C41F5CD46EAF191343F1D07664F2D6E7BC876BFC46CFEFBE50991EBC15664112F6DC8D58D6665B9BB9F974D7210AB8E04F963128E43D92B6D645A963121058BA29C668AC5DA81DF3CC17908D240E8771EB52E4396AB6DA2157F3EE55D0C0E20A52C560FD7A24638B7 |
72 | 20180403070250 2 6 100 3071 5 FF8DCF143A9E3CC447F8D3D03206E386572BFAC54F4BDE233C8B1223CC9CBA99689328E35F8F83F0922A9F0AB33E7C7892E940377CE0064700ECDCC8532F0FEF888913E1894054707878511DD84455BEACCA35E8418D6CAD03111BC1842581D40E280A13055030CB35339E2A0E422DB9EC47916AD6302BE248AD5EBCCE7CF087CB2285A6B8D227DC7130ADB14163BE4D1AA779DBCD36710AA080F219B535B1887392DE9EF44116C933F5CA2234A7A82A8A48F1691A39434D70E3C3995AEE7CEAFF86DAA2326CF367B7E3C7939E4B78A00EE58E52F7BB36C8A89525CA4D44173E30AA6B40FD0B60C29F6CBC763241AC5DA16E2A9FB9B78F360EED32704B686AD6D40DAE8127C9351A2B21C140292E77592A7159000FB2AA9561DA10B2AC3167CC8E41C10CDF86E9041A3A114F42EF4AA5134C716893E81C3A7488ED5131073FC76B20358549BF1B0858B571550663DA9CF73B7B28BF9CA1FAF8EC96966D493C174B03DBCF9B5470DD9A79FB3E14A0B73B6E6C09D531886ACF60E51B570535A157 | 72 | 20180920090031 2 6 100 2047 5 FAEA3B642004FC1DB17244B7DE6AE7EFEA5B3AB4D54A13674A0E4B460E9D0716E6313530F9BA5D9C959562FD4A1D23FC92D99F1060A3C1B374050C77152C461AEC19CBE7AD6818C48CC9568FF8F4E45367C1053D6DEBCF76BD4DE8E3BA808FA43A3649722202C83417ED96F423DCEA18BB3F99E4598C797D05E0D3E6D2E27A5EC0B10304BB7643AEA01DD989AE84AA4B08AC3AA5613C222C41F5CD46EAF191343F1D07664F2D6E7BC876BFC46CFEFBE50991EBC15664112F6DC8D58D6665B9BB9F974D7210AB8E04F963128E43D92B6D645A963121058BA29C668AC5DA81DF3CC17908D240E8771EB52E4396AB6DA2157F3EE55D0C0E20A52C560FD7A26FE49F |
73 | 20180403071043 2 6 100 3071 2 FF8DCF143A9E3CC447F8D3D03206E386572BFAC54F4BDE233C8B1223CC9CBA99689328E35F8F83F0922A9F0AB33E7C7892E940377CE0064700ECDCC8532F0FEF888913E1894054707878511DD84455BEACCA35E8418D6CAD03111BC1842581D40E280A13055030CB35339E2A0E422DB9EC47916AD6302BE248AD5EBCCE7CF087CB2285A6B8D227DC7130ADB14163BE4D1AA779DBCD36710AA080F219B535B1887392DE9EF44116C933F5CA2234A7A82A8A48F1691A39434D70E3C3995AEE7CEAFF86DAA2326CF367B7E3C7939E4B78A00EE58E52F7BB36C8A89525CA4D44173E30AA6B40FD0B60C29F6CBC763241AC5DA16E2A9FB9B78F360EED32704B686AD6D40DAE8127C9351A2B21C140292E77592A7159000FB2AA9561DA10B2AC3167CC8E41C10CDF86E9041A3A114F42EF4AA5134C716893E81C3A7488ED5131073FC76B20358549BF1B0858B571550663DA9CF73B7B28BF9CA1FAF8EC96966D493C174B03DBCF9B5470DD9A79FB3E14A0B73B6E6C09D531886ACF60E51B5705AD5B2B | 73 | 20180920090036 2 6 100 2047 5 FAEA3B642004FC1DB17244B7DE6AE7EFEA5B3AB4D54A13674A0E4B460E9D0716E6313530F9BA5D9C959562FD4A1D23FC92D99F1060A3C1B374050C77152C461AEC19CBE7AD6818C48CC9568FF8F4E45367C1053D6DEBCF76BD4DE8E3BA808FA43A3649722202C83417ED96F423DCEA18BB3F99E4598C797D05E0D3E6D2E27A5EC0B10304BB7643AEA01DD989AE84AA4B08AC3AA5613C222C41F5CD46EAF191343F1D07664F2D6E7BC876BFC46CFEFBE50991EBC15664112F6DC8D58D6665B9BB9F974D7210AB8E04F963128E43D92B6D645A963121058BA29C668AC5DA81DF3CC17908D240E8771EB52E4396AB6DA2157F3EE55D0C0E20A52C560FD7A272126F |
74 | 20180403072237 2 6 100 3071 5 FF8DCF143A9E3CC447F8D3D03206E386572BFAC54F4BDE233C8B1223CC9CBA99689328E35F8F83F0922A9F0AB33E7C7892E940377CE0064700ECDCC8532F0FEF888913E1894054707878511DD84455BEACCA35E8418D6CAD03111BC1842581D40E280A13055030CB35339E2A0E422DB9EC47916AD6302BE248AD5EBCCE7CF087CB2285A6B8D227DC7130ADB14163BE4D1AA779DBCD36710AA080F219B535B1887392DE9EF44116C933F5CA2234A7A82A8A48F1691A39434D70E3C3995AEE7CEAFF86DAA2326CF367B7E3C7939E4B78A00EE58E52F7BB36C8A89525CA4D44173E30AA6B40FD0B60C29F6CBC763241AC5DA16E2A9FB9B78F360EED32704B686AD6D40DAE8127C9351A2B21C140292E77592A7159000FB2AA9561DA10B2AC3167CC8E41C10CDF86E9041A3A114F42EF4AA5134C716893E81C3A7488ED5131073FC76B20358549BF1B0858B571550663DA9CF73B7B28BF9CA1FAF8EC96966D493C174B03DBCF9B5470DD9A79FB3E14A0B73B6E6C09D531886ACF60E51B57066B3AFF | 74 | 20180920090057 2 6 100 2047 2 FAEA3B642004FC1DB17244B7DE6AE7EFEA5B3AB4D54A13674A0E4B460E9D0716E6313530F9BA5D9C959562FD4A1D23FC92D99F1060A3C1B374050C77152C461AEC19CBE7AD6818C48CC9568FF8F4E45367C1053D6DEBCF76BD4DE8E3BA808FA43A3649722202C83417ED96F423DCEA18BB3F99E4598C797D05E0D3E6D2E27A5EC0B10304BB7643AEA01DD989AE84AA4B08AC3AA5613C222C41F5CD46EAF191343F1D07664F2D6E7BC876BFC46CFEFBE50991EBC15664112F6DC8D58D6665B9BB9F974D7210AB8E04F963128E43D92B6D645A963121058BA29C668AC5DA81DF3CC17908D240E8771EB52E4396AB6DA2157F3EE55D0C0E20A52C560FD7A2962B0B |
75 | 20180403072347 2 6 100 3071 2 FF8DCF143A9E3CC447F8D3D03206E386572BFAC54F4BDE233C8B1223CC9CBA99689328E35F8F83F0922A9F0AB33E7C7892E940377CE0064700ECDCC8532F0FEF888913E1894054707878511DD84455BEACCA35E8418D6CAD03111BC1842581D40E280A13055030CB35339E2A0E422DB9EC47916AD6302BE248AD5EBCCE7CF087CB2285A6B8D227DC7130ADB14163BE4D1AA779DBCD36710AA080F219B535B1887392DE9EF44116C933F5CA2234A7A82A8A48F1691A39434D70E3C3995AEE7CEAFF86DAA2326CF367B7E3C7939E4B78A00EE58E52F7BB36C8A89525CA4D44173E30AA6B40FD0B60C29F6CBC763241AC5DA16E2A9FB9B78F360EED32704B686AD6D40DAE8127C9351A2B21C140292E77592A7159000FB2AA9561DA10B2AC3167CC8E41C10CDF86E9041A3A114F42EF4AA5134C716893E81C3A7488ED5131073FC76B20358549BF1B0858B571550663DA9CF73B7B28BF9CA1FAF8EC96966D493C174B03DBCF9B5470DD9A79FB3E14A0B73B6E6C09D531886ACF60E51B5706763D5B | 75 | 20180920090107 2 6 100 2047 5 FAEA3B642004FC1DB17244B7DE6AE7EFEA5B3AB4D54A13674A0E4B460E9D0716E6313530F9BA5D9C959562FD4A1D23FC92D99F1060A3C1B374050C77152C461AEC19CBE7AD6818C48CC9568FF8F4E45367C1053D6DEBCF76BD4DE8E3BA808FA43A3649722202C83417ED96F423DCEA18BB3F99E4598C797D05E0D3E6D2E27A5EC0B10304BB7643AEA01DD989AE84AA4B08AC3AA5613C222C41F5CD46EAF191343F1D07664F2D6E7BC876BFC46CFEFBE50991EBC15664112F6DC8D58D6665B9BB9F974D7210AB8E04F963128E43D92B6D645A963121058BA29C668AC5DA81DF3CC17908D240E8771EB52E4396AB6DA2157F3EE55D0C0E20A52C560FD7A2A69E27 |
76 | 20180403072612 2 6 100 3071 2 FF8DCF143A9E3CC447F8D3D03206E386572BFAC54F4BDE233C8B1223CC9CBA99689328E35F8F83F0922A9F0AB33E7C7892E940377CE0064700ECDCC8532F0FEF888913E1894054707878511DD84455BEACCA35E8418D6CAD03111BC1842581D40E280A13055030CB35339E2A0E422DB9EC47916AD6302BE248AD5EBCCE7CF087CB2285A6B8D227DC7130ADB14163BE4D1AA779DBCD36710AA080F219B535B1887392DE9EF44116C933F5CA2234A7A82A8A48F1691A39434D70E3C3995AEE7CEAFF86DAA2326CF367B7E3C7939E4B78A00EE58E52F7BB36C8A89525CA4D44173E30AA6B40FD0B60C29F6CBC763241AC5DA16E2A9FB9B78F360EED32704B686AD6D40DAE8127C9351A2B21C140292E77592A7159000FB2AA9561DA10B2AC3167CC8E41C10CDF86E9041A3A114F42EF4AA5134C716893E81C3A7488ED5131073FC76B20358549BF1B0858B571550663DA9CF73B7B28BF9CA1FAF8EC96966D493C174B03DBCF9B5470DD9A79FB3E14A0B73B6E6C09D531886ACF60E51B570696B733 | 76 | 20180920090148 2 6 100 2047 2 FAEA3B642004FC1DB17244B7DE6AE7EFEA5B3AB4D54A13674A0E4B460E9D0716E6313530F9BA5D9C959562FD4A1D23FC92D99F1060A3C1B374050C77152C461AEC19CBE7AD6818C48CC9568FF8F4E45367C1053D6DEBCF76BD4DE8E3BA808FA43A3649722202C83417ED96F423DCEA18BB3F99E4598C797D05E0D3E6D2E27A5EC0B10304BB7643AEA01DD989AE84AA4B08AC3AA5613C222C41F5CD46EAF191343F1D07664F2D6E7BC876BFC46CFEFBE50991EBC15664112F6DC8D58D6665B9BB9F974D7210AB8E04F963128E43D92B6D645A963121058BA29C668AC5DA81DF3CC17908D240E8771EB52E4396AB6DA2157F3EE55D0C0E20A52C560FD7A2F49F9B |
77 | 20180403073322 2 6 100 3071 2 FF8DCF143A9E3CC447F8D3D03206E386572BFAC54F4BDE233C8B1223CC9CBA99689328E35F8F83F0922A9F0AB33E7C7892E940377CE0064700ECDCC8532F0FEF888913E1894054707878511DD84455BEACCA35E8418D6CAD03111BC1842581D40E280A13055030CB35339E2A0E422DB9EC47916AD6302BE248AD5EBCCE7CF087CB2285A6B8D227DC7130ADB14163BE4D1AA779DBCD36710AA080F219B535B1887392DE9EF44116C933F5CA2234A7A82A8A48F1691A39434D70E3C3995AEE7CEAFF86DAA2326CF367B7E3C7939E4B78A00EE58E52F7BB36C8A89525CA4D44173E30AA6B40FD0B60C29F6CBC763241AC5DA16E2A9FB9B78F360EED32704B686AD6D40DAE8127C9351A2B21C140292E77592A7159000FB2AA9561DA10B2AC3167CC8E41C10CDF86E9041A3A114F42EF4AA5134C716893E81C3A7488ED5131073FC76B20358549BF1B0858B571550663DA9CF73B7B28BF9CA1FAF8EC96966D493C174B03DBCF9B5470DD9A79FB3E14A0B73B6E6C09D531886ACF60E51B5707062E2B | 77 | 20180920090155 2 6 100 2047 5 FAEA3B642004FC1DB17244B7DE6AE7EFEA5B3AB4D54A13674A0E4B460E9D0716E6313530F9BA5D9C959562FD4A1D23FC92D99F1060A3C1B374050C77152C461AEC19CBE7AD6818C48CC9568FF8F4E45367C1053D6DEBCF76BD4DE8E3BA808FA43A3649722202C83417ED96F423DCEA18BB3F99E4598C797D05E0D3E6D2E27A5EC0B10304BB7643AEA01DD989AE84AA4B08AC3AA5613C222C41F5CD46EAF191343F1D07664F2D6E7BC876BFC46CFEFBE50991EBC15664112F6DC8D58D6665B9BB9F974D7210AB8E04F963128E43D92B6D645A963121058BA29C668AC5DA81DF3CC17908D240E8771EB52E4396AB6DA2157F3EE55D0C0E20A52C560FD7A2FC98C7 |
78 | 20180403073825 2 6 100 3071 5 FF8DCF143A9E3CC447F8D3D03206E386572BFAC54F4BDE233C8B1223CC9CBA99689328E35F8F83F0922A9F0AB33E7C7892E940377CE0064700ECDCC8532F0FEF888913E1894054707878511DD84455BEACCA35E8418D6CAD03111BC1842581D40E280A13055030CB35339E2A0E422DB9EC47916AD6302BE248AD5EBCCE7CF087CB2285A6B8D227DC7130ADB14163BE4D1AA779DBCD36710AA080F219B535B1887392DE9EF44116C933F5CA2234A7A82A8A48F1691A39434D70E3C3995AEE7CEAFF86DAA2326CF367B7E3C7939E4B78A00EE58E52F7BB36C8A89525CA4D44173E30AA6B40FD0B60C29F6CBC763241AC5DA16E2A9FB9B78F360EED32704B686AD6D40DAE8127C9351A2B21C140292E77592A7159000FB2AA9561DA10B2AC3167CC8E41C10CDF86E9041A3A114F42EF4AA5134C716893E81C3A7488ED5131073FC76B20358549BF1B0858B571550663DA9CF73B7B28BF9CA1FAF8EC96966D493C174B03DBCF9B5470DD9A79FB3E14A0B73B6E6C09D531886ACF60E51B5707547607 | 78 | 20180920090222 2 6 100 2047 2 FAEA3B642004FC1DB17244B7DE6AE7EFEA5B3AB4D54A13674A0E4B460E9D0716E6313530F9BA5D9C959562FD4A1D23FC92D99F1060A3C1B374050C77152C461AEC19CBE7AD6818C48CC9568FF8F4E45367C1053D6DEBCF76BD4DE8E3BA808FA43A3649722202C83417ED96F423DCEA18BB3F99E4598C797D05E0D3E6D2E27A5EC0B10304BB7643AEA01DD989AE84AA4B08AC3AA5613C222C41F5CD46EAF191343F1D07664F2D6E7BC876BFC46CFEFBE50991EBC15664112F6DC8D58D6665B9BB9F974D7210AB8E04F963128E43D92B6D645A963121058BA29C668AC5DA81DF3CC17908D240E8771EB52E4396AB6DA2157F3EE55D0C0E20A52C560FD7A32E8983 |
79 | 20180403073948 2 6 100 3071 5 FF8DCF143A9E3CC447F8D3D03206E386572BFAC54F4BDE233C8B1223CC9CBA99689328E35F8F83F0922A9F0AB33E7C7892E940377CE0064700ECDCC8532F0FEF888913E1894054707878511DD84455BEACCA35E8418D6CAD03111BC1842581D40E280A13055030CB35339E2A0E422DB9EC47916AD6302BE248AD5EBCCE7CF087CB2285A6B8D227DC7130ADB14163BE4D1AA779DBCD36710AA080F219B535B1887392DE9EF44116C933F5CA2234A7A82A8A48F1691A39434D70E3C3995AEE7CEAFF86DAA2326CF367B7E3C7939E4B78A00EE58E52F7BB36C8A89525CA4D44173E30AA6B40FD0B60C29F6CBC763241AC5DA16E2A9FB9B78F360EED32704B686AD6D40DAE8127C9351A2B21C140292E77592A7159000FB2AA9561DA10B2AC3167CC8E41C10CDF86E9041A3A114F42EF4AA5134C716893E81C3A7488ED5131073FC76B20358549BF1B0858B571550663DA9CF73B7B28BF9CA1FAF8EC96966D493C174B03DBCF9B5470DD9A79FB3E14A0B73B6E6C09D531886ACF60E51B570762843F | 79 | 20180920090227 2 6 100 2047 2 FAEA3B642004FC1DB17244B7DE6AE7EFEA5B3AB4D54A13674A0E4B460E9D0716E6313530F9BA5D9C959562FD4A1D23FC92D99F1060A3C1B374050C77152C461AEC19CBE7AD6818C48CC9568FF8F4E45367C1053D6DEBCF76BD4DE8E3BA808FA43A3649722202C83417ED96F423DCEA18BB3F99E4598C797D05E0D3E6D2E27A5EC0B10304BB7643AEA01DD989AE84AA4B08AC3AA5613C222C41F5CD46EAF191343F1D07664F2D6E7BC876BFC46CFEFBE50991EBC15664112F6DC8D58D6665B9BB9F974D7210AB8E04F963128E43D92B6D645A963121058BA29C668AC5DA81DF3CC17908D240E8771EB52E4396AB6DA2157F3EE55D0C0E20A52C560FD7A332034B |
80 | 20180403074104 2 6 100 3071 2 FF8DCF143A9E3CC447F8D3D03206E386572BFAC54F4BDE233C8B1223CC9CBA99689328E35F8F83F0922A9F0AB33E7C7892E940377CE0064700ECDCC8532F0FEF888913E1894054707878511DD84455BEACCA35E8418D6CAD03111BC1842581D40E280A13055030CB35339E2A0E422DB9EC47916AD6302BE248AD5EBCCE7CF087CB2285A6B8D227DC7130ADB14163BE4D1AA779DBCD36710AA080F219B535B1887392DE9EF44116C933F5CA2234A7A82A8A48F1691A39434D70E3C3995AEE7CEAFF86DAA2326CF367B7E3C7939E4B78A00EE58E52F7BB36C8A89525CA4D44173E30AA6B40FD0B60C29F6CBC763241AC5DA16E2A9FB9B78F360EED32704B686AD6D40DAE8127C9351A2B21C140292E77592A7159000FB2AA9561DA10B2AC3167CC8E41C10CDF86E9041A3A114F42EF4AA5134C716893E81C3A7488ED5131073FC76B20358549BF1B0858B571550663DA9CF73B7B28BF9CA1FAF8EC96966D493C174B03DBCF9B5470DD9A79FB3E14A0B73B6E6C09D531886ACF60E51B57076EC3DB | 80 | 20180920090238 2 6 100 2047 2 FAEA3B642004FC1DB17244B7DE6AE7EFEA5B3AB4D54A13674A0E4B460E9D0716E6313530F9BA5D9C959562FD4A1D23FC92D99F1060A3C1B374050C77152C461AEC19CBE7AD6818C48CC9568FF8F4E45367C1053D6DEBCF76BD4DE8E3BA808FA43A3649722202C83417ED96F423DCEA18BB3F99E4598C797D05E0D3E6D2E27A5EC0B10304BB7643AEA01DD989AE84AA4B08AC3AA5613C222C41F5CD46EAF191343F1D07664F2D6E7BC876BFC46CFEFBE50991EBC15664112F6DC8D58D6665B9BB9F974D7210AB8E04F963128E43D92B6D645A963121058BA29C668AC5DA81DF3CC17908D240E8771EB52E4396AB6DA2157F3EE55D0C0E20A52C560FD7A341BC13 |
81 | 20180403074403 2 6 100 3071 2 FF8DCF143A9E3CC447F8D3D03206E386572BFAC54F4BDE233C8B1223CC9CBA99689328E35F8F83F0922A9F0AB33E7C7892E940377CE0064700ECDCC8532F0FEF888913E1894054707878511DD84455BEACCA35E8418D6CAD03111BC1842581D40E280A13055030CB35339E2A0E422DB9EC47916AD6302BE248AD5EBCCE7CF087CB2285A6B8D227DC7130ADB14163BE4D1AA779DBCD36710AA080F219B535B1887392DE9EF44116C933F5CA2234A7A82A8A48F1691A39434D70E3C3995AEE7CEAFF86DAA2326CF367B7E3C7939E4B78A00EE58E52F7BB36C8A89525CA4D44173E30AA6B40FD0B60C29F6CBC763241AC5DA16E2A9FB9B78F360EED32704B686AD6D40DAE8127C9351A2B21C140292E77592A7159000FB2AA9561DA10B2AC3167CC8E41C10CDF86E9041A3A114F42EF4AA5134C716893E81C3A7488ED5131073FC76B20358549BF1B0858B571550663DA9CF73B7B28BF9CA1FAF8EC96966D493C174B03DBCF9B5470DD9A79FB3E14A0B73B6E6C09D531886ACF60E51B570799DD63 | 81 | 20180920090357 2 6 100 2047 2 FAEA3B642004FC1DB17244B7DE6AE7EFEA5B3AB4D54A13674A0E4B460E9D0716E6313530F9BA5D9C959562FD4A1D23FC92D99F1060A3C1B374050C77152C461AEC19CBE7AD6818C48CC9568FF8F4E45367C1053D6DEBCF76BD4DE8E3BA808FA43A3649722202C83417ED96F423DCEA18BB3F99E4598C797D05E0D3E6D2E27A5EC0B10304BB7643AEA01DD989AE84AA4B08AC3AA5613C222C41F5CD46EAF191343F1D07664F2D6E7BC876BFC46CFEFBE50991EBC15664112F6DC8D58D6665B9BB9F974D7210AB8E04F963128E43D92B6D645A963121058BA29C668AC5DA81DF3CC17908D240E8771EB52E4396AB6DA2157F3EE55D0C0E20A52C560FD7A3E82A8B |
82 | 20180403074828 2 6 100 3071 2 FF8DCF143A9E3CC447F8D3D03206E386572BFAC54F4BDE233C8B1223CC9CBA99689328E35F8F83F0922A9F0AB33E7C7892E940377CE0064700ECDCC8532F0FEF888913E1894054707878511DD84455BEACCA35E8418D6CAD03111BC1842581D40E280A13055030CB35339E2A0E422DB9EC47916AD6302BE248AD5EBCCE7CF087CB2285A6B8D227DC7130ADB14163BE4D1AA779DBCD36710AA080F219B535B1887392DE9EF44116C933F5CA2234A7A82A8A48F1691A39434D70E3C3995AEE7CEAFF86DAA2326CF367B7E3C7939E4B78A00EE58E52F7BB36C8A89525CA4D44173E30AA6B40FD0B60C29F6CBC763241AC5DA16E2A9FB9B78F360EED32704B686AD6D40DAE8127C9351A2B21C140292E77592A7159000FB2AA9561DA10B2AC3167CC8E41C10CDF86E9041A3A114F42EF4AA5134C716893E81C3A7488ED5131073FC76B20358549BF1B0858B571550663DA9CF73B7B28BF9CA1FAF8EC96966D493C174B03DBCF9B5470DD9A79FB3E14A0B73B6E6C09D531886ACF60E51B5707D93973 | 82 | 20180920090414 2 6 100 2047 2 FAEA3B642004FC1DB17244B7DE6AE7EFEA5B3AB4D54A13674A0E4B460E9D0716E6313530F9BA5D9C959562FD4A1D23FC92D99F1060A3C1B374050C77152C461AEC19CBE7AD6818C48CC9568FF8F4E45367C1053D6DEBCF76BD4DE8E3BA808FA43A3649722202C83417ED96F423DCEA18BB3F99E4598C797D05E0D3E6D2E27A5EC0B10304BB7643AEA01DD989AE84AA4B08AC3AA5613C222C41F5CD46EAF191343F1D07664F2D6E7BC876BFC46CFEFBE50991EBC15664112F6DC8D58D6665B9BB9F974D7210AB8E04F963128E43D92B6D645A963121058BA29C668AC5DA81DF3CC17908D240E8771EB52E4396AB6DA2157F3EE55D0C0E20A52C560FD7A405F593 |
83 | 20180403075240 2 6 100 3071 2 FF8DCF143A9E3CC447F8D3D03206E386572BFAC54F4BDE233C8B1223CC9CBA99689328E35F8F83F0922A9F0AB33E7C7892E940377CE0064700ECDCC8532F0FEF888913E1894054707878511DD84455BEACCA35E8418D6CAD03111BC1842581D40E280A13055030CB35339E2A0E422DB9EC47916AD6302BE248AD5EBCCE7CF087CB2285A6B8D227DC7130ADB14163BE4D1AA779DBCD36710AA080F219B535B1887392DE9EF44116C933F5CA2234A7A82A8A48F1691A39434D70E3C3995AEE7CEAFF86DAA2326CF367B7E3C7939E4B78A00EE58E52F7BB36C8A89525CA4D44173E30AA6B40FD0B60C29F6CBC763241AC5DA16E2A9FB9B78F360EED32704B686AD6D40DAE8127C9351A2B21C140292E77592A7159000FB2AA9561DA10B2AC3167CC8E41C10CDF86E9041A3A114F42EF4AA5134C716893E81C3A7488ED5131073FC76B20358549BF1B0858B571550663DA9CF73B7B28BF9CA1FAF8EC96966D493C174B03DBCF9B5470DD9A79FB3E14A0B73B6E6C09D531886ACF60E51B570814F21B | 83 | 20180920090443 2 6 100 2047 2 FAEA3B642004FC1DB17244B7DE6AE7EFEA5B3AB4D54A13674A0E4B460E9D0716E6313530F9BA5D9C959562FD4A1D23FC92D99F1060A3C1B374050C77152C461AEC19CBE7AD6818C48CC9568FF8F4E45367C1053D6DEBCF76BD4DE8E3BA808FA43A3649722202C83417ED96F423DCEA18BB3F99E4598C797D05E0D3E6D2E27A5EC0B10304BB7643AEA01DD989AE84AA4B08AC3AA5613C222C41F5CD46EAF191343F1D07664F2D6E7BC876BFC46CFEFBE50991EBC15664112F6DC8D58D6665B9BB9F974D7210AB8E04F963128E43D92B6D645A963121058BA29C668AC5DA81DF3CC17908D240E8771EB52E4396AB6DA2157F3EE55D0C0E20A52C560FD7A44029BB |
84 | 20180403075918 2 6 100 3071 2 FF8DCF143A9E3CC447F8D3D03206E386572BFAC54F4BDE233C8B1223CC9CBA99689328E35F8F83F0922A9F0AB33E7C7892E940377CE0064700ECDCC8532F0FEF888913E1894054707878511DD84455BEACCA35E8418D6CAD03111BC1842581D40E280A13055030CB35339E2A0E422DB9EC47916AD6302BE248AD5EBCCE7CF087CB2285A6B8D227DC7130ADB14163BE4D1AA779DBCD36710AA080F219B535B1887392DE9EF44116C933F5CA2234A7A82A8A48F1691A39434D70E3C3995AEE7CEAFF86DAA2326CF367B7E3C7939E4B78A00EE58E52F7BB36C8A89525CA4D44173E30AA6B40FD0B60C29F6CBC763241AC5DA16E2A9FB9B78F360EED32704B686AD6D40DAE8127C9351A2B21C140292E77592A7159000FB2AA9561DA10B2AC3167CC8E41C10CDF86E9041A3A114F42EF4AA5134C716893E81C3A7488ED5131073FC76B20358549BF1B0858B571550663DA9CF73B7B28BF9CA1FAF8EC96966D493C174B03DBCF9B5470DD9A79FB3E14A0B73B6E6C09D531886ACF60E51B570878D0DB | 84 | 20180920090533 2 6 100 2047 2 FAEA3B642004FC1DB17244B7DE6AE7EFEA5B3AB4D54A13674A0E4B460E9D0716E6313530F9BA5D9C959562FD4A1D23FC92D99F1060A3C1B374050C77152C461AEC19CBE7AD6818C48CC9568FF8F4E45367C1053D6DEBCF76BD4DE8E3BA808FA43A3649722202C83417ED96F423DCEA18BB3F99E4598C797D05E0D3E6D2E27A5EC0B10304BB7643AEA01DD989AE84AA4B08AC3AA5613C222C41F5CD46EAF191343F1D07664F2D6E7BC876BFC46CFEFBE50991EBC15664112F6DC8D58D6665B9BB9F974D7210AB8E04F963128E43D92B6D645A963121058BA29C668AC5DA81DF3CC17908D240E8771EB52E4396AB6DA2157F3EE55D0C0E20A52C560FD7A4A62F13 |
85 | 20180403080045 2 6 100 3071 5 FF8DCF143A9E3CC447F8D3D03206E386572BFAC54F4BDE233C8B1223CC9CBA99689328E35F8F83F0922A9F0AB33E7C7892E940377CE0064700ECDCC8532F0FEF888913E1894054707878511DD84455BEACCA35E8418D6CAD03111BC1842581D40E280A13055030CB35339E2A0E422DB9EC47916AD6302BE248AD5EBCCE7CF087CB2285A6B8D227DC7130ADB14163BE4D1AA779DBCD36710AA080F219B535B1887392DE9EF44116C933F5CA2234A7A82A8A48F1691A39434D70E3C3995AEE7CEAFF86DAA2326CF367B7E3C7939E4B78A00EE58E52F7BB36C8A89525CA4D44173E30AA6B40FD0B60C29F6CBC763241AC5DA16E2A9FB9B78F360EED32704B686AD6D40DAE8127C9351A2B21C140292E77592A7159000FB2AA9561DA10B2AC3167CC8E41C10CDF86E9041A3A114F42EF4AA5134C716893E81C3A7488ED5131073FC76B20358549BF1B0858B571550663DA9CF73B7B28BF9CA1FAF8EC96966D493C174B03DBCF9B5470DD9A79FB3E14A0B73B6E6C09D531886ACF60E51B5708890F47 | 85 | 20180920090600 2 6 100 2047 2 FAEA3B642004FC1DB17244B7DE6AE7EFEA5B3AB4D54A13674A0E4B460E9D0716E6313530F9BA5D9C959562FD4A1D23FC92D99F1060A3C1B374050C77152C461AEC19CBE7AD6818C48CC9568FF8F4E45367C1053D6DEBCF76BD4DE8E3BA808FA43A3649722202C83417ED96F423DCEA18BB3F99E4598C797D05E0D3E6D2E27A5EC0B10304BB7643AEA01DD989AE84AA4B08AC3AA5613C222C41F5CD46EAF191343F1D07664F2D6E7BC876BFC46CFEFBE50991EBC15664112F6DC8D58D6665B9BB9F974D7210AB8E04F963128E43D92B6D645A963121058BA29C668AC5DA81DF3CC17908D240E8771EB52E4396AB6DA2157F3EE55D0C0E20A52C560FD7A4D96A23 |
86 | 20180403080212 2 6 100 3071 2 FF8DCF143A9E3CC447F8D3D03206E386572BFAC54F4BDE233C8B1223CC9CBA99689328E35F8F83F0922A9F0AB33E7C7892E940377CE0064700ECDCC8532F0FEF888913E1894054707878511DD84455BEACCA35E8418D6CAD03111BC1842581D40E280A13055030CB35339E2A0E422DB9EC47916AD6302BE248AD5EBCCE7CF087CB2285A6B8D227DC7130ADB14163BE4D1AA779DBCD36710AA080F219B535B1887392DE9EF44116C933F5CA2234A7A82A8A48F1691A39434D70E3C3995AEE7CEAFF86DAA2326CF367B7E3C7939E4B78A00EE58E52F7BB36C8A89525CA4D44173E30AA6B40FD0B60C29F6CBC763241AC5DA16E2A9FB9B78F360EED32704B686AD6D40DAE8127C9351A2B21C140292E77592A7159000FB2AA9561DA10B2AC3167CC8E41C10CDF86E9041A3A114F42EF4AA5134C716893E81C3A7488ED5131073FC76B20358549BF1B0858B571550663DA9CF73B7B28BF9CA1FAF8EC96966D493C174B03DBCF9B5470DD9A79FB3E14A0B73B6E6C09D531886ACF60E51B570898D8B3 | 86 | 20180920090616 2 6 100 2047 2 FAEA3B642004FC1DB17244B7DE6AE7EFEA5B3AB4D54A13674A0E4B460E9D0716E6313530F9BA5D9C959562FD4A1D23FC92D99F1060A3C1B374050C77152C461AEC19CBE7AD6818C48CC9568FF8F4E45367C1053D6DEBCF76BD4DE8E3BA808FA43A3649722202C83417ED96F423DCEA18BB3F99E4598C797D05E0D3E6D2E27A5EC0B10304BB7643AEA01DD989AE84AA4B08AC3AA5613C222C41F5CD46EAF191343F1D07664F2D6E7BC876BFC46CFEFBE50991EBC15664112F6DC8D58D6665B9BB9F974D7210AB8E04F963128E43D92B6D645A963121058BA29C668AC5DA81DF3CC17908D240E8771EB52E4396AB6DA2157F3EE55D0C0E20A52C560FD7A4F1B05B |
87 | 20180403080523 2 6 100 3071 2 FF8DCF143A9E3CC447F8D3D03206E386572BFAC54F4BDE233C8B1223CC9CBA99689328E35F8F83F0922A9F0AB33E7C7892E940377CE0064700ECDCC8532F0FEF888913E1894054707878511DD84455BEACCA35E8418D6CAD03111BC1842581D40E280A13055030CB35339E2A0E422DB9EC47916AD6302BE248AD5EBCCE7CF087CB2285A6B8D227DC7130ADB14163BE4D1AA779DBCD36710AA080F219B535B1887392DE9EF44116C933F5CA2234A7A82A8A48F1691A39434D70E3C3995AEE7CEAFF86DAA2326CF367B7E3C7939E4B78A00EE58E52F7BB36C8A89525CA4D44173E30AA6B40FD0B60C29F6CBC763241AC5DA16E2A9FB9B78F360EED32704B686AD6D40DAE8127C9351A2B21C140292E77592A7159000FB2AA9561DA10B2AC3167CC8E41C10CDF86E9041A3A114F42EF4AA5134C716893E81C3A7488ED5131073FC76B20358549BF1B0858B571550663DA9CF73B7B28BF9CA1FAF8EC96966D493C174B03DBCF9B5470DD9A79FB3E14A0B73B6E6C09D531886ACF60E51B5708C1E14B | 87 | 20180920090637 2 6 100 2047 2 FAEA3B642004FC1DB17244B7DE6AE7EFEA5B3AB4D54A13674A0E4B460E9D0716E6313530F9BA5D9C959562FD4A1D23FC92D99F1060A3C1B374050C77152C461AEC19CBE7AD6818C48CC9568FF8F4E45367C1053D6DEBCF76BD4DE8E3BA808FA43A3649722202C83417ED96F423DCEA18BB3F99E4598C797D05E0D3E6D2E27A5EC0B10304BB7643AEA01DD989AE84AA4B08AC3AA5613C222C41F5CD46EAF191343F1D07664F2D6E7BC876BFC46CFEFBE50991EBC15664112F6DC8D58D6665B9BB9F974D7210AB8E04F963128E43D92B6D645A963121058BA29C668AC5DA81DF3CC17908D240E8771EB52E4396AB6DA2157F3EE55D0C0E20A52C560FD7A5184683 |
88 | 20180403080854 2 6 100 3071 5 FF8DCF143A9E3CC447F8D3D03206E386572BFAC54F4BDE233C8B1223CC9CBA99689328E35F8F83F0922A9F0AB33E7C7892E940377CE0064700ECDCC8532F0FEF888913E1894054707878511DD84455BEACCA35E8418D6CAD03111BC1842581D40E280A13055030CB35339E2A0E422DB9EC47916AD6302BE248AD5EBCCE7CF087CB2285A6B8D227DC7130ADB14163BE4D1AA779DBCD36710AA080F219B535B1887392DE9EF44116C933F5CA2234A7A82A8A48F1691A39434D70E3C3995AEE7CEAFF86DAA2326CF367B7E3C7939E4B78A00EE58E52F7BB36C8A89525CA4D44173E30AA6B40FD0B60C29F6CBC763241AC5DA16E2A9FB9B78F360EED32704B686AD6D40DAE8127C9351A2B21C140292E77592A7159000FB2AA9561DA10B2AC3167CC8E41C10CDF86E9041A3A114F42EF4AA5134C716893E81C3A7488ED5131073FC76B20358549BF1B0858B571550663DA9CF73B7B28BF9CA1FAF8EC96966D493C174B03DBCF9B5470DD9A79FB3E14A0B73B6E6C09D531886ACF60E51B5708EEE0AF | 88 | 20180920090705 2 6 100 2047 5 FAEA3B642004FC1DB17244B7DE6AE7EFEA5B3AB4D54A13674A0E4B460E9D0716E6313530F9BA5D9C959562FD4A1D23FC92D99F1060A3C1B374050C77152C461AEC19CBE7AD6818C48CC9568FF8F4E45367C1053D6DEBCF76BD4DE8E3BA808FA43A3649722202C83417ED96F423DCEA18BB3F99E4598C797D05E0D3E6D2E27A5EC0B10304BB7643AEA01DD989AE84AA4B08AC3AA5613C222C41F5CD46EAF191343F1D07664F2D6E7BC876BFC46CFEFBE50991EBC15664112F6DC8D58D6665B9BB9F974D7210AB8E04F963128E43D92B6D645A963121058BA29C668AC5DA81DF3CC17908D240E8771EB52E4396AB6DA2157F3EE55D0C0E20A52C560FD7A549FBCF |
89 | 20180403081003 2 6 100 3071 5 FF8DCF143A9E3CC447F8D3D03206E386572BFAC54F4BDE233C8B1223CC9CBA99689328E35F8F83F0922A9F0AB33E7C7892E940377CE0064700ECDCC8532F0FEF888913E1894054707878511DD84455BEACCA35E8418D6CAD03111BC1842581D40E280A13055030CB35339E2A0E422DB9EC47916AD6302BE248AD5EBCCE7CF087CB2285A6B8D227DC7130ADB14163BE4D1AA779DBCD36710AA080F219B535B1887392DE9EF44116C933F5CA2234A7A82A8A48F1691A39434D70E3C3995AEE7CEAFF86DAA2326CF367B7E3C7939E4B78A00EE58E52F7BB36C8A89525CA4D44173E30AA6B40FD0B60C29F6CBC763241AC5DA16E2A9FB9B78F360EED32704B686AD6D40DAE8127C9351A2B21C140292E77592A7159000FB2AA9561DA10B2AC3167CC8E41C10CDF86E9041A3A114F42EF4AA5134C716893E81C3A7488ED5131073FC76B20358549BF1B0858B571550663DA9CF73B7B28BF9CA1FAF8EC96966D493C174B03DBCF9B5470DD9A79FB3E14A0B73B6E6C09D531886ACF60E51B5708F7F537 | 89 | 20180920090716 2 6 100 2047 5 FAEA3B642004FC1DB17244B7DE6AE7EFEA5B3AB4D54A13674A0E4B460E9D0716E6313530F9BA5D9C959562FD4A1D23FC92D99F1060A3C1B374050C77152C461AEC19CBE7AD6818C48CC9568FF8F4E45367C1053D6DEBCF76BD4DE8E3BA808FA43A3649722202C83417ED96F423DCEA18BB3F99E4598C797D05E0D3E6D2E27A5EC0B10304BB7643AEA01DD989AE84AA4B08AC3AA5613C222C41F5CD46EAF191343F1D07664F2D6E7BC876BFC46CFEFBE50991EBC15664112F6DC8D58D6665B9BB9F974D7210AB8E04F963128E43D92B6D645A963121058BA29C668AC5DA81DF3CC17908D240E8771EB52E4396AB6DA2157F3EE55D0C0E20A52C560FD7A5593157 |
90 | 20180403081710 2 6 100 3071 2 FF8DCF143A9E3CC447F8D3D03206E386572BFAC54F4BDE233C8B1223CC9CBA99689328E35F8F83F0922A9F0AB33E7C7892E940377CE0064700ECDCC8532F0FEF888913E1894054707878511DD84455BEACCA35E8418D6CAD03111BC1842581D40E280A13055030CB35339E2A0E422DB9EC47916AD6302BE248AD5EBCCE7CF087CB2285A6B8D227DC7130ADB14163BE4D1AA779DBCD36710AA080F219B535B1887392DE9EF44116C933F5CA2234A7A82A8A48F1691A39434D70E3C3995AEE7CEAFF86DAA2326CF367B7E3C7939E4B78A00EE58E52F7BB36C8A89525CA4D44173E30AA6B40FD0B60C29F6CBC763241AC5DA16E2A9FB9B78F360EED32704B686AD6D40DAE8127C9351A2B21C140292E77592A7159000FB2AA9561DA10B2AC3167CC8E41C10CDF86E9041A3A114F42EF4AA5134C716893E81C3A7488ED5131073FC76B20358549BF1B0858B571550663DA9CF73B7B28BF9CA1FAF8EC96966D493C174B03DBCF9B5470DD9A79FB3E14A0B73B6E6C09D531886ACF60E51B570961D7DB | 90 | 20180920090727 2 6 100 2047 5 FAEA3B642004FC1DB17244B7DE6AE7EFEA5B3AB4D54A13674A0E4B460E9D0716E6313530F9BA5D9C959562FD4A1D23FC92D99F1060A3C1B374050C77152C461AEC19CBE7AD6818C48CC9568FF8F4E45367C1053D6DEBCF76BD4DE8E3BA808FA43A3649722202C83417ED96F423DCEA18BB3F99E4598C797D05E0D3E6D2E27A5EC0B10304BB7643AEA01DD989AE84AA4B08AC3AA5613C222C41F5CD46EAF191343F1D07664F2D6E7BC876BFC46CFEFBE50991EBC15664112F6DC8D58D6665B9BB9F974D7210AB8E04F963128E43D92B6D645A963121058BA29C668AC5DA81DF3CC17908D240E8771EB52E4396AB6DA2157F3EE55D0C0E20A52C560FD7A5681F87 |
91 | 20180403082007 2 6 100 3071 2 FF8DCF143A9E3CC447F8D3D03206E386572BFAC54F4BDE233C8B1223CC9CBA99689328E35F8F83F0922A9F0AB33E7C7892E940377CE0064700ECDCC8532F0FEF888913E1894054707878511DD84455BEACCA35E8418D6CAD03111BC1842581D40E280A13055030CB35339E2A0E422DB9EC47916AD6302BE248AD5EBCCE7CF087CB2285A6B8D227DC7130ADB14163BE4D1AA779DBCD36710AA080F219B535B1887392DE9EF44116C933F5CA2234A7A82A8A48F1691A39434D70E3C3995AEE7CEAFF86DAA2326CF367B7E3C7939E4B78A00EE58E52F7BB36C8A89525CA4D44173E30AA6B40FD0B60C29F6CBC763241AC5DA16E2A9FB9B78F360EED32704B686AD6D40DAE8127C9351A2B21C140292E77592A7159000FB2AA9561DA10B2AC3167CC8E41C10CDF86E9041A3A114F42EF4AA5134C716893E81C3A7488ED5131073FC76B20358549BF1B0858B571550663DA9CF73B7B28BF9CA1FAF8EC96966D493C174B03DBCF9B5470DD9A79FB3E14A0B73B6E6C09D531886ACF60E51B570988E91B | 91 | 20180920090741 2 6 100 2047 2 FAEA3B642004FC1DB17244B7DE6AE7EFEA5B3AB4D54A13674A0E4B460E9D0716E6313530F9BA5D9C959562FD4A1D23FC92D99F1060A3C1B374050C77152C461AEC19CBE7AD6818C48CC9568FF8F4E45367C1053D6DEBCF76BD4DE8E3BA808FA43A3649722202C83417ED96F423DCEA18BB3F99E4598C797D05E0D3E6D2E27A5EC0B10304BB7643AEA01DD989AE84AA4B08AC3AA5613C222C41F5CD46EAF191343F1D07664F2D6E7BC876BFC46CFEFBE50991EBC15664112F6DC8D58D6665B9BB9F974D7210AB8E04F963128E43D92B6D645A963121058BA29C668AC5DA81DF3CC17908D240E8771EB52E4396AB6DA2157F3EE55D0C0E20A52C560FD7A57EC4B3 |
92 | 20180403082804 2 6 100 3071 2 FF8DCF143A9E3CC447F8D3D03206E386572BFAC54F4BDE233C8B1223CC9CBA99689328E35F8F83F0922A9F0AB33E7C7892E940377CE0064700ECDCC8532F0FEF888913E1894054707878511DD84455BEACCA35E8418D6CAD03111BC1842581D40E280A13055030CB35339E2A0E422DB9EC47916AD6302BE248AD5EBCCE7CF087CB2285A6B8D227DC7130ADB14163BE4D1AA779DBCD36710AA080F219B535B1887392DE9EF44116C933F5CA2234A7A82A8A48F1691A39434D70E3C3995AEE7CEAFF86DAA2326CF367B7E3C7939E4B78A00EE58E52F7BB36C8A89525CA4D44173E30AA6B40FD0B60C29F6CBC763241AC5DA16E2A9FB9B78F360EED32704B686AD6D40DAE8127C9351A2B21C140292E77592A7159000FB2AA9561DA10B2AC3167CC8E41C10CDF86E9041A3A114F42EF4AA5134C716893E81C3A7488ED5131073FC76B20358549BF1B0858B571550663DA9CF73B7B28BF9CA1FAF8EC96966D493C174B03DBCF9B5470DD9A79FB3E14A0B73B6E6C09D531886ACF60E51B570A02958B | 92 | 20180920090828 2 6 100 2047 5 FAEA3B642004FC1DB17244B7DE6AE7EFEA5B3AB4D54A13674A0E4B460E9D0716E6313530F9BA5D9C959562FD4A1D23FC92D99F1060A3C1B374050C77152C461AEC19CBE7AD6818C48CC9568FF8F4E45367C1053D6DEBCF76BD4DE8E3BA808FA43A3649722202C83417ED96F423DCEA18BB3F99E4598C797D05E0D3E6D2E27A5EC0B10304BB7643AEA01DD989AE84AA4B08AC3AA5613C222C41F5CD46EAF191343F1D07664F2D6E7BC876BFC46CFEFBE50991EBC15664112F6DC8D58D6665B9BB9F974D7210AB8E04F963128E43D92B6D645A963121058BA29C668AC5DA81DF3CC17908D240E8771EB52E4396AB6DA2157F3EE55D0C0E20A52C560FD7A5DD04FF |
93 | 20180403084609 2 6 100 3071 5 FF8DCF143A9E3CC447F8D3D03206E386572BFAC54F4BDE233C8B1223CC9CBA99689328E35F8F83F0922A9F0AB33E7C7892E940377CE0064700ECDCC8532F0FEF888913E1894054707878511DD84455BEACCA35E8418D6CAD03111BC1842581D40E280A13055030CB35339E2A0E422DB9EC47916AD6302BE248AD5EBCCE7CF087CB2285A6B8D227DC7130ADB14163BE4D1AA779DBCD36710AA080F219B535B1887392DE9EF44116C933F5CA2234A7A82A8A48F1691A39434D70E3C3995AEE7CEAFF86DAA2326CF367B7E3C7939E4B78A00EE58E52F7BB36C8A89525CA4D44173E30AA6B40FD0B60C29F6CBC763241AC5DA16E2A9FB9B78F360EED32704B686AD6D40DAE8127C9351A2B21C140292E77592A7159000FB2AA9561DA10B2AC3167CC8E41C10CDF86E9041A3A114F42EF4AA5134C716893E81C3A7488ED5131073FC76B20358549BF1B0858B571550663DA9CF73B7B28BF9CA1FAF8EC96966D493C174B03DBCF9B5470DD9A79FB3E14A0B73B6E6C09D531886ACF60E51B570B1FC24F | 93 | 20180920090834 2 6 100 2047 5 FAEA3B642004FC1DB17244B7DE6AE7EFEA5B3AB4D54A13674A0E4B460E9D0716E6313530F9BA5D9C959562FD4A1D23FC92D99F1060A3C1B374050C77152C461AEC19CBE7AD6818C48CC9568FF8F4E45367C1053D6DEBCF76BD4DE8E3BA808FA43A3649722202C83417ED96F423DCEA18BB3F99E4598C797D05E0D3E6D2E27A5EC0B10304BB7643AEA01DD989AE84AA4B08AC3AA5613C222C41F5CD46EAF191343F1D07664F2D6E7BC876BFC46CFEFBE50991EBC15664112F6DC8D58D6665B9BB9F974D7210AB8E04F963128E43D92B6D645A963121058BA29C668AC5DA81DF3CC17908D240E8771EB52E4396AB6DA2157F3EE55D0C0E20A52C560FD7A5E3B3D7 |
94 | 20180403084705 2 6 100 3071 2 FF8DCF143A9E3CC447F8D3D03206E386572BFAC54F4BDE233C8B1223CC9CBA99689328E35F8F83F0922A9F0AB33E7C7892E940377CE0064700ECDCC8532F0FEF888913E1894054707878511DD84455BEACCA35E8418D6CAD03111BC1842581D40E280A13055030CB35339E2A0E422DB9EC47916AD6302BE248AD5EBCCE7CF087CB2285A6B8D227DC7130ADB14163BE4D1AA779DBCD36710AA080F219B535B1887392DE9EF44116C933F5CA2234A7A82A8A48F1691A39434D70E3C3995AEE7CEAFF86DAA2326CF367B7E3C7939E4B78A00EE58E52F7BB36C8A89525CA4D44173E30AA6B40FD0B60C29F6CBC763241AC5DA16E2A9FB9B78F360EED32704B686AD6D40DAE8127C9351A2B21C140292E77592A7159000FB2AA9561DA10B2AC3167CC8E41C10CDF86E9041A3A114F42EF4AA5134C716893E81C3A7488ED5131073FC76B20358549BF1B0858B571550663DA9CF73B7B28BF9CA1FAF8EC96966D493C174B03DBCF9B5470DD9A79FB3E14A0B73B6E6C09D531886ACF60E51B570B262033 | 94 | 20180920090935 2 6 100 2047 5 FAEA3B642004FC1DB17244B7DE6AE7EFEA5B3AB4D54A13674A0E4B460E9D0716E6313530F9BA5D9C959562FD4A1D23FC92D99F1060A3C1B374050C77152C461AEC19CBE7AD6818C48CC9568FF8F4E45367C1053D6DEBCF76BD4DE8E3BA808FA43A3649722202C83417ED96F423DCEA18BB3F99E4598C797D05E0D3E6D2E27A5EC0B10304BB7643AEA01DD989AE84AA4B08AC3AA5613C222C41F5CD46EAF191343F1D07664F2D6E7BC876BFC46CFEFBE50991EBC15664112F6DC8D58D6665B9BB9F974D7210AB8E04F963128E43D92B6D645A963121058BA29C668AC5DA81DF3CC17908D240E8771EB52E4396AB6DA2157F3EE55D0C0E20A52C560FD7A660A94F |
95 | 20180403084905 2 6 100 3071 2 FF8DCF143A9E3CC447F8D3D03206E386572BFAC54F4BDE233C8B1223CC9CBA99689328E35F8F83F0922A9F0AB33E7C7892E940377CE0064700ECDCC8532F0FEF888913E1894054707878511DD84455BEACCA35E8418D6CAD03111BC1842581D40E280A13055030CB35339E2A0E422DB9EC47916AD6302BE248AD5EBCCE7CF087CB2285A6B8D227DC7130ADB14163BE4D1AA779DBCD36710AA080F219B535B1887392DE9EF44116C933F5CA2234A7A82A8A48F1691A39434D70E3C3995AEE7CEAFF86DAA2326CF367B7E3C7939E4B78A00EE58E52F7BB36C8A89525CA4D44173E30AA6B40FD0B60C29F6CBC763241AC5DA16E2A9FB9B78F360EED32704B686AD6D40DAE8127C9351A2B21C140292E77592A7159000FB2AA9561DA10B2AC3167CC8E41C10CDF86E9041A3A114F42EF4AA5134C716893E81C3A7488ED5131073FC76B20358549BF1B0858B571550663DA9CF73B7B28BF9CA1FAF8EC96966D493C174B03DBCF9B5470DD9A79FB3E14A0B73B6E6C09D531886ACF60E51B570B3DD5AB | 95 | 20180920091000 2 6 100 2047 5 FAEA3B642004FC1DB17244B7DE6AE7EFEA5B3AB4D54A13674A0E4B460E9D0716E6313530F9BA5D9C959562FD4A1D23FC92D99F1060A3C1B374050C77152C461AEC19CBE7AD6818C48CC9568FF8F4E45367C1053D6DEBCF76BD4DE8E3BA808FA43A3649722202C83417ED96F423DCEA18BB3F99E4598C797D05E0D3E6D2E27A5EC0B10304BB7643AEA01DD989AE84AA4B08AC3AA5613C222C41F5CD46EAF191343F1D07664F2D6E7BC876BFC46CFEFBE50991EBC15664112F6DC8D58D6665B9BB9F974D7210AB8E04F963128E43D92B6D645A963121058BA29C668AC5DA81DF3CC17908D240E8771EB52E4396AB6DA2157F3EE55D0C0E20A52C560FD7A68FC267 |
96 | 20180403085348 2 6 100 3071 2 FF8DCF143A9E3CC447F8D3D03206E386572BFAC54F4BDE233C8B1223CC9CBA99689328E35F8F83F0922A9F0AB33E7C7892E940377CE0064700ECDCC8532F0FEF888913E1894054707878511DD84455BEACCA35E8418D6CAD03111BC1842581D40E280A13055030CB35339E2A0E422DB9EC47916AD6302BE248AD5EBCCE7CF087CB2285A6B8D227DC7130ADB14163BE4D1AA779DBCD36710AA080F219B535B1887392DE9EF44116C933F5CA2234A7A82A8A48F1691A39434D70E3C3995AEE7CEAFF86DAA2326CF367B7E3C7939E4B78A00EE58E52F7BB36C8A89525CA4D44173E30AA6B40FD0B60C29F6CBC763241AC5DA16E2A9FB9B78F360EED32704B686AD6D40DAE8127C9351A2B21C140292E77592A7159000FB2AA9561DA10B2AC3167CC8E41C10CDF86E9041A3A114F42EF4AA5134C716893E81C3A7488ED5131073FC76B20358549BF1B0858B571550663DA9CF73B7B28BF9CA1FAF8EC96966D493C174B03DBCF9B5470DD9A79FB3E14A0B73B6E6C09D531886ACF60E51B570B82B95B | 96 | 20180920094201 2 6 100 3071 5 DE6700153B27F195B230266F3E9064D8646E4E27111A6C5A013DE98A5CD7F11B31B1DC4C71DD72CBEC38DA508B1AD04CB69A372B8D01396C5AE7F5F99C3C3CBE1B2B3287C6AB5794E3AFD6C4E5C8E23B76E21A479765DD7D0D8D41A75DA966486E2C94030AA81314CFC104172048A82D95F402FA9B12E2CF3469AF6202F527BB5FADD82F7F5A67CF47EAA9F70FA02A55D45688EC65A26E8A8BCBD47BEA5C70721995434D0736F3396E9D1681BB08A336B0A9E3340AA24D1E9AC4B33103438C130B4BB87A22D3D85B8BC66B66679790AF7429D0B8F8CEE9BFA7F34239E0F109DABE5370196CB46C134B184178ED494D4703A681A18FFE9A4D6FF5EE71E141EBE11C6E3A6FEE7586F9D5B400EFDF06289783269BD86F1F38CABB0FBEAE666C0FE9EDAF7D1017DCCFBC4AEE1F1BE6FDA3EBD47C7E2BA2D54CC61B740E94B171E0FC2A0F93BF1B93FA4C1D6050106D20A69C11B16AC43EA17C6EE954444B05DCCAD5DAB6794A98FEE7256EA9B1F817E80D86C9242CFA02EED926E200C7B11528E4B7 |
97 | 20180403090858 2 6 100 3071 5 FF8DCF143A9E3CC447F8D3D03206E386572BFAC54F4BDE233C8B1223CC9CBA99689328E35F8F83F0922A9F0AB33E7C7892E940377CE0064700ECDCC8532F0FEF888913E1894054707878511DD84455BEACCA35E8418D6CAD03111BC1842581D40E280A13055030CB35339E2A0E422DB9EC47916AD6302BE248AD5EBCCE7CF087CB2285A6B8D227DC7130ADB14163BE4D1AA779DBCD36710AA080F219B535B1887392DE9EF44116C933F5CA2234A7A82A8A48F1691A39434D70E3C3995AEE7CEAFF86DAA2326CF367B7E3C7939E4B78A00EE58E52F7BB36C8A89525CA4D44173E30AA6B40FD0B60C29F6CBC763241AC5DA16E2A9FB9B78F360EED32704B686AD6D40DAE8127C9351A2B21C140292E77592A7159000FB2AA9561DA10B2AC3167CC8E41C10CDF86E9041A3A114F42EF4AA5134C716893E81C3A7488ED5131073FC76B20358549BF1B0858B571550663DA9CF73B7B28BF9CA1FAF8EC96966D493C174B03DBCF9B5470DD9A79FB3E14A0B73B6E6C09D531886ACF60E51B570C6C2E5F | 97 | 20180920094613 2 6 100 3071 2 DE6700153B27F195B230266F3E9064D8646E4E27111A6C5A013DE98A5CD7F11B31B1DC4C71DD72CBEC38DA508B1AD04CB69A372B8D01396C5AE7F5F99C3C3CBE1B2B3287C6AB5794E3AFD6C4E5C8E23B76E21A479765DD7D0D8D41A75DA966486E2C94030AA81314CFC104172048A82D95F402FA9B12E2CF3469AF6202F527BB5FADD82F7F5A67CF47EAA9F70FA02A55D45688EC65A26E8A8BCBD47BEA5C70721995434D0736F3396E9D1681BB08A336B0A9E3340AA24D1E9AC4B33103438C130B4BB87A22D3D85B8BC66B66679790AF7429D0B8F8CEE9BFA7F34239E0F109DABE5370196CB46C134B184178ED494D4703A681A18FFE9A4D6FF5EE71E141EBE11C6E3A6FEE7586F9D5B400EFDF06289783269BD86F1F38CABB0FBEAE666C0FE9EDAF7D1017DCCFBC4AEE1F1BE6FDA3EBD47C7E2BA2D54CC61B740E94B171E0FC2A0F93BF1B93FA4C1D6050106D20A69C11B16AC43EA17C6EE954444B05DCCAD5DAB6794A98FEE7256EA9B1F817E80D86C9242CFA02EED926E200C7B115D90A53 |
98 | 20180403091014 2 6 100 3071 2 FF8DCF143A9E3CC447F8D3D03206E386572BFAC54F4BDE233C8B1223CC9CBA99689328E35F8F83F0922A9F0AB33E7C7892E940377CE0064700ECDCC8532F0FEF888913E1894054707878511DD84455BEACCA35E8418D6CAD03111BC1842581D40E280A13055030CB35339E2A0E422DB9EC47916AD6302BE248AD5EBCCE7CF087CB2285A6B8D227DC7130ADB14163BE4D1AA779DBCD36710AA080F219B535B1887392DE9EF44116C933F5CA2234A7A82A8A48F1691A39434D70E3C3995AEE7CEAFF86DAA2326CF367B7E3C7939E4B78A00EE58E52F7BB36C8A89525CA4D44173E30AA6B40FD0B60C29F6CBC763241AC5DA16E2A9FB9B78F360EED32704B686AD6D40DAE8127C9351A2B21C140292E77592A7159000FB2AA9561DA10B2AC3167CC8E41C10CDF86E9041A3A114F42EF4AA5134C716893E81C3A7488ED5131073FC76B20358549BF1B0858B571550663DA9CF73B7B28BF9CA1FAF8EC96966D493C174B03DBCF9B5470DD9A79FB3E14A0B73B6E6C09D531886ACF60E51B570C766563 | 98 | 20180920094828 2 6 100 3071 5 DE6700153B27F195B230266F3E9064D8646E4E27111A6C5A013DE98A5CD7F11B31B1DC4C71DD72CBEC38DA508B1AD04CB69A372B8D01396C5AE7F5F99C3C3CBE1B2B3287C6AB5794E3AFD6C4E5C8E23B76E21A479765DD7D0D8D41A75DA966486E2C94030AA81314CFC104172048A82D95F402FA9B12E2CF3469AF6202F527BB5FADD82F7F5A67CF47EAA9F70FA02A55D45688EC65A26E8A8BCBD47BEA5C70721995434D0736F3396E9D1681BB08A336B0A9E3340AA24D1E9AC4B33103438C130B4BB87A22D3D85B8BC66B66679790AF7429D0B8F8CEE9BFA7F34239E0F109DABE5370196CB46C134B184178ED494D4703A681A18FFE9A4D6FF5EE71E141EBE11C6E3A6FEE7586F9D5B400EFDF06289783269BD86F1F38CABB0FBEAE666C0FE9EDAF7D1017DCCFBC4AEE1F1BE6FDA3EBD47C7E2BA2D54CC61B740E94B171E0FC2A0F93BF1B93FA4C1D6050106D20A69C11B16AC43EA17C6EE954444B05DCCAD5DAB6794A98FEE7256EA9B1F817E80D86C9242CFA02EED926E200C7B116301C17 |
99 | 20180403092356 2 6 100 3071 5 FF8DCF143A9E3CC447F8D3D03206E386572BFAC54F4BDE233C8B1223CC9CBA99689328E35F8F83F0922A9F0AB33E7C7892E940377CE0064700ECDCC8532F0FEF888913E1894054707878511DD84455BEACCA35E8418D6CAD03111BC1842581D40E280A13055030CB35339E2A0E422DB9EC47916AD6302BE248AD5EBCCE7CF087CB2285A6B8D227DC7130ADB14163BE4D1AA779DBCD36710AA080F219B535B1887392DE9EF44116C933F5CA2234A7A82A8A48F1691A39434D70E3C3995AEE7CEAFF86DAA2326CF367B7E3C7939E4B78A00EE58E52F7BB36C8A89525CA4D44173E30AA6B40FD0B60C29F6CBC763241AC5DA16E2A9FB9B78F360EED32704B686AD6D40DAE8127C9351A2B21C140292E77592A7159000FB2AA9561DA10B2AC3167CC8E41C10CDF86E9041A3A114F42EF4AA5134C716893E81C3A7488ED5131073FC76B20358549BF1B0858B571550663DA9CF73B7B28BF9CA1FAF8EC96966D493C174B03DBCF9B5470DD9A79FB3E14A0B73B6E6C09D531886ACF60E51B570D49B077 | 99 | 20180920094842 2 6 100 3071 5 DE6700153B27F195B230266F3E9064D8646E4E27111A6C5A013DE98A5CD7F11B31B1DC4C71DD72CBEC38DA508B1AD04CB69A372B8D01396C5AE7F5F99C3C3CBE1B2B3287C6AB5794E3AFD6C4E5C8E23B76E21A479765DD7D0D8D41A75DA966486E2C94030AA81314CFC104172048A82D95F402FA9B12E2CF3469AF6202F527BB5FADD82F7F5A67CF47EAA9F70FA02A55D45688EC65A26E8A8BCBD47BEA5C70721995434D0736F3396E9D1681BB08A336B0A9E3340AA24D1E9AC4B33103438C130B4BB87A22D3D85B8BC66B66679790AF7429D0B8F8CEE9BFA7F34239E0F109DABE5370196CB46C134B184178ED494D4703A681A18FFE9A4D6FF5EE71E141EBE11C6E3A6FEE7586F9D5B400EFDF06289783269BD86F1F38CABB0FBEAE666C0FE9EDAF7D1017DCCFBC4AEE1F1BE6FDA3EBD47C7E2BA2D54CC61B740E94B171E0FC2A0F93BF1B93FA4C1D6050106D20A69C11B16AC43EA17C6EE954444B05DCCAD5DAB6794A98FEE7256EA9B1F817E80D86C9242CFA02EED926E200C7B11631DCAF |
100 | 20180403092842 2 6 100 3071 2 FF8DCF143A9E3CC447F8D3D03206E386572BFAC54F4BDE233C8B1223CC9CBA99689328E35F8F83F0922A9F0AB33E7C7892E940377CE0064700ECDCC8532F0FEF888913E1894054707878511DD84455BEACCA35E8418D6CAD03111BC1842581D40E280A13055030CB35339E2A0E422DB9EC47916AD6302BE248AD5EBCCE7CF087CB2285A6B8D227DC7130ADB14163BE4D1AA779DBCD36710AA080F219B535B1887392DE9EF44116C933F5CA2234A7A82A8A48F1691A39434D70E3C3995AEE7CEAFF86DAA2326CF367B7E3C7939E4B78A00EE58E52F7BB36C8A89525CA4D44173E30AA6B40FD0B60C29F6CBC763241AC5DA16E2A9FB9B78F360EED32704B686AD6D40DAE8127C9351A2B21C140292E77592A7159000FB2AA9561DA10B2AC3167CC8E41C10CDF86E9041A3A114F42EF4AA5134C716893E81C3A7488ED5131073FC76B20358549BF1B0858B571550663DA9CF73B7B28BF9CA1FAF8EC96966D493C174B03DBCF9B5470DD9A79FB3E14A0B73B6E6C09D531886ACF60E51B570D8D7FEB | 100 | 20180920095300 2 6 100 3071 2 DE6700153B27F195B230266F3E9064D8646E4E27111A6C5A013DE98A5CD7F11B31B1DC4C71DD72CBEC38DA508B1AD04CB69A372B8D01396C5AE7F5F99C3C3CBE1B2B3287C6AB5794E3AFD6C4E5C8E23B76E21A479765DD7D0D8D41A75DA966486E2C94030AA81314CFC104172048A82D95F402FA9B12E2CF3469AF6202F527BB5FADD82F7F5A67CF47EAA9F70FA02A55D45688EC65A26E8A8BCBD47BEA5C70721995434D0736F3396E9D1681BB08A336B0A9E3340AA24D1E9AC4B33103438C130B4BB87A22D3D85B8BC66B66679790AF7429D0B8F8CEE9BFA7F34239E0F109DABE5370196CB46C134B184178ED494D4703A681A18FFE9A4D6FF5EE71E141EBE11C6E3A6FEE7586F9D5B400EFDF06289783269BD86F1F38CABB0FBEAE666C0FE9EDAF7D1017DCCFBC4AEE1F1BE6FDA3EBD47C7E2BA2D54CC61B740E94B171E0FC2A0F93BF1B93FA4C1D6050106D20A69C11B16AC43EA17C6EE954444B05DCCAD5DAB6794A98FEE7256EA9B1F817E80D86C9242CFA02EED926E200C7B116E4CA3B |
101 | 20180403093424 2 6 100 3071 5 FF8DCF143A9E3CC447F8D3D03206E386572BFAC54F4BDE233C8B1223CC9CBA99689328E35F8F83F0922A9F0AB33E7C7892E940377CE0064700ECDCC8532F0FEF888913E1894054707878511DD84455BEACCA35E8418D6CAD03111BC1842581D40E280A13055030CB35339E2A0E422DB9EC47916AD6302BE248AD5EBCCE7CF087CB2285A6B8D227DC7130ADB14163BE4D1AA779DBCD36710AA080F219B535B1887392DE9EF44116C933F5CA2234A7A82A8A48F1691A39434D70E3C3995AEE7CEAFF86DAA2326CF367B7E3C7939E4B78A00EE58E52F7BB36C8A89525CA4D44173E30AA6B40FD0B60C29F6CBC763241AC5DA16E2A9FB9B78F360EED32704B686AD6D40DAE8127C9351A2B21C140292E77592A7159000FB2AA9561DA10B2AC3167CC8E41C10CDF86E9041A3A114F42EF4AA5134C716893E81C3A7488ED5131073FC76B20358549BF1B0858B571550663DA9CF73B7B28BF9CA1FAF8EC96966D493C174B03DBCF9B5470DD9A79FB3E14A0B73B6E6C09D531886ACF60E51B570DE274D7 | 101 | 20180920095312 2 6 100 3071 2 DE6700153B27F195B230266F3E9064D8646E4E27111A6C5A013DE98A5CD7F11B31B1DC4C71DD72CBEC38DA508B1AD04CB69A372B8D01396C5AE7F5F99C3C3CBE1B2B3287C6AB5794E3AFD6C4E5C8E23B76E21A479765DD7D0D8D41A75DA966486E2C94030AA81314CFC104172048A82D95F402FA9B12E2CF3469AF6202F527BB5FADD82F7F5A67CF47EAA9F70FA02A55D45688EC65A26E8A8BCBD47BEA5C70721995434D0736F3396E9D1681BB08A336B0A9E3340AA24D1E9AC4B33103438C130B4BB87A22D3D85B8BC66B66679790AF7429D0B8F8CEE9BFA7F34239E0F109DABE5370196CB46C134B184178ED494D4703A681A18FFE9A4D6FF5EE71E141EBE11C6E3A6FEE7586F9D5B400EFDF06289783269BD86F1F38CABB0FBEAE666C0FE9EDAF7D1017DCCFBC4AEE1F1BE6FDA3EBD47C7E2BA2D54CC61B740E94B171E0FC2A0F93BF1B93FA4C1D6050106D20A69C11B16AC43EA17C6EE954444B05DCCAD5DAB6794A98FEE7256EA9B1F817E80D86C9242CFA02EED926E200C7B116E4E133 |
102 | 20180403093850 2 6 100 3071 2 FF8DCF143A9E3CC447F8D3D03206E386572BFAC54F4BDE233C8B1223CC9CBA99689328E35F8F83F0922A9F0AB33E7C7892E940377CE0064700ECDCC8532F0FEF888913E1894054707878511DD84455BEACCA35E8418D6CAD03111BC1842581D40E280A13055030CB35339E2A0E422DB9EC47916AD6302BE248AD5EBCCE7CF087CB2285A6B8D227DC7130ADB14163BE4D1AA779DBCD36710AA080F219B535B1887392DE9EF44116C933F5CA2234A7A82A8A48F1691A39434D70E3C3995AEE7CEAFF86DAA2326CF367B7E3C7939E4B78A00EE58E52F7BB36C8A89525CA4D44173E30AA6B40FD0B60C29F6CBC763241AC5DA16E2A9FB9B78F360EED32704B686AD6D40DAE8127C9351A2B21C140292E77592A7159000FB2AA9561DA10B2AC3167CC8E41C10CDF86E9041A3A114F42EF4AA5134C716893E81C3A7488ED5131073FC76B20358549BF1B0858B571550663DA9CF73B7B28BF9CA1FAF8EC96966D493C174B03DBCF9B5470DD9A79FB3E14A0B73B6E6C09D531886ACF60E51B570E28C2BB | 102 | 20180920095413 2 6 100 3071 2 DE6700153B27F195B230266F3E9064D8646E4E27111A6C5A013DE98A5CD7F11B31B1DC4C71DD72CBEC38DA508B1AD04CB69A372B8D01396C5AE7F5F99C3C3CBE1B2B3287C6AB5794E3AFD6C4E5C8E23B76E21A479765DD7D0D8D41A75DA966486E2C94030AA81314CFC104172048A82D95F402FA9B12E2CF3469AF6202F527BB5FADD82F7F5A67CF47EAA9F70FA02A55D45688EC65A26E8A8BCBD47BEA5C70721995434D0736F3396E9D1681BB08A336B0A9E3340AA24D1E9AC4B33103438C130B4BB87A22D3D85B8BC66B66679790AF7429D0B8F8CEE9BFA7F34239E0F109DABE5370196CB46C134B184178ED494D4703A681A18FFE9A4D6FF5EE71E141EBE11C6E3A6FEE7586F9D5B400EFDF06289783269BD86F1F38CABB0FBEAE666C0FE9EDAF7D1017DCCFBC4AEE1F1BE6FDA3EBD47C7E2BA2D54CC61B740E94B171E0FC2A0F93BF1B93FA4C1D6050106D20A69C11B16AC43EA17C6EE954444B05DCCAD5DAB6794A98FEE7256EA9B1F817E80D86C9242CFA02EED926E200C7B117068663 |
103 | 20180403094634 2 6 100 3071 5 FF8DCF143A9E3CC447F8D3D03206E386572BFAC54F4BDE233C8B1223CC9CBA99689328E35F8F83F0922A9F0AB33E7C7892E940377CE0064700ECDCC8532F0FEF888913E1894054707878511DD84455BEACCA35E8418D6CAD03111BC1842581D40E280A13055030CB35339E2A0E422DB9EC47916AD6302BE248AD5EBCCE7CF087CB2285A6B8D227DC7130ADB14163BE4D1AA779DBCD36710AA080F219B535B1887392DE9EF44116C933F5CA2234A7A82A8A48F1691A39434D70E3C3995AEE7CEAFF86DAA2326CF367B7E3C7939E4B78A00EE58E52F7BB36C8A89525CA4D44173E30AA6B40FD0B60C29F6CBC763241AC5DA16E2A9FB9B78F360EED32704B686AD6D40DAE8127C9351A2B21C140292E77592A7159000FB2AA9561DA10B2AC3167CC8E41C10CDF86E9041A3A114F42EF4AA5134C716893E81C3A7488ED5131073FC76B20358549BF1B0858B571550663DA9CF73B7B28BF9CA1FAF8EC96966D493C174B03DBCF9B5470DD9A79FB3E14A0B73B6E6C09D531886ACF60E51B570EA36EDF | 103 | 20180920095436 2 6 100 3071 5 DE6700153B27F195B230266F3E9064D8646E4E27111A6C5A013DE98A5CD7F11B31B1DC4C71DD72CBEC38DA508B1AD04CB69A372B8D01396C5AE7F5F99C3C3CBE1B2B3287C6AB5794E3AFD6C4E5C8E23B76E21A479765DD7D0D8D41A75DA966486E2C94030AA81314CFC104172048A82D95F402FA9B12E2CF3469AF6202F527BB5FADD82F7F5A67CF47EAA9F70FA02A55D45688EC65A26E8A8BCBD47BEA5C70721995434D0736F3396E9D1681BB08A336B0A9E3340AA24D1E9AC4B33103438C130B4BB87A22D3D85B8BC66B66679790AF7429D0B8F8CEE9BFA7F34239E0F109DABE5370196CB46C134B184178ED494D4703A681A18FFE9A4D6FF5EE71E141EBE11C6E3A6FEE7586F9D5B400EFDF06289783269BD86F1F38CABB0FBEAE666C0FE9EDAF7D1017DCCFBC4AEE1F1BE6FDA3EBD47C7E2BA2D54CC61B740E94B171E0FC2A0F93BF1B93FA4C1D6050106D20A69C11B16AC43EA17C6EE954444B05DCCAD5DAB6794A98FEE7256EA9B1F817E80D86C9242CFA02EED926E200C7B1170E270F |
104 | 20180403094738 2 6 100 3071 2 FF8DCF143A9E3CC447F8D3D03206E386572BFAC54F4BDE233C8B1223CC9CBA99689328E35F8F83F0922A9F0AB33E7C7892E940377CE0064700ECDCC8532F0FEF888913E1894054707878511DD84455BEACCA35E8418D6CAD03111BC1842581D40E280A13055030CB35339E2A0E422DB9EC47916AD6302BE248AD5EBCCE7CF087CB2285A6B8D227DC7130ADB14163BE4D1AA779DBCD36710AA080F219B535B1887392DE9EF44116C933F5CA2234A7A82A8A48F1691A39434D70E3C3995AEE7CEAFF86DAA2326CF367B7E3C7939E4B78A00EE58E52F7BB36C8A89525CA4D44173E30AA6B40FD0B60C29F6CBC763241AC5DA16E2A9FB9B78F360EED32704B686AD6D40DAE8127C9351A2B21C140292E77592A7159000FB2AA9561DA10B2AC3167CC8E41C10CDF86E9041A3A114F42EF4AA5134C716893E81C3A7488ED5131073FC76B20358549BF1B0858B571550663DA9CF73B7B28BF9CA1FAF8EC96966D493C174B03DBCF9B5470DD9A79FB3E14A0B73B6E6C09D531886ACF60E51B570EACDABB | 104 | 20180920100204 2 6 100 3071 2 DE6700153B27F195B230266F3E9064D8646E4E27111A6C5A013DE98A5CD7F11B31B1DC4C71DD72CBEC38DA508B1AD04CB69A372B8D01396C5AE7F5F99C3C3CBE1B2B3287C6AB5794E3AFD6C4E5C8E23B76E21A479765DD7D0D8D41A75DA966486E2C94030AA81314CFC104172048A82D95F402FA9B12E2CF3469AF6202F527BB5FADD82F7F5A67CF47EAA9F70FA02A55D45688EC65A26E8A8BCBD47BEA5C70721995434D0736F3396E9D1681BB08A336B0A9E3340AA24D1E9AC4B33103438C130B4BB87A22D3D85B8BC66B66679790AF7429D0B8F8CEE9BFA7F34239E0F109DABE5370196CB46C134B184178ED494D4703A681A18FFE9A4D6FF5EE71E141EBE11C6E3A6FEE7586F9D5B400EFDF06289783269BD86F1F38CABB0FBEAE666C0FE9EDAF7D1017DCCFBC4AEE1F1BE6FDA3EBD47C7E2BA2D54CC61B740E94B171E0FC2A0F93BF1B93FA4C1D6050106D20A69C11B16AC43EA17C6EE954444B05DCCAD5DAB6794A98FEE7256EA9B1F817E80D86C9242CFA02EED926E200C7B1184656D3 |
105 | 20180403095906 2 6 100 3071 2 FF8DCF143A9E3CC447F8D3D03206E386572BFAC54F4BDE233C8B1223CC9CBA99689328E35F8F83F0922A9F0AB33E7C7892E940377CE0064700ECDCC8532F0FEF888913E1894054707878511DD84455BEACCA35E8418D6CAD03111BC1842581D40E280A13055030CB35339E2A0E422DB9EC47916AD6302BE248AD5EBCCE7CF087CB2285A6B8D227DC7130ADB14163BE4D1AA779DBCD36710AA080F219B535B1887392DE9EF44116C933F5CA2234A7A82A8A48F1691A39434D70E3C3995AEE7CEAFF86DAA2326CF367B7E3C7939E4B78A00EE58E52F7BB36C8A89525CA4D44173E30AA6B40FD0B60C29F6CBC763241AC5DA16E2A9FB9B78F360EED32704B686AD6D40DAE8127C9351A2B21C140292E77592A7159000FB2AA9561DA10B2AC3167CC8E41C10CDF86E9041A3A114F42EF4AA5134C716893E81C3A7488ED5131073FC76B20358549BF1B0858B571550663DA9CF73B7B28BF9CA1FAF8EC96966D493C174B03DBCF9B5470DD9A79FB3E14A0B73B6E6C09D531886ACF60E51B570F67B813 | 105 | 20180920100341 2 6 100 3071 5 DE6700153B27F195B230266F3E9064D8646E4E27111A6C5A013DE98A5CD7F11B31B1DC4C71DD72CBEC38DA508B1AD04CB69A372B8D01396C5AE7F5F99C3C3CBE1B2B3287C6AB5794E3AFD6C4E5C8E23B76E21A479765DD7D0D8D41A75DA966486E2C94030AA81314CFC104172048A82D95F402FA9B12E2CF3469AF6202F527BB5FADD82F7F5A67CF47EAA9F70FA02A55D45688EC65A26E8A8BCBD47BEA5C70721995434D0736F3396E9D1681BB08A336B0A9E3340AA24D1E9AC4B33103438C130B4BB87A22D3D85B8BC66B66679790AF7429D0B8F8CEE9BFA7F34239E0F109DABE5370196CB46C134B184178ED494D4703A681A18FFE9A4D6FF5EE71E141EBE11C6E3A6FEE7586F9D5B400EFDF06289783269BD86F1F38CABB0FBEAE666C0FE9EDAF7D1017DCCFBC4AEE1F1BE6FDA3EBD47C7E2BA2D54CC61B740E94B171E0FC2A0F93BF1B93FA4C1D6050106D20A69C11B16AC43EA17C6EE954444B05DCCAD5DAB6794A98FEE7256EA9B1F817E80D86C9242CFA02EED926E200C7B11883D577 |
106 | 20180403101909 2 6 100 3071 5 FF8DCF143A9E3CC447F8D3D03206E386572BFAC54F4BDE233C8B1223CC9CBA99689328E35F8F83F0922A9F0AB33E7C7892E940377CE0064700ECDCC8532F0FEF888913E1894054707878511DD84455BEACCA35E8418D6CAD03111BC1842581D40E280A13055030CB35339E2A0E422DB9EC47916AD6302BE248AD5EBCCE7CF087CB2285A6B8D227DC7130ADB14163BE4D1AA779DBCD36710AA080F219B535B1887392DE9EF44116C933F5CA2234A7A82A8A48F1691A39434D70E3C3995AEE7CEAFF86DAA2326CF367B7E3C7939E4B78A00EE58E52F7BB36C8A89525CA4D44173E30AA6B40FD0B60C29F6CBC763241AC5DA16E2A9FB9B78F360EED32704B686AD6D40DAE8127C9351A2B21C140292E77592A7159000FB2AA9561DA10B2AC3167CC8E41C10CDF86E9041A3A114F42EF4AA5134C716893E81C3A7488ED5131073FC76B20358549BF1B0858B571550663DA9CF73B7B28BF9CA1FAF8EC96966D493C174B03DBCF9B5470DD9A79FB3E14A0B73B6E6C09D531886ACF60E51B5710AFC157 | 106 | 20180920100505 2 6 100 3071 2 DE6700153B27F195B230266F3E9064D8646E4E27111A6C5A013DE98A5CD7F11B31B1DC4C71DD72CBEC38DA508B1AD04CB69A372B8D01396C5AE7F5F99C3C3CBE1B2B3287C6AB5794E3AFD6C4E5C8E23B76E21A479765DD7D0D8D41A75DA966486E2C94030AA81314CFC104172048A82D95F402FA9B12E2CF3469AF6202F527BB5FADD82F7F5A67CF47EAA9F70FA02A55D45688EC65A26E8A8BCBD47BEA5C70721995434D0736F3396E9D1681BB08A336B0A9E3340AA24D1E9AC4B33103438C130B4BB87A22D3D85B8BC66B66679790AF7429D0B8F8CEE9BFA7F34239E0F109DABE5370196CB46C134B184178ED494D4703A681A18FFE9A4D6FF5EE71E141EBE11C6E3A6FEE7586F9D5B400EFDF06289783269BD86F1F38CABB0FBEAE666C0FE9EDAF7D1017DCCFBC4AEE1F1BE6FDA3EBD47C7E2BA2D54CC61B740E94B171E0FC2A0F93BF1B93FA4C1D6050106D20A69C11B16AC43EA17C6EE954444B05DCCAD5DAB6794A98FEE7256EA9B1F817E80D86C9242CFA02EED926E200C7B118B728DB |
107 | 20180403102057 2 6 100 3071 2 FF8DCF143A9E3CC447F8D3D03206E386572BFAC54F4BDE233C8B1223CC9CBA99689328E35F8F83F0922A9F0AB33E7C7892E940377CE0064700ECDCC8532F0FEF888913E1894054707878511DD84455BEACCA35E8418D6CAD03111BC1842581D40E280A13055030CB35339E2A0E422DB9EC47916AD6302BE248AD5EBCCE7CF087CB2285A6B8D227DC7130ADB14163BE4D1AA779DBCD36710AA080F219B535B1887392DE9EF44116C933F5CA2234A7A82A8A48F1691A39434D70E3C3995AEE7CEAFF86DAA2326CF367B7E3C7939E4B78A00EE58E52F7BB36C8A89525CA4D44173E30AA6B40FD0B60C29F6CBC763241AC5DA16E2A9FB9B78F360EED32704B686AD6D40DAE8127C9351A2B21C140292E77592A7159000FB2AA9561DA10B2AC3167CC8E41C10CDF86E9041A3A114F42EF4AA5134C716893E81C3A7488ED5131073FC76B20358549BF1B0858B571550663DA9CF73B7B28BF9CA1FAF8EC96966D493C174B03DBCF9B5470DD9A79FB3E14A0B73B6E6C09D531886ACF60E51B5710C6E1FB | 107 | 20180920100550 2 6 100 3071 5 DE6700153B27F195B230266F3E9064D8646E4E27111A6C5A013DE98A5CD7F11B31B1DC4C71DD72CBEC38DA508B1AD04CB69A372B8D01396C5AE7F5F99C3C3CBE1B2B3287C6AB5794E3AFD6C4E5C8E23B76E21A479765DD7D0D8D41A75DA966486E2C94030AA81314CFC104172048A82D95F402FA9B12E2CF3469AF6202F527BB5FADD82F7F5A67CF47EAA9F70FA02A55D45688EC65A26E8A8BCBD47BEA5C70721995434D0736F3396E9D1681BB08A336B0A9E3340AA24D1E9AC4B33103438C130B4BB87A22D3D85B8BC66B66679790AF7429D0B8F8CEE9BFA7F34239E0F109DABE5370196CB46C134B184178ED494D4703A681A18FFE9A4D6FF5EE71E141EBE11C6E3A6FEE7586F9D5B400EFDF06289783269BD86F1F38CABB0FBEAE666C0FE9EDAF7D1017DCCFBC4AEE1F1BE6FDA3EBD47C7E2BA2D54CC61B740E94B171E0FC2A0F93BF1B93FA4C1D6050106D20A69C11B16AC43EA17C6EE954444B05DCCAD5DAB6794A98FEE7256EA9B1F817E80D86C9242CFA02EED926E200C7B118D00F87 |
108 | 20180403102257 2 6 100 3071 5 FF8DCF143A9E3CC447F8D3D03206E386572BFAC54F4BDE233C8B1223CC9CBA99689328E35F8F83F0922A9F0AB33E7C7892E940377CE0064700ECDCC8532F0FEF888913E1894054707878511DD84455BEACCA35E8418D6CAD03111BC1842581D40E280A13055030CB35339E2A0E422DB9EC47916AD6302BE248AD5EBCCE7CF087CB2285A6B8D227DC7130ADB14163BE4D1AA779DBCD36710AA080F219B535B1887392DE9EF44116C933F5CA2234A7A82A8A48F1691A39434D70E3C3995AEE7CEAFF86DAA2326CF367B7E3C7939E4B78A00EE58E52F7BB36C8A89525CA4D44173E30AA6B40FD0B60C29F6CBC763241AC5DA16E2A9FB9B78F360EED32704B686AD6D40DAE8127C9351A2B21C140292E77592A7159000FB2AA9561DA10B2AC3167CC8E41C10CDF86E9041A3A114F42EF4AA5134C716893E81C3A7488ED5131073FC76B20358549BF1B0858B571550663DA9CF73B7B28BF9CA1FAF8EC96966D493C174B03DBCF9B5470DD9A79FB3E14A0B73B6E6C09D531886ACF60E51B5710DF2FD7 | 108 | 20180920100609 2 6 100 3071 5 DE6700153B27F195B230266F3E9064D8646E4E27111A6C5A013DE98A5CD7F11B31B1DC4C71DD72CBEC38DA508B1AD04CB69A372B8D01396C5AE7F5F99C3C3CBE1B2B3287C6AB5794E3AFD6C4E5C8E23B76E21A479765DD7D0D8D41A75DA966486E2C94030AA81314CFC104172048A82D95F402FA9B12E2CF3469AF6202F527BB5FADD82F7F5A67CF47EAA9F70FA02A55D45688EC65A26E8A8BCBD47BEA5C70721995434D0736F3396E9D1681BB08A336B0A9E3340AA24D1E9AC4B33103438C130B4BB87A22D3D85B8BC66B66679790AF7429D0B8F8CEE9BFA7F34239E0F109DABE5370196CB46C134B184178ED494D4703A681A18FFE9A4D6FF5EE71E141EBE11C6E3A6FEE7586F9D5B400EFDF06289783269BD86F1F38CABB0FBEAE666C0FE9EDAF7D1017DCCFBC4AEE1F1BE6FDA3EBD47C7E2BA2D54CC61B740E94B171E0FC2A0F93BF1B93FA4C1D6050106D20A69C11B16AC43EA17C6EE954444B05DCCAD5DAB6794A98FEE7256EA9B1F817E80D86C9242CFA02EED926E200C7B118D567E7 |
109 | 20180403102711 2 6 100 3071 5 FF8DCF143A9E3CC447F8D3D03206E386572BFAC54F4BDE233C8B1223CC9CBA99689328E35F8F83F0922A9F0AB33E7C7892E940377CE0064700ECDCC8532F0FEF888913E1894054707878511DD84455BEACCA35E8418D6CAD03111BC1842581D40E280A13055030CB35339E2A0E422DB9EC47916AD6302BE248AD5EBCCE7CF087CB2285A6B8D227DC7130ADB14163BE4D1AA779DBCD36710AA080F219B535B1887392DE9EF44116C933F5CA2234A7A82A8A48F1691A39434D70E3C3995AEE7CEAFF86DAA2326CF367B7E3C7939E4B78A00EE58E52F7BB36C8A89525CA4D44173E30AA6B40FD0B60C29F6CBC763241AC5DA16E2A9FB9B78F360EED32704B686AD6D40DAE8127C9351A2B21C140292E77592A7159000FB2AA9561DA10B2AC3167CC8E41C10CDF86E9041A3A114F42EF4AA5134C716893E81C3A7488ED5131073FC76B20358549BF1B0858B571550663DA9CF73B7B28BF9CA1FAF8EC96966D493C174B03DBCF9B5470DD9A79FB3E14A0B73B6E6C09D531886ACF60E51B57111EFB2F | 109 | 20180920100942 2 6 100 3071 5 DE6700153B27F195B230266F3E9064D8646E4E27111A6C5A013DE98A5CD7F11B31B1DC4C71DD72CBEC38DA508B1AD04CB69A372B8D01396C5AE7F5F99C3C3CBE1B2B3287C6AB5794E3AFD6C4E5C8E23B76E21A479765DD7D0D8D41A75DA966486E2C94030AA81314CFC104172048A82D95F402FA9B12E2CF3469AF6202F527BB5FADD82F7F5A67CF47EAA9F70FA02A55D45688EC65A26E8A8BCBD47BEA5C70721995434D0736F3396E9D1681BB08A336B0A9E3340AA24D1E9AC4B33103438C130B4BB87A22D3D85B8BC66B66679790AF7429D0B8F8CEE9BFA7F34239E0F109DABE5370196CB46C134B184178ED494D4703A681A18FFE9A4D6FF5EE71E141EBE11C6E3A6FEE7586F9D5B400EFDF06289783269BD86F1F38CABB0FBEAE666C0FE9EDAF7D1017DCCFBC4AEE1F1BE6FDA3EBD47C7E2BA2D54CC61B740E94B171E0FC2A0F93BF1B93FA4C1D6050106D20A69C11B16AC43EA17C6EE954444B05DCCAD5DAB6794A98FEE7256EA9B1F817E80D86C9242CFA02EED926E200C7B1196905F7 |
110 | 20180403104106 2 6 100 3071 5 FF8DCF143A9E3CC447F8D3D03206E386572BFAC54F4BDE233C8B1223CC9CBA99689328E35F8F83F0922A9F0AB33E7C7892E940377CE0064700ECDCC8532F0FEF888913E1894054707878511DD84455BEACCA35E8418D6CAD03111BC1842581D40E280A13055030CB35339E2A0E422DB9EC47916AD6302BE248AD5EBCCE7CF087CB2285A6B8D227DC7130ADB14163BE4D1AA779DBCD36710AA080F219B535B1887392DE9EF44116C933F5CA2234A7A82A8A48F1691A39434D70E3C3995AEE7CEAFF86DAA2326CF367B7E3C7939E4B78A00EE58E52F7BB36C8A89525CA4D44173E30AA6B40FD0B60C29F6CBC763241AC5DA16E2A9FB9B78F360EED32704B686AD6D40DAE8127C9351A2B21C140292E77592A7159000FB2AA9561DA10B2AC3167CC8E41C10CDF86E9041A3A114F42EF4AA5134C716893E81C3A7488ED5131073FC76B20358549BF1B0858B571550663DA9CF73B7B28BF9CA1FAF8EC96966D493C174B03DBCF9B5470DD9A79FB3E14A0B73B6E6C09D531886ACF60E51B5711F3B14F | 110 | 20180920101027 2 6 100 3071 2 DE6700153B27F195B230266F3E9064D8646E4E27111A6C5A013DE98A5CD7F11B31B1DC4C71DD72CBEC38DA508B1AD04CB69A372B8D01396C5AE7F5F99C3C3CBE1B2B3287C6AB5794E3AFD6C4E5C8E23B76E21A479765DD7D0D8D41A75DA966486E2C94030AA81314CFC104172048A82D95F402FA9B12E2CF3469AF6202F527BB5FADD82F7F5A67CF47EAA9F70FA02A55D45688EC65A26E8A8BCBD47BEA5C70721995434D0736F3396E9D1681BB08A336B0A9E3340AA24D1E9AC4B33103438C130B4BB87A22D3D85B8BC66B66679790AF7429D0B8F8CEE9BFA7F34239E0F109DABE5370196CB46C134B184178ED494D4703A681A18FFE9A4D6FF5EE71E141EBE11C6E3A6FEE7586F9D5B400EFDF06289783269BD86F1F38CABB0FBEAE666C0FE9EDAF7D1017DCCFBC4AEE1F1BE6FDA3EBD47C7E2BA2D54CC61B740E94B171E0FC2A0F93BF1B93FA4C1D6050106D20A69C11B16AC43EA17C6EE954444B05DCCAD5DAB6794A98FEE7256EA9B1F817E80D86C9242CFA02EED926E200C7B11980B233 |
111 | 20180403104411 2 6 100 3071 5 FF8DCF143A9E3CC447F8D3D03206E386572BFAC54F4BDE233C8B1223CC9CBA99689328E35F8F83F0922A9F0AB33E7C7892E940377CE0064700ECDCC8532F0FEF888913E1894054707878511DD84455BEACCA35E8418D6CAD03111BC1842581D40E280A13055030CB35339E2A0E422DB9EC47916AD6302BE248AD5EBCCE7CF087CB2285A6B8D227DC7130ADB14163BE4D1AA779DBCD36710AA080F219B535B1887392DE9EF44116C933F5CA2234A7A82A8A48F1691A39434D70E3C3995AEE7CEAFF86DAA2326CF367B7E3C7939E4B78A00EE58E52F7BB36C8A89525CA4D44173E30AA6B40FD0B60C29F6CBC763241AC5DA16E2A9FB9B78F360EED32704B686AD6D40DAE8127C9351A2B21C140292E77592A7159000FB2AA9561DA10B2AC3167CC8E41C10CDF86E9041A3A114F42EF4AA5134C716893E81C3A7488ED5131073FC76B20358549BF1B0858B571550663DA9CF73B7B28BF9CA1FAF8EC96966D493C174B03DBCF9B5470DD9A79FB3E14A0B73B6E6C09D531886ACF60E51B5712188817 | 111 | 20180920101047 2 6 100 3071 2 DE6700153B27F195B230266F3E9064D8646E4E27111A6C5A013DE98A5CD7F11B31B1DC4C71DD72CBEC38DA508B1AD04CB69A372B8D01396C5AE7F5F99C3C3CBE1B2B3287C6AB5794E3AFD6C4E5C8E23B76E21A479765DD7D0D8D41A75DA966486E2C94030AA81314CFC104172048A82D95F402FA9B12E2CF3469AF6202F527BB5FADD82F7F5A67CF47EAA9F70FA02A55D45688EC65A26E8A8BCBD47BEA5C70721995434D0736F3396E9D1681BB08A336B0A9E3340AA24D1E9AC4B33103438C130B4BB87A22D3D85B8BC66B66679790AF7429D0B8F8CEE9BFA7F34239E0F109DABE5370196CB46C134B184178ED494D4703A681A18FFE9A4D6FF5EE71E141EBE11C6E3A6FEE7586F9D5B400EFDF06289783269BD86F1F38CABB0FBEAE666C0FE9EDAF7D1017DCCFBC4AEE1F1BE6FDA3EBD47C7E2BA2D54CC61B740E94B171E0FC2A0F93BF1B93FA4C1D6050106D20A69C11B16AC43EA17C6EE954444B05DCCAD5DAB6794A98FEE7256EA9B1F817E80D86C9242CFA02EED926E200C7B119877CCB |
112 | 20180403104503 2 6 100 3071 5 FF8DCF143A9E3CC447F8D3D03206E386572BFAC54F4BDE233C8B1223CC9CBA99689328E35F8F83F0922A9F0AB33E7C7892E940377CE0064700ECDCC8532F0FEF888913E1894054707878511DD84455BEACCA35E8418D6CAD03111BC1842581D40E280A13055030CB35339E2A0E422DB9EC47916AD6302BE248AD5EBCCE7CF087CB2285A6B8D227DC7130ADB14163BE4D1AA779DBCD36710AA080F219B535B1887392DE9EF44116C933F5CA2234A7A82A8A48F1691A39434D70E3C3995AEE7CEAFF86DAA2326CF367B7E3C7939E4B78A00EE58E52F7BB36C8A89525CA4D44173E30AA6B40FD0B60C29F6CBC763241AC5DA16E2A9FB9B78F360EED32704B686AD6D40DAE8127C9351A2B21C140292E77592A7159000FB2AA9561DA10B2AC3167CC8E41C10CDF86E9041A3A114F42EF4AA5134C716893E81C3A7488ED5131073FC76B20358549BF1B0858B571550663DA9CF73B7B28BF9CA1FAF8EC96966D493C174B03DBCF9B5470DD9A79FB3E14A0B73B6E6C09D531886ACF60E51B57121EA02F | 112 | 20180920101204 2 6 100 3071 5 DE6700153B27F195B230266F3E9064D8646E4E27111A6C5A013DE98A5CD7F11B31B1DC4C71DD72CBEC38DA508B1AD04CB69A372B8D01396C5AE7F5F99C3C3CBE1B2B3287C6AB5794E3AFD6C4E5C8E23B76E21A479765DD7D0D8D41A75DA966486E2C94030AA81314CFC104172048A82D95F402FA9B12E2CF3469AF6202F527BB5FADD82F7F5A67CF47EAA9F70FA02A55D45688EC65A26E8A8BCBD47BEA5C70721995434D0736F3396E9D1681BB08A336B0A9E3340AA24D1E9AC4B33103438C130B4BB87A22D3D85B8BC66B66679790AF7429D0B8F8CEE9BFA7F34239E0F109DABE5370196CB46C134B184178ED494D4703A681A18FFE9A4D6FF5EE71E141EBE11C6E3A6FEE7586F9D5B400EFDF06289783269BD86F1F38CABB0FBEAE666C0FE9EDAF7D1017DCCFBC4AEE1F1BE6FDA3EBD47C7E2BA2D54CC61B740E94B171E0FC2A0F93BF1B93FA4C1D6050106D20A69C11B16AC43EA17C6EE954444B05DCCAD5DAB6794A98FEE7256EA9B1F817E80D86C9242CFA02EED926E200C7B119B78FAF |
113 | 20180403104712 2 6 100 3071 2 FF8DCF143A9E3CC447F8D3D03206E386572BFAC54F4BDE233C8B1223CC9CBA99689328E35F8F83F0922A9F0AB33E7C7892E940377CE0064700ECDCC8532F0FEF888913E1894054707878511DD84455BEACCA35E8418D6CAD03111BC1842581D40E280A13055030CB35339E2A0E422DB9EC47916AD6302BE248AD5EBCCE7CF087CB2285A6B8D227DC7130ADB14163BE4D1AA779DBCD36710AA080F219B535B1887392DE9EF44116C933F5CA2234A7A82A8A48F1691A39434D70E3C3995AEE7CEAFF86DAA2326CF367B7E3C7939E4B78A00EE58E52F7BB36C8A89525CA4D44173E30AA6B40FD0B60C29F6CBC763241AC5DA16E2A9FB9B78F360EED32704B686AD6D40DAE8127C9351A2B21C140292E77592A7159000FB2AA9561DA10B2AC3167CC8E41C10CDF86E9041A3A114F42EF4AA5134C716893E81C3A7488ED5131073FC76B20358549BF1B0858B571550663DA9CF73B7B28BF9CA1FAF8EC96966D493C174B03DBCF9B5470DD9A79FB3E14A0B73B6E6C09D531886ACF60E51B57123CDA13 | 113 | 20180920101600 2 6 100 3071 5 DE6700153B27F195B230266F3E9064D8646E4E27111A6C5A013DE98A5CD7F11B31B1DC4C71DD72CBEC38DA508B1AD04CB69A372B8D01396C5AE7F5F99C3C3CBE1B2B3287C6AB5794E3AFD6C4E5C8E23B76E21A479765DD7D0D8D41A75DA966486E2C94030AA81314CFC104172048A82D95F402FA9B12E2CF3469AF6202F527BB5FADD82F7F5A67CF47EAA9F70FA02A55D45688EC65A26E8A8BCBD47BEA5C70721995434D0736F3396E9D1681BB08A336B0A9E3340AA24D1E9AC4B33103438C130B4BB87A22D3D85B8BC66B66679790AF7429D0B8F8CEE9BFA7F34239E0F109DABE5370196CB46C134B184178ED494D4703A681A18FFE9A4D6FF5EE71E141EBE11C6E3A6FEE7586F9D5B400EFDF06289783269BD86F1F38CABB0FBEAE666C0FE9EDAF7D1017DCCFBC4AEE1F1BE6FDA3EBD47C7E2BA2D54CC61B740E94B171E0FC2A0F93BF1B93FA4C1D6050106D20A69C11B16AC43EA17C6EE954444B05DCCAD5DAB6794A98FEE7256EA9B1F817E80D86C9242CFA02EED926E200C7B11A5CA257 |
114 | 20180403104901 2 6 100 3071 2 FF8DCF143A9E3CC447F8D3D03206E386572BFAC54F4BDE233C8B1223CC9CBA99689328E35F8F83F0922A9F0AB33E7C7892E940377CE0064700ECDCC8532F0FEF888913E1894054707878511DD84455BEACCA35E8418D6CAD03111BC1842581D40E280A13055030CB35339E2A0E422DB9EC47916AD6302BE248AD5EBCCE7CF087CB2285A6B8D227DC7130ADB14163BE4D1AA779DBCD36710AA080F219B535B1887392DE9EF44116C933F5CA2234A7A82A8A48F1691A39434D70E3C3995AEE7CEAFF86DAA2326CF367B7E3C7939E4B78A00EE58E52F7BB36C8A89525CA4D44173E30AA6B40FD0B60C29F6CBC763241AC5DA16E2A9FB9B78F360EED32704B686AD6D40DAE8127C9351A2B21C140292E77592A7159000FB2AA9561DA10B2AC3167CC8E41C10CDF86E9041A3A114F42EF4AA5134C716893E81C3A7488ED5131073FC76B20358549BF1B0858B571550663DA9CF73B7B28BF9CA1FAF8EC96966D493C174B03DBCF9B5470DD9A79FB3E14A0B73B6E6C09D531886ACF60E51B57125332B3 | 114 | 20180920102200 2 6 100 3071 5 DE6700153B27F195B230266F3E9064D8646E4E27111A6C5A013DE98A5CD7F11B31B1DC4C71DD72CBEC38DA508B1AD04CB69A372B8D01396C5AE7F5F99C3C3CBE1B2B3287C6AB5794E3AFD6C4E5C8E23B76E21A479765DD7D0D8D41A75DA966486E2C94030AA81314CFC104172048A82D95F402FA9B12E2CF3469AF6202F527BB5FADD82F7F5A67CF47EAA9F70FA02A55D45688EC65A26E8A8BCBD47BEA5C70721995434D0736F3396E9D1681BB08A336B0A9E3340AA24D1E9AC4B33103438C130B4BB87A22D3D85B8BC66B66679790AF7429D0B8F8CEE9BFA7F34239E0F109DABE5370196CB46C134B184178ED494D4703A681A18FFE9A4D6FF5EE71E141EBE11C6E3A6FEE7586F9D5B400EFDF06289783269BD86F1F38CABB0FBEAE666C0FE9EDAF7D1017DCCFBC4AEE1F1BE6FDA3EBD47C7E2BA2D54CC61B740E94B171E0FC2A0F93BF1B93FA4C1D6050106D20A69C11B16AC43EA17C6EE954444B05DCCAD5DAB6794A98FEE7256EA9B1F817E80D86C9242CFA02EED926E200C7B11B5728B7 |
115 | 20180403105756 2 6 100 3071 5 D9FA0132FCCAAE8116BD22861CD21A859841BA7D566829E10ACC15A7EFEEB381774F839F7228AE3C627F5765944DCDB6866618E187903EBDB558C9186BD84D2521630A379E161FDCEC19BA02A8E4B5A3C4A66D02CA0FEB7BEB75BA3BE87F26BB99122217A4FFEB1F730B430AA0A70BA4A91EFB248DF689E95957E93B9E5D2AC13FBD3896759F77C6CBB6664BA6FEB31C4FD7BF081D4F2D800AB8D979D89A5EFB34675A904F4B332ADD7340116E7D5D4F72F7E3940A30036ACA889C27D8E2E11C0668A2E8A43DFF411FA03F0AFB420262947A60528805A7E0F4B2CC6AC0EF62CBCB807BC131A8D51E7784A13C77DB461A9FDF01C0E97EA8B7C5A13BB4A86784C2FFA34FC1EF094ACB858A919951AA55508E468CBB889EA63B606D45455AAB75883A75A813E9EC6A3A49CADB05A62C2F5CA32013A4FC73E8B5DE1C14A39539A4716B157C08C74CD99EA23AE018A89C838B6C0EAEECDFCF78A447594033ED3D63F4623BFC05C0F6701A36420D60D9C99339F9486395CBE534D66CE66AAE03762997 | 115 | 20180920102235 2 6 100 3071 5 DE6700153B27F195B230266F3E9064D8646E4E27111A6C5A013DE98A5CD7F11B31B1DC4C71DD72CBEC38DA508B1AD04CB69A372B8D01396C5AE7F5F99C3C3CBE1B2B3287C6AB5794E3AFD6C4E5C8E23B76E21A479765DD7D0D8D41A75DA966486E2C94030AA81314CFC104172048A82D95F402FA9B12E2CF3469AF6202F527BB5FADD82F7F5A67CF47EAA9F70FA02A55D45688EC65A26E8A8BCBD47BEA5C70721995434D0736F3396E9D1681BB08A336B0A9E3340AA24D1E9AC4B33103438C130B4BB87A22D3D85B8BC66B66679790AF7429D0B8F8CEE9BFA7F34239E0F109DABE5370196CB46C134B184178ED494D4703A681A18FFE9A4D6FF5EE71E141EBE11C6E3A6FEE7586F9D5B400EFDF06289783269BD86F1F38CABB0FBEAE666C0FE9EDAF7D1017DCCFBC4AEE1F1BE6FDA3EBD47C7E2BA2D54CC61B740E94B171E0FC2A0F93BF1B93FA4C1D6050106D20A69C11B16AC43EA17C6EE954444B05DCCAD5DAB6794A98FEE7256EA9B1F817E80D86C9242CFA02EED926E200C7B11B698D4F |
116 | 20180403111214 2 6 100 3071 2 D9FA0132FCCAAE8116BD22861CD21A859841BA7D566829E10ACC15A7EFEEB381774F839F7228AE3C627F5765944DCDB6866618E187903EBDB558C9186BD84D2521630A379E161FDCEC19BA02A8E4B5A3C4A66D02CA0FEB7BEB75BA3BE87F26BB99122217A4FFEB1F730B430AA0A70BA4A91EFB248DF689E95957E93B9E5D2AC13FBD3896759F77C6CBB6664BA6FEB31C4FD7BF081D4F2D800AB8D979D89A5EFB34675A904F4B332ADD7340116E7D5D4F72F7E3940A30036ACA889C27D8E2E11C0668A2E8A43DFF411FA03F0AFB420262947A60528805A7E0F4B2CC6AC0EF62CBCB807BC131A8D51E7784A13C77DB461A9FDF01C0E97EA8B7C5A13BB4A86784C2FFA34FC1EF094ACB858A919951AA55508E468CBB889EA63B606D45455AAB75883A75A813E9EC6A3A49CADB05A62C2F5CA32013A4FC73E8B5DE1C14A39539A4716B157C08C74CD99EA23AE018A89C838B6C0EAEECDFCF78A447594033ED3D63F4623BFC05C0F6701A36420D60D9C99339F9486395CBE534D66CE66AAE0468815B | 116 | 20180920102336 2 6 100 3071 5 DE6700153B27F195B230266F3E9064D8646E4E27111A6C5A013DE98A5CD7F11B31B1DC4C71DD72CBEC38DA508B1AD04CB69A372B8D01396C5AE7F5F99C3C3CBE1B2B3287C6AB5794E3AFD6C4E5C8E23B76E21A479765DD7D0D8D41A75DA966486E2C94030AA81314CFC104172048A82D95F402FA9B12E2CF3469AF6202F527BB5FADD82F7F5A67CF47EAA9F70FA02A55D45688EC65A26E8A8BCBD47BEA5C70721995434D0736F3396E9D1681BB08A336B0A9E3340AA24D1E9AC4B33103438C130B4BB87A22D3D85B8BC66B66679790AF7429D0B8F8CEE9BFA7F34239E0F109DABE5370196CB46C134B184178ED494D4703A681A18FFE9A4D6FF5EE71E141EBE11C6E3A6FEE7586F9D5B400EFDF06289783269BD86F1F38CABB0FBEAE666C0FE9EDAF7D1017DCCFBC4AEE1F1BE6FDA3EBD47C7E2BA2D54CC61B740E94B171E0FC2A0F93BF1B93FA4C1D6050106D20A69C11B16AC43EA17C6EE954444B05DCCAD5DAB6794A98FEE7256EA9B1F817E80D86C9242CFA02EED926E200C7B11B8BE2EF |
117 | 20180403111819 2 6 100 3071 2 D9FA0132FCCAAE8116BD22861CD21A859841BA7D566829E10ACC15A7EFEEB381774F839F7228AE3C627F5765944DCDB6866618E187903EBDB558C9186BD84D2521630A379E161FDCEC19BA02A8E4B5A3C4A66D02CA0FEB7BEB75BA3BE87F26BB99122217A4FFEB1F730B430AA0A70BA4A91EFB248DF689E95957E93B9E5D2AC13FBD3896759F77C6CBB6664BA6FEB31C4FD7BF081D4F2D800AB8D979D89A5EFB34675A904F4B332ADD7340116E7D5D4F72F7E3940A30036ACA889C27D8E2E11C0668A2E8A43DFF411FA03F0AFB420262947A60528805A7E0F4B2CC6AC0EF62CBCB807BC131A8D51E7784A13C77DB461A9FDF01C0E97EA8B7C5A13BB4A86784C2FFA34FC1EF094ACB858A919951AA55508E468CBB889EA63B606D45455AAB75883A75A813E9EC6A3A49CADB05A62C2F5CA32013A4FC73E8B5DE1C14A39539A4716B157C08C74CD99EA23AE018A89C838B6C0EAEECDFCF78A447594033ED3D63F4623BFC05C0F6701A36420D60D9C99339F9486395CBE534D66CE66AAE04C53C43 | 117 | 20180920102711 2 6 100 3071 2 DE6700153B27F195B230266F3E9064D8646E4E27111A6C5A013DE98A5CD7F11B31B1DC4C71DD72CBEC38DA508B1AD04CB69A372B8D01396C5AE7F5F99C3C3CBE1B2B3287C6AB5794E3AFD6C4E5C8E23B76E21A479765DD7D0D8D41A75DA966486E2C94030AA81314CFC104172048A82D95F402FA9B12E2CF3469AF6202F527BB5FADD82F7F5A67CF47EAA9F70FA02A55D45688EC65A26E8A8BCBD47BEA5C70721995434D0736F3396E9D1681BB08A336B0A9E3340AA24D1E9AC4B33103438C130B4BB87A22D3D85B8BC66B66679790AF7429D0B8F8CEE9BFA7F34239E0F109DABE5370196CB46C134B184178ED494D4703A681A18FFE9A4D6FF5EE71E141EBE11C6E3A6FEE7586F9D5B400EFDF06289783269BD86F1F38CABB0FBEAE666C0FE9EDAF7D1017DCCFBC4AEE1F1BE6FDA3EBD47C7E2BA2D54CC61B740E94B171E0FC2A0F93BF1B93FA4C1D6050106D20A69C11B16AC43EA17C6EE954444B05DCCAD5DAB6794A98FEE7256EA9B1F817E80D86C9242CFA02EED926E200C7B11C1D39BB |
118 | 20180403111907 2 6 100 3071 5 D9FA0132FCCAAE8116BD22861CD21A859841BA7D566829E10ACC15A7EFEEB381774F839F7228AE3C627F5765944DCDB6866618E187903EBDB558C9186BD84D2521630A379E161FDCEC19BA02A8E4B5A3C4A66D02CA0FEB7BEB75BA3BE87F26BB99122217A4FFEB1F730B430AA0A70BA4A91EFB248DF689E95957E93B9E5D2AC13FBD3896759F77C6CBB6664BA6FEB31C4FD7BF081D4F2D800AB8D979D89A5EFB34675A904F4B332ADD7340116E7D5D4F72F7E3940A30036ACA889C27D8E2E11C0668A2E8A43DFF411FA03F0AFB420262947A60528805A7E0F4B2CC6AC0EF62CBCB807BC131A8D51E7784A13C77DB461A9FDF01C0E97EA8B7C5A13BB4A86784C2FFA34FC1EF094ACB858A919951AA55508E468CBB889EA63B606D45455AAB75883A75A813E9EC6A3A49CADB05A62C2F5CA32013A4FC73E8B5DE1C14A39539A4716B157C08C74CD99EA23AE018A89C838B6C0EAEECDFCF78A447594033ED3D63F4623BFC05C0F6701A36420D60D9C99339F9486395CBE534D66CE66AAE04CAC50F | 118 | 20180920102826 2 6 100 3071 2 DE6700153B27F195B230266F3E9064D8646E4E27111A6C5A013DE98A5CD7F11B31B1DC4C71DD72CBEC38DA508B1AD04CB69A372B8D01396C5AE7F5F99C3C3CBE1B2B3287C6AB5794E3AFD6C4E5C8E23B76E21A479765DD7D0D8D41A75DA966486E2C94030AA81314CFC104172048A82D95F402FA9B12E2CF3469AF6202F527BB5FADD82F7F5A67CF47EAA9F70FA02A55D45688EC65A26E8A8BCBD47BEA5C70721995434D0736F3396E9D1681BB08A336B0A9E3340AA24D1E9AC4B33103438C130B4BB87A22D3D85B8BC66B66679790AF7429D0B8F8CEE9BFA7F34239E0F109DABE5370196CB46C134B184178ED494D4703A681A18FFE9A4D6FF5EE71E141EBE11C6E3A6FEE7586F9D5B400EFDF06289783269BD86F1F38CABB0FBEAE666C0FE9EDAF7D1017DCCFBC4AEE1F1BE6FDA3EBD47C7E2BA2D54CC61B740E94B171E0FC2A0F93BF1B93FA4C1D6050106D20A69C11B16AC43EA17C6EE954444B05DCCAD5DAB6794A98FEE7256EA9B1F817E80D86C9242CFA02EED926E200C7B11C4B4083 |
119 | 20180403112635 2 6 100 3071 5 D9FA0132FCCAAE8116BD22861CD21A859841BA7D566829E10ACC15A7EFEEB381774F839F7228AE3C627F5765944DCDB6866618E187903EBDB558C9186BD84D2521630A379E161FDCEC19BA02A8E4B5A3C4A66D02CA0FEB7BEB75BA3BE87F26BB99122217A4FFEB1F730B430AA0A70BA4A91EFB248DF689E95957E93B9E5D2AC13FBD3896759F77C6CBB6664BA6FEB31C4FD7BF081D4F2D800AB8D979D89A5EFB34675A904F4B332ADD7340116E7D5D4F72F7E3940A30036ACA889C27D8E2E11C0668A2E8A43DFF411FA03F0AFB420262947A60528805A7E0F4B2CC6AC0EF62CBCB807BC131A8D51E7784A13C77DB461A9FDF01C0E97EA8B7C5A13BB4A86784C2FFA34FC1EF094ACB858A919951AA55508E468CBB889EA63B606D45455AAB75883A75A813E9EC6A3A49CADB05A62C2F5CA32013A4FC73E8B5DE1C14A39539A4716B157C08C74CD99EA23AE018A89C838B6C0EAEECDFCF78A447594033ED3D63F4623BFC05C0F6701A36420D60D9C99339F9486395CBE534D66CE66AAE0540031F | 119 | 20180920103322 2 6 100 3071 5 DE6700153B27F195B230266F3E9064D8646E4E27111A6C5A013DE98A5CD7F11B31B1DC4C71DD72CBEC38DA508B1AD04CB69A372B8D01396C5AE7F5F99C3C3CBE1B2B3287C6AB5794E3AFD6C4E5C8E23B76E21A479765DD7D0D8D41A75DA966486E2C94030AA81314CFC104172048A82D95F402FA9B12E2CF3469AF6202F527BB5FADD82F7F5A67CF47EAA9F70FA02A55D45688EC65A26E8A8BCBD47BEA5C70721995434D0736F3396E9D1681BB08A336B0A9E3340AA24D1E9AC4B33103438C130B4BB87A22D3D85B8BC66B66679790AF7429D0B8F8CEE9BFA7F34239E0F109DABE5370196CB46C134B184178ED494D4703A681A18FFE9A4D6FF5EE71E141EBE11C6E3A6FEE7586F9D5B400EFDF06289783269BD86F1F38CABB0FBEAE666C0FE9EDAF7D1017DCCFBC4AEE1F1BE6FDA3EBD47C7E2BA2D54CC61B740E94B171E0FC2A0F93BF1B93FA4C1D6050106D20A69C11B16AC43EA17C6EE954444B05DCCAD5DAB6794A98FEE7256EA9B1F817E80D86C9242CFA02EED926E200C7B11D1356A7 |
120 | 20180403113403 2 6 100 3071 5 D9FA0132FCCAAE8116BD22861CD21A859841BA7D566829E10ACC15A7EFEEB381774F839F7228AE3C627F5765944DCDB6866618E187903EBDB558C9186BD84D2521630A379E161FDCEC19BA02A8E4B5A3C4A66D02CA0FEB7BEB75BA3BE87F26BB99122217A4FFEB1F730B430AA0A70BA4A91EFB248DF689E95957E93B9E5D2AC13FBD3896759F77C6CBB6664BA6FEB31C4FD7BF081D4F2D800AB8D979D89A5EFB34675A904F4B332ADD7340116E7D5D4F72F7E3940A30036ACA889C27D8E2E11C0668A2E8A43DFF411FA03F0AFB420262947A60528805A7E0F4B2CC6AC0EF62CBCB807BC131A8D51E7784A13C77DB461A9FDF01C0E97EA8B7C5A13BB4A86784C2FFA34FC1EF094ACB858A919951AA55508E468CBB889EA63B606D45455AAB75883A75A813E9EC6A3A49CADB05A62C2F5CA32013A4FC73E8B5DE1C14A39539A4716B157C08C74CD99EA23AE018A89C838B6C0EAEECDFCF78A447594033ED3D63F4623BFC05C0F6701A36420D60D9C99339F9486395CBE534D66CE66AAE05B956F7 | 120 | 20180920103630 2 6 100 3071 2 DE6700153B27F195B230266F3E9064D8646E4E27111A6C5A013DE98A5CD7F11B31B1DC4C71DD72CBEC38DA508B1AD04CB69A372B8D01396C5AE7F5F99C3C3CBE1B2B3287C6AB5794E3AFD6C4E5C8E23B76E21A479765DD7D0D8D41A75DA966486E2C94030AA81314CFC104172048A82D95F402FA9B12E2CF3469AF6202F527BB5FADD82F7F5A67CF47EAA9F70FA02A55D45688EC65A26E8A8BCBD47BEA5C70721995434D0736F3396E9D1681BB08A336B0A9E3340AA24D1E9AC4B33103438C130B4BB87A22D3D85B8BC66B66679790AF7429D0B8F8CEE9BFA7F34239E0F109DABE5370196CB46C134B184178ED494D4703A681A18FFE9A4D6FF5EE71E141EBE11C6E3A6FEE7586F9D5B400EFDF06289783269BD86F1F38CABB0FBEAE666C0FE9EDAF7D1017DCCFBC4AEE1F1BE6FDA3EBD47C7E2BA2D54CC61B740E94B171E0FC2A0F93BF1B93FA4C1D6050106D20A69C11B16AC43EA17C6EE954444B05DCCAD5DAB6794A98FEE7256EA9B1F817E80D86C9242CFA02EED926E200C7B11D93FB63 |
121 | 20180403113943 2 6 100 3071 2 D9FA0132FCCAAE8116BD22861CD21A859841BA7D566829E10ACC15A7EFEEB381774F839F7228AE3C627F5765944DCDB6866618E187903EBDB558C9186BD84D2521630A379E161FDCEC19BA02A8E4B5A3C4A66D02CA0FEB7BEB75BA3BE87F26BB99122217A4FFEB1F730B430AA0A70BA4A91EFB248DF689E95957E93B9E5D2AC13FBD3896759F77C6CBB6664BA6FEB31C4FD7BF081D4F2D800AB8D979D89A5EFB34675A904F4B332ADD7340116E7D5D4F72F7E3940A30036ACA889C27D8E2E11C0668A2E8A43DFF411FA03F0AFB420262947A60528805A7E0F4B2CC6AC0EF62CBCB807BC131A8D51E7784A13C77DB461A9FDF01C0E97EA8B7C5A13BB4A86784C2FFA34FC1EF094ACB858A919951AA55508E468CBB889EA63B606D45455AAB75883A75A813E9EC6A3A49CADB05A62C2F5CA32013A4FC73E8B5DE1C14A39539A4716B157C08C74CD99EA23AE018A89C838B6C0EAEECDFCF78A447594033ED3D63F4623BFC05C0F6701A36420D60D9C99339F9486395CBE534D66CE66AAE0619B7F3 | 121 | 20180920103932 2 6 100 3071 2 DE6700153B27F195B230266F3E9064D8646E4E27111A6C5A013DE98A5CD7F11B31B1DC4C71DD72CBEC38DA508B1AD04CB69A372B8D01396C5AE7F5F99C3C3CBE1B2B3287C6AB5794E3AFD6C4E5C8E23B76E21A479765DD7D0D8D41A75DA966486E2C94030AA81314CFC104172048A82D95F402FA9B12E2CF3469AF6202F527BB5FADD82F7F5A67CF47EAA9F70FA02A55D45688EC65A26E8A8BCBD47BEA5C70721995434D0736F3396E9D1681BB08A336B0A9E3340AA24D1E9AC4B33103438C130B4BB87A22D3D85B8BC66B66679790AF7429D0B8F8CEE9BFA7F34239E0F109DABE5370196CB46C134B184178ED494D4703A681A18FFE9A4D6FF5EE71E141EBE11C6E3A6FEE7586F9D5B400EFDF06289783269BD86F1F38CABB0FBEAE666C0FE9EDAF7D1017DCCFBC4AEE1F1BE6FDA3EBD47C7E2BA2D54CC61B740E94B171E0FC2A0F93BF1B93FA4C1D6050106D20A69C11B16AC43EA17C6EE954444B05DCCAD5DAB6794A98FEE7256EA9B1F817E80D86C9242CFA02EED926E200C7B11E0CAEBB |
122 | 20180403114045 2 6 100 3071 5 D9FA0132FCCAAE8116BD22861CD21A859841BA7D566829E10ACC15A7EFEEB381774F839F7228AE3C627F5765944DCDB6866618E187903EBDB558C9186BD84D2521630A379E161FDCEC19BA02A8E4B5A3C4A66D02CA0FEB7BEB75BA3BE87F26BB99122217A4FFEB1F730B430AA0A70BA4A91EFB248DF689E95957E93B9E5D2AC13FBD3896759F77C6CBB6664BA6FEB31C4FD7BF081D4F2D800AB8D979D89A5EFB34675A904F4B332ADD7340116E7D5D4F72F7E3940A30036ACA889C27D8E2E11C0668A2E8A43DFF411FA03F0AFB420262947A60528805A7E0F4B2CC6AC0EF62CBCB807BC131A8D51E7784A13C77DB461A9FDF01C0E97EA8B7C5A13BB4A86784C2FFA34FC1EF094ACB858A919951AA55508E468CBB889EA63B606D45455AAB75883A75A813E9EC6A3A49CADB05A62C2F5CA32013A4FC73E8B5DE1C14A39539A4716B157C08C74CD99EA23AE018A89C838B6C0EAEECDFCF78A447594033ED3D63F4623BFC05C0F6701A36420D60D9C99339F9486395CBE534D66CE66AAE06220B07 | 122 | 20180920104303 2 6 100 3071 2 DE6700153B27F195B230266F3E9064D8646E4E27111A6C5A013DE98A5CD7F11B31B1DC4C71DD72CBEC38DA508B1AD04CB69A372B8D01396C5AE7F5F99C3C3CBE1B2B3287C6AB5794E3AFD6C4E5C8E23B76E21A479765DD7D0D8D41A75DA966486E2C94030AA81314CFC104172048A82D95F402FA9B12E2CF3469AF6202F527BB5FADD82F7F5A67CF47EAA9F70FA02A55D45688EC65A26E8A8BCBD47BEA5C70721995434D0736F3396E9D1681BB08A336B0A9E3340AA24D1E9AC4B33103438C130B4BB87A22D3D85B8BC66B66679790AF7429D0B8F8CEE9BFA7F34239E0F109DABE5370196CB46C134B184178ED494D4703A681A18FFE9A4D6FF5EE71E141EBE11C6E3A6FEE7586F9D5B400EFDF06289783269BD86F1F38CABB0FBEAE666C0FE9EDAF7D1017DCCFBC4AEE1F1BE6FDA3EBD47C7E2BA2D54CC61B740E94B171E0FC2A0F93BF1B93FA4C1D6050106D20A69C11B16AC43EA17C6EE954444B05DCCAD5DAB6794A98FEE7256EA9B1F817E80D86C9242CFA02EED926E200C7B11E9CB9E3 |
123 | 20180403114120 2 6 100 3071 5 D9FA0132FCCAAE8116BD22861CD21A859841BA7D566829E10ACC15A7EFEEB381774F839F7228AE3C627F5765944DCDB6866618E187903EBDB558C9186BD84D2521630A379E161FDCEC19BA02A8E4B5A3C4A66D02CA0FEB7BEB75BA3BE87F26BB99122217A4FFEB1F730B430AA0A70BA4A91EFB248DF689E95957E93B9E5D2AC13FBD3896759F77C6CBB6664BA6FEB31C4FD7BF081D4F2D800AB8D979D89A5EFB34675A904F4B332ADD7340116E7D5D4F72F7E3940A30036ACA889C27D8E2E11C0668A2E8A43DFF411FA03F0AFB420262947A60528805A7E0F4B2CC6AC0EF62CBCB807BC131A8D51E7784A13C77DB461A9FDF01C0E97EA8B7C5A13BB4A86784C2FFA34FC1EF094ACB858A919951AA55508E468CBB889EA63B606D45455AAB75883A75A813E9EC6A3A49CADB05A62C2F5CA32013A4FC73E8B5DE1C14A39539A4716B157C08C74CD99EA23AE018A89C838B6C0EAEECDFCF78A447594033ED3D63F4623BFC05C0F6701A36420D60D9C99339F9486395CBE534D66CE66AAE0622E517 | 123 | 20180920104717 2 6 100 3071 2 DE6700153B27F195B230266F3E9064D8646E4E27111A6C5A013DE98A5CD7F11B31B1DC4C71DD72CBEC38DA508B1AD04CB69A372B8D01396C5AE7F5F99C3C3CBE1B2B3287C6AB5794E3AFD6C4E5C8E23B76E21A479765DD7D0D8D41A75DA966486E2C94030AA81314CFC104172048A82D95F402FA9B12E2CF3469AF6202F527BB5FADD82F7F5A67CF47EAA9F70FA02A55D45688EC65A26E8A8BCBD47BEA5C70721995434D0736F3396E9D1681BB08A336B0A9E3340AA24D1E9AC4B33103438C130B4BB87A22D3D85B8BC66B66679790AF7429D0B8F8CEE9BFA7F34239E0F109DABE5370196CB46C134B184178ED494D4703A681A18FFE9A4D6FF5EE71E141EBE11C6E3A6FEE7586F9D5B400EFDF06289783269BD86F1F38CABB0FBEAE666C0FE9EDAF7D1017DCCFBC4AEE1F1BE6FDA3EBD47C7E2BA2D54CC61B740E94B171E0FC2A0F93BF1B93FA4C1D6050106D20A69C11B16AC43EA17C6EE954444B05DCCAD5DAB6794A98FEE7256EA9B1F817E80D86C9242CFA02EED926E200C7B11F4E4B63 |
124 | 20180403115211 2 6 100 3071 5 D9FA0132FCCAAE8116BD22861CD21A859841BA7D566829E10ACC15A7EFEEB381774F839F7228AE3C627F5765944DCDB6866618E187903EBDB558C9186BD84D2521630A379E161FDCEC19BA02A8E4B5A3C4A66D02CA0FEB7BEB75BA3BE87F26BB99122217A4FFEB1F730B430AA0A70BA4A91EFB248DF689E95957E93B9E5D2AC13FBD3896759F77C6CBB6664BA6FEB31C4FD7BF081D4F2D800AB8D979D89A5EFB34675A904F4B332ADD7340116E7D5D4F72F7E3940A30036ACA889C27D8E2E11C0668A2E8A43DFF411FA03F0AFB420262947A60528805A7E0F4B2CC6AC0EF62CBCB807BC131A8D51E7784A13C77DB461A9FDF01C0E97EA8B7C5A13BB4A86784C2FFA34FC1EF094ACB858A919951AA55508E468CBB889EA63B606D45455AAB75883A75A813E9EC6A3A49CADB05A62C2F5CA32013A4FC73E8B5DE1C14A39539A4716B157C08C74CD99EA23AE018A89C838B6C0EAEECDFCF78A447594033ED3D63F4623BFC05C0F6701A36420D60D9C99339F9486395CBE534D66CE66AAE06D363E7 | 124 | 20180920104816 2 6 100 3071 2 DE6700153B27F195B230266F3E9064D8646E4E27111A6C5A013DE98A5CD7F11B31B1DC4C71DD72CBEC38DA508B1AD04CB69A372B8D01396C5AE7F5F99C3C3CBE1B2B3287C6AB5794E3AFD6C4E5C8E23B76E21A479765DD7D0D8D41A75DA966486E2C94030AA81314CFC104172048A82D95F402FA9B12E2CF3469AF6202F527BB5FADD82F7F5A67CF47EAA9F70FA02A55D45688EC65A26E8A8BCBD47BEA5C70721995434D0736F3396E9D1681BB08A336B0A9E3340AA24D1E9AC4B33103438C130B4BB87A22D3D85B8BC66B66679790AF7429D0B8F8CEE9BFA7F34239E0F109DABE5370196CB46C134B184178ED494D4703A681A18FFE9A4D6FF5EE71E141EBE11C6E3A6FEE7586F9D5B400EFDF06289783269BD86F1F38CABB0FBEAE666C0FE9EDAF7D1017DCCFBC4AEE1F1BE6FDA3EBD47C7E2BA2D54CC61B740E94B171E0FC2A0F93BF1B93FA4C1D6050106D20A69C11B16AC43EA17C6EE954444B05DCCAD5DAB6794A98FEE7256EA9B1F817E80D86C9242CFA02EED926E200C7B11F72025B |
125 | 20180403115424 2 6 100 3071 5 D9FA0132FCCAAE8116BD22861CD21A859841BA7D566829E10ACC15A7EFEEB381774F839F7228AE3C627F5765944DCDB6866618E187903EBDB558C9186BD84D2521630A379E161FDCEC19BA02A8E4B5A3C4A66D02CA0FEB7BEB75BA3BE87F26BB99122217A4FFEB1F730B430AA0A70BA4A91EFB248DF689E95957E93B9E5D2AC13FBD3896759F77C6CBB6664BA6FEB31C4FD7BF081D4F2D800AB8D979D89A5EFB34675A904F4B332ADD7340116E7D5D4F72F7E3940A30036ACA889C27D8E2E11C0668A2E8A43DFF411FA03F0AFB420262947A60528805A7E0F4B2CC6AC0EF62CBCB807BC131A8D51E7784A13C77DB461A9FDF01C0E97EA8B7C5A13BB4A86784C2FFA34FC1EF094ACB858A919951AA55508E468CBB889EA63B606D45455AAB75883A75A813E9EC6A3A49CADB05A62C2F5CA32013A4FC73E8B5DE1C14A39539A4716B157C08C74CD99EA23AE018A89C838B6C0EAEECDFCF78A447594033ED3D63F4623BFC05C0F6701A36420D60D9C99339F9486395CBE534D66CE66AAE06F22507 | 125 | 20180920105139 2 6 100 3071 2 DE6700153B27F195B230266F3E9064D8646E4E27111A6C5A013DE98A5CD7F11B31B1DC4C71DD72CBEC38DA508B1AD04CB69A372B8D01396C5AE7F5F99C3C3CBE1B2B3287C6AB5794E3AFD6C4E5C8E23B76E21A479765DD7D0D8D41A75DA966486E2C94030AA81314CFC104172048A82D95F402FA9B12E2CF3469AF6202F527BB5FADD82F7F5A67CF47EAA9F70FA02A55D45688EC65A26E8A8BCBD47BEA5C70721995434D0736F3396E9D1681BB08A336B0A9E3340AA24D1E9AC4B33103438C130B4BB87A22D3D85B8BC66B66679790AF7429D0B8F8CEE9BFA7F34239E0F109DABE5370196CB46C134B184178ED494D4703A681A18FFE9A4D6FF5EE71E141EBE11C6E3A6FEE7586F9D5B400EFDF06289783269BD86F1F38CABB0FBEAE666C0FE9EDAF7D1017DCCFBC4AEE1F1BE6FDA3EBD47C7E2BA2D54CC61B740E94B171E0FC2A0F93BF1B93FA4C1D6050106D20A69C11B16AC43EA17C6EE954444B05DCCAD5DAB6794A98FEE7256EA9B1F817E80D86C9242CFA02EED926E200C7B11FFAA343 |
126 | 20180403115558 2 6 100 3071 2 D9FA0132FCCAAE8116BD22861CD21A859841BA7D566829E10ACC15A7EFEEB381774F839F7228AE3C627F5765944DCDB6866618E187903EBDB558C9186BD84D2521630A379E161FDCEC19BA02A8E4B5A3C4A66D02CA0FEB7BEB75BA3BE87F26BB99122217A4FFEB1F730B430AA0A70BA4A91EFB248DF689E95957E93B9E5D2AC13FBD3896759F77C6CBB6664BA6FEB31C4FD7BF081D4F2D800AB8D979D89A5EFB34675A904F4B332ADD7340116E7D5D4F72F7E3940A30036ACA889C27D8E2E11C0668A2E8A43DFF411FA03F0AFB420262947A60528805A7E0F4B2CC6AC0EF62CBCB807BC131A8D51E7784A13C77DB461A9FDF01C0E97EA8B7C5A13BB4A86784C2FFA34FC1EF094ACB858A919951AA55508E468CBB889EA63B606D45455AAB75883A75A813E9EC6A3A49CADB05A62C2F5CA32013A4FC73E8B5DE1C14A39539A4716B157C08C74CD99EA23AE018A89C838B6C0EAEECDFCF78A447594033ED3D63F4623BFC05C0F6701A36420D60D9C99339F9486395CBE534D66CE66AAE070516F3 | 126 | 20180920105211 2 6 100 3071 2 DE6700153B27F195B230266F3E9064D8646E4E27111A6C5A013DE98A5CD7F11B31B1DC4C71DD72CBEC38DA508B1AD04CB69A372B8D01396C5AE7F5F99C3C3CBE1B2B3287C6AB5794E3AFD6C4E5C8E23B76E21A479765DD7D0D8D41A75DA966486E2C94030AA81314CFC104172048A82D95F402FA9B12E2CF3469AF6202F527BB5FADD82F7F5A67CF47EAA9F70FA02A55D45688EC65A26E8A8BCBD47BEA5C70721995434D0736F3396E9D1681BB08A336B0A9E3340AA24D1E9AC4B33103438C130B4BB87A22D3D85B8BC66B66679790AF7429D0B8F8CEE9BFA7F34239E0F109DABE5370196CB46C134B184178ED494D4703A681A18FFE9A4D6FF5EE71E141EBE11C6E3A6FEE7586F9D5B400EFDF06289783269BD86F1F38CABB0FBEAE666C0FE9EDAF7D1017DCCFBC4AEE1F1BE6FDA3EBD47C7E2BA2D54CC61B740E94B171E0FC2A0F93BF1B93FA4C1D6050106D20A69C11B16AC43EA17C6EE954444B05DCCAD5DAB6794A98FEE7256EA9B1F817E80D86C9242CFA02EED926E200C7B120087713 |
127 | 20180403115753 2 6 100 3071 5 D9FA0132FCCAAE8116BD22861CD21A859841BA7D566829E10ACC15A7EFEEB381774F839F7228AE3C627F5765944DCDB6866618E187903EBDB558C9186BD84D2521630A379E161FDCEC19BA02A8E4B5A3C4A66D02CA0FEB7BEB75BA3BE87F26BB99122217A4FFEB1F730B430AA0A70BA4A91EFB248DF689E95957E93B9E5D2AC13FBD3896759F77C6CBB6664BA6FEB31C4FD7BF081D4F2D800AB8D979D89A5EFB34675A904F4B332ADD7340116E7D5D4F72F7E3940A30036ACA889C27D8E2E11C0668A2E8A43DFF411FA03F0AFB420262947A60528805A7E0F4B2CC6AC0EF62CBCB807BC131A8D51E7784A13C77DB461A9FDF01C0E97EA8B7C5A13BB4A86784C2FFA34FC1EF094ACB858A919951AA55508E468CBB889EA63B606D45455AAB75883A75A813E9EC6A3A49CADB05A62C2F5CA32013A4FC73E8B5DE1C14A39539A4716B157C08C74CD99EA23AE018A89C838B6C0EAEECDFCF78A447594033ED3D63F4623BFC05C0F6701A36420D60D9C99339F9486395CBE534D66CE66AAE071E3297 | 127 | 20180920105407 2 6 100 3071 2 DE6700153B27F195B230266F3E9064D8646E4E27111A6C5A013DE98A5CD7F11B31B1DC4C71DD72CBEC38DA508B1AD04CB69A372B8D01396C5AE7F5F99C3C3CBE1B2B3287C6AB5794E3AFD6C4E5C8E23B76E21A479765DD7D0D8D41A75DA966486E2C94030AA81314CFC104172048A82D95F402FA9B12E2CF3469AF6202F527BB5FADD82F7F5A67CF47EAA9F70FA02A55D45688EC65A26E8A8BCBD47BEA5C70721995434D0736F3396E9D1681BB08A336B0A9E3340AA24D1E9AC4B33103438C130B4BB87A22D3D85B8BC66B66679790AF7429D0B8F8CEE9BFA7F34239E0F109DABE5370196CB46C134B184178ED494D4703A681A18FFE9A4D6FF5EE71E141EBE11C6E3A6FEE7586F9D5B400EFDF06289783269BD86F1F38CABB0FBEAE666C0FE9EDAF7D1017DCCFBC4AEE1F1BE6FDA3EBD47C7E2BA2D54CC61B740E94B171E0FC2A0F93BF1B93FA4C1D6050106D20A69C11B16AC43EA17C6EE954444B05DCCAD5DAB6794A98FEE7256EA9B1F817E80D86C9242CFA02EED926E200C7B12052E023 |
128 | 20180403115927 2 6 100 3071 5 D9FA0132FCCAAE8116BD22861CD21A859841BA7D566829E10ACC15A7EFEEB381774F839F7228AE3C627F5765944DCDB6866618E187903EBDB558C9186BD84D2521630A379E161FDCEC19BA02A8E4B5A3C4A66D02CA0FEB7BEB75BA3BE87F26BB99122217A4FFEB1F730B430AA0A70BA4A91EFB248DF689E95957E93B9E5D2AC13FBD3896759F77C6CBB6664BA6FEB31C4FD7BF081D4F2D800AB8D979D89A5EFB34675A904F4B332ADD7340116E7D5D4F72F7E3940A30036ACA889C27D8E2E11C0668A2E8A43DFF411FA03F0AFB420262947A60528805A7E0F4B2CC6AC0EF62CBCB807BC131A8D51E7784A13C77DB461A9FDF01C0E97EA8B7C5A13BB4A86784C2FFA34FC1EF094ACB858A919951AA55508E468CBB889EA63B606D45455AAB75883A75A813E9EC6A3A49CADB05A62C2F5CA32013A4FC73E8B5DE1C14A39539A4716B157C08C74CD99EA23AE018A89C838B6C0EAEECDFCF78A447594033ED3D63F4623BFC05C0F6701A36420D60D9C99339F9486395CBE534D66CE66AAE0731011F | 128 | 20180920105834 2 6 100 3071 5 DE6700153B27F195B230266F3E9064D8646E4E27111A6C5A013DE98A5CD7F11B31B1DC4C71DD72CBEC38DA508B1AD04CB69A372B8D01396C5AE7F5F99C3C3CBE1B2B3287C6AB5794E3AFD6C4E5C8E23B76E21A479765DD7D0D8D41A75DA966486E2C94030AA81314CFC104172048A82D95F402FA9B12E2CF3469AF6202F527BB5FADD82F7F5A67CF47EAA9F70FA02A55D45688EC65A26E8A8BCBD47BEA5C70721995434D0736F3396E9D1681BB08A336B0A9E3340AA24D1E9AC4B33103438C130B4BB87A22D3D85B8BC66B66679790AF7429D0B8F8CEE9BFA7F34239E0F109DABE5370196CB46C134B184178ED494D4703A681A18FFE9A4D6FF5EE71E141EBE11C6E3A6FEE7586F9D5B400EFDF06289783269BD86F1F38CABB0FBEAE666C0FE9EDAF7D1017DCCFBC4AEE1F1BE6FDA3EBD47C7E2BA2D54CC61B740E94B171E0FC2A0F93BF1B93FA4C1D6050106D20A69C11B16AC43EA17C6EE954444B05DCCAD5DAB6794A98FEE7256EA9B1F817E80D86C9242CFA02EED926E200C7B1210F24F7 |
129 | 20180403121723 2 6 100 3071 2 D9FA0132FCCAAE8116BD22861CD21A859841BA7D566829E10ACC15A7EFEEB381774F839F7228AE3C627F5765944DCDB6866618E187903EBDB558C9186BD84D2521630A379E161FDCEC19BA02A8E4B5A3C4A66D02CA0FEB7BEB75BA3BE87F26BB99122217A4FFEB1F730B430AA0A70BA4A91EFB248DF689E95957E93B9E5D2AC13FBD3896759F77C6CBB6664BA6FEB31C4FD7BF081D4F2D800AB8D979D89A5EFB34675A904F4B332ADD7340116E7D5D4F72F7E3940A30036ACA889C27D8E2E11C0668A2E8A43DFF411FA03F0AFB420262947A60528805A7E0F4B2CC6AC0EF62CBCB807BC131A8D51E7784A13C77DB461A9FDF01C0E97EA8B7C5A13BB4A86784C2FFA34FC1EF094ACB858A919951AA55508E468CBB889EA63B606D45455AAB75883A75A813E9EC6A3A49CADB05A62C2F5CA32013A4FC73E8B5DE1C14A39539A4716B157C08C74CD99EA23AE018A89C838B6C0EAEECDFCF78A447594033ED3D63F4623BFC05C0F6701A36420D60D9C99339F9486395CBE534D66CE66AAE085D2303 | 129 | 20180920110033 2 6 100 3071 2 DE6700153B27F195B230266F3E9064D8646E4E27111A6C5A013DE98A5CD7F11B31B1DC4C71DD72CBEC38DA508B1AD04CB69A372B8D01396C5AE7F5F99C3C3CBE1B2B3287C6AB5794E3AFD6C4E5C8E23B76E21A479765DD7D0D8D41A75DA966486E2C94030AA81314CFC104172048A82D95F402FA9B12E2CF3469AF6202F527BB5FADD82F7F5A67CF47EAA9F70FA02A55D45688EC65A26E8A8BCBD47BEA5C70721995434D0736F3396E9D1681BB08A336B0A9E3340AA24D1E9AC4B33103438C130B4BB87A22D3D85B8BC66B66679790AF7429D0B8F8CEE9BFA7F34239E0F109DABE5370196CB46C134B184178ED494D4703A681A18FFE9A4D6FF5EE71E141EBE11C6E3A6FEE7586F9D5B400EFDF06289783269BD86F1F38CABB0FBEAE666C0FE9EDAF7D1017DCCFBC4AEE1F1BE6FDA3EBD47C7E2BA2D54CC61B740E94B171E0FC2A0F93BF1B93FA4C1D6050106D20A69C11B16AC43EA17C6EE954444B05DCCAD5DAB6794A98FEE7256EA9B1F817E80D86C9242CFA02EED926E200C7B1215A8893 |
130 | 20180403122312 2 6 100 3071 5 D9FA0132FCCAAE8116BD22861CD21A859841BA7D566829E10ACC15A7EFEEB381774F839F7228AE3C627F5765944DCDB6866618E187903EBDB558C9186BD84D2521630A379E161FDCEC19BA02A8E4B5A3C4A66D02CA0FEB7BEB75BA3BE87F26BB99122217A4FFEB1F730B430AA0A70BA4A91EFB248DF689E95957E93B9E5D2AC13FBD3896759F77C6CBB6664BA6FEB31C4FD7BF081D4F2D800AB8D979D89A5EFB34675A904F4B332ADD7340116E7D5D4F72F7E3940A30036ACA889C27D8E2E11C0668A2E8A43DFF411FA03F0AFB420262947A60528805A7E0F4B2CC6AC0EF62CBCB807BC131A8D51E7784A13C77DB461A9FDF01C0E97EA8B7C5A13BB4A86784C2FFA34FC1EF094ACB858A919951AA55508E468CBB889EA63B606D45455AAB75883A75A813E9EC6A3A49CADB05A62C2F5CA32013A4FC73E8B5DE1C14A39539A4716B157C08C74CD99EA23AE018A89C838B6C0EAEECDFCF78A447594033ED3D63F4623BFC05C0F6701A36420D60D9C99339F9486395CBE534D66CE66AAE08B88A7F | 130 | 20180920110055 2 6 100 3071 5 DE6700153B27F195B230266F3E9064D8646E4E27111A6C5A013DE98A5CD7F11B31B1DC4C71DD72CBEC38DA508B1AD04CB69A372B8D01396C5AE7F5F99C3C3CBE1B2B3287C6AB5794E3AFD6C4E5C8E23B76E21A479765DD7D0D8D41A75DA966486E2C94030AA81314CFC104172048A82D95F402FA9B12E2CF3469AF6202F527BB5FADD82F7F5A67CF47EAA9F70FA02A55D45688EC65A26E8A8BCBD47BEA5C70721995434D0736F3396E9D1681BB08A336B0A9E3340AA24D1E9AC4B33103438C130B4BB87A22D3D85B8BC66B66679790AF7429D0B8F8CEE9BFA7F34239E0F109DABE5370196CB46C134B184178ED494D4703A681A18FFE9A4D6FF5EE71E141EBE11C6E3A6FEE7586F9D5B400EFDF06289783269BD86F1F38CABB0FBEAE666C0FE9EDAF7D1017DCCFBC4AEE1F1BE6FDA3EBD47C7E2BA2D54CC61B740E94B171E0FC2A0F93BF1B93FA4C1D6050106D20A69C11B16AC43EA17C6EE954444B05DCCAD5DAB6794A98FEE7256EA9B1F817E80D86C9242CFA02EED926E200C7B12161A467 |
131 | 20180403123158 2 6 100 3071 2 D9FA0132FCCAAE8116BD22861CD21A859841BA7D566829E10ACC15A7EFEEB381774F839F7228AE3C627F5765944DCDB6866618E187903EBDB558C9186BD84D2521630A379E161FDCEC19BA02A8E4B5A3C4A66D02CA0FEB7BEB75BA3BE87F26BB99122217A4FFEB1F730B430AA0A70BA4A91EFB248DF689E95957E93B9E5D2AC13FBD3896759F77C6CBB6664BA6FEB31C4FD7BF081D4F2D800AB8D979D89A5EFB34675A904F4B332ADD7340116E7D5D4F72F7E3940A30036ACA889C27D8E2E11C0668A2E8A43DFF411FA03F0AFB420262947A60528805A7E0F4B2CC6AC0EF62CBCB807BC131A8D51E7784A13C77DB461A9FDF01C0E97EA8B7C5A13BB4A86784C2FFA34FC1EF094ACB858A919951AA55508E468CBB889EA63B606D45455AAB75883A75A813E9EC6A3A49CADB05A62C2F5CA32013A4FC73E8B5DE1C14A39539A4716B157C08C74CD99EA23AE018A89C838B6C0EAEECDFCF78A447594033ED3D63F4623BFC05C0F6701A36420D60D9C99339F9486395CBE534D66CE66AAE09563C53 | 131 | 20180920111239 2 6 100 3071 2 DE6700153B27F195B230266F3E9064D8646E4E27111A6C5A013DE98A5CD7F11B31B1DC4C71DD72CBEC38DA508B1AD04CB69A372B8D01396C5AE7F5F99C3C3CBE1B2B3287C6AB5794E3AFD6C4E5C8E23B76E21A479765DD7D0D8D41A75DA966486E2C94030AA81314CFC104172048A82D95F402FA9B12E2CF3469AF6202F527BB5FADD82F7F5A67CF47EAA9F70FA02A55D45688EC65A26E8A8BCBD47BEA5C70721995434D0736F3396E9D1681BB08A336B0A9E3340AA24D1E9AC4B33103438C130B4BB87A22D3D85B8BC66B66679790AF7429D0B8F8CEE9BFA7F34239E0F109DABE5370196CB46C134B184178ED494D4703A681A18FFE9A4D6FF5EE71E141EBE11C6E3A6FEE7586F9D5B400EFDF06289783269BD86F1F38CABB0FBEAE666C0FE9EDAF7D1017DCCFBC4AEE1F1BE6FDA3EBD47C7E2BA2D54CC61B740E94B171E0FC2A0F93BF1B93FA4C1D6050106D20A69C11B16AC43EA17C6EE954444B05DCCAD5DAB6794A98FEE7256EA9B1F817E80D86C9242CFA02EED926E200C7B1234E3F83 |
132 | 20180403123328 2 6 100 3071 5 D9FA0132FCCAAE8116BD22861CD21A859841BA7D566829E10ACC15A7EFEEB381774F839F7228AE3C627F5765944DCDB6866618E187903EBDB558C9186BD84D2521630A379E161FDCEC19BA02A8E4B5A3C4A66D02CA0FEB7BEB75BA3BE87F26BB99122217A4FFEB1F730B430AA0A70BA4A91EFB248DF689E95957E93B9E5D2AC13FBD3896759F77C6CBB6664BA6FEB31C4FD7BF081D4F2D800AB8D979D89A5EFB34675A904F4B332ADD7340116E7D5D4F72F7E3940A30036ACA889C27D8E2E11C0668A2E8A43DFF411FA03F0AFB420262947A60528805A7E0F4B2CC6AC0EF62CBCB807BC131A8D51E7784A13C77DB461A9FDF01C0E97EA8B7C5A13BB4A86784C2FFA34FC1EF094ACB858A919951AA55508E468CBB889EA63B606D45455AAB75883A75A813E9EC6A3A49CADB05A62C2F5CA32013A4FC73E8B5DE1C14A39539A4716B157C08C74CD99EA23AE018A89C838B6C0EAEECDFCF78A447594033ED3D63F4623BFC05C0F6701A36420D60D9C99339F9486395CBE534D66CE66AAE0969A18F | 132 | 20180920111553 2 6 100 3071 5 DE6700153B27F195B230266F3E9064D8646E4E27111A6C5A013DE98A5CD7F11B31B1DC4C71DD72CBEC38DA508B1AD04CB69A372B8D01396C5AE7F5F99C3C3CBE1B2B3287C6AB5794E3AFD6C4E5C8E23B76E21A479765DD7D0D8D41A75DA966486E2C94030AA81314CFC104172048A82D95F402FA9B12E2CF3469AF6202F527BB5FADD82F7F5A67CF47EAA9F70FA02A55D45688EC65A26E8A8BCBD47BEA5C70721995434D0736F3396E9D1681BB08A336B0A9E3340AA24D1E9AC4B33103438C130B4BB87A22D3D85B8BC66B66679790AF7429D0B8F8CEE9BFA7F34239E0F109DABE5370196CB46C134B184178ED494D4703A681A18FFE9A4D6FF5EE71E141EBE11C6E3A6FEE7586F9D5B400EFDF06289783269BD86F1F38CABB0FBEAE666C0FE9EDAF7D1017DCCFBC4AEE1F1BE6FDA3EBD47C7E2BA2D54CC61B740E94B171E0FC2A0F93BF1B93FA4C1D6050106D20A69C11B16AC43EA17C6EE954444B05DCCAD5DAB6794A98FEE7256EA9B1F817E80D86C9242CFA02EED926E200C7B123D4E7B7 |
133 | 20180403123534 2 6 100 3071 5 D9FA0132FCCAAE8116BD22861CD21A859841BA7D566829E10ACC15A7EFEEB381774F839F7228AE3C627F5765944DCDB6866618E187903EBDB558C9186BD84D2521630A379E161FDCEC19BA02A8E4B5A3C4A66D02CA0FEB7BEB75BA3BE87F26BB99122217A4FFEB1F730B430AA0A70BA4A91EFB248DF689E95957E93B9E5D2AC13FBD3896759F77C6CBB6664BA6FEB31C4FD7BF081D4F2D800AB8D979D89A5EFB34675A904F4B332ADD7340116E7D5D4F72F7E3940A30036ACA889C27D8E2E11C0668A2E8A43DFF411FA03F0AFB420262947A60528805A7E0F4B2CC6AC0EF62CBCB807BC131A8D51E7784A13C77DB461A9FDF01C0E97EA8B7C5A13BB4A86784C2FFA34FC1EF094ACB858A919951AA55508E468CBB889EA63B606D45455AAB75883A75A813E9EC6A3A49CADB05A62C2F5CA32013A4FC73E8B5DE1C14A39539A4716B157C08C74CD99EA23AE018A89C838B6C0EAEECDFCF78A447594033ED3D63F4623BFC05C0F6701A36420D60D9C99339F9486395CBE534D66CE66AAE09876D27 | 133 | 20180920113107 2 6 100 3071 2 D55876EAB302ADAA592F62BBE1E67B18C153FA6D93B6CF3C0D0E8989C13F29E1F6638AE58634C6A3C067754CA1241A8EDA45CB1306347BC6BA69D2CE5F515238C78CAFEB65D4FF05D52048EB048BE9B4C127C81EC60B978A372A5054B89BA7D8963DA343DB7F5B673B275E34D03A25C098FEE46063F963E47CAEB67A4915F413570C89224688F4598D25EEEE97DE581256261C0053CCBA12966E31849F31BF32BC506029A41F94356714EF0046FF68D5B75EC86ACB79708CD817C7752EA5E0D5E730245B06B91953434E2325B706C70492446CFC070C11F8E347AFDDB065B680A075BF287DEBFA9D59EE918B85D5D0157CD539A5E46888F39DB448D1D6BFAD57A3970C537387B556D801960276284F363287FE0230CA1950725B1B09A54DEDDF924BE8059E38A729A400582713F149E7E1005C8B0FB302ECA12D8949BA2B4FC645BE96B3F20384384626F1BA1F4E8E045442DDD6A124DECC49B8CDBD6D4217978F69FF8DE7B7F4B15908881391F81F43DF6FBD616398BE9225FE3AC5BD211E4B |
134 | 20180403124247 2 6 100 3071 5 D9FA0132FCCAAE8116BD22861CD21A859841BA7D566829E10ACC15A7EFEEB381774F839F7228AE3C627F5765944DCDB6866618E187903EBDB558C9186BD84D2521630A379E161FDCEC19BA02A8E4B5A3C4A66D02CA0FEB7BEB75BA3BE87F26BB99122217A4FFEB1F730B430AA0A70BA4A91EFB248DF689E95957E93B9E5D2AC13FBD3896759F77C6CBB6664BA6FEB31C4FD7BF081D4F2D800AB8D979D89A5EFB34675A904F4B332ADD7340116E7D5D4F72F7E3940A30036ACA889C27D8E2E11C0668A2E8A43DFF411FA03F0AFB420262947A60528805A7E0F4B2CC6AC0EF62CBCB807BC131A8D51E7784A13C77DB461A9FDF01C0E97EA8B7C5A13BB4A86784C2FFA34FC1EF094ACB858A919951AA55508E468CBB889EA63B606D45455AAB75883A75A813E9EC6A3A49CADB05A62C2F5CA32013A4FC73E8B5DE1C14A39539A4716B157C08C74CD99EA23AE018A89C838B6C0EAEECDFCF78A447594033ED3D63F4623BFC05C0F6701A36420D60D9C99339F9486395CBE534D66CE66AAE09F3F4CF | 134 | 20180920113301 2 6 100 3071 2 D55876EAB302ADAA592F62BBE1E67B18C153FA6D93B6CF3C0D0E8989C13F29E1F6638AE58634C6A3C067754CA1241A8EDA45CB1306347BC6BA69D2CE5F515238C78CAFEB65D4FF05D52048EB048BE9B4C127C81EC60B978A372A5054B89BA7D8963DA343DB7F5B673B275E34D03A25C098FEE46063F963E47CAEB67A4915F413570C89224688F4598D25EEEE97DE581256261C0053CCBA12966E31849F31BF32BC506029A41F94356714EF0046FF68D5B75EC86ACB79708CD817C7752EA5E0D5E730245B06B91953434E2325B706C70492446CFC070C11F8E347AFDDB065B680A075BF287DEBFA9D59EE918B85D5D0157CD539A5E46888F39DB448D1D6BFAD57A3970C537387B556D801960276284F363287FE0230CA1950725B1B09A54DEDDF924BE8059E38A729A400582713F149E7E1005C8B0FB302ECA12D8949BA2B4FC645BE96B3F20384384626F1BA1F4E8E045442DDD6A124DECC49B8CDBD6D4217978F69FF8DE7B7F4B15908881391F81F43DF6FBD616398BE9225FE3AC5BD69A2F3 |
135 | 20180403124446 2 6 100 3071 5 D9FA0132FCCAAE8116BD22861CD21A859841BA7D566829E10ACC15A7EFEEB381774F839F7228AE3C627F5765944DCDB6866618E187903EBDB558C9186BD84D2521630A379E161FDCEC19BA02A8E4B5A3C4A66D02CA0FEB7BEB75BA3BE87F26BB99122217A4FFEB1F730B430AA0A70BA4A91EFB248DF689E95957E93B9E5D2AC13FBD3896759F77C6CBB6664BA6FEB31C4FD7BF081D4F2D800AB8D979D89A5EFB34675A904F4B332ADD7340116E7D5D4F72F7E3940A30036ACA889C27D8E2E11C0668A2E8A43DFF411FA03F0AFB420262947A60528805A7E0F4B2CC6AC0EF62CBCB807BC131A8D51E7784A13C77DB461A9FDF01C0E97EA8B7C5A13BB4A86784C2FFA34FC1EF094ACB858A919951AA55508E468CBB889EA63B606D45455AAB75883A75A813E9EC6A3A49CADB05A62C2F5CA32013A4FC73E8B5DE1C14A39539A4716B157C08C74CD99EA23AE018A89C838B6C0EAEECDFCF78A447594033ED3D63F4623BFC05C0F6701A36420D60D9C99339F9486395CBE534D66CE66AAE0A10443F | 135 | 20180920113601 2 6 100 3071 5 D55876EAB302ADAA592F62BBE1E67B18C153FA6D93B6CF3C0D0E8989C13F29E1F6638AE58634C6A3C067754CA1241A8EDA45CB1306347BC6BA69D2CE5F515238C78CAFEB65D4FF05D52048EB048BE9B4C127C81EC60B978A372A5054B89BA7D8963DA343DB7F5B673B275E34D03A25C098FEE46063F963E47CAEB67A4915F413570C89224688F4598D25EEEE97DE581256261C0053CCBA12966E31849F31BF32BC506029A41F94356714EF0046FF68D5B75EC86ACB79708CD817C7752EA5E0D5E730245B06B91953434E2325B706C70492446CFC070C11F8E347AFDDB065B680A075BF287DEBFA9D59EE918B85D5D0157CD539A5E46888F39DB448D1D6BFAD57A3970C537387B556D801960276284F363287FE0230CA1950725B1B09A54DEDDF924BE8059E38A729A400582713F149E7E1005C8B0FB302ECA12D8949BA2B4FC645BE96B3F20384384626F1BA1F4E8E045442DDD6A124DECC49B8CDBD6D4217978F69FF8DE7B7F4B15908881391F81F43DF6FBD616398BE9225FE3AC5BDE3D567 |
136 | 20180403125400 2 6 100 3071 5 D9FA0132FCCAAE8116BD22861CD21A859841BA7D566829E10ACC15A7EFEEB381774F839F7228AE3C627F5765944DCDB6866618E187903EBDB558C9186BD84D2521630A379E161FDCEC19BA02A8E4B5A3C4A66D02CA0FEB7BEB75BA3BE87F26BB99122217A4FFEB1F730B430AA0A70BA4A91EFB248DF689E95957E93B9E5D2AC13FBD3896759F77C6CBB6664BA6FEB31C4FD7BF081D4F2D800AB8D979D89A5EFB34675A904F4B332ADD7340116E7D5D4F72F7E3940A30036ACA889C27D8E2E11C0668A2E8A43DFF411FA03F0AFB420262947A60528805A7E0F4B2CC6AC0EF62CBCB807BC131A8D51E7784A13C77DB461A9FDF01C0E97EA8B7C5A13BB4A86784C2FFA34FC1EF094ACB858A919951AA55508E468CBB889EA63B606D45455AAB75883A75A813E9EC6A3A49CADB05A62C2F5CA32013A4FC73E8B5DE1C14A39539A4716B157C08C74CD99EA23AE018A89C838B6C0EAEECDFCF78A447594033ED3D63F4623BFC05C0F6701A36420D60D9C99339F9486395CBE534D66CE66AAE0AA6560F | 136 | 20180920113838 2 6 100 3071 2 D55876EAB302ADAA592F62BBE1E67B18C153FA6D93B6CF3C0D0E8989C13F29E1F6638AE58634C6A3C067754CA1241A8EDA45CB1306347BC6BA69D2CE5F515238C78CAFEB65D4FF05D52048EB048BE9B4C127C81EC60B978A372A5054B89BA7D8963DA343DB7F5B673B275E34D03A25C098FEE46063F963E47CAEB67A4915F413570C89224688F4598D25EEEE97DE581256261C0053CCBA12966E31849F31BF32BC506029A41F94356714EF0046FF68D5B75EC86ACB79708CD817C7752EA5E0D5E730245B06B91953434E2325B706C70492446CFC070C11F8E347AFDDB065B680A075BF287DEBFA9D59EE918B85D5D0157CD539A5E46888F39DB448D1D6BFAD57A3970C537387B556D801960276284F363287FE0230CA1950725B1B09A54DEDDF924BE8059E38A729A400582713F149E7E1005C8B0FB302ECA12D8949BA2B4FC645BE96B3F20384384626F1BA1F4E8E045442DDD6A124DECC49B8CDBD6D4217978F69FF8DE7B7F4B15908881391F81F43DF6FBD616398BE9225FE3AC5BE4DA06B |
137 | 20180403131328 2 6 100 3071 2 D9FA0132FCCAAE8116BD22861CD21A859841BA7D566829E10ACC15A7EFEEB381774F839F7228AE3C627F5765944DCDB6866618E187903EBDB558C9186BD84D2521630A379E161FDCEC19BA02A8E4B5A3C4A66D02CA0FEB7BEB75BA3BE87F26BB99122217A4FFEB1F730B430AA0A70BA4A91EFB248DF689E95957E93B9E5D2AC13FBD3896759F77C6CBB6664BA6FEB31C4FD7BF081D4F2D800AB8D979D89A5EFB34675A904F4B332ADD7340116E7D5D4F72F7E3940A30036ACA889C27D8E2E11C0668A2E8A43DFF411FA03F0AFB420262947A60528805A7E0F4B2CC6AC0EF62CBCB807BC131A8D51E7784A13C77DB461A9FDF01C0E97EA8B7C5A13BB4A86784C2FFA34FC1EF094ACB858A919951AA55508E468CBB889EA63B606D45455AAB75883A75A813E9EC6A3A49CADB05A62C2F5CA32013A4FC73E8B5DE1C14A39539A4716B157C08C74CD99EA23AE018A89C838B6C0EAEECDFCF78A447594033ED3D63F4623BFC05C0F6701A36420D60D9C99339F9486395CBE534D66CE66AAE0BF05873 | 137 | 20180920114445 2 6 100 3071 5 D55876EAB302ADAA592F62BBE1E67B18C153FA6D93B6CF3C0D0E8989C13F29E1F6638AE58634C6A3C067754CA1241A8EDA45CB1306347BC6BA69D2CE5F515238C78CAFEB65D4FF05D52048EB048BE9B4C127C81EC60B978A372A5054B89BA7D8963DA343DB7F5B673B275E34D03A25C098FEE46063F963E47CAEB67A4915F413570C89224688F4598D25EEEE97DE581256261C0053CCBA12966E31849F31BF32BC506029A41F94356714EF0046FF68D5B75EC86ACB79708CD817C7752EA5E0D5E730245B06B91953434E2325B706C70492446CFC070C11F8E347AFDDB065B680A075BF287DEBFA9D59EE918B85D5D0157CD539A5E46888F39DB448D1D6BFAD57A3970C537387B556D801960276284F363287FE0230CA1950725B1B09A54DEDDF924BE8059E38A729A400582713F149E7E1005C8B0FB302ECA12D8949BA2B4FC645BE96B3F20384384626F1BA1F4E8E045442DDD6A124DECC49B8CDBD6D4217978F69FF8DE7B7F4B15908881391F81F43DF6FBD616398BE9225FE3AC5BF499357 |
138 | 20180403131708 2 6 100 3071 2 D9FA0132FCCAAE8116BD22861CD21A859841BA7D566829E10ACC15A7EFEEB381774F839F7228AE3C627F5765944DCDB6866618E187903EBDB558C9186BD84D2521630A379E161FDCEC19BA02A8E4B5A3C4A66D02CA0FEB7BEB75BA3BE87F26BB99122217A4FFEB1F730B430AA0A70BA4A91EFB248DF689E95957E93B9E5D2AC13FBD3896759F77C6CBB6664BA6FEB31C4FD7BF081D4F2D800AB8D979D89A5EFB34675A904F4B332ADD7340116E7D5D4F72F7E3940A30036ACA889C27D8E2E11C0668A2E8A43DFF411FA03F0AFB420262947A60528805A7E0F4B2CC6AC0EF62CBCB807BC131A8D51E7784A13C77DB461A9FDF01C0E97EA8B7C5A13BB4A86784C2FFA34FC1EF094ACB858A919951AA55508E468CBB889EA63B606D45455AAB75883A75A813E9EC6A3A49CADB05A62C2F5CA32013A4FC73E8B5DE1C14A39539A4716B157C08C74CD99EA23AE018A89C838B6C0EAEECDFCF78A447594033ED3D63F4623BFC05C0F6701A36420D60D9C99339F9486395CBE534D66CE66AAE0C28FCF3 | 138 | 20180920114933 2 6 100 3071 2 D55876EAB302ADAA592F62BBE1E67B18C153FA6D93B6CF3C0D0E8989C13F29E1F6638AE58634C6A3C067754CA1241A8EDA45CB1306347BC6BA69D2CE5F515238C78CAFEB65D4FF05D52048EB048BE9B4C127C81EC60B978A372A5054B89BA7D8963DA343DB7F5B673B275E34D03A25C098FEE46063F963E47CAEB67A4915F413570C89224688F4598D25EEEE97DE581256261C0053CCBA12966E31849F31BF32BC506029A41F94356714EF0046FF68D5B75EC86ACB79708CD817C7752EA5E0D5E730245B06B91953434E2325B706C70492446CFC070C11F8E347AFDDB065B680A075BF287DEBFA9D59EE918B85D5D0157CD539A5E46888F39DB448D1D6BFAD57A3970C537387B556D801960276284F363287FE0230CA1950725B1B09A54DEDDF924BE8059E38A729A400582713F149E7E1005C8B0FB302ECA12D8949BA2B4FC645BE96B3F20384384626F1BA1F4E8E045442DDD6A124DECC49B8CDBD6D4217978F69FF8DE7B7F4B15908881391F81F43DF6FBD616398BE9225FE3AC5C00F4FE3 |
139 | 20180403132618 2 6 100 3071 2 D9FA0132FCCAAE8116BD22861CD21A859841BA7D566829E10ACC15A7EFEEB381774F839F7228AE3C627F5765944DCDB6866618E187903EBDB558C9186BD84D2521630A379E161FDCEC19BA02A8E4B5A3C4A66D02CA0FEB7BEB75BA3BE87F26BB99122217A4FFEB1F730B430AA0A70BA4A91EFB248DF689E95957E93B9E5D2AC13FBD3896759F77C6CBB6664BA6FEB31C4FD7BF081D4F2D800AB8D979D89A5EFB34675A904F4B332ADD7340116E7D5D4F72F7E3940A30036ACA889C27D8E2E11C0668A2E8A43DFF411FA03F0AFB420262947A60528805A7E0F4B2CC6AC0EF62CBCB807BC131A8D51E7784A13C77DB461A9FDF01C0E97EA8B7C5A13BB4A86784C2FFA34FC1EF094ACB858A919951AA55508E468CBB889EA63B606D45455AAB75883A75A813E9EC6A3A49CADB05A62C2F5CA32013A4FC73E8B5DE1C14A39539A4716B157C08C74CD99EA23AE018A89C838B6C0EAEECDFCF78A447594033ED3D63F4623BFC05C0F6701A36420D60D9C99339F9486395CBE534D66CE66AAE0CC05D43 | 139 | 20180920115406 2 6 100 3071 5 D55876EAB302ADAA592F62BBE1E67B18C153FA6D93B6CF3C0D0E8989C13F29E1F6638AE58634C6A3C067754CA1241A8EDA45CB1306347BC6BA69D2CE5F515238C78CAFEB65D4FF05D52048EB048BE9B4C127C81EC60B978A372A5054B89BA7D8963DA343DB7F5B673B275E34D03A25C098FEE46063F963E47CAEB67A4915F413570C89224688F4598D25EEEE97DE581256261C0053CCBA12966E31849F31BF32BC506029A41F94356714EF0046FF68D5B75EC86ACB79708CD817C7752EA5E0D5E730245B06B91953434E2325B706C70492446CFC070C11F8E347AFDDB065B680A075BF287DEBFA9D59EE918B85D5D0157CD539A5E46888F39DB448D1D6BFAD57A3970C537387B556D801960276284F363287FE0230CA1950725B1B09A54DEDDF924BE8059E38A729A400582713F149E7E1005C8B0FB302ECA12D8949BA2B4FC645BE96B3F20384384626F1BA1F4E8E045442DDD6A124DECC49B8CDBD6D4217978F69FF8DE7B7F4B15908881391F81F43DF6FBD616398BE9225FE3AC5C0C7C2CF |
140 | 20180403140905 2 6 100 3071 2 D9FA0132FCCAAE8116BD22861CD21A859841BA7D566829E10ACC15A7EFEEB381774F839F7228AE3C627F5765944DCDB6866618E187903EBDB558C9186BD84D2521630A379E161FDCEC19BA02A8E4B5A3C4A66D02CA0FEB7BEB75BA3BE87F26BB99122217A4FFEB1F730B430AA0A70BA4A91EFB248DF689E95957E93B9E5D2AC13FBD3896759F77C6CBB6664BA6FEB31C4FD7BF081D4F2D800AB8D979D89A5EFB34675A904F4B332ADD7340116E7D5D4F72F7E3940A30036ACA889C27D8E2E11C0668A2E8A43DFF411FA03F0AFB420262947A60528805A7E0F4B2CC6AC0EF62CBCB807BC131A8D51E7784A13C77DB461A9FDF01C0E97EA8B7C5A13BB4A86784C2FFA34FC1EF094ACB858A919951AA55508E468CBB889EA63B606D45455AAB75883A75A813E9EC6A3A49CADB05A62C2F5CA32013A4FC73E8B5DE1C14A39539A4716B157C08C74CD99EA23AE018A89C838B6C0EAEECDFCF78A447594033ED3D63F4623BFC05C0F6701A36420D60D9C99339F9486395CBE534D66CE66AAE0FBCA05B | 140 | 20180920115734 2 6 100 3071 5 D55876EAB302ADAA592F62BBE1E67B18C153FA6D93B6CF3C0D0E8989C13F29E1F6638AE58634C6A3C067754CA1241A8EDA45CB1306347BC6BA69D2CE5F515238C78CAFEB65D4FF05D52048EB048BE9B4C127C81EC60B978A372A5054B89BA7D8963DA343DB7F5B673B275E34D03A25C098FEE46063F963E47CAEB67A4915F413570C89224688F4598D25EEEE97DE581256261C0053CCBA12966E31849F31BF32BC506029A41F94356714EF0046FF68D5B75EC86ACB79708CD817C7752EA5E0D5E730245B06B91953434E2325B706C70492446CFC070C11F8E347AFDDB065B680A075BF287DEBFA9D59EE918B85D5D0157CD539A5E46888F39DB448D1D6BFAD57A3970C537387B556D801960276284F363287FE0230CA1950725B1B09A54DEDDF924BE8059E38A729A400582713F149E7E1005C8B0FB302ECA12D8949BA2B4FC645BE96B3F20384384626F1BA1F4E8E045442DDD6A124DECC49B8CDBD6D4217978F69FF8DE7B7F4B15908881391F81F43DF6FBD616398BE9225FE3AC5C159195F |
141 | 20180403141813 2 6 100 3071 5 D9FA0132FCCAAE8116BD22861CD21A859841BA7D566829E10ACC15A7EFEEB381774F839F7228AE3C627F5765944DCDB6866618E187903EBDB558C9186BD84D2521630A379E161FDCEC19BA02A8E4B5A3C4A66D02CA0FEB7BEB75BA3BE87F26BB99122217A4FFEB1F730B430AA0A70BA4A91EFB248DF689E95957E93B9E5D2AC13FBD3896759F77C6CBB6664BA6FEB31C4FD7BF081D4F2D800AB8D979D89A5EFB34675A904F4B332ADD7340116E7D5D4F72F7E3940A30036ACA889C27D8E2E11C0668A2E8A43DFF411FA03F0AFB420262947A60528805A7E0F4B2CC6AC0EF62CBCB807BC131A8D51E7784A13C77DB461A9FDF01C0E97EA8B7C5A13BB4A86784C2FFA34FC1EF094ACB858A919951AA55508E468CBB889EA63B606D45455AAB75883A75A813E9EC6A3A49CADB05A62C2F5CA32013A4FC73E8B5DE1C14A39539A4716B157C08C74CD99EA23AE018A89C838B6C0EAEECDFCF78A447594033ED3D63F4623BFC05C0F6701A36420D60D9C99339F9486395CBE534D66CE66AAE1054C7EF | 141 | 20180920120001 2 6 100 3071 5 D55876EAB302ADAA592F62BBE1E67B18C153FA6D93B6CF3C0D0E8989C13F29E1F6638AE58634C6A3C067754CA1241A8EDA45CB1306347BC6BA69D2CE5F515238C78CAFEB65D4FF05D52048EB048BE9B4C127C81EC60B978A372A5054B89BA7D8963DA343DB7F5B673B275E34D03A25C098FEE46063F963E47CAEB67A4915F413570C89224688F4598D25EEEE97DE581256261C0053CCBA12966E31849F31BF32BC506029A41F94356714EF0046FF68D5B75EC86ACB79708CD817C7752EA5E0D5E730245B06B91953434E2325B706C70492446CFC070C11F8E347AFDDB065B680A075BF287DEBFA9D59EE918B85D5D0157CD539A5E46888F39DB448D1D6BFAD57A3970C537387B556D801960276284F363287FE0230CA1950725B1B09A54DEDDF924BE8059E38A729A400582713F149E7E1005C8B0FB302ECA12D8949BA2B4FC645BE96B3F20384384626F1BA1F4E8E045442DDD6A124DECC49B8CDBD6D4217978F69FF8DE7B7F4B15908881391F81F43DF6FBD616398BE9225FE3AC5C1B99ABF |
142 | 20180403143434 2 6 100 3071 2 D9FA0132FCCAAE8116BD22861CD21A859841BA7D566829E10ACC15A7EFEEB381774F839F7228AE3C627F5765944DCDB6866618E187903EBDB558C9186BD84D2521630A379E161FDCEC19BA02A8E4B5A3C4A66D02CA0FEB7BEB75BA3BE87F26BB99122217A4FFEB1F730B430AA0A70BA4A91EFB248DF689E95957E93B9E5D2AC13FBD3896759F77C6CBB6664BA6FEB31C4FD7BF081D4F2D800AB8D979D89A5EFB34675A904F4B332ADD7340116E7D5D4F72F7E3940A30036ACA889C27D8E2E11C0668A2E8A43DFF411FA03F0AFB420262947A60528805A7E0F4B2CC6AC0EF62CBCB807BC131A8D51E7784A13C77DB461A9FDF01C0E97EA8B7C5A13BB4A86784C2FFA34FC1EF094ACB858A919951AA55508E468CBB889EA63B606D45455AAB75883A75A813E9EC6A3A49CADB05A62C2F5CA32013A4FC73E8B5DE1C14A39539A4716B157C08C74CD99EA23AE018A89C838B6C0EAEECDFCF78A447594033ED3D63F4623BFC05C0F6701A36420D60D9C99339F9486395CBE534D66CE66AAE1176152B | 142 | 20180920120514 2 6 100 3071 2 D55876EAB302ADAA592F62BBE1E67B18C153FA6D93B6CF3C0D0E8989C13F29E1F6638AE58634C6A3C067754CA1241A8EDA45CB1306347BC6BA69D2CE5F515238C78CAFEB65D4FF05D52048EB048BE9B4C127C81EC60B978A372A5054B89BA7D8963DA343DB7F5B673B275E34D03A25C098FEE46063F963E47CAEB67A4915F413570C89224688F4598D25EEEE97DE581256261C0053CCBA12966E31849F31BF32BC506029A41F94356714EF0046FF68D5B75EC86ACB79708CD817C7752EA5E0D5E730245B06B91953434E2325B706C70492446CFC070C11F8E347AFDDB065B680A075BF287DEBFA9D59EE918B85D5D0157CD539A5E46888F39DB448D1D6BFAD57A3970C537387B556D801960276284F363287FE0230CA1950725B1B09A54DEDDF924BE8059E38A729A400582713F149E7E1005C8B0FB302ECA12D8949BA2B4FC645BE96B3F20384384626F1BA1F4E8E045442DDD6A124DECC49B8CDBD6D4217978F69FF8DE7B7F4B15908881391F81F43DF6FBD616398BE9225FE3AC5C29330EB |
143 | 20180403143933 2 6 100 3071 2 D9FA0132FCCAAE8116BD22861CD21A859841BA7D566829E10ACC15A7EFEEB381774F839F7228AE3C627F5765944DCDB6866618E187903EBDB558C9186BD84D2521630A379E161FDCEC19BA02A8E4B5A3C4A66D02CA0FEB7BEB75BA3BE87F26BB99122217A4FFEB1F730B430AA0A70BA4A91EFB248DF689E95957E93B9E5D2AC13FBD3896759F77C6CBB6664BA6FEB31C4FD7BF081D4F2D800AB8D979D89A5EFB34675A904F4B332ADD7340116E7D5D4F72F7E3940A30036ACA889C27D8E2E11C0668A2E8A43DFF411FA03F0AFB420262947A60528805A7E0F4B2CC6AC0EF62CBCB807BC131A8D51E7784A13C77DB461A9FDF01C0E97EA8B7C5A13BB4A86784C2FFA34FC1EF094ACB858A919951AA55508E468CBB889EA63B606D45455AAB75883A75A813E9EC6A3A49CADB05A62C2F5CA32013A4FC73E8B5DE1C14A39539A4716B157C08C74CD99EA23AE018A89C838B6C0EAEECDFCF78A447594033ED3D63F4623BFC05C0F6701A36420D60D9C99339F9486395CBE534D66CE66AAE11C90E93 | 143 | 20180920120628 2 6 100 3071 5 D55876EAB302ADAA592F62BBE1E67B18C153FA6D93B6CF3C0D0E8989C13F29E1F6638AE58634C6A3C067754CA1241A8EDA45CB1306347BC6BA69D2CE5F515238C78CAFEB65D4FF05D52048EB048BE9B4C127C81EC60B978A372A5054B89BA7D8963DA343DB7F5B673B275E34D03A25C098FEE46063F963E47CAEB67A4915F413570C89224688F4598D25EEEE97DE581256261C0053CCBA12966E31849F31BF32BC506029A41F94356714EF0046FF68D5B75EC86ACB79708CD817C7752EA5E0D5E730245B06B91953434E2325B706C70492446CFC070C11F8E347AFDDB065B680A075BF287DEBFA9D59EE918B85D5D0157CD539A5E46888F39DB448D1D6BFAD57A3970C537387B556D801960276284F363287FE0230CA1950725B1B09A54DEDDF924BE8059E38A729A400582713F149E7E1005C8B0FB302ECA12D8949BA2B4FC645BE96B3F20384384626F1BA1F4E8E045442DDD6A124DECC49B8CDBD6D4217978F69FF8DE7B7F4B15908881391F81F43DF6FBD616398BE9225FE3AC5C2C100E7 |
144 | 20180403144751 2 6 100 3071 2 D9FA0132FCCAAE8116BD22861CD21A859841BA7D566829E10ACC15A7EFEEB381774F839F7228AE3C627F5765944DCDB6866618E187903EBDB558C9186BD84D2521630A379E161FDCEC19BA02A8E4B5A3C4A66D02CA0FEB7BEB75BA3BE87F26BB99122217A4FFEB1F730B430AA0A70BA4A91EFB248DF689E95957E93B9E5D2AC13FBD3896759F77C6CBB6664BA6FEB31C4FD7BF081D4F2D800AB8D979D89A5EFB34675A904F4B332ADD7340116E7D5D4F72F7E3940A30036ACA889C27D8E2E11C0668A2E8A43DFF411FA03F0AFB420262947A60528805A7E0F4B2CC6AC0EF62CBCB807BC131A8D51E7784A13C77DB461A9FDF01C0E97EA8B7C5A13BB4A86784C2FFA34FC1EF094ACB858A919951AA55508E468CBB889EA63B606D45455AAB75883A75A813E9EC6A3A49CADB05A62C2F5CA32013A4FC73E8B5DE1C14A39539A4716B157C08C74CD99EA23AE018A89C838B6C0EAEECDFCF78A447594033ED3D63F4623BFC05C0F6701A36420D60D9C99339F9486395CBE534D66CE66AAE125A12D3 | 144 | 20180920120657 2 6 100 3071 5 D55876EAB302ADAA592F62BBE1E67B18C153FA6D93B6CF3C0D0E8989C13F29E1F6638AE58634C6A3C067754CA1241A8EDA45CB1306347BC6BA69D2CE5F515238C78CAFEB65D4FF05D52048EB048BE9B4C127C81EC60B978A372A5054B89BA7D8963DA343DB7F5B673B275E34D03A25C098FEE46063F963E47CAEB67A4915F413570C89224688F4598D25EEEE97DE581256261C0053CCBA12966E31849F31BF32BC506029A41F94356714EF0046FF68D5B75EC86ACB79708CD817C7752EA5E0D5E730245B06B91953434E2325B706C70492446CFC070C11F8E347AFDDB065B680A075BF287DEBFA9D59EE918B85D5D0157CD539A5E46888F39DB448D1D6BFAD57A3970C537387B556D801960276284F363287FE0230CA1950725B1B09A54DEDDF924BE8059E38A729A400582713F149E7E1005C8B0FB302ECA12D8949BA2B4FC645BE96B3F20384384626F1BA1F4E8E045442DDD6A124DECC49B8CDBD6D4217978F69FF8DE7B7F4B15908881391F81F43DF6FBD616398BE9225FE3AC5C2CD60CF |
145 | 20180403145406 2 6 100 3071 5 D9FA0132FCCAAE8116BD22861CD21A859841BA7D566829E10ACC15A7EFEEB381774F839F7228AE3C627F5765944DCDB6866618E187903EBDB558C9186BD84D2521630A379E161FDCEC19BA02A8E4B5A3C4A66D02CA0FEB7BEB75BA3BE87F26BB99122217A4FFEB1F730B430AA0A70BA4A91EFB248DF689E95957E93B9E5D2AC13FBD3896759F77C6CBB6664BA6FEB31C4FD7BF081D4F2D800AB8D979D89A5EFB34675A904F4B332ADD7340116E7D5D4F72F7E3940A30036ACA889C27D8E2E11C0668A2E8A43DFF411FA03F0AFB420262947A60528805A7E0F4B2CC6AC0EF62CBCB807BC131A8D51E7784A13C77DB461A9FDF01C0E97EA8B7C5A13BB4A86784C2FFA34FC1EF094ACB858A919951AA55508E468CBB889EA63B606D45455AAB75883A75A813E9EC6A3A49CADB05A62C2F5CA32013A4FC73E8B5DE1C14A39539A4716B157C08C74CD99EA23AE018A89C838B6C0EAEECDFCF78A447594033ED3D63F4623BFC05C0F6701A36420D60D9C99339F9486395CBE534D66CE66AAE12C4F6CF | 145 | 20180920120944 2 6 100 3071 5 D55876EAB302ADAA592F62BBE1E67B18C153FA6D93B6CF3C0D0E8989C13F29E1F6638AE58634C6A3C067754CA1241A8EDA45CB1306347BC6BA69D2CE5F515238C78CAFEB65D4FF05D52048EB048BE9B4C127C81EC60B978A372A5054B89BA7D8963DA343DB7F5B673B275E34D03A25C098FEE46063F963E47CAEB67A4915F413570C89224688F4598D25EEEE97DE581256261C0053CCBA12966E31849F31BF32BC506029A41F94356714EF0046FF68D5B75EC86ACB79708CD817C7752EA5E0D5E730245B06B91953434E2325B706C70492446CFC070C11F8E347AFDDB065B680A075BF287DEBFA9D59EE918B85D5D0157CD539A5E46888F39DB448D1D6BFAD57A3970C537387B556D801960276284F363287FE0230CA1950725B1B09A54DEDDF924BE8059E38A729A400582713F149E7E1005C8B0FB302ECA12D8949BA2B4FC645BE96B3F20384384626F1BA1F4E8E045442DDD6A124DECC49B8CDBD6D4217978F69FF8DE7B7F4B15908881391F81F43DF6FBD616398BE9225FE3AC5C33CEF4F |
146 | 20180403145448 2 6 100 3071 5 D9FA0132FCCAAE8116BD22861CD21A859841BA7D566829E10ACC15A7EFEEB381774F839F7228AE3C627F5765944DCDB6866618E187903EBDB558C9186BD84D2521630A379E161FDCEC19BA02A8E4B5A3C4A66D02CA0FEB7BEB75BA3BE87F26BB99122217A4FFEB1F730B430AA0A70BA4A91EFB248DF689E95957E93B9E5D2AC13FBD3896759F77C6CBB6664BA6FEB31C4FD7BF081D4F2D800AB8D979D89A5EFB34675A904F4B332ADD7340116E7D5D4F72F7E3940A30036ACA889C27D8E2E11C0668A2E8A43DFF411FA03F0AFB420262947A60528805A7E0F4B2CC6AC0EF62CBCB807BC131A8D51E7784A13C77DB461A9FDF01C0E97EA8B7C5A13BB4A86784C2FFA34FC1EF094ACB858A919951AA55508E468CBB889EA63B606D45455AAB75883A75A813E9EC6A3A49CADB05A62C2F5CA32013A4FC73E8B5DE1C14A39539A4716B157C08C74CD99EA23AE018A89C838B6C0EAEECDFCF78A447594033ED3D63F4623BFC05C0F6701A36420D60D9C99339F9486395CBE534D66CE66AAE12CA246F | 146 | 20180920121341 2 6 100 3071 5 D55876EAB302ADAA592F62BBE1E67B18C153FA6D93B6CF3C0D0E8989C13F29E1F6638AE58634C6A3C067754CA1241A8EDA45CB1306347BC6BA69D2CE5F515238C78CAFEB65D4FF05D52048EB048BE9B4C127C81EC60B978A372A5054B89BA7D8963DA343DB7F5B673B275E34D03A25C098FEE46063F963E47CAEB67A4915F413570C89224688F4598D25EEEE97DE581256261C0053CCBA12966E31849F31BF32BC506029A41F94356714EF0046FF68D5B75EC86ACB79708CD817C7752EA5E0D5E730245B06B91953434E2325B706C70492446CFC070C11F8E347AFDDB065B680A075BF287DEBFA9D59EE918B85D5D0157CD539A5E46888F39DB448D1D6BFAD57A3970C537387B556D801960276284F363287FE0230CA1950725B1B09A54DEDDF924BE8059E38A729A400582713F149E7E1005C8B0FB302ECA12D8949BA2B4FC645BE96B3F20384384626F1BA1F4E8E045442DDD6A124DECC49B8CDBD6D4217978F69FF8DE7B7F4B15908881391F81F43DF6FBD616398BE9225FE3AC5C3E0892F |
147 | 20180403145549 2 6 100 3071 2 D9FA0132FCCAAE8116BD22861CD21A859841BA7D566829E10ACC15A7EFEEB381774F839F7228AE3C627F5765944DCDB6866618E187903EBDB558C9186BD84D2521630A379E161FDCEC19BA02A8E4B5A3C4A66D02CA0FEB7BEB75BA3BE87F26BB99122217A4FFEB1F730B430AA0A70BA4A91EFB248DF689E95957E93B9E5D2AC13FBD3896759F77C6CBB6664BA6FEB31C4FD7BF081D4F2D800AB8D979D89A5EFB34675A904F4B332ADD7340116E7D5D4F72F7E3940A30036ACA889C27D8E2E11C0668A2E8A43DFF411FA03F0AFB420262947A60528805A7E0F4B2CC6AC0EF62CBCB807BC131A8D51E7784A13C77DB461A9FDF01C0E97EA8B7C5A13BB4A86784C2FFA34FC1EF094ACB858A919951AA55508E468CBB889EA63B606D45455AAB75883A75A813E9EC6A3A49CADB05A62C2F5CA32013A4FC73E8B5DE1C14A39539A4716B157C08C74CD99EA23AE018A89C838B6C0EAEECDFCF78A447594033ED3D63F4623BFC05C0F6701A36420D60D9C99339F9486395CBE534D66CE66AAE12D582AB | 147 | 20180920121628 2 6 100 3071 5 D55876EAB302ADAA592F62BBE1E67B18C153FA6D93B6CF3C0D0E8989C13F29E1F6638AE58634C6A3C067754CA1241A8EDA45CB1306347BC6BA69D2CE5F515238C78CAFEB65D4FF05D52048EB048BE9B4C127C81EC60B978A372A5054B89BA7D8963DA343DB7F5B673B275E34D03A25C098FEE46063F963E47CAEB67A4915F413570C89224688F4598D25EEEE97DE581256261C0053CCBA12966E31849F31BF32BC506029A41F94356714EF0046FF68D5B75EC86ACB79708CD817C7752EA5E0D5E730245B06B91953434E2325B706C70492446CFC070C11F8E347AFDDB065B680A075BF287DEBFA9D59EE918B85D5D0157CD539A5E46888F39DB448D1D6BFAD57A3970C537387B556D801960276284F363287FE0230CA1950725B1B09A54DEDDF924BE8059E38A729A400582713F149E7E1005C8B0FB302ECA12D8949BA2B4FC645BE96B3F20384384626F1BA1F4E8E045442DDD6A124DECC49B8CDBD6D4217978F69FF8DE7B7F4B15908881391F81F43DF6FBD616398BE9225FE3AC5C44E0077 |
148 | 20180403150132 2 6 100 3071 2 D9FA0132FCCAAE8116BD22861CD21A859841BA7D566829E10ACC15A7EFEEB381774F839F7228AE3C627F5765944DCDB6866618E187903EBDB558C9186BD84D2521630A379E161FDCEC19BA02A8E4B5A3C4A66D02CA0FEB7BEB75BA3BE87F26BB99122217A4FFEB1F730B430AA0A70BA4A91EFB248DF689E95957E93B9E5D2AC13FBD3896759F77C6CBB6664BA6FEB31C4FD7BF081D4F2D800AB8D979D89A5EFB34675A904F4B332ADD7340116E7D5D4F72F7E3940A30036ACA889C27D8E2E11C0668A2E8A43DFF411FA03F0AFB420262947A60528805A7E0F4B2CC6AC0EF62CBCB807BC131A8D51E7784A13C77DB461A9FDF01C0E97EA8B7C5A13BB4A86784C2FFA34FC1EF094ACB858A919951AA55508E468CBB889EA63B606D45455AAB75883A75A813E9EC6A3A49CADB05A62C2F5CA32013A4FC73E8B5DE1C14A39539A4716B157C08C74CD99EA23AE018A89C838B6C0EAEECDFCF78A447594033ED3D63F4623BFC05C0F6701A36420D60D9C99339F9486395CBE534D66CE66AAE13386F43 | 148 | 20180920121700 2 6 100 3071 5 D55876EAB302ADAA592F62BBE1E67B18C153FA6D93B6CF3C0D0E8989C13F29E1F6638AE58634C6A3C067754CA1241A8EDA45CB1306347BC6BA69D2CE5F515238C78CAFEB65D4FF05D52048EB048BE9B4C127C81EC60B978A372A5054B89BA7D8963DA343DB7F5B673B275E34D03A25C098FEE46063F963E47CAEB67A4915F413570C89224688F4598D25EEEE97DE581256261C0053CCBA12966E31849F31BF32BC506029A41F94356714EF0046FF68D5B75EC86ACB79708CD817C7752EA5E0D5E730245B06B91953434E2325B706C70492446CFC070C11F8E347AFDDB065B680A075BF287DEBFA9D59EE918B85D5D0157CD539A5E46888F39DB448D1D6BFAD57A3970C537387B556D801960276284F363287FE0230CA1950725B1B09A54DEDDF924BE8059E38A729A400582713F149E7E1005C8B0FB302ECA12D8949BA2B4FC645BE96B3F20384384626F1BA1F4E8E045442DDD6A124DECC49B8CDBD6D4217978F69FF8DE7B7F4B15908881391F81F43DF6FBD616398BE9225FE3AC5C45D1D9F |
149 | 20180403150512 2 6 100 3071 2 D9FA0132FCCAAE8116BD22861CD21A859841BA7D566829E10ACC15A7EFEEB381774F839F7228AE3C627F5765944DCDB6866618E187903EBDB558C9186BD84D2521630A379E161FDCEC19BA02A8E4B5A3C4A66D02CA0FEB7BEB75BA3BE87F26BB99122217A4FFEB1F730B430AA0A70BA4A91EFB248DF689E95957E93B9E5D2AC13FBD3896759F77C6CBB6664BA6FEB31C4FD7BF081D4F2D800AB8D979D89A5EFB34675A904F4B332ADD7340116E7D5D4F72F7E3940A30036ACA889C27D8E2E11C0668A2E8A43DFF411FA03F0AFB420262947A60528805A7E0F4B2CC6AC0EF62CBCB807BC131A8D51E7784A13C77DB461A9FDF01C0E97EA8B7C5A13BB4A86784C2FFA34FC1EF094ACB858A919951AA55508E468CBB889EA63B606D45455AAB75883A75A813E9EC6A3A49CADB05A62C2F5CA32013A4FC73E8B5DE1C14A39539A4716B157C08C74CD99EA23AE018A89C838B6C0EAEECDFCF78A447594033ED3D63F4623BFC05C0F6701A36420D60D9C99339F9486395CBE534D66CE66AAE1373A2CB | 149 | 20180920121822 2 6 100 3071 2 D55876EAB302ADAA592F62BBE1E67B18C153FA6D93B6CF3C0D0E8989C13F29E1F6638AE58634C6A3C067754CA1241A8EDA45CB1306347BC6BA69D2CE5F515238C78CAFEB65D4FF05D52048EB048BE9B4C127C81EC60B978A372A5054B89BA7D8963DA343DB7F5B673B275E34D03A25C098FEE46063F963E47CAEB67A4915F413570C89224688F4598D25EEEE97DE581256261C0053CCBA12966E31849F31BF32BC506029A41F94356714EF0046FF68D5B75EC86ACB79708CD817C7752EA5E0D5E730245B06B91953434E2325B706C70492446CFC070C11F8E347AFDDB065B680A075BF287DEBFA9D59EE918B85D5D0157CD539A5E46888F39DB448D1D6BFAD57A3970C537387B556D801960276284F363287FE0230CA1950725B1B09A54DEDDF924BE8059E38A729A400582713F149E7E1005C8B0FB302ECA12D8949BA2B4FC645BE96B3F20384384626F1BA1F4E8E045442DDD6A124DECC49B8CDBD6D4217978F69FF8DE7B7F4B15908881391F81F43DF6FBD616398BE9225FE3AC5C493C143 |
150 | 20180403150605 2 6 100 3071 2 D9FA0132FCCAAE8116BD22861CD21A859841BA7D566829E10ACC15A7EFEEB381774F839F7228AE3C627F5765944DCDB6866618E187903EBDB558C9186BD84D2521630A379E161FDCEC19BA02A8E4B5A3C4A66D02CA0FEB7BEB75BA3BE87F26BB99122217A4FFEB1F730B430AA0A70BA4A91EFB248DF689E95957E93B9E5D2AC13FBD3896759F77C6CBB6664BA6FEB31C4FD7BF081D4F2D800AB8D979D89A5EFB34675A904F4B332ADD7340116E7D5D4F72F7E3940A30036ACA889C27D8E2E11C0668A2E8A43DFF411FA03F0AFB420262947A60528805A7E0F4B2CC6AC0EF62CBCB807BC131A8D51E7784A13C77DB461A9FDF01C0E97EA8B7C5A13BB4A86784C2FFA34FC1EF094ACB858A919951AA55508E468CBB889EA63B606D45455AAB75883A75A813E9EC6A3A49CADB05A62C2F5CA32013A4FC73E8B5DE1C14A39539A4716B157C08C74CD99EA23AE018A89C838B6C0EAEECDFCF78A447594033ED3D63F4623BFC05C0F6701A36420D60D9C99339F9486395CBE534D66CE66AAE137CA7DB | 150 | 20180920122041 2 6 100 3071 2 D55876EAB302ADAA592F62BBE1E67B18C153FA6D93B6CF3C0D0E8989C13F29E1F6638AE58634C6A3C067754CA1241A8EDA45CB1306347BC6BA69D2CE5F515238C78CAFEB65D4FF05D52048EB048BE9B4C127C81EC60B978A372A5054B89BA7D8963DA343DB7F5B673B275E34D03A25C098FEE46063F963E47CAEB67A4915F413570C89224688F4598D25EEEE97DE581256261C0053CCBA12966E31849F31BF32BC506029A41F94356714EF0046FF68D5B75EC86ACB79708CD817C7752EA5E0D5E730245B06B91953434E2325B706C70492446CFC070C11F8E347AFDDB065B680A075BF287DEBFA9D59EE918B85D5D0157CD539A5E46888F39DB448D1D6BFAD57A3970C537387B556D801960276284F363287FE0230CA1950725B1B09A54DEDDF924BE8059E38A729A400582713F149E7E1005C8B0FB302ECA12D8949BA2B4FC645BE96B3F20384384626F1BA1F4E8E045442DDD6A124DECC49B8CDBD6D4217978F69FF8DE7B7F4B15908881391F81F43DF6FBD616398BE9225FE3AC5C4EF9D0B |
151 | 20180403151404 2 6 100 3071 2 D9FA0132FCCAAE8116BD22861CD21A859841BA7D566829E10ACC15A7EFEEB381774F839F7228AE3C627F5765944DCDB6866618E187903EBDB558C9186BD84D2521630A379E161FDCEC19BA02A8E4B5A3C4A66D02CA0FEB7BEB75BA3BE87F26BB99122217A4FFEB1F730B430AA0A70BA4A91EFB248DF689E95957E93B9E5D2AC13FBD3896759F77C6CBB6664BA6FEB31C4FD7BF081D4F2D800AB8D979D89A5EFB34675A904F4B332ADD7340116E7D5D4F72F7E3940A30036ACA889C27D8E2E11C0668A2E8A43DFF411FA03F0AFB420262947A60528805A7E0F4B2CC6AC0EF62CBCB807BC131A8D51E7784A13C77DB461A9FDF01C0E97EA8B7C5A13BB4A86784C2FFA34FC1EF094ACB858A919951AA55508E468CBB889EA63B606D45455AAB75883A75A813E9EC6A3A49CADB05A62C2F5CA32013A4FC73E8B5DE1C14A39539A4716B157C08C74CD99EA23AE018A89C838B6C0EAEECDFCF78A447594033ED3D63F4623BFC05C0F6701A36420D60D9C99339F9486395CBE534D66CE66AAE140AEF53 | 151 | 20180920122429 2 6 100 3071 2 D55876EAB302ADAA592F62BBE1E67B18C153FA6D93B6CF3C0D0E8989C13F29E1F6638AE58634C6A3C067754CA1241A8EDA45CB1306347BC6BA69D2CE5F515238C78CAFEB65D4FF05D52048EB048BE9B4C127C81EC60B978A372A5054B89BA7D8963DA343DB7F5B673B275E34D03A25C098FEE46063F963E47CAEB67A4915F413570C89224688F4598D25EEEE97DE581256261C0053CCBA12966E31849F31BF32BC506029A41F94356714EF0046FF68D5B75EC86ACB79708CD817C7752EA5E0D5E730245B06B91953434E2325B706C70492446CFC070C11F8E347AFDDB065B680A075BF287DEBFA9D59EE918B85D5D0157CD539A5E46888F39DB448D1D6BFAD57A3970C537387B556D801960276284F363287FE0230CA1950725B1B09A54DEDDF924BE8059E38A729A400582713F149E7E1005C8B0FB302ECA12D8949BA2B4FC645BE96B3F20384384626F1BA1F4E8E045442DDD6A124DECC49B8CDBD6D4217978F69FF8DE7B7F4B15908881391F81F43DF6FBD616398BE9225FE3AC5C5898C03 |
152 | 20180403152834 2 6 100 3071 2 D9FA0132FCCAAE8116BD22861CD21A859841BA7D566829E10ACC15A7EFEEB381774F839F7228AE3C627F5765944DCDB6866618E187903EBDB558C9186BD84D2521630A379E161FDCEC19BA02A8E4B5A3C4A66D02CA0FEB7BEB75BA3BE87F26BB99122217A4FFEB1F730B430AA0A70BA4A91EFB248DF689E95957E93B9E5D2AC13FBD3896759F77C6CBB6664BA6FEB31C4FD7BF081D4F2D800AB8D979D89A5EFB34675A904F4B332ADD7340116E7D5D4F72F7E3940A30036ACA889C27D8E2E11C0668A2E8A43DFF411FA03F0AFB420262947A60528805A7E0F4B2CC6AC0EF62CBCB807BC131A8D51E7784A13C77DB461A9FDF01C0E97EA8B7C5A13BB4A86784C2FFA34FC1EF094ACB858A919951AA55508E468CBB889EA63B606D45455AAB75883A75A813E9EC6A3A49CADB05A62C2F5CA32013A4FC73E8B5DE1C14A39539A4716B157C08C74CD99EA23AE018A89C838B6C0EAEECDFCF78A447594033ED3D63F4623BFC05C0F6701A36420D60D9C99339F9486395CBE534D66CE66AAE14BB5263 | 152 | 20180920122505 2 6 100 3071 2 D55876EAB302ADAA592F62BBE1E67B18C153FA6D93B6CF3C0D0E8989C13F29E1F6638AE58634C6A3C067754CA1241A8EDA45CB1306347BC6BA69D2CE5F515238C78CAFEB65D4FF05D52048EB048BE9B4C127C81EC60B978A372A5054B89BA7D8963DA343DB7F5B673B275E34D03A25C098FEE46063F963E47CAEB67A4915F413570C89224688F4598D25EEEE97DE581256261C0053CCBA12966E31849F31BF32BC506029A41F94356714EF0046FF68D5B75EC86ACB79708CD817C7752EA5E0D5E730245B06B91953434E2325B706C70492446CFC070C11F8E347AFDDB065B680A075BF287DEBFA9D59EE918B85D5D0157CD539A5E46888F39DB448D1D6BFAD57A3970C537387B556D801960276284F363287FE0230CA1950725B1B09A54DEDDF924BE8059E38A729A400582713F149E7E1005C8B0FB302ECA12D8949BA2B4FC645BE96B3F20384384626F1BA1F4E8E045442DDD6A124DECC49B8CDBD6D4217978F69FF8DE7B7F4B15908881391F81F43DF6FBD616398BE9225FE3AC5C59B843B |
153 | 20180403164629 2 6 100 4095 2 D6A36D53FE335EAC6C6F21F2963EEF44BF055FBE1D529CAC77341CADF25097607135D53FBDF5ED5B3BB2CE243834E344600627AB46C3F3952C0E59AAD95A13E0B299073FA6C02260432090C66B7DFA4C06633B8D31E7376024958AEF0B57A6A1519DC39CCFD65E33B19DA7C52C0C6DA0E5990A5DCDE9CB16C36408E6CC825FA464EC6CF3848202E6197281C8176600BEAABAB5E2C0598A97C9A5AC7606A0583DFFBD20FA424D1B62E0E5FAF7DA56C1CEB3C309C999C5B574322B8E511BA14342DAA24EA688E16B05CFC6B89696FF17BF21EC5AF75FB3A6258E6EA4CEE93B06299FC2D32441238B8EBF78124347A0E56522079641D5CB6F8858A91F9C7B1047E7CFCF6A80A0884BE39E9FB8CACE70865A022E538E80C899A43E5842C753E8332A8972249E4EAEB2C327FCD2777488CD9A1F03A242889D3F33A5C5047721605727486E3B97F3BEC6D8BF7C7B4512FB6AC8B854BD92B0ECC9F65408254BDDD8428F0F68EEF4FC61F033C56FF65C566B81994C1B92308771151DEBE7C814C608F99B784251C1CC4E5F110F5D9B9104BC8D60544FC4955204EF21F429E3D618C10F5F3A178BD71CEFD02ADF8AA5A3B79EB2038BC31467EE98AD1EA501B492EEF950B5B3E95AD0D792B585E3F6164E6B5EC52701DE13B6C7D832D339618E4C7372F8D02E48E743FB7477FDF8ED746987F72F4FFD46F1CEEA5340ABFC82D445F2ACFC43 | 153 | 20180920122536 2 6 100 3071 5 D55876EAB302ADAA592F62BBE1E67B18C153FA6D93B6CF3C0D0E8989C13F29E1F6638AE58634C6A3C067754CA1241A8EDA45CB1306347BC6BA69D2CE5F515238C78CAFEB65D4FF05D52048EB048BE9B4C127C81EC60B978A372A5054B89BA7D8963DA343DB7F5B673B275E34D03A25C098FEE46063F963E47CAEB67A4915F413570C89224688F4598D25EEEE97DE581256261C0053CCBA12966E31849F31BF32BC506029A41F94356714EF0046FF68D5B75EC86ACB79708CD817C7752EA5E0D5E730245B06B91953434E2325B706C70492446CFC070C11F8E347AFDDB065B680A075BF287DEBFA9D59EE918B85D5D0157CD539A5E46888F39DB448D1D6BFAD57A3970C537387B556D801960276284F363287FE0230CA1950725B1B09A54DEDDF924BE8059E38A729A400582713F149E7E1005C8B0FB302ECA12D8949BA2B4FC645BE96B3F20384384626F1BA1F4E8E045442DDD6A124DECC49B8CDBD6D4217978F69FF8DE7B7F4B15908881391F81F43DF6FBD616398BE9225FE3AC5C5A94107 |
154 | 20180403173943 2 6 100 4095 2 D6A36D53FE335EAC6C6F21F2963EEF44BF055FBE1D529CAC77341CADF25097607135D53FBDF5ED5B3BB2CE243834E344600627AB46C3F3952C0E59AAD95A13E0B299073FA6C02260432090C66B7DFA4C06633B8D31E7376024958AEF0B57A6A1519DC39CCFD65E33B19DA7C52C0C6DA0E5990A5DCDE9CB16C36408E6CC825FA464EC6CF3848202E6197281C8176600BEAABAB5E2C0598A97C9A5AC7606A0583DFFBD20FA424D1B62E0E5FAF7DA56C1CEB3C309C999C5B574322B8E511BA14342DAA24EA688E16B05CFC6B89696FF17BF21EC5AF75FB3A6258E6EA4CEE93B06299FC2D32441238B8EBF78124347A0E56522079641D5CB6F8858A91F9C7B1047E7CFCF6A80A0884BE39E9FB8CACE70865A022E538E80C899A43E5842C753E8332A8972249E4EAEB2C327FCD2777488CD9A1F03A242889D3F33A5C5047721605727486E3B97F3BEC6D8BF7C7B4512FB6AC8B854BD92B0ECC9F65408254BDDD8428F0F68EEF4FC61F033C56FF65C566B81994C1B92308771151DEBE7C814C608F99B784251C1CC4E5F110F5D9B9104BC8D60544FC4955204EF21F429E3D618C10F5F3A178BD71CEFD02ADF8AA5A3B79EB2038BC31467EE98AD1EA501B492EEF950B5B3E95AD0D792B585E3F6164E6B5EC52701DE13B6C7D832D339618E4C7372F8D02E48E743FB7477FDF8ED746987F72F4FFD46F1CEEA5340ABFC82D445F45D568B | 154 | 20180920122806 2 6 100 3071 2 D55876EAB302ADAA592F62BBE1E67B18C153FA6D93B6CF3C0D0E8989C13F29E1F6638AE58634C6A3C067754CA1241A8EDA45CB1306347BC6BA69D2CE5F515238C78CAFEB65D4FF05D52048EB048BE9B4C127C81EC60B978A372A5054B89BA7D8963DA343DB7F5B673B275E34D03A25C098FEE46063F963E47CAEB67A4915F413570C89224688F4598D25EEEE97DE581256261C0053CCBA12966E31849F31BF32BC506029A41F94356714EF0046FF68D5B75EC86ACB79708CD817C7752EA5E0D5E730245B06B91953434E2325B706C70492446CFC070C11F8E347AFDDB065B680A075BF287DEBFA9D59EE918B85D5D0157CD539A5E46888F39DB448D1D6BFAD57A3970C537387B556D801960276284F363287FE0230CA1950725B1B09A54DEDDF924BE8059E38A729A400582713F149E7E1005C8B0FB302ECA12D8949BA2B4FC645BE96B3F20384384626F1BA1F4E8E045442DDD6A124DECC49B8CDBD6D4217978F69FF8DE7B7F4B15908881391F81F43DF6FBD616398BE9225FE3AC5C60D5BBB |
155 | 20180403183028 2 6 100 4095 2 D6A36D53FE335EAC6C6F21F2963EEF44BF055FBE1D529CAC77341CADF25097607135D53FBDF5ED5B3BB2CE243834E344600627AB46C3F3952C0E59AAD95A13E0B299073FA6C02260432090C66B7DFA4C06633B8D31E7376024958AEF0B57A6A1519DC39CCFD65E33B19DA7C52C0C6DA0E5990A5DCDE9CB16C36408E6CC825FA464EC6CF3848202E6197281C8176600BEAABAB5E2C0598A97C9A5AC7606A0583DFFBD20FA424D1B62E0E5FAF7DA56C1CEB3C309C999C5B574322B8E511BA14342DAA24EA688E16B05CFC6B89696FF17BF21EC5AF75FB3A6258E6EA4CEE93B06299FC2D32441238B8EBF78124347A0E56522079641D5CB6F8858A91F9C7B1047E7CFCF6A80A0884BE39E9FB8CACE70865A022E538E80C899A43E5842C753E8332A8972249E4EAEB2C327FCD2777488CD9A1F03A242889D3F33A5C5047721605727486E3B97F3BEC6D8BF7C7B4512FB6AC8B854BD92B0ECC9F65408254BDDD8428F0F68EEF4FC61F033C56FF65C566B81994C1B92308771151DEBE7C814C608F99B784251C1CC4E5F110F5D9B9104BC8D60544FC4955204EF21F429E3D618C10F5F3A178BD71CEFD02ADF8AA5A3B79EB2038BC31467EE98AD1EA501B492EEF950B5B3E95AD0D792B585E3F6164E6B5EC52701DE13B6C7D832D339618E4C7372F8D02E48E743FB7477FDF8ED746987F72F4FFD46F1CEEA5340ABFC82D445F603359B | 155 | 20180920123304 2 6 100 3071 2 D55876EAB302ADAA592F62BBE1E67B18C153FA6D93B6CF3C0D0E8989C13F29E1F6638AE58634C6A3C067754CA1241A8EDA45CB1306347BC6BA69D2CE5F515238C78CAFEB65D4FF05D52048EB048BE9B4C127C81EC60B978A372A5054B89BA7D8963DA343DB7F5B673B275E34D03A25C098FEE46063F963E47CAEB67A4915F413570C89224688F4598D25EEEE97DE581256261C0053CCBA12966E31849F31BF32BC506029A41F94356714EF0046FF68D5B75EC86ACB79708CD817C7752EA5E0D5E730245B06B91953434E2325B706C70492446CFC070C11F8E347AFDDB065B680A075BF287DEBFA9D59EE918B85D5D0157CD539A5E46888F39DB448D1D6BFAD57A3970C537387B556D801960276284F363287FE0230CA1950725B1B09A54DEDDF924BE8059E38A729A400582713F149E7E1005C8B0FB302ECA12D8949BA2B4FC645BE96B3F20384384626F1BA1F4E8E045442DDD6A124DECC49B8CDBD6D4217978F69FF8DE7B7F4B15908881391F81F43DF6FBD616398BE9225FE3AC5C6DD0793 |
156 | 20180403183423 2 6 100 4095 5 D6A36D53FE335EAC6C6F21F2963EEF44BF055FBE1D529CAC77341CADF25097607135D53FBDF5ED5B3BB2CE243834E344600627AB46C3F3952C0E59AAD95A13E0B299073FA6C02260432090C66B7DFA4C06633B8D31E7376024958AEF0B57A6A1519DC39CCFD65E33B19DA7C52C0C6DA0E5990A5DCDE9CB16C36408E6CC825FA464EC6CF3848202E6197281C8176600BEAABAB5E2C0598A97C9A5AC7606A0583DFFBD20FA424D1B62E0E5FAF7DA56C1CEB3C309C999C5B574322B8E511BA14342DAA24EA688E16B05CFC6B89696FF17BF21EC5AF75FB3A6258E6EA4CEE93B06299FC2D32441238B8EBF78124347A0E56522079641D5CB6F8858A91F9C7B1047E7CFCF6A80A0884BE39E9FB8CACE70865A022E538E80C899A43E5842C753E8332A8972249E4EAEB2C327FCD2777488CD9A1F03A242889D3F33A5C5047721605727486E3B97F3BEC6D8BF7C7B4512FB6AC8B854BD92B0ECC9F65408254BDDD8428F0F68EEF4FC61F033C56FF65C566B81994C1B92308771151DEBE7C814C608F99B784251C1CC4E5F110F5D9B9104BC8D60544FC4955204EF21F429E3D618C10F5F3A178BD71CEFD02ADF8AA5A3B79EB2038BC31467EE98AD1EA501B492EEF950B5B3E95AD0D792B585E3F6164E6B5EC52701DE13B6C7D832D339618E4C7372F8D02E48E743FB7477FDF8ED746987F72F4FFD46F1CEEA5340ABFC82D445F61BDC27 | 156 | 20180920123753 2 6 100 3071 2 D55876EAB302ADAA592F62BBE1E67B18C153FA6D93B6CF3C0D0E8989C13F29E1F6638AE58634C6A3C067754CA1241A8EDA45CB1306347BC6BA69D2CE5F515238C78CAFEB65D4FF05D52048EB048BE9B4C127C81EC60B978A372A5054B89BA7D8963DA343DB7F5B673B275E34D03A25C098FEE46063F963E47CAEB67A4915F413570C89224688F4598D25EEEE97DE581256261C0053CCBA12966E31849F31BF32BC506029A41F94356714EF0046FF68D5B75EC86ACB79708CD817C7752EA5E0D5E730245B06B91953434E2325B706C70492446CFC070C11F8E347AFDDB065B680A075BF287DEBFA9D59EE918B85D5D0157CD539A5E46888F39DB448D1D6BFAD57A3970C537387B556D801960276284F363287FE0230CA1950725B1B09A54DEDDF924BE8059E38A729A400582713F149E7E1005C8B0FB302ECA12D8949BA2B4FC645BE96B3F20384384626F1BA1F4E8E045442DDD6A124DECC49B8CDBD6D4217978F69FF8DE7B7F4B15908881391F81F43DF6FBD616398BE9225FE3AC5C7A1DB4B |
157 | 20180403194550 2 6 100 4095 2 D6A36D53FE335EAC6C6F21F2963EEF44BF055FBE1D529CAC77341CADF25097607135D53FBDF5ED5B3BB2CE243834E344600627AB46C3F3952C0E59AAD95A13E0B299073FA6C02260432090C66B7DFA4C06633B8D31E7376024958AEF0B57A6A1519DC39CCFD65E33B19DA7C52C0C6DA0E5990A5DCDE9CB16C36408E6CC825FA464EC6CF3848202E6197281C8176600BEAABAB5E2C0598A97C9A5AC7606A0583DFFBD20FA424D1B62E0E5FAF7DA56C1CEB3C309C999C5B574322B8E511BA14342DAA24EA688E16B05CFC6B89696FF17BF21EC5AF75FB3A6258E6EA4CEE93B06299FC2D32441238B8EBF78124347A0E56522079641D5CB6F8858A91F9C7B1047E7CFCF6A80A0884BE39E9FB8CACE70865A022E538E80C899A43E5842C753E8332A8972249E4EAEB2C327FCD2777488CD9A1F03A242889D3F33A5C5047721605727486E3B97F3BEC6D8BF7C7B4512FB6AC8B854BD92B0ECC9F65408254BDDD8428F0F68EEF4FC61F033C56FF65C566B81994C1B92308771151DEBE7C814C608F99B784251C1CC4E5F110F5D9B9104BC8D60544FC4955204EF21F429E3D618C10F5F3A178BD71CEFD02ADF8AA5A3B79EB2038BC31467EE98AD1EA501B492EEF950B5B3E95AD0D792B585E3F6164E6B5EC52701DE13B6C7D832D339618E4C7372F8D02E48E743FB7477FDF8ED746987F72F4FFD46F1CEEA5340ABFC82D445F877D863 | 157 | 20180920124152 2 6 100 3071 5 D55876EAB302ADAA592F62BBE1E67B18C153FA6D93B6CF3C0D0E8989C13F29E1F6638AE58634C6A3C067754CA1241A8EDA45CB1306347BC6BA69D2CE5F515238C78CAFEB65D4FF05D52048EB048BE9B4C127C81EC60B978A372A5054B89BA7D8963DA343DB7F5B673B275E34D03A25C098FEE46063F963E47CAEB67A4915F413570C89224688F4598D25EEEE97DE581256261C0053CCBA12966E31849F31BF32BC506029A41F94356714EF0046FF68D5B75EC86ACB79708CD817C7752EA5E0D5E730245B06B91953434E2325B706C70492446CFC070C11F8E347AFDDB065B680A075BF287DEBFA9D59EE918B85D5D0157CD539A5E46888F39DB448D1D6BFAD57A3970C537387B556D801960276284F363287FE0230CA1950725B1B09A54DEDDF924BE8059E38A729A400582713F149E7E1005C8B0FB302ECA12D8949BA2B4FC645BE96B3F20384384626F1BA1F4E8E045442DDD6A124DECC49B8CDBD6D4217978F69FF8DE7B7F4B15908881391F81F43DF6FBD616398BE9225FE3AC5C842B8B7 |
158 | 20180403202122 2 6 100 4095 2 D6A36D53FE335EAC6C6F21F2963EEF44BF055FBE1D529CAC77341CADF25097607135D53FBDF5ED5B3BB2CE243834E344600627AB46C3F3952C0E59AAD95A13E0B299073FA6C02260432090C66B7DFA4C06633B8D31E7376024958AEF0B57A6A1519DC39CCFD65E33B19DA7C52C0C6DA0E5990A5DCDE9CB16C36408E6CC825FA464EC6CF3848202E6197281C8176600BEAABAB5E2C0598A97C9A5AC7606A0583DFFBD20FA424D1B62E0E5FAF7DA56C1CEB3C309C999C5B574322B8E511BA14342DAA24EA688E16B05CFC6B89696FF17BF21EC5AF75FB3A6258E6EA4CEE93B06299FC2D32441238B8EBF78124347A0E56522079641D5CB6F8858A91F9C7B1047E7CFCF6A80A0884BE39E9FB8CACE70865A022E538E80C899A43E5842C753E8332A8972249E4EAEB2C327FCD2777488CD9A1F03A242889D3F33A5C5047721605727486E3B97F3BEC6D8BF7C7B4512FB6AC8B854BD92B0ECC9F65408254BDDD8428F0F68EEF4FC61F033C56FF65C566B81994C1B92308771151DEBE7C814C608F99B784251C1CC4E5F110F5D9B9104BC8D60544FC4955204EF21F429E3D618C10F5F3A178BD71CEFD02ADF8AA5A3B79EB2038BC31467EE98AD1EA501B492EEF950B5B3E95AD0D792B585E3F6164E6B5EC52701DE13B6C7D832D339618E4C7372F8D02E48E743FB7477FDF8ED746987F72F4FFD46F1CEEA5340ABFC82D445F9A0304B | 158 | 20180920124601 2 6 100 3071 2 D55876EAB302ADAA592F62BBE1E67B18C153FA6D93B6CF3C0D0E8989C13F29E1F6638AE58634C6A3C067754CA1241A8EDA45CB1306347BC6BA69D2CE5F515238C78CAFEB65D4FF05D52048EB048BE9B4C127C81EC60B978A372A5054B89BA7D8963DA343DB7F5B673B275E34D03A25C098FEE46063F963E47CAEB67A4915F413570C89224688F4598D25EEEE97DE581256261C0053CCBA12966E31849F31BF32BC506029A41F94356714EF0046FF68D5B75EC86ACB79708CD817C7752EA5E0D5E730245B06B91953434E2325B706C70492446CFC070C11F8E347AFDDB065B680A075BF287DEBFA9D59EE918B85D5D0157CD539A5E46888F39DB448D1D6BFAD57A3970C537387B556D801960276284F363287FE0230CA1950725B1B09A54DEDDF924BE8059E38A729A400582713F149E7E1005C8B0FB302ECA12D8949BA2B4FC645BE96B3F20384384626F1BA1F4E8E045442DDD6A124DECC49B8CDBD6D4217978F69FF8DE7B7F4B15908881391F81F43DF6FBD616398BE9225FE3AC5C8EEDABB |
159 | 20180403210313 2 6 100 4095 2 D6A36D53FE335EAC6C6F21F2963EEF44BF055FBE1D529CAC77341CADF25097607135D53FBDF5ED5B3BB2CE243834E344600627AB46C3F3952C0E59AAD95A13E0B299073FA6C02260432090C66B7DFA4C06633B8D31E7376024958AEF0B57A6A1519DC39CCFD65E33B19DA7C52C0C6DA0E5990A5DCDE9CB16C36408E6CC825FA464EC6CF3848202E6197281C8176600BEAABAB5E2C0598A97C9A5AC7606A0583DFFBD20FA424D1B62E0E5FAF7DA56C1CEB3C309C999C5B574322B8E511BA14342DAA24EA688E16B05CFC6B89696FF17BF21EC5AF75FB3A6258E6EA4CEE93B06299FC2D32441238B8EBF78124347A0E56522079641D5CB6F8858A91F9C7B1047E7CFCF6A80A0884BE39E9FB8CACE70865A022E538E80C899A43E5842C753E8332A8972249E4EAEB2C327FCD2777488CD9A1F03A242889D3F33A5C5047721605727486E3B97F3BEC6D8BF7C7B4512FB6AC8B854BD92B0ECC9F65408254BDDD8428F0F68EEF4FC61F033C56FF65C566B81994C1B92308771151DEBE7C814C608F99B784251C1CC4E5F110F5D9B9104BC8D60544FC4955204EF21F429E3D618C10F5F3A178BD71CEFD02ADF8AA5A3B79EB2038BC31467EE98AD1EA501B492EEF950B5B3E95AD0D792B585E3F6164E6B5EC52701DE13B6C7D832D339618E4C7372F8D02E48E743FB7477FDF8ED746987F72F4FFD46F1CEEA5340ABFC82D445FAFCEC73 | 159 | 20180920124906 2 6 100 3071 5 D55876EAB302ADAA592F62BBE1E67B18C153FA6D93B6CF3C0D0E8989C13F29E1F6638AE58634C6A3C067754CA1241A8EDA45CB1306347BC6BA69D2CE5F515238C78CAFEB65D4FF05D52048EB048BE9B4C127C81EC60B978A372A5054B89BA7D8963DA343DB7F5B673B275E34D03A25C098FEE46063F963E47CAEB67A4915F413570C89224688F4598D25EEEE97DE581256261C0053CCBA12966E31849F31BF32BC506029A41F94356714EF0046FF68D5B75EC86ACB79708CD817C7752EA5E0D5E730245B06B91953434E2325B706C70492446CFC070C11F8E347AFDDB065B680A075BF287DEBFA9D59EE918B85D5D0157CD539A5E46888F39DB448D1D6BFAD57A3970C537387B556D801960276284F363287FE0230CA1950725B1B09A54DEDDF924BE8059E38A729A400582713F149E7E1005C8B0FB302ECA12D8949BA2B4FC645BE96B3F20384384626F1BA1F4E8E045442DDD6A124DECC49B8CDBD6D4217978F69FF8DE7B7F4B15908881391F81F43DF6FBD616398BE9225FE3AC5C96EA9B7 |
160 | 20180403213851 2 6 100 4095 5 D6A36D53FE335EAC6C6F21F2963EEF44BF055FBE1D529CAC77341CADF25097607135D53FBDF5ED5B3BB2CE243834E344600627AB46C3F3952C0E59AAD95A13E0B299073FA6C02260432090C66B7DFA4C06633B8D31E7376024958AEF0B57A6A1519DC39CCFD65E33B19DA7C52C0C6DA0E5990A5DCDE9CB16C36408E6CC825FA464EC6CF3848202E6197281C8176600BEAABAB5E2C0598A97C9A5AC7606A0583DFFBD20FA424D1B62E0E5FAF7DA56C1CEB3C309C999C5B574322B8E511BA14342DAA24EA688E16B05CFC6B89696FF17BF21EC5AF75FB3A6258E6EA4CEE93B06299FC2D32441238B8EBF78124347A0E56522079641D5CB6F8858A91F9C7B1047E7CFCF6A80A0884BE39E9FB8CACE70865A022E538E80C899A43E5842C753E8332A8972249E4EAEB2C327FCD2777488CD9A1F03A242889D3F33A5C5047721605727486E3B97F3BEC6D8BF7C7B4512FB6AC8B854BD92B0ECC9F65408254BDDD8428F0F68EEF4FC61F033C56FF65C566B81994C1B92308771151DEBE7C814C608F99B784251C1CC4E5F110F5D9B9104BC8D60544FC4955204EF21F429E3D618C10F5F3A178BD71CEFD02ADF8AA5A3B79EB2038BC31467EE98AD1EA501B492EEF950B5B3E95AD0D792B585E3F6164E6B5EC52701DE13B6C7D832D339618E4C7372F8D02E48E743FB7477FDF8ED746987F72F4FFD46F1CEEA5340ABFC82D445FC2F80FF | 160 | 20180920125743 2 6 100 3071 2 D55876EAB302ADAA592F62BBE1E67B18C153FA6D93B6CF3C0D0E8989C13F29E1F6638AE58634C6A3C067754CA1241A8EDA45CB1306347BC6BA69D2CE5F515238C78CAFEB65D4FF05D52048EB048BE9B4C127C81EC60B978A372A5054B89BA7D8963DA343DB7F5B673B275E34D03A25C098FEE46063F963E47CAEB67A4915F413570C89224688F4598D25EEEE97DE581256261C0053CCBA12966E31849F31BF32BC506029A41F94356714EF0046FF68D5B75EC86ACB79708CD817C7752EA5E0D5E730245B06B91953434E2325B706C70492446CFC070C11F8E347AFDDB065B680A075BF287DEBFA9D59EE918B85D5D0157CD539A5E46888F39DB448D1D6BFAD57A3970C537387B556D801960276284F363287FE0230CA1950725B1B09A54DEDDF924BE8059E38A729A400582713F149E7E1005C8B0FB302ECA12D8949BA2B4FC645BE96B3F20384384626F1BA1F4E8E045442DDD6A124DECC49B8CDBD6D4217978F69FF8DE7B7F4B15908881391F81F43DF6FBD616398BE9225FE3AC5CAE0E013 |
161 | 20180403215353 2 6 100 4095 5 D6A36D53FE335EAC6C6F21F2963EEF44BF055FBE1D529CAC77341CADF25097607135D53FBDF5ED5B3BB2CE243834E344600627AB46C3F3952C0E59AAD95A13E0B299073FA6C02260432090C66B7DFA4C06633B8D31E7376024958AEF0B57A6A1519DC39CCFD65E33B19DA7C52C0C6DA0E5990A5DCDE9CB16C36408E6CC825FA464EC6CF3848202E6197281C8176600BEAABAB5E2C0598A97C9A5AC7606A0583DFFBD20FA424D1B62E0E5FAF7DA56C1CEB3C309C999C5B574322B8E511BA14342DAA24EA688E16B05CFC6B89696FF17BF21EC5AF75FB3A6258E6EA4CEE93B06299FC2D32441238B8EBF78124347A0E56522079641D5CB6F8858A91F9C7B1047E7CFCF6A80A0884BE39E9FB8CACE70865A022E538E80C899A43E5842C753E8332A8972249E4EAEB2C327FCD2777488CD9A1F03A242889D3F33A5C5047721605727486E3B97F3BEC6D8BF7C7B4512FB6AC8B854BD92B0ECC9F65408254BDDD8428F0F68EEF4FC61F033C56FF65C566B81994C1B92308771151DEBE7C814C608F99B784251C1CC4E5F110F5D9B9104BC8D60544FC4955204EF21F429E3D618C10F5F3A178BD71CEFD02ADF8AA5A3B79EB2038BC31467EE98AD1EA501B492EEF950B5B3E95AD0D792B585E3F6164E6B5EC52701DE13B6C7D832D339618E4C7372F8D02E48E743FB7477FDF8ED746987F72F4FFD46F1CEEA5340ABFC82D445FCA8B737 | 161 | 20180920125855 2 6 100 3071 2 D55876EAB302ADAA592F62BBE1E67B18C153FA6D93B6CF3C0D0E8989C13F29E1F6638AE58634C6A3C067754CA1241A8EDA45CB1306347BC6BA69D2CE5F515238C78CAFEB65D4FF05D52048EB048BE9B4C127C81EC60B978A372A5054B89BA7D8963DA343DB7F5B673B275E34D03A25C098FEE46063F963E47CAEB67A4915F413570C89224688F4598D25EEEE97DE581256261C0053CCBA12966E31849F31BF32BC506029A41F94356714EF0046FF68D5B75EC86ACB79708CD817C7752EA5E0D5E730245B06B91953434E2325B706C70492446CFC070C11F8E347AFDDB065B680A075BF287DEBFA9D59EE918B85D5D0157CD539A5E46888F39DB448D1D6BFAD57A3970C537387B556D801960276284F363287FE0230CA1950725B1B09A54DEDDF924BE8059E38A729A400582713F149E7E1005C8B0FB302ECA12D8949BA2B4FC645BE96B3F20384384626F1BA1F4E8E045442DDD6A124DECC49B8CDBD6D4217978F69FF8DE7B7F4B15908881391F81F43DF6FBD616398BE9225FE3AC5CB0BFEAB |
162 | 20180403222440 2 6 100 4095 5 D6A36D53FE335EAC6C6F21F2963EEF44BF055FBE1D529CAC77341CADF25097607135D53FBDF5ED5B3BB2CE243834E344600627AB46C3F3952C0E59AAD95A13E0B299073FA6C02260432090C66B7DFA4C06633B8D31E7376024958AEF0B57A6A1519DC39CCFD65E33B19DA7C52C0C6DA0E5990A5DCDE9CB16C36408E6CC825FA464EC6CF3848202E6197281C8176600BEAABAB5E2C0598A97C9A5AC7606A0583DFFBD20FA424D1B62E0E5FAF7DA56C1CEB3C309C999C5B574322B8E511BA14342DAA24EA688E16B05CFC6B89696FF17BF21EC5AF75FB3A6258E6EA4CEE93B06299FC2D32441238B8EBF78124347A0E56522079641D5CB6F8858A91F9C7B1047E7CFCF6A80A0884BE39E9FB8CACE70865A022E538E80C899A43E5842C753E8332A8972249E4EAEB2C327FCD2777488CD9A1F03A242889D3F33A5C5047721605727486E3B97F3BEC6D8BF7C7B4512FB6AC8B854BD92B0ECC9F65408254BDDD8428F0F68EEF4FC61F033C56FF65C566B81994C1B92308771151DEBE7C814C608F99B784251C1CC4E5F110F5D9B9104BC8D60544FC4955204EF21F429E3D618C10F5F3A178BD71CEFD02ADF8AA5A3B79EB2038BC31467EE98AD1EA501B492EEF950B5B3E95AD0D792B585E3F6164E6B5EC52701DE13B6C7D832D339618E4C7372F8D02E48E743FB7477FDF8ED746987F72F4FFD46F1CEEA5340ABFC82D445FDAD53EF | 162 | 20180920125915 2 6 100 3071 5 D55876EAB302ADAA592F62BBE1E67B18C153FA6D93B6CF3C0D0E8989C13F29E1F6638AE58634C6A3C067754CA1241A8EDA45CB1306347BC6BA69D2CE5F515238C78CAFEB65D4FF05D52048EB048BE9B4C127C81EC60B978A372A5054B89BA7D8963DA343DB7F5B673B275E34D03A25C098FEE46063F963E47CAEB67A4915F413570C89224688F4598D25EEEE97DE581256261C0053CCBA12966E31849F31BF32BC506029A41F94356714EF0046FF68D5B75EC86ACB79708CD817C7752EA5E0D5E730245B06B91953434E2325B706C70492446CFC070C11F8E347AFDDB065B680A075BF287DEBFA9D59EE918B85D5D0157CD539A5E46888F39DB448D1D6BFAD57A3970C537387B556D801960276284F363287FE0230CA1950725B1B09A54DEDDF924BE8059E38A729A400582713F149E7E1005C8B0FB302ECA12D8949BA2B4FC645BE96B3F20384384626F1BA1F4E8E045442DDD6A124DECC49B8CDBD6D4217978F69FF8DE7B7F4B15908881391F81F43DF6FBD616398BE9225FE3AC5CB10BF07 |
163 | 20180403224035 2 6 100 4095 2 D6A36D53FE335EAC6C6F21F2963EEF44BF055FBE1D529CAC77341CADF25097607135D53FBDF5ED5B3BB2CE243834E344600627AB46C3F3952C0E59AAD95A13E0B299073FA6C02260432090C66B7DFA4C06633B8D31E7376024958AEF0B57A6A1519DC39CCFD65E33B19DA7C52C0C6DA0E5990A5DCDE9CB16C36408E6CC825FA464EC6CF3848202E6197281C8176600BEAABAB5E2C0598A97C9A5AC7606A0583DFFBD20FA424D1B62E0E5FAF7DA56C1CEB3C309C999C5B574322B8E511BA14342DAA24EA688E16B05CFC6B89696FF17BF21EC5AF75FB3A6258E6EA4CEE93B06299FC2D32441238B8EBF78124347A0E56522079641D5CB6F8858A91F9C7B1047E7CFCF6A80A0884BE39E9FB8CACE70865A022E538E80C899A43E5842C753E8332A8972249E4EAEB2C327FCD2777488CD9A1F03A242889D3F33A5C5047721605727486E3B97F3BEC6D8BF7C7B4512FB6AC8B854BD92B0ECC9F65408254BDDD8428F0F68EEF4FC61F033C56FF65C566B81994C1B92308771151DEBE7C814C608F99B784251C1CC4E5F110F5D9B9104BC8D60544FC4955204EF21F429E3D618C10F5F3A178BD71CEFD02ADF8AA5A3B79EB2038BC31467EE98AD1EA501B492EEF950B5B3E95AD0D792B585E3F6164E6B5EC52701DE13B6C7D832D339618E4C7372F8D02E48E743FB7477FDF8ED746987F72F4FFD46F1CEEA5340ABFC82D445FE2EF2E3 | 163 | 20180920130235 2 6 100 3071 2 D55876EAB302ADAA592F62BBE1E67B18C153FA6D93B6CF3C0D0E8989C13F29E1F6638AE58634C6A3C067754CA1241A8EDA45CB1306347BC6BA69D2CE5F515238C78CAFEB65D4FF05D52048EB048BE9B4C127C81EC60B978A372A5054B89BA7D8963DA343DB7F5B673B275E34D03A25C098FEE46063F963E47CAEB67A4915F413570C89224688F4598D25EEEE97DE581256261C0053CCBA12966E31849F31BF32BC506029A41F94356714EF0046FF68D5B75EC86ACB79708CD817C7752EA5E0D5E730245B06B91953434E2325B706C70492446CFC070C11F8E347AFDDB065B680A075BF287DEBFA9D59EE918B85D5D0157CD539A5E46888F39DB448D1D6BFAD57A3970C537387B556D801960276284F363287FE0230CA1950725B1B09A54DEDDF924BE8059E38A729A400582713F149E7E1005C8B0FB302ECA12D8949BA2B4FC645BE96B3F20384384626F1BA1F4E8E045442DDD6A124DECC49B8CDBD6D4217978F69FF8DE7B7F4B15908881391F81F43DF6FBD616398BE9225FE3AC5CB9812B3 |
164 | 20180403224214 2 6 100 4095 2 D6A36D53FE335EAC6C6F21F2963EEF44BF055FBE1D529CAC77341CADF25097607135D53FBDF5ED5B3BB2CE243834E344600627AB46C3F3952C0E59AAD95A13E0B299073FA6C02260432090C66B7DFA4C06633B8D31E7376024958AEF0B57A6A1519DC39CCFD65E33B19DA7C52C0C6DA0E5990A5DCDE9CB16C36408E6CC825FA464EC6CF3848202E6197281C8176600BEAABAB5E2C0598A97C9A5AC7606A0583DFFBD20FA424D1B62E0E5FAF7DA56C1CEB3C309C999C5B574322B8E511BA14342DAA24EA688E16B05CFC6B89696FF17BF21EC5AF75FB3A6258E6EA4CEE93B06299FC2D32441238B8EBF78124347A0E56522079641D5CB6F8858A91F9C7B1047E7CFCF6A80A0884BE39E9FB8CACE70865A022E538E80C899A43E5842C753E8332A8972249E4EAEB2C327FCD2777488CD9A1F03A242889D3F33A5C5047721605727486E3B97F3BEC6D8BF7C7B4512FB6AC8B854BD92B0ECC9F65408254BDDD8428F0F68EEF4FC61F033C56FF65C566B81994C1B92308771151DEBE7C814C608F99B784251C1CC4E5F110F5D9B9104BC8D60544FC4955204EF21F429E3D618C10F5F3A178BD71CEFD02ADF8AA5A3B79EB2038BC31467EE98AD1EA501B492EEF950B5B3E95AD0D792B585E3F6164E6B5EC52701DE13B6C7D832D339618E4C7372F8D02E48E743FB7477FDF8ED746987F72F4FFD46F1CEEA5340ABFC82D445FE343553 | 164 | 20180920130731 2 6 100 3071 2 D55876EAB302ADAA592F62BBE1E67B18C153FA6D93B6CF3C0D0E8989C13F29E1F6638AE58634C6A3C067754CA1241A8EDA45CB1306347BC6BA69D2CE5F515238C78CAFEB65D4FF05D52048EB048BE9B4C127C81EC60B978A372A5054B89BA7D8963DA343DB7F5B673B275E34D03A25C098FEE46063F963E47CAEB67A4915F413570C89224688F4598D25EEEE97DE581256261C0053CCBA12966E31849F31BF32BC506029A41F94356714EF0046FF68D5B75EC86ACB79708CD817C7752EA5E0D5E730245B06B91953434E2325B706C70492446CFC070C11F8E347AFDDB065B680A075BF287DEBFA9D59EE918B85D5D0157CD539A5E46888F39DB448D1D6BFAD57A3970C537387B556D801960276284F363287FE0230CA1950725B1B09A54DEDDF924BE8059E38A729A400582713F149E7E1005C8B0FB302ECA12D8949BA2B4FC645BE96B3F20384384626F1BA1F4E8E045442DDD6A124DECC49B8CDBD6D4217978F69FF8DE7B7F4B15908881391F81F43DF6FBD616398BE9225FE3AC5CC62B69B |
165 | 20180403234157 2 6 100 4095 5 D6A36D53FE335EAC6C6F21F2963EEF44BF055FBE1D529CAC77341CADF25097607135D53FBDF5ED5B3BB2CE243834E344600627AB46C3F3952C0E59AAD95A13E0B299073FA6C02260432090C66B7DFA4C06633B8D31E7376024958AEF0B57A6A1519DC39CCFD65E33B19DA7C52C0C6DA0E5990A5DCDE9CB16C36408E6CC825FA464EC6CF3848202E6197281C8176600BEAABAB5E2C0598A97C9A5AC7606A0583DFFBD20FA424D1B62E0E5FAF7DA56C1CEB3C309C999C5B574322B8E511BA14342DAA24EA688E16B05CFC6B89696FF17BF21EC5AF75FB3A6258E6EA4CEE93B06299FC2D32441238B8EBF78124347A0E56522079641D5CB6F8858A91F9C7B1047E7CFCF6A80A0884BE39E9FB8CACE70865A022E538E80C899A43E5842C753E8332A8972249E4EAEB2C327FCD2777488CD9A1F03A242889D3F33A5C5047721605727486E3B97F3BEC6D8BF7C7B4512FB6AC8B854BD92B0ECC9F65408254BDDD8428F0F68EEF4FC61F033C56FF65C566B81994C1B92308771151DEBE7C814C608F99B784251C1CC4E5F110F5D9B9104BC8D60544FC4955204EF21F429E3D618C10F5F3A178BD71CEFD02ADF8AA5A3B79EB2038BC31467EE98AD1EA501B492EEF950B5B3E95AD0D792B585E3F6164E6B5EC52701DE13B6C7D832D339618E4C7372F8D02E48E743FB7477FDF8ED746987F72F4FFD46F1CEEA5340ABFC82D446002B2C0F | 165 | 20180920130910 2 6 100 3071 2 D55876EAB302ADAA592F62BBE1E67B18C153FA6D93B6CF3C0D0E8989C13F29E1F6638AE58634C6A3C067754CA1241A8EDA45CB1306347BC6BA69D2CE5F515238C78CAFEB65D4FF05D52048EB048BE9B4C127C81EC60B978A372A5054B89BA7D8963DA343DB7F5B673B275E34D03A25C098FEE46063F963E47CAEB67A4915F413570C89224688F4598D25EEEE97DE581256261C0053CCBA12966E31849F31BF32BC506029A41F94356714EF0046FF68D5B75EC86ACB79708CD817C7752EA5E0D5E730245B06B91953434E2325B706C70492446CFC070C11F8E347AFDDB065B680A075BF287DEBFA9D59EE918B85D5D0157CD539A5E46888F39DB448D1D6BFAD57A3970C537387B556D801960276284F363287FE0230CA1950725B1B09A54DEDDF924BE8059E38A729A400582713F149E7E1005C8B0FB302ECA12D8949BA2B4FC645BE96B3F20384384626F1BA1F4E8E045442DDD6A124DECC49B8CDBD6D4217978F69FF8DE7B7F4B15908881391F81F43DF6FBD616398BE9225FE3AC5CC9EFAAB |
166 | 20180404012449 2 6 100 4095 5 D6A36D53FE335EAC6C6F21F2963EEF44BF055FBE1D529CAC77341CADF25097607135D53FBDF5ED5B3BB2CE243834E344600627AB46C3F3952C0E59AAD95A13E0B299073FA6C02260432090C66B7DFA4C06633B8D31E7376024958AEF0B57A6A1519DC39CCFD65E33B19DA7C52C0C6DA0E5990A5DCDE9CB16C36408E6CC825FA464EC6CF3848202E6197281C8176600BEAABAB5E2C0598A97C9A5AC7606A0583DFFBD20FA424D1B62E0E5FAF7DA56C1CEB3C309C999C5B574322B8E511BA14342DAA24EA688E16B05CFC6B89696FF17BF21EC5AF75FB3A6258E6EA4CEE93B06299FC2D32441238B8EBF78124347A0E56522079641D5CB6F8858A91F9C7B1047E7CFCF6A80A0884BE39E9FB8CACE70865A022E538E80C899A43E5842C753E8332A8972249E4EAEB2C327FCD2777488CD9A1F03A242889D3F33A5C5047721605727486E3B97F3BEC6D8BF7C7B4512FB6AC8B854BD92B0ECC9F65408254BDDD8428F0F68EEF4FC61F033C56FF65C566B81994C1B92308771151DEBE7C814C608F99B784251C1CC4E5F110F5D9B9104BC8D60544FC4955204EF21F429E3D618C10F5F3A178BD71CEFD02ADF8AA5A3B79EB2038BC31467EE98AD1EA501B492EEF950B5B3E95AD0D792B585E3F6164E6B5EC52701DE13B6C7D832D339618E4C7372F8D02E48E743FB7477FDF8ED746987F72F4FFD46F1CEEA5340ABFC82D446038F5C77 | 166 | 20180920131150 2 6 100 3071 5 D55876EAB302ADAA592F62BBE1E67B18C153FA6D93B6CF3C0D0E8989C13F29E1F6638AE58634C6A3C067754CA1241A8EDA45CB1306347BC6BA69D2CE5F515238C78CAFEB65D4FF05D52048EB048BE9B4C127C81EC60B978A372A5054B89BA7D8963DA343DB7F5B673B275E34D03A25C098FEE46063F963E47CAEB67A4915F413570C89224688F4598D25EEEE97DE581256261C0053CCBA12966E31849F31BF32BC506029A41F94356714EF0046FF68D5B75EC86ACB79708CD817C7752EA5E0D5E730245B06B91953434E2325B706C70492446CFC070C11F8E347AFDDB065B680A075BF287DEBFA9D59EE918B85D5D0157CD539A5E46888F39DB448D1D6BFAD57A3970C537387B556D801960276284F363287FE0230CA1950725B1B09A54DEDDF924BE8059E38A729A400582713F149E7E1005C8B0FB302ECA12D8949BA2B4FC645BE96B3F20384384626F1BA1F4E8E045442DDD6A124DECC49B8CDBD6D4217978F69FF8DE7B7F4B15908881391F81F43DF6FBD616398BE9225FE3AC5CD0A69F7 |
167 | 20180404012740 2 6 100 4095 2 D6A36D53FE335EAC6C6F21F2963EEF44BF055FBE1D529CAC77341CADF25097607135D53FBDF5ED5B3BB2CE243834E344600627AB46C3F3952C0E59AAD95A13E0B299073FA6C02260432090C66B7DFA4C06633B8D31E7376024958AEF0B57A6A1519DC39CCFD65E33B19DA7C52C0C6DA0E5990A5DCDE9CB16C36408E6CC825FA464EC6CF3848202E6197281C8176600BEAABAB5E2C0598A97C9A5AC7606A0583DFFBD20FA424D1B62E0E5FAF7DA56C1CEB3C309C999C5B574322B8E511BA14342DAA24EA688E16B05CFC6B89696FF17BF21EC5AF75FB3A6258E6EA4CEE93B06299FC2D32441238B8EBF78124347A0E56522079641D5CB6F8858A91F9C7B1047E7CFCF6A80A0884BE39E9FB8CACE70865A022E538E80C899A43E5842C753E8332A8972249E4EAEB2C327FCD2777488CD9A1F03A242889D3F33A5C5047721605727486E3B97F3BEC6D8BF7C7B4512FB6AC8B854BD92B0ECC9F65408254BDDD8428F0F68EEF4FC61F033C56FF65C566B81994C1B92308771151DEBE7C814C608F99B784251C1CC4E5F110F5D9B9104BC8D60544FC4955204EF21F429E3D618C10F5F3A178BD71CEFD02ADF8AA5A3B79EB2038BC31467EE98AD1EA501B492EEF950B5B3E95AD0D792B585E3F6164E6B5EC52701DE13B6C7D832D339618E4C7372F8D02E48E743FB7477FDF8ED746987F72F4FFD46F1CEEA5340ABFC82D446039F760B | 167 | 20180920131303 2 6 100 3071 5 D55876EAB302ADAA592F62BBE1E67B18C153FA6D93B6CF3C0D0E8989C13F29E1F6638AE58634C6A3C067754CA1241A8EDA45CB1306347BC6BA69D2CE5F515238C78CAFEB65D4FF05D52048EB048BE9B4C127C81EC60B978A372A5054B89BA7D8963DA343DB7F5B673B275E34D03A25C098FEE46063F963E47CAEB67A4915F413570C89224688F4598D25EEEE97DE581256261C0053CCBA12966E31849F31BF32BC506029A41F94356714EF0046FF68D5B75EC86ACB79708CD817C7752EA5E0D5E730245B06B91953434E2325B706C70492446CFC070C11F8E347AFDDB065B680A075BF287DEBFA9D59EE918B85D5D0157CD539A5E46888F39DB448D1D6BFAD57A3970C537387B556D801960276284F363287FE0230CA1950725B1B09A54DEDDF924BE8059E38A729A400582713F149E7E1005C8B0FB302ECA12D8949BA2B4FC645BE96B3F20384384626F1BA1F4E8E045442DDD6A124DECC49B8CDBD6D4217978F69FF8DE7B7F4B15908881391F81F43DF6FBD616398BE9225FE3AC5CD357E3F |
168 | 20180404013701 2 6 100 4095 5 D6A36D53FE335EAC6C6F21F2963EEF44BF055FBE1D529CAC77341CADF25097607135D53FBDF5ED5B3BB2CE243834E344600627AB46C3F3952C0E59AAD95A13E0B299073FA6C02260432090C66B7DFA4C06633B8D31E7376024958AEF0B57A6A1519DC39CCFD65E33B19DA7C52C0C6DA0E5990A5DCDE9CB16C36408E6CC825FA464EC6CF3848202E6197281C8176600BEAABAB5E2C0598A97C9A5AC7606A0583DFFBD20FA424D1B62E0E5FAF7DA56C1CEB3C309C999C5B574322B8E511BA14342DAA24EA688E16B05CFC6B89696FF17BF21EC5AF75FB3A6258E6EA4CEE93B06299FC2D32441238B8EBF78124347A0E56522079641D5CB6F8858A91F9C7B1047E7CFCF6A80A0884BE39E9FB8CACE70865A022E538E80C899A43E5842C753E8332A8972249E4EAEB2C327FCD2777488CD9A1F03A242889D3F33A5C5047721605727486E3B97F3BEC6D8BF7C7B4512FB6AC8B854BD92B0ECC9F65408254BDDD8428F0F68EEF4FC61F033C56FF65C566B81994C1B92308771151DEBE7C814C608F99B784251C1CC4E5F110F5D9B9104BC8D60544FC4955204EF21F429E3D618C10F5F3A178BD71CEFD02ADF8AA5A3B79EB2038BC31467EE98AD1EA501B492EEF950B5B3E95AD0D792B585E3F6164E6B5EC52701DE13B6C7D832D339618E4C7372F8D02E48E743FB7477FDF8ED746987F72F4FFD46F1CEEA5340ABFC82D44603E742CF | 168 | 20180920131355 2 6 100 3071 5 D55876EAB302ADAA592F62BBE1E67B18C153FA6D93B6CF3C0D0E8989C13F29E1F6638AE58634C6A3C067754CA1241A8EDA45CB1306347BC6BA69D2CE5F515238C78CAFEB65D4FF05D52048EB048BE9B4C127C81EC60B978A372A5054B89BA7D8963DA343DB7F5B673B275E34D03A25C098FEE46063F963E47CAEB67A4915F413570C89224688F4598D25EEEE97DE581256261C0053CCBA12966E31849F31BF32BC506029A41F94356714EF0046FF68D5B75EC86ACB79708CD817C7752EA5E0D5E730245B06B91953434E2325B706C70492446CFC070C11F8E347AFDDB065B680A075BF287DEBFA9D59EE918B85D5D0157CD539A5E46888F39DB448D1D6BFAD57A3970C537387B556D801960276284F363287FE0230CA1950725B1B09A54DEDDF924BE8059E38A729A400582713F149E7E1005C8B0FB302ECA12D8949BA2B4FC645BE96B3F20384384626F1BA1F4E8E045442DDD6A124DECC49B8CDBD6D4217978F69FF8DE7B7F4B15908881391F81F43DF6FBD616398BE9225FE3AC5CD51C05F |
169 | 20180404024209 2 6 100 4095 2 D6A36D53FE335EAC6C6F21F2963EEF44BF055FBE1D529CAC77341CADF25097607135D53FBDF5ED5B3BB2CE243834E344600627AB46C3F3952C0E59AAD95A13E0B299073FA6C02260432090C66B7DFA4C06633B8D31E7376024958AEF0B57A6A1519DC39CCFD65E33B19DA7C52C0C6DA0E5990A5DCDE9CB16C36408E6CC825FA464EC6CF3848202E6197281C8176600BEAABAB5E2C0598A97C9A5AC7606A0583DFFBD20FA424D1B62E0E5FAF7DA56C1CEB3C309C999C5B574322B8E511BA14342DAA24EA688E16B05CFC6B89696FF17BF21EC5AF75FB3A6258E6EA4CEE93B06299FC2D32441238B8EBF78124347A0E56522079641D5CB6F8858A91F9C7B1047E7CFCF6A80A0884BE39E9FB8CACE70865A022E538E80C899A43E5842C753E8332A8972249E4EAEB2C327FCD2777488CD9A1F03A242889D3F33A5C5047721605727486E3B97F3BEC6D8BF7C7B4512FB6AC8B854BD92B0ECC9F65408254BDDD8428F0F68EEF4FC61F033C56FF65C566B81994C1B92308771151DEBE7C814C608F99B784251C1CC4E5F110F5D9B9104BC8D60544FC4955204EF21F429E3D618C10F5F3A178BD71CEFD02ADF8AA5A3B79EB2038BC31467EE98AD1EA501B492EEF950B5B3E95AD0D792B585E3F6164E6B5EC52701DE13B6C7D832D339618E4C7372F8D02E48E743FB7477FDF8ED746987F72F4FFD46F1CEEA5340ABFC82D4460610756B | 169 | 20180920131419 2 6 100 3071 2 D55876EAB302ADAA592F62BBE1E67B18C153FA6D93B6CF3C0D0E8989C13F29E1F6638AE58634C6A3C067754CA1241A8EDA45CB1306347BC6BA69D2CE5F515238C78CAFEB65D4FF05D52048EB048BE9B4C127C81EC60B978A372A5054B89BA7D8963DA343DB7F5B673B275E34D03A25C098FEE46063F963E47CAEB67A4915F413570C89224688F4598D25EEEE97DE581256261C0053CCBA12966E31849F31BF32BC506029A41F94356714EF0046FF68D5B75EC86ACB79708CD817C7752EA5E0D5E730245B06B91953434E2325B706C70492446CFC070C11F8E347AFDDB065B680A075BF287DEBFA9D59EE918B85D5D0157CD539A5E46888F39DB448D1D6BFAD57A3970C537387B556D801960276284F363287FE0230CA1950725B1B09A54DEDDF924BE8059E38A729A400582713F149E7E1005C8B0FB302ECA12D8949BA2B4FC645BE96B3F20384384626F1BA1F4E8E045442DDD6A124DECC49B8CDBD6D4217978F69FF8DE7B7F4B15908881391F81F43DF6FBD616398BE9225FE3AC5CD5A0C83 |
170 | 20180404034850 2 6 100 4095 5 D6A36D53FE335EAC6C6F21F2963EEF44BF055FBE1D529CAC77341CADF25097607135D53FBDF5ED5B3BB2CE243834E344600627AB46C3F3952C0E59AAD95A13E0B299073FA6C02260432090C66B7DFA4C06633B8D31E7376024958AEF0B57A6A1519DC39CCFD65E33B19DA7C52C0C6DA0E5990A5DCDE9CB16C36408E6CC825FA464EC6CF3848202E6197281C8176600BEAABAB5E2C0598A97C9A5AC7606A0583DFFBD20FA424D1B62E0E5FAF7DA56C1CEB3C309C999C5B574322B8E511BA14342DAA24EA688E16B05CFC6B89696FF17BF21EC5AF75FB3A6258E6EA4CEE93B06299FC2D32441238B8EBF78124347A0E56522079641D5CB6F8858A91F9C7B1047E7CFCF6A80A0884BE39E9FB8CACE70865A022E538E80C899A43E5842C753E8332A8972249E4EAEB2C327FCD2777488CD9A1F03A242889D3F33A5C5047721605727486E3B97F3BEC6D8BF7C7B4512FB6AC8B854BD92B0ECC9F65408254BDDD8428F0F68EEF4FC61F033C56FF65C566B81994C1B92308771151DEBE7C814C608F99B784251C1CC4E5F110F5D9B9104BC8D60544FC4955204EF21F429E3D618C10F5F3A178BD71CEFD02ADF8AA5A3B79EB2038BC31467EE98AD1EA501B492EEF950B5B3E95AD0D792B585E3F6164E6B5EC52701DE13B6C7D832D339618E4C7372F8D02E48E743FB7477FDF8ED746987F72F4FFD46F1CEEA5340ABFC82D446083DCDA7 | 170 | 20180920131529 2 6 100 3071 2 D55876EAB302ADAA592F62BBE1E67B18C153FA6D93B6CF3C0D0E8989C13F29E1F6638AE58634C6A3C067754CA1241A8EDA45CB1306347BC6BA69D2CE5F515238C78CAFEB65D4FF05D52048EB048BE9B4C127C81EC60B978A372A5054B89BA7D8963DA343DB7F5B673B275E34D03A25C098FEE46063F963E47CAEB67A4915F413570C89224688F4598D25EEEE97DE581256261C0053CCBA12966E31849F31BF32BC506029A41F94356714EF0046FF68D5B75EC86ACB79708CD817C7752EA5E0D5E730245B06B91953434E2325B706C70492446CFC070C11F8E347AFDDB065B680A075BF287DEBFA9D59EE918B85D5D0157CD539A5E46888F39DB448D1D6BFAD57A3970C537387B556D801960276284F363287FE0230CA1950725B1B09A54DEDDF924BE8059E38A729A400582713F149E7E1005C8B0FB302ECA12D8949BA2B4FC645BE96B3F20384384626F1BA1F4E8E045442DDD6A124DECC49B8CDBD6D4217978F69FF8DE7B7F4B15908881391F81F43DF6FBD616398BE9225FE3AC5CD82F3D3 |
171 | 20180404035100 2 6 100 4095 2 D6A36D53FE335EAC6C6F21F2963EEF44BF055FBE1D529CAC77341CADF25097607135D53FBDF5ED5B3BB2CE243834E344600627AB46C3F3952C0E59AAD95A13E0B299073FA6C02260432090C66B7DFA4C06633B8D31E7376024958AEF0B57A6A1519DC39CCFD65E33B19DA7C52C0C6DA0E5990A5DCDE9CB16C36408E6CC825FA464EC6CF3848202E6197281C8176600BEAABAB5E2C0598A97C9A5AC7606A0583DFFBD20FA424D1B62E0E5FAF7DA56C1CEB3C309C999C5B574322B8E511BA14342DAA24EA688E16B05CFC6B89696FF17BF21EC5AF75FB3A6258E6EA4CEE93B06299FC2D32441238B8EBF78124347A0E56522079641D5CB6F8858A91F9C7B1047E7CFCF6A80A0884BE39E9FB8CACE70865A022E538E80C899A43E5842C753E8332A8972249E4EAEB2C327FCD2777488CD9A1F03A242889D3F33A5C5047721605727486E3B97F3BEC6D8BF7C7B4512FB6AC8B854BD92B0ECC9F65408254BDDD8428F0F68EEF4FC61F033C56FF65C566B81994C1B92308771151DEBE7C814C608F99B784251C1CC4E5F110F5D9B9104BC8D60544FC4955204EF21F429E3D618C10F5F3A178BD71CEFD02ADF8AA5A3B79EB2038BC31467EE98AD1EA501B492EEF950B5B3E95AD0D792B585E3F6164E6B5EC52701DE13B6C7D832D339618E4C7372F8D02E48E743FB7477FDF8ED746987F72F4FFD46F1CEEA5340ABFC82D446084796E3 | 171 | 20180920134626 2 6 100 4095 2 FC69089A469473B9CF3F3CCD21123CCF3563811632E7FB6CDF9CDF7726AFA4691881289B3952D2347D7BA520E95016066B02888C7EA1E633B998E00EFE78E454EAF64D6462437E9DDB4A239DE998EC0756E7ED17B7A3499CCF2E3F33A54FD223BB6C485AECA2475E2C002C303F6A55530F2F83A98059699C59A43238468FC85CD137A1FC9B9674ED5D746B44848339A9CA772E802BCE56FED99E8B110C8CA365DFB9BFDD47CB2A33CA92469B3BCC6758B73A7A5685F3FB74B6D785ACFA15E462CA9E70453CD1E9D48D146F0951E4E10773A4FBC9C8E2948D2A091525F964FDE6B60BC3C7A175FF88D20A3758B2D6C35F253AF00B95697F32446EAAA00C7B8A3C4B9DC47EDF44BC4C35052CF7304ADE74A0A9C70575FA935961B07B908D9E58454662B0ED6D8148B79FC45B1F5EDD602B13C7285A75B901183C87CF0F6C060E40D48D9910BDB86C2A253C9894CCE7034DEB7707EF5256DE8E98570375845ADABAAF81893FF6D9E61E45FE9906E61CD2FB86F4A1ABC0D51527B56D3329192EBDFA78149C4652EA23463D6FEFC6F79F22154631CEB04692FB67B815FF791576AB9BA71B0A51009D4B2ECF0ED280745831B4B6B49D951479E5E6831F19CE717025AE212A3057D21832E86C847970CF0CEA82D19BC3D211A23EE2CB6B60ED499F1910A4AEC72FEE2BCA10E8BA9AC47ED2D953E1429B056CCEAD0ED2715D2A1925064B |
172 | 20180404035224 2 6 100 4095 2 D6A36D53FE335EAC6C6F21F2963EEF44BF055FBE1D529CAC77341CADF25097607135D53FBDF5ED5B3BB2CE243834E344600627AB46C3F3952C0E59AAD95A13E0B299073FA6C02260432090C66B7DFA4C06633B8D31E7376024958AEF0B57A6A1519DC39CCFD65E33B19DA7C52C0C6DA0E5990A5DCDE9CB16C36408E6CC825FA464EC6CF3848202E6197281C8176600BEAABAB5E2C0598A97C9A5AC7606A0583DFFBD20FA424D1B62E0E5FAF7DA56C1CEB3C309C999C5B574322B8E511BA14342DAA24EA688E16B05CFC6B89696FF17BF21EC5AF75FB3A6258E6EA4CEE93B06299FC2D32441238B8EBF78124347A0E56522079641D5CB6F8858A91F9C7B1047E7CFCF6A80A0884BE39E9FB8CACE70865A022E538E80C899A43E5842C753E8332A8972249E4EAEB2C327FCD2777488CD9A1F03A242889D3F33A5C5047721605727486E3B97F3BEC6D8BF7C7B4512FB6AC8B854BD92B0ECC9F65408254BDDD8428F0F68EEF4FC61F033C56FF65C566B81994C1B92308771151DEBE7C814C608F99B784251C1CC4E5F110F5D9B9104BC8D60544FC4955204EF21F429E3D618C10F5F3A178BD71CEFD02ADF8AA5A3B79EB2038BC31467EE98AD1EA501B492EEF950B5B3E95AD0D792B585E3F6164E6B5EC52701DE13B6C7D832D339618E4C7372F8D02E48E743FB7477FDF8ED746987F72F4FFD46F1CEEA5340ABFC82D446084ACD8B | 172 | 20180920135427 2 6 100 4095 2 FC69089A469473B9CF3F3CCD21123CCF3563811632E7FB6CDF9CDF7726AFA4691881289B3952D2347D7BA520E95016066B02888C7EA1E633B998E00EFE78E454EAF64D6462437E9DDB4A239DE998EC0756E7ED17B7A3499CCF2E3F33A54FD223BB6C485AECA2475E2C002C303F6A55530F2F83A98059699C59A43238468FC85CD137A1FC9B9674ED5D746B44848339A9CA772E802BCE56FED99E8B110C8CA365DFB9BFDD47CB2A33CA92469B3BCC6758B73A7A5685F3FB74B6D785ACFA15E462CA9E70453CD1E9D48D146F0951E4E10773A4FBC9C8E2948D2A091525F964FDE6B60BC3C7A175FF88D20A3758B2D6C35F253AF00B95697F32446EAAA00C7B8A3C4B9DC47EDF44BC4C35052CF7304ADE74A0A9C70575FA935961B07B908D9E58454662B0ED6D8148B79FC45B1F5EDD602B13C7285A75B901183C87CF0F6C060E40D48D9910BDB86C2A253C9894CCE7034DEB7707EF5256DE8E98570375845ADABAAF81893FF6D9E61E45FE9906E61CD2FB86F4A1ABC0D51527B56D3329192EBDFA78149C4652EA23463D6FEFC6F79F22154631CEB04692FB67B815FF791576AB9BA71B0A51009D4B2ECF0ED280745831B4B6B49D951479E5E6831F19CE717025AE212A3057D21832E86C847970CF0CEA82D19BC3D211A23EE2CB6B60ED499F1910A4AEC72FEE2BCA10E8BA9AC47ED2D953E1429B056CCEAD0ED2715D2A19BA1E2B |
173 | 20180404040621 2 6 100 4095 2 D6A36D53FE335EAC6C6F21F2963EEF44BF055FBE1D529CAC77341CADF25097607135D53FBDF5ED5B3BB2CE243834E344600627AB46C3F3952C0E59AAD95A13E0B299073FA6C02260432090C66B7DFA4C06633B8D31E7376024958AEF0B57A6A1519DC39CCFD65E33B19DA7C52C0C6DA0E5990A5DCDE9CB16C36408E6CC825FA464EC6CF3848202E6197281C8176600BEAABAB5E2C0598A97C9A5AC7606A0583DFFBD20FA424D1B62E0E5FAF7DA56C1CEB3C309C999C5B574322B8E511BA14342DAA24EA688E16B05CFC6B89696FF17BF21EC5AF75FB3A6258E6EA4CEE93B06299FC2D32441238B8EBF78124347A0E56522079641D5CB6F8858A91F9C7B1047E7CFCF6A80A0884BE39E9FB8CACE70865A022E538E80C899A43E5842C753E8332A8972249E4EAEB2C327FCD2777488CD9A1F03A242889D3F33A5C5047721605727486E3B97F3BEC6D8BF7C7B4512FB6AC8B854BD92B0ECC9F65408254BDDD8428F0F68EEF4FC61F033C56FF65C566B81994C1B92308771151DEBE7C814C608F99B784251C1CC4E5F110F5D9B9104BC8D60544FC4955204EF21F429E3D618C10F5F3A178BD71CEFD02ADF8AA5A3B79EB2038BC31467EE98AD1EA501B492EEF950B5B3E95AD0D792B585E3F6164E6B5EC52701DE13B6C7D832D339618E4C7372F8D02E48E743FB7477FDF8ED746987F72F4FFD46F1CEEA5340ABFC82D44608BABFE3 | 173 | 20180920141147 2 6 100 4095 5 FC69089A469473B9CF3F3CCD21123CCF3563811632E7FB6CDF9CDF7726AFA4691881289B3952D2347D7BA520E95016066B02888C7EA1E633B998E00EFE78E454EAF64D6462437E9DDB4A239DE998EC0756E7ED17B7A3499CCF2E3F33A54FD223BB6C485AECA2475E2C002C303F6A55530F2F83A98059699C59A43238468FC85CD137A1FC9B9674ED5D746B44848339A9CA772E802BCE56FED99E8B110C8CA365DFB9BFDD47CB2A33CA92469B3BCC6758B73A7A5685F3FB74B6D785ACFA15E462CA9E70453CD1E9D48D146F0951E4E10773A4FBC9C8E2948D2A091525F964FDE6B60BC3C7A175FF88D20A3758B2D6C35F253AF00B95697F32446EAAA00C7B8A3C4B9DC47EDF44BC4C35052CF7304ADE74A0A9C70575FA935961B07B908D9E58454662B0ED6D8148B79FC45B1F5EDD602B13C7285A75B901183C87CF0F6C060E40D48D9910BDB86C2A253C9894CCE7034DEB7707EF5256DE8E98570375845ADABAAF81893FF6D9E61E45FE9906E61CD2FB86F4A1ABC0D51527B56D3329192EBDFA78149C4652EA23463D6FEFC6F79F22154631CEB04692FB67B815FF791576AB9BA71B0A51009D4B2ECF0ED280745831B4B6B49D951479E5E6831F19CE717025AE212A3057D21832E86C847970CF0CEA82D19BC3D211A23EE2CB6B60ED499F1910A4AEC72FEE2BCA10E8BA9AC47ED2D953E1429B056CCEAD0ED2715D2A1B0331C7 |
174 | 20180404043706 2 6 100 4095 2 D6A36D53FE335EAC6C6F21F2963EEF44BF055FBE1D529CAC77341CADF25097607135D53FBDF5ED5B3BB2CE243834E344600627AB46C3F3952C0E59AAD95A13E0B299073FA6C02260432090C66B7DFA4C06633B8D31E7376024958AEF0B57A6A1519DC39CCFD65E33B19DA7C52C0C6DA0E5990A5DCDE9CB16C36408E6CC825FA464EC6CF3848202E6197281C8176600BEAABAB5E2C0598A97C9A5AC7606A0583DFFBD20FA424D1B62E0E5FAF7DA56C1CEB3C309C999C5B574322B8E511BA14342DAA24EA688E16B05CFC6B89696FF17BF21EC5AF75FB3A6258E6EA4CEE93B06299FC2D32441238B8EBF78124347A0E56522079641D5CB6F8858A91F9C7B1047E7CFCF6A80A0884BE39E9FB8CACE70865A022E538E80C899A43E5842C753E8332A8972249E4EAEB2C327FCD2777488CD9A1F03A242889D3F33A5C5047721605727486E3B97F3BEC6D8BF7C7B4512FB6AC8B854BD92B0ECC9F65408254BDDD8428F0F68EEF4FC61F033C56FF65C566B81994C1B92308771151DEBE7C814C608F99B784251C1CC4E5F110F5D9B9104BC8D60544FC4955204EF21F429E3D618C10F5F3A178BD71CEFD02ADF8AA5A3B79EB2038BC31467EE98AD1EA501B492EEF950B5B3E95AD0D792B585E3F6164E6B5EC52701DE13B6C7D832D339618E4C7372F8D02E48E743FB7477FDF8ED746987F72F4FFD46F1CEEA5340ABFC82D44609B60613 | 174 | 20180920145454 2 6 100 4095 5 FC69089A469473B9CF3F3CCD21123CCF3563811632E7FB6CDF9CDF7726AFA4691881289B3952D2347D7BA520E95016066B02888C7EA1E633B998E00EFE78E454EAF64D6462437E9DDB4A239DE998EC0756E7ED17B7A3499CCF2E3F33A54FD223BB6C485AECA2475E2C002C303F6A55530F2F83A98059699C59A43238468FC85CD137A1FC9B9674ED5D746B44848339A9CA772E802BCE56FED99E8B110C8CA365DFB9BFDD47CB2A33CA92469B3BCC6758B73A7A5685F3FB74B6D785ACFA15E462CA9E70453CD1E9D48D146F0951E4E10773A4FBC9C8E2948D2A091525F964FDE6B60BC3C7A175FF88D20A3758B2D6C35F253AF00B95697F32446EAAA00C7B8A3C4B9DC47EDF44BC4C35052CF7304ADE74A0A9C70575FA935961B07B908D9E58454662B0ED6D8148B79FC45B1F5EDD602B13C7285A75B901183C87CF0F6C060E40D48D9910BDB86C2A253C9894CCE7034DEB7707EF5256DE8E98570375845ADABAAF81893FF6D9E61E45FE9906E61CD2FB86F4A1ABC0D51527B56D3329192EBDFA78149C4652EA23463D6FEFC6F79F22154631CEB04692FB67B815FF791576AB9BA71B0A51009D4B2ECF0ED280745831B4B6B49D951479E5E6831F19CE717025AE212A3057D21832E86C847970CF0CEA82D19BC3D211A23EE2CB6B60ED499F1910A4AEC72FEE2BCA10E8BA9AC47ED2D953E1429B056CCEAD0ED2715D2A1E40577F |
175 | 20180404044213 2 6 100 4095 5 D6A36D53FE335EAC6C6F21F2963EEF44BF055FBE1D529CAC77341CADF25097607135D53FBDF5ED5B3BB2CE243834E344600627AB46C3F3952C0E59AAD95A13E0B299073FA6C02260432090C66B7DFA4C06633B8D31E7376024958AEF0B57A6A1519DC39CCFD65E33B19DA7C52C0C6DA0E5990A5DCDE9CB16C36408E6CC825FA464EC6CF3848202E6197281C8176600BEAABAB5E2C0598A97C9A5AC7606A0583DFFBD20FA424D1B62E0E5FAF7DA56C1CEB3C309C999C5B574322B8E511BA14342DAA24EA688E16B05CFC6B89696FF17BF21EC5AF75FB3A6258E6EA4CEE93B06299FC2D32441238B8EBF78124347A0E56522079641D5CB6F8858A91F9C7B1047E7CFCF6A80A0884BE39E9FB8CACE70865A022E538E80C899A43E5842C753E8332A8972249E4EAEB2C327FCD2777488CD9A1F03A242889D3F33A5C5047721605727486E3B97F3BEC6D8BF7C7B4512FB6AC8B854BD92B0ECC9F65408254BDDD8428F0F68EEF4FC61F033C56FF65C566B81994C1B92308771151DEBE7C814C608F99B784251C1CC4E5F110F5D9B9104BC8D60544FC4955204EF21F429E3D618C10F5F3A178BD71CEFD02ADF8AA5A3B79EB2038BC31467EE98AD1EA501B492EEF950B5B3E95AD0D792B585E3F6164E6B5EC52701DE13B6C7D832D339618E4C7372F8D02E48E743FB7477FDF8ED746987F72F4FFD46F1CEEA5340ABFC82D44609DB5067 | 175 | 20180920150140 2 6 100 4095 2 FC69089A469473B9CF3F3CCD21123CCF3563811632E7FB6CDF9CDF7726AFA4691881289B3952D2347D7BA520E95016066B02888C7EA1E633B998E00EFE78E454EAF64D6462437E9DDB4A239DE998EC0756E7ED17B7A3499CCF2E3F33A54FD223BB6C485AECA2475E2C002C303F6A55530F2F83A98059699C59A43238468FC85CD137A1FC9B9674ED5D746B44848339A9CA772E802BCE56FED99E8B110C8CA365DFB9BFDD47CB2A33CA92469B3BCC6758B73A7A5685F3FB74B6D785ACFA15E462CA9E70453CD1E9D48D146F0951E4E10773A4FBC9C8E2948D2A091525F964FDE6B60BC3C7A175FF88D20A3758B2D6C35F253AF00B95697F32446EAAA00C7B8A3C4B9DC47EDF44BC4C35052CF7304ADE74A0A9C70575FA935961B07B908D9E58454662B0ED6D8148B79FC45B1F5EDD602B13C7285A75B901183C87CF0F6C060E40D48D9910BDB86C2A253C9894CCE7034DEB7707EF5256DE8E98570375845ADABAAF81893FF6D9E61E45FE9906E61CD2FB86F4A1ABC0D51527B56D3329192EBDFA78149C4652EA23463D6FEFC6F79F22154631CEB04692FB67B815FF791576AB9BA71B0A51009D4B2ECF0ED280745831B4B6B49D951479E5E6831F19CE717025AE212A3057D21832E86C847970CF0CEA82D19BC3D211A23EE2CB6B60ED499F1910A4AEC72FEE2BCA10E8BA9AC47ED2D953E1429B056CCEAD0ED2715D2A1EBA2BA3 |
176 | 20180404050247 2 6 100 4095 2 D6A36D53FE335EAC6C6F21F2963EEF44BF055FBE1D529CAC77341CADF25097607135D53FBDF5ED5B3BB2CE243834E344600627AB46C3F3952C0E59AAD95A13E0B299073FA6C02260432090C66B7DFA4C06633B8D31E7376024958AEF0B57A6A1519DC39CCFD65E33B19DA7C52C0C6DA0E5990A5DCDE9CB16C36408E6CC825FA464EC6CF3848202E6197281C8176600BEAABAB5E2C0598A97C9A5AC7606A0583DFFBD20FA424D1B62E0E5FAF7DA56C1CEB3C309C999C5B574322B8E511BA14342DAA24EA688E16B05CFC6B89696FF17BF21EC5AF75FB3A6258E6EA4CEE93B06299FC2D32441238B8EBF78124347A0E56522079641D5CB6F8858A91F9C7B1047E7CFCF6A80A0884BE39E9FB8CACE70865A022E538E80C899A43E5842C753E8332A8972249E4EAEB2C327FCD2777488CD9A1F03A242889D3F33A5C5047721605727486E3B97F3BEC6D8BF7C7B4512FB6AC8B854BD92B0ECC9F65408254BDDD8428F0F68EEF4FC61F033C56FF65C566B81994C1B92308771151DEBE7C814C608F99B784251C1CC4E5F110F5D9B9104BC8D60544FC4955204EF21F429E3D618C10F5F3A178BD71CEFD02ADF8AA5A3B79EB2038BC31467EE98AD1EA501B492EEF950B5B3E95AD0D792B585E3F6164E6B5EC52701DE13B6C7D832D339618E4C7372F8D02E48E743FB7477FDF8ED746987F72F4FFD46F1CEEA5340ABFC82D4460A8585C3 | 176 | 20180920161629 2 6 100 4095 5 FC69089A469473B9CF3F3CCD21123CCF3563811632E7FB6CDF9CDF7726AFA4691881289B3952D2347D7BA520E95016066B02888C7EA1E633B998E00EFE78E454EAF64D6462437E9DDB4A239DE998EC0756E7ED17B7A3499CCF2E3F33A54FD223BB6C485AECA2475E2C002C303F6A55530F2F83A98059699C59A43238468FC85CD137A1FC9B9674ED5D746B44848339A9CA772E802BCE56FED99E8B110C8CA365DFB9BFDD47CB2A33CA92469B3BCC6758B73A7A5685F3FB74B6D785ACFA15E462CA9E70453CD1E9D48D146F0951E4E10773A4FBC9C8E2948D2A091525F964FDE6B60BC3C7A175FF88D20A3758B2D6C35F253AF00B95697F32446EAAA00C7B8A3C4B9DC47EDF44BC4C35052CF7304ADE74A0A9C70575FA935961B07B908D9E58454662B0ED6D8148B79FC45B1F5EDD602B13C7285A75B901183C87CF0F6C060E40D48D9910BDB86C2A253C9894CCE7034DEB7707EF5256DE8E98570375845ADABAAF81893FF6D9E61E45FE9906E61CD2FB86F4A1ABC0D51527B56D3329192EBDFA78149C4652EA23463D6FEFC6F79F22154631CEB04692FB67B815FF791576AB9BA71B0A51009D4B2ECF0ED280745831B4B6B49D951479E5E6831F19CE717025AE212A3057D21832E86C847970CF0CEA82D19BC3D211A23EE2CB6B60ED499F1910A4AEC72FEE2BCA10E8BA9AC47ED2D953E1429B056CCEAD0ED2715D2A24551BC7 |
177 | 20180404053546 2 6 100 4095 2 D6A36D53FE335EAC6C6F21F2963EEF44BF055FBE1D529CAC77341CADF25097607135D53FBDF5ED5B3BB2CE243834E344600627AB46C3F3952C0E59AAD95A13E0B299073FA6C02260432090C66B7DFA4C06633B8D31E7376024958AEF0B57A6A1519DC39CCFD65E33B19DA7C52C0C6DA0E5990A5DCDE9CB16C36408E6CC825FA464EC6CF3848202E6197281C8176600BEAABAB5E2C0598A97C9A5AC7606A0583DFFBD20FA424D1B62E0E5FAF7DA56C1CEB3C309C999C5B574322B8E511BA14342DAA24EA688E16B05CFC6B89696FF17BF21EC5AF75FB3A6258E6EA4CEE93B06299FC2D32441238B8EBF78124347A0E56522079641D5CB6F8858A91F9C7B1047E7CFCF6A80A0884BE39E9FB8CACE70865A022E538E80C899A43E5842C753E8332A8972249E4EAEB2C327FCD2777488CD9A1F03A242889D3F33A5C5047721605727486E3B97F3BEC6D8BF7C7B4512FB6AC8B854BD92B0ECC9F65408254BDDD8428F0F68EEF4FC61F033C56FF65C566B81994C1B92308771151DEBE7C814C608F99B784251C1CC4E5F110F5D9B9104BC8D60544FC4955204EF21F429E3D618C10F5F3A178BD71CEFD02ADF8AA5A3B79EB2038BC31467EE98AD1EA501B492EEF950B5B3E95AD0D792B585E3F6164E6B5EC52701DE13B6C7D832D339618E4C7372F8D02E48E743FB7477FDF8ED746987F72F4FFD46F1CEEA5340ABFC82D4460B94238B | 177 | 20180920163144 2 6 100 4095 2 FC69089A469473B9CF3F3CCD21123CCF3563811632E7FB6CDF9CDF7726AFA4691881289B3952D2347D7BA520E95016066B02888C7EA1E633B998E00EFE78E454EAF64D6462437E9DDB4A239DE998EC0756E7ED17B7A3499CCF2E3F33A54FD223BB6C485AECA2475E2C002C303F6A55530F2F83A98059699C59A43238468FC85CD137A1FC9B9674ED5D746B44848339A9CA772E802BCE56FED99E8B110C8CA365DFB9BFDD47CB2A33CA92469B3BCC6758B73A7A5685F3FB74B6D785ACFA15E462CA9E70453CD1E9D48D146F0951E4E10773A4FBC9C8E2948D2A091525F964FDE6B60BC3C7A175FF88D20A3758B2D6C35F253AF00B95697F32446EAAA00C7B8A3C4B9DC47EDF44BC4C35052CF7304ADE74A0A9C70575FA935961B07B908D9E58454662B0ED6D8148B79FC45B1F5EDD602B13C7285A75B901183C87CF0F6C060E40D48D9910BDB86C2A253C9894CCE7034DEB7707EF5256DE8E98570375845ADABAAF81893FF6D9E61E45FE9906E61CD2FB86F4A1ABC0D51527B56D3329192EBDFA78149C4652EA23463D6FEFC6F79F22154631CEB04692FB67B815FF791576AB9BA71B0A51009D4B2ECF0ED280745831B4B6B49D951479E5E6831F19CE717025AE212A3057D21832E86C847970CF0CEA82D19BC3D211A23EE2CB6B60ED499F1910A4AEC72FEE2BCA10E8BA9AC47ED2D953E1429B056CCEAD0ED2715D2A256E6A8B |
178 | 20180404054127 2 6 100 4095 2 D6A36D53FE335EAC6C6F21F2963EEF44BF055FBE1D529CAC77341CADF25097607135D53FBDF5ED5B3BB2CE243834E344600627AB46C3F3952C0E59AAD95A13E0B299073FA6C02260432090C66B7DFA4C06633B8D31E7376024958AEF0B57A6A1519DC39CCFD65E33B19DA7C52C0C6DA0E5990A5DCDE9CB16C36408E6CC825FA464EC6CF3848202E6197281C8176600BEAABAB5E2C0598A97C9A5AC7606A0583DFFBD20FA424D1B62E0E5FAF7DA56C1CEB3C309C999C5B574322B8E511BA14342DAA24EA688E16B05CFC6B89696FF17BF21EC5AF75FB3A6258E6EA4CEE93B06299FC2D32441238B8EBF78124347A0E56522079641D5CB6F8858A91F9C7B1047E7CFCF6A80A0884BE39E9FB8CACE70865A022E538E80C899A43E5842C753E8332A8972249E4EAEB2C327FCD2777488CD9A1F03A242889D3F33A5C5047721605727486E3B97F3BEC6D8BF7C7B4512FB6AC8B854BD92B0ECC9F65408254BDDD8428F0F68EEF4FC61F033C56FF65C566B81994C1B92308771151DEBE7C814C608F99B784251C1CC4E5F110F5D9B9104BC8D60544FC4955204EF21F429E3D618C10F5F3A178BD71CEFD02ADF8AA5A3B79EB2038BC31467EE98AD1EA501B492EEF950B5B3E95AD0D792B585E3F6164E6B5EC52701DE13B6C7D832D339618E4C7372F8D02E48E743FB7477FDF8ED746987F72F4FFD46F1CEEA5340ABFC82D4460BBC6C0B | 178 | 20180920164626 2 6 100 4095 5 FC69089A469473B9CF3F3CCD21123CCF3563811632E7FB6CDF9CDF7726AFA4691881289B3952D2347D7BA520E95016066B02888C7EA1E633B998E00EFE78E454EAF64D6462437E9DDB4A239DE998EC0756E7ED17B7A3499CCF2E3F33A54FD223BB6C485AECA2475E2C002C303F6A55530F2F83A98059699C59A43238468FC85CD137A1FC9B9674ED5D746B44848339A9CA772E802BCE56FED99E8B110C8CA365DFB9BFDD47CB2A33CA92469B3BCC6758B73A7A5685F3FB74B6D785ACFA15E462CA9E70453CD1E9D48D146F0951E4E10773A4FBC9C8E2948D2A091525F964FDE6B60BC3C7A175FF88D20A3758B2D6C35F253AF00B95697F32446EAAA00C7B8A3C4B9DC47EDF44BC4C35052CF7304ADE74A0A9C70575FA935961B07B908D9E58454662B0ED6D8148B79FC45B1F5EDD602B13C7285A75B901183C87CF0F6C060E40D48D9910BDB86C2A253C9894CCE7034DEB7707EF5256DE8E98570375845ADABAAF81893FF6D9E61E45FE9906E61CD2FB86F4A1ABC0D51527B56D3329192EBDFA78149C4652EA23463D6FEFC6F79F22154631CEB04692FB67B815FF791576AB9BA71B0A51009D4B2ECF0ED280745831B4B6B49D951479E5E6831F19CE717025AE212A3057D21832E86C847970CF0CEA82D19BC3D211A23EE2CB6B60ED499F1910A4AEC72FEE2BCA10E8BA9AC47ED2D953E1429B056CCEAD0ED2715D2A26848667 |
179 | 20180404060250 2 6 100 4095 5 D6A36D53FE335EAC6C6F21F2963EEF44BF055FBE1D529CAC77341CADF25097607135D53FBDF5ED5B3BB2CE243834E344600627AB46C3F3952C0E59AAD95A13E0B299073FA6C02260432090C66B7DFA4C06633B8D31E7376024958AEF0B57A6A1519DC39CCFD65E33B19DA7C52C0C6DA0E5990A5DCDE9CB16C36408E6CC825FA464EC6CF3848202E6197281C8176600BEAABAB5E2C0598A97C9A5AC7606A0583DFFBD20FA424D1B62E0E5FAF7DA56C1CEB3C309C999C5B574322B8E511BA14342DAA24EA688E16B05CFC6B89696FF17BF21EC5AF75FB3A6258E6EA4CEE93B06299FC2D32441238B8EBF78124347A0E56522079641D5CB6F8858A91F9C7B1047E7CFCF6A80A0884BE39E9FB8CACE70865A022E538E80C899A43E5842C753E8332A8972249E4EAEB2C327FCD2777488CD9A1F03A242889D3F33A5C5047721605727486E3B97F3BEC6D8BF7C7B4512FB6AC8B854BD92B0ECC9F65408254BDDD8428F0F68EEF4FC61F033C56FF65C566B81994C1B92308771151DEBE7C814C608F99B784251C1CC4E5F110F5D9B9104BC8D60544FC4955204EF21F429E3D618C10F5F3A178BD71CEFD02ADF8AA5A3B79EB2038BC31467EE98AD1EA501B492EEF950B5B3E95AD0D792B585E3F6164E6B5EC52701DE13B6C7D832D339618E4C7372F8D02E48E743FB7477FDF8ED746987F72F4FFD46F1CEEA5340ABFC82D4460C67CBB7 | 179 | 20180920164921 2 6 100 4095 5 FC69089A469473B9CF3F3CCD21123CCF3563811632E7FB6CDF9CDF7726AFA4691881289B3952D2347D7BA520E95016066B02888C7EA1E633B998E00EFE78E454EAF64D6462437E9DDB4A239DE998EC0756E7ED17B7A3499CCF2E3F33A54FD223BB6C485AECA2475E2C002C303F6A55530F2F83A98059699C59A43238468FC85CD137A1FC9B9674ED5D746B44848339A9CA772E802BCE56FED99E8B110C8CA365DFB9BFDD47CB2A33CA92469B3BCC6758B73A7A5685F3FB74B6D785ACFA15E462CA9E70453CD1E9D48D146F0951E4E10773A4FBC9C8E2948D2A091525F964FDE6B60BC3C7A175FF88D20A3758B2D6C35F253AF00B95697F32446EAAA00C7B8A3C4B9DC47EDF44BC4C35052CF7304ADE74A0A9C70575FA935961B07B908D9E58454662B0ED6D8148B79FC45B1F5EDD602B13C7285A75B901183C87CF0F6C060E40D48D9910BDB86C2A253C9894CCE7034DEB7707EF5256DE8E98570375845ADABAAF81893FF6D9E61E45FE9906E61CD2FB86F4A1ABC0D51527B56D3329192EBDFA78149C4652EA23463D6FEFC6F79F22154631CEB04692FB67B815FF791576AB9BA71B0A51009D4B2ECF0ED280745831B4B6B49D951479E5E6831F19CE717025AE212A3057D21832E86C847970CF0CEA82D19BC3D211A23EE2CB6B60ED499F1910A4AEC72FEE2BCA10E8BA9AC47ED2D953E1429B056CCEAD0ED2715D2A26B3187F |
180 | 20180404061330 2 6 100 4095 2 D6A36D53FE335EAC6C6F21F2963EEF44BF055FBE1D529CAC77341CADF25097607135D53FBDF5ED5B3BB2CE243834E344600627AB46C3F3952C0E59AAD95A13E0B299073FA6C02260432090C66B7DFA4C06633B8D31E7376024958AEF0B57A6A1519DC39CCFD65E33B19DA7C52C0C6DA0E5990A5DCDE9CB16C36408E6CC825FA464EC6CF3848202E6197281C8176600BEAABAB5E2C0598A97C9A5AC7606A0583DFFBD20FA424D1B62E0E5FAF7DA56C1CEB3C309C999C5B574322B8E511BA14342DAA24EA688E16B05CFC6B89696FF17BF21EC5AF75FB3A6258E6EA4CEE93B06299FC2D32441238B8EBF78124347A0E56522079641D5CB6F8858A91F9C7B1047E7CFCF6A80A0884BE39E9FB8CACE70865A022E538E80C899A43E5842C753E8332A8972249E4EAEB2C327FCD2777488CD9A1F03A242889D3F33A5C5047721605727486E3B97F3BEC6D8BF7C7B4512FB6AC8B854BD92B0ECC9F65408254BDDD8428F0F68EEF4FC61F033C56FF65C566B81994C1B92308771151DEBE7C814C608F99B784251C1CC4E5F110F5D9B9104BC8D60544FC4955204EF21F429E3D618C10F5F3A178BD71CEFD02ADF8AA5A3B79EB2038BC31467EE98AD1EA501B492EEF950B5B3E95AD0D792B585E3F6164E6B5EC52701DE13B6C7D832D339618E4C7372F8D02E48E743FB7477FDF8ED746987F72F4FFD46F1CEEA5340ABFC82D4460CA93683 | 180 | 20180920165252 2 6 100 4095 2 FC69089A469473B9CF3F3CCD21123CCF3563811632E7FB6CDF9CDF7726AFA4691881289B3952D2347D7BA520E95016066B02888C7EA1E633B998E00EFE78E454EAF64D6462437E9DDB4A239DE998EC0756E7ED17B7A3499CCF2E3F33A54FD223BB6C485AECA2475E2C002C303F6A55530F2F83A98059699C59A43238468FC85CD137A1FC9B9674ED5D746B44848339A9CA772E802BCE56FED99E8B110C8CA365DFB9BFDD47CB2A33CA92469B3BCC6758B73A7A5685F3FB74B6D785ACFA15E462CA9E70453CD1E9D48D146F0951E4E10773A4FBC9C8E2948D2A091525F964FDE6B60BC3C7A175FF88D20A3758B2D6C35F253AF00B95697F32446EAAA00C7B8A3C4B9DC47EDF44BC4C35052CF7304ADE74A0A9C70575FA935961B07B908D9E58454662B0ED6D8148B79FC45B1F5EDD602B13C7285A75B901183C87CF0F6C060E40D48D9910BDB86C2A253C9894CCE7034DEB7707EF5256DE8E98570375845ADABAAF81893FF6D9E61E45FE9906E61CD2FB86F4A1ABC0D51527B56D3329192EBDFA78149C4652EA23463D6FEFC6F79F22154631CEB04692FB67B815FF791576AB9BA71B0A51009D4B2ECF0ED280745831B4B6B49D951479E5E6831F19CE717025AE212A3057D21832E86C847970CF0CEA82D19BC3D211A23EE2CB6B60ED499F1910A4AEC72FEE2BCA10E8BA9AC47ED2D953E1429B056CCEAD0ED2715D2A26EC656B |
181 | 20180404084828 2 6 100 4095 2 D6A36D53FE335EAC6C6F21F2963EEF44BF055FBE1D529CAC77341CADF25097607135D53FBDF5ED5B3BB2CE243834E344600627AB46C3F3952C0E59AAD95A13E0B299073FA6C02260432090C66B7DFA4C06633B8D31E7376024958AEF0B57A6A1519DC39CCFD65E33B19DA7C52C0C6DA0E5990A5DCDE9CB16C36408E6CC825FA464EC6CF3848202E6197281C8176600BEAABAB5E2C0598A97C9A5AC7606A0583DFFBD20FA424D1B62E0E5FAF7DA56C1CEB3C309C999C5B574322B8E511BA14342DAA24EA688E16B05CFC6B89696FF17BF21EC5AF75FB3A6258E6EA4CEE93B06299FC2D32441238B8EBF78124347A0E56522079641D5CB6F8858A91F9C7B1047E7CFCF6A80A0884BE39E9FB8CACE70865A022E538E80C899A43E5842C753E8332A8972249E4EAEB2C327FCD2777488CD9A1F03A242889D3F33A5C5047721605727486E3B97F3BEC6D8BF7C7B4512FB6AC8B854BD92B0ECC9F65408254BDDD8428F0F68EEF4FC61F033C56FF65C566B81994C1B92308771151DEBE7C814C608F99B784251C1CC4E5F110F5D9B9104BC8D60544FC4955204EF21F429E3D618C10F5F3A178BD71CEFD02ADF8AA5A3B79EB2038BC31467EE98AD1EA501B492EEF950B5B3E95AD0D792B585E3F6164E6B5EC52701DE13B6C7D832D339618E4C7372F8D02E48E743FB7477FDF8ED746987F72F4FFD46F1CEEA5340ABFC82D446115943A3 | 181 | 20180920165723 2 6 100 4095 2 FC69089A469473B9CF3F3CCD21123CCF3563811632E7FB6CDF9CDF7726AFA4691881289B3952D2347D7BA520E95016066B02888C7EA1E633B998E00EFE78E454EAF64D6462437E9DDB4A239DE998EC0756E7ED17B7A3499CCF2E3F33A54FD223BB6C485AECA2475E2C002C303F6A55530F2F83A98059699C59A43238468FC85CD137A1FC9B9674ED5D746B44848339A9CA772E802BCE56FED99E8B110C8CA365DFB9BFDD47CB2A33CA92469B3BCC6758B73A7A5685F3FB74B6D785ACFA15E462CA9E70453CD1E9D48D146F0951E4E10773A4FBC9C8E2948D2A091525F964FDE6B60BC3C7A175FF88D20A3758B2D6C35F253AF00B95697F32446EAAA00C7B8A3C4B9DC47EDF44BC4C35052CF7304ADE74A0A9C70575FA935961B07B908D9E58454662B0ED6D8148B79FC45B1F5EDD602B13C7285A75B901183C87CF0F6C060E40D48D9910BDB86C2A253C9894CCE7034DEB7707EF5256DE8E98570375845ADABAAF81893FF6D9E61E45FE9906E61CD2FB86F4A1ABC0D51527B56D3329192EBDFA78149C4652EA23463D6FEFC6F79F22154631CEB04692FB67B815FF791576AB9BA71B0A51009D4B2ECF0ED280745831B4B6B49D951479E5E6831F19CE717025AE212A3057D21832E86C847970CF0CEA82D19BC3D211A23EE2CB6B60ED499F1910A4AEC72FEE2BCA10E8BA9AC47ED2D953E1429B056CCEAD0ED2715D2A273A8833 |
182 | 20180404085435 2 6 100 4095 5 D6A36D53FE335EAC6C6F21F2963EEF44BF055FBE1D529CAC77341CADF25097607135D53FBDF5ED5B3BB2CE243834E344600627AB46C3F3952C0E59AAD95A13E0B299073FA6C02260432090C66B7DFA4C06633B8D31E7376024958AEF0B57A6A1519DC39CCFD65E33B19DA7C52C0C6DA0E5990A5DCDE9CB16C36408E6CC825FA464EC6CF3848202E6197281C8176600BEAABAB5E2C0598A97C9A5AC7606A0583DFFBD20FA424D1B62E0E5FAF7DA56C1CEB3C309C999C5B574322B8E511BA14342DAA24EA688E16B05CFC6B89696FF17BF21EC5AF75FB3A6258E6EA4CEE93B06299FC2D32441238B8EBF78124347A0E56522079641D5CB6F8858A91F9C7B1047E7CFCF6A80A0884BE39E9FB8CACE70865A022E538E80C899A43E5842C753E8332A8972249E4EAEB2C327FCD2777488CD9A1F03A242889D3F33A5C5047721605727486E3B97F3BEC6D8BF7C7B4512FB6AC8B854BD92B0ECC9F65408254BDDD8428F0F68EEF4FC61F033C56FF65C566B81994C1B92308771151DEBE7C814C608F99B784251C1CC4E5F110F5D9B9104BC8D60544FC4955204EF21F429E3D618C10F5F3A178BD71CEFD02ADF8AA5A3B79EB2038BC31467EE98AD1EA501B492EEF950B5B3E95AD0D792B585E3F6164E6B5EC52701DE13B6C7D832D339618E4C7372F8D02E48E743FB7477FDF8ED746987F72F4FFD46F1CEEA5340ABFC82D4461181EE57 | 182 | 20180920170336 2 6 100 4095 5 FC69089A469473B9CF3F3CCD21123CCF3563811632E7FB6CDF9CDF7726AFA4691881289B3952D2347D7BA520E95016066B02888C7EA1E633B998E00EFE78E454EAF64D6462437E9DDB4A239DE998EC0756E7ED17B7A3499CCF2E3F33A54FD223BB6C485AECA2475E2C002C303F6A55530F2F83A98059699C59A43238468FC85CD137A1FC9B9674ED5D746B44848339A9CA772E802BCE56FED99E8B110C8CA365DFB9BFDD47CB2A33CA92469B3BCC6758B73A7A5685F3FB74B6D785ACFA15E462CA9E70453CD1E9D48D146F0951E4E10773A4FBC9C8E2948D2A091525F964FDE6B60BC3C7A175FF88D20A3758B2D6C35F253AF00B95697F32446EAAA00C7B8A3C4B9DC47EDF44BC4C35052CF7304ADE74A0A9C70575FA935961B07B908D9E58454662B0ED6D8148B79FC45B1F5EDD602B13C7285A75B901183C87CF0F6C060E40D48D9910BDB86C2A253C9894CCE7034DEB7707EF5256DE8E98570375845ADABAAF81893FF6D9E61E45FE9906E61CD2FB86F4A1ABC0D51527B56D3329192EBDFA78149C4652EA23463D6FEFC6F79F22154631CEB04692FB67B815FF791576AB9BA71B0A51009D4B2ECF0ED280745831B4B6B49D951479E5E6831F19CE717025AE212A3057D21832E86C847970CF0CEA82D19BC3D211A23EE2CB6B60ED499F1910A4AEC72FEE2BCA10E8BA9AC47ED2D953E1429B056CCEAD0ED2715D2A27A959BF |
183 | 20180404093010 2 6 100 4095 5 C287DA1692C8760D889CABEA6A7055FADB13C9F064C87322D569B9C574001DEBA1685DA8DFFB9A11253F685A3045E2CEBA057C35DD417F717110949007702B25A37AEE60C3A1A9AA6A1667C15BBFFFF173DF27813A74959756822AB34A2BB97B2F408CC6A994ADC83F05CB8028784B859A25032D691F1DDFB1A87F47EDC289FE4452BE4E4D7B07745C1D5A901E7EF0521465DFFC1EECAB7E4F15172A90257AFFCA11B455ADD24067B20C20EDF9B5B59BDFDAE03BF0AB39A13E60515CA8ADE3273BBCA8290D3B581F92B61F1A893ABFF16255A9226638159640F7869B5C30C8FFF3C3378B14E1A5529C8DE120A9E2099388E1217BDDFCC1708F37E74BDE5D0A2DCFDC4DD27BA697C3F8238182DA7C5D02431E086067358CC9A9B4EFF7C8D7FC9F0C8C0528887A194A6D0613AEE1EEDDC7A315AC1A178E9377E488F49367573BA8EDF80FD6EDE2D256F0614AF81B8FB1B243EA7F04CA6BE0E0BE9F43525D3B6718DAA5E2FD3D20BE3F37ED402DAFD7F19C39E51A40868D3F79D45CD422A9F7454DB3FEFF205BE4C10234914FD8882B344DBFB5C2BE5B576EA94EB62C3AFCD012EE7F82F0744BE067736E9A78EF38E6F06474E025776F138AF84E4093AB36683A60D0DB5CB9F75CA7C4303059E0DDCE3A641A3278F5015FD42EAA79B72E5F0D2EFDAADE3B76B23DD4C2A39F359B3CA00F7584B729800B3E01DC3D4CD4B396361597 | 183 | 20180920170729 2 6 100 4095 2 FC69089A469473B9CF3F3CCD21123CCF3563811632E7FB6CDF9CDF7726AFA4691881289B3952D2347D7BA520E95016066B02888C7EA1E633B998E00EFE78E454EAF64D6462437E9DDB4A239DE998EC0756E7ED17B7A3499CCF2E3F33A54FD223BB6C485AECA2475E2C002C303F6A55530F2F83A98059699C59A43238468FC85CD137A1FC9B9674ED5D746B44848339A9CA772E802BCE56FED99E8B110C8CA365DFB9BFDD47CB2A33CA92469B3BCC6758B73A7A5685F3FB74B6D785ACFA15E462CA9E70453CD1E9D48D146F0951E4E10773A4FBC9C8E2948D2A091525F964FDE6B60BC3C7A175FF88D20A3758B2D6C35F253AF00B95697F32446EAAA00C7B8A3C4B9DC47EDF44BC4C35052CF7304ADE74A0A9C70575FA935961B07B908D9E58454662B0ED6D8148B79FC45B1F5EDD602B13C7285A75B901183C87CF0F6C060E40D48D9910BDB86C2A253C9894CCE7034DEB7707EF5256DE8E98570375845ADABAAF81893FF6D9E61E45FE9906E61CD2FB86F4A1ABC0D51527B56D3329192EBDFA78149C4652EA23463D6FEFC6F79F22154631CEB04692FB67B815FF791576AB9BA71B0A51009D4B2ECF0ED280745831B4B6B49D951479E5E6831F19CE717025AE212A3057D21832E86C847970CF0CEA82D19BC3D211A23EE2CB6B60ED499F1910A4AEC72FEE2BCA10E8BA9AC47ED2D953E1429B056CCEAD0ED2715D2A27EBBC83 |
184 | 20180404100034 2 6 100 4095 2 C287DA1692C8760D889CABEA6A7055FADB13C9F064C87322D569B9C574001DEBA1685DA8DFFB9A11253F685A3045E2CEBA057C35DD417F717110949007702B25A37AEE60C3A1A9AA6A1667C15BBFFFF173DF27813A74959756822AB34A2BB97B2F408CC6A994ADC83F05CB8028784B859A25032D691F1DDFB1A87F47EDC289FE4452BE4E4D7B07745C1D5A901E7EF0521465DFFC1EECAB7E4F15172A90257AFFCA11B455ADD24067B20C20EDF9B5B59BDFDAE03BF0AB39A13E60515CA8ADE3273BBCA8290D3B581F92B61F1A893ABFF16255A9226638159640F7869B5C30C8FFF3C3378B14E1A5529C8DE120A9E2099388E1217BDDFCC1708F37E74BDE5D0A2DCFDC4DD27BA697C3F8238182DA7C5D02431E086067358CC9A9B4EFF7C8D7FC9F0C8C0528887A194A6D0613AEE1EEDDC7A315AC1A178E9377E488F49367573BA8EDF80FD6EDE2D256F0614AF81B8FB1B243EA7F04CA6BE0E0BE9F43525D3B6718DAA5E2FD3D20BE3F37ED402DAFD7F19C39E51A40868D3F79D45CD422A9F7454DB3FEFF205BE4C10234914FD8882B344DBFB5C2BE5B576EA94EB62C3AFCD012EE7F82F0744BE067736E9A78EF38E6F06474E025776F138AF84E4093AB36683A60D0DB5CB9F75CA7C4303059E0DDCE3A641A3278F5015FD42EAA79B72E5F0D2EFDAADE3B76B23DD4C2A39F359B3CA00F7584B729800B3E01DC3D4CD4B3973953BB | 184 | 20180920171833 2 6 100 4095 5 FC69089A469473B9CF3F3CCD21123CCF3563811632E7FB6CDF9CDF7726AFA4691881289B3952D2347D7BA520E95016066B02888C7EA1E633B998E00EFE78E454EAF64D6462437E9DDB4A239DE998EC0756E7ED17B7A3499CCF2E3F33A54FD223BB6C485AECA2475E2C002C303F6A55530F2F83A98059699C59A43238468FC85CD137A1FC9B9674ED5D746B44848339A9CA772E802BCE56FED99E8B110C8CA365DFB9BFDD47CB2A33CA92469B3BCC6758B73A7A5685F3FB74B6D785ACFA15E462CA9E70453CD1E9D48D146F0951E4E10773A4FBC9C8E2948D2A091525F964FDE6B60BC3C7A175FF88D20A3758B2D6C35F253AF00B95697F32446EAAA00C7B8A3C4B9DC47EDF44BC4C35052CF7304ADE74A0A9C70575FA935961B07B908D9E58454662B0ED6D8148B79FC45B1F5EDD602B13C7285A75B901183C87CF0F6C060E40D48D9910BDB86C2A253C9894CCE7034DEB7707EF5256DE8E98570375845ADABAAF81893FF6D9E61E45FE9906E61CD2FB86F4A1ABC0D51527B56D3329192EBDFA78149C4652EA23463D6FEFC6F79F22154631CEB04692FB67B815FF791576AB9BA71B0A51009D4B2ECF0ED280745831B4B6B49D951479E5E6831F19CE717025AE212A3057D21832E86C847970CF0CEA82D19BC3D211A23EE2CB6B60ED499F1910A4AEC72FEE2BCA10E8BA9AC47ED2D953E1429B056CCEAD0ED2715D2A28B88307 |
185 | 20180404112136 2 6 100 4095 5 C287DA1692C8760D889CABEA6A7055FADB13C9F064C87322D569B9C574001DEBA1685DA8DFFB9A11253F685A3045E2CEBA057C35DD417F717110949007702B25A37AEE60C3A1A9AA6A1667C15BBFFFF173DF27813A74959756822AB34A2BB97B2F408CC6A994ADC83F05CB8028784B859A25032D691F1DDFB1A87F47EDC289FE4452BE4E4D7B07745C1D5A901E7EF0521465DFFC1EECAB7E4F15172A90257AFFCA11B455ADD24067B20C20EDF9B5B59BDFDAE03BF0AB39A13E60515CA8ADE3273BBCA8290D3B581F92B61F1A893ABFF16255A9226638159640F7869B5C30C8FFF3C3378B14E1A5529C8DE120A9E2099388E1217BDDFCC1708F37E74BDE5D0A2DCFDC4DD27BA697C3F8238182DA7C5D02431E086067358CC9A9B4EFF7C8D7FC9F0C8C0528887A194A6D0613AEE1EEDDC7A315AC1A178E9377E488F49367573BA8EDF80FD6EDE2D256F0614AF81B8FB1B243EA7F04CA6BE0E0BE9F43525D3B6718DAA5E2FD3D20BE3F37ED402DAFD7F19C39E51A40868D3F79D45CD422A9F7454DB3FEFF205BE4C10234914FD8882B344DBFB5C2BE5B576EA94EB62C3AFCD012EE7F82F0744BE067736E9A78EF38E6F06474E025776F138AF84E4093AB36683A60D0DB5CB9F75CA7C4303059E0DDCE3A641A3278F5015FD42EAA79B72E5F0D2EFDAADE3B76B23DD4C2A39F359B3CA00F7584B729800B3E01DC3D4CD4B399EA8DDF | 185 | 20180920173958 2 6 100 4095 5 FC69089A469473B9CF3F3CCD21123CCF3563811632E7FB6CDF9CDF7726AFA4691881289B3952D2347D7BA520E95016066B02888C7EA1E633B998E00EFE78E454EAF64D6462437E9DDB4A239DE998EC0756E7ED17B7A3499CCF2E3F33A54FD223BB6C485AECA2475E2C002C303F6A55530F2F83A98059699C59A43238468FC85CD137A1FC9B9674ED5D746B44848339A9CA772E802BCE56FED99E8B110C8CA365DFB9BFDD47CB2A33CA92469B3BCC6758B73A7A5685F3FB74B6D785ACFA15E462CA9E70453CD1E9D48D146F0951E4E10773A4FBC9C8E2948D2A091525F964FDE6B60BC3C7A175FF88D20A3758B2D6C35F253AF00B95697F32446EAAA00C7B8A3C4B9DC47EDF44BC4C35052CF7304ADE74A0A9C70575FA935961B07B908D9E58454662B0ED6D8148B79FC45B1F5EDD602B13C7285A75B901183C87CF0F6C060E40D48D9910BDB86C2A253C9894CCE7034DEB7707EF5256DE8E98570375845ADABAAF81893FF6D9E61E45FE9906E61CD2FB86F4A1ABC0D51527B56D3329192EBDFA78149C4652EA23463D6FEFC6F79F22154631CEB04692FB67B815FF791576AB9BA71B0A51009D4B2ECF0ED280745831B4B6B49D951479E5E6831F19CE717025AE212A3057D21832E86C847970CF0CEA82D19BC3D211A23EE2CB6B60ED499F1910A4AEC72FEE2BCA10E8BA9AC47ED2D953E1429B056CCEAD0ED2715D2A2A47E5BF |
186 | 20180404112714 2 6 100 4095 2 C287DA1692C8760D889CABEA6A7055FADB13C9F064C87322D569B9C574001DEBA1685DA8DFFB9A11253F685A3045E2CEBA057C35DD417F717110949007702B25A37AEE60C3A1A9AA6A1667C15BBFFFF173DF27813A74959756822AB34A2BB97B2F408CC6A994ADC83F05CB8028784B859A25032D691F1DDFB1A87F47EDC289FE4452BE4E4D7B07745C1D5A901E7EF0521465DFFC1EECAB7E4F15172A90257AFFCA11B455ADD24067B20C20EDF9B5B59BDFDAE03BF0AB39A13E60515CA8ADE3273BBCA8290D3B581F92B61F1A893ABFF16255A9226638159640F7869B5C30C8FFF3C3378B14E1A5529C8DE120A9E2099388E1217BDDFCC1708F37E74BDE5D0A2DCFDC4DD27BA697C3F8238182DA7C5D02431E086067358CC9A9B4EFF7C8D7FC9F0C8C0528887A194A6D0613AEE1EEDDC7A315AC1A178E9377E488F49367573BA8EDF80FD6EDE2D256F0614AF81B8FB1B243EA7F04CA6BE0E0BE9F43525D3B6718DAA5E2FD3D20BE3F37ED402DAFD7F19C39E51A40868D3F79D45CD422A9F7454DB3FEFF205BE4C10234914FD8882B344DBFB5C2BE5B576EA94EB62C3AFCD012EE7F82F0744BE067736E9A78EF38E6F06474E025776F138AF84E4093AB36683A60D0DB5CB9F75CA7C4303059E0DDCE3A641A3278F5015FD42EAA79B72E5F0D2EFDAADE3B76B23DD4C2A39F359B3CA00F7584B729800B3E01DC3D4CD4B39A1427A3 | 186 | 20180920174751 2 6 100 4095 2 FC69089A469473B9CF3F3CCD21123CCF3563811632E7FB6CDF9CDF7726AFA4691881289B3952D2347D7BA520E95016066B02888C7EA1E633B998E00EFE78E454EAF64D6462437E9DDB4A239DE998EC0756E7ED17B7A3499CCF2E3F33A54FD223BB6C485AECA2475E2C002C303F6A55530F2F83A98059699C59A43238468FC85CD137A1FC9B9674ED5D746B44848339A9CA772E802BCE56FED99E8B110C8CA365DFB9BFDD47CB2A33CA92469B3BCC6758B73A7A5685F3FB74B6D785ACFA15E462CA9E70453CD1E9D48D146F0951E4E10773A4FBC9C8E2948D2A091525F964FDE6B60BC3C7A175FF88D20A3758B2D6C35F253AF00B95697F32446EAAA00C7B8A3C4B9DC47EDF44BC4C35052CF7304ADE74A0A9C70575FA935961B07B908D9E58454662B0ED6D8148B79FC45B1F5EDD602B13C7285A75B901183C87CF0F6C060E40D48D9910BDB86C2A253C9894CCE7034DEB7707EF5256DE8E98570375845ADABAAF81893FF6D9E61E45FE9906E61CD2FB86F4A1ABC0D51527B56D3329192EBDFA78149C4652EA23463D6FEFC6F79F22154631CEB04692FB67B815FF791576AB9BA71B0A51009D4B2ECF0ED280745831B4B6B49D951479E5E6831F19CE717025AE212A3057D21832E86C847970CF0CEA82D19BC3D211A23EE2CB6B60ED499F1910A4AEC72FEE2BCA10E8BA9AC47ED2D953E1429B056CCEAD0ED2715D2A2AD76CDB |
187 | 20180404115040 2 6 100 4095 2 C287DA1692C8760D889CABEA6A7055FADB13C9F064C87322D569B9C574001DEBA1685DA8DFFB9A11253F685A3045E2CEBA057C35DD417F717110949007702B25A37AEE60C3A1A9AA6A1667C15BBFFFF173DF27813A74959756822AB34A2BB97B2F408CC6A994ADC83F05CB8028784B859A25032D691F1DDFB1A87F47EDC289FE4452BE4E4D7B07745C1D5A901E7EF0521465DFFC1EECAB7E4F15172A90257AFFCA11B455ADD24067B20C20EDF9B5B59BDFDAE03BF0AB39A13E60515CA8ADE3273BBCA8290D3B581F92B61F1A893ABFF16255A9226638159640F7869B5C30C8FFF3C3378B14E1A5529C8DE120A9E2099388E1217BDDFCC1708F37E74BDE5D0A2DCFDC4DD27BA697C3F8238182DA7C5D02431E086067358CC9A9B4EFF7C8D7FC9F0C8C0528887A194A6D0613AEE1EEDDC7A315AC1A178E9377E488F49367573BA8EDF80FD6EDE2D256F0614AF81B8FB1B243EA7F04CA6BE0E0BE9F43525D3B6718DAA5E2FD3D20BE3F37ED402DAFD7F19C39E51A40868D3F79D45CD422A9F7454DB3FEFF205BE4C10234914FD8882B344DBFB5C2BE5B576EA94EB62C3AFCD012EE7F82F0744BE067736E9A78EF38E6F06474E025776F138AF84E4093AB36683A60D0DB5CB9F75CA7C4303059E0DDCE3A641A3278F5015FD42EAA79B72E5F0D2EFDAADE3B76B23DD4C2A39F359B3CA00F7584B729800B3E01DC3D4CD4B39AD94553 | 187 | 20180920175337 2 6 100 4095 5 FC69089A469473B9CF3F3CCD21123CCF3563811632E7FB6CDF9CDF7726AFA4691881289B3952D2347D7BA520E95016066B02888C7EA1E633B998E00EFE78E454EAF64D6462437E9DDB4A239DE998EC0756E7ED17B7A3499CCF2E3F33A54FD223BB6C485AECA2475E2C002C303F6A55530F2F83A98059699C59A43238468FC85CD137A1FC9B9674ED5D746B44848339A9CA772E802BCE56FED99E8B110C8CA365DFB9BFDD47CB2A33CA92469B3BCC6758B73A7A5685F3FB74B6D785ACFA15E462CA9E70453CD1E9D48D146F0951E4E10773A4FBC9C8E2948D2A091525F964FDE6B60BC3C7A175FF88D20A3758B2D6C35F253AF00B95697F32446EAAA00C7B8A3C4B9DC47EDF44BC4C35052CF7304ADE74A0A9C70575FA935961B07B908D9E58454662B0ED6D8148B79FC45B1F5EDD602B13C7285A75B901183C87CF0F6C060E40D48D9910BDB86C2A253C9894CCE7034DEB7707EF5256DE8E98570375845ADABAAF81893FF6D9E61E45FE9906E61CD2FB86F4A1ABC0D51527B56D3329192EBDFA78149C4652EA23463D6FEFC6F79F22154631CEB04692FB67B815FF791576AB9BA71B0A51009D4B2ECF0ED280745831B4B6B49D951479E5E6831F19CE717025AE212A3057D21832E86C847970CF0CEA82D19BC3D211A23EE2CB6B60ED499F1910A4AEC72FEE2BCA10E8BA9AC47ED2D953E1429B056CCEAD0ED2715D2A2B3F16FF |
188 | 20180404130727 2 6 100 4095 2 C287DA1692C8760D889CABEA6A7055FADB13C9F064C87322D569B9C574001DEBA1685DA8DFFB9A11253F685A3045E2CEBA057C35DD417F717110949007702B25A37AEE60C3A1A9AA6A1667C15BBFFFF173DF27813A74959756822AB34A2BB97B2F408CC6A994ADC83F05CB8028784B859A25032D691F1DDFB1A87F47EDC289FE4452BE4E4D7B07745C1D5A901E7EF0521465DFFC1EECAB7E4F15172A90257AFFCA11B455ADD24067B20C20EDF9B5B59BDFDAE03BF0AB39A13E60515CA8ADE3273BBCA8290D3B581F92B61F1A893ABFF16255A9226638159640F7869B5C30C8FFF3C3378B14E1A5529C8DE120A9E2099388E1217BDDFCC1708F37E74BDE5D0A2DCFDC4DD27BA697C3F8238182DA7C5D02431E086067358CC9A9B4EFF7C8D7FC9F0C8C0528887A194A6D0613AEE1EEDDC7A315AC1A178E9377E488F49367573BA8EDF80FD6EDE2D256F0614AF81B8FB1B243EA7F04CA6BE0E0BE9F43525D3B6718DAA5E2FD3D20BE3F37ED402DAFD7F19C39E51A40868D3F79D45CD422A9F7454DB3FEFF205BE4C10234914FD8882B344DBFB5C2BE5B576EA94EB62C3AFCD012EE7F82F0744BE067736E9A78EF38E6F06474E025776F138AF84E4093AB36683A60D0DB5CB9F75CA7C4303059E0DDCE3A641A3278F5015FD42EAA79B72E5F0D2EFDAADE3B76B23DD4C2A39F359B3CA00F7584B729800B3E01DC3D4CD4B39D6ABE8B | 188 | 20180920180736 2 6 100 4095 5 FC69089A469473B9CF3F3CCD21123CCF3563811632E7FB6CDF9CDF7726AFA4691881289B3952D2347D7BA520E95016066B02888C7EA1E633B998E00EFE78E454EAF64D6462437E9DDB4A239DE998EC0756E7ED17B7A3499CCF2E3F33A54FD223BB6C485AECA2475E2C002C303F6A55530F2F83A98059699C59A43238468FC85CD137A1FC9B9674ED5D746B44848339A9CA772E802BCE56FED99E8B110C8CA365DFB9BFDD47CB2A33CA92469B3BCC6758B73A7A5685F3FB74B6D785ACFA15E462CA9E70453CD1E9D48D146F0951E4E10773A4FBC9C8E2948D2A091525F964FDE6B60BC3C7A175FF88D20A3758B2D6C35F253AF00B95697F32446EAAA00C7B8A3C4B9DC47EDF44BC4C35052CF7304ADE74A0A9C70575FA935961B07B908D9E58454662B0ED6D8148B79FC45B1F5EDD602B13C7285A75B901183C87CF0F6C060E40D48D9910BDB86C2A253C9894CCE7034DEB7707EF5256DE8E98570375845ADABAAF81893FF6D9E61E45FE9906E61CD2FB86F4A1ABC0D51527B56D3329192EBDFA78149C4652EA23463D6FEFC6F79F22154631CEB04692FB67B815FF791576AB9BA71B0A51009D4B2ECF0ED280745831B4B6B49D951479E5E6831F19CE717025AE212A3057D21832E86C847970CF0CEA82D19BC3D211A23EE2CB6B60ED499F1910A4AEC72FEE2BCA10E8BA9AC47ED2D953E1429B056CCEAD0ED2715D2A2C416607 |
189 | 20180404132841 2 6 100 4095 5 C287DA1692C8760D889CABEA6A7055FADB13C9F064C87322D569B9C574001DEBA1685DA8DFFB9A11253F685A3045E2CEBA057C35DD417F717110949007702B25A37AEE60C3A1A9AA6A1667C15BBFFFF173DF27813A74959756822AB34A2BB97B2F408CC6A994ADC83F05CB8028784B859A25032D691F1DDFB1A87F47EDC289FE4452BE4E4D7B07745C1D5A901E7EF0521465DFFC1EECAB7E4F15172A90257AFFCA11B455ADD24067B20C20EDF9B5B59BDFDAE03BF0AB39A13E60515CA8ADE3273BBCA8290D3B581F92B61F1A893ABFF16255A9226638159640F7869B5C30C8FFF3C3378B14E1A5529C8DE120A9E2099388E1217BDDFCC1708F37E74BDE5D0A2DCFDC4DD27BA697C3F8238182DA7C5D02431E086067358CC9A9B4EFF7C8D7FC9F0C8C0528887A194A6D0613AEE1EEDDC7A315AC1A178E9377E488F49367573BA8EDF80FD6EDE2D256F0614AF81B8FB1B243EA7F04CA6BE0E0BE9F43525D3B6718DAA5E2FD3D20BE3F37ED402DAFD7F19C39E51A40868D3F79D45CD422A9F7454DB3FEFF205BE4C10234914FD8882B344DBFB5C2BE5B576EA94EB62C3AFCD012EE7F82F0744BE067736E9A78EF38E6F06474E025776F138AF84E4093AB36683A60D0DB5CB9F75CA7C4303059E0DDCE3A641A3278F5015FD42EAA79B72E5F0D2EFDAADE3B76B23DD4C2A39F359B3CA00F7584B729800B3E01DC3D4CD4B39E19247F | 189 | 20180920181108 2 6 100 4095 5 FC69089A469473B9CF3F3CCD21123CCF3563811632E7FB6CDF9CDF7726AFA4691881289B3952D2347D7BA520E95016066B02888C7EA1E633B998E00EFE78E454EAF64D6462437E9DDB4A239DE998EC0756E7ED17B7A3499CCF2E3F33A54FD223BB6C485AECA2475E2C002C303F6A55530F2F83A98059699C59A43238468FC85CD137A1FC9B9674ED5D746B44848339A9CA772E802BCE56FED99E8B110C8CA365DFB9BFDD47CB2A33CA92469B3BCC6758B73A7A5685F3FB74B6D785ACFA15E462CA9E70453CD1E9D48D146F0951E4E10773A4FBC9C8E2948D2A091525F964FDE6B60BC3C7A175FF88D20A3758B2D6C35F253AF00B95697F32446EAAA00C7B8A3C4B9DC47EDF44BC4C35052CF7304ADE74A0A9C70575FA935961B07B908D9E58454662B0ED6D8148B79FC45B1F5EDD602B13C7285A75B901183C87CF0F6C060E40D48D9910BDB86C2A253C9894CCE7034DEB7707EF5256DE8E98570375845ADABAAF81893FF6D9E61E45FE9906E61CD2FB86F4A1ABC0D51527B56D3329192EBDFA78149C4652EA23463D6FEFC6F79F22154631CEB04692FB67B815FF791576AB9BA71B0A51009D4B2ECF0ED280745831B4B6B49D951479E5E6831F19CE717025AE212A3057D21832E86C847970CF0CEA82D19BC3D211A23EE2CB6B60ED499F1910A4AEC72FEE2BCA10E8BA9AC47ED2D953E1429B056CCEAD0ED2715D2A2C7C62CF |
190 | 20180404140647 2 6 100 4095 2 C287DA1692C8760D889CABEA6A7055FADB13C9F064C87322D569B9C574001DEBA1685DA8DFFB9A11253F685A3045E2CEBA057C35DD417F717110949007702B25A37AEE60C3A1A9AA6A1667C15BBFFFF173DF27813A74959756822AB34A2BB97B2F408CC6A994ADC83F05CB8028784B859A25032D691F1DDFB1A87F47EDC289FE4452BE4E4D7B07745C1D5A901E7EF0521465DFFC1EECAB7E4F15172A90257AFFCA11B455ADD24067B20C20EDF9B5B59BDFDAE03BF0AB39A13E60515CA8ADE3273BBCA8290D3B581F92B61F1A893ABFF16255A9226638159640F7869B5C30C8FFF3C3378B14E1A5529C8DE120A9E2099388E1217BDDFCC1708F37E74BDE5D0A2DCFDC4DD27BA697C3F8238182DA7C5D02431E086067358CC9A9B4EFF7C8D7FC9F0C8C0528887A194A6D0613AEE1EEDDC7A315AC1A178E9377E488F49367573BA8EDF80FD6EDE2D256F0614AF81B8FB1B243EA7F04CA6BE0E0BE9F43525D3B6718DAA5E2FD3D20BE3F37ED402DAFD7F19C39E51A40868D3F79D45CD422A9F7454DB3FEFF205BE4C10234914FD8882B344DBFB5C2BE5B576EA94EB62C3AFCD012EE7F82F0744BE067736E9A78EF38E6F06474E025776F138AF84E4093AB36683A60D0DB5CB9F75CA7C4303059E0DDCE3A641A3278F5015FD42EAA79B72E5F0D2EFDAADE3B76B23DD4C2A39F359B3CA00F7584B729800B3E01DC3D4CD4B39F5CFEAB | 190 | 20180920182003 2 6 100 4095 5 FC69089A469473B9CF3F3CCD21123CCF3563811632E7FB6CDF9CDF7726AFA4691881289B3952D2347D7BA520E95016066B02888C7EA1E633B998E00EFE78E454EAF64D6462437E9DDB4A239DE998EC0756E7ED17B7A3499CCF2E3F33A54FD223BB6C485AECA2475E2C002C303F6A55530F2F83A98059699C59A43238468FC85CD137A1FC9B9674ED5D746B44848339A9CA772E802BCE56FED99E8B110C8CA365DFB9BFDD47CB2A33CA92469B3BCC6758B73A7A5685F3FB74B6D785ACFA15E462CA9E70453CD1E9D48D146F0951E4E10773A4FBC9C8E2948D2A091525F964FDE6B60BC3C7A175FF88D20A3758B2D6C35F253AF00B95697F32446EAAA00C7B8A3C4B9DC47EDF44BC4C35052CF7304ADE74A0A9C70575FA935961B07B908D9E58454662B0ED6D8148B79FC45B1F5EDD602B13C7285A75B901183C87CF0F6C060E40D48D9910BDB86C2A253C9894CCE7034DEB7707EF5256DE8E98570375845ADABAAF81893FF6D9E61E45FE9906E61CD2FB86F4A1ABC0D51527B56D3329192EBDFA78149C4652EA23463D6FEFC6F79F22154631CEB04692FB67B815FF791576AB9BA71B0A51009D4B2ECF0ED280745831B4B6B49D951479E5E6831F19CE717025AE212A3057D21832E86C847970CF0CEA82D19BC3D211A23EE2CB6B60ED499F1910A4AEC72FEE2BCA10E8BA9AC47ED2D953E1429B056CCEAD0ED2715D2A2D1C8377 |
191 | 20180404144308 2 6 100 4095 5 C287DA1692C8760D889CABEA6A7055FADB13C9F064C87322D569B9C574001DEBA1685DA8DFFB9A11253F685A3045E2CEBA057C35DD417F717110949007702B25A37AEE60C3A1A9AA6A1667C15BBFFFF173DF27813A74959756822AB34A2BB97B2F408CC6A994ADC83F05CB8028784B859A25032D691F1DDFB1A87F47EDC289FE4452BE4E4D7B07745C1D5A901E7EF0521465DFFC1EECAB7E4F15172A90257AFFCA11B455ADD24067B20C20EDF9B5B59BDFDAE03BF0AB39A13E60515CA8ADE3273BBCA8290D3B581F92B61F1A893ABFF16255A9226638159640F7869B5C30C8FFF3C3378B14E1A5529C8DE120A9E2099388E1217BDDFCC1708F37E74BDE5D0A2DCFDC4DD27BA697C3F8238182DA7C5D02431E086067358CC9A9B4EFF7C8D7FC9F0C8C0528887A194A6D0613AEE1EEDDC7A315AC1A178E9377E488F49367573BA8EDF80FD6EDE2D256F0614AF81B8FB1B243EA7F04CA6BE0E0BE9F43525D3B6718DAA5E2FD3D20BE3F37ED402DAFD7F19C39E51A40868D3F79D45CD422A9F7454DB3FEFF205BE4C10234914FD8882B344DBFB5C2BE5B576EA94EB62C3AFCD012EE7F82F0744BE067736E9A78EF38E6F06474E025776F138AF84E4093AB36683A60D0DB5CB9F75CA7C4303059E0DDCE3A641A3278F5015FD42EAA79B72E5F0D2EFDAADE3B76B23DD4C2A39F359B3CA00F7584B729800B3E01DC3D4CD4B3A087B8A7 | 191 | 20180920183639 2 6 100 4095 5 FC69089A469473B9CF3F3CCD21123CCF3563811632E7FB6CDF9CDF7726AFA4691881289B3952D2347D7BA520E95016066B02888C7EA1E633B998E00EFE78E454EAF64D6462437E9DDB4A239DE998EC0756E7ED17B7A3499CCF2E3F33A54FD223BB6C485AECA2475E2C002C303F6A55530F2F83A98059699C59A43238468FC85CD137A1FC9B9674ED5D746B44848339A9CA772E802BCE56FED99E8B110C8CA365DFB9BFDD47CB2A33CA92469B3BCC6758B73A7A5685F3FB74B6D785ACFA15E462CA9E70453CD1E9D48D146F0951E4E10773A4FBC9C8E2948D2A091525F964FDE6B60BC3C7A175FF88D20A3758B2D6C35F253AF00B95697F32446EAAA00C7B8A3C4B9DC47EDF44BC4C35052CF7304ADE74A0A9C70575FA935961B07B908D9E58454662B0ED6D8148B79FC45B1F5EDD602B13C7285A75B901183C87CF0F6C060E40D48D9910BDB86C2A253C9894CCE7034DEB7707EF5256DE8E98570375845ADABAAF81893FF6D9E61E45FE9906E61CD2FB86F4A1ABC0D51527B56D3329192EBDFA78149C4652EA23463D6FEFC6F79F22154631CEB04692FB67B815FF791576AB9BA71B0A51009D4B2ECF0ED280745831B4B6B49D951479E5E6831F19CE717025AE212A3057D21832E86C847970CF0CEA82D19BC3D211A23EE2CB6B60ED499F1910A4AEC72FEE2BCA10E8BA9AC47ED2D953E1429B056CCEAD0ED2715D2A2E532EF7 |
192 | 20180404154403 2 6 100 4095 5 C287DA1692C8760D889CABEA6A7055FADB13C9F064C87322D569B9C574001DEBA1685DA8DFFB9A11253F685A3045E2CEBA057C35DD417F717110949007702B25A37AEE60C3A1A9AA6A1667C15BBFFFF173DF27813A74959756822AB34A2BB97B2F408CC6A994ADC83F05CB8028784B859A25032D691F1DDFB1A87F47EDC289FE4452BE4E4D7B07745C1D5A901E7EF0521465DFFC1EECAB7E4F15172A90257AFFCA11B455ADD24067B20C20EDF9B5B59BDFDAE03BF0AB39A13E60515CA8ADE3273BBCA8290D3B581F92B61F1A893ABFF16255A9226638159640F7869B5C30C8FFF3C3378B14E1A5529C8DE120A9E2099388E1217BDDFCC1708F37E74BDE5D0A2DCFDC4DD27BA697C3F8238182DA7C5D02431E086067358CC9A9B4EFF7C8D7FC9F0C8C0528887A194A6D0613AEE1EEDDC7A315AC1A178E9377E488F49367573BA8EDF80FD6EDE2D256F0614AF81B8FB1B243EA7F04CA6BE0E0BE9F43525D3B6718DAA5E2FD3D20BE3F37ED402DAFD7F19C39E51A40868D3F79D45CD422A9F7454DB3FEFF205BE4C10234914FD8882B344DBFB5C2BE5B576EA94EB62C3AFCD012EE7F82F0744BE067736E9A78EF38E6F06474E025776F138AF84E4093AB36683A60D0DB5CB9F75CA7C4303059E0DDCE3A641A3278F5015FD42EAA79B72E5F0D2EFDAADE3B76B23DD4C2A39F359B3CA00F7584B729800B3E01DC3D4CD4B3A271BD2F | 192 | 20180920185506 2 6 100 4095 2 FC69089A469473B9CF3F3CCD21123CCF3563811632E7FB6CDF9CDF7726AFA4691881289B3952D2347D7BA520E95016066B02888C7EA1E633B998E00EFE78E454EAF64D6462437E9DDB4A239DE998EC0756E7ED17B7A3499CCF2E3F33A54FD223BB6C485AECA2475E2C002C303F6A55530F2F83A98059699C59A43238468FC85CD137A1FC9B9674ED5D746B44848339A9CA772E802BCE56FED99E8B110C8CA365DFB9BFDD47CB2A33CA92469B3BCC6758B73A7A5685F3FB74B6D785ACFA15E462CA9E70453CD1E9D48D146F0951E4E10773A4FBC9C8E2948D2A091525F964FDE6B60BC3C7A175FF88D20A3758B2D6C35F253AF00B95697F32446EAAA00C7B8A3C4B9DC47EDF44BC4C35052CF7304ADE74A0A9C70575FA935961B07B908D9E58454662B0ED6D8148B79FC45B1F5EDD602B13C7285A75B901183C87CF0F6C060E40D48D9910BDB86C2A253C9894CCE7034DEB7707EF5256DE8E98570375845ADABAAF81893FF6D9E61E45FE9906E61CD2FB86F4A1ABC0D51527B56D3329192EBDFA78149C4652EA23463D6FEFC6F79F22154631CEB04692FB67B815FF791576AB9BA71B0A51009D4B2ECF0ED280745831B4B6B49D951479E5E6831F19CE717025AE212A3057D21832E86C847970CF0CEA82D19BC3D211A23EE2CB6B60ED499F1910A4AEC72FEE2BCA10E8BA9AC47ED2D953E1429B056CCEAD0ED2715D2A2FAEF903 |
193 | 20180404155315 2 6 100 4095 5 C287DA1692C8760D889CABEA6A7055FADB13C9F064C87322D569B9C574001DEBA1685DA8DFFB9A11253F685A3045E2CEBA057C35DD417F717110949007702B25A37AEE60C3A1A9AA6A1667C15BBFFFF173DF27813A74959756822AB34A2BB97B2F408CC6A994ADC83F05CB8028784B859A25032D691F1DDFB1A87F47EDC289FE4452BE4E4D7B07745C1D5A901E7EF0521465DFFC1EECAB7E4F15172A90257AFFCA11B455ADD24067B20C20EDF9B5B59BDFDAE03BF0AB39A13E60515CA8ADE3273BBCA8290D3B581F92B61F1A893ABFF16255A9226638159640F7869B5C30C8FFF3C3378B14E1A5529C8DE120A9E2099388E1217BDDFCC1708F37E74BDE5D0A2DCFDC4DD27BA697C3F8238182DA7C5D02431E086067358CC9A9B4EFF7C8D7FC9F0C8C0528887A194A6D0613AEE1EEDDC7A315AC1A178E9377E488F49367573BA8EDF80FD6EDE2D256F0614AF81B8FB1B243EA7F04CA6BE0E0BE9F43525D3B6718DAA5E2FD3D20BE3F37ED402DAFD7F19C39E51A40868D3F79D45CD422A9F7454DB3FEFF205BE4C10234914FD8882B344DBFB5C2BE5B576EA94EB62C3AFCD012EE7F82F0744BE067736E9A78EF38E6F06474E025776F138AF84E4093AB36683A60D0DB5CB9F75CA7C4303059E0DDCE3A641A3278F5015FD42EAA79B72E5F0D2EFDAADE3B76B23DD4C2A39F359B3CA00F7584B729800B3E01DC3D4CD4B3A2B7E4DF | 193 | 20180920190842 2 6 100 4095 2 FC69089A469473B9CF3F3CCD21123CCF3563811632E7FB6CDF9CDF7726AFA4691881289B3952D2347D7BA520E95016066B02888C7EA1E633B998E00EFE78E454EAF64D6462437E9DDB4A239DE998EC0756E7ED17B7A3499CCF2E3F33A54FD223BB6C485AECA2475E2C002C303F6A55530F2F83A98059699C59A43238468FC85CD137A1FC9B9674ED5D746B44848339A9CA772E802BCE56FED99E8B110C8CA365DFB9BFDD47CB2A33CA92469B3BCC6758B73A7A5685F3FB74B6D785ACFA15E462CA9E70453CD1E9D48D146F0951E4E10773A4FBC9C8E2948D2A091525F964FDE6B60BC3C7A175FF88D20A3758B2D6C35F253AF00B95697F32446EAAA00C7B8A3C4B9DC47EDF44BC4C35052CF7304ADE74A0A9C70575FA935961B07B908D9E58454662B0ED6D8148B79FC45B1F5EDD602B13C7285A75B901183C87CF0F6C060E40D48D9910BDB86C2A253C9894CCE7034DEB7707EF5256DE8E98570375845ADABAAF81893FF6D9E61E45FE9906E61CD2FB86F4A1ABC0D51527B56D3329192EBDFA78149C4652EA23463D6FEFC6F79F22154631CEB04692FB67B815FF791576AB9BA71B0A51009D4B2ECF0ED280745831B4B6B49D951479E5E6831F19CE717025AE212A3057D21832E86C847970CF0CEA82D19BC3D211A23EE2CB6B60ED499F1910A4AEC72FEE2BCA10E8BA9AC47ED2D953E1429B056CCEAD0ED2715D2A30A680FB |
194 | 20180404164237 2 6 100 4095 2 C287DA1692C8760D889CABEA6A7055FADB13C9F064C87322D569B9C574001DEBA1685DA8DFFB9A11253F685A3045E2CEBA057C35DD417F717110949007702B25A37AEE60C3A1A9AA6A1667C15BBFFFF173DF27813A74959756822AB34A2BB97B2F408CC6A994ADC83F05CB8028784B859A25032D691F1DDFB1A87F47EDC289FE4452BE4E4D7B07745C1D5A901E7EF0521465DFFC1EECAB7E4F15172A90257AFFCA11B455ADD24067B20C20EDF9B5B59BDFDAE03BF0AB39A13E60515CA8ADE3273BBCA8290D3B581F92B61F1A893ABFF16255A9226638159640F7869B5C30C8FFF3C3378B14E1A5529C8DE120A9E2099388E1217BDDFCC1708F37E74BDE5D0A2DCFDC4DD27BA697C3F8238182DA7C5D02431E086067358CC9A9B4EFF7C8D7FC9F0C8C0528887A194A6D0613AEE1EEDDC7A315AC1A178E9377E488F49367573BA8EDF80FD6EDE2D256F0614AF81B8FB1B243EA7F04CA6BE0E0BE9F43525D3B6718DAA5E2FD3D20BE3F37ED402DAFD7F19C39E51A40868D3F79D45CD422A9F7454DB3FEFF205BE4C10234914FD8882B344DBFB5C2BE5B576EA94EB62C3AFCD012EE7F82F0744BE067736E9A78EF38E6F06474E025776F138AF84E4093AB36683A60D0DB5CB9F75CA7C4303059E0DDCE3A641A3278F5015FD42EAA79B72E5F0D2EFDAADE3B76B23DD4C2A39F359B3CA00F7584B729800B3E01DC3D4CD4B3A451FC23 | 194 | 20180920193433 2 6 100 4095 2 FC69089A469473B9CF3F3CCD21123CCF3563811632E7FB6CDF9CDF7726AFA4691881289B3952D2347D7BA520E95016066B02888C7EA1E633B998E00EFE78E454EAF64D6462437E9DDB4A239DE998EC0756E7ED17B7A3499CCF2E3F33A54FD223BB6C485AECA2475E2C002C303F6A55530F2F83A98059699C59A43238468FC85CD137A1FC9B9674ED5D746B44848339A9CA772E802BCE56FED99E8B110C8CA365DFB9BFDD47CB2A33CA92469B3BCC6758B73A7A5685F3FB74B6D785ACFA15E462CA9E70453CD1E9D48D146F0951E4E10773A4FBC9C8E2948D2A091525F964FDE6B60BC3C7A175FF88D20A3758B2D6C35F253AF00B95697F32446EAAA00C7B8A3C4B9DC47EDF44BC4C35052CF7304ADE74A0A9C70575FA935961B07B908D9E58454662B0ED6D8148B79FC45B1F5EDD602B13C7285A75B901183C87CF0F6C060E40D48D9910BDB86C2A253C9894CCE7034DEB7707EF5256DE8E98570375845ADABAAF81893FF6D9E61E45FE9906E61CD2FB86F4A1ABC0D51527B56D3329192EBDFA78149C4652EA23463D6FEFC6F79F22154631CEB04692FB67B815FF791576AB9BA71B0A51009D4B2ECF0ED280745831B4B6B49D951479E5E6831F19CE717025AE212A3057D21832E86C847970CF0CEA82D19BC3D211A23EE2CB6B60ED499F1910A4AEC72FEE2BCA10E8BA9AC47ED2D953E1429B056CCEAD0ED2715D2A328D6FAB |
195 | 20180404165126 2 6 100 4095 5 C287DA1692C8760D889CABEA6A7055FADB13C9F064C87322D569B9C574001DEBA1685DA8DFFB9A11253F685A3045E2CEBA057C35DD417F717110949007702B25A37AEE60C3A1A9AA6A1667C15BBFFFF173DF27813A74959756822AB34A2BB97B2F408CC6A994ADC83F05CB8028784B859A25032D691F1DDFB1A87F47EDC289FE4452BE4E4D7B07745C1D5A901E7EF0521465DFFC1EECAB7E4F15172A90257AFFCA11B455ADD24067B20C20EDF9B5B59BDFDAE03BF0AB39A13E60515CA8ADE3273BBCA8290D3B581F92B61F1A893ABFF16255A9226638159640F7869B5C30C8FFF3C3378B14E1A5529C8DE120A9E2099388E1217BDDFCC1708F37E74BDE5D0A2DCFDC4DD27BA697C3F8238182DA7C5D02431E086067358CC9A9B4EFF7C8D7FC9F0C8C0528887A194A6D0613AEE1EEDDC7A315AC1A178E9377E488F49367573BA8EDF80FD6EDE2D256F0614AF81B8FB1B243EA7F04CA6BE0E0BE9F43525D3B6718DAA5E2FD3D20BE3F37ED402DAFD7F19C39E51A40868D3F79D45CD422A9F7454DB3FEFF205BE4C10234914FD8882B344DBFB5C2BE5B576EA94EB62C3AFCD012EE7F82F0744BE067736E9A78EF38E6F06474E025776F138AF84E4093AB36683A60D0DB5CB9F75CA7C4303059E0DDCE3A641A3278F5015FD42EAA79B72E5F0D2EFDAADE3B76B23DD4C2A39F359B3CA00F7584B729800B3E01DC3D4CD4B3A494B437 | 195 | 20180920193735 2 6 100 4095 5 FC69089A469473B9CF3F3CCD21123CCF3563811632E7FB6CDF9CDF7726AFA4691881289B3952D2347D7BA520E95016066B02888C7EA1E633B998E00EFE78E454EAF64D6462437E9DDB4A239DE998EC0756E7ED17B7A3499CCF2E3F33A54FD223BB6C485AECA2475E2C002C303F6A55530F2F83A98059699C59A43238468FC85CD137A1FC9B9674ED5D746B44848339A9CA772E802BCE56FED99E8B110C8CA365DFB9BFDD47CB2A33CA92469B3BCC6758B73A7A5685F3FB74B6D785ACFA15E462CA9E70453CD1E9D48D146F0951E4E10773A4FBC9C8E2948D2A091525F964FDE6B60BC3C7A175FF88D20A3758B2D6C35F253AF00B95697F32446EAAA00C7B8A3C4B9DC47EDF44BC4C35052CF7304ADE74A0A9C70575FA935961B07B908D9E58454662B0ED6D8148B79FC45B1F5EDD602B13C7285A75B901183C87CF0F6C060E40D48D9910BDB86C2A253C9894CCE7034DEB7707EF5256DE8E98570375845ADABAAF81893FF6D9E61E45FE9906E61CD2FB86F4A1ABC0D51527B56D3329192EBDFA78149C4652EA23463D6FEFC6F79F22154631CEB04692FB67B815FF791576AB9BA71B0A51009D4B2ECF0ED280745831B4B6B49D951479E5E6831F19CE717025AE212A3057D21832E86C847970CF0CEA82D19BC3D211A23EE2CB6B60ED499F1910A4AEC72FEE2BCA10E8BA9AC47ED2D953E1429B056CCEAD0ED2715D2A32BD423F |
196 | 20180404172833 2 6 100 4095 2 C287DA1692C8760D889CABEA6A7055FADB13C9F064C87322D569B9C574001DEBA1685DA8DFFB9A11253F685A3045E2CEBA057C35DD417F717110949007702B25A37AEE60C3A1A9AA6A1667C15BBFFFF173DF27813A74959756822AB34A2BB97B2F408CC6A994ADC83F05CB8028784B859A25032D691F1DDFB1A87F47EDC289FE4452BE4E4D7B07745C1D5A901E7EF0521465DFFC1EECAB7E4F15172A90257AFFCA11B455ADD24067B20C20EDF9B5B59BDFDAE03BF0AB39A13E60515CA8ADE3273BBCA8290D3B581F92B61F1A893ABFF16255A9226638159640F7869B5C30C8FFF3C3378B14E1A5529C8DE120A9E2099388E1217BDDFCC1708F37E74BDE5D0A2DCFDC4DD27BA697C3F8238182DA7C5D02431E086067358CC9A9B4EFF7C8D7FC9F0C8C0528887A194A6D0613AEE1EEDDC7A315AC1A178E9377E488F49367573BA8EDF80FD6EDE2D256F0614AF81B8FB1B243EA7F04CA6BE0E0BE9F43525D3B6718DAA5E2FD3D20BE3F37ED402DAFD7F19C39E51A40868D3F79D45CD422A9F7454DB3FEFF205BE4C10234914FD8882B344DBFB5C2BE5B576EA94EB62C3AFCD012EE7F82F0744BE067736E9A78EF38E6F06474E025776F138AF84E4093AB36683A60D0DB5CB9F75CA7C4303059E0DDCE3A641A3278F5015FD42EAA79B72E5F0D2EFDAADE3B76B23DD4C2A39F359B3CA00F7584B729800B3E01DC3D4CD4B3A5C78E83 | 196 | 20180920194925 2 6 100 4095 2 FC69089A469473B9CF3F3CCD21123CCF3563811632E7FB6CDF9CDF7726AFA4691881289B3952D2347D7BA520E95016066B02888C7EA1E633B998E00EFE78E454EAF64D6462437E9DDB4A239DE998EC0756E7ED17B7A3499CCF2E3F33A54FD223BB6C485AECA2475E2C002C303F6A55530F2F83A98059699C59A43238468FC85CD137A1FC9B9674ED5D746B44848339A9CA772E802BCE56FED99E8B110C8CA365DFB9BFDD47CB2A33CA92469B3BCC6758B73A7A5685F3FB74B6D785ACFA15E462CA9E70453CD1E9D48D146F0951E4E10773A4FBC9C8E2948D2A091525F964FDE6B60BC3C7A175FF88D20A3758B2D6C35F253AF00B95697F32446EAAA00C7B8A3C4B9DC47EDF44BC4C35052CF7304ADE74A0A9C70575FA935961B07B908D9E58454662B0ED6D8148B79FC45B1F5EDD602B13C7285A75B901183C87CF0F6C060E40D48D9910BDB86C2A253C9894CCE7034DEB7707EF5256DE8E98570375845ADABAAF81893FF6D9E61E45FE9906E61CD2FB86F4A1ABC0D51527B56D3329192EBDFA78149C4652EA23463D6FEFC6F79F22154631CEB04692FB67B815FF791576AB9BA71B0A51009D4B2ECF0ED280745831B4B6B49D951479E5E6831F19CE717025AE212A3057D21832E86C847970CF0CEA82D19BC3D211A23EE2CB6B60ED499F1910A4AEC72FEE2BCA10E8BA9AC47ED2D953E1429B056CCEAD0ED2715D2A339269AB |
197 | 20180404175448 2 6 100 4095 2 C287DA1692C8760D889CABEA6A7055FADB13C9F064C87322D569B9C574001DEBA1685DA8DFFB9A11253F685A3045E2CEBA057C35DD417F717110949007702B25A37AEE60C3A1A9AA6A1667C15BBFFFF173DF27813A74959756822AB34A2BB97B2F408CC6A994ADC83F05CB8028784B859A25032D691F1DDFB1A87F47EDC289FE4452BE4E4D7B07745C1D5A901E7EF0521465DFFC1EECAB7E4F15172A90257AFFCA11B455ADD24067B20C20EDF9B5B59BDFDAE03BF0AB39A13E60515CA8ADE3273BBCA8290D3B581F92B61F1A893ABFF16255A9226638159640F7869B5C30C8FFF3C3378B14E1A5529C8DE120A9E2099388E1217BDDFCC1708F37E74BDE5D0A2DCFDC4DD27BA697C3F8238182DA7C5D02431E086067358CC9A9B4EFF7C8D7FC9F0C8C0528887A194A6D0613AEE1EEDDC7A315AC1A178E9377E488F49367573BA8EDF80FD6EDE2D256F0614AF81B8FB1B243EA7F04CA6BE0E0BE9F43525D3B6718DAA5E2FD3D20BE3F37ED402DAFD7F19C39E51A40868D3F79D45CD422A9F7454DB3FEFF205BE4C10234914FD8882B344DBFB5C2BE5B576EA94EB62C3AFCD012EE7F82F0744BE067736E9A78EF38E6F06474E025776F138AF84E4093AB36683A60D0DB5CB9F75CA7C4303059E0DDCE3A641A3278F5015FD42EAA79B72E5F0D2EFDAADE3B76B23DD4C2A39F359B3CA00F7584B729800B3E01DC3D4CD4B3A6A037D3 | 197 | 20180920200058 2 6 100 4095 2 FC69089A469473B9CF3F3CCD21123CCF3563811632E7FB6CDF9CDF7726AFA4691881289B3952D2347D7BA520E95016066B02888C7EA1E633B998E00EFE78E454EAF64D6462437E9DDB4A239DE998EC0756E7ED17B7A3499CCF2E3F33A54FD223BB6C485AECA2475E2C002C303F6A55530F2F83A98059699C59A43238468FC85CD137A1FC9B9674ED5D746B44848339A9CA772E802BCE56FED99E8B110C8CA365DFB9BFDD47CB2A33CA92469B3BCC6758B73A7A5685F3FB74B6D785ACFA15E462CA9E70453CD1E9D48D146F0951E4E10773A4FBC9C8E2948D2A091525F964FDE6B60BC3C7A175FF88D20A3758B2D6C35F253AF00B95697F32446EAAA00C7B8A3C4B9DC47EDF44BC4C35052CF7304ADE74A0A9C70575FA935961B07B908D9E58454662B0ED6D8148B79FC45B1F5EDD602B13C7285A75B901183C87CF0F6C060E40D48D9910BDB86C2A253C9894CCE7034DEB7707EF5256DE8E98570375845ADABAAF81893FF6D9E61E45FE9906E61CD2FB86F4A1ABC0D51527B56D3329192EBDFA78149C4652EA23463D6FEFC6F79F22154631CEB04692FB67B815FF791576AB9BA71B0A51009D4B2ECF0ED280745831B4B6B49D951479E5E6831F19CE717025AE212A3057D21832E86C847970CF0CEA82D19BC3D211A23EE2CB6B60ED499F1910A4AEC72FEE2BCA10E8BA9AC47ED2D953E1429B056CCEAD0ED2715D2A34692BDB |
198 | 20180404183147 2 6 100 4095 2 C287DA1692C8760D889CABEA6A7055FADB13C9F064C87322D569B9C574001DEBA1685DA8DFFB9A11253F685A3045E2CEBA057C35DD417F717110949007702B25A37AEE60C3A1A9AA6A1667C15BBFFFF173DF27813A74959756822AB34A2BB97B2F408CC6A994ADC83F05CB8028784B859A25032D691F1DDFB1A87F47EDC289FE4452BE4E4D7B07745C1D5A901E7EF0521465DFFC1EECAB7E4F15172A90257AFFCA11B455ADD24067B20C20EDF9B5B59BDFDAE03BF0AB39A13E60515CA8ADE3273BBCA8290D3B581F92B61F1A893ABFF16255A9226638159640F7869B5C30C8FFF3C3378B14E1A5529C8DE120A9E2099388E1217BDDFCC1708F37E74BDE5D0A2DCFDC4DD27BA697C3F8238182DA7C5D02431E086067358CC9A9B4EFF7C8D7FC9F0C8C0528887A194A6D0613AEE1EEDDC7A315AC1A178E9377E488F49367573BA8EDF80FD6EDE2D256F0614AF81B8FB1B243EA7F04CA6BE0E0BE9F43525D3B6718DAA5E2FD3D20BE3F37ED402DAFD7F19C39E51A40868D3F79D45CD422A9F7454DB3FEFF205BE4C10234914FD8882B344DBFB5C2BE5B576EA94EB62C3AFCD012EE7F82F0744BE067736E9A78EF38E6F06474E025776F138AF84E4093AB36683A60D0DB5CB9F75CA7C4303059E0DDCE3A641A3278F5015FD42EAA79B72E5F0D2EFDAADE3B76B23DD4C2A39F359B3CA00F7584B729800B3E01DC3D4CD4B3A7D443E3 | 198 | 20180920200225 2 6 100 4095 5 FC69089A469473B9CF3F3CCD21123CCF3563811632E7FB6CDF9CDF7726AFA4691881289B3952D2347D7BA520E95016066B02888C7EA1E633B998E00EFE78E454EAF64D6462437E9DDB4A239DE998EC0756E7ED17B7A3499CCF2E3F33A54FD223BB6C485AECA2475E2C002C303F6A55530F2F83A98059699C59A43238468FC85CD137A1FC9B9674ED5D746B44848339A9CA772E802BCE56FED99E8B110C8CA365DFB9BFDD47CB2A33CA92469B3BCC6758B73A7A5685F3FB74B6D785ACFA15E462CA9E70453CD1E9D48D146F0951E4E10773A4FBC9C8E2948D2A091525F964FDE6B60BC3C7A175FF88D20A3758B2D6C35F253AF00B95697F32446EAAA00C7B8A3C4B9DC47EDF44BC4C35052CF7304ADE74A0A9C70575FA935961B07B908D9E58454662B0ED6D8148B79FC45B1F5EDD602B13C7285A75B901183C87CF0F6C060E40D48D9910BDB86C2A253C9894CCE7034DEB7707EF5256DE8E98570375845ADABAAF81893FF6D9E61E45FE9906E61CD2FB86F4A1ABC0D51527B56D3329192EBDFA78149C4652EA23463D6FEFC6F79F22154631CEB04692FB67B815FF791576AB9BA71B0A51009D4B2ECF0ED280745831B4B6B49D951479E5E6831F19CE717025AE212A3057D21832E86C847970CF0CEA82D19BC3D211A23EE2CB6B60ED499F1910A4AEC72FEE2BCA10E8BA9AC47ED2D953E1429B056CCEAD0ED2715D2A347B8EFF |
199 | 20180404183316 2 6 100 4095 2 C287DA1692C8760D889CABEA6A7055FADB13C9F064C87322D569B9C574001DEBA1685DA8DFFB9A11253F685A3045E2CEBA057C35DD417F717110949007702B25A37AEE60C3A1A9AA6A1667C15BBFFFF173DF27813A74959756822AB34A2BB97B2F408CC6A994ADC83F05CB8028784B859A25032D691F1DDFB1A87F47EDC289FE4452BE4E4D7B07745C1D5A901E7EF0521465DFFC1EECAB7E4F15172A90257AFFCA11B455ADD24067B20C20EDF9B5B59BDFDAE03BF0AB39A13E60515CA8ADE3273BBCA8290D3B581F92B61F1A893ABFF16255A9226638159640F7869B5C30C8FFF3C3378B14E1A5529C8DE120A9E2099388E1217BDDFCC1708F37E74BDE5D0A2DCFDC4DD27BA697C3F8238182DA7C5D02431E086067358CC9A9B4EFF7C8D7FC9F0C8C0528887A194A6D0613AEE1EEDDC7A315AC1A178E9377E488F49367573BA8EDF80FD6EDE2D256F0614AF81B8FB1B243EA7F04CA6BE0E0BE9F43525D3B6718DAA5E2FD3D20BE3F37ED402DAFD7F19C39E51A40868D3F79D45CD422A9F7454DB3FEFF205BE4C10234914FD8882B344DBFB5C2BE5B576EA94EB62C3AFCD012EE7F82F0744BE067736E9A78EF38E6F06474E025776F138AF84E4093AB36683A60D0DB5CB9F75CA7C4303059E0DDCE3A641A3278F5015FD42EAA79B72E5F0D2EFDAADE3B76B23DD4C2A39F359B3CA00F7584B729800B3E01DC3D4CD4B3A7D883F3 | 199 | 20180920200812 2 6 100 4095 2 FC69089A469473B9CF3F3CCD21123CCF3563811632E7FB6CDF9CDF7726AFA4691881289B3952D2347D7BA520E95016066B02888C7EA1E633B998E00EFE78E454EAF64D6462437E9DDB4A239DE998EC0756E7ED17B7A3499CCF2E3F33A54FD223BB6C485AECA2475E2C002C303F6A55530F2F83A98059699C59A43238468FC85CD137A1FC9B9674ED5D746B44848339A9CA772E802BCE56FED99E8B110C8CA365DFB9BFDD47CB2A33CA92469B3BCC6758B73A7A5685F3FB74B6D785ACFA15E462CA9E70453CD1E9D48D146F0951E4E10773A4FBC9C8E2948D2A091525F964FDE6B60BC3C7A175FF88D20A3758B2D6C35F253AF00B95697F32446EAAA00C7B8A3C4B9DC47EDF44BC4C35052CF7304ADE74A0A9C70575FA935961B07B908D9E58454662B0ED6D8148B79FC45B1F5EDD602B13C7285A75B901183C87CF0F6C060E40D48D9910BDB86C2A253C9894CCE7034DEB7707EF5256DE8E98570375845ADABAAF81893FF6D9E61E45FE9906E61CD2FB86F4A1ABC0D51527B56D3329192EBDFA78149C4652EA23463D6FEFC6F79F22154631CEB04692FB67B815FF791576AB9BA71B0A51009D4B2ECF0ED280745831B4B6B49D951479E5E6831F19CE717025AE212A3057D21832E86C847970CF0CEA82D19BC3D211A23EE2CB6B60ED499F1910A4AEC72FEE2BCA10E8BA9AC47ED2D953E1429B056CCEAD0ED2715D2A34DFF2BB |
200 | 20180404190024 2 6 100 4095 5 C287DA1692C8760D889CABEA6A7055FADB13C9F064C87322D569B9C574001DEBA1685DA8DFFB9A11253F685A3045E2CEBA057C35DD417F717110949007702B25A37AEE60C3A1A9AA6A1667C15BBFFFF173DF27813A74959756822AB34A2BB97B2F408CC6A994ADC83F05CB8028784B859A25032D691F1DDFB1A87F47EDC289FE4452BE4E4D7B07745C1D5A901E7EF0521465DFFC1EECAB7E4F15172A90257AFFCA11B455ADD24067B20C20EDF9B5B59BDFDAE03BF0AB39A13E60515CA8ADE3273BBCA8290D3B581F92B61F1A893ABFF16255A9226638159640F7869B5C30C8FFF3C3378B14E1A5529C8DE120A9E2099388E1217BDDFCC1708F37E74BDE5D0A2DCFDC4DD27BA697C3F8238182DA7C5D02431E086067358CC9A9B4EFF7C8D7FC9F0C8C0528887A194A6D0613AEE1EEDDC7A315AC1A178E9377E488F49367573BA8EDF80FD6EDE2D256F0614AF81B8FB1B243EA7F04CA6BE0E0BE9F43525D3B6718DAA5E2FD3D20BE3F37ED402DAFD7F19C39E51A40868D3F79D45CD422A9F7454DB3FEFF205BE4C10234914FD8882B344DBFB5C2BE5B576EA94EB62C3AFCD012EE7F82F0744BE067736E9A78EF38E6F06474E025776F138AF84E4093AB36683A60D0DB5CB9F75CA7C4303059E0DDCE3A641A3278F5015FD42EAA79B72E5F0D2EFDAADE3B76B23DD4C2A39F359B3CA00F7584B729800B3E01DC3D4CD4B3A8B7BF5F | 200 | 20180920202050 2 6 100 4095 5 FC69089A469473B9CF3F3CCD21123CCF3563811632E7FB6CDF9CDF7726AFA4691881289B3952D2347D7BA520E95016066B02888C7EA1E633B998E00EFE78E454EAF64D6462437E9DDB4A239DE998EC0756E7ED17B7A3499CCF2E3F33A54FD223BB6C485AECA2475E2C002C303F6A55530F2F83A98059699C59A43238468FC85CD137A1FC9B9674ED5D746B44848339A9CA772E802BCE56FED99E8B110C8CA365DFB9BFDD47CB2A33CA92469B3BCC6758B73A7A5685F3FB74B6D785ACFA15E462CA9E70453CD1E9D48D146F0951E4E10773A4FBC9C8E2948D2A091525F964FDE6B60BC3C7A175FF88D20A3758B2D6C35F253AF00B95697F32446EAAA00C7B8A3C4B9DC47EDF44BC4C35052CF7304ADE74A0A9C70575FA935961B07B908D9E58454662B0ED6D8148B79FC45B1F5EDD602B13C7285A75B901183C87CF0F6C060E40D48D9910BDB86C2A253C9894CCE7034DEB7707EF5256DE8E98570375845ADABAAF81893FF6D9E61E45FE9906E61CD2FB86F4A1ABC0D51527B56D3329192EBDFA78149C4652EA23463D6FEFC6F79F22154631CEB04692FB67B815FF791576AB9BA71B0A51009D4B2ECF0ED280745831B4B6B49D951479E5E6831F19CE717025AE212A3057D21832E86C847970CF0CEA82D19BC3D211A23EE2CB6B60ED499F1910A4AEC72FEE2BCA10E8BA9AC47ED2D953E1429B056CCEAD0ED2715D2A35C67F5F |
201 | 20180404194132 2 6 100 4095 2 C287DA1692C8760D889CABEA6A7055FADB13C9F064C87322D569B9C574001DEBA1685DA8DFFB9A11253F685A3045E2CEBA057C35DD417F717110949007702B25A37AEE60C3A1A9AA6A1667C15BBFFFF173DF27813A74959756822AB34A2BB97B2F408CC6A994ADC83F05CB8028784B859A25032D691F1DDFB1A87F47EDC289FE4452BE4E4D7B07745C1D5A901E7EF0521465DFFC1EECAB7E4F15172A90257AFFCA11B455ADD24067B20C20EDF9B5B59BDFDAE03BF0AB39A13E60515CA8ADE3273BBCA8290D3B581F92B61F1A893ABFF16255A9226638159640F7869B5C30C8FFF3C3378B14E1A5529C8DE120A9E2099388E1217BDDFCC1708F37E74BDE5D0A2DCFDC4DD27BA697C3F8238182DA7C5D02431E086067358CC9A9B4EFF7C8D7FC9F0C8C0528887A194A6D0613AEE1EEDDC7A315AC1A178E9377E488F49367573BA8EDF80FD6EDE2D256F0614AF81B8FB1B243EA7F04CA6BE0E0BE9F43525D3B6718DAA5E2FD3D20BE3F37ED402DAFD7F19C39E51A40868D3F79D45CD422A9F7454DB3FEFF205BE4C10234914FD8882B344DBFB5C2BE5B576EA94EB62C3AFCD012EE7F82F0744BE067736E9A78EF38E6F06474E025776F138AF84E4093AB36683A60D0DB5CB9F75CA7C4303059E0DDCE3A641A3278F5015FD42EAA79B72E5F0D2EFDAADE3B76B23DD4C2A39F359B3CA00F7584B729800B3E01DC3D4CD4B3AA11DC3B | 201 | 20180920204239 2 6 100 4095 2 FC69089A469473B9CF3F3CCD21123CCF3563811632E7FB6CDF9CDF7726AFA4691881289B3952D2347D7BA520E95016066B02888C7EA1E633B998E00EFE78E454EAF64D6462437E9DDB4A239DE998EC0756E7ED17B7A3499CCF2E3F33A54FD223BB6C485AECA2475E2C002C303F6A55530F2F83A98059699C59A43238468FC85CD137A1FC9B9674ED5D746B44848339A9CA772E802BCE56FED99E8B110C8CA365DFB9BFDD47CB2A33CA92469B3BCC6758B73A7A5685F3FB74B6D785ACFA15E462CA9E70453CD1E9D48D146F0951E4E10773A4FBC9C8E2948D2A091525F964FDE6B60BC3C7A175FF88D20A3758B2D6C35F253AF00B95697F32446EAAA00C7B8A3C4B9DC47EDF44BC4C35052CF7304ADE74A0A9C70575FA935961B07B908D9E58454662B0ED6D8148B79FC45B1F5EDD602B13C7285A75B901183C87CF0F6C060E40D48D9910BDB86C2A253C9894CCE7034DEB7707EF5256DE8E98570375845ADABAAF81893FF6D9E61E45FE9906E61CD2FB86F4A1ABC0D51527B56D3329192EBDFA78149C4652EA23463D6FEFC6F79F22154631CEB04692FB67B815FF791576AB9BA71B0A51009D4B2ECF0ED280745831B4B6B49D951479E5E6831F19CE717025AE212A3057D21832E86C847970CF0CEA82D19BC3D211A23EE2CB6B60ED499F1910A4AEC72FEE2BCA10E8BA9AC47ED2D953E1429B056CCEAD0ED2715D2A3758AE93 |
202 | 20180404195020 2 6 100 4095 2 C287DA1692C8760D889CABEA6A7055FADB13C9F064C87322D569B9C574001DEBA1685DA8DFFB9A11253F685A3045E2CEBA057C35DD417F717110949007702B25A37AEE60C3A1A9AA6A1667C15BBFFFF173DF27813A74959756822AB34A2BB97B2F408CC6A994ADC83F05CB8028784B859A25032D691F1DDFB1A87F47EDC289FE4452BE4E4D7B07745C1D5A901E7EF0521465DFFC1EECAB7E4F15172A90257AFFCA11B455ADD24067B20C20EDF9B5B59BDFDAE03BF0AB39A13E60515CA8ADE3273BBCA8290D3B581F92B61F1A893ABFF16255A9226638159640F7869B5C30C8FFF3C3378B14E1A5529C8DE120A9E2099388E1217BDDFCC1708F37E74BDE5D0A2DCFDC4DD27BA697C3F8238182DA7C5D02431E086067358CC9A9B4EFF7C8D7FC9F0C8C0528887A194A6D0613AEE1EEDDC7A315AC1A178E9377E488F49367573BA8EDF80FD6EDE2D256F0614AF81B8FB1B243EA7F04CA6BE0E0BE9F43525D3B6718DAA5E2FD3D20BE3F37ED402DAFD7F19C39E51A40868D3F79D45CD422A9F7454DB3FEFF205BE4C10234914FD8882B344DBFB5C2BE5B576EA94EB62C3AFCD012EE7F82F0744BE067736E9A78EF38E6F06474E025776F138AF84E4093AB36683A60D0DB5CB9F75CA7C4303059E0DDCE3A641A3278F5015FD42EAA79B72E5F0D2EFDAADE3B76B23DD4C2A39F359B3CA00F7584B729800B3E01DC3D4CD4B3AA5664E3 | 202 | 20180920204648 2 6 100 4095 2 FC69089A469473B9CF3F3CCD21123CCF3563811632E7FB6CDF9CDF7726AFA4691881289B3952D2347D7BA520E95016066B02888C7EA1E633B998E00EFE78E454EAF64D6462437E9DDB4A239DE998EC0756E7ED17B7A3499CCF2E3F33A54FD223BB6C485AECA2475E2C002C303F6A55530F2F83A98059699C59A43238468FC85CD137A1FC9B9674ED5D746B44848339A9CA772E802BCE56FED99E8B110C8CA365DFB9BFDD47CB2A33CA92469B3BCC6758B73A7A5685F3FB74B6D785ACFA15E462CA9E70453CD1E9D48D146F0951E4E10773A4FBC9C8E2948D2A091525F964FDE6B60BC3C7A175FF88D20A3758B2D6C35F253AF00B95697F32446EAAA00C7B8A3C4B9DC47EDF44BC4C35052CF7304ADE74A0A9C70575FA935961B07B908D9E58454662B0ED6D8148B79FC45B1F5EDD602B13C7285A75B901183C87CF0F6C060E40D48D9910BDB86C2A253C9894CCE7034DEB7707EF5256DE8E98570375845ADABAAF81893FF6D9E61E45FE9906E61CD2FB86F4A1ABC0D51527B56D3329192EBDFA78149C4652EA23463D6FEFC6F79F22154631CEB04692FB67B815FF791576AB9BA71B0A51009D4B2ECF0ED280745831B4B6B49D951479E5E6831F19CE717025AE212A3057D21832E86C847970CF0CEA82D19BC3D211A23EE2CB6B60ED499F1910A4AEC72FEE2BCA10E8BA9AC47ED2D953E1429B056CCEAD0ED2715D2A379DD5F3 |
203 | 20180404195123 2 6 100 4095 2 C287DA1692C8760D889CABEA6A7055FADB13C9F064C87322D569B9C574001DEBA1685DA8DFFB9A11253F685A3045E2CEBA057C35DD417F717110949007702B25A37AEE60C3A1A9AA6A1667C15BBFFFF173DF27813A74959756822AB34A2BB97B2F408CC6A994ADC83F05CB8028784B859A25032D691F1DDFB1A87F47EDC289FE4452BE4E4D7B07745C1D5A901E7EF0521465DFFC1EECAB7E4F15172A90257AFFCA11B455ADD24067B20C20EDF9B5B59BDFDAE03BF0AB39A13E60515CA8ADE3273BBCA8290D3B581F92B61F1A893ABFF16255A9226638159640F7869B5C30C8FFF3C3378B14E1A5529C8DE120A9E2099388E1217BDDFCC1708F37E74BDE5D0A2DCFDC4DD27BA697C3F8238182DA7C5D02431E086067358CC9A9B4EFF7C8D7FC9F0C8C0528887A194A6D0613AEE1EEDDC7A315AC1A178E9377E488F49367573BA8EDF80FD6EDE2D256F0614AF81B8FB1B243EA7F04CA6BE0E0BE9F43525D3B6718DAA5E2FD3D20BE3F37ED402DAFD7F19C39E51A40868D3F79D45CD422A9F7454DB3FEFF205BE4C10234914FD8882B344DBFB5C2BE5B576EA94EB62C3AFCD012EE7F82F0744BE067736E9A78EF38E6F06474E025776F138AF84E4093AB36683A60D0DB5CB9F75CA7C4303059E0DDCE3A641A3278F5015FD42EAA79B72E5F0D2EFDAADE3B76B23DD4C2A39F359B3CA00F7584B729800B3E01DC3D4CD4B3AA56EAF3 | 203 | 20180920212404 2 6 100 4095 2 CB00EACDC1EDB3E4111DB89DA6722A2D66156FC2F5B602DCE0510B47F36F6E94615D96D222BD22037AD407B782A888F534CE84C04E6B78FDF3F24C869960888D33F8396A58F34238B7E2F2BF3CE48263BE78474C422A073FCCF02C47218509E5A989208456CC7ECCB7004957802A413AA0AB3E51C29FB53A99886977A86B4C47A56C2F312D3BA2B2CC4D5CE637B13A77369D5D5CF478E9D38389969F5CF041863F1D5714F11BC66C0FEF500A6B3FEB18BDF575E9E0F066E0A42DEC284B5A23D1C31C628F672D94363CBCCEA7C81636D51D81337E7556B726B35185139FA7568978E684E511DB467D92F0B56B43ADF802E7ADC15107723068B06E024DD25340B228AE9674BC3FC58D6BD55FE67F01B197847B6F4FE8F2DF6BC8C72292067C6BEA73C1D8176926BDBB7A620C36CEC57230A89C9799416E68ECEB323425728DE2830C64979DDEC6355F2BB391FBDC705A5C1537EB03D2372650409D7084D6FF1B3913F9796109B40CAD99DC8B4EED4379A67E96FD1192BC87A5C60A410BB6996D1E0DA0D7E43CE2632B14714E6A25569B9F42D51F22C067F12E6E030DF1205FC91429E93214891F026089748772A64DD21C2F13EC3BEBC313187FB8936613D8E4A93F8569FFC6C6509D43F3939D4CFA5BF958D6E1E9E148DDD3E332728957413FA6084CDDC1263419C9C712F5DC3177F39F0EE5CB8B5F90EE60EEC4A002C3B843C3 |
204 | 20180404202233 2 6 100 4095 5 C287DA1692C8760D889CABEA6A7055FADB13C9F064C87322D569B9C574001DEBA1685DA8DFFB9A11253F685A3045E2CEBA057C35DD417F717110949007702B25A37AEE60C3A1A9AA6A1667C15BBFFFF173DF27813A74959756822AB34A2BB97B2F408CC6A994ADC83F05CB8028784B859A25032D691F1DDFB1A87F47EDC289FE4452BE4E4D7B07745C1D5A901E7EF0521465DFFC1EECAB7E4F15172A90257AFFCA11B455ADD24067B20C20EDF9B5B59BDFDAE03BF0AB39A13E60515CA8ADE3273BBCA8290D3B581F92B61F1A893ABFF16255A9226638159640F7869B5C30C8FFF3C3378B14E1A5529C8DE120A9E2099388E1217BDDFCC1708F37E74BDE5D0A2DCFDC4DD27BA697C3F8238182DA7C5D02431E086067358CC9A9B4EFF7C8D7FC9F0C8C0528887A194A6D0613AEE1EEDDC7A315AC1A178E9377E488F49367573BA8EDF80FD6EDE2D256F0614AF81B8FB1B243EA7F04CA6BE0E0BE9F43525D3B6718DAA5E2FD3D20BE3F37ED402DAFD7F19C39E51A40868D3F79D45CD422A9F7454DB3FEFF205BE4C10234914FD8882B344DBFB5C2BE5B576EA94EB62C3AFCD012EE7F82F0744BE067736E9A78EF38E6F06474E025776F138AF84E4093AB36683A60D0DB5CB9F75CA7C4303059E0DDCE3A641A3278F5015FD42EAA79B72E5F0D2EFDAADE3B76B23DD4C2A39F359B3CA00F7584B729800B3E01DC3D4CD4B3AB5A9C37 | 204 | 20180920212755 2 6 100 4095 5 CB00EACDC1EDB3E4111DB89DA6722A2D66156FC2F5B602DCE0510B47F36F6E94615D96D222BD22037AD407B782A888F534CE84C04E6B78FDF3F24C869960888D33F8396A58F34238B7E2F2BF3CE48263BE78474C422A073FCCF02C47218509E5A989208456CC7ECCB7004957802A413AA0AB3E51C29FB53A99886977A86B4C47A56C2F312D3BA2B2CC4D5CE637B13A77369D5D5CF478E9D38389969F5CF041863F1D5714F11BC66C0FEF500A6B3FEB18BDF575E9E0F066E0A42DEC284B5A23D1C31C628F672D94363CBCCEA7C81636D51D81337E7556B726B35185139FA7568978E684E511DB467D92F0B56B43ADF802E7ADC15107723068B06E024DD25340B228AE9674BC3FC58D6BD55FE67F01B197847B6F4FE8F2DF6BC8C72292067C6BEA73C1D8176926BDBB7A620C36CEC57230A89C9799416E68ECEB323425728DE2830C64979DDEC6355F2BB391FBDC705A5C1537EB03D2372650409D7084D6FF1B3913F9796109B40CAD99DC8B4EED4379A67E96FD1192BC87A5C60A410BB6996D1E0DA0D7E43CE2632B14714E6A25569B9F42D51F22C067F12E6E030DF1205FC91429E93214891F026089748772A64DD21C2F13EC3BEBC313187FB8936613D8E4A93F8569FFC6C6509D43F3939D4CFA5BF958D6E1E9E148DDD3E332728957413FA6084CDDC1263419C9C712F5DC3177F39F0EE5CB8B5F90EE60EEC4A002C3FC854F |
205 | 20180404202802 2 6 100 4095 2 C287DA1692C8760D889CABEA6A7055FADB13C9F064C87322D569B9C574001DEBA1685DA8DFFB9A11253F685A3045E2CEBA057C35DD417F717110949007702B25A37AEE60C3A1A9AA6A1667C15BBFFFF173DF27813A74959756822AB34A2BB97B2F408CC6A994ADC83F05CB8028784B859A25032D691F1DDFB1A87F47EDC289FE4452BE4E4D7B07745C1D5A901E7EF0521465DFFC1EECAB7E4F15172A90257AFFCA11B455ADD24067B20C20EDF9B5B59BDFDAE03BF0AB39A13E60515CA8ADE3273BBCA8290D3B581F92B61F1A893ABFF16255A9226638159640F7869B5C30C8FFF3C3378B14E1A5529C8DE120A9E2099388E1217BDDFCC1708F37E74BDE5D0A2DCFDC4DD27BA697C3F8238182DA7C5D02431E086067358CC9A9B4EFF7C8D7FC9F0C8C0528887A194A6D0613AEE1EEDDC7A315AC1A178E9377E488F49367573BA8EDF80FD6EDE2D256F0614AF81B8FB1B243EA7F04CA6BE0E0BE9F43525D3B6718DAA5E2FD3D20BE3F37ED402DAFD7F19C39E51A40868D3F79D45CD422A9F7454DB3FEFF205BE4C10234914FD8882B344DBFB5C2BE5B576EA94EB62C3AFCD012EE7F82F0744BE067736E9A78EF38E6F06474E025776F138AF84E4093AB36683A60D0DB5CB9F75CA7C4303059E0DDCE3A641A3278F5015FD42EAA79B72E5F0D2EFDAADE3B76B23DD4C2A39F359B3CA00F7584B729800B3E01DC3D4CD4B3AB8229D3 | 205 | 20180920213937 2 6 100 4095 2 CB00EACDC1EDB3E4111DB89DA6722A2D66156FC2F5B602DCE0510B47F36F6E94615D96D222BD22037AD407B782A888F534CE84C04E6B78FDF3F24C869960888D33F8396A58F34238B7E2F2BF3CE48263BE78474C422A073FCCF02C47218509E5A989208456CC7ECCB7004957802A413AA0AB3E51C29FB53A99886977A86B4C47A56C2F312D3BA2B2CC4D5CE637B13A77369D5D5CF478E9D38389969F5CF041863F1D5714F11BC66C0FEF500A6B3FEB18BDF575E9E0F066E0A42DEC284B5A23D1C31C628F672D94363CBCCEA7C81636D51D81337E7556B726B35185139FA7568978E684E511DB467D92F0B56B43ADF802E7ADC15107723068B06E024DD25340B228AE9674BC3FC58D6BD55FE67F01B197847B6F4FE8F2DF6BC8C72292067C6BEA73C1D8176926BDBB7A620C36CEC57230A89C9799416E68ECEB323425728DE2830C64979DDEC6355F2BB391FBDC705A5C1537EB03D2372650409D7084D6FF1B3913F9796109B40CAD99DC8B4EED4379A67E96FD1192BC87A5C60A410BB6996D1E0DA0D7E43CE2632B14714E6A25569B9F42D51F22C067F12E6E030DF1205FC91429E93214891F026089748772A64DD21C2F13EC3BEBC313187FB8936613D8E4A93F8569FFC6C6509D43F3939D4CFA5BF958D6E1E9E148DDD3E332728957413FA6084CDDC1263419C9C712F5DC3177F39F0EE5CB8B5F90EE60EEC4A002C4D5B923 |
206 | 20180404203244 2 6 100 4095 2 C287DA1692C8760D889CABEA6A7055FADB13C9F064C87322D569B9C574001DEBA1685DA8DFFB9A11253F685A3045E2CEBA057C35DD417F717110949007702B25A37AEE60C3A1A9AA6A1667C15BBFFFF173DF27813A74959756822AB34A2BB97B2F408CC6A994ADC83F05CB8028784B859A25032D691F1DDFB1A87F47EDC289FE4452BE4E4D7B07745C1D5A901E7EF0521465DFFC1EECAB7E4F15172A90257AFFCA11B455ADD24067B20C20EDF9B5B59BDFDAE03BF0AB39A13E60515CA8ADE3273BBCA8290D3B581F92B61F1A893ABFF16255A9226638159640F7869B5C30C8FFF3C3378B14E1A5529C8DE120A9E2099388E1217BDDFCC1708F37E74BDE5D0A2DCFDC4DD27BA697C3F8238182DA7C5D02431E086067358CC9A9B4EFF7C8D7FC9F0C8C0528887A194A6D0613AEE1EEDDC7A315AC1A178E9377E488F49367573BA8EDF80FD6EDE2D256F0614AF81B8FB1B243EA7F04CA6BE0E0BE9F43525D3B6718DAA5E2FD3D20BE3F37ED402DAFD7F19C39E51A40868D3F79D45CD422A9F7454DB3FEFF205BE4C10234914FD8882B344DBFB5C2BE5B576EA94EB62C3AFCD012EE7F82F0744BE067736E9A78EF38E6F06474E025776F138AF84E4093AB36683A60D0DB5CB9F75CA7C4303059E0DDCE3A641A3278F5015FD42EAA79B72E5F0D2EFDAADE3B76B23DD4C2A39F359B3CA00F7584B729800B3E01DC3D4CD4B3ABA0DD8B | 206 | 20180920214830 2 6 100 4095 2 CB00EACDC1EDB3E4111DB89DA6722A2D66156FC2F5B602DCE0510B47F36F6E94615D96D222BD22037AD407B782A888F534CE84C04E6B78FDF3F24C869960888D33F8396A58F34238B7E2F2BF3CE48263BE78474C422A073FCCF02C47218509E5A989208456CC7ECCB7004957802A413AA0AB3E51C29FB53A99886977A86B4C47A56C2F312D3BA2B2CC4D5CE637B13A77369D5D5CF478E9D38389969F5CF041863F1D5714F11BC66C0FEF500A6B3FEB18BDF575E9E0F066E0A42DEC284B5A23D1C31C628F672D94363CBCCEA7C81636D51D81337E7556B726B35185139FA7568978E684E511DB467D92F0B56B43ADF802E7ADC15107723068B06E024DD25340B228AE9674BC3FC58D6BD55FE67F01B197847B6F4FE8F2DF6BC8C72292067C6BEA73C1D8176926BDBB7A620C36CEC57230A89C9799416E68ECEB323425728DE2830C64979DDEC6355F2BB391FBDC705A5C1537EB03D2372650409D7084D6FF1B3913F9796109B40CAD99DC8B4EED4379A67E96FD1192BC87A5C60A410BB6996D1E0DA0D7E43CE2632B14714E6A25569B9F42D51F22C067F12E6E030DF1205FC91429E93214891F026089748772A64DD21C2F13EC3BEBC313187FB8936613D8E4A93F8569FFC6C6509D43F3939D4CFA5BF958D6E1E9E148DDD3E332728957413FA6084CDDC1263419C9C712F5DC3177F39F0EE5CB8B5F90EE60EEC4A002C578D833 |
207 | 20180404203913 2 6 100 4095 5 C287DA1692C8760D889CABEA6A7055FADB13C9F064C87322D569B9C574001DEBA1685DA8DFFB9A11253F685A3045E2CEBA057C35DD417F717110949007702B25A37AEE60C3A1A9AA6A1667C15BBFFFF173DF27813A74959756822AB34A2BB97B2F408CC6A994ADC83F05CB8028784B859A25032D691F1DDFB1A87F47EDC289FE4452BE4E4D7B07745C1D5A901E7EF0521465DFFC1EECAB7E4F15172A90257AFFCA11B455ADD24067B20C20EDF9B5B59BDFDAE03BF0AB39A13E60515CA8ADE3273BBCA8290D3B581F92B61F1A893ABFF16255A9226638159640F7869B5C30C8FFF3C3378B14E1A5529C8DE120A9E2099388E1217BDDFCC1708F37E74BDE5D0A2DCFDC4DD27BA697C3F8238182DA7C5D02431E086067358CC9A9B4EFF7C8D7FC9F0C8C0528887A194A6D0613AEE1EEDDC7A315AC1A178E9377E488F49367573BA8EDF80FD6EDE2D256F0614AF81B8FB1B243EA7F04CA6BE0E0BE9F43525D3B6718DAA5E2FD3D20BE3F37ED402DAFD7F19C39E51A40868D3F79D45CD422A9F7454DB3FEFF205BE4C10234914FD8882B344DBFB5C2BE5B576EA94EB62C3AFCD012EE7F82F0744BE067736E9A78EF38E6F06474E025776F138AF84E4093AB36683A60D0DB5CB9F75CA7C4303059E0DDCE3A641A3278F5015FD42EAA79B72E5F0D2EFDAADE3B76B23DD4C2A39F359B3CA00F7584B729800B3E01DC3D4CD4B3ABCF8F47 | 207 | 20180920215602 2 6 100 4095 5 CB00EACDC1EDB3E4111DB89DA6722A2D66156FC2F5B602DCE0510B47F36F6E94615D96D222BD22037AD407B782A888F534CE84C04E6B78FDF3F24C869960888D33F8396A58F34238B7E2F2BF3CE48263BE78474C422A073FCCF02C47218509E5A989208456CC7ECCB7004957802A413AA0AB3E51C29FB53A99886977A86B4C47A56C2F312D3BA2B2CC4D5CE637B13A77369D5D5CF478E9D38389969F5CF041863F1D5714F11BC66C0FEF500A6B3FEB18BDF575E9E0F066E0A42DEC284B5A23D1C31C628F672D94363CBCCEA7C81636D51D81337E7556B726B35185139FA7568978E684E511DB467D92F0B56B43ADF802E7ADC15107723068B06E024DD25340B228AE9674BC3FC58D6BD55FE67F01B197847B6F4FE8F2DF6BC8C72292067C6BEA73C1D8176926BDBB7A620C36CEC57230A89C9799416E68ECEB323425728DE2830C64979DDEC6355F2BB391FBDC705A5C1537EB03D2372650409D7084D6FF1B3913F9796109B40CAD99DC8B4EED4379A67E96FD1192BC87A5C60A410BB6996D1E0DA0D7E43CE2632B14714E6A25569B9F42D51F22C067F12E6E030DF1205FC91429E93214891F026089748772A64DD21C2F13EC3BEBC313187FB8936613D8E4A93F8569FFC6C6509D43F3939D4CFA5BF958D6E1E9E148DDD3E332728957413FA6084CDDC1263419C9C712F5DC3177F39F0EE5CB8B5F90EE60EEC4A002C60301F7 |
208 | 20180404210704 2 6 100 4095 2 C287DA1692C8760D889CABEA6A7055FADB13C9F064C87322D569B9C574001DEBA1685DA8DFFB9A11253F685A3045E2CEBA057C35DD417F717110949007702B25A37AEE60C3A1A9AA6A1667C15BBFFFF173DF27813A74959756822AB34A2BB97B2F408CC6A994ADC83F05CB8028784B859A25032D691F1DDFB1A87F47EDC289FE4452BE4E4D7B07745C1D5A901E7EF0521465DFFC1EECAB7E4F15172A90257AFFCA11B455ADD24067B20C20EDF9B5B59BDFDAE03BF0AB39A13E60515CA8ADE3273BBCA8290D3B581F92B61F1A893ABFF16255A9226638159640F7869B5C30C8FFF3C3378B14E1A5529C8DE120A9E2099388E1217BDDFCC1708F37E74BDE5D0A2DCFDC4DD27BA697C3F8238182DA7C5D02431E086067358CC9A9B4EFF7C8D7FC9F0C8C0528887A194A6D0613AEE1EEDDC7A315AC1A178E9377E488F49367573BA8EDF80FD6EDE2D256F0614AF81B8FB1B243EA7F04CA6BE0E0BE9F43525D3B6718DAA5E2FD3D20BE3F37ED402DAFD7F19C39E51A40868D3F79D45CD422A9F7454DB3FEFF205BE4C10234914FD8882B344DBFB5C2BE5B576EA94EB62C3AFCD012EE7F82F0744BE067736E9A78EF38E6F06474E025776F138AF84E4093AB36683A60D0DB5CB9F75CA7C4303059E0DDCE3A641A3278F5015FD42EAA79B72E5F0D2EFDAADE3B76B23DD4C2A39F359B3CA00F7584B729800B3E01DC3D4CD4B3ACB6CB0B | 208 | 20180920222334 2 6 100 4095 2 CB00EACDC1EDB3E4111DB89DA6722A2D66156FC2F5B602DCE0510B47F36F6E94615D96D222BD22037AD407B782A888F534CE84C04E6B78FDF3F24C869960888D33F8396A58F34238B7E2F2BF3CE48263BE78474C422A073FCCF02C47218509E5A989208456CC7ECCB7004957802A413AA0AB3E51C29FB53A99886977A86B4C47A56C2F312D3BA2B2CC4D5CE637B13A77369D5D5CF478E9D38389969F5CF041863F1D5714F11BC66C0FEF500A6B3FEB18BDF575E9E0F066E0A42DEC284B5A23D1C31C628F672D94363CBCCEA7C81636D51D81337E7556B726B35185139FA7568978E684E511DB467D92F0B56B43ADF802E7ADC15107723068B06E024DD25340B228AE9674BC3FC58D6BD55FE67F01B197847B6F4FE8F2DF6BC8C72292067C6BEA73C1D8176926BDBB7A620C36CEC57230A89C9799416E68ECEB323425728DE2830C64979DDEC6355F2BB391FBDC705A5C1537EB03D2372650409D7084D6FF1B3913F9796109B40CAD99DC8B4EED4379A67E96FD1192BC87A5C60A410BB6996D1E0DA0D7E43CE2632B14714E6A25569B9F42D51F22C067F12E6E030DF1205FC91429E93214891F026089748772A64DD21C2F13EC3BEBC313187FB8936613D8E4A93F8569FFC6C6509D43F3939D4CFA5BF958D6E1E9E148DDD3E332728957413FA6084CDDC1263419C9C712F5DC3177F39F0EE5CB8B5F90EE60EEC4A002C80CD293 |
209 | 20180404213123 2 6 100 4095 5 C287DA1692C8760D889CABEA6A7055FADB13C9F064C87322D569B9C574001DEBA1685DA8DFFB9A11253F685A3045E2CEBA057C35DD417F717110949007702B25A37AEE60C3A1A9AA6A1667C15BBFFFF173DF27813A74959756822AB34A2BB97B2F408CC6A994ADC83F05CB8028784B859A25032D691F1DDFB1A87F47EDC289FE4452BE4E4D7B07745C1D5A901E7EF0521465DFFC1EECAB7E4F15172A90257AFFCA11B455ADD24067B20C20EDF9B5B59BDFDAE03BF0AB39A13E60515CA8ADE3273BBCA8290D3B581F92B61F1A893ABFF16255A9226638159640F7869B5C30C8FFF3C3378B14E1A5529C8DE120A9E2099388E1217BDDFCC1708F37E74BDE5D0A2DCFDC4DD27BA697C3F8238182DA7C5D02431E086067358CC9A9B4EFF7C8D7FC9F0C8C0528887A194A6D0613AEE1EEDDC7A315AC1A178E9377E488F49367573BA8EDF80FD6EDE2D256F0614AF81B8FB1B243EA7F04CA6BE0E0BE9F43525D3B6718DAA5E2FD3D20BE3F37ED402DAFD7F19C39E51A40868D3F79D45CD422A9F7454DB3FEFF205BE4C10234914FD8882B344DBFB5C2BE5B576EA94EB62C3AFCD012EE7F82F0744BE067736E9A78EF38E6F06474E025776F138AF84E4093AB36683A60D0DB5CB9F75CA7C4303059E0DDCE3A641A3278F5015FD42EAA79B72E5F0D2EFDAADE3B76B23DD4C2A39F359B3CA00F7584B729800B3E01DC3D4CD4B3AD7FE977 | 209 | 20180920223427 2 6 100 4095 2 CB00EACDC1EDB3E4111DB89DA6722A2D66156FC2F5B602DCE0510B47F36F6E94615D96D222BD22037AD407B782A888F534CE84C04E6B78FDF3F24C869960888D33F8396A58F34238B7E2F2BF3CE48263BE78474C422A073FCCF02C47218509E5A989208456CC7ECCB7004957802A413AA0AB3E51C29FB53A99886977A86B4C47A56C2F312D3BA2B2CC4D5CE637B13A77369D5D5CF478E9D38389969F5CF041863F1D5714F11BC66C0FEF500A6B3FEB18BDF575E9E0F066E0A42DEC284B5A23D1C31C628F672D94363CBCCEA7C81636D51D81337E7556B726B35185139FA7568978E684E511DB467D92F0B56B43ADF802E7ADC15107723068B06E024DD25340B228AE9674BC3FC58D6BD55FE67F01B197847B6F4FE8F2DF6BC8C72292067C6BEA73C1D8176926BDBB7A620C36CEC57230A89C9799416E68ECEB323425728DE2830C64979DDEC6355F2BB391FBDC705A5C1537EB03D2372650409D7084D6FF1B3913F9796109B40CAD99DC8B4EED4379A67E96FD1192BC87A5C60A410BB6996D1E0DA0D7E43CE2632B14714E6A25569B9F42D51F22C067F12E6E030DF1205FC91429E93214891F026089748772A64DD21C2F13EC3BEBC313187FB8936613D8E4A93F8569FFC6C6509D43F3939D4CFA5BF958D6E1E9E148DDD3E332728957413FA6084CDDC1263419C9C712F5DC3177F39F0EE5CB8B5F90EE60EEC4A002C8D7E023 |
210 | 20180404223506 2 6 100 4095 2 C287DA1692C8760D889CABEA6A7055FADB13C9F064C87322D569B9C574001DEBA1685DA8DFFB9A11253F685A3045E2CEBA057C35DD417F717110949007702B25A37AEE60C3A1A9AA6A1667C15BBFFFF173DF27813A74959756822AB34A2BB97B2F408CC6A994ADC83F05CB8028784B859A25032D691F1DDFB1A87F47EDC289FE4452BE4E4D7B07745C1D5A901E7EF0521465DFFC1EECAB7E4F15172A90257AFFCA11B455ADD24067B20C20EDF9B5B59BDFDAE03BF0AB39A13E60515CA8ADE3273BBCA8290D3B581F92B61F1A893ABFF16255A9226638159640F7869B5C30C8FFF3C3378B14E1A5529C8DE120A9E2099388E1217BDDFCC1708F37E74BDE5D0A2DCFDC4DD27BA697C3F8238182DA7C5D02431E086067358CC9A9B4EFF7C8D7FC9F0C8C0528887A194A6D0613AEE1EEDDC7A315AC1A178E9377E488F49367573BA8EDF80FD6EDE2D256F0614AF81B8FB1B243EA7F04CA6BE0E0BE9F43525D3B6718DAA5E2FD3D20BE3F37ED402DAFD7F19C39E51A40868D3F79D45CD422A9F7454DB3FEFF205BE4C10234914FD8882B344DBFB5C2BE5B576EA94EB62C3AFCD012EE7F82F0744BE067736E9A78EF38E6F06474E025776F138AF84E4093AB36683A60D0DB5CB9F75CA7C4303059E0DDCE3A641A3278F5015FD42EAA79B72E5F0D2EFDAADE3B76B23DD4C2A39F359B3CA00F7584B729800B3E01DC3D4CD4B3AF9772FB | 210 | 20180920224739 2 6 100 4095 5 CB00EACDC1EDB3E4111DB89DA6722A2D66156FC2F5B602DCE0510B47F36F6E94615D96D222BD22037AD407B782A888F534CE84C04E6B78FDF3F24C869960888D33F8396A58F34238B7E2F2BF3CE48263BE78474C422A073FCCF02C47218509E5A989208456CC7ECCB7004957802A413AA0AB3E51C29FB53A99886977A86B4C47A56C2F312D3BA2B2CC4D5CE637B13A77369D5D5CF478E9D38389969F5CF041863F1D5714F11BC66C0FEF500A6B3FEB18BDF575E9E0F066E0A42DEC284B5A23D1C31C628F672D94363CBCCEA7C81636D51D81337E7556B726B35185139FA7568978E684E511DB467D92F0B56B43ADF802E7ADC15107723068B06E024DD25340B228AE9674BC3FC58D6BD55FE67F01B197847B6F4FE8F2DF6BC8C72292067C6BEA73C1D8176926BDBB7A620C36CEC57230A89C9799416E68ECEB323425728DE2830C64979DDEC6355F2BB391FBDC705A5C1537EB03D2372650409D7084D6FF1B3913F9796109B40CAD99DC8B4EED4379A67E96FD1192BC87A5C60A410BB6996D1E0DA0D7E43CE2632B14714E6A25569B9F42D51F22C067F12E6E030DF1205FC91429E93214891F026089748772A64DD21C2F13EC3BEBC313187FB8936613D8E4A93F8569FFC6C6509D43F3939D4CFA5BF958D6E1E9E148DDD3E332728957413FA6084CDDC1263419C9C712F5DC3177F39F0EE5CB8B5F90EE60EEC4A002C9CDF40F |
211 | 20180404225041 2 6 100 4095 5 C287DA1692C8760D889CABEA6A7055FADB13C9F064C87322D569B9C574001DEBA1685DA8DFFB9A11253F685A3045E2CEBA057C35DD417F717110949007702B25A37AEE60C3A1A9AA6A1667C15BBFFFF173DF27813A74959756822AB34A2BB97B2F408CC6A994ADC83F05CB8028784B859A25032D691F1DDFB1A87F47EDC289FE4452BE4E4D7B07745C1D5A901E7EF0521465DFFC1EECAB7E4F15172A90257AFFCA11B455ADD24067B20C20EDF9B5B59BDFDAE03BF0AB39A13E60515CA8ADE3273BBCA8290D3B581F92B61F1A893ABFF16255A9226638159640F7869B5C30C8FFF3C3378B14E1A5529C8DE120A9E2099388E1217BDDFCC1708F37E74BDE5D0A2DCFDC4DD27BA697C3F8238182DA7C5D02431E086067358CC9A9B4EFF7C8D7FC9F0C8C0528887A194A6D0613AEE1EEDDC7A315AC1A178E9377E488F49367573BA8EDF80FD6EDE2D256F0614AF81B8FB1B243EA7F04CA6BE0E0BE9F43525D3B6718DAA5E2FD3D20BE3F37ED402DAFD7F19C39E51A40868D3F79D45CD422A9F7454DB3FEFF205BE4C10234914FD8882B344DBFB5C2BE5B576EA94EB62C3AFCD012EE7F82F0744BE067736E9A78EF38E6F06474E025776F138AF84E4093AB36683A60D0DB5CB9F75CA7C4303059E0DDCE3A641A3278F5015FD42EAA79B72E5F0D2EFDAADE3B76B23DD4C2A39F359B3CA00F7584B729800B3E01DC3D4CD4B3B016049F | 211 | 20180920224953 2 6 100 4095 2 CB00EACDC1EDB3E4111DB89DA6722A2D66156FC2F5B602DCE0510B47F36F6E94615D96D222BD22037AD407B782A888F534CE84C04E6B78FDF3F24C869960888D33F8396A58F34238B7E2F2BF3CE48263BE78474C422A073FCCF02C47218509E5A989208456CC7ECCB7004957802A413AA0AB3E51C29FB53A99886977A86B4C47A56C2F312D3BA2B2CC4D5CE637B13A77369D5D5CF478E9D38389969F5CF041863F1D5714F11BC66C0FEF500A6B3FEB18BDF575E9E0F066E0A42DEC284B5A23D1C31C628F672D94363CBCCEA7C81636D51D81337E7556B726B35185139FA7568978E684E511DB467D92F0B56B43ADF802E7ADC15107723068B06E024DD25340B228AE9674BC3FC58D6BD55FE67F01B197847B6F4FE8F2DF6BC8C72292067C6BEA73C1D8176926BDBB7A620C36CEC57230A89C9799416E68ECEB323425728DE2830C64979DDEC6355F2BB391FBDC705A5C1537EB03D2372650409D7084D6FF1B3913F9796109B40CAD99DC8B4EED4379A67E96FD1192BC87A5C60A410BB6996D1E0DA0D7E43CE2632B14714E6A25569B9F42D51F22C067F12E6E030DF1205FC91429E93214891F026089748772A64DD21C2F13EC3BEBC313187FB8936613D8E4A93F8569FFC6C6509D43F3939D4CFA5BF958D6E1E9E148DDD3E332728957413FA6084CDDC1263419C9C712F5DC3177F39F0EE5CB8B5F90EE60EEC4A002C9EF64FB |
212 | 20180404225753 2 6 100 4095 5 C287DA1692C8760D889CABEA6A7055FADB13C9F064C87322D569B9C574001DEBA1685DA8DFFB9A11253F685A3045E2CEBA057C35DD417F717110949007702B25A37AEE60C3A1A9AA6A1667C15BBFFFF173DF27813A74959756822AB34A2BB97B2F408CC6A994ADC83F05CB8028784B859A25032D691F1DDFB1A87F47EDC289FE4452BE4E4D7B07745C1D5A901E7EF0521465DFFC1EECAB7E4F15172A90257AFFCA11B455ADD24067B20C20EDF9B5B59BDFDAE03BF0AB39A13E60515CA8ADE3273BBCA8290D3B581F92B61F1A893ABFF16255A9226638159640F7869B5C30C8FFF3C3378B14E1A5529C8DE120A9E2099388E1217BDDFCC1708F37E74BDE5D0A2DCFDC4DD27BA697C3F8238182DA7C5D02431E086067358CC9A9B4EFF7C8D7FC9F0C8C0528887A194A6D0613AEE1EEDDC7A315AC1A178E9377E488F49367573BA8EDF80FD6EDE2D256F0614AF81B8FB1B243EA7F04CA6BE0E0BE9F43525D3B6718DAA5E2FD3D20BE3F37ED402DAFD7F19C39E51A40868D3F79D45CD422A9F7454DB3FEFF205BE4C10234914FD8882B344DBFB5C2BE5B576EA94EB62C3AFCD012EE7F82F0744BE067736E9A78EF38E6F06474E025776F138AF84E4093AB36683A60D0DB5CB9F75CA7C4303059E0DDCE3A641A3278F5015FD42EAA79B72E5F0D2EFDAADE3B76B23DD4C2A39F359B3CA00F7584B729800B3E01DC3D4CD4B3B04C3C37 | 212 | 20180920225400 2 6 100 4095 5 CB00EACDC1EDB3E4111DB89DA6722A2D66156FC2F5B602DCE0510B47F36F6E94615D96D222BD22037AD407B782A888F534CE84C04E6B78FDF3F24C869960888D33F8396A58F34238B7E2F2BF3CE48263BE78474C422A073FCCF02C47218509E5A989208456CC7ECCB7004957802A413AA0AB3E51C29FB53A99886977A86B4C47A56C2F312D3BA2B2CC4D5CE637B13A77369D5D5CF478E9D38389969F5CF041863F1D5714F11BC66C0FEF500A6B3FEB18BDF575E9E0F066E0A42DEC284B5A23D1C31C628F672D94363CBCCEA7C81636D51D81337E7556B726B35185139FA7568978E684E511DB467D92F0B56B43ADF802E7ADC15107723068B06E024DD25340B228AE9674BC3FC58D6BD55FE67F01B197847B6F4FE8F2DF6BC8C72292067C6BEA73C1D8176926BDBB7A620C36CEC57230A89C9799416E68ECEB323425728DE2830C64979DDEC6355F2BB391FBDC705A5C1537EB03D2372650409D7084D6FF1B3913F9796109B40CAD99DC8B4EED4379A67E96FD1192BC87A5C60A410BB6996D1E0DA0D7E43CE2632B14714E6A25569B9F42D51F22C067F12E6E030DF1205FC91429E93214891F026089748772A64DD21C2F13EC3BEBC313187FB8936613D8E4A93F8569FFC6C6509D43F3939D4CFA5BF958D6E1E9E148DDD3E332728957413FA6084CDDC1263419C9C712F5DC3177F39F0EE5CB8B5F90EE60EEC4A002CA3777C7 |
213 | 20180404230652 2 6 100 4095 2 C287DA1692C8760D889CABEA6A7055FADB13C9F064C87322D569B9C574001DEBA1685DA8DFFB9A11253F685A3045E2CEBA057C35DD417F717110949007702B25A37AEE60C3A1A9AA6A1667C15BBFFFF173DF27813A74959756822AB34A2BB97B2F408CC6A994ADC83F05CB8028784B859A25032D691F1DDFB1A87F47EDC289FE4452BE4E4D7B07745C1D5A901E7EF0521465DFFC1EECAB7E4F15172A90257AFFCA11B455ADD24067B20C20EDF9B5B59BDFDAE03BF0AB39A13E60515CA8ADE3273BBCA8290D3B581F92B61F1A893ABFF16255A9226638159640F7869B5C30C8FFF3C3378B14E1A5529C8DE120A9E2099388E1217BDDFCC1708F37E74BDE5D0A2DCFDC4DD27BA697C3F8238182DA7C5D02431E086067358CC9A9B4EFF7C8D7FC9F0C8C0528887A194A6D0613AEE1EEDDC7A315AC1A178E9377E488F49367573BA8EDF80FD6EDE2D256F0614AF81B8FB1B243EA7F04CA6BE0E0BE9F43525D3B6718DAA5E2FD3D20BE3F37ED402DAFD7F19C39E51A40868D3F79D45CD422A9F7454DB3FEFF205BE4C10234914FD8882B344DBFB5C2BE5B576EA94EB62C3AFCD012EE7F82F0744BE067736E9A78EF38E6F06474E025776F138AF84E4093AB36683A60D0DB5CB9F75CA7C4303059E0DDCE3A641A3278F5015FD42EAA79B72E5F0D2EFDAADE3B76B23DD4C2A39F359B3CA00F7584B729800B3E01DC3D4CD4B3B092364B | 213 | 20180920225652 2 6 100 4095 2 CB00EACDC1EDB3E4111DB89DA6722A2D66156FC2F5B602DCE0510B47F36F6E94615D96D222BD22037AD407B782A888F534CE84C04E6B78FDF3F24C869960888D33F8396A58F34238B7E2F2BF3CE48263BE78474C422A073FCCF02C47218509E5A989208456CC7ECCB7004957802A413AA0AB3E51C29FB53A99886977A86B4C47A56C2F312D3BA2B2CC4D5CE637B13A77369D5D5CF478E9D38389969F5CF041863F1D5714F11BC66C0FEF500A6B3FEB18BDF575E9E0F066E0A42DEC284B5A23D1C31C628F672D94363CBCCEA7C81636D51D81337E7556B726B35185139FA7568978E684E511DB467D92F0B56B43ADF802E7ADC15107723068B06E024DD25340B228AE9674BC3FC58D6BD55FE67F01B197847B6F4FE8F2DF6BC8C72292067C6BEA73C1D8176926BDBB7A620C36CEC57230A89C9799416E68ECEB323425728DE2830C64979DDEC6355F2BB391FBDC705A5C1537EB03D2372650409D7084D6FF1B3913F9796109B40CAD99DC8B4EED4379A67E96FD1192BC87A5C60A410BB6996D1E0DA0D7E43CE2632B14714E6A25569B9F42D51F22C067F12E6E030DF1205FC91429E93214891F026089748772A64DD21C2F13EC3BEBC313187FB8936613D8E4A93F8569FFC6C6509D43F3939D4CFA5BF958D6E1E9E148DDD3E332728957413FA6084CDDC1263419C9C712F5DC3177F39F0EE5CB8B5F90EE60EEC4A002CA6853C3 |
214 | 20180404231941 2 6 100 4095 5 C287DA1692C8760D889CABEA6A7055FADB13C9F064C87322D569B9C574001DEBA1685DA8DFFB9A11253F685A3045E2CEBA057C35DD417F717110949007702B25A37AEE60C3A1A9AA6A1667C15BBFFFF173DF27813A74959756822AB34A2BB97B2F408CC6A994ADC83F05CB8028784B859A25032D691F1DDFB1A87F47EDC289FE4452BE4E4D7B07745C1D5A901E7EF0521465DFFC1EECAB7E4F15172A90257AFFCA11B455ADD24067B20C20EDF9B5B59BDFDAE03BF0AB39A13E60515CA8ADE3273BBCA8290D3B581F92B61F1A893ABFF16255A9226638159640F7869B5C30C8FFF3C3378B14E1A5529C8DE120A9E2099388E1217BDDFCC1708F37E74BDE5D0A2DCFDC4DD27BA697C3F8238182DA7C5D02431E086067358CC9A9B4EFF7C8D7FC9F0C8C0528887A194A6D0613AEE1EEDDC7A315AC1A178E9377E488F49367573BA8EDF80FD6EDE2D256F0614AF81B8FB1B243EA7F04CA6BE0E0BE9F43525D3B6718DAA5E2FD3D20BE3F37ED402DAFD7F19C39E51A40868D3F79D45CD422A9F7454DB3FEFF205BE4C10234914FD8882B344DBFB5C2BE5B576EA94EB62C3AFCD012EE7F82F0744BE067736E9A78EF38E6F06474E025776F138AF84E4093AB36683A60D0DB5CB9F75CA7C4303059E0DDCE3A641A3278F5015FD42EAA79B72E5F0D2EFDAADE3B76B23DD4C2A39F359B3CA00F7584B729800B3E01DC3D4CD4B3B0F7D807 | 214 | 20180920230359 2 6 100 4095 5 CB00EACDC1EDB3E4111DB89DA6722A2D66156FC2F5B602DCE0510B47F36F6E94615D96D222BD22037AD407B782A888F534CE84C04E6B78FDF3F24C869960888D33F8396A58F34238B7E2F2BF3CE48263BE78474C422A073FCCF02C47218509E5A989208456CC7ECCB7004957802A413AA0AB3E51C29FB53A99886977A86B4C47A56C2F312D3BA2B2CC4D5CE637B13A77369D5D5CF478E9D38389969F5CF041863F1D5714F11BC66C0FEF500A6B3FEB18BDF575E9E0F066E0A42DEC284B5A23D1C31C628F672D94363CBCCEA7C81636D51D81337E7556B726B35185139FA7568978E684E511DB467D92F0B56B43ADF802E7ADC15107723068B06E024DD25340B228AE9674BC3FC58D6BD55FE67F01B197847B6F4FE8F2DF6BC8C72292067C6BEA73C1D8176926BDBB7A620C36CEC57230A89C9799416E68ECEB323425728DE2830C64979DDEC6355F2BB391FBDC705A5C1537EB03D2372650409D7084D6FF1B3913F9796109B40CAD99DC8B4EED4379A67E96FD1192BC87A5C60A410BB6996D1E0DA0D7E43CE2632B14714E6A25569B9F42D51F22C067F12E6E030DF1205FC91429E93214891F026089748772A64DD21C2F13EC3BEBC313187FB8936613D8E4A93F8569FFC6C6509D43F3939D4CFA5BF958D6E1E9E148DDD3E332728957413FA6084CDDC1263419C9C712F5DC3177F39F0EE5CB8B5F90EE60EEC4A002CAE81C2F |
215 | 20180404232637 2 6 100 4095 2 C287DA1692C8760D889CABEA6A7055FADB13C9F064C87322D569B9C574001DEBA1685DA8DFFB9A11253F685A3045E2CEBA057C35DD417F717110949007702B25A37AEE60C3A1A9AA6A1667C15BBFFFF173DF27813A74959756822AB34A2BB97B2F408CC6A994ADC83F05CB8028784B859A25032D691F1DDFB1A87F47EDC289FE4452BE4E4D7B07745C1D5A901E7EF0521465DFFC1EECAB7E4F15172A90257AFFCA11B455ADD24067B20C20EDF9B5B59BDFDAE03BF0AB39A13E60515CA8ADE3273BBCA8290D3B581F92B61F1A893ABFF16255A9226638159640F7869B5C30C8FFF3C3378B14E1A5529C8DE120A9E2099388E1217BDDFCC1708F37E74BDE5D0A2DCFDC4DD27BA697C3F8238182DA7C5D02431E086067358CC9A9B4EFF7C8D7FC9F0C8C0528887A194A6D0613AEE1EEDDC7A315AC1A178E9377E488F49367573BA8EDF80FD6EDE2D256F0614AF81B8FB1B243EA7F04CA6BE0E0BE9F43525D3B6718DAA5E2FD3D20BE3F37ED402DAFD7F19C39E51A40868D3F79D45CD422A9F7454DB3FEFF205BE4C10234914FD8882B344DBFB5C2BE5B576EA94EB62C3AFCD012EE7F82F0744BE067736E9A78EF38E6F06474E025776F138AF84E4093AB36683A60D0DB5CB9F75CA7C4303059E0DDCE3A641A3278F5015FD42EAA79B72E5F0D2EFDAADE3B76B23DD4C2A39F359B3CA00F7584B729800B3E01DC3D4CD4B3B127CC5B | 215 | 20180920233313 2 6 100 4095 2 CB00EACDC1EDB3E4111DB89DA6722A2D66156FC2F5B602DCE0510B47F36F6E94615D96D222BD22037AD407B782A888F534CE84C04E6B78FDF3F24C869960888D33F8396A58F34238B7E2F2BF3CE48263BE78474C422A073FCCF02C47218509E5A989208456CC7ECCB7004957802A413AA0AB3E51C29FB53A99886977A86B4C47A56C2F312D3BA2B2CC4D5CE637B13A77369D5D5CF478E9D38389969F5CF041863F1D5714F11BC66C0FEF500A6B3FEB18BDF575E9E0F066E0A42DEC284B5A23D1C31C628F672D94363CBCCEA7C81636D51D81337E7556B726B35185139FA7568978E684E511DB467D92F0B56B43ADF802E7ADC15107723068B06E024DD25340B228AE9674BC3FC58D6BD55FE67F01B197847B6F4FE8F2DF6BC8C72292067C6BEA73C1D8176926BDBB7A620C36CEC57230A89C9799416E68ECEB323425728DE2830C64979DDEC6355F2BB391FBDC705A5C1537EB03D2372650409D7084D6FF1B3913F9796109B40CAD99DC8B4EED4379A67E96FD1192BC87A5C60A410BB6996D1E0DA0D7E43CE2632B14714E6A25569B9F42D51F22C067F12E6E030DF1205FC91429E93214891F026089748772A64DD21C2F13EC3BEBC313187FB8936613D8E4A93F8569FFC6C6509D43F3939D4CFA5BF958D6E1E9E148DDD3E332728957413FA6084CDDC1263419C9C712F5DC3177F39F0EE5CB8B5F90EE60EEC4A002CD0FC883 |
216 | 20180404233306 2 6 100 4095 2 C287DA1692C8760D889CABEA6A7055FADB13C9F064C87322D569B9C574001DEBA1685DA8DFFB9A11253F685A3045E2CEBA057C35DD417F717110949007702B25A37AEE60C3A1A9AA6A1667C15BBFFFF173DF27813A74959756822AB34A2BB97B2F408CC6A994ADC83F05CB8028784B859A25032D691F1DDFB1A87F47EDC289FE4452BE4E4D7B07745C1D5A901E7EF0521465DFFC1EECAB7E4F15172A90257AFFCA11B455ADD24067B20C20EDF9B5B59BDFDAE03BF0AB39A13E60515CA8ADE3273BBCA8290D3B581F92B61F1A893ABFF16255A9226638159640F7869B5C30C8FFF3C3378B14E1A5529C8DE120A9E2099388E1217BDDFCC1708F37E74BDE5D0A2DCFDC4DD27BA697C3F8238182DA7C5D02431E086067358CC9A9B4EFF7C8D7FC9F0C8C0528887A194A6D0613AEE1EEDDC7A315AC1A178E9377E488F49367573BA8EDF80FD6EDE2D256F0614AF81B8FB1B243EA7F04CA6BE0E0BE9F43525D3B6718DAA5E2FD3D20BE3F37ED402DAFD7F19C39E51A40868D3F79D45CD422A9F7454DB3FEFF205BE4C10234914FD8882B344DBFB5C2BE5B576EA94EB62C3AFCD012EE7F82F0744BE067736E9A78EF38E6F06474E025776F138AF84E4093AB36683A60D0DB5CB9F75CA7C4303059E0DDCE3A641A3278F5015FD42EAA79B72E5F0D2EFDAADE3B76B23DD4C2A39F359B3CA00F7584B729800B3E01DC3D4CD4B3B154E443 | 216 | 20180920233505 2 6 100 4095 2 CB00EACDC1EDB3E4111DB89DA6722A2D66156FC2F5B602DCE0510B47F36F6E94615D96D222BD22037AD407B782A888F534CE84C04E6B78FDF3F24C869960888D33F8396A58F34238B7E2F2BF3CE48263BE78474C422A073FCCF02C47218509E5A989208456CC7ECCB7004957802A413AA0AB3E51C29FB53A99886977A86B4C47A56C2F312D3BA2B2CC4D5CE637B13A77369D5D5CF478E9D38389969F5CF041863F1D5714F11BC66C0FEF500A6B3FEB18BDF575E9E0F066E0A42DEC284B5A23D1C31C628F672D94363CBCCEA7C81636D51D81337E7556B726B35185139FA7568978E684E511DB467D92F0B56B43ADF802E7ADC15107723068B06E024DD25340B228AE9674BC3FC58D6BD55FE67F01B197847B6F4FE8F2DF6BC8C72292067C6BEA73C1D8176926BDBB7A620C36CEC57230A89C9799416E68ECEB323425728DE2830C64979DDEC6355F2BB391FBDC705A5C1537EB03D2372650409D7084D6FF1B3913F9796109B40CAD99DC8B4EED4379A67E96FD1192BC87A5C60A410BB6996D1E0DA0D7E43CE2632B14714E6A25569B9F42D51F22C067F12E6E030DF1205FC91429E93214891F026089748772A64DD21C2F13EC3BEBC313187FB8936613D8E4A93F8569FFC6C6509D43F3939D4CFA5BF958D6E1E9E148DDD3E332728957413FA6084CDDC1263419C9C712F5DC3177F39F0EE5CB8B5F90EE60EEC4A002CD297D7B |
217 | 20180405003707 2 6 100 4095 2 C287DA1692C8760D889CABEA6A7055FADB13C9F064C87322D569B9C574001DEBA1685DA8DFFB9A11253F685A3045E2CEBA057C35DD417F717110949007702B25A37AEE60C3A1A9AA6A1667C15BBFFFF173DF27813A74959756822AB34A2BB97B2F408CC6A994ADC83F05CB8028784B859A25032D691F1DDFB1A87F47EDC289FE4452BE4E4D7B07745C1D5A901E7EF0521465DFFC1EECAB7E4F15172A90257AFFCA11B455ADD24067B20C20EDF9B5B59BDFDAE03BF0AB39A13E60515CA8ADE3273BBCA8290D3B581F92B61F1A893ABFF16255A9226638159640F7869B5C30C8FFF3C3378B14E1A5529C8DE120A9E2099388E1217BDDFCC1708F37E74BDE5D0A2DCFDC4DD27BA697C3F8238182DA7C5D02431E086067358CC9A9B4EFF7C8D7FC9F0C8C0528887A194A6D0613AEE1EEDDC7A315AC1A178E9377E488F49367573BA8EDF80FD6EDE2D256F0614AF81B8FB1B243EA7F04CA6BE0E0BE9F43525D3B6718DAA5E2FD3D20BE3F37ED402DAFD7F19C39E51A40868D3F79D45CD422A9F7454DB3FEFF205BE4C10234914FD8882B344DBFB5C2BE5B576EA94EB62C3AFCD012EE7F82F0744BE067736E9A78EF38E6F06474E025776F138AF84E4093AB36683A60D0DB5CB9F75CA7C4303059E0DDCE3A641A3278F5015FD42EAA79B72E5F0D2EFDAADE3B76B23DD4C2A39F359B3CA00F7584B729800B3E01DC3D4CD4B3B373FAF3 | 217 | 20180920234143 2 6 100 4095 5 CB00EACDC1EDB3E4111DB89DA6722A2D66156FC2F5B602DCE0510B47F36F6E94615D96D222BD22037AD407B782A888F534CE84C04E6B78FDF3F24C869960888D33F8396A58F34238B7E2F2BF3CE48263BE78474C422A073FCCF02C47218509E5A989208456CC7ECCB7004957802A413AA0AB3E51C29FB53A99886977A86B4C47A56C2F312D3BA2B2CC4D5CE637B13A77369D5D5CF478E9D38389969F5CF041863F1D5714F11BC66C0FEF500A6B3FEB18BDF575E9E0F066E0A42DEC284B5A23D1C31C628F672D94363CBCCEA7C81636D51D81337E7556B726B35185139FA7568978E684E511DB467D92F0B56B43ADF802E7ADC15107723068B06E024DD25340B228AE9674BC3FC58D6BD55FE67F01B197847B6F4FE8F2DF6BC8C72292067C6BEA73C1D8176926BDBB7A620C36CEC57230A89C9799416E68ECEB323425728DE2830C64979DDEC6355F2BB391FBDC705A5C1537EB03D2372650409D7084D6FF1B3913F9796109B40CAD99DC8B4EED4379A67E96FD1192BC87A5C60A410BB6996D1E0DA0D7E43CE2632B14714E6A25569B9F42D51F22C067F12E6E030DF1205FC91429E93214891F026089748772A64DD21C2F13EC3BEBC313187FB8936613D8E4A93F8569FFC6C6509D43F3939D4CFA5BF958D6E1E9E148DDD3E332728957413FA6084CDDC1263419C9C712F5DC3177F39F0EE5CB8B5F90EE60EEC4A002CDA00627 |
218 | 20180405012137 2 6 100 4095 2 C287DA1692C8760D889CABEA6A7055FADB13C9F064C87322D569B9C574001DEBA1685DA8DFFB9A11253F685A3045E2CEBA057C35DD417F717110949007702B25A37AEE60C3A1A9AA6A1667C15BBFFFF173DF27813A74959756822AB34A2BB97B2F408CC6A994ADC83F05CB8028784B859A25032D691F1DDFB1A87F47EDC289FE4452BE4E4D7B07745C1D5A901E7EF0521465DFFC1EECAB7E4F15172A90257AFFCA11B455ADD24067B20C20EDF9B5B59BDFDAE03BF0AB39A13E60515CA8ADE3273BBCA8290D3B581F92B61F1A893ABFF16255A9226638159640F7869B5C30C8FFF3C3378B14E1A5529C8DE120A9E2099388E1217BDDFCC1708F37E74BDE5D0A2DCFDC4DD27BA697C3F8238182DA7C5D02431E086067358CC9A9B4EFF7C8D7FC9F0C8C0528887A194A6D0613AEE1EEDDC7A315AC1A178E9377E488F49367573BA8EDF80FD6EDE2D256F0614AF81B8FB1B243EA7F04CA6BE0E0BE9F43525D3B6718DAA5E2FD3D20BE3F37ED402DAFD7F19C39E51A40868D3F79D45CD422A9F7454DB3FEFF205BE4C10234914FD8882B344DBFB5C2BE5B576EA94EB62C3AFCD012EE7F82F0744BE067736E9A78EF38E6F06474E025776F138AF84E4093AB36683A60D0DB5CB9F75CA7C4303059E0DDCE3A641A3278F5015FD42EAA79B72E5F0D2EFDAADE3B76B23DD4C2A39F359B3CA00F7584B729800B3E01DC3D4CD4B3B4E4FE3B | 218 | 20180920235433 2 6 100 4095 5 CB00EACDC1EDB3E4111DB89DA6722A2D66156FC2F5B602DCE0510B47F36F6E94615D96D222BD22037AD407B782A888F534CE84C04E6B78FDF3F24C869960888D33F8396A58F34238B7E2F2BF3CE48263BE78474C422A073FCCF02C47218509E5A989208456CC7ECCB7004957802A413AA0AB3E51C29FB53A99886977A86B4C47A56C2F312D3BA2B2CC4D5CE637B13A77369D5D5CF478E9D38389969F5CF041863F1D5714F11BC66C0FEF500A6B3FEB18BDF575E9E0F066E0A42DEC284B5A23D1C31C628F672D94363CBCCEA7C81636D51D81337E7556B726B35185139FA7568978E684E511DB467D92F0B56B43ADF802E7ADC15107723068B06E024DD25340B228AE9674BC3FC58D6BD55FE67F01B197847B6F4FE8F2DF6BC8C72292067C6BEA73C1D8176926BDBB7A620C36CEC57230A89C9799416E68ECEB323425728DE2830C64979DDEC6355F2BB391FBDC705A5C1537EB03D2372650409D7084D6FF1B3913F9796109B40CAD99DC8B4EED4379A67E96FD1192BC87A5C60A410BB6996D1E0DA0D7E43CE2632B14714E6A25569B9F42D51F22C067F12E6E030DF1205FC91429E93214891F026089748772A64DD21C2F13EC3BEBC313187FB8936613D8E4A93F8569FFC6C6509D43F3939D4CFA5BF958D6E1E9E148DDD3E332728957413FA6084CDDC1263419C9C712F5DC3177F39F0EE5CB8B5F90EE60EEC4A002CE8651DF |
219 | 20180405071813 2 6 100 6143 2 E0CFB3582CE2D136E662908DCAA4CD666F574807FFFFF04BFB357D087BD132C8B569A579EC7FEDA39DA9FDBC7A8B289953FC1793F1B5D0F13A317C5F25554892D8A4F4EE9E85B9737D1412316C8169810745D8AC420ED45AA5419137F86E811AA101CD8746EDC5AF653499CA5585851205807E7EC4A3241FDD4C302AAC131FE24B2AC3700D3D21A82EB999FD0005E810811CEB2B1279D95E028269503DBF65FB23CBFC595B12BC67EC4A77D00324909088B6FDF511ABA41732957D32CC436FB0BE95E04F46DF57EC93E4FBD8FF12E18288384CBFABB1BD58F4A047CBF1AB831B43C550515DA98CA33697ECEE8AFAC110E7DD284D531324AC21013C86CFBC9DC286B6669534D8E2D40319E9BA9DC5ACE1825354E1869614CBCB708586A9455D20FC3B724C6FBF941EAAB3FFA61647906B890D9C8F2831A59B7A9A4EB6305DAEDE94A0525C8150EA3B27FC405430B82885E8EAA64A46E2E24DA089A0008C09C5B8117F5E5F397DCAC43906067AE2C6A1B7C1D1B2D233EFF6CBC472F328053EB666EC826604ADA4E27CA01FF98B7A5ADCF8FD3A6E2F6AEC4F36CE8D1D847E611CFDDA7B53AE4F0BA6481A2265D134B5B78F8416164B262CF58FA8806090613D09FA2E8CC417AF2A3208F5BB210CA87927C4FB980C9B97A743CC1B3A7BB9E22DD78EDFB52669C4DB24F796C5D99038E140CE81A9DFECE675F200DC0DEC203FB94380EAA8D13F30530A410BCBD393137FBF89AB80D872D6A4A46B303F01E79FA05DEF4F0F2A2ABD0788459E4C678F3952072570971EA5A686E5964D1C3A61E2311F57E7AB8519809243EB88A87A21B6589A16862EE1B9B4DD452950DDBB5D5482099FC667B5F9A43E3F803D9D0030D0D6E0F86DBFD2B0C2A67B9BFB1F318C6DF0745F75F9F59C7CC62F4763FBBFE3517BF28D9B68372674CBB759E150F6F06FB3053343D54DB7959B79C3764FE57AC25EF6728F1A6A2C6D98E56841DC461BBF12BD23E8C058D500435777431ADC23CA373B0F4A43B5E18787925E79113199A368F30692429BF3041D9BC82BFF88147C3DE432169578E304C72D595320436983FC590B | 219 | 20180920235640 2 6 100 4095 5 CB00EACDC1EDB3E4111DB89DA6722A2D66156FC2F5B602DCE0510B47F36F6E94615D96D222BD22037AD407B782A888F534CE84C04E6B78FDF3F24C869960888D33F8396A58F34238B7E2F2BF3CE48263BE78474C422A073FCCF02C47218509E5A989208456CC7ECCB7004957802A413AA0AB3E51C29FB53A99886977A86B4C47A56C2F312D3BA2B2CC4D5CE637B13A77369D5D5CF478E9D38389969F5CF041863F1D5714F11BC66C0FEF500A6B3FEB18BDF575E9E0F066E0A42DEC284B5A23D1C31C628F672D94363CBCCEA7C81636D51D81337E7556B726B35185139FA7568978E684E511DB467D92F0B56B43ADF802E7ADC15107723068B06E024DD25340B228AE9674BC3FC58D6BD55FE67F01B197847B6F4FE8F2DF6BC8C72292067C6BEA73C1D8176926BDBB7A620C36CEC57230A89C9799416E68ECEB323425728DE2830C64979DDEC6355F2BB391FBDC705A5C1537EB03D2372650409D7084D6FF1B3913F9796109B40CAD99DC8B4EED4379A67E96FD1192BC87A5C60A410BB6996D1E0DA0D7E43CE2632B14714E6A25569B9F42D51F22C067F12E6E030DF1205FC91429E93214891F026089748772A64DD21C2F13EC3BEBC313187FB8936613D8E4A93F8569FFC6C6509D43F3939D4CFA5BF958D6E1E9E148DDD3E332728957413FA6084CDDC1263419C9C712F5DC3177F39F0EE5CB8B5F90EE60EEC4A002CEA46B8F |
220 | 20180405072141 2 6 100 6143 5 E0CFB3582CE2D136E662908DCAA4CD666F574807FFFFF04BFB357D087BD132C8B569A579EC7FEDA39DA9FDBC7A8B289953FC1793F1B5D0F13A317C5F25554892D8A4F4EE9E85B9737D1412316C8169810745D8AC420ED45AA5419137F86E811AA101CD8746EDC5AF653499CA5585851205807E7EC4A3241FDD4C302AAC131FE24B2AC3700D3D21A82EB999FD0005E810811CEB2B1279D95E028269503DBF65FB23CBFC595B12BC67EC4A77D00324909088B6FDF511ABA41732957D32CC436FB0BE95E04F46DF57EC93E4FBD8FF12E18288384CBFABB1BD58F4A047CBF1AB831B43C550515DA98CA33697ECEE8AFAC110E7DD284D531324AC21013C86CFBC9DC286B6669534D8E2D40319E9BA9DC5ACE1825354E1869614CBCB708586A9455D20FC3B724C6FBF941EAAB3FFA61647906B890D9C8F2831A59B7A9A4EB6305DAEDE94A0525C8150EA3B27FC405430B82885E8EAA64A46E2E24DA089A0008C09C5B8117F5E5F397DCAC43906067AE2C6A1B7C1D1B2D233EFF6CBC472F328053EB666EC826604ADA4E27CA01FF98B7A5ADCF8FD3A6E2F6AEC4F36CE8D1D847E611CFDDA7B53AE4F0BA6481A2265D134B5B78F8416164B262CF58FA8806090613D09FA2E8CC417AF2A3208F5BB210CA87927C4FB980C9B97A743CC1B3A7BB9E22DD78EDFB52669C4DB24F796C5D99038E140CE81A9DFECE675F200DC0DEC203FB94380EAA8D13F30530A410BCBD393137FBF89AB80D872D6A4A46B303F01E79FA05DEF4F0F2A2ABD0788459E4C678F3952072570971EA5A686E5964D1C3A61E2311F57E7AB8519809243EB88A87A21B6589A16862EE1B9B4DD452950DDBB5D5482099FC667B5F9A43E3F803D9D0030D0D6E0F86DBFD2B0C2A67B9BFB1F318C6DF0745F75F9F59C7CC62F4763FBBFE3517BF28D9B68372674CBB759E150F6F06FB3053343D54DB7959B79C3764FE57AC25EF6728F1A6A2C6D98E56841DC461BBF12BD23E8C058D500435777431ADC23CA373B0F4A43B5E18787925E79113199A368F30692429BF3041D9BC82BFF88147C3DE432169578E304C72D595320436983FCDA2F | 220 | 20180921000133 2 6 100 4095 2 CB00EACDC1EDB3E4111DB89DA6722A2D66156FC2F5B602DCE0510B47F36F6E94615D96D222BD22037AD407B782A888F534CE84C04E6B78FDF3F24C869960888D33F8396A58F34238B7E2F2BF3CE48263BE78474C422A073FCCF02C47218509E5A989208456CC7ECCB7004957802A413AA0AB3E51C29FB53A99886977A86B4C47A56C2F312D3BA2B2CC4D5CE637B13A77369D5D5CF478E9D38389969F5CF041863F1D5714F11BC66C0FEF500A6B3FEB18BDF575E9E0F066E0A42DEC284B5A23D1C31C628F672D94363CBCCEA7C81636D51D81337E7556B726B35185139FA7568978E684E511DB467D92F0B56B43ADF802E7ADC15107723068B06E024DD25340B228AE9674BC3FC58D6BD55FE67F01B197847B6F4FE8F2DF6BC8C72292067C6BEA73C1D8176926BDBB7A620C36CEC57230A89C9799416E68ECEB323425728DE2830C64979DDEC6355F2BB391FBDC705A5C1537EB03D2372650409D7084D6FF1B3913F9796109B40CAD99DC8B4EED4379A67E96FD1192BC87A5C60A410BB6996D1E0DA0D7E43CE2632B14714E6A25569B9F42D51F22C067F12E6E030DF1205FC91429E93214891F026089748772A64DD21C2F13EC3BEBC313187FB8936613D8E4A93F8569FFC6C6509D43F3939D4CFA5BF958D6E1E9E148DDD3E332728957413FA6084CDDC1263419C9C712F5DC3177F39F0EE5CB8B5F90EE60EEC4A002CEFBF913 |
221 | 20180405132535 2 6 100 6143 2 E0CFB3582CE2D136E662908DCAA4CD666F574807FFFFF04BFB357D087BD132C8B569A579EC7FEDA39DA9FDBC7A8B289953FC1793F1B5D0F13A317C5F25554892D8A4F4EE9E85B9737D1412316C8169810745D8AC420ED45AA5419137F86E811AA101CD8746EDC5AF653499CA5585851205807E7EC4A3241FDD4C302AAC131FE24B2AC3700D3D21A82EB999FD0005E810811CEB2B1279D95E028269503DBF65FB23CBFC595B12BC67EC4A77D00324909088B6FDF511ABA41732957D32CC436FB0BE95E04F46DF57EC93E4FBD8FF12E18288384CBFABB1BD58F4A047CBF1AB831B43C550515DA98CA33697ECEE8AFAC110E7DD284D531324AC21013C86CFBC9DC286B6669534D8E2D40319E9BA9DC5ACE1825354E1869614CBCB708586A9455D20FC3B724C6FBF941EAAB3FFA61647906B890D9C8F2831A59B7A9A4EB6305DAEDE94A0525C8150EA3B27FC405430B82885E8EAA64A46E2E24DA089A0008C09C5B8117F5E5F397DCAC43906067AE2C6A1B7C1D1B2D233EFF6CBC472F328053EB666EC826604ADA4E27CA01FF98B7A5ADCF8FD3A6E2F6AEC4F36CE8D1D847E611CFDDA7B53AE4F0BA6481A2265D134B5B78F8416164B262CF58FA8806090613D09FA2E8CC417AF2A3208F5BB210CA87927C4FB980C9B97A743CC1B3A7BB9E22DD78EDFB52669C4DB24F796C5D99038E140CE81A9DFECE675F200DC0DEC203FB94380EAA8D13F30530A410BCBD393137FBF89AB80D872D6A4A46B303F01E79FA05DEF4F0F2A2ABD0788459E4C678F3952072570971EA5A686E5964D1C3A61E2311F57E7AB8519809243EB88A87A21B6589A16862EE1B9B4DD452950DDBB5D5482099FC667B5F9A43E3F803D9D0030D0D6E0F86DBFD2B0C2A67B9BFB1F318C6DF0745F75F9F59C7CC62F4763FBBFE3517BF28D9B68372674CBB759E150F6F06FB3053343D54DB7959B79C3764FE57AC25EF6728F1A6A2C6D98E56841DC461BBF12BD23E8C058D500435777431ADC23CA373B0F4A43B5E18787925E79113199A368F30692429BF3041D9BC82BFF88147C3DE432169578E304C72D59532043698806F173 | 221 | 20180921001904 2 6 100 4095 2 CB00EACDC1EDB3E4111DB89DA6722A2D66156FC2F5B602DCE0510B47F36F6E94615D96D222BD22037AD407B782A888F534CE84C04E6B78FDF3F24C869960888D33F8396A58F34238B7E2F2BF3CE48263BE78474C422A073FCCF02C47218509E5A989208456CC7ECCB7004957802A413AA0AB3E51C29FB53A99886977A86B4C47A56C2F312D3BA2B2CC4D5CE637B13A77369D5D5CF478E9D38389969F5CF041863F1D5714F11BC66C0FEF500A6B3FEB18BDF575E9E0F066E0A42DEC284B5A23D1C31C628F672D94363CBCCEA7C81636D51D81337E7556B726B35185139FA7568978E684E511DB467D92F0B56B43ADF802E7ADC15107723068B06E024DD25340B228AE9674BC3FC58D6BD55FE67F01B197847B6F4FE8F2DF6BC8C72292067C6BEA73C1D8176926BDBB7A620C36CEC57230A89C9799416E68ECEB323425728DE2830C64979DDEC6355F2BB391FBDC705A5C1537EB03D2372650409D7084D6FF1B3913F9796109B40CAD99DC8B4EED4379A67E96FD1192BC87A5C60A410BB6996D1E0DA0D7E43CE2632B14714E6A25569B9F42D51F22C067F12E6E030DF1205FC91429E93214891F026089748772A64DD21C2F13EC3BEBC313187FB8936613D8E4A93F8569FFC6C6509D43F3939D4CFA5BF958D6E1E9E148DDD3E332728957413FA6084CDDC1263419C9C712F5DC3177F39F0EE5CB8B5F90EE60EEC4A002D039AC1B |
222 | 20180405133926 2 6 100 6143 5 E0CFB3582CE2D136E662908DCAA4CD666F574807FFFFF04BFB357D087BD132C8B569A579EC7FEDA39DA9FDBC7A8B289953FC1793F1B5D0F13A317C5F25554892D8A4F4EE9E85B9737D1412316C8169810745D8AC420ED45AA5419137F86E811AA101CD8746EDC5AF653499CA5585851205807E7EC4A3241FDD4C302AAC131FE24B2AC3700D3D21A82EB999FD0005E810811CEB2B1279D95E028269503DBF65FB23CBFC595B12BC67EC4A77D00324909088B6FDF511ABA41732957D32CC436FB0BE95E04F46DF57EC93E4FBD8FF12E18288384CBFABB1BD58F4A047CBF1AB831B43C550515DA98CA33697ECEE8AFAC110E7DD284D531324AC21013C86CFBC9DC286B6669534D8E2D40319E9BA9DC5ACE1825354E1869614CBCB708586A9455D20FC3B724C6FBF941EAAB3FFA61647906B890D9C8F2831A59B7A9A4EB6305DAEDE94A0525C8150EA3B27FC405430B82885E8EAA64A46E2E24DA089A0008C09C5B8117F5E5F397DCAC43906067AE2C6A1B7C1D1B2D233EFF6CBC472F328053EB666EC826604ADA4E27CA01FF98B7A5ADCF8FD3A6E2F6AEC4F36CE8D1D847E611CFDDA7B53AE4F0BA6481A2265D134B5B78F8416164B262CF58FA8806090613D09FA2E8CC417AF2A3208F5BB210CA87927C4FB980C9B97A743CC1B3A7BB9E22DD78EDFB52669C4DB24F796C5D99038E140CE81A9DFECE675F200DC0DEC203FB94380EAA8D13F30530A410BCBD393137FBF89AB80D872D6A4A46B303F01E79FA05DEF4F0F2A2ABD0788459E4C678F3952072570971EA5A686E5964D1C3A61E2311F57E7AB8519809243EB88A87A21B6589A16862EE1B9B4DD452950DDBB5D5482099FC667B5F9A43E3F803D9D0030D0D6E0F86DBFD2B0C2A67B9BFB1F318C6DF0745F75F9F59C7CC62F4763FBBFE3517BF28D9B68372674CBB759E150F6F06FB3053343D54DB7959B79C3764FE57AC25EF6728F1A6A2C6D98E56841DC461BBF12BD23E8C058D500435777431ADC23CA373B0F4A43B5E18787925E79113199A368F30692429BF3041D9BC82BFF88147C3DE432169578E304C72D595320436988262AB7 | 222 | 20180921002105 2 6 100 4095 2 CB00EACDC1EDB3E4111DB89DA6722A2D66156FC2F5B602DCE0510B47F36F6E94615D96D222BD22037AD407B782A888F534CE84C04E6B78FDF3F24C869960888D33F8396A58F34238B7E2F2BF3CE48263BE78474C422A073FCCF02C47218509E5A989208456CC7ECCB7004957802A413AA0AB3E51C29FB53A99886977A86B4C47A56C2F312D3BA2B2CC4D5CE637B13A77369D5D5CF478E9D38389969F5CF041863F1D5714F11BC66C0FEF500A6B3FEB18BDF575E9E0F066E0A42DEC284B5A23D1C31C628F672D94363CBCCEA7C81636D51D81337E7556B726B35185139FA7568978E684E511DB467D92F0B56B43ADF802E7ADC15107723068B06E024DD25340B228AE9674BC3FC58D6BD55FE67F01B197847B6F4FE8F2DF6BC8C72292067C6BEA73C1D8176926BDBB7A620C36CEC57230A89C9799416E68ECEB323425728DE2830C64979DDEC6355F2BB391FBDC705A5C1537EB03D2372650409D7084D6FF1B3913F9796109B40CAD99DC8B4EED4379A67E96FD1192BC87A5C60A410BB6996D1E0DA0D7E43CE2632B14714E6A25569B9F42D51F22C067F12E6E030DF1205FC91429E93214891F026089748772A64DD21C2F13EC3BEBC313187FB8936613D8E4A93F8569FFC6C6509D43F3939D4CFA5BF958D6E1E9E148DDD3E332728957413FA6084CDDC1263419C9C712F5DC3177F39F0EE5CB8B5F90EE60EEC4A002D0557A5B |
223 | 20180405165648 2 6 100 6143 2 E0CFB3582CE2D136E662908DCAA4CD666F574807FFFFF04BFB357D087BD132C8B569A579EC7FEDA39DA9FDBC7A8B289953FC1793F1B5D0F13A317C5F25554892D8A4F4EE9E85B9737D1412316C8169810745D8AC420ED45AA5419137F86E811AA101CD8746EDC5AF653499CA5585851205807E7EC4A3241FDD4C302AAC131FE24B2AC3700D3D21A82EB999FD0005E810811CEB2B1279D95E028269503DBF65FB23CBFC595B12BC67EC4A77D00324909088B6FDF511ABA41732957D32CC436FB0BE95E04F46DF57EC93E4FBD8FF12E18288384CBFABB1BD58F4A047CBF1AB831B43C550515DA98CA33697ECEE8AFAC110E7DD284D531324AC21013C86CFBC9DC286B6669534D8E2D40319E9BA9DC5ACE1825354E1869614CBCB708586A9455D20FC3B724C6FBF941EAAB3FFA61647906B890D9C8F2831A59B7A9A4EB6305DAEDE94A0525C8150EA3B27FC405430B82885E8EAA64A46E2E24DA089A0008C09C5B8117F5E5F397DCAC43906067AE2C6A1B7C1D1B2D233EFF6CBC472F328053EB666EC826604ADA4E27CA01FF98B7A5ADCF8FD3A6E2F6AEC4F36CE8D1D847E611CFDDA7B53AE4F0BA6481A2265D134B5B78F8416164B262CF58FA8806090613D09FA2E8CC417AF2A3208F5BB210CA87927C4FB980C9B97A743CC1B3A7BB9E22DD78EDFB52669C4DB24F796C5D99038E140CE81A9DFECE675F200DC0DEC203FB94380EAA8D13F30530A410BCBD393137FBF89AB80D872D6A4A46B303F01E79FA05DEF4F0F2A2ABD0788459E4C678F3952072570971EA5A686E5964D1C3A61E2311F57E7AB8519809243EB88A87A21B6589A16862EE1B9B4DD452950DDBB5D5482099FC667B5F9A43E3F803D9D0030D0D6E0F86DBFD2B0C2A67B9BFB1F318C6DF0745F75F9F59C7CC62F4763FBBFE3517BF28D9B68372674CBB759E150F6F06FB3053343D54DB7959B79C3764FE57AC25EF6728F1A6A2C6D98E56841DC461BBF12BD23E8C058D500435777431ADC23CA373B0F4A43B5E18787925E79113199A368F30692429BF3041D9BC82BFF88147C3DE432169578E304C72D59532043698A47BC0B | 223 | 20180921003739 2 6 100 4095 2 CB00EACDC1EDB3E4111DB89DA6722A2D66156FC2F5B602DCE0510B47F36F6E94615D96D222BD22037AD407B782A888F534CE84C04E6B78FDF3F24C869960888D33F8396A58F34238B7E2F2BF3CE48263BE78474C422A073FCCF02C47218509E5A989208456CC7ECCB7004957802A413AA0AB3E51C29FB53A99886977A86B4C47A56C2F312D3BA2B2CC4D5CE637B13A77369D5D5CF478E9D38389969F5CF041863F1D5714F11BC66C0FEF500A6B3FEB18BDF575E9E0F066E0A42DEC284B5A23D1C31C628F672D94363CBCCEA7C81636D51D81337E7556B726B35185139FA7568978E684E511DB467D92F0B56B43ADF802E7ADC15107723068B06E024DD25340B228AE9674BC3FC58D6BD55FE67F01B197847B6F4FE8F2DF6BC8C72292067C6BEA73C1D8176926BDBB7A620C36CEC57230A89C9799416E68ECEB323425728DE2830C64979DDEC6355F2BB391FBDC705A5C1537EB03D2372650409D7084D6FF1B3913F9796109B40CAD99DC8B4EED4379A67E96FD1192BC87A5C60A410BB6996D1E0DA0D7E43CE2632B14714E6A25569B9F42D51F22C067F12E6E030DF1205FC91429E93214891F026089748772A64DD21C2F13EC3BEBC313187FB8936613D8E4A93F8569FFC6C6509D43F3939D4CFA5BF958D6E1E9E148DDD3E332728957413FA6084CDDC1263419C9C712F5DC3177F39F0EE5CB8B5F90EE60EEC4A002D184F8BB |
224 | 20180405195101 2 6 100 6143 5 E0CFB3582CE2D136E662908DCAA4CD666F574807FFFFF04BFB357D087BD132C8B569A579EC7FEDA39DA9FDBC7A8B289953FC1793F1B5D0F13A317C5F25554892D8A4F4EE9E85B9737D1412316C8169810745D8AC420ED45AA5419137F86E811AA101CD8746EDC5AF653499CA5585851205807E7EC4A3241FDD4C302AAC131FE24B2AC3700D3D21A82EB999FD0005E810811CEB2B1279D95E028269503DBF65FB23CBFC595B12BC67EC4A77D00324909088B6FDF511ABA41732957D32CC436FB0BE95E04F46DF57EC93E4FBD8FF12E18288384CBFABB1BD58F4A047CBF1AB831B43C550515DA98CA33697ECEE8AFAC110E7DD284D531324AC21013C86CFBC9DC286B6669534D8E2D40319E9BA9DC5ACE1825354E1869614CBCB708586A9455D20FC3B724C6FBF941EAAB3FFA61647906B890D9C8F2831A59B7A9A4EB6305DAEDE94A0525C8150EA3B27FC405430B82885E8EAA64A46E2E24DA089A0008C09C5B8117F5E5F397DCAC43906067AE2C6A1B7C1D1B2D233EFF6CBC472F328053EB666EC826604ADA4E27CA01FF98B7A5ADCF8FD3A6E2F6AEC4F36CE8D1D847E611CFDDA7B53AE4F0BA6481A2265D134B5B78F8416164B262CF58FA8806090613D09FA2E8CC417AF2A3208F5BB210CA87927C4FB980C9B97A743CC1B3A7BB9E22DD78EDFB52669C4DB24F796C5D99038E140CE81A9DFECE675F200DC0DEC203FB94380EAA8D13F30530A410BCBD393137FBF89AB80D872D6A4A46B303F01E79FA05DEF4F0F2A2ABD0788459E4C678F3952072570971EA5A686E5964D1C3A61E2311F57E7AB8519809243EB88A87A21B6589A16862EE1B9B4DD452950DDBB5D5482099FC667B5F9A43E3F803D9D0030D0D6E0F86DBFD2B0C2A67B9BFB1F318C6DF0745F75F9F59C7CC62F4763FBBFE3517BF28D9B68372674CBB759E150F6F06FB3053343D54DB7959B79C3764FE57AC25EF6728F1A6A2C6D98E56841DC461BBF12BD23E8C058D500435777431ADC23CA373B0F4A43B5E18787925E79113199A368F30692429BF3041D9BC82BFF88147C3DE432169578E304C72D59532043698C28BB2F | 224 | 20180921004140 2 6 100 4095 2 CB00EACDC1EDB3E4111DB89DA6722A2D66156FC2F5B602DCE0510B47F36F6E94615D96D222BD22037AD407B782A888F534CE84C04E6B78FDF3F24C869960888D33F8396A58F34238B7E2F2BF3CE48263BE78474C422A073FCCF02C47218509E5A989208456CC7ECCB7004957802A413AA0AB3E51C29FB53A99886977A86B4C47A56C2F312D3BA2B2CC4D5CE637B13A77369D5D5CF478E9D38389969F5CF041863F1D5714F11BC66C0FEF500A6B3FEB18BDF575E9E0F066E0A42DEC284B5A23D1C31C628F672D94363CBCCEA7C81636D51D81337E7556B726B35185139FA7568978E684E511DB467D92F0B56B43ADF802E7ADC15107723068B06E024DD25340B228AE9674BC3FC58D6BD55FE67F01B197847B6F4FE8F2DF6BC8C72292067C6BEA73C1D8176926BDBB7A620C36CEC57230A89C9799416E68ECEB323425728DE2830C64979DDEC6355F2BB391FBDC705A5C1537EB03D2372650409D7084D6FF1B3913F9796109B40CAD99DC8B4EED4379A67E96FD1192BC87A5C60A410BB6996D1E0DA0D7E43CE2632B14714E6A25569B9F42D51F22C067F12E6E030DF1205FC91429E93214891F026089748772A64DD21C2F13EC3BEBC313187FB8936613D8E4A93F8569FFC6C6509D43F3939D4CFA5BF958D6E1E9E148DDD3E332728957413FA6084CDDC1263419C9C712F5DC3177F39F0EE5CB8B5F90EE60EEC4A002D1C803A3 |
225 | 20180405213026 2 6 100 6143 2 E0CFB3582CE2D136E662908DCAA4CD666F574807FFFFF04BFB357D087BD132C8B569A579EC7FEDA39DA9FDBC7A8B289953FC1793F1B5D0F13A317C5F25554892D8A4F4EE9E85B9737D1412316C8169810745D8AC420ED45AA5419137F86E811AA101CD8746EDC5AF653499CA5585851205807E7EC4A3241FDD4C302AAC131FE24B2AC3700D3D21A82EB999FD0005E810811CEB2B1279D95E028269503DBF65FB23CBFC595B12BC67EC4A77D00324909088B6FDF511ABA41732957D32CC436FB0BE95E04F46DF57EC93E4FBD8FF12E18288384CBFABB1BD58F4A047CBF1AB831B43C550515DA98CA33697ECEE8AFAC110E7DD284D531324AC21013C86CFBC9DC286B6669534D8E2D40319E9BA9DC5ACE1825354E1869614CBCB708586A9455D20FC3B724C6FBF941EAAB3FFA61647906B890D9C8F2831A59B7A9A4EB6305DAEDE94A0525C8150EA3B27FC405430B82885E8EAA64A46E2E24DA089A0008C09C5B8117F5E5F397DCAC43906067AE2C6A1B7C1D1B2D233EFF6CBC472F328053EB666EC826604ADA4E27CA01FF98B7A5ADCF8FD3A6E2F6AEC4F36CE8D1D847E611CFDDA7B53AE4F0BA6481A2265D134B5B78F8416164B262CF58FA8806090613D09FA2E8CC417AF2A3208F5BB210CA87927C4FB980C9B97A743CC1B3A7BB9E22DD78EDFB52669C4DB24F796C5D99038E140CE81A9DFECE675F200DC0DEC203FB94380EAA8D13F30530A410BCBD393137FBF89AB80D872D6A4A46B303F01E79FA05DEF4F0F2A2ABD0788459E4C678F3952072570971EA5A686E5964D1C3A61E2311F57E7AB8519809243EB88A87A21B6589A16862EE1B9B4DD452950DDBB5D5482099FC667B5F9A43E3F803D9D0030D0D6E0F86DBFD2B0C2A67B9BFB1F318C6DF0745F75F9F59C7CC62F4763FBBFE3517BF28D9B68372674CBB759E150F6F06FB3053343D54DB7959B79C3764FE57AC25EF6728F1A6A2C6D98E56841DC461BBF12BD23E8C058D500435777431ADC23CA373B0F4A43B5E18787925E79113199A368F30692429BF3041D9BC82BFF88147C3DE432169578E304C72D59532043698D395FBB | 225 | 20180921004415 2 6 100 4095 5 CB00EACDC1EDB3E4111DB89DA6722A2D66156FC2F5B602DCE0510B47F36F6E94615D96D222BD22037AD407B782A888F534CE84C04E6B78FDF3F24C869960888D33F8396A58F34238B7E2F2BF3CE48263BE78474C422A073FCCF02C47218509E5A989208456CC7ECCB7004957802A413AA0AB3E51C29FB53A99886977A86B4C47A56C2F312D3BA2B2CC4D5CE637B13A77369D5D5CF478E9D38389969F5CF041863F1D5714F11BC66C0FEF500A6B3FEB18BDF575E9E0F066E0A42DEC284B5A23D1C31C628F672D94363CBCCEA7C81636D51D81337E7556B726B35185139FA7568978E684E511DB467D92F0B56B43ADF802E7ADC15107723068B06E024DD25340B228AE9674BC3FC58D6BD55FE67F01B197847B6F4FE8F2DF6BC8C72292067C6BEA73C1D8176926BDBB7A620C36CEC57230A89C9799416E68ECEB323425728DE2830C64979DDEC6355F2BB391FBDC705A5C1537EB03D2372650409D7084D6FF1B3913F9796109B40CAD99DC8B4EED4379A67E96FD1192BC87A5C60A410BB6996D1E0DA0D7E43CE2632B14714E6A25569B9F42D51F22C067F12E6E030DF1205FC91429E93214891F026089748772A64DD21C2F13EC3BEBC313187FB8936613D8E4A93F8569FFC6C6509D43F3939D4CFA5BF958D6E1E9E148DDD3E332728957413FA6084CDDC1263419C9C712F5DC3177F39F0EE5CB8B5F90EE60EEC4A002D1F094A7 |
226 | 20180405220015 2 6 100 6143 5 E0CFB3582CE2D136E662908DCAA4CD666F574807FFFFF04BFB357D087BD132C8B569A579EC7FEDA39DA9FDBC7A8B289953FC1793F1B5D0F13A317C5F25554892D8A4F4EE9E85B9737D1412316C8169810745D8AC420ED45AA5419137F86E811AA101CD8746EDC5AF653499CA5585851205807E7EC4A3241FDD4C302AAC131FE24B2AC3700D3D21A82EB999FD0005E810811CEB2B1279D95E028269503DBF65FB23CBFC595B12BC67EC4A77D00324909088B6FDF511ABA41732957D32CC436FB0BE95E04F46DF57EC93E4FBD8FF12E18288384CBFABB1BD58F4A047CBF1AB831B43C550515DA98CA33697ECEE8AFAC110E7DD284D531324AC21013C86CFBC9DC286B6669534D8E2D40319E9BA9DC5ACE1825354E1869614CBCB708586A9455D20FC3B724C6FBF941EAAB3FFA61647906B890D9C8F2831A59B7A9A4EB6305DAEDE94A0525C8150EA3B27FC405430B82885E8EAA64A46E2E24DA089A0008C09C5B8117F5E5F397DCAC43906067AE2C6A1B7C1D1B2D233EFF6CBC472F328053EB666EC826604ADA4E27CA01FF98B7A5ADCF8FD3A6E2F6AEC4F36CE8D1D847E611CFDDA7B53AE4F0BA6481A2265D134B5B78F8416164B262CF58FA8806090613D09FA2E8CC417AF2A3208F5BB210CA87927C4FB980C9B97A743CC1B3A7BB9E22DD78EDFB52669C4DB24F796C5D99038E140CE81A9DFECE675F200DC0DEC203FB94380EAA8D13F30530A410BCBD393137FBF89AB80D872D6A4A46B303F01E79FA05DEF4F0F2A2ABD0788459E4C678F3952072570971EA5A686E5964D1C3A61E2311F57E7AB8519809243EB88A87A21B6589A16862EE1B9B4DD452950DDBB5D5482099FC667B5F9A43E3F803D9D0030D0D6E0F86DBFD2B0C2A67B9BFB1F318C6DF0745F75F9F59C7CC62F4763FBBFE3517BF28D9B68372674CBB759E150F6F06FB3053343D54DB7959B79C3764FE57AC25EF6728F1A6A2C6D98E56841DC461BBF12BD23E8C058D500435777431ADC23CA373B0F4A43B5E18787925E79113199A368F30692429BF3041D9BC82BFF88147C3DE432169578E304C72D59532043698D843327 | 226 | 20180921004716 2 6 100 4095 2 CB00EACDC1EDB3E4111DB89DA6722A2D66156FC2F5B602DCE0510B47F36F6E94615D96D222BD22037AD407B782A888F534CE84C04E6B78FDF3F24C869960888D33F8396A58F34238B7E2F2BF3CE48263BE78474C422A073FCCF02C47218509E5A989208456CC7ECCB7004957802A413AA0AB3E51C29FB53A99886977A86B4C47A56C2F312D3BA2B2CC4D5CE637B13A77369D5D5CF478E9D38389969F5CF041863F1D5714F11BC66C0FEF500A6B3FEB18BDF575E9E0F066E0A42DEC284B5A23D1C31C628F672D94363CBCCEA7C81636D51D81337E7556B726B35185139FA7568978E684E511DB467D92F0B56B43ADF802E7ADC15107723068B06E024DD25340B228AE9674BC3FC58D6BD55FE67F01B197847B6F4FE8F2DF6BC8C72292067C6BEA73C1D8176926BDBB7A620C36CEC57230A89C9799416E68ECEB323425728DE2830C64979DDEC6355F2BB391FBDC705A5C1537EB03D2372650409D7084D6FF1B3913F9796109B40CAD99DC8B4EED4379A67E96FD1192BC87A5C60A410BB6996D1E0DA0D7E43CE2632B14714E6A25569B9F42D51F22C067F12E6E030DF1205FC91429E93214891F026089748772A64DD21C2F13EC3BEBC313187FB8936613D8E4A93F8569FFC6C6509D43F3939D4CFA5BF958D6E1E9E148DDD3E332728957413FA6084CDDC1263419C9C712F5DC3177F39F0EE5CB8B5F90EE60EEC4A002D21F8203 |
227 | 20180405231702 2 6 100 6143 5 E0CFB3582CE2D136E662908DCAA4CD666F574807FFFFF04BFB357D087BD132C8B569A579EC7FEDA39DA9FDBC7A8B289953FC1793F1B5D0F13A317C5F25554892D8A4F4EE9E85B9737D1412316C8169810745D8AC420ED45AA5419137F86E811AA101CD8746EDC5AF653499CA5585851205807E7EC4A3241FDD4C302AAC131FE24B2AC3700D3D21A82EB999FD0005E810811CEB2B1279D95E028269503DBF65FB23CBFC595B12BC67EC4A77D00324909088B6FDF511ABA41732957D32CC436FB0BE95E04F46DF57EC93E4FBD8FF12E18288384CBFABB1BD58F4A047CBF1AB831B43C550515DA98CA33697ECEE8AFAC110E7DD284D531324AC21013C86CFBC9DC286B6669534D8E2D40319E9BA9DC5ACE1825354E1869614CBCB708586A9455D20FC3B724C6FBF941EAAB3FFA61647906B890D9C8F2831A59B7A9A4EB6305DAEDE94A0525C8150EA3B27FC405430B82885E8EAA64A46E2E24DA089A0008C09C5B8117F5E5F397DCAC43906067AE2C6A1B7C1D1B2D233EFF6CBC472F328053EB666EC826604ADA4E27CA01FF98B7A5ADCF8FD3A6E2F6AEC4F36CE8D1D847E611CFDDA7B53AE4F0BA6481A2265D134B5B78F8416164B262CF58FA8806090613D09FA2E8CC417AF2A3208F5BB210CA87927C4FB980C9B97A743CC1B3A7BB9E22DD78EDFB52669C4DB24F796C5D99038E140CE81A9DFECE675F200DC0DEC203FB94380EAA8D13F30530A410BCBD393137FBF89AB80D872D6A4A46B303F01E79FA05DEF4F0F2A2ABD0788459E4C678F3952072570971EA5A686E5964D1C3A61E2311F57E7AB8519809243EB88A87A21B6589A16862EE1B9B4DD452950DDBB5D5482099FC667B5F9A43E3F803D9D0030D0D6E0F86DBFD2B0C2A67B9BFB1F318C6DF0745F75F9F59C7CC62F4763FBBFE3517BF28D9B68372674CBB759E150F6F06FB3053343D54DB7959B79C3764FE57AC25EF6728F1A6A2C6D98E56841DC461BBF12BD23E8C058D500435777431ADC23CA373B0F4A43B5E18787925E79113199A368F30692429BF3041D9BC82BFF88147C3DE432169578E304C72D59532043698E544067 | 227 | 20180921005129 2 6 100 4095 2 CB00EACDC1EDB3E4111DB89DA6722A2D66156FC2F5B602DCE0510B47F36F6E94615D96D222BD22037AD407B782A888F534CE84C04E6B78FDF3F24C869960888D33F8396A58F34238B7E2F2BF3CE48263BE78474C422A073FCCF02C47218509E5A989208456CC7ECCB7004957802A413AA0AB3E51C29FB53A99886977A86B4C47A56C2F312D3BA2B2CC4D5CE637B13A77369D5D5CF478E9D38389969F5CF041863F1D5714F11BC66C0FEF500A6B3FEB18BDF575E9E0F066E0A42DEC284B5A23D1C31C628F672D94363CBCCEA7C81636D51D81337E7556B726B35185139FA7568978E684E511DB467D92F0B56B43ADF802E7ADC15107723068B06E024DD25340B228AE9674BC3FC58D6BD55FE67F01B197847B6F4FE8F2DF6BC8C72292067C6BEA73C1D8176926BDBB7A620C36CEC57230A89C9799416E68ECEB323425728DE2830C64979DDEC6355F2BB391FBDC705A5C1537EB03D2372650409D7084D6FF1B3913F9796109B40CAD99DC8B4EED4379A67E96FD1192BC87A5C60A410BB6996D1E0DA0D7E43CE2632B14714E6A25569B9F42D51F22C067F12E6E030DF1205FC91429E93214891F026089748772A64DD21C2F13EC3BEBC313187FB8936613D8E4A93F8569FFC6C6509D43F3939D4CFA5BF958D6E1E9E148DDD3E332728957413FA6084CDDC1263419C9C712F5DC3177F39F0EE5CB8B5F90EE60EEC4A002D268646B |
228 | 20180406025336 2 6 100 6143 2 E0CFB3582CE2D136E662908DCAA4CD666F574807FFFFF04BFB357D087BD132C8B569A579EC7FEDA39DA9FDBC7A8B289953FC1793F1B5D0F13A317C5F25554892D8A4F4EE9E85B9737D1412316C8169810745D8AC420ED45AA5419137F86E811AA101CD8746EDC5AF653499CA5585851205807E7EC4A3241FDD4C302AAC131FE24B2AC3700D3D21A82EB999FD0005E810811CEB2B1279D95E028269503DBF65FB23CBFC595B12BC67EC4A77D00324909088B6FDF511ABA41732957D32CC436FB0BE95E04F46DF57EC93E4FBD8FF12E18288384CBFABB1BD58F4A047CBF1AB831B43C550515DA98CA33697ECEE8AFAC110E7DD284D531324AC21013C86CFBC9DC286B6669534D8E2D40319E9BA9DC5ACE1825354E1869614CBCB708586A9455D20FC3B724C6FBF941EAAB3FFA61647906B890D9C8F2831A59B7A9A4EB6305DAEDE94A0525C8150EA3B27FC405430B82885E8EAA64A46E2E24DA089A0008C09C5B8117F5E5F397DCAC43906067AE2C6A1B7C1D1B2D233EFF6CBC472F328053EB666EC826604ADA4E27CA01FF98B7A5ADCF8FD3A6E2F6AEC4F36CE8D1D847E611CFDDA7B53AE4F0BA6481A2265D134B5B78F8416164B262CF58FA8806090613D09FA2E8CC417AF2A3208F5BB210CA87927C4FB980C9B97A743CC1B3A7BB9E22DD78EDFB52669C4DB24F796C5D99038E140CE81A9DFECE675F200DC0DEC203FB94380EAA8D13F30530A410BCBD393137FBF89AB80D872D6A4A46B303F01E79FA05DEF4F0F2A2ABD0788459E4C678F3952072570971EA5A686E5964D1C3A61E2311F57E7AB8519809243EB88A87A21B6589A16862EE1B9B4DD452950DDBB5D5482099FC667B5F9A43E3F803D9D0030D0D6E0F86DBFD2B0C2A67B9BFB1F318C6DF0745F75F9F59C7CC62F4763FBBFE3517BF28D9B68372674CBB759E150F6F06FB3053343D54DB7959B79C3764FE57AC25EF6728F1A6A2C6D98E56841DC461BBF12BD23E8C058D500435777431ADC23CA373B0F4A43B5E18787925E79113199A368F30692429BF3041D9BC82BFF88147C3DE432169578E304C72D595320436990AEC063 | 228 | 20180921010446 2 6 100 4095 2 CB00EACDC1EDB3E4111DB89DA6722A2D66156FC2F5B602DCE0510B47F36F6E94615D96D222BD22037AD407B782A888F534CE84C04E6B78FDF3F24C869960888D33F8396A58F34238B7E2F2BF3CE48263BE78474C422A073FCCF02C47218509E5A989208456CC7ECCB7004957802A413AA0AB3E51C29FB53A99886977A86B4C47A56C2F312D3BA2B2CC4D5CE637B13A77369D5D5CF478E9D38389969F5CF041863F1D5714F11BC66C0FEF500A6B3FEB18BDF575E9E0F066E0A42DEC284B5A23D1C31C628F672D94363CBCCEA7C81636D51D81337E7556B726B35185139FA7568978E684E511DB467D92F0B56B43ADF802E7ADC15107723068B06E024DD25340B228AE9674BC3FC58D6BD55FE67F01B197847B6F4FE8F2DF6BC8C72292067C6BEA73C1D8176926BDBB7A620C36CEC57230A89C9799416E68ECEB323425728DE2830C64979DDEC6355F2BB391FBDC705A5C1537EB03D2372650409D7084D6FF1B3913F9796109B40CAD99DC8B4EED4379A67E96FD1192BC87A5C60A410BB6996D1E0DA0D7E43CE2632B14714E6A25569B9F42D51F22C067F12E6E030DF1205FC91429E93214891F026089748772A64DD21C2F13EC3BEBC313187FB8936613D8E4A93F8569FFC6C6509D43F3939D4CFA5BF958D6E1E9E148DDD3E332728957413FA6084CDDC1263419C9C712F5DC3177F39F0EE5CB8B5F90EE60EEC4A002D3556B5B |
229 | 20180406035121 2 6 100 6143 2 E0CFB3582CE2D136E662908DCAA4CD666F574807FFFFF04BFB357D087BD132C8B569A579EC7FEDA39DA9FDBC7A8B289953FC1793F1B5D0F13A317C5F25554892D8A4F4EE9E85B9737D1412316C8169810745D8AC420ED45AA5419137F86E811AA101CD8746EDC5AF653499CA5585851205807E7EC4A3241FDD4C302AAC131FE24B2AC3700D3D21A82EB999FD0005E810811CEB2B1279D95E028269503DBF65FB23CBFC595B12BC67EC4A77D00324909088B6FDF511ABA41732957D32CC436FB0BE95E04F46DF57EC93E4FBD8FF12E18288384CBFABB1BD58F4A047CBF1AB831B43C550515DA98CA33697ECEE8AFAC110E7DD284D531324AC21013C86CFBC9DC286B6669534D8E2D40319E9BA9DC5ACE1825354E1869614CBCB708586A9455D20FC3B724C6FBF941EAAB3FFA61647906B890D9C8F2831A59B7A9A4EB6305DAEDE94A0525C8150EA3B27FC405430B82885E8EAA64A46E2E24DA089A0008C09C5B8117F5E5F397DCAC43906067AE2C6A1B7C1D1B2D233EFF6CBC472F328053EB666EC826604ADA4E27CA01FF98B7A5ADCF8FD3A6E2F6AEC4F36CE8D1D847E611CFDDA7B53AE4F0BA6481A2265D134B5B78F8416164B262CF58FA8806090613D09FA2E8CC417AF2A3208F5BB210CA87927C4FB980C9B97A743CC1B3A7BB9E22DD78EDFB52669C4DB24F796C5D99038E140CE81A9DFECE675F200DC0DEC203FB94380EAA8D13F30530A410BCBD393137FBF89AB80D872D6A4A46B303F01E79FA05DEF4F0F2A2ABD0788459E4C678F3952072570971EA5A686E5964D1C3A61E2311F57E7AB8519809243EB88A87A21B6589A16862EE1B9B4DD452950DDBB5D5482099FC667B5F9A43E3F803D9D0030D0D6E0F86DBFD2B0C2A67B9BFB1F318C6DF0745F75F9F59C7CC62F4763FBBFE3517BF28D9B68372674CBB759E150F6F06FB3053343D54DB7959B79C3764FE57AC25EF6728F1A6A2C6D98E56841DC461BBF12BD23E8C058D500435777431ADC23CA373B0F4A43B5E18787925E79113199A368F30692429BF3041D9BC82BFF88147C3DE432169578E304C72D59532043699149227B | 229 | 20180921013214 2 6 100 4095 5 CB00EACDC1EDB3E4111DB89DA6722A2D66156FC2F5B602DCE0510B47F36F6E94615D96D222BD22037AD407B782A888F534CE84C04E6B78FDF3F24C869960888D33F8396A58F34238B7E2F2BF3CE48263BE78474C422A073FCCF02C47218509E5A989208456CC7ECCB7004957802A413AA0AB3E51C29FB53A99886977A86B4C47A56C2F312D3BA2B2CC4D5CE637B13A77369D5D5CF478E9D38389969F5CF041863F1D5714F11BC66C0FEF500A6B3FEB18BDF575E9E0F066E0A42DEC284B5A23D1C31C628F672D94363CBCCEA7C81636D51D81337E7556B726B35185139FA7568978E684E511DB467D92F0B56B43ADF802E7ADC15107723068B06E024DD25340B228AE9674BC3FC58D6BD55FE67F01B197847B6F4FE8F2DF6BC8C72292067C6BEA73C1D8176926BDBB7A620C36CEC57230A89C9799416E68ECEB323425728DE2830C64979DDEC6355F2BB391FBDC705A5C1537EB03D2372650409D7084D6FF1B3913F9796109B40CAD99DC8B4EED4379A67E96FD1192BC87A5C60A410BB6996D1E0DA0D7E43CE2632B14714E6A25569B9F42D51F22C067F12E6E030DF1205FC91429E93214891F026089748772A64DD21C2F13EC3BEBC313187FB8936613D8E4A93F8569FFC6C6509D43F3939D4CFA5BF958D6E1E9E148DDD3E332728957413FA6084CDDC1263419C9C712F5DC3177F39F0EE5CB8B5F90EE60EEC4A002D556768F |
230 | 20180406063935 2 6 100 6143 2 E0CFB3582CE2D136E662908DCAA4CD666F574807FFFFF04BFB357D087BD132C8B569A579EC7FEDA39DA9FDBC7A8B289953FC1793F1B5D0F13A317C5F25554892D8A4F4EE9E85B9737D1412316C8169810745D8AC420ED45AA5419137F86E811AA101CD8746EDC5AF653499CA5585851205807E7EC4A3241FDD4C302AAC131FE24B2AC3700D3D21A82EB999FD0005E810811CEB2B1279D95E028269503DBF65FB23CBFC595B12BC67EC4A77D00324909088B6FDF511ABA41732957D32CC436FB0BE95E04F46DF57EC93E4FBD8FF12E18288384CBFABB1BD58F4A047CBF1AB831B43C550515DA98CA33697ECEE8AFAC110E7DD284D531324AC21013C86CFBC9DC286B6669534D8E2D40319E9BA9DC5ACE1825354E1869614CBCB708586A9455D20FC3B724C6FBF941EAAB3FFA61647906B890D9C8F2831A59B7A9A4EB6305DAEDE94A0525C8150EA3B27FC405430B82885E8EAA64A46E2E24DA089A0008C09C5B8117F5E5F397DCAC43906067AE2C6A1B7C1D1B2D233EFF6CBC472F328053EB666EC826604ADA4E27CA01FF98B7A5ADCF8FD3A6E2F6AEC4F36CE8D1D847E611CFDDA7B53AE4F0BA6481A2265D134B5B78F8416164B262CF58FA8806090613D09FA2E8CC417AF2A3208F5BB210CA87927C4FB980C9B97A743CC1B3A7BB9E22DD78EDFB52669C4DB24F796C5D99038E140CE81A9DFECE675F200DC0DEC203FB94380EAA8D13F30530A410BCBD393137FBF89AB80D872D6A4A46B303F01E79FA05DEF4F0F2A2ABD0788459E4C678F3952072570971EA5A686E5964D1C3A61E2311F57E7AB8519809243EB88A87A21B6589A16862EE1B9B4DD452950DDBB5D5482099FC667B5F9A43E3F803D9D0030D0D6E0F86DBFD2B0C2A67B9BFB1F318C6DF0745F75F9F59C7CC62F4763FBBFE3517BF28D9B68372674CBB759E150F6F06FB3053343D54DB7959B79C3764FE57AC25EF6728F1A6A2C6D98E56841DC461BBF12BD23E8C058D500435777431ADC23CA373B0F4A43B5E18787925E79113199A368F30692429BF3041D9BC82BFF88147C3DE432169578E304C72D595320436992C6FC43 | 230 | 20180921014417 2 6 100 4095 5 CB00EACDC1EDB3E4111DB89DA6722A2D66156FC2F5B602DCE0510B47F36F6E94615D96D222BD22037AD407B782A888F534CE84C04E6B78FDF3F24C869960888D33F8396A58F34238B7E2F2BF3CE48263BE78474C422A073FCCF02C47218509E5A989208456CC7ECCB7004957802A413AA0AB3E51C29FB53A99886977A86B4C47A56C2F312D3BA2B2CC4D5CE637B13A77369D5D5CF478E9D38389969F5CF041863F1D5714F11BC66C0FEF500A6B3FEB18BDF575E9E0F066E0A42DEC284B5A23D1C31C628F672D94363CBCCEA7C81636D51D81337E7556B726B35185139FA7568978E684E511DB467D92F0B56B43ADF802E7ADC15107723068B06E024DD25340B228AE9674BC3FC58D6BD55FE67F01B197847B6F4FE8F2DF6BC8C72292067C6BEA73C1D8176926BDBB7A620C36CEC57230A89C9799416E68ECEB323425728DE2830C64979DDEC6355F2BB391FBDC705A5C1537EB03D2372650409D7084D6FF1B3913F9796109B40CAD99DC8B4EED4379A67E96FD1192BC87A5C60A410BB6996D1E0DA0D7E43CE2632B14714E6A25569B9F42D51F22C067F12E6E030DF1205FC91429E93214891F026089748772A64DD21C2F13EC3BEBC313187FB8936613D8E4A93F8569FFC6C6509D43F3939D4CFA5BF958D6E1E9E148DDD3E332728957413FA6084CDDC1263419C9C712F5DC3177F39F0EE5CB8B5F90EE60EEC4A002D62CB7EF |
231 | 20180406115213 2 6 100 6143 5 E0CFB3582CE2D136E662908DCAA4CD666F574807FFFFF04BFB357D087BD132C8B569A579EC7FEDA39DA9FDBC7A8B289953FC1793F1B5D0F13A317C5F25554892D8A4F4EE9E85B9737D1412316C8169810745D8AC420ED45AA5419137F86E811AA101CD8746EDC5AF653499CA5585851205807E7EC4A3241FDD4C302AAC131FE24B2AC3700D3D21A82EB999FD0005E810811CEB2B1279D95E028269503DBF65FB23CBFC595B12BC67EC4A77D00324909088B6FDF511ABA41732957D32CC436FB0BE95E04F46DF57EC93E4FBD8FF12E18288384CBFABB1BD58F4A047CBF1AB831B43C550515DA98CA33697ECEE8AFAC110E7DD284D531324AC21013C86CFBC9DC286B6669534D8E2D40319E9BA9DC5ACE1825354E1869614CBCB708586A9455D20FC3B724C6FBF941EAAB3FFA61647906B890D9C8F2831A59B7A9A4EB6305DAEDE94A0525C8150EA3B27FC405430B82885E8EAA64A46E2E24DA089A0008C09C5B8117F5E5F397DCAC43906067AE2C6A1B7C1D1B2D233EFF6CBC472F328053EB666EC826604ADA4E27CA01FF98B7A5ADCF8FD3A6E2F6AEC4F36CE8D1D847E611CFDDA7B53AE4F0BA6481A2265D134B5B78F8416164B262CF58FA8806090613D09FA2E8CC417AF2A3208F5BB210CA87927C4FB980C9B97A743CC1B3A7BB9E22DD78EDFB52669C4DB24F796C5D99038E140CE81A9DFECE675F200DC0DEC203FB94380EAA8D13F30530A410BCBD393137FBF89AB80D872D6A4A46B303F01E79FA05DEF4F0F2A2ABD0788459E4C678F3952072570971EA5A686E5964D1C3A61E2311F57E7AB8519809243EB88A87A21B6589A16862EE1B9B4DD452950DDBB5D5482099FC667B5F9A43E3F803D9D0030D0D6E0F86DBFD2B0C2A67B9BFB1F318C6DF0745F75F9F59C7CC62F4763FBBFE3517BF28D9B68372674CBB759E150F6F06FB3053343D54DB7959B79C3764FE57AC25EF6728F1A6A2C6D98E56841DC461BBF12BD23E8C058D500435777431ADC23CA373B0F4A43B5E18787925E79113199A368F30692429BF3041D9BC82BFF88147C3DE432169578E304C72D595320436995ACE13F | 231 | 20180921021218 2 6 100 4095 2 CB00EACDC1EDB3E4111DB89DA6722A2D66156FC2F5B602DCE0510B47F36F6E94615D96D222BD22037AD407B782A888F534CE84C04E6B78FDF3F24C869960888D33F8396A58F34238B7E2F2BF3CE48263BE78474C422A073FCCF02C47218509E5A989208456CC7ECCB7004957802A413AA0AB3E51C29FB53A99886977A86B4C47A56C2F312D3BA2B2CC4D5CE637B13A77369D5D5CF478E9D38389969F5CF041863F1D5714F11BC66C0FEF500A6B3FEB18BDF575E9E0F066E0A42DEC284B5A23D1C31C628F672D94363CBCCEA7C81636D51D81337E7556B726B35185139FA7568978E684E511DB467D92F0B56B43ADF802E7ADC15107723068B06E024DD25340B228AE9674BC3FC58D6BD55FE67F01B197847B6F4FE8F2DF6BC8C72292067C6BEA73C1D8176926BDBB7A620C36CEC57230A89C9799416E68ECEB323425728DE2830C64979DDEC6355F2BB391FBDC705A5C1537EB03D2372650409D7084D6FF1B3913F9796109B40CAD99DC8B4EED4379A67E96FD1192BC87A5C60A410BB6996D1E0DA0D7E43CE2632B14714E6A25569B9F42D51F22C067F12E6E030DF1205FC91429E93214891F026089748772A64DD21C2F13EC3BEBC313187FB8936613D8E4A93F8569FFC6C6509D43F3939D4CFA5BF958D6E1E9E148DDD3E332728957413FA6084CDDC1263419C9C712F5DC3177F39F0EE5CB8B5F90EE60EEC4A002D835583B |
232 | 20180406155248 2 6 100 6143 5 E0CFB3582CE2D136E662908DCAA4CD666F574807FFFFF04BFB357D087BD132C8B569A579EC7FEDA39DA9FDBC7A8B289953FC1793F1B5D0F13A317C5F25554892D8A4F4EE9E85B9737D1412316C8169810745D8AC420ED45AA5419137F86E811AA101CD8746EDC5AF653499CA5585851205807E7EC4A3241FDD4C302AAC131FE24B2AC3700D3D21A82EB999FD0005E810811CEB2B1279D95E028269503DBF65FB23CBFC595B12BC67EC4A77D00324909088B6FDF511ABA41732957D32CC436FB0BE95E04F46DF57EC93E4FBD8FF12E18288384CBFABB1BD58F4A047CBF1AB831B43C550515DA98CA33697ECEE8AFAC110E7DD284D531324AC21013C86CFBC9DC286B6669534D8E2D40319E9BA9DC5ACE1825354E1869614CBCB708586A9455D20FC3B724C6FBF941EAAB3FFA61647906B890D9C8F2831A59B7A9A4EB6305DAEDE94A0525C8150EA3B27FC405430B82885E8EAA64A46E2E24DA089A0008C09C5B8117F5E5F397DCAC43906067AE2C6A1B7C1D1B2D233EFF6CBC472F328053EB666EC826604ADA4E27CA01FF98B7A5ADCF8FD3A6E2F6AEC4F36CE8D1D847E611CFDDA7B53AE4F0BA6481A2265D134B5B78F8416164B262CF58FA8806090613D09FA2E8CC417AF2A3208F5BB210CA87927C4FB980C9B97A743CC1B3A7BB9E22DD78EDFB52669C4DB24F796C5D99038E140CE81A9DFECE675F200DC0DEC203FB94380EAA8D13F30530A410BCBD393137FBF89AB80D872D6A4A46B303F01E79FA05DEF4F0F2A2ABD0788459E4C678F3952072570971EA5A686E5964D1C3A61E2311F57E7AB8519809243EB88A87A21B6589A16862EE1B9B4DD452950DDBB5D5482099FC667B5F9A43E3F803D9D0030D0D6E0F86DBFD2B0C2A67B9BFB1F318C6DF0745F75F9F59C7CC62F4763FBBFE3517BF28D9B68372674CBB759E150F6F06FB3053343D54DB7959B79C3764FE57AC25EF6728F1A6A2C6D98E56841DC461BBF12BD23E8C058D500435777431ADC23CA373B0F4A43B5E18787925E79113199A368F30692429BF3041D9BC82BFF88147C3DE432169578E304C72D595320436997C8EA27 | 232 | 20180921023434 2 6 100 4095 2 CB00EACDC1EDB3E4111DB89DA6722A2D66156FC2F5B602DCE0510B47F36F6E94615D96D222BD22037AD407B782A888F534CE84C04E6B78FDF3F24C869960888D33F8396A58F34238B7E2F2BF3CE48263BE78474C422A073FCCF02C47218509E5A989208456CC7ECCB7004957802A413AA0AB3E51C29FB53A99886977A86B4C47A56C2F312D3BA2B2CC4D5CE637B13A77369D5D5CF478E9D38389969F5CF041863F1D5714F11BC66C0FEF500A6B3FEB18BDF575E9E0F066E0A42DEC284B5A23D1C31C628F672D94363CBCCEA7C81636D51D81337E7556B726B35185139FA7568978E684E511DB467D92F0B56B43ADF802E7ADC15107723068B06E024DD25340B228AE9674BC3FC58D6BD55FE67F01B197847B6F4FE8F2DF6BC8C72292067C6BEA73C1D8176926BDBB7A620C36CEC57230A89C9799416E68ECEB323425728DE2830C64979DDEC6355F2BB391FBDC705A5C1537EB03D2372650409D7084D6FF1B3913F9796109B40CAD99DC8B4EED4379A67E96FD1192BC87A5C60A410BB6996D1E0DA0D7E43CE2632B14714E6A25569B9F42D51F22C067F12E6E030DF1205FC91429E93214891F026089748772A64DD21C2F13EC3BEBC313187FB8936613D8E4A93F8569FFC6C6509D43F3939D4CFA5BF958D6E1E9E148DDD3E332728957413FA6084CDDC1263419C9C712F5DC3177F39F0EE5CB8B5F90EE60EEC4A002D9D786F3 |
233 | 20180406170431 2 6 100 6143 2 E0CFB3582CE2D136E662908DCAA4CD666F574807FFFFF04BFB357D087BD132C8B569A579EC7FEDA39DA9FDBC7A8B289953FC1793F1B5D0F13A317C5F25554892D8A4F4EE9E85B9737D1412316C8169810745D8AC420ED45AA5419137F86E811AA101CD8746EDC5AF653499CA5585851205807E7EC4A3241FDD4C302AAC131FE24B2AC3700D3D21A82EB999FD0005E810811CEB2B1279D95E028269503DBF65FB23CBFC595B12BC67EC4A77D00324909088B6FDF511ABA41732957D32CC436FB0BE95E04F46DF57EC93E4FBD8FF12E18288384CBFABB1BD58F4A047CBF1AB831B43C550515DA98CA33697ECEE8AFAC110E7DD284D531324AC21013C86CFBC9DC286B6669534D8E2D40319E9BA9DC5ACE1825354E1869614CBCB708586A9455D20FC3B724C6FBF941EAAB3FFA61647906B890D9C8F2831A59B7A9A4EB6305DAEDE94A0525C8150EA3B27FC405430B82885E8EAA64A46E2E24DA089A0008C09C5B8117F5E5F397DCAC43906067AE2C6A1B7C1D1B2D233EFF6CBC472F328053EB666EC826604ADA4E27CA01FF98B7A5ADCF8FD3A6E2F6AEC4F36CE8D1D847E611CFDDA7B53AE4F0BA6481A2265D134B5B78F8416164B262CF58FA8806090613D09FA2E8CC417AF2A3208F5BB210CA87927C4FB980C9B97A743CC1B3A7BB9E22DD78EDFB52669C4DB24F796C5D99038E140CE81A9DFECE675F200DC0DEC203FB94380EAA8D13F30530A410BCBD393137FBF89AB80D872D6A4A46B303F01E79FA05DEF4F0F2A2ABD0788459E4C678F3952072570971EA5A686E5964D1C3A61E2311F57E7AB8519809243EB88A87A21B6589A16862EE1B9B4DD452950DDBB5D5482099FC667B5F9A43E3F803D9D0030D0D6E0F86DBFD2B0C2A67B9BFB1F318C6DF0745F75F9F59C7CC62F4763FBBFE3517BF28D9B68372674CBB759E150F6F06FB3053343D54DB7959B79C3764FE57AC25EF6728F1A6A2C6D98E56841DC461BBF12BD23E8C058D500435777431ADC23CA373B0F4A43B5E18787925E79113199A368F30692429BF3041D9BC82BFF88147C3DE432169578E304C72D595320436998593AD3 | 233 | 20180921024155 2 6 100 4095 2 CB00EACDC1EDB3E4111DB89DA6722A2D66156FC2F5B602DCE0510B47F36F6E94615D96D222BD22037AD407B782A888F534CE84C04E6B78FDF3F24C869960888D33F8396A58F34238B7E2F2BF3CE48263BE78474C422A073FCCF02C47218509E5A989208456CC7ECCB7004957802A413AA0AB3E51C29FB53A99886977A86B4C47A56C2F312D3BA2B2CC4D5CE637B13A77369D5D5CF478E9D38389969F5CF041863F1D5714F11BC66C0FEF500A6B3FEB18BDF575E9E0F066E0A42DEC284B5A23D1C31C628F672D94363CBCCEA7C81636D51D81337E7556B726B35185139FA7568978E684E511DB467D92F0B56B43ADF802E7ADC15107723068B06E024DD25340B228AE9674BC3FC58D6BD55FE67F01B197847B6F4FE8F2DF6BC8C72292067C6BEA73C1D8176926BDBB7A620C36CEC57230A89C9799416E68ECEB323425728DE2830C64979DDEC6355F2BB391FBDC705A5C1537EB03D2372650409D7084D6FF1B3913F9796109B40CAD99DC8B4EED4379A67E96FD1192BC87A5C60A410BB6996D1E0DA0D7E43CE2632B14714E6A25569B9F42D51F22C067F12E6E030DF1205FC91429E93214891F026089748772A64DD21C2F13EC3BEBC313187FB8936613D8E4A93F8569FFC6C6509D43F3939D4CFA5BF958D6E1E9E148DDD3E332728957413FA6084CDDC1263419C9C712F5DC3177F39F0EE5CB8B5F90EE60EEC4A002DA550ABB |
234 | 20180406184640 2 6 100 6143 5 E0CFB3582CE2D136E662908DCAA4CD666F574807FFFFF04BFB357D087BD132C8B569A579EC7FEDA39DA9FDBC7A8B289953FC1793F1B5D0F13A317C5F25554892D8A4F4EE9E85B9737D1412316C8169810745D8AC420ED45AA5419137F86E811AA101CD8746EDC5AF653499CA5585851205807E7EC4A3241FDD4C302AAC131FE24B2AC3700D3D21A82EB999FD0005E810811CEB2B1279D95E028269503DBF65FB23CBFC595B12BC67EC4A77D00324909088B6FDF511ABA41732957D32CC436FB0BE95E04F46DF57EC93E4FBD8FF12E18288384CBFABB1BD58F4A047CBF1AB831B43C550515DA98CA33697ECEE8AFAC110E7DD284D531324AC21013C86CFBC9DC286B6669534D8E2D40319E9BA9DC5ACE1825354E1869614CBCB708586A9455D20FC3B724C6FBF941EAAB3FFA61647906B890D9C8F2831A59B7A9A4EB6305DAEDE94A0525C8150EA3B27FC405430B82885E8EAA64A46E2E24DA089A0008C09C5B8117F5E5F397DCAC43906067AE2C6A1B7C1D1B2D233EFF6CBC472F328053EB666EC826604ADA4E27CA01FF98B7A5ADCF8FD3A6E2F6AEC4F36CE8D1D847E611CFDDA7B53AE4F0BA6481A2265D134B5B78F8416164B262CF58FA8806090613D09FA2E8CC417AF2A3208F5BB210CA87927C4FB980C9B97A743CC1B3A7BB9E22DD78EDFB52669C4DB24F796C5D99038E140CE81A9DFECE675F200DC0DEC203FB94380EAA8D13F30530A410BCBD393137FBF89AB80D872D6A4A46B303F01E79FA05DEF4F0F2A2ABD0788459E4C678F3952072570971EA5A686E5964D1C3A61E2311F57E7AB8519809243EB88A87A21B6589A16862EE1B9B4DD452950DDBB5D5482099FC667B5F9A43E3F803D9D0030D0D6E0F86DBFD2B0C2A67B9BFB1F318C6DF0745F75F9F59C7CC62F4763FBBFE3517BF28D9B68372674CBB759E150F6F06FB3053343D54DB7959B79C3764FE57AC25EF6728F1A6A2C6D98E56841DC461BBF12BD23E8C058D500435777431ADC23CA373B0F4A43B5E18787925E79113199A368F30692429BF3041D9BC82BFF88147C3DE432169578E304C72D59532043699940ADB7 | 234 | 20180921031006 2 6 100 4095 2 CB00EACDC1EDB3E4111DB89DA6722A2D66156FC2F5B602DCE0510B47F36F6E94615D96D222BD22037AD407B782A888F534CE84C04E6B78FDF3F24C869960888D33F8396A58F34238B7E2F2BF3CE48263BE78474C422A073FCCF02C47218509E5A989208456CC7ECCB7004957802A413AA0AB3E51C29FB53A99886977A86B4C47A56C2F312D3BA2B2CC4D5CE637B13A77369D5D5CF478E9D38389969F5CF041863F1D5714F11BC66C0FEF500A6B3FEB18BDF575E9E0F066E0A42DEC284B5A23D1C31C628F672D94363CBCCEA7C81636D51D81337E7556B726B35185139FA7568978E684E511DB467D92F0B56B43ADF802E7ADC15107723068B06E024DD25340B228AE9674BC3FC58D6BD55FE67F01B197847B6F4FE8F2DF6BC8C72292067C6BEA73C1D8176926BDBB7A620C36CEC57230A89C9799416E68ECEB323425728DE2830C64979DDEC6355F2BB391FBDC705A5C1537EB03D2372650409D7084D6FF1B3913F9796109B40CAD99DC8B4EED4379A67E96FD1192BC87A5C60A410BB6996D1E0DA0D7E43CE2632B14714E6A25569B9F42D51F22C067F12E6E030DF1205FC91429E93214891F026089748772A64DD21C2F13EC3BEBC313187FB8936613D8E4A93F8569FFC6C6509D43F3939D4CFA5BF958D6E1E9E148DDD3E332728957413FA6084CDDC1263419C9C712F5DC3177F39F0EE5CB8B5F90EE60EEC4A002DC5EBE23 |
235 | 20180407000748 2 6 100 6143 2 E0CFB3582CE2D136E662908DCAA4CD666F574807FFFFF04BFB357D087BD132C8B569A579EC7FEDA39DA9FDBC7A8B289953FC1793F1B5D0F13A317C5F25554892D8A4F4EE9E85B9737D1412316C8169810745D8AC420ED45AA5419137F86E811AA101CD8746EDC5AF653499CA5585851205807E7EC4A3241FDD4C302AAC131FE24B2AC3700D3D21A82EB999FD0005E810811CEB2B1279D95E028269503DBF65FB23CBFC595B12BC67EC4A77D00324909088B6FDF511ABA41732957D32CC436FB0BE95E04F46DF57EC93E4FBD8FF12E18288384CBFABB1BD58F4A047CBF1AB831B43C550515DA98CA33697ECEE8AFAC110E7DD284D531324AC21013C86CFBC9DC286B6669534D8E2D40319E9BA9DC5ACE1825354E1869614CBCB708586A9455D20FC3B724C6FBF941EAAB3FFA61647906B890D9C8F2831A59B7A9A4EB6305DAEDE94A0525C8150EA3B27FC405430B82885E8EAA64A46E2E24DA089A0008C09C5B8117F5E5F397DCAC43906067AE2C6A1B7C1D1B2D233EFF6CBC472F328053EB666EC826604ADA4E27CA01FF98B7A5ADCF8FD3A6E2F6AEC4F36CE8D1D847E611CFDDA7B53AE4F0BA6481A2265D134B5B78F8416164B262CF58FA8806090613D09FA2E8CC417AF2A3208F5BB210CA87927C4FB980C9B97A743CC1B3A7BB9E22DD78EDFB52669C4DB24F796C5D99038E140CE81A9DFECE675F200DC0DEC203FB94380EAA8D13F30530A410BCBD393137FBF89AB80D872D6A4A46B303F01E79FA05DEF4F0F2A2ABD0788459E4C678F3952072570971EA5A686E5964D1C3A61E2311F57E7AB8519809243EB88A87A21B6589A16862EE1B9B4DD452950DDBB5D5482099FC667B5F9A43E3F803D9D0030D0D6E0F86DBFD2B0C2A67B9BFB1F318C6DF0745F75F9F59C7CC62F4763FBBFE3517BF28D9B68372674CBB759E150F6F06FB3053343D54DB7959B79C3764FE57AC25EF6728F1A6A2C6D98E56841DC461BBF12BD23E8C058D500435777431ADC23CA373B0F4A43B5E18787925E79113199A368F30692429BF3041D9BC82BFF88147C3DE432169578E304C72D59532043699C562CCB | 235 | 20180921031034 2 6 100 4095 5 CB00EACDC1EDB3E4111DB89DA6722A2D66156FC2F5B602DCE0510B47F36F6E94615D96D222BD22037AD407B782A888F534CE84C04E6B78FDF3F24C869960888D33F8396A58F34238B7E2F2BF3CE48263BE78474C422A073FCCF02C47218509E5A989208456CC7ECCB7004957802A413AA0AB3E51C29FB53A99886977A86B4C47A56C2F312D3BA2B2CC4D5CE637B13A77369D5D5CF478E9D38389969F5CF041863F1D5714F11BC66C0FEF500A6B3FEB18BDF575E9E0F066E0A42DEC284B5A23D1C31C628F672D94363CBCCEA7C81636D51D81337E7556B726B35185139FA7568978E684E511DB467D92F0B56B43ADF802E7ADC15107723068B06E024DD25340B228AE9674BC3FC58D6BD55FE67F01B197847B6F4FE8F2DF6BC8C72292067C6BEA73C1D8176926BDBB7A620C36CEC57230A89C9799416E68ECEB323425728DE2830C64979DDEC6355F2BB391FBDC705A5C1537EB03D2372650409D7084D6FF1B3913F9796109B40CAD99DC8B4EED4379A67E96FD1192BC87A5C60A410BB6996D1E0DA0D7E43CE2632B14714E6A25569B9F42D51F22C067F12E6E030DF1205FC91429E93214891F026089748772A64DD21C2F13EC3BEBC313187FB8936613D8E4A93F8569FFC6C6509D43F3939D4CFA5BF958D6E1E9E148DDD3E332728957413FA6084CDDC1263419C9C712F5DC3177F39F0EE5CB8B5F90EE60EEC4A002DC5EC45F |
236 | 20180407041558 2 6 100 6143 2 E0CFB3582CE2D136E662908DCAA4CD666F574807FFFFF04BFB357D087BD132C8B569A579EC7FEDA39DA9FDBC7A8B289953FC1793F1B5D0F13A317C5F25554892D8A4F4EE9E85B9737D1412316C8169810745D8AC420ED45AA5419137F86E811AA101CD8746EDC5AF653499CA5585851205807E7EC4A3241FDD4C302AAC131FE24B2AC3700D3D21A82EB999FD0005E810811CEB2B1279D95E028269503DBF65FB23CBFC595B12BC67EC4A77D00324909088B6FDF511ABA41732957D32CC436FB0BE95E04F46DF57EC93E4FBD8FF12E18288384CBFABB1BD58F4A047CBF1AB831B43C550515DA98CA33697ECEE8AFAC110E7DD284D531324AC21013C86CFBC9DC286B6669534D8E2D40319E9BA9DC5ACE1825354E1869614CBCB708586A9455D20FC3B724C6FBF941EAAB3FFA61647906B890D9C8F2831A59B7A9A4EB6305DAEDE94A0525C8150EA3B27FC405430B82885E8EAA64A46E2E24DA089A0008C09C5B8117F5E5F397DCAC43906067AE2C6A1B7C1D1B2D233EFF6CBC472F328053EB666EC826604ADA4E27CA01FF98B7A5ADCF8FD3A6E2F6AEC4F36CE8D1D847E611CFDDA7B53AE4F0BA6481A2265D134B5B78F8416164B262CF58FA8806090613D09FA2E8CC417AF2A3208F5BB210CA87927C4FB980C9B97A743CC1B3A7BB9E22DD78EDFB52669C4DB24F796C5D99038E140CE81A9DFECE675F200DC0DEC203FB94380EAA8D13F30530A410BCBD393137FBF89AB80D872D6A4A46B303F01E79FA05DEF4F0F2A2ABD0788459E4C678F3952072570971EA5A686E5964D1C3A61E2311F57E7AB8519809243EB88A87A21B6589A16862EE1B9B4DD452950DDBB5D5482099FC667B5F9A43E3F803D9D0030D0D6E0F86DBFD2B0C2A67B9BFB1F318C6DF0745F75F9F59C7CC62F4763FBBFE3517BF28D9B68372674CBB759E150F6F06FB3053343D54DB7959B79C3764FE57AC25EF6728F1A6A2C6D98E56841DC461BBF12BD23E8C058D500435777431ADC23CA373B0F4A43B5E18787925E79113199A368F30692429BF3041D9BC82BFF88147C3DE432169578E304C72D59532043699EECE453 | 236 | 20180921032220 2 6 100 4095 2 CB00EACDC1EDB3E4111DB89DA6722A2D66156FC2F5B602DCE0510B47F36F6E94615D96D222BD22037AD407B782A888F534CE84C04E6B78FDF3F24C869960888D33F8396A58F34238B7E2F2BF3CE48263BE78474C422A073FCCF02C47218509E5A989208456CC7ECCB7004957802A413AA0AB3E51C29FB53A99886977A86B4C47A56C2F312D3BA2B2CC4D5CE637B13A77369D5D5CF478E9D38389969F5CF041863F1D5714F11BC66C0FEF500A6B3FEB18BDF575E9E0F066E0A42DEC284B5A23D1C31C628F672D94363CBCCEA7C81636D51D81337E7556B726B35185139FA7568978E684E511DB467D92F0B56B43ADF802E7ADC15107723068B06E024DD25340B228AE9674BC3FC58D6BD55FE67F01B197847B6F4FE8F2DF6BC8C72292067C6BEA73C1D8176926BDBB7A620C36CEC57230A89C9799416E68ECEB323425728DE2830C64979DDEC6355F2BB391FBDC705A5C1537EB03D2372650409D7084D6FF1B3913F9796109B40CAD99DC8B4EED4379A67E96FD1192BC87A5C60A410BB6996D1E0DA0D7E43CE2632B14714E6A25569B9F42D51F22C067F12E6E030DF1205FC91429E93214891F026089748772A64DD21C2F13EC3BEBC313187FB8936613D8E4A93F8569FFC6C6509D43F3939D4CFA5BF958D6E1E9E148DDD3E332728957413FA6084CDDC1263419C9C712F5DC3177F39F0EE5CB8B5F90EE60EEC4A002DD2F3B53 |
237 | 20180407070330 2 6 100 6143 5 E0CFB3582CE2D136E662908DCAA4CD666F574807FFFFF04BFB357D087BD132C8B569A579EC7FEDA39DA9FDBC7A8B289953FC1793F1B5D0F13A317C5F25554892D8A4F4EE9E85B9737D1412316C8169810745D8AC420ED45AA5419137F86E811AA101CD8746EDC5AF653499CA5585851205807E7EC4A3241FDD4C302AAC131FE24B2AC3700D3D21A82EB999FD0005E810811CEB2B1279D95E028269503DBF65FB23CBFC595B12BC67EC4A77D00324909088B6FDF511ABA41732957D32CC436FB0BE95E04F46DF57EC93E4FBD8FF12E18288384CBFABB1BD58F4A047CBF1AB831B43C550515DA98CA33697ECEE8AFAC110E7DD284D531324AC21013C86CFBC9DC286B6669534D8E2D40319E9BA9DC5ACE1825354E1869614CBCB708586A9455D20FC3B724C6FBF941EAAB3FFA61647906B890D9C8F2831A59B7A9A4EB6305DAEDE94A0525C8150EA3B27FC405430B82885E8EAA64A46E2E24DA089A0008C09C5B8117F5E5F397DCAC43906067AE2C6A1B7C1D1B2D233EFF6CBC472F328053EB666EC826604ADA4E27CA01FF98B7A5ADCF8FD3A6E2F6AEC4F36CE8D1D847E611CFDDA7B53AE4F0BA6481A2265D134B5B78F8416164B262CF58FA8806090613D09FA2E8CC417AF2A3208F5BB210CA87927C4FB980C9B97A743CC1B3A7BB9E22DD78EDFB52669C4DB24F796C5D99038E140CE81A9DFECE675F200DC0DEC203FB94380EAA8D13F30530A410BCBD393137FBF89AB80D872D6A4A46B303F01E79FA05DEF4F0F2A2ABD0788459E4C678F3952072570971EA5A686E5964D1C3A61E2311F57E7AB8519809243EB88A87A21B6589A16862EE1B9B4DD452950DDBB5D5482099FC667B5F9A43E3F803D9D0030D0D6E0F86DBFD2B0C2A67B9BFB1F318C6DF0745F75F9F59C7CC62F4763FBBFE3517BF28D9B68372674CBB759E150F6F06FB3053343D54DB7959B79C3764FE57AC25EF6728F1A6A2C6D98E56841DC461BBF12BD23E8C058D500435777431ADC23CA373B0F4A43B5E18787925E79113199A368F30692429BF3041D9BC82BFF88147C3DE432169578E304C72D5953204369A0B1D577 | 237 | 20180921032554 2 6 100 4095 2 CB00EACDC1EDB3E4111DB89DA6722A2D66156FC2F5B602DCE0510B47F36F6E94615D96D222BD22037AD407B782A888F534CE84C04E6B78FDF3F24C869960888D33F8396A58F34238B7E2F2BF3CE48263BE78474C422A073FCCF02C47218509E5A989208456CC7ECCB7004957802A413AA0AB3E51C29FB53A99886977A86B4C47A56C2F312D3BA2B2CC4D5CE637B13A77369D5D5CF478E9D38389969F5CF041863F1D5714F11BC66C0FEF500A6B3FEB18BDF575E9E0F066E0A42DEC284B5A23D1C31C628F672D94363CBCCEA7C81636D51D81337E7556B726B35185139FA7568978E684E511DB467D92F0B56B43ADF802E7ADC15107723068B06E024DD25340B228AE9674BC3FC58D6BD55FE67F01B197847B6F4FE8F2DF6BC8C72292067C6BEA73C1D8176926BDBB7A620C36CEC57230A89C9799416E68ECEB323425728DE2830C64979DDEC6355F2BB391FBDC705A5C1537EB03D2372650409D7084D6FF1B3913F9796109B40CAD99DC8B4EED4379A67E96FD1192BC87A5C60A410BB6996D1E0DA0D7E43CE2632B14714E6A25569B9F42D51F22C067F12E6E030DF1205FC91429E93214891F026089748772A64DD21C2F13EC3BEBC313187FB8936613D8E4A93F8569FFC6C6509D43F3939D4CFA5BF958D6E1E9E148DDD3E332728957413FA6084CDDC1263419C9C712F5DC3177F39F0EE5CB8B5F90EE60EEC4A002DD68BE4B |
238 | 20180407100408 2 6 100 6143 2 E0CFB3582CE2D136E662908DCAA4CD666F574807FFFFF04BFB357D087BD132C8B569A579EC7FEDA39DA9FDBC7A8B289953FC1793F1B5D0F13A317C5F25554892D8A4F4EE9E85B9737D1412316C8169810745D8AC420ED45AA5419137F86E811AA101CD8746EDC5AF653499CA5585851205807E7EC4A3241FDD4C302AAC131FE24B2AC3700D3D21A82EB999FD0005E810811CEB2B1279D95E028269503DBF65FB23CBFC595B12BC67EC4A77D00324909088B6FDF511ABA41732957D32CC436FB0BE95E04F46DF57EC93E4FBD8FF12E18288384CBFABB1BD58F4A047CBF1AB831B43C550515DA98CA33697ECEE8AFAC110E7DD284D531324AC21013C86CFBC9DC286B6669534D8E2D40319E9BA9DC5ACE1825354E1869614CBCB708586A9455D20FC3B724C6FBF941EAAB3FFA61647906B890D9C8F2831A59B7A9A4EB6305DAEDE94A0525C8150EA3B27FC405430B82885E8EAA64A46E2E24DA089A0008C09C5B8117F5E5F397DCAC43906067AE2C6A1B7C1D1B2D233EFF6CBC472F328053EB666EC826604ADA4E27CA01FF98B7A5ADCF8FD3A6E2F6AEC4F36CE8D1D847E611CFDDA7B53AE4F0BA6481A2265D134B5B78F8416164B262CF58FA8806090613D09FA2E8CC417AF2A3208F5BB210CA87927C4FB980C9B97A743CC1B3A7BB9E22DD78EDFB52669C4DB24F796C5D99038E140CE81A9DFECE675F200DC0DEC203FB94380EAA8D13F30530A410BCBD393137FBF89AB80D872D6A4A46B303F01E79FA05DEF4F0F2A2ABD0788459E4C678F3952072570971EA5A686E5964D1C3A61E2311F57E7AB8519809243EB88A87A21B6589A16862EE1B9B4DD452950DDBB5D5482099FC667B5F9A43E3F803D9D0030D0D6E0F86DBFD2B0C2A67B9BFB1F318C6DF0745F75F9F59C7CC62F4763FBBFE3517BF28D9B68372674CBB759E150F6F06FB3053343D54DB7959B79C3764FE57AC25EF6728F1A6A2C6D98E56841DC461BBF12BD23E8C058D500435777431ADC23CA373B0F4A43B5E18787925E79113199A368F30692429BF3041D9BC82BFF88147C3DE432169578E304C72D5953204369A29D405B | 238 | 20180921032729 2 6 100 4095 2 CB00EACDC1EDB3E4111DB89DA6722A2D66156FC2F5B602DCE0510B47F36F6E94615D96D222BD22037AD407B782A888F534CE84C04E6B78FDF3F24C869960888D33F8396A58F34238B7E2F2BF3CE48263BE78474C422A073FCCF02C47218509E5A989208456CC7ECCB7004957802A413AA0AB3E51C29FB53A99886977A86B4C47A56C2F312D3BA2B2CC4D5CE637B13A77369D5D5CF478E9D38389969F5CF041863F1D5714F11BC66C0FEF500A6B3FEB18BDF575E9E0F066E0A42DEC284B5A23D1C31C628F672D94363CBCCEA7C81636D51D81337E7556B726B35185139FA7568978E684E511DB467D92F0B56B43ADF802E7ADC15107723068B06E024DD25340B228AE9674BC3FC58D6BD55FE67F01B197847B6F4FE8F2DF6BC8C72292067C6BEA73C1D8176926BDBB7A620C36CEC57230A89C9799416E68ECEB323425728DE2830C64979DDEC6355F2BB391FBDC705A5C1537EB03D2372650409D7084D6FF1B3913F9796109B40CAD99DC8B4EED4379A67E96FD1192BC87A5C60A410BB6996D1E0DA0D7E43CE2632B14714E6A25569B9F42D51F22C067F12E6E030DF1205FC91429E93214891F026089748772A64DD21C2F13EC3BEBC313187FB8936613D8E4A93F8569FFC6C6509D43F3939D4CFA5BF958D6E1E9E148DDD3E332728957413FA6084CDDC1263419C9C712F5DC3177F39F0EE5CB8B5F90EE60EEC4A002DD7D755B |
239 | 20180407103952 2 6 100 6143 2 E0CFB3582CE2D136E662908DCAA4CD666F574807FFFFF04BFB357D087BD132C8B569A579EC7FEDA39DA9FDBC7A8B289953FC1793F1B5D0F13A317C5F25554892D8A4F4EE9E85B9737D1412316C8169810745D8AC420ED45AA5419137F86E811AA101CD8746EDC5AF653499CA5585851205807E7EC4A3241FDD4C302AAC131FE24B2AC3700D3D21A82EB999FD0005E810811CEB2B1279D95E028269503DBF65FB23CBFC595B12BC67EC4A77D00324909088B6FDF511ABA41732957D32CC436FB0BE95E04F46DF57EC93E4FBD8FF12E18288384CBFABB1BD58F4A047CBF1AB831B43C550515DA98CA33697ECEE8AFAC110E7DD284D531324AC21013C86CFBC9DC286B6669534D8E2D40319E9BA9DC5ACE1825354E1869614CBCB708586A9455D20FC3B724C6FBF941EAAB3FFA61647906B890D9C8F2831A59B7A9A4EB6305DAEDE94A0525C8150EA3B27FC405430B82885E8EAA64A46E2E24DA089A0008C09C5B8117F5E5F397DCAC43906067AE2C6A1B7C1D1B2D233EFF6CBC472F328053EB666EC826604ADA4E27CA01FF98B7A5ADCF8FD3A6E2F6AEC4F36CE8D1D847E611CFDDA7B53AE4F0BA6481A2265D134B5B78F8416164B262CF58FA8806090613D09FA2E8CC417AF2A3208F5BB210CA87927C4FB980C9B97A743CC1B3A7BB9E22DD78EDFB52669C4DB24F796C5D99038E140CE81A9DFECE675F200DC0DEC203FB94380EAA8D13F30530A410BCBD393137FBF89AB80D872D6A4A46B303F01E79FA05DEF4F0F2A2ABD0788459E4C678F3952072570971EA5A686E5964D1C3A61E2311F57E7AB8519809243EB88A87A21B6589A16862EE1B9B4DD452950DDBB5D5482099FC667B5F9A43E3F803D9D0030D0D6E0F86DBFD2B0C2A67B9BFB1F318C6DF0745F75F9F59C7CC62F4763FBBFE3517BF28D9B68372674CBB759E150F6F06FB3053343D54DB7959B79C3764FE57AC25EF6728F1A6A2C6D98E56841DC461BBF12BD23E8C058D500435777431ADC23CA373B0F4A43B5E18787925E79113199A368F30692429BF3041D9BC82BFF88147C3DE432169578E304C72D5953204369A2F83A33 | 239 | 20180921034633 2 6 100 4095 5 CB00EACDC1EDB3E4111DB89DA6722A2D66156FC2F5B602DCE0510B47F36F6E94615D96D222BD22037AD407B782A888F534CE84C04E6B78FDF3F24C869960888D33F8396A58F34238B7E2F2BF3CE48263BE78474C422A073FCCF02C47218509E5A989208456CC7ECCB7004957802A413AA0AB3E51C29FB53A99886977A86B4C47A56C2F312D3BA2B2CC4D5CE637B13A77369D5D5CF478E9D38389969F5CF041863F1D5714F11BC66C0FEF500A6B3FEB18BDF575E9E0F066E0A42DEC284B5A23D1C31C628F672D94363CBCCEA7C81636D51D81337E7556B726B35185139FA7568978E684E511DB467D92F0B56B43ADF802E7ADC15107723068B06E024DD25340B228AE9674BC3FC58D6BD55FE67F01B197847B6F4FE8F2DF6BC8C72292067C6BEA73C1D8176926BDBB7A620C36CEC57230A89C9799416E68ECEB323425728DE2830C64979DDEC6355F2BB391FBDC705A5C1537EB03D2372650409D7084D6FF1B3913F9796109B40CAD99DC8B4EED4379A67E96FD1192BC87A5C60A410BB6996D1E0DA0D7E43CE2632B14714E6A25569B9F42D51F22C067F12E6E030DF1205FC91429E93214891F026089748772A64DD21C2F13EC3BEBC313187FB8936613D8E4A93F8569FFC6C6509D43F3939D4CFA5BF958D6E1E9E148DDD3E332728957413FA6084CDDC1263419C9C712F5DC3177F39F0EE5CB8B5F90EE60EEC4A002DED7E937 |
240 | 20180407123940 2 6 100 6143 2 E0CFB3582CE2D136E662908DCAA4CD666F574807FFFFF04BFB357D087BD132C8B569A579EC7FEDA39DA9FDBC7A8B289953FC1793F1B5D0F13A317C5F25554892D8A4F4EE9E85B9737D1412316C8169810745D8AC420ED45AA5419137F86E811AA101CD8746EDC5AF653499CA5585851205807E7EC4A3241FDD4C302AAC131FE24B2AC3700D3D21A82EB999FD0005E810811CEB2B1279D95E028269503DBF65FB23CBFC595B12BC67EC4A77D00324909088B6FDF511ABA41732957D32CC436FB0BE95E04F46DF57EC93E4FBD8FF12E18288384CBFABB1BD58F4A047CBF1AB831B43C550515DA98CA33697ECEE8AFAC110E7DD284D531324AC21013C86CFBC9DC286B6669534D8E2D40319E9BA9DC5ACE1825354E1869614CBCB708586A9455D20FC3B724C6FBF941EAAB3FFA61647906B890D9C8F2831A59B7A9A4EB6305DAEDE94A0525C8150EA3B27FC405430B82885E8EAA64A46E2E24DA089A0008C09C5B8117F5E5F397DCAC43906067AE2C6A1B7C1D1B2D233EFF6CBC472F328053EB666EC826604ADA4E27CA01FF98B7A5ADCF8FD3A6E2F6AEC4F36CE8D1D847E611CFDDA7B53AE4F0BA6481A2265D134B5B78F8416164B262CF58FA8806090613D09FA2E8CC417AF2A3208F5BB210CA87927C4FB980C9B97A743CC1B3A7BB9E22DD78EDFB52669C4DB24F796C5D99038E140CE81A9DFECE675F200DC0DEC203FB94380EAA8D13F30530A410BCBD393137FBF89AB80D872D6A4A46B303F01E79FA05DEF4F0F2A2ABD0788459E4C678F3952072570971EA5A686E5964D1C3A61E2311F57E7AB8519809243EB88A87A21B6589A16862EE1B9B4DD452950DDBB5D5482099FC667B5F9A43E3F803D9D0030D0D6E0F86DBFD2B0C2A67B9BFB1F318C6DF0745F75F9F59C7CC62F4763FBBFE3517BF28D9B68372674CBB759E150F6F06FB3053343D54DB7959B79C3764FE57AC25EF6728F1A6A2C6D98E56841DC461BBF12BD23E8C058D500435777431ADC23CA373B0F4A43B5E18787925E79113199A368F30692429BF3041D9BC82BFF88147C3DE432169578E304C72D5953204369A43ACBEB | 240 | 20180921035421 2 6 100 4095 5 CB00EACDC1EDB3E4111DB89DA6722A2D66156FC2F5B602DCE0510B47F36F6E94615D96D222BD22037AD407B782A888F534CE84C04E6B78FDF3F24C869960888D33F8396A58F34238B7E2F2BF3CE48263BE78474C422A073FCCF02C47218509E5A989208456CC7ECCB7004957802A413AA0AB3E51C29FB53A99886977A86B4C47A56C2F312D3BA2B2CC4D5CE637B13A77369D5D5CF478E9D38389969F5CF041863F1D5714F11BC66C0FEF500A6B3FEB18BDF575E9E0F066E0A42DEC284B5A23D1C31C628F672D94363CBCCEA7C81636D51D81337E7556B726B35185139FA7568978E684E511DB467D92F0B56B43ADF802E7ADC15107723068B06E024DD25340B228AE9674BC3FC58D6BD55FE67F01B197847B6F4FE8F2DF6BC8C72292067C6BEA73C1D8176926BDBB7A620C36CEC57230A89C9799416E68ECEB323425728DE2830C64979DDEC6355F2BB391FBDC705A5C1537EB03D2372650409D7084D6FF1B3913F9796109B40CAD99DC8B4EED4379A67E96FD1192BC87A5C60A410BB6996D1E0DA0D7E43CE2632B14714E6A25569B9F42D51F22C067F12E6E030DF1205FC91429E93214891F026089748772A64DD21C2F13EC3BEBC313187FB8936613D8E4A93F8569FFC6C6509D43F3939D4CFA5BF958D6E1E9E148DDD3E332728957413FA6084CDDC1263419C9C712F5DC3177F39F0EE5CB8B5F90EE60EEC4A002DF60EDC7 |
241 | 20180407154812 2 6 100 6143 5 E0CFB3582CE2D136E662908DCAA4CD666F574807FFFFF04BFB357D087BD132C8B569A579EC7FEDA39DA9FDBC7A8B289953FC1793F1B5D0F13A317C5F25554892D8A4F4EE9E85B9737D1412316C8169810745D8AC420ED45AA5419137F86E811AA101CD8746EDC5AF653499CA5585851205807E7EC4A3241FDD4C302AAC131FE24B2AC3700D3D21A82EB999FD0005E810811CEB2B1279D95E028269503DBF65FB23CBFC595B12BC67EC4A77D00324909088B6FDF511ABA41732957D32CC436FB0BE95E04F46DF57EC93E4FBD8FF12E18288384CBFABB1BD58F4A047CBF1AB831B43C550515DA98CA33697ECEE8AFAC110E7DD284D531324AC21013C86CFBC9DC286B6669534D8E2D40319E9BA9DC5ACE1825354E1869614CBCB708586A9455D20FC3B724C6FBF941EAAB3FFA61647906B890D9C8F2831A59B7A9A4EB6305DAEDE94A0525C8150EA3B27FC405430B82885E8EAA64A46E2E24DA089A0008C09C5B8117F5E5F397DCAC43906067AE2C6A1B7C1D1B2D233EFF6CBC472F328053EB666EC826604ADA4E27CA01FF98B7A5ADCF8FD3A6E2F6AEC4F36CE8D1D847E611CFDDA7B53AE4F0BA6481A2265D134B5B78F8416164B262CF58FA8806090613D09FA2E8CC417AF2A3208F5BB210CA87927C4FB980C9B97A743CC1B3A7BB9E22DD78EDFB52669C4DB24F796C5D99038E140CE81A9DFECE675F200DC0DEC203FB94380EAA8D13F30530A410BCBD393137FBF89AB80D872D6A4A46B303F01E79FA05DEF4F0F2A2ABD0788459E4C678F3952072570971EA5A686E5964D1C3A61E2311F57E7AB8519809243EB88A87A21B6589A16862EE1B9B4DD452950DDBB5D5482099FC667B5F9A43E3F803D9D0030D0D6E0F86DBFD2B0C2A67B9BFB1F318C6DF0745F75F9F59C7CC62F4763FBBFE3517BF28D9B68372674CBB759E150F6F06FB3053343D54DB7959B79C3764FE57AC25EF6728F1A6A2C6D98E56841DC461BBF12BD23E8C058D500435777431ADC23CA373B0F4A43B5E18787925E79113199A368F30692429BF3041D9BC82BFF88147C3DE432169578E304C72D5953204369A62F48B7 | 241 | 20180921035905 2 6 100 4095 2 CB00EACDC1EDB3E4111DB89DA6722A2D66156FC2F5B602DCE0510B47F36F6E94615D96D222BD22037AD407B782A888F534CE84C04E6B78FDF3F24C869960888D33F8396A58F34238B7E2F2BF3CE48263BE78474C422A073FCCF02C47218509E5A989208456CC7ECCB7004957802A413AA0AB3E51C29FB53A99886977A86B4C47A56C2F312D3BA2B2CC4D5CE637B13A77369D5D5CF478E9D38389969F5CF041863F1D5714F11BC66C0FEF500A6B3FEB18BDF575E9E0F066E0A42DEC284B5A23D1C31C628F672D94363CBCCEA7C81636D51D81337E7556B726B35185139FA7568978E684E511DB467D92F0B56B43ADF802E7ADC15107723068B06E024DD25340B228AE9674BC3FC58D6BD55FE67F01B197847B6F4FE8F2DF6BC8C72292067C6BEA73C1D8176926BDBB7A620C36CEC57230A89C9799416E68ECEB323425728DE2830C64979DDEC6355F2BB391FBDC705A5C1537EB03D2372650409D7084D6FF1B3913F9796109B40CAD99DC8B4EED4379A67E96FD1192BC87A5C60A410BB6996D1E0DA0D7E43CE2632B14714E6A25569B9F42D51F22C067F12E6E030DF1205FC91429E93214891F026089748772A64DD21C2F13EC3BEBC313187FB8936613D8E4A93F8569FFC6C6509D43F3939D4CFA5BF958D6E1E9E148DDD3E332728957413FA6084CDDC1263419C9C712F5DC3177F39F0EE5CB8B5F90EE60EEC4A002DFAC40E3 |
242 | 20180407170835 2 6 100 6143 5 E0CFB3582CE2D136E662908DCAA4CD666F574807FFFFF04BFB357D087BD132C8B569A579EC7FEDA39DA9FDBC7A8B289953FC1793F1B5D0F13A317C5F25554892D8A4F4EE9E85B9737D1412316C8169810745D8AC420ED45AA5419137F86E811AA101CD8746EDC5AF653499CA5585851205807E7EC4A3241FDD4C302AAC131FE24B2AC3700D3D21A82EB999FD0005E810811CEB2B1279D95E028269503DBF65FB23CBFC595B12BC67EC4A77D00324909088B6FDF511ABA41732957D32CC436FB0BE95E04F46DF57EC93E4FBD8FF12E18288384CBFABB1BD58F4A047CBF1AB831B43C550515DA98CA33697ECEE8AFAC110E7DD284D531324AC21013C86CFBC9DC286B6669534D8E2D40319E9BA9DC5ACE1825354E1869614CBCB708586A9455D20FC3B724C6FBF941EAAB3FFA61647906B890D9C8F2831A59B7A9A4EB6305DAEDE94A0525C8150EA3B27FC405430B82885E8EAA64A46E2E24DA089A0008C09C5B8117F5E5F397DCAC43906067AE2C6A1B7C1D1B2D233EFF6CBC472F328053EB666EC826604ADA4E27CA01FF98B7A5ADCF8FD3A6E2F6AEC4F36CE8D1D847E611CFDDA7B53AE4F0BA6481A2265D134B5B78F8416164B262CF58FA8806090613D09FA2E8CC417AF2A3208F5BB210CA87927C4FB980C9B97A743CC1B3A7BB9E22DD78EDFB52669C4DB24F796C5D99038E140CE81A9DFECE675F200DC0DEC203FB94380EAA8D13F30530A410BCBD393137FBF89AB80D872D6A4A46B303F01E79FA05DEF4F0F2A2ABD0788459E4C678F3952072570971EA5A686E5964D1C3A61E2311F57E7AB8519809243EB88A87A21B6589A16862EE1B9B4DD452950DDBB5D5482099FC667B5F9A43E3F803D9D0030D0D6E0F86DBFD2B0C2A67B9BFB1F318C6DF0745F75F9F59C7CC62F4763FBBFE3517BF28D9B68372674CBB759E150F6F06FB3053343D54DB7959B79C3764FE57AC25EF6728F1A6A2C6D98E56841DC461BBF12BD23E8C058D500435777431ADC23CA373B0F4A43B5E18787925E79113199A368F30692429BF3041D9BC82BFF88147C3DE432169578E304C72D5953204369A704C5AF | 242 | 20180921041542 2 6 100 4095 2 CB00EACDC1EDB3E4111DB89DA6722A2D66156FC2F5B602DCE0510B47F36F6E94615D96D222BD22037AD407B782A888F534CE84C04E6B78FDF3F24C869960888D33F8396A58F34238B7E2F2BF3CE48263BE78474C422A073FCCF02C47218509E5A989208456CC7ECCB7004957802A413AA0AB3E51C29FB53A99886977A86B4C47A56C2F312D3BA2B2CC4D5CE637B13A77369D5D5CF478E9D38389969F5CF041863F1D5714F11BC66C0FEF500A6B3FEB18BDF575E9E0F066E0A42DEC284B5A23D1C31C628F672D94363CBCCEA7C81636D51D81337E7556B726B35185139FA7568978E684E511DB467D92F0B56B43ADF802E7ADC15107723068B06E024DD25340B228AE9674BC3FC58D6BD55FE67F01B197847B6F4FE8F2DF6BC8C72292067C6BEA73C1D8176926BDBB7A620C36CEC57230A89C9799416E68ECEB323425728DE2830C64979DDEC6355F2BB391FBDC705A5C1537EB03D2372650409D7084D6FF1B3913F9796109B40CAD99DC8B4EED4379A67E96FD1192BC87A5C60A410BB6996D1E0DA0D7E43CE2632B14714E6A25569B9F42D51F22C067F12E6E030DF1205FC91429E93214891F026089748772A64DD21C2F13EC3BEBC313187FB8936613D8E4A93F8569FFC6C6509D43F3939D4CFA5BF958D6E1E9E148DDD3E332728957413FA6084CDDC1263419C9C712F5DC3177F39F0EE5CB8B5F90EE60EEC4A002E0D7FD93 |
243 | 20180407175007 2 6 100 6143 5 E0CFB3582CE2D136E662908DCAA4CD666F574807FFFFF04BFB357D087BD132C8B569A579EC7FEDA39DA9FDBC7A8B289953FC1793F1B5D0F13A317C5F25554892D8A4F4EE9E85B9737D1412316C8169810745D8AC420ED45AA5419137F86E811AA101CD8746EDC5AF653499CA5585851205807E7EC4A3241FDD4C302AAC131FE24B2AC3700D3D21A82EB999FD0005E810811CEB2B1279D95E028269503DBF65FB23CBFC595B12BC67EC4A77D00324909088B6FDF511ABA41732957D32CC436FB0BE95E04F46DF57EC93E4FBD8FF12E18288384CBFABB1BD58F4A047CBF1AB831B43C550515DA98CA33697ECEE8AFAC110E7DD284D531324AC21013C86CFBC9DC286B6669534D8E2D40319E9BA9DC5ACE1825354E1869614CBCB708586A9455D20FC3B724C6FBF941EAAB3FFA61647906B890D9C8F2831A59B7A9A4EB6305DAEDE94A0525C8150EA3B27FC405430B82885E8EAA64A46E2E24DA089A0008C09C5B8117F5E5F397DCAC43906067AE2C6A1B7C1D1B2D233EFF6CBC472F328053EB666EC826604ADA4E27CA01FF98B7A5ADCF8FD3A6E2F6AEC4F36CE8D1D847E611CFDDA7B53AE4F0BA6481A2265D134B5B78F8416164B262CF58FA8806090613D09FA2E8CC417AF2A3208F5BB210CA87927C4FB980C9B97A743CC1B3A7BB9E22DD78EDFB52669C4DB24F796C5D99038E140CE81A9DFECE675F200DC0DEC203FB94380EAA8D13F30530A410BCBD393137FBF89AB80D872D6A4A46B303F01E79FA05DEF4F0F2A2ABD0788459E4C678F3952072570971EA5A686E5964D1C3A61E2311F57E7AB8519809243EB88A87A21B6589A16862EE1B9B4DD452950DDBB5D5482099FC667B5F9A43E3F803D9D0030D0D6E0F86DBFD2B0C2A67B9BFB1F318C6DF0745F75F9F59C7CC62F4763FBBFE3517BF28D9B68372674CBB759E150F6F06FB3053343D54DB7959B79C3764FE57AC25EF6728F1A6A2C6D98E56841DC461BBF12BD23E8C058D500435777431ADC23CA373B0F4A43B5E18787925E79113199A368F30692429BF3041D9BC82BFF88147C3DE432169578E304C72D5953204369A76C88B7 | 243 | 20180921042022 2 6 100 4095 2 CB00EACDC1EDB3E4111DB89DA6722A2D66156FC2F5B602DCE0510B47F36F6E94615D96D222BD22037AD407B782A888F534CE84C04E6B78FDF3F24C869960888D33F8396A58F34238B7E2F2BF3CE48263BE78474C422A073FCCF02C47218509E5A989208456CC7ECCB7004957802A413AA0AB3E51C29FB53A99886977A86B4C47A56C2F312D3BA2B2CC4D5CE637B13A77369D5D5CF478E9D38389969F5CF041863F1D5714F11BC66C0FEF500A6B3FEB18BDF575E9E0F066E0A42DEC284B5A23D1C31C628F672D94363CBCCEA7C81636D51D81337E7556B726B35185139FA7568978E684E511DB467D92F0B56B43ADF802E7ADC15107723068B06E024DD25340B228AE9674BC3FC58D6BD55FE67F01B197847B6F4FE8F2DF6BC8C72292067C6BEA73C1D8176926BDBB7A620C36CEC57230A89C9799416E68ECEB323425728DE2830C64979DDEC6355F2BB391FBDC705A5C1537EB03D2372650409D7084D6FF1B3913F9796109B40CAD99DC8B4EED4379A67E96FD1192BC87A5C60A410BB6996D1E0DA0D7E43CE2632B14714E6A25569B9F42D51F22C067F12E6E030DF1205FC91429E93214891F026089748772A64DD21C2F13EC3BEBC313187FB8936613D8E4A93F8569FFC6C6509D43F3939D4CFA5BF958D6E1E9E148DDD3E332728957413FA6084CDDC1263419C9C712F5DC3177F39F0EE5CB8B5F90EE60EEC4A002E12169CB |
244 | 20180407184438 2 6 100 6143 2 E0CFB3582CE2D136E662908DCAA4CD666F574807FFFFF04BFB357D087BD132C8B569A579EC7FEDA39DA9FDBC7A8B289953FC1793F1B5D0F13A317C5F25554892D8A4F4EE9E85B9737D1412316C8169810745D8AC420ED45AA5419137F86E811AA101CD8746EDC5AF653499CA5585851205807E7EC4A3241FDD4C302AAC131FE24B2AC3700D3D21A82EB999FD0005E810811CEB2B1279D95E028269503DBF65FB23CBFC595B12BC67EC4A77D00324909088B6FDF511ABA41732957D32CC436FB0BE95E04F46DF57EC93E4FBD8FF12E18288384CBFABB1BD58F4A047CBF1AB831B43C550515DA98CA33697ECEE8AFAC110E7DD284D531324AC21013C86CFBC9DC286B6669534D8E2D40319E9BA9DC5ACE1825354E1869614CBCB708586A9455D20FC3B724C6FBF941EAAB3FFA61647906B890D9C8F2831A59B7A9A4EB6305DAEDE94A0525C8150EA3B27FC405430B82885E8EAA64A46E2E24DA089A0008C09C5B8117F5E5F397DCAC43906067AE2C6A1B7C1D1B2D233EFF6CBC472F328053EB666EC826604ADA4E27CA01FF98B7A5ADCF8FD3A6E2F6AEC4F36CE8D1D847E611CFDDA7B53AE4F0BA6481A2265D134B5B78F8416164B262CF58FA8806090613D09FA2E8CC417AF2A3208F5BB210CA87927C4FB980C9B97A743CC1B3A7BB9E22DD78EDFB52669C4DB24F796C5D99038E140CE81A9DFECE675F200DC0DEC203FB94380EAA8D13F30530A410BCBD393137FBF89AB80D872D6A4A46B303F01E79FA05DEF4F0F2A2ABD0788459E4C678F3952072570971EA5A686E5964D1C3A61E2311F57E7AB8519809243EB88A87A21B6589A16862EE1B9B4DD452950DDBB5D5482099FC667B5F9A43E3F803D9D0030D0D6E0F86DBFD2B0C2A67B9BFB1F318C6DF0745F75F9F59C7CC62F4763FBBFE3517BF28D9B68372674CBB759E150F6F06FB3053343D54DB7959B79C3764FE57AC25EF6728F1A6A2C6D98E56841DC461BBF12BD23E8C058D500435777431ADC23CA373B0F4A43B5E18787925E79113199A368F30692429BF3041D9BC82BFF88147C3DE432169578E304C72D5953204369A7F65E03 | 244 | 20180921053713 2 6 100 6143 5 CAD8A4810C1ADC23A2317EA8BB2F93AD4198F948452AD65159BD3D71800456C339AFD34BC6D512D8FCD337463E3CDFBB4E81A9BE01A6FBA103051D50118610088400DEE2C8E51376B07593D50760832754D352737620CB3BD45CF6A0356209541D14FA9A356DB075DAC362617DF28B202B8FF5FE65A7A6106715796ECC5433DF29FDE1BA29D1D70BB0248EFEEE7DCB10B78EDE9F37078D39AEE37395927F97C2E8C8D80747496C5F4C7ED0A14193BDABE56665BE74475CBD49049F7BE47366B32A1E828B3155A7D48F1D06052DDAA3C0C24550772A69F0E3635794B1FC8BFF6274582092BE2CB3323269D3433FF6CC0294074B0BD8E5DF1A42A4A2A687FE9C4772994FA5EA75F099539D9A7761C687F3F2896D0517E73ABC64C8A330E740DB99537F30E9566497DE782C8F5A5A9E64111478A69BA4535C72B323CCCAFFD7E2C181009424D4CA391B0CED89411455E8CB00147E098716861AAB1B18EC5F295F22C8F687C9DBA534BDDF5F98D94E07F0DFFBB9D272AD71A7B1F657794E36EABA60A6D097F0AB4C405909F5D3D15B177496BCE74217892D701745D176AC5A6049C75F2C17C18FB00F09DFCF1934E69E64DC4C758C3353411503479EE07D7660B67DFDE76DD3FA26B2894DC3C6F5A87059657428324E613F7FE6AD25B09D73133AE16C0A5CA8E285BEF024DE79A27A3C363A70B80AAA1638EDEE29FCBD929D6AE23A5A064769F474D116DD11EACCA5B629EFAB4A95053BD9EBD5B21A3AC3CCD503EDF8CC659FBEAE8FC4EEB2B59CEB41438752AD130476F2DE793FB993BDE8057F1F31437F053B847653D379E2ED78491A0AF3F8ADFC4FF023DB11CC9087AFFC810FE16491CEE4E7CB8622C47E0F44479C0C6D915F4A68723B38FBE83DFDCEE4D5745CD316444BD98C951DAA9706795FE922754B80DB3AE924FBEC44AEF4C3D31EB9299175322FEF02A52E854377030F9BF09AB7CC1BF5327C8746BCAD1AA0A876B740FBCA2C914D45BA75292A2329078DF05ECDC8EA0C149D29E481AA1CA80DB2A13ADA476DE3D82D24136A5B92B7FCCC486A785706FF8ED0CD41F5DF4AC509A2DF |
245 | 20180407195743 2 6 100 6143 5 E0CFB3582CE2D136E662908DCAA4CD666F574807FFFFF04BFB357D087BD132C8B569A579EC7FEDA39DA9FDBC7A8B289953FC1793F1B5D0F13A317C5F25554892D8A4F4EE9E85B9737D1412316C8169810745D8AC420ED45AA5419137F86E811AA101CD8746EDC5AF653499CA5585851205807E7EC4A3241FDD4C302AAC131FE24B2AC3700D3D21A82EB999FD0005E810811CEB2B1279D95E028269503DBF65FB23CBFC595B12BC67EC4A77D00324909088B6FDF511ABA41732957D32CC436FB0BE95E04F46DF57EC93E4FBD8FF12E18288384CBFABB1BD58F4A047CBF1AB831B43C550515DA98CA33697ECEE8AFAC110E7DD284D531324AC21013C86CFBC9DC286B6669534D8E2D40319E9BA9DC5ACE1825354E1869614CBCB708586A9455D20FC3B724C6FBF941EAAB3FFA61647906B890D9C8F2831A59B7A9A4EB6305DAEDE94A0525C8150EA3B27FC405430B82885E8EAA64A46E2E24DA089A0008C09C5B8117F5E5F397DCAC43906067AE2C6A1B7C1D1B2D233EFF6CBC472F328053EB666EC826604ADA4E27CA01FF98B7A5ADCF8FD3A6E2F6AEC4F36CE8D1D847E611CFDDA7B53AE4F0BA6481A2265D134B5B78F8416164B262CF58FA8806090613D09FA2E8CC417AF2A3208F5BB210CA87927C4FB980C9B97A743CC1B3A7BB9E22DD78EDFB52669C4DB24F796C5D99038E140CE81A9DFECE675F200DC0DEC203FB94380EAA8D13F30530A410BCBD393137FBF89AB80D872D6A4A46B303F01E79FA05DEF4F0F2A2ABD0788459E4C678F3952072570971EA5A686E5964D1C3A61E2311F57E7AB8519809243EB88A87A21B6589A16862EE1B9B4DD452950DDBB5D5482099FC667B5F9A43E3F803D9D0030D0D6E0F86DBFD2B0C2A67B9BFB1F318C6DF0745F75F9F59C7CC62F4763FBBFE3517BF28D9B68372674CBB759E150F6F06FB3053343D54DB7959B79C3764FE57AC25EF6728F1A6A2C6D98E56841DC461BBF12BD23E8C058D500435777431ADC23CA373B0F4A43B5E18787925E79113199A368F30692429BF3041D9BC82BFF88147C3DE432169578E304C72D5953204369A8B41617 | 245 | 20180921055252 2 6 100 6143 2 CAD8A4810C1ADC23A2317EA8BB2F93AD4198F948452AD65159BD3D71800456C339AFD34BC6D512D8FCD337463E3CDFBB4E81A9BE01A6FBA103051D50118610088400DEE2C8E51376B07593D50760832754D352737620CB3BD45CF6A0356209541D14FA9A356DB075DAC362617DF28B202B8FF5FE65A7A6106715796ECC5433DF29FDE1BA29D1D70BB0248EFEEE7DCB10B78EDE9F37078D39AEE37395927F97C2E8C8D80747496C5F4C7ED0A14193BDABE56665BE74475CBD49049F7BE47366B32A1E828B3155A7D48F1D06052DDAA3C0C24550772A69F0E3635794B1FC8BFF6274582092BE2CB3323269D3433FF6CC0294074B0BD8E5DF1A42A4A2A687FE9C4772994FA5EA75F099539D9A7761C687F3F2896D0517E73ABC64C8A330E740DB99537F30E9566497DE782C8F5A5A9E64111478A69BA4535C72B323CCCAFFD7E2C181009424D4CA391B0CED89411455E8CB00147E098716861AAB1B18EC5F295F22C8F687C9DBA534BDDF5F98D94E07F0DFFBB9D272AD71A7B1F657794E36EABA60A6D097F0AB4C405909F5D3D15B177496BCE74217892D701745D176AC5A6049C75F2C17C18FB00F09DFCF1934E69E64DC4C758C3353411503479EE07D7660B67DFDE76DD3FA26B2894DC3C6F5A87059657428324E613F7FE6AD25B09D73133AE16C0A5CA8E285BEF024DE79A27A3C363A70B80AAA1638EDEE29FCBD929D6AE23A5A064769F474D116DD11EACCA5B629EFAB4A95053BD9EBD5B21A3AC3CCD503EDF8CC659FBEAE8FC4EEB2B59CEB41438752AD130476F2DE793FB993BDE8057F1F31437F053B847653D379E2ED78491A0AF3F8ADFC4FF023DB11CC9087AFFC810FE16491CEE4E7CB8622C47E0F44479C0C6D915F4A68723B38FBE83DFDCEE4D5745CD316444BD98C951DAA9706795FE922754B80DB3AE924FBEC44AEF4C3D31EB9299175322FEF02A52E854377030F9BF09AB7CC1BF5327C8746BCAD1AA0A876B740FBCA2C914D45BA75292A2329078DF05ECDC8EA0C149D29E481AA1CA80DB2A13ADA476DE3D82D24136A5B92B7FCCC486A785706FF8ED0CD41F5DF4AC560A423 |
246 | 20180408071229 2 6 100 6143 2 E0CFB3582CE2D136E662908DCAA4CD666F574807FFFFF04BFB357D087BD132C8B569A579EC7FEDA39DA9FDBC7A8B289953FC1793F1B5D0F13A317C5F25554892D8A4F4EE9E85B9737D1412316C8169810745D8AC420ED45AA5419137F86E811AA101CD8746EDC5AF653499CA5585851205807E7EC4A3241FDD4C302AAC131FE24B2AC3700D3D21A82EB999FD0005E810811CEB2B1279D95E028269503DBF65FB23CBFC595B12BC67EC4A77D00324909088B6FDF511ABA41732957D32CC436FB0BE95E04F46DF57EC93E4FBD8FF12E18288384CBFABB1BD58F4A047CBF1AB831B43C550515DA98CA33697ECEE8AFAC110E7DD284D531324AC21013C86CFBC9DC286B6669534D8E2D40319E9BA9DC5ACE1825354E1869614CBCB708586A9455D20FC3B724C6FBF941EAAB3FFA61647906B890D9C8F2831A59B7A9A4EB6305DAEDE94A0525C8150EA3B27FC405430B82885E8EAA64A46E2E24DA089A0008C09C5B8117F5E5F397DCAC43906067AE2C6A1B7C1D1B2D233EFF6CBC472F328053EB666EC826604ADA4E27CA01FF98B7A5ADCF8FD3A6E2F6AEC4F36CE8D1D847E611CFDDA7B53AE4F0BA6481A2265D134B5B78F8416164B262CF58FA8806090613D09FA2E8CC417AF2A3208F5BB210CA87927C4FB980C9B97A743CC1B3A7BB9E22DD78EDFB52669C4DB24F796C5D99038E140CE81A9DFECE675F200DC0DEC203FB94380EAA8D13F30530A410BCBD393137FBF89AB80D872D6A4A46B303F01E79FA05DEF4F0F2A2ABD0788459E4C678F3952072570971EA5A686E5964D1C3A61E2311F57E7AB8519809243EB88A87A21B6589A16862EE1B9B4DD452950DDBB5D5482099FC667B5F9A43E3F803D9D0030D0D6E0F86DBFD2B0C2A67B9BFB1F318C6DF0745F75F9F59C7CC62F4763FBBFE3517BF28D9B68372674CBB759E150F6F06FB3053343D54DB7959B79C3764FE57AC25EF6728F1A6A2C6D98E56841DC461BBF12BD23E8C058D500435777431ADC23CA373B0F4A43B5E18787925E79113199A368F30692429BF3041D9BC82BFF88147C3DE432169578E304C72D5953204369AFC7905B | 246 | 20180921065744 2 6 100 6143 5 CAD8A4810C1ADC23A2317EA8BB2F93AD4198F948452AD65159BD3D71800456C339AFD34BC6D512D8FCD337463E3CDFBB4E81A9BE01A6FBA103051D50118610088400DEE2C8E51376B07593D50760832754D352737620CB3BD45CF6A0356209541D14FA9A356DB075DAC362617DF28B202B8FF5FE65A7A6106715796ECC5433DF29FDE1BA29D1D70BB0248EFEEE7DCB10B78EDE9F37078D39AEE37395927F97C2E8C8D80747496C5F4C7ED0A14193BDABE56665BE74475CBD49049F7BE47366B32A1E828B3155A7D48F1D06052DDAA3C0C24550772A69F0E3635794B1FC8BFF6274582092BE2CB3323269D3433FF6CC0294074B0BD8E5DF1A42A4A2A687FE9C4772994FA5EA75F099539D9A7761C687F3F2896D0517E73ABC64C8A330E740DB99537F30E9566497DE782C8F5A5A9E64111478A69BA4535C72B323CCCAFFD7E2C181009424D4CA391B0CED89411455E8CB00147E098716861AAB1B18EC5F295F22C8F687C9DBA534BDDF5F98D94E07F0DFFBB9D272AD71A7B1F657794E36EABA60A6D097F0AB4C405909F5D3D15B177496BCE74217892D701745D176AC5A6049C75F2C17C18FB00F09DFCF1934E69E64DC4C758C3353411503479EE07D7660B67DFDE76DD3FA26B2894DC3C6F5A87059657428324E613F7FE6AD25B09D73133AE16C0A5CA8E285BEF024DE79A27A3C363A70B80AAA1638EDEE29FCBD929D6AE23A5A064769F474D116DD11EACCA5B629EFAB4A95053BD9EBD5B21A3AC3CCD503EDF8CC659FBEAE8FC4EEB2B59CEB41438752AD130476F2DE793FB993BDE8057F1F31437F053B847653D379E2ED78491A0AF3F8ADFC4FF023DB11CC9087AFFC810FE16491CEE4E7CB8622C47E0F44479C0C6D915F4A68723B38FBE83DFDCEE4D5745CD316444BD98C951DAA9706795FE922754B80DB3AE924FBEC44AEF4C3D31EB9299175322FEF02A52E854377030F9BF09AB7CC1BF5327C8746BCAD1AA0A876B740FBCA2C914D45BA75292A2329078DF05ECDC8EA0C149D29E481AA1CA80DB2A13ADA476DE3D82D24136A5B92B7FCCC486A785706FF8ED0CD41F5DF4AC6F28D1F |
247 | 20180408075553 2 6 100 6143 5 E0CFB3582CE2D136E662908DCAA4CD666F574807FFFFF04BFB357D087BD132C8B569A579EC7FEDA39DA9FDBC7A8B289953FC1793F1B5D0F13A317C5F25554892D8A4F4EE9E85B9737D1412316C8169810745D8AC420ED45AA5419137F86E811AA101CD8746EDC5AF653499CA5585851205807E7EC4A3241FDD4C302AAC131FE24B2AC3700D3D21A82EB999FD0005E810811CEB2B1279D95E028269503DBF65FB23CBFC595B12BC67EC4A77D00324909088B6FDF511ABA41732957D32CC436FB0BE95E04F46DF57EC93E4FBD8FF12E18288384CBFABB1BD58F4A047CBF1AB831B43C550515DA98CA33697ECEE8AFAC110E7DD284D531324AC21013C86CFBC9DC286B6669534D8E2D40319E9BA9DC5ACE1825354E1869614CBCB708586A9455D20FC3B724C6FBF941EAAB3FFA61647906B890D9C8F2831A59B7A9A4EB6305DAEDE94A0525C8150EA3B27FC405430B82885E8EAA64A46E2E24DA089A0008C09C5B8117F5E5F397DCAC43906067AE2C6A1B7C1D1B2D233EFF6CBC472F328053EB666EC826604ADA4E27CA01FF98B7A5ADCF8FD3A6E2F6AEC4F36CE8D1D847E611CFDDA7B53AE4F0BA6481A2265D134B5B78F8416164B262CF58FA8806090613D09FA2E8CC417AF2A3208F5BB210CA87927C4FB980C9B97A743CC1B3A7BB9E22DD78EDFB52669C4DB24F796C5D99038E140CE81A9DFECE675F200DC0DEC203FB94380EAA8D13F30530A410BCBD393137FBF89AB80D872D6A4A46B303F01E79FA05DEF4F0F2A2ABD0788459E4C678F3952072570971EA5A686E5964D1C3A61E2311F57E7AB8519809243EB88A87A21B6589A16862EE1B9B4DD452950DDBB5D5482099FC667B5F9A43E3F803D9D0030D0D6E0F86DBFD2B0C2A67B9BFB1F318C6DF0745F75F9F59C7CC62F4763FBBFE3517BF28D9B68372674CBB759E150F6F06FB3053343D54DB7959B79C3764FE57AC25EF6728F1A6A2C6D98E56841DC461BBF12BD23E8C058D500435777431ADC23CA373B0F4A43B5E18787925E79113199A368F30692429BF3041D9BC82BFF88147C3DE432169578E304C72D5953204369B03562E7 | 247 | 20180921071557 2 6 100 6143 2 CAD8A4810C1ADC23A2317EA8BB2F93AD4198F948452AD65159BD3D71800456C339AFD34BC6D512D8FCD337463E3CDFBB4E81A9BE01A6FBA103051D50118610088400DEE2C8E51376B07593D50760832754D352737620CB3BD45CF6A0356209541D14FA9A356DB075DAC362617DF28B202B8FF5FE65A7A6106715796ECC5433DF29FDE1BA29D1D70BB0248EFEEE7DCB10B78EDE9F37078D39AEE37395927F97C2E8C8D80747496C5F4C7ED0A14193BDABE56665BE74475CBD49049F7BE47366B32A1E828B3155A7D48F1D06052DDAA3C0C24550772A69F0E3635794B1FC8BFF6274582092BE2CB3323269D3433FF6CC0294074B0BD8E5DF1A42A4A2A687FE9C4772994FA5EA75F099539D9A7761C687F3F2896D0517E73ABC64C8A330E740DB99537F30E9566497DE782C8F5A5A9E64111478A69BA4535C72B323CCCAFFD7E2C181009424D4CA391B0CED89411455E8CB00147E098716861AAB1B18EC5F295F22C8F687C9DBA534BDDF5F98D94E07F0DFFBB9D272AD71A7B1F657794E36EABA60A6D097F0AB4C405909F5D3D15B177496BCE74217892D701745D176AC5A6049C75F2C17C18FB00F09DFCF1934E69E64DC4C758C3353411503479EE07D7660B67DFDE76DD3FA26B2894DC3C6F5A87059657428324E613F7FE6AD25B09D73133AE16C0A5CA8E285BEF024DE79A27A3C363A70B80AAA1638EDEE29FCBD929D6AE23A5A064769F474D116DD11EACCA5B629EFAB4A95053BD9EBD5B21A3AC3CCD503EDF8CC659FBEAE8FC4EEB2B59CEB41438752AD130476F2DE793FB993BDE8057F1F31437F053B847653D379E2ED78491A0AF3F8ADFC4FF023DB11CC9087AFFC810FE16491CEE4E7CB8622C47E0F44479C0C6D915F4A68723B38FBE83DFDCEE4D5745CD316444BD98C951DAA9706795FE922754B80DB3AE924FBEC44AEF4C3D31EB9299175322FEF02A52E854377030F9BF09AB7CC1BF5327C8746BCAD1AA0A876B740FBCA2C914D45BA75292A2329078DF05ECDC8EA0C149D29E481AA1CA80DB2A13ADA476DE3D82D24136A5B92B7FCCC486A785706FF8ED0CD41F5DF4AC75F93C3 |
248 | 20180408124736 2 6 100 6143 5 E0CFB3582CE2D136E662908DCAA4CD666F574807FFFFF04BFB357D087BD132C8B569A579EC7FEDA39DA9FDBC7A8B289953FC1793F1B5D0F13A317C5F25554892D8A4F4EE9E85B9737D1412316C8169810745D8AC420ED45AA5419137F86E811AA101CD8746EDC5AF653499CA5585851205807E7EC4A3241FDD4C302AAC131FE24B2AC3700D3D21A82EB999FD0005E810811CEB2B1279D95E028269503DBF65FB23CBFC595B12BC67EC4A77D00324909088B6FDF511ABA41732957D32CC436FB0BE95E04F46DF57EC93E4FBD8FF12E18288384CBFABB1BD58F4A047CBF1AB831B43C550515DA98CA33697ECEE8AFAC110E7DD284D531324AC21013C86CFBC9DC286B6669534D8E2D40319E9BA9DC5ACE1825354E1869614CBCB708586A9455D20FC3B724C6FBF941EAAB3FFA61647906B890D9C8F2831A59B7A9A4EB6305DAEDE94A0525C8150EA3B27FC405430B82885E8EAA64A46E2E24DA089A0008C09C5B8117F5E5F397DCAC43906067AE2C6A1B7C1D1B2D233EFF6CBC472F328053EB666EC826604ADA4E27CA01FF98B7A5ADCF8FD3A6E2F6AEC4F36CE8D1D847E611CFDDA7B53AE4F0BA6481A2265D134B5B78F8416164B262CF58FA8806090613D09FA2E8CC417AF2A3208F5BB210CA87927C4FB980C9B97A743CC1B3A7BB9E22DD78EDFB52669C4DB24F796C5D99038E140CE81A9DFECE675F200DC0DEC203FB94380EAA8D13F30530A410BCBD393137FBF89AB80D872D6A4A46B303F01E79FA05DEF4F0F2A2ABD0788459E4C678F3952072570971EA5A686E5964D1C3A61E2311F57E7AB8519809243EB88A87A21B6589A16862EE1B9B4DD452950DDBB5D5482099FC667B5F9A43E3F803D9D0030D0D6E0F86DBFD2B0C2A67B9BFB1F318C6DF0745F75F9F59C7CC62F4763FBBFE3517BF28D9B68372674CBB759E150F6F06FB3053343D54DB7959B79C3764FE57AC25EF6728F1A6A2C6D98E56841DC461BBF12BD23E8C058D500435777431ADC23CA373B0F4A43B5E18787925E79113199A368F30692429BF3041D9BC82BFF88147C3DE432169578E304C72D5953204369B3416E27 | 248 | 20180921113009 2 6 100 6143 5 CAD8A4810C1ADC23A2317EA8BB2F93AD4198F948452AD65159BD3D71800456C339AFD34BC6D512D8FCD337463E3CDFBB4E81A9BE01A6FBA103051D50118610088400DEE2C8E51376B07593D50760832754D352737620CB3BD45CF6A0356209541D14FA9A356DB075DAC362617DF28B202B8FF5FE65A7A6106715796ECC5433DF29FDE1BA29D1D70BB0248EFEEE7DCB10B78EDE9F37078D39AEE37395927F97C2E8C8D80747496C5F4C7ED0A14193BDABE56665BE74475CBD49049F7BE47366B32A1E828B3155A7D48F1D06052DDAA3C0C24550772A69F0E3635794B1FC8BFF6274582092BE2CB3323269D3433FF6CC0294074B0BD8E5DF1A42A4A2A687FE9C4772994FA5EA75F099539D9A7761C687F3F2896D0517E73ABC64C8A330E740DB99537F30E9566497DE782C8F5A5A9E64111478A69BA4535C72B323CCCAFFD7E2C181009424D4CA391B0CED89411455E8CB00147E098716861AAB1B18EC5F295F22C8F687C9DBA534BDDF5F98D94E07F0DFFBB9D272AD71A7B1F657794E36EABA60A6D097F0AB4C405909F5D3D15B177496BCE74217892D701745D176AC5A6049C75F2C17C18FB00F09DFCF1934E69E64DC4C758C3353411503479EE07D7660B67DFDE76DD3FA26B2894DC3C6F5A87059657428324E613F7FE6AD25B09D73133AE16C0A5CA8E285BEF024DE79A27A3C363A70B80AAA1638EDEE29FCBD929D6AE23A5A064769F474D116DD11EACCA5B629EFAB4A95053BD9EBD5B21A3AC3CCD503EDF8CC659FBEAE8FC4EEB2B59CEB41438752AD130476F2DE793FB993BDE8057F1F31437F053B847653D379E2ED78491A0AF3F8ADFC4FF023DB11CC9087AFFC810FE16491CEE4E7CB8622C47E0F44479C0C6D915F4A68723B38FBE83DFDCEE4D5745CD316444BD98C951DAA9706795FE922754B80DB3AE924FBEC44AEF4C3D31EB9299175322FEF02A52E854377030F9BF09AB7CC1BF5327C8746BCAD1AA0A876B740FBCA2C914D45BA75292A2329078DF05ECDC8EA0C149D29E481AA1CA80DB2A13ADA476DE3D82D24136A5B92B7FCCC486A785706FF8ED0CD41F5DF4ACDA5C3BF |
249 | 20180408125929 2 6 100 6143 2 E0CFB3582CE2D136E662908DCAA4CD666F574807FFFFF04BFB357D087BD132C8B569A579EC7FEDA39DA9FDBC7A8B289953FC1793F1B5D0F13A317C5F25554892D8A4F4EE9E85B9737D1412316C8169810745D8AC420ED45AA5419137F86E811AA101CD8746EDC5AF653499CA5585851205807E7EC4A3241FDD4C302AAC131FE24B2AC3700D3D21A82EB999FD0005E810811CEB2B1279D95E028269503DBF65FB23CBFC595B12BC67EC4A77D00324909088B6FDF511ABA41732957D32CC436FB0BE95E04F46DF57EC93E4FBD8FF12E18288384CBFABB1BD58F4A047CBF1AB831B43C550515DA98CA33697ECEE8AFAC110E7DD284D531324AC21013C86CFBC9DC286B6669534D8E2D40319E9BA9DC5ACE1825354E1869614CBCB708586A9455D20FC3B724C6FBF941EAAB3FFA61647906B890D9C8F2831A59B7A9A4EB6305DAEDE94A0525C8150EA3B27FC405430B82885E8EAA64A46E2E24DA089A0008C09C5B8117F5E5F397DCAC43906067AE2C6A1B7C1D1B2D233EFF6CBC472F328053EB666EC826604ADA4E27CA01FF98B7A5ADCF8FD3A6E2F6AEC4F36CE8D1D847E611CFDDA7B53AE4F0BA6481A2265D134B5B78F8416164B262CF58FA8806090613D09FA2E8CC417AF2A3208F5BB210CA87927C4FB980C9B97A743CC1B3A7BB9E22DD78EDFB52669C4DB24F796C5D99038E140CE81A9DFECE675F200DC0DEC203FB94380EAA8D13F30530A410BCBD393137FBF89AB80D872D6A4A46B303F01E79FA05DEF4F0F2A2ABD0788459E4C678F3952072570971EA5A686E5964D1C3A61E2311F57E7AB8519809243EB88A87A21B6589A16862EE1B9B4DD452950DDBB5D5482099FC667B5F9A43E3F803D9D0030D0D6E0F86DBFD2B0C2A67B9BFB1F318C6DF0745F75F9F59C7CC62F4763FBBFE3517BF28D9B68372674CBB759E150F6F06FB3053343D54DB7959B79C3764FE57AC25EF6728F1A6A2C6D98E56841DC461BBF12BD23E8C058D500435777431ADC23CA373B0F4A43B5E18787925E79113199A368F30692429BF3041D9BC82BFF88147C3DE432169578E304C72D5953204369B35942B3 | 249 | 20180921133701 2 6 100 6143 5 CAD8A4810C1ADC23A2317EA8BB2F93AD4198F948452AD65159BD3D71800456C339AFD34BC6D512D8FCD337463E3CDFBB4E81A9BE01A6FBA103051D50118610088400DEE2C8E51376B07593D50760832754D352737620CB3BD45CF6A0356209541D14FA9A356DB075DAC362617DF28B202B8FF5FE65A7A6106715796ECC5433DF29FDE1BA29D1D70BB0248EFEEE7DCB10B78EDE9F37078D39AEE37395927F97C2E8C8D80747496C5F4C7ED0A14193BDABE56665BE74475CBD49049F7BE47366B32A1E828B3155A7D48F1D06052DDAA3C0C24550772A69F0E3635794B1FC8BFF6274582092BE2CB3323269D3433FF6CC0294074B0BD8E5DF1A42A4A2A687FE9C4772994FA5EA75F099539D9A7761C687F3F2896D0517E73ABC64C8A330E740DB99537F30E9566497DE782C8F5A5A9E64111478A69BA4535C72B323CCCAFFD7E2C181009424D4CA391B0CED89411455E8CB00147E098716861AAB1B18EC5F295F22C8F687C9DBA534BDDF5F98D94E07F0DFFBB9D272AD71A7B1F657794E36EABA60A6D097F0AB4C405909F5D3D15B177496BCE74217892D701745D176AC5A6049C75F2C17C18FB00F09DFCF1934E69E64DC4C758C3353411503479EE07D7660B67DFDE76DD3FA26B2894DC3C6F5A87059657428324E613F7FE6AD25B09D73133AE16C0A5CA8E285BEF024DE79A27A3C363A70B80AAA1638EDEE29FCBD929D6AE23A5A064769F474D116DD11EACCA5B629EFAB4A95053BD9EBD5B21A3AC3CCD503EDF8CC659FBEAE8FC4EEB2B59CEB41438752AD130476F2DE793FB993BDE8057F1F31437F053B847653D379E2ED78491A0AF3F8ADFC4FF023DB11CC9087AFFC810FE16491CEE4E7CB8622C47E0F44479C0C6D915F4A68723B38FBE83DFDCEE4D5745CD316444BD98C951DAA9706795FE922754B80DB3AE924FBEC44AEF4C3D31EB9299175322FEF02A52E854377030F9BF09AB7CC1BF5327C8746BCAD1AA0A876B740FBCA2C914D45BA75292A2329078DF05ECDC8EA0C149D29E481AA1CA80DB2A13ADA476DE3D82D24136A5B92B7FCCC486A785706FF8ED0CD41F5DF4AD0A30BD7 |
250 | 20180409023705 2 6 100 6143 2 E0CFB3582CE2D136E662908DCAA4CD666F574807FFFFF04BFB357D087BD132C8B569A579EC7FEDA39DA9FDBC7A8B289953FC1793F1B5D0F13A317C5F25554892D8A4F4EE9E85B9737D1412316C8169810745D8AC420ED45AA5419137F86E811AA101CD8746EDC5AF653499CA5585851205807E7EC4A3241FDD4C302AAC131FE24B2AC3700D3D21A82EB999FD0005E810811CEB2B1279D95E028269503DBF65FB23CBFC595B12BC67EC4A77D00324909088B6FDF511ABA41732957D32CC436FB0BE95E04F46DF57EC93E4FBD8FF12E18288384CBFABB1BD58F4A047CBF1AB831B43C550515DA98CA33697ECEE8AFAC110E7DD284D531324AC21013C86CFBC9DC286B6669534D8E2D40319E9BA9DC5ACE1825354E1869614CBCB708586A9455D20FC3B724C6FBF941EAAB3FFA61647906B890D9C8F2831A59B7A9A4EB6305DAEDE94A0525C8150EA3B27FC405430B82885E8EAA64A46E2E24DA089A0008C09C5B8117F5E5F397DCAC43906067AE2C6A1B7C1D1B2D233EFF6CBC472F328053EB666EC826604ADA4E27CA01FF98B7A5ADCF8FD3A6E2F6AEC4F36CE8D1D847E611CFDDA7B53AE4F0BA6481A2265D134B5B78F8416164B262CF58FA8806090613D09FA2E8CC417AF2A3208F5BB210CA87927C4FB980C9B97A743CC1B3A7BB9E22DD78EDFB52669C4DB24F796C5D99038E140CE81A9DFECE675F200DC0DEC203FB94380EAA8D13F30530A410BCBD393137FBF89AB80D872D6A4A46B303F01E79FA05DEF4F0F2A2ABD0788459E4C678F3952072570971EA5A686E5964D1C3A61E2311F57E7AB8519809243EB88A87A21B6589A16862EE1B9B4DD452950DDBB5D5482099FC667B5F9A43E3F803D9D0030D0D6E0F86DBFD2B0C2A67B9BFB1F318C6DF0745F75F9F59C7CC62F4763FBBFE3517BF28D9B68372674CBB759E150F6F06FB3053343D54DB7959B79C3764FE57AC25EF6728F1A6A2C6D98E56841DC461BBF12BD23E8C058D500435777431ADC23CA373B0F4A43B5E18787925E79113199A368F30692429BF3041D9BC82BFF88147C3DE432169578E304C72D5953204369BBCCDCBB | 250 | 20180921151331 2 6 100 6143 2 CAD8A4810C1ADC23A2317EA8BB2F93AD4198F948452AD65159BD3D71800456C339AFD34BC6D512D8FCD337463E3CDFBB4E81A9BE01A6FBA103051D50118610088400DEE2C8E51376B07593D50760832754D352737620CB3BD45CF6A0356209541D14FA9A356DB075DAC362617DF28B202B8FF5FE65A7A6106715796ECC5433DF29FDE1BA29D1D70BB0248EFEEE7DCB10B78EDE9F37078D39AEE37395927F97C2E8C8D80747496C5F4C7ED0A14193BDABE56665BE74475CBD49049F7BE47366B32A1E828B3155A7D48F1D06052DDAA3C0C24550772A69F0E3635794B1FC8BFF6274582092BE2CB3323269D3433FF6CC0294074B0BD8E5DF1A42A4A2A687FE9C4772994FA5EA75F099539D9A7761C687F3F2896D0517E73ABC64C8A330E740DB99537F30E9566497DE782C8F5A5A9E64111478A69BA4535C72B323CCCAFFD7E2C181009424D4CA391B0CED89411455E8CB00147E098716861AAB1B18EC5F295F22C8F687C9DBA534BDDF5F98D94E07F0DFFBB9D272AD71A7B1F657794E36EABA60A6D097F0AB4C405909F5D3D15B177496BCE74217892D701745D176AC5A6049C75F2C17C18FB00F09DFCF1934E69E64DC4C758C3353411503479EE07D7660B67DFDE76DD3FA26B2894DC3C6F5A87059657428324E613F7FE6AD25B09D73133AE16C0A5CA8E285BEF024DE79A27A3C363A70B80AAA1638EDEE29FCBD929D6AE23A5A064769F474D116DD11EACCA5B629EFAB4A95053BD9EBD5B21A3AC3CCD503EDF8CC659FBEAE8FC4EEB2B59CEB41438752AD130476F2DE793FB993BDE8057F1F31437F053B847653D379E2ED78491A0AF3F8ADFC4FF023DB11CC9087AFFC810FE16491CEE4E7CB8622C47E0F44479C0C6D915F4A68723B38FBE83DFDCEE4D5745CD316444BD98C951DAA9706795FE922754B80DB3AE924FBEC44AEF4C3D31EB9299175322FEF02A52E854377030F9BF09AB7CC1BF5327C8746BCAD1AA0A876B740FBCA2C914D45BA75292A2329078DF05ECDC8EA0C149D29E481AA1CA80DB2A13ADA476DE3D82D24136A5B92B7FCCC486A785706FF8ED0CD41F5DF4AD2DFFEAB |
251 | 20180409072217 2 6 100 6143 5 E0CFB3582CE2D136E662908DCAA4CD666F574807FFFFF04BFB357D087BD132C8B569A579EC7FEDA39DA9FDBC7A8B289953FC1793F1B5D0F13A317C5F25554892D8A4F4EE9E85B9737D1412316C8169810745D8AC420ED45AA5419137F86E811AA101CD8746EDC5AF653499CA5585851205807E7EC4A3241FDD4C302AAC131FE24B2AC3700D3D21A82EB999FD0005E810811CEB2B1279D95E028269503DBF65FB23CBFC595B12BC67EC4A77D00324909088B6FDF511ABA41732957D32CC436FB0BE95E04F46DF57EC93E4FBD8FF12E18288384CBFABB1BD58F4A047CBF1AB831B43C550515DA98CA33697ECEE8AFAC110E7DD284D531324AC21013C86CFBC9DC286B6669534D8E2D40319E9BA9DC5ACE1825354E1869614CBCB708586A9455D20FC3B724C6FBF941EAAB3FFA61647906B890D9C8F2831A59B7A9A4EB6305DAEDE94A0525C8150EA3B27FC405430B82885E8EAA64A46E2E24DA089A0008C09C5B8117F5E5F397DCAC43906067AE2C6A1B7C1D1B2D233EFF6CBC472F328053EB666EC826604ADA4E27CA01FF98B7A5ADCF8FD3A6E2F6AEC4F36CE8D1D847E611CFDDA7B53AE4F0BA6481A2265D134B5B78F8416164B262CF58FA8806090613D09FA2E8CC417AF2A3208F5BB210CA87927C4FB980C9B97A743CC1B3A7BB9E22DD78EDFB52669C4DB24F796C5D99038E140CE81A9DFECE675F200DC0DEC203FB94380EAA8D13F30530A410BCBD393137FBF89AB80D872D6A4A46B303F01E79FA05DEF4F0F2A2ABD0788459E4C678F3952072570971EA5A686E5964D1C3A61E2311F57E7AB8519809243EB88A87A21B6589A16862EE1B9B4DD452950DDBB5D5482099FC667B5F9A43E3F803D9D0030D0D6E0F86DBFD2B0C2A67B9BFB1F318C6DF0745F75F9F59C7CC62F4763FBBFE3517BF28D9B68372674CBB759E150F6F06FB3053343D54DB7959B79C3764FE57AC25EF6728F1A6A2C6D98E56841DC461BBF12BD23E8C058D500435777431ADC23CA373B0F4A43B5E18787925E79113199A368F30692429BF3041D9BC82BFF88147C3DE432169578E304C72D5953204369BEB6303F | 251 | 20180921154930 2 6 100 6143 2 CAD8A4810C1ADC23A2317EA8BB2F93AD4198F948452AD65159BD3D71800456C339AFD34BC6D512D8FCD337463E3CDFBB4E81A9BE01A6FBA103051D50118610088400DEE2C8E51376B07593D50760832754D352737620CB3BD45CF6A0356209541D14FA9A356DB075DAC362617DF28B202B8FF5FE65A7A6106715796ECC5433DF29FDE1BA29D1D70BB0248EFEEE7DCB10B78EDE9F37078D39AEE37395927F97C2E8C8D80747496C5F4C7ED0A14193BDABE56665BE74475CBD49049F7BE47366B32A1E828B3155A7D48F1D06052DDAA3C0C24550772A69F0E3635794B1FC8BFF6274582092BE2CB3323269D3433FF6CC0294074B0BD8E5DF1A42A4A2A687FE9C4772994FA5EA75F099539D9A7761C687F3F2896D0517E73ABC64C8A330E740DB99537F30E9566497DE782C8F5A5A9E64111478A69BA4535C72B323CCCAFFD7E2C181009424D4CA391B0CED89411455E8CB00147E098716861AAB1B18EC5F295F22C8F687C9DBA534BDDF5F98D94E07F0DFFBB9D272AD71A7B1F657794E36EABA60A6D097F0AB4C405909F5D3D15B177496BCE74217892D701745D176AC5A6049C75F2C17C18FB00F09DFCF1934E69E64DC4C758C3353411503479EE07D7660B67DFDE76DD3FA26B2894DC3C6F5A87059657428324E613F7FE6AD25B09D73133AE16C0A5CA8E285BEF024DE79A27A3C363A70B80AAA1638EDEE29FCBD929D6AE23A5A064769F474D116DD11EACCA5B629EFAB4A95053BD9EBD5B21A3AC3CCD503EDF8CC659FBEAE8FC4EEB2B59CEB41438752AD130476F2DE793FB993BDE8057F1F31437F053B847653D379E2ED78491A0AF3F8ADFC4FF023DB11CC9087AFFC810FE16491CEE4E7CB8622C47E0F44479C0C6D915F4A68723B38FBE83DFDCEE4D5745CD316444BD98C951DAA9706795FE922754B80DB3AE924FBEC44AEF4C3D31EB9299175322FEF02A52E854377030F9BF09AB7CC1BF5327C8746BCAD1AA0A876B740FBCA2C914D45BA75292A2329078DF05ECDC8EA0C149D29E481AA1CA80DB2A13ADA476DE3D82D24136A5B92B7FCCC486A785706FF8ED0CD41F5DF4AD3B43EF3 |
252 | 20180409124237 2 6 100 6143 2 E0CFB3582CE2D136E662908DCAA4CD666F574807FFFFF04BFB357D087BD132C8B569A579EC7FEDA39DA9FDBC7A8B289953FC1793F1B5D0F13A317C5F25554892D8A4F4EE9E85B9737D1412316C8169810745D8AC420ED45AA5419137F86E811AA101CD8746EDC5AF653499CA5585851205807E7EC4A3241FDD4C302AAC131FE24B2AC3700D3D21A82EB999FD0005E810811CEB2B1279D95E028269503DBF65FB23CBFC595B12BC67EC4A77D00324909088B6FDF511ABA41732957D32CC436FB0BE95E04F46DF57EC93E4FBD8FF12E18288384CBFABB1BD58F4A047CBF1AB831B43C550515DA98CA33697ECEE8AFAC110E7DD284D531324AC21013C86CFBC9DC286B6669534D8E2D40319E9BA9DC5ACE1825354E1869614CBCB708586A9455D20FC3B724C6FBF941EAAB3FFA61647906B890D9C8F2831A59B7A9A4EB6305DAEDE94A0525C8150EA3B27FC405430B82885E8EAA64A46E2E24DA089A0008C09C5B8117F5E5F397DCAC43906067AE2C6A1B7C1D1B2D233EFF6CBC472F328053EB666EC826604ADA4E27CA01FF98B7A5ADCF8FD3A6E2F6AEC4F36CE8D1D847E611CFDDA7B53AE4F0BA6481A2265D134B5B78F8416164B262CF58FA8806090613D09FA2E8CC417AF2A3208F5BB210CA87927C4FB980C9B97A743CC1B3A7BB9E22DD78EDFB52669C4DB24F796C5D99038E140CE81A9DFECE675F200DC0DEC203FB94380EAA8D13F30530A410BCBD393137FBF89AB80D872D6A4A46B303F01E79FA05DEF4F0F2A2ABD0788459E4C678F3952072570971EA5A686E5964D1C3A61E2311F57E7AB8519809243EB88A87A21B6589A16862EE1B9B4DD452950DDBB5D5482099FC667B5F9A43E3F803D9D0030D0D6E0F86DBFD2B0C2A67B9BFB1F318C6DF0745F75F9F59C7CC62F4763FBBFE3517BF28D9B68372674CBB759E150F6F06FB3053343D54DB7959B79C3764FE57AC25EF6728F1A6A2C6D98E56841DC461BBF12BD23E8C058D500435777431ADC23CA373B0F4A43B5E18787925E79113199A368F30692429BF3041D9BC82BFF88147C3DE432169578E304C72D5953204369C1F95DB3 | 252 | 20180921162910 2 6 100 6143 2 CAD8A4810C1ADC23A2317EA8BB2F93AD4198F948452AD65159BD3D71800456C339AFD34BC6D512D8FCD337463E3CDFBB4E81A9BE01A6FBA103051D50118610088400DEE2C8E51376B07593D50760832754D352737620CB3BD45CF6A0356209541D14FA9A356DB075DAC362617DF28B202B8FF5FE65A7A6106715796ECC5433DF29FDE1BA29D1D70BB0248EFEEE7DCB10B78EDE9F37078D39AEE37395927F97C2E8C8D80747496C5F4C7ED0A14193BDABE56665BE74475CBD49049F7BE47366B32A1E828B3155A7D48F1D06052DDAA3C0C24550772A69F0E3635794B1FC8BFF6274582092BE2CB3323269D3433FF6CC0294074B0BD8E5DF1A42A4A2A687FE9C4772994FA5EA75F099539D9A7761C687F3F2896D0517E73ABC64C8A330E740DB99537F30E9566497DE782C8F5A5A9E64111478A69BA4535C72B323CCCAFFD7E2C181009424D4CA391B0CED89411455E8CB00147E098716861AAB1B18EC5F295F22C8F687C9DBA534BDDF5F98D94E07F0DFFBB9D272AD71A7B1F657794E36EABA60A6D097F0AB4C405909F5D3D15B177496BCE74217892D701745D176AC5A6049C75F2C17C18FB00F09DFCF1934E69E64DC4C758C3353411503479EE07D7660B67DFDE76DD3FA26B2894DC3C6F5A87059657428324E613F7FE6AD25B09D73133AE16C0A5CA8E285BEF024DE79A27A3C363A70B80AAA1638EDEE29FCBD929D6AE23A5A064769F474D116DD11EACCA5B629EFAB4A95053BD9EBD5B21A3AC3CCD503EDF8CC659FBEAE8FC4EEB2B59CEB41438752AD130476F2DE793FB993BDE8057F1F31437F053B847653D379E2ED78491A0AF3F8ADFC4FF023DB11CC9087AFFC810FE16491CEE4E7CB8622C47E0F44479C0C6D915F4A68723B38FBE83DFDCEE4D5745CD316444BD98C951DAA9706795FE922754B80DB3AE924FBEC44AEF4C3D31EB9299175322FEF02A52E854377030F9BF09AB7CC1BF5327C8746BCAD1AA0A876B740FBCA2C914D45BA75292A2329078DF05ECDC8EA0C149D29E481AA1CA80DB2A13ADA476DE3D82D24136A5B92B7FCCC486A785706FF8ED0CD41F5DF4AD4A147DB |
253 | 20180409150941 2 6 100 6143 5 E0CFB3582CE2D136E662908DCAA4CD666F574807FFFFF04BFB357D087BD132C8B569A579EC7FEDA39DA9FDBC7A8B289953FC1793F1B5D0F13A317C5F25554892D8A4F4EE9E85B9737D1412316C8169810745D8AC420ED45AA5419137F86E811AA101CD8746EDC5AF653499CA5585851205807E7EC4A3241FDD4C302AAC131FE24B2AC3700D3D21A82EB999FD0005E810811CEB2B1279D95E028269503DBF65FB23CBFC595B12BC67EC4A77D00324909088B6FDF511ABA41732957D32CC436FB0BE95E04F46DF57EC93E4FBD8FF12E18288384CBFABB1BD58F4A047CBF1AB831B43C550515DA98CA33697ECEE8AFAC110E7DD284D531324AC21013C86CFBC9DC286B6669534D8E2D40319E9BA9DC5ACE1825354E1869614CBCB708586A9455D20FC3B724C6FBF941EAAB3FFA61647906B890D9C8F2831A59B7A9A4EB6305DAEDE94A0525C8150EA3B27FC405430B82885E8EAA64A46E2E24DA089A0008C09C5B8117F5E5F397DCAC43906067AE2C6A1B7C1D1B2D233EFF6CBC472F328053EB666EC826604ADA4E27CA01FF98B7A5ADCF8FD3A6E2F6AEC4F36CE8D1D847E611CFDDA7B53AE4F0BA6481A2265D134B5B78F8416164B262CF58FA8806090613D09FA2E8CC417AF2A3208F5BB210CA87927C4FB980C9B97A743CC1B3A7BB9E22DD78EDFB52669C4DB24F796C5D99038E140CE81A9DFECE675F200DC0DEC203FB94380EAA8D13F30530A410BCBD393137FBF89AB80D872D6A4A46B303F01E79FA05DEF4F0F2A2ABD0788459E4C678F3952072570971EA5A686E5964D1C3A61E2311F57E7AB8519809243EB88A87A21B6589A16862EE1B9B4DD452950DDBB5D5482099FC667B5F9A43E3F803D9D0030D0D6E0F86DBFD2B0C2A67B9BFB1F318C6DF0745F75F9F59C7CC62F4763FBBFE3517BF28D9B68372674CBB759E150F6F06FB3053343D54DB7959B79C3764FE57AC25EF6728F1A6A2C6D98E56841DC461BBF12BD23E8C058D500435777431ADC23CA373B0F4A43B5E18787925E79113199A368F30692429BF3041D9BC82BFF88147C3DE432169578E304C72D5953204369C3A97BA7 | 253 | 20180921183414 2 6 100 6143 5 CAD8A4810C1ADC23A2317EA8BB2F93AD4198F948452AD65159BD3D71800456C339AFD34BC6D512D8FCD337463E3CDFBB4E81A9BE01A6FBA103051D50118610088400DEE2C8E51376B07593D50760832754D352737620CB3BD45CF6A0356209541D14FA9A356DB075DAC362617DF28B202B8FF5FE65A7A6106715796ECC5433DF29FDE1BA29D1D70BB0248EFEEE7DCB10B78EDE9F37078D39AEE37395927F97C2E8C8D80747496C5F4C7ED0A14193BDABE56665BE74475CBD49049F7BE47366B32A1E828B3155A7D48F1D06052DDAA3C0C24550772A69F0E3635794B1FC8BFF6274582092BE2CB3323269D3433FF6CC0294074B0BD8E5DF1A42A4A2A687FE9C4772994FA5EA75F099539D9A7761C687F3F2896D0517E73ABC64C8A330E740DB99537F30E9566497DE782C8F5A5A9E64111478A69BA4535C72B323CCCAFFD7E2C181009424D4CA391B0CED89411455E8CB00147E098716861AAB1B18EC5F295F22C8F687C9DBA534BDDF5F98D94E07F0DFFBB9D272AD71A7B1F657794E36EABA60A6D097F0AB4C405909F5D3D15B177496BCE74217892D701745D176AC5A6049C75F2C17C18FB00F09DFCF1934E69E64DC4C758C3353411503479EE07D7660B67DFDE76DD3FA26B2894DC3C6F5A87059657428324E613F7FE6AD25B09D73133AE16C0A5CA8E285BEF024DE79A27A3C363A70B80AAA1638EDEE29FCBD929D6AE23A5A064769F474D116DD11EACCA5B629EFAB4A95053BD9EBD5B21A3AC3CCD503EDF8CC659FBEAE8FC4EEB2B59CEB41438752AD130476F2DE793FB993BDE8057F1F31437F053B847653D379E2ED78491A0AF3F8ADFC4FF023DB11CC9087AFFC810FE16491CEE4E7CB8622C47E0F44479C0C6D915F4A68723B38FBE83DFDCEE4D5745CD316444BD98C951DAA9706795FE922754B80DB3AE924FBEC44AEF4C3D31EB9299175322FEF02A52E854377030F9BF09AB7CC1BF5327C8746BCAD1AA0A876B740FBCA2C914D45BA75292A2329078DF05ECDC8EA0C149D29E481AA1CA80DB2A13ADA476DE3D82D24136A5B92B7FCCC486A785706FF8ED0CD41F5DF4AD79B0197 |
254 | 20180409162805 2 6 100 6143 5 E0CFB3582CE2D136E662908DCAA4CD666F574807FFFFF04BFB357D087BD132C8B569A579EC7FEDA39DA9FDBC7A8B289953FC1793F1B5D0F13A317C5F25554892D8A4F4EE9E85B9737D1412316C8169810745D8AC420ED45AA5419137F86E811AA101CD8746EDC5AF653499CA5585851205807E7EC4A3241FDD4C302AAC131FE24B2AC3700D3D21A82EB999FD0005E810811CEB2B1279D95E028269503DBF65FB23CBFC595B12BC67EC4A77D00324909088B6FDF511ABA41732957D32CC436FB0BE95E04F46DF57EC93E4FBD8FF12E18288384CBFABB1BD58F4A047CBF1AB831B43C550515DA98CA33697ECEE8AFAC110E7DD284D531324AC21013C86CFBC9DC286B6669534D8E2D40319E9BA9DC5ACE1825354E1869614CBCB708586A9455D20FC3B724C6FBF941EAAB3FFA61647906B890D9C8F2831A59B7A9A4EB6305DAEDE94A0525C8150EA3B27FC405430B82885E8EAA64A46E2E24DA089A0008C09C5B8117F5E5F397DCAC43906067AE2C6A1B7C1D1B2D233EFF6CBC472F328053EB666EC826604ADA4E27CA01FF98B7A5ADCF8FD3A6E2F6AEC4F36CE8D1D847E611CFDDA7B53AE4F0BA6481A2265D134B5B78F8416164B262CF58FA8806090613D09FA2E8CC417AF2A3208F5BB210CA87927C4FB980C9B97A743CC1B3A7BB9E22DD78EDFB52669C4DB24F796C5D99038E140CE81A9DFECE675F200DC0DEC203FB94380EAA8D13F30530A410BCBD393137FBF89AB80D872D6A4A46B303F01E79FA05DEF4F0F2A2ABD0788459E4C678F3952072570971EA5A686E5964D1C3A61E2311F57E7AB8519809243EB88A87A21B6589A16862EE1B9B4DD452950DDBB5D5482099FC667B5F9A43E3F803D9D0030D0D6E0F86DBFD2B0C2A67B9BFB1F318C6DF0745F75F9F59C7CC62F4763FBBFE3517BF28D9B68372674CBB759E150F6F06FB3053343D54DB7959B79C3764FE57AC25EF6728F1A6A2C6D98E56841DC461BBF12BD23E8C058D500435777431ADC23CA373B0F4A43B5E18787925E79113199A368F30692429BF3041D9BC82BFF88147C3DE432169578E304C72D5953204369C56C92A7 | 254 | 20180921184903 2 6 100 6143 2 CAD8A4810C1ADC23A2317EA8BB2F93AD4198F948452AD65159BD3D71800456C339AFD34BC6D512D8FCD337463E3CDFBB4E81A9BE01A6FBA103051D50118610088400DEE2C8E51376B07593D50760832754D352737620CB3BD45CF6A0356209541D14FA9A356DB075DAC362617DF28B202B8FF5FE65A7A6106715796ECC5433DF29FDE1BA29D1D70BB0248EFEEE7DCB10B78EDE9F37078D39AEE37395927F97C2E8C8D80747496C5F4C7ED0A14193BDABE56665BE74475CBD49049F7BE47366B32A1E828B3155A7D48F1D06052DDAA3C0C24550772A69F0E3635794B1FC8BFF6274582092BE2CB3323269D3433FF6CC0294074B0BD8E5DF1A42A4A2A687FE9C4772994FA5EA75F099539D9A7761C687F3F2896D0517E73ABC64C8A330E740DB99537F30E9566497DE782C8F5A5A9E64111478A69BA4535C72B323CCCAFFD7E2C181009424D4CA391B0CED89411455E8CB00147E098716861AAB1B18EC5F295F22C8F687C9DBA534BDDF5F98D94E07F0DFFBB9D272AD71A7B1F657794E36EABA60A6D097F0AB4C405909F5D3D15B177496BCE74217892D701745D176AC5A6049C75F2C17C18FB00F09DFCF1934E69E64DC4C758C3353411503479EE07D7660B67DFDE76DD3FA26B2894DC3C6F5A87059657428324E613F7FE6AD25B09D73133AE16C0A5CA8E285BEF024DE79A27A3C363A70B80AAA1638EDEE29FCBD929D6AE23A5A064769F474D116DD11EACCA5B629EFAB4A95053BD9EBD5B21A3AC3CCD503EDF8CC659FBEAE8FC4EEB2B59CEB41438752AD130476F2DE793FB993BDE8057F1F31437F053B847653D379E2ED78491A0AF3F8ADFC4FF023DB11CC9087AFFC810FE16491CEE4E7CB8622C47E0F44479C0C6D915F4A68723B38FBE83DFDCEE4D5745CD316444BD98C951DAA9706795FE922754B80DB3AE924FBEC44AEF4C3D31EB9299175322FEF02A52E854377030F9BF09AB7CC1BF5327C8746BCAD1AA0A876B740FBCA2C914D45BA75292A2329078DF05ECDC8EA0C149D29E481AA1CA80DB2A13ADA476DE3D82D24136A5B92B7FCCC486A785706FF8ED0CD41F5DF4AD7F055F3 |
255 | 20180409185627 2 6 100 6143 5 E0CFB3582CE2D136E662908DCAA4CD666F574807FFFFF04BFB357D087BD132C8B569A579EC7FEDA39DA9FDBC7A8B289953FC1793F1B5D0F13A317C5F25554892D8A4F4EE9E85B9737D1412316C8169810745D8AC420ED45AA5419137F86E811AA101CD8746EDC5AF653499CA5585851205807E7EC4A3241FDD4C302AAC131FE24B2AC3700D3D21A82EB999FD0005E810811CEB2B1279D95E028269503DBF65FB23CBFC595B12BC67EC4A77D00324909088B6FDF511ABA41732957D32CC436FB0BE95E04F46DF57EC93E4FBD8FF12E18288384CBFABB1BD58F4A047CBF1AB831B43C550515DA98CA33697ECEE8AFAC110E7DD284D531324AC21013C86CFBC9DC286B6669534D8E2D40319E9BA9DC5ACE1825354E1869614CBCB708586A9455D20FC3B724C6FBF941EAAB3FFA61647906B890D9C8F2831A59B7A9A4EB6305DAEDE94A0525C8150EA3B27FC405430B82885E8EAA64A46E2E24DA089A0008C09C5B8117F5E5F397DCAC43906067AE2C6A1B7C1D1B2D233EFF6CBC472F328053EB666EC826604ADA4E27CA01FF98B7A5ADCF8FD3A6E2F6AEC4F36CE8D1D847E611CFDDA7B53AE4F0BA6481A2265D134B5B78F8416164B262CF58FA8806090613D09FA2E8CC417AF2A3208F5BB210CA87927C4FB980C9B97A743CC1B3A7BB9E22DD78EDFB52669C4DB24F796C5D99038E140CE81A9DFECE675F200DC0DEC203FB94380EAA8D13F30530A410BCBD393137FBF89AB80D872D6A4A46B303F01E79FA05DEF4F0F2A2ABD0788459E4C678F3952072570971EA5A686E5964D1C3A61E2311F57E7AB8519809243EB88A87A21B6589A16862EE1B9B4DD452950DDBB5D5482099FC667B5F9A43E3F803D9D0030D0D6E0F86DBFD2B0C2A67B9BFB1F318C6DF0745F75F9F59C7CC62F4763FBBFE3517BF28D9B68372674CBB759E150F6F06FB3053343D54DB7959B79C3764FE57AC25EF6728F1A6A2C6D98E56841DC461BBF12BD23E8C058D500435777431ADC23CA373B0F4A43B5E18787925E79113199A368F30692429BF3041D9BC82BFF88147C3DE432169578E304C72D5953204369C8DC8A0F | 255 | 20180921190227 2 6 100 6143 2 CAD8A4810C1ADC23A2317EA8BB2F93AD4198F948452AD65159BD3D71800456C339AFD34BC6D512D8FCD337463E3CDFBB4E81A9BE01A6FBA103051D50118610088400DEE2C8E51376B07593D50760832754D352737620CB3BD45CF6A0356209541D14FA9A356DB075DAC362617DF28B202B8FF5FE65A7A6106715796ECC5433DF29FDE1BA29D1D70BB0248EFEEE7DCB10B78EDE9F37078D39AEE37395927F97C2E8C8D80747496C5F4C7ED0A14193BDABE56665BE74475CBD49049F7BE47366B32A1E828B3155A7D48F1D06052DDAA3C0C24550772A69F0E3635794B1FC8BFF6274582092BE2CB3323269D3433FF6CC0294074B0BD8E5DF1A42A4A2A687FE9C4772994FA5EA75F099539D9A7761C687F3F2896D0517E73ABC64C8A330E740DB99537F30E9566497DE782C8F5A5A9E64111478A69BA4535C72B323CCCAFFD7E2C181009424D4CA391B0CED89411455E8CB00147E098716861AAB1B18EC5F295F22C8F687C9DBA534BDDF5F98D94E07F0DFFBB9D272AD71A7B1F657794E36EABA60A6D097F0AB4C405909F5D3D15B177496BCE74217892D701745D176AC5A6049C75F2C17C18FB00F09DFCF1934E69E64DC4C758C3353411503479EE07D7660B67DFDE76DD3FA26B2894DC3C6F5A87059657428324E613F7FE6AD25B09D73133AE16C0A5CA8E285BEF024DE79A27A3C363A70B80AAA1638EDEE29FCBD929D6AE23A5A064769F474D116DD11EACCA5B629EFAB4A95053BD9EBD5B21A3AC3CCD503EDF8CC659FBEAE8FC4EEB2B59CEB41438752AD130476F2DE793FB993BDE8057F1F31437F053B847653D379E2ED78491A0AF3F8ADFC4FF023DB11CC9087AFFC810FE16491CEE4E7CB8622C47E0F44479C0C6D915F4A68723B38FBE83DFDCEE4D5745CD316444BD98C951DAA9706795FE922754B80DB3AE924FBEC44AEF4C3D31EB9299175322FEF02A52E854377030F9BF09AB7CC1BF5327C8746BCAD1AA0A876B740FBCA2C914D45BA75292A2329078DF05ECDC8EA0C149D29E481AA1CA80DB2A13ADA476DE3D82D24136A5B92B7FCCC486A785706FF8ED0CD41F5DF4AD837F15B |
256 | 20180409201511 2 6 100 6143 5 E01FFD7EC91328929E4FD6183C9C9EDF4EF8CFC608D943A1011CEE0B49D7322663D64028F7205A4F008A0C8F393F91FF42D1C7ACB6B4041D0DC79BB0DA6D394532A0E33BC96FEA6EC2E67987F13D2F218B9E8A46D20125D822B6AA1C9615087E5C667CCA74414305E3382E20792B058F61D9DBFD93EF80A2E30E17FDB883F79989B540A6E467D9CEF07C849B659890706CAC7FF6F95669DAD0D9170D485C298AA940C6B7B3092E265FB512C70F36E3D6515B7B799E20FFE9DA35F932C3F2C238F5D8BCB92193216563D6163EB9FAAFEDD0E8A1A3F8CE292E8A1BEF630C5E75D845444B414017844E9560C8309CD54BF9EEAB2CAAE888226AB8031F1569A728256BB6FCC14DF314314F9F2DF75E781E8A4A5411ACCB4D9E3103131F52E0D14386A6E107AA7A522E42F1A41C8A8E46CE69E824492B87BC8B34A457EC25A7508B3E1A33BCC9E99EA754163AEC31161A83A80780DF46D36E757CF90C0F002DF73AB406F7DF81FDA75AD7F3F052EEA91955FA737616D8D4BB87A60FF471400D50688146BC3C10FF60A35D8BB9EF6BEF26497361118125FBEE607726AA408674A45931C87666146BE520503A5241D49B964406A864749C50F9B2718B8E0F62614DB27F35F53D57F70CB4ECE081BD377CDBA5C4AD75BEA63CB8E2653E52D11C0CAC67916B0C24232FC9D90091C7CDD317D4F60D8271D81E70B79031BE25CD5D6CC1E7A04FAF98C25B143B9D7B08D94160B1737AB49F55A01AF3A9BB7C8C261E8F2F84A1995C752276F5F03E54EE22A973F63C73083377DD6851634AA5568AA1173E5BE96606D946AAC82951E326750E18C2AD12C311EF784AD9014BEE322032B45244BD6EEDA224CCDA93983C8FB326F8C8B02F5574B0BC0CD7BFD1C524CD66ACD8A7AC1619E57136F2FEB5F49E9791D4E0F0C9AB8B9E7A98E49E5603D4E02771EFC9993ED15974CD0EEA50510C410FD884CB5D83D0FCD0AF7218D49523F95C4C396CBC0359DABD75EC138910788E1766649130AD089F565ED926B4F26FEBAF9CA4F768E6CA6E6BB7E43769B7D46E2F0D6A63254B41715567635FC1D38DCD7E047122A7 | 256 | 20180922004824 2 6 100 6143 2 CAD8A4810C1ADC23A2317EA8BB2F93AD4198F948452AD65159BD3D71800456C339AFD34BC6D512D8FCD337463E3CDFBB4E81A9BE01A6FBA103051D50118610088400DEE2C8E51376B07593D50760832754D352737620CB3BD45CF6A0356209541D14FA9A356DB075DAC362617DF28B202B8FF5FE65A7A6106715796ECC5433DF29FDE1BA29D1D70BB0248EFEEE7DCB10B78EDE9F37078D39AEE37395927F97C2E8C8D80747496C5F4C7ED0A14193BDABE56665BE74475CBD49049F7BE47366B32A1E828B3155A7D48F1D06052DDAA3C0C24550772A69F0E3635794B1FC8BFF6274582092BE2CB3323269D3433FF6CC0294074B0BD8E5DF1A42A4A2A687FE9C4772994FA5EA75F099539D9A7761C687F3F2896D0517E73ABC64C8A330E740DB99537F30E9566497DE782C8F5A5A9E64111478A69BA4535C72B323CCCAFFD7E2C181009424D4CA391B0CED89411455E8CB00147E098716861AAB1B18EC5F295F22C8F687C9DBA534BDDF5F98D94E07F0DFFBB9D272AD71A7B1F657794E36EABA60A6D097F0AB4C405909F5D3D15B177496BCE74217892D701745D176AC5A6049C75F2C17C18FB00F09DFCF1934E69E64DC4C758C3353411503479EE07D7660B67DFDE76DD3FA26B2894DC3C6F5A87059657428324E613F7FE6AD25B09D73133AE16C0A5CA8E285BEF024DE79A27A3C363A70B80AAA1638EDEE29FCBD929D6AE23A5A064769F474D116DD11EACCA5B629EFAB4A95053BD9EBD5B21A3AC3CCD503EDF8CC659FBEAE8FC4EEB2B59CEB41438752AD130476F2DE793FB993BDE8057F1F31437F053B847653D379E2ED78491A0AF3F8ADFC4FF023DB11CC9087AFFC810FE16491CEE4E7CB8622C47E0F44479C0C6D915F4A68723B38FBE83DFDCEE4D5745CD316444BD98C951DAA9706795FE922754B80DB3AE924FBEC44AEF4C3D31EB9299175322FEF02A52E854377030F9BF09AB7CC1BF5327C8746BCAD1AA0A876B740FBCA2C914D45BA75292A2329078DF05ECDC8EA0C149D29E481AA1CA80DB2A13ADA476DE3D82D24136A5B92B7FCCC486A785706FF8ED0CD41F5DF4AE097172B |
257 | 20180409212042 2 6 100 6143 5 E01FFD7EC91328929E4FD6183C9C9EDF4EF8CFC608D943A1011CEE0B49D7322663D64028F7205A4F008A0C8F393F91FF42D1C7ACB6B4041D0DC79BB0DA6D394532A0E33BC96FEA6EC2E67987F13D2F218B9E8A46D20125D822B6AA1C9615087E5C667CCA74414305E3382E20792B058F61D9DBFD93EF80A2E30E17FDB883F79989B540A6E467D9CEF07C849B659890706CAC7FF6F95669DAD0D9170D485C298AA940C6B7B3092E265FB512C70F36E3D6515B7B799E20FFE9DA35F932C3F2C238F5D8BCB92193216563D6163EB9FAAFEDD0E8A1A3F8CE292E8A1BEF630C5E75D845444B414017844E9560C8309CD54BF9EEAB2CAAE888226AB8031F1569A728256BB6FCC14DF314314F9F2DF75E781E8A4A5411ACCB4D9E3103131F52E0D14386A6E107AA7A522E42F1A41C8A8E46CE69E824492B87BC8B34A457EC25A7508B3E1A33BCC9E99EA754163AEC31161A83A80780DF46D36E757CF90C0F002DF73AB406F7DF81FDA75AD7F3F052EEA91955FA737616D8D4BB87A60FF471400D50688146BC3C10FF60A35D8BB9EF6BEF26497361118125FBEE607726AA408674A45931C87666146BE520503A5241D49B964406A864749C50F9B2718B8E0F62614DB27F35F53D57F70CB4ECE081BD377CDBA5C4AD75BEA63CB8E2653E52D11C0CAC67916B0C24232FC9D90091C7CDD317D4F60D8271D81E70B79031BE25CD5D6CC1E7A04FAF98C25B143B9D7B08D94160B1737AB49F55A01AF3A9BB7C8C261E8F2F84A1995C752276F5F03E54EE22A973F63C73083377DD6851634AA5568AA1173E5BE96606D946AAC82951E326750E18C2AD12C311EF784AD9014BEE322032B45244BD6EEDA224CCDA93983C8FB326F8C8B02F5574B0BC0CD7BFD1C524CD66ACD8A7AC1619E57136F2FEB5F49E9791D4E0F0C9AB8B9E7A98E49E5603D4E02771EFC9993ED15974CD0EEA50510C410FD884CB5D83D0FCD0AF7218D49523F95C4C396CBC0359DABD75EC138910788E1766649130AD089F565ED926B4F26FEBAF9CA4F768E6CA6E6BB7E43769B7D46E2F0D6A63254B41715567635FC1D38DCD7E06189297 | 257 | 20180922040435 2 6 100 6143 2 CAD8A4810C1ADC23A2317EA8BB2F93AD4198F948452AD65159BD3D71800456C339AFD34BC6D512D8FCD337463E3CDFBB4E81A9BE01A6FBA103051D50118610088400DEE2C8E51376B07593D50760832754D352737620CB3BD45CF6A0356209541D14FA9A356DB075DAC362617DF28B202B8FF5FE65A7A6106715796ECC5433DF29FDE1BA29D1D70BB0248EFEEE7DCB10B78EDE9F37078D39AEE37395927F97C2E8C8D80747496C5F4C7ED0A14193BDABE56665BE74475CBD49049F7BE47366B32A1E828B3155A7D48F1D06052DDAA3C0C24550772A69F0E3635794B1FC8BFF6274582092BE2CB3323269D3433FF6CC0294074B0BD8E5DF1A42A4A2A687FE9C4772994FA5EA75F099539D9A7761C687F3F2896D0517E73ABC64C8A330E740DB99537F30E9566497DE782C8F5A5A9E64111478A69BA4535C72B323CCCAFFD7E2C181009424D4CA391B0CED89411455E8CB00147E098716861AAB1B18EC5F295F22C8F687C9DBA534BDDF5F98D94E07F0DFFBB9D272AD71A7B1F657794E36EABA60A6D097F0AB4C405909F5D3D15B177496BCE74217892D701745D176AC5A6049C75F2C17C18FB00F09DFCF1934E69E64DC4C758C3353411503479EE07D7660B67DFDE76DD3FA26B2894DC3C6F5A87059657428324E613F7FE6AD25B09D73133AE16C0A5CA8E285BEF024DE79A27A3C363A70B80AAA1638EDEE29FCBD929D6AE23A5A064769F474D116DD11EACCA5B629EFAB4A95053BD9EBD5B21A3AC3CCD503EDF8CC659FBEAE8FC4EEB2B59CEB41438752AD130476F2DE793FB993BDE8057F1F31437F053B847653D379E2ED78491A0AF3F8ADFC4FF023DB11CC9087AFFC810FE16491CEE4E7CB8622C47E0F44479C0C6D915F4A68723B38FBE83DFDCEE4D5745CD316444BD98C951DAA9706795FE922754B80DB3AE924FBEC44AEF4C3D31EB9299175322FEF02A52E854377030F9BF09AB7CC1BF5327C8746BCAD1AA0A876B740FBCA2C914D45BA75292A2329078DF05ECDC8EA0C149D29E481AA1CA80DB2A13ADA476DE3D82D24136A5B92B7FCCC486A785706FF8ED0CD41F5DF4AE5403DDB |
258 | 20180410021123 2 6 100 6143 5 E01FFD7EC91328929E4FD6183C9C9EDF4EF8CFC608D943A1011CEE0B49D7322663D64028F7205A4F008A0C8F393F91FF42D1C7ACB6B4041D0DC79BB0DA6D394532A0E33BC96FEA6EC2E67987F13D2F218B9E8A46D20125D822B6AA1C9615087E5C667CCA74414305E3382E20792B058F61D9DBFD93EF80A2E30E17FDB883F79989B540A6E467D9CEF07C849B659890706CAC7FF6F95669DAD0D9170D485C298AA940C6B7B3092E265FB512C70F36E3D6515B7B799E20FFE9DA35F932C3F2C238F5D8BCB92193216563D6163EB9FAAFEDD0E8A1A3F8CE292E8A1BEF630C5E75D845444B414017844E9560C8309CD54BF9EEAB2CAAE888226AB8031F1569A728256BB6FCC14DF314314F9F2DF75E781E8A4A5411ACCB4D9E3103131F52E0D14386A6E107AA7A522E42F1A41C8A8E46CE69E824492B87BC8B34A457EC25A7508B3E1A33BCC9E99EA754163AEC31161A83A80780DF46D36E757CF90C0F002DF73AB406F7DF81FDA75AD7F3F052EEA91955FA737616D8D4BB87A60FF471400D50688146BC3C10FF60A35D8BB9EF6BEF26497361118125FBEE607726AA408674A45931C87666146BE520503A5241D49B964406A864749C50F9B2718B8E0F62614DB27F35F53D57F70CB4ECE081BD377CDBA5C4AD75BEA63CB8E2653E52D11C0CAC67916B0C24232FC9D90091C7CDD317D4F60D8271D81E70B79031BE25CD5D6CC1E7A04FAF98C25B143B9D7B08D94160B1737AB49F55A01AF3A9BB7C8C261E8F2F84A1995C752276F5F03E54EE22A973F63C73083377DD6851634AA5568AA1173E5BE96606D946AAC82951E326750E18C2AD12C311EF784AD9014BEE322032B45244BD6EEDA224CCDA93983C8FB326F8C8B02F5574B0BC0CD7BFD1C524CD66ACD8A7AC1619E57136F2FEB5F49E9791D4E0F0C9AB8B9E7A98E49E5603D4E02771EFC9993ED15974CD0EEA50510C410FD884CB5D83D0FCD0AF7218D49523F95C4C396CBC0359DABD75EC138910788E1766649130AD089F565ED926B4F26FEBAF9CA4F768E6CA6E6BB7E43769B7D46E2F0D6A63254B41715567635FC1D38DCD7E0D35B28F | 258 | 20180922052522 2 6 100 6143 2 CAD8A4810C1ADC23A2317EA8BB2F93AD4198F948452AD65159BD3D71800456C339AFD34BC6D512D8FCD337463E3CDFBB4E81A9BE01A6FBA103051D50118610088400DEE2C8E51376B07593D50760832754D352737620CB3BD45CF6A0356209541D14FA9A356DB075DAC362617DF28B202B8FF5FE65A7A6106715796ECC5433DF29FDE1BA29D1D70BB0248EFEEE7DCB10B78EDE9F37078D39AEE37395927F97C2E8C8D80747496C5F4C7ED0A14193BDABE56665BE74475CBD49049F7BE47366B32A1E828B3155A7D48F1D06052DDAA3C0C24550772A69F0E3635794B1FC8BFF6274582092BE2CB3323269D3433FF6CC0294074B0BD8E5DF1A42A4A2A687FE9C4772994FA5EA75F099539D9A7761C687F3F2896D0517E73ABC64C8A330E740DB99537F30E9566497DE782C8F5A5A9E64111478A69BA4535C72B323CCCAFFD7E2C181009424D4CA391B0CED89411455E8CB00147E098716861AAB1B18EC5F295F22C8F687C9DBA534BDDF5F98D94E07F0DFFBB9D272AD71A7B1F657794E36EABA60A6D097F0AB4C405909F5D3D15B177496BCE74217892D701745D176AC5A6049C75F2C17C18FB00F09DFCF1934E69E64DC4C758C3353411503479EE07D7660B67DFDE76DD3FA26B2894DC3C6F5A87059657428324E613F7FE6AD25B09D73133AE16C0A5CA8E285BEF024DE79A27A3C363A70B80AAA1638EDEE29FCBD929D6AE23A5A064769F474D116DD11EACCA5B629EFAB4A95053BD9EBD5B21A3AC3CCD503EDF8CC659FBEAE8FC4EEB2B59CEB41438752AD130476F2DE793FB993BDE8057F1F31437F053B847653D379E2ED78491A0AF3F8ADFC4FF023DB11CC9087AFFC810FE16491CEE4E7CB8622C47E0F44479C0C6D915F4A68723B38FBE83DFDCEE4D5745CD316444BD98C951DAA9706795FE922754B80DB3AE924FBEC44AEF4C3D31EB9299175322FEF02A52E854377030F9BF09AB7CC1BF5327C8746BCAD1AA0A876B740FBCA2C914D45BA75292A2329078DF05ECDC8EA0C149D29E481AA1CA80DB2A13ADA476DE3D82D24136A5B92B7FCCC486A785706FF8ED0CD41F5DF4AE71BA84B |
259 | 20180410022638 2 6 100 6143 2 E01FFD7EC91328929E4FD6183C9C9EDF4EF8CFC608D943A1011CEE0B49D7322663D64028F7205A4F008A0C8F393F91FF42D1C7ACB6B4041D0DC79BB0DA6D394532A0E33BC96FEA6EC2E67987F13D2F218B9E8A46D20125D822B6AA1C9615087E5C667CCA74414305E3382E20792B058F61D9DBFD93EF80A2E30E17FDB883F79989B540A6E467D9CEF07C849B659890706CAC7FF6F95669DAD0D9170D485C298AA940C6B7B3092E265FB512C70F36E3D6515B7B799E20FFE9DA35F932C3F2C238F5D8BCB92193216563D6163EB9FAAFEDD0E8A1A3F8CE292E8A1BEF630C5E75D845444B414017844E9560C8309CD54BF9EEAB2CAAE888226AB8031F1569A728256BB6FCC14DF314314F9F2DF75E781E8A4A5411ACCB4D9E3103131F52E0D14386A6E107AA7A522E42F1A41C8A8E46CE69E824492B87BC8B34A457EC25A7508B3E1A33BCC9E99EA754163AEC31161A83A80780DF46D36E757CF90C0F002DF73AB406F7DF81FDA75AD7F3F052EEA91955FA737616D8D4BB87A60FF471400D50688146BC3C10FF60A35D8BB9EF6BEF26497361118125FBEE607726AA408674A45931C87666146BE520503A5241D49B964406A864749C50F9B2718B8E0F62614DB27F35F53D57F70CB4ECE081BD377CDBA5C4AD75BEA63CB8E2653E52D11C0CAC67916B0C24232FC9D90091C7CDD317D4F60D8271D81E70B79031BE25CD5D6CC1E7A04FAF98C25B143B9D7B08D94160B1737AB49F55A01AF3A9BB7C8C261E8F2F84A1995C752276F5F03E54EE22A973F63C73083377DD6851634AA5568AA1173E5BE96606D946AAC82951E326750E18C2AD12C311EF784AD9014BEE322032B45244BD6EEDA224CCDA93983C8FB326F8C8B02F5574B0BC0CD7BFD1C524CD66ACD8A7AC1619E57136F2FEB5F49E9791D4E0F0C9AB8B9E7A98E49E5603D4E02771EFC9993ED15974CD0EEA50510C410FD884CB5D83D0FCD0AF7218D49523F95C4C396CBC0359DABD75EC138910788E1766649130AD089F565ED926B4F26FEBAF9CA4F768E6CA6E6BB7E43769B7D46E2F0D6A63254B41715567635FC1D38DCD7E0D8CA623 | 259 | 20180922073622 2 6 100 6143 2 CAD8A4810C1ADC23A2317EA8BB2F93AD4198F948452AD65159BD3D71800456C339AFD34BC6D512D8FCD337463E3CDFBB4E81A9BE01A6FBA103051D50118610088400DEE2C8E51376B07593D50760832754D352737620CB3BD45CF6A0356209541D14FA9A356DB075DAC362617DF28B202B8FF5FE65A7A6106715796ECC5433DF29FDE1BA29D1D70BB0248EFEEE7DCB10B78EDE9F37078D39AEE37395927F97C2E8C8D80747496C5F4C7ED0A14193BDABE56665BE74475CBD49049F7BE47366B32A1E828B3155A7D48F1D06052DDAA3C0C24550772A69F0E3635794B1FC8BFF6274582092BE2CB3323269D3433FF6CC0294074B0BD8E5DF1A42A4A2A687FE9C4772994FA5EA75F099539D9A7761C687F3F2896D0517E73ABC64C8A330E740DB99537F30E9566497DE782C8F5A5A9E64111478A69BA4535C72B323CCCAFFD7E2C181009424D4CA391B0CED89411455E8CB00147E098716861AAB1B18EC5F295F22C8F687C9DBA534BDDF5F98D94E07F0DFFBB9D272AD71A7B1F657794E36EABA60A6D097F0AB4C405909F5D3D15B177496BCE74217892D701745D176AC5A6049C75F2C17C18FB00F09DFCF1934E69E64DC4C758C3353411503479EE07D7660B67DFDE76DD3FA26B2894DC3C6F5A87059657428324E613F7FE6AD25B09D73133AE16C0A5CA8E285BEF024DE79A27A3C363A70B80AAA1638EDEE29FCBD929D6AE23A5A064769F474D116DD11EACCA5B629EFAB4A95053BD9EBD5B21A3AC3CCD503EDF8CC659FBEAE8FC4EEB2B59CEB41438752AD130476F2DE793FB993BDE8057F1F31437F053B847653D379E2ED78491A0AF3F8ADFC4FF023DB11CC9087AFFC810FE16491CEE4E7CB8622C47E0F44479C0C6D915F4A68723B38FBE83DFDCEE4D5745CD316444BD98C951DAA9706795FE922754B80DB3AE924FBEC44AEF4C3D31EB9299175322FEF02A52E854377030F9BF09AB7CC1BF5327C8746BCAD1AA0A876B740FBCA2C914D45BA75292A2329078DF05ECDC8EA0C149D29E481AA1CA80DB2A13ADA476DE3D82D24136A5B92B7FCCC486A785706FF8ED0CD41F5DF4AEA2D28E3 |
260 | 20180410024637 2 6 100 6143 5 E01FFD7EC91328929E4FD6183C9C9EDF4EF8CFC608D943A1011CEE0B49D7322663D64028F7205A4F008A0C8F393F91FF42D1C7ACB6B4041D0DC79BB0DA6D394532A0E33BC96FEA6EC2E67987F13D2F218B9E8A46D20125D822B6AA1C9615087E5C667CCA74414305E3382E20792B058F61D9DBFD93EF80A2E30E17FDB883F79989B540A6E467D9CEF07C849B659890706CAC7FF6F95669DAD0D9170D485C298AA940C6B7B3092E265FB512C70F36E3D6515B7B799E20FFE9DA35F932C3F2C238F5D8BCB92193216563D6163EB9FAAFEDD0E8A1A3F8CE292E8A1BEF630C5E75D845444B414017844E9560C8309CD54BF9EEAB2CAAE888226AB8031F1569A728256BB6FCC14DF314314F9F2DF75E781E8A4A5411ACCB4D9E3103131F52E0D14386A6E107AA7A522E42F1A41C8A8E46CE69E824492B87BC8B34A457EC25A7508B3E1A33BCC9E99EA754163AEC31161A83A80780DF46D36E757CF90C0F002DF73AB406F7DF81FDA75AD7F3F052EEA91955FA737616D8D4BB87A60FF471400D50688146BC3C10FF60A35D8BB9EF6BEF26497361118125FBEE607726AA408674A45931C87666146BE520503A5241D49B964406A864749C50F9B2718B8E0F62614DB27F35F53D57F70CB4ECE081BD377CDBA5C4AD75BEA63CB8E2653E52D11C0CAC67916B0C24232FC9D90091C7CDD317D4F60D8271D81E70B79031BE25CD5D6CC1E7A04FAF98C25B143B9D7B08D94160B1737AB49F55A01AF3A9BB7C8C261E8F2F84A1995C752276F5F03E54EE22A973F63C73083377DD6851634AA5568AA1173E5BE96606D946AAC82951E326750E18C2AD12C311EF784AD9014BEE322032B45244BD6EEDA224CCDA93983C8FB326F8C8B02F5574B0BC0CD7BFD1C524CD66ACD8A7AC1619E57136F2FEB5F49E9791D4E0F0C9AB8B9E7A98E49E5603D4E02771EFC9993ED15974CD0EEA50510C410FD884CB5D83D0FCD0AF7218D49523F95C4C396CBC0359DABD75EC138910788E1766649130AD089F565ED926B4F26FEBAF9CA4F768E6CA6E6BB7E43769B7D46E2F0D6A63254B41715567635FC1D38DCD7E0E02E03F | 260 | 20180922084529 2 6 100 6143 5 CAD8A4810C1ADC23A2317EA8BB2F93AD4198F948452AD65159BD3D71800456C339AFD34BC6D512D8FCD337463E3CDFBB4E81A9BE01A6FBA103051D50118610088400DEE2C8E51376B07593D50760832754D352737620CB3BD45CF6A0356209541D14FA9A356DB075DAC362617DF28B202B8FF5FE65A7A6106715796ECC5433DF29FDE1BA29D1D70BB0248EFEEE7DCB10B78EDE9F37078D39AEE37395927F97C2E8C8D80747496C5F4C7ED0A14193BDABE56665BE74475CBD49049F7BE47366B32A1E828B3155A7D48F1D06052DDAA3C0C24550772A69F0E3635794B1FC8BFF6274582092BE2CB3323269D3433FF6CC0294074B0BD8E5DF1A42A4A2A687FE9C4772994FA5EA75F099539D9A7761C687F3F2896D0517E73ABC64C8A330E740DB99537F30E9566497DE782C8F5A5A9E64111478A69BA4535C72B323CCCAFFD7E2C181009424D4CA391B0CED89411455E8CB00147E098716861AAB1B18EC5F295F22C8F687C9DBA534BDDF5F98D94E07F0DFFBB9D272AD71A7B1F657794E36EABA60A6D097F0AB4C405909F5D3D15B177496BCE74217892D701745D176AC5A6049C75F2C17C18FB00F09DFCF1934E69E64DC4C758C3353411503479EE07D7660B67DFDE76DD3FA26B2894DC3C6F5A87059657428324E613F7FE6AD25B09D73133AE16C0A5CA8E285BEF024DE79A27A3C363A70B80AAA1638EDEE29FCBD929D6AE23A5A064769F474D116DD11EACCA5B629EFAB4A95053BD9EBD5B21A3AC3CCD503EDF8CC659FBEAE8FC4EEB2B59CEB41438752AD130476F2DE793FB993BDE8057F1F31437F053B847653D379E2ED78491A0AF3F8ADFC4FF023DB11CC9087AFFC810FE16491CEE4E7CB8622C47E0F44479C0C6D915F4A68723B38FBE83DFDCEE4D5745CD316444BD98C951DAA9706795FE922754B80DB3AE924FBEC44AEF4C3D31EB9299175322FEF02A52E854377030F9BF09AB7CC1BF5327C8746BCAD1AA0A876B740FBCA2C914D45BA75292A2329078DF05ECDC8EA0C149D29E481AA1CA80DB2A13ADA476DE3D82D24136A5B92B7FCCC486A785706FF8ED0CD41F5DF4AEBD11737 |
261 | 20180410063306 2 6 100 6143 2 E01FFD7EC91328929E4FD6183C9C9EDF4EF8CFC608D943A1011CEE0B49D7322663D64028F7205A4F008A0C8F393F91FF42D1C7ACB6B4041D0DC79BB0DA6D394532A0E33BC96FEA6EC2E67987F13D2F218B9E8A46D20125D822B6AA1C9615087E5C667CCA74414305E3382E20792B058F61D9DBFD93EF80A2E30E17FDB883F79989B540A6E467D9CEF07C849B659890706CAC7FF6F95669DAD0D9170D485C298AA940C6B7B3092E265FB512C70F36E3D6515B7B799E20FFE9DA35F932C3F2C238F5D8BCB92193216563D6163EB9FAAFEDD0E8A1A3F8CE292E8A1BEF630C5E75D845444B414017844E9560C8309CD54BF9EEAB2CAAE888226AB8031F1569A728256BB6FCC14DF314314F9F2DF75E781E8A4A5411ACCB4D9E3103131F52E0D14386A6E107AA7A522E42F1A41C8A8E46CE69E824492B87BC8B34A457EC25A7508B3E1A33BCC9E99EA754163AEC31161A83A80780DF46D36E757CF90C0F002DF73AB406F7DF81FDA75AD7F3F052EEA91955FA737616D8D4BB87A60FF471400D50688146BC3C10FF60A35D8BB9EF6BEF26497361118125FBEE607726AA408674A45931C87666146BE520503A5241D49B964406A864749C50F9B2718B8E0F62614DB27F35F53D57F70CB4ECE081BD377CDBA5C4AD75BEA63CB8E2653E52D11C0CAC67916B0C24232FC9D90091C7CDD317D4F60D8271D81E70B79031BE25CD5D6CC1E7A04FAF98C25B143B9D7B08D94160B1737AB49F55A01AF3A9BB7C8C261E8F2F84A1995C752276F5F03E54EE22A973F63C73083377DD6851634AA5568AA1173E5BE96606D946AAC82951E326750E18C2AD12C311EF784AD9014BEE322032B45244BD6EEDA224CCDA93983C8FB326F8C8B02F5574B0BC0CD7BFD1C524CD66ACD8A7AC1619E57136F2FEB5F49E9791D4E0F0C9AB8B9E7A98E49E5603D4E02771EFC9993ED15974CD0EEA50510C410FD884CB5D83D0FCD0AF7218D49523F95C4C396CBC0359DABD75EC138910788E1766649130AD089F565ED926B4F26FEBAF9CA4F768E6CA6E6BB7E43769B7D46E2F0D6A63254B41715567635FC1D38DCD7E1393582B | 261 | 20180922095510 2 6 100 6143 2 CAD8A4810C1ADC23A2317EA8BB2F93AD4198F948452AD65159BD3D71800456C339AFD34BC6D512D8FCD337463E3CDFBB4E81A9BE01A6FBA103051D50118610088400DEE2C8E51376B07593D50760832754D352737620CB3BD45CF6A0356209541D14FA9A356DB075DAC362617DF28B202B8FF5FE65A7A6106715796ECC5433DF29FDE1BA29D1D70BB0248EFEEE7DCB10B78EDE9F37078D39AEE37395927F97C2E8C8D80747496C5F4C7ED0A14193BDABE56665BE74475CBD49049F7BE47366B32A1E828B3155A7D48F1D06052DDAA3C0C24550772A69F0E3635794B1FC8BFF6274582092BE2CB3323269D3433FF6CC0294074B0BD8E5DF1A42A4A2A687FE9C4772994FA5EA75F099539D9A7761C687F3F2896D0517E73ABC64C8A330E740DB99537F30E9566497DE782C8F5A5A9E64111478A69BA4535C72B323CCCAFFD7E2C181009424D4CA391B0CED89411455E8CB00147E098716861AAB1B18EC5F295F22C8F687C9DBA534BDDF5F98D94E07F0DFFBB9D272AD71A7B1F657794E36EABA60A6D097F0AB4C405909F5D3D15B177496BCE74217892D701745D176AC5A6049C75F2C17C18FB00F09DFCF1934E69E64DC4C758C3353411503479EE07D7660B67DFDE76DD3FA26B2894DC3C6F5A87059657428324E613F7FE6AD25B09D73133AE16C0A5CA8E285BEF024DE79A27A3C363A70B80AAA1638EDEE29FCBD929D6AE23A5A064769F474D116DD11EACCA5B629EFAB4A95053BD9EBD5B21A3AC3CCD503EDF8CC659FBEAE8FC4EEB2B59CEB41438752AD130476F2DE793FB993BDE8057F1F31437F053B847653D379E2ED78491A0AF3F8ADFC4FF023DB11CC9087AFFC810FE16491CEE4E7CB8622C47E0F44479C0C6D915F4A68723B38FBE83DFDCEE4D5745CD316444BD98C951DAA9706795FE922754B80DB3AE924FBEC44AEF4C3D31EB9299175322FEF02A52E854377030F9BF09AB7CC1BF5327C8746BCAD1AA0A876B740FBCA2C914D45BA75292A2329078DF05ECDC8EA0C149D29E481AA1CA80DB2A13ADA476DE3D82D24136A5B92B7FCCC486A785706FF8ED0CD41F5DF4AED6CB613 |
262 | 20180410063848 2 6 100 6143 2 E01FFD7EC91328929E4FD6183C9C9EDF4EF8CFC608D943A1011CEE0B49D7322663D64028F7205A4F008A0C8F393F91FF42D1C7ACB6B4041D0DC79BB0DA6D394532A0E33BC96FEA6EC2E67987F13D2F218B9E8A46D20125D822B6AA1C9615087E5C667CCA74414305E3382E20792B058F61D9DBFD93EF80A2E30E17FDB883F79989B540A6E467D9CEF07C849B659890706CAC7FF6F95669DAD0D9170D485C298AA940C6B7B3092E265FB512C70F36E3D6515B7B799E20FFE9DA35F932C3F2C238F5D8BCB92193216563D6163EB9FAAFEDD0E8A1A3F8CE292E8A1BEF630C5E75D845444B414017844E9560C8309CD54BF9EEAB2CAAE888226AB8031F1569A728256BB6FCC14DF314314F9F2DF75E781E8A4A5411ACCB4D9E3103131F52E0D14386A6E107AA7A522E42F1A41C8A8E46CE69E824492B87BC8B34A457EC25A7508B3E1A33BCC9E99EA754163AEC31161A83A80780DF46D36E757CF90C0F002DF73AB406F7DF81FDA75AD7F3F052EEA91955FA737616D8D4BB87A60FF471400D50688146BC3C10FF60A35D8BB9EF6BEF26497361118125FBEE607726AA408674A45931C87666146BE520503A5241D49B964406A864749C50F9B2718B8E0F62614DB27F35F53D57F70CB4ECE081BD377CDBA5C4AD75BEA63CB8E2653E52D11C0CAC67916B0C24232FC9D90091C7CDD317D4F60D8271D81E70B79031BE25CD5D6CC1E7A04FAF98C25B143B9D7B08D94160B1737AB49F55A01AF3A9BB7C8C261E8F2F84A1995C752276F5F03E54EE22A973F63C73083377DD6851634AA5568AA1173E5BE96606D946AAC82951E326750E18C2AD12C311EF784AD9014BEE322032B45244BD6EEDA224CCDA93983C8FB326F8C8B02F5574B0BC0CD7BFD1C524CD66ACD8A7AC1619E57136F2FEB5F49E9791D4E0F0C9AB8B9E7A98E49E5603D4E02771EFC9993ED15974CD0EEA50510C410FD884CB5D83D0FCD0AF7218D49523F95C4C396CBC0359DABD75EC138910788E1766649130AD089F565ED926B4F26FEBAF9CA4F768E6CA6E6BB7E43769B7D46E2F0D6A63254B41715567635FC1D38DCD7E13B0682B | 262 | 20180922100442 2 6 100 6143 2 CAD8A4810C1ADC23A2317EA8BB2F93AD4198F948452AD65159BD3D71800456C339AFD34BC6D512D8FCD337463E3CDFBB4E81A9BE01A6FBA103051D50118610088400DEE2C8E51376B07593D50760832754D352737620CB3BD45CF6A0356209541D14FA9A356DB075DAC362617DF28B202B8FF5FE65A7A6106715796ECC5433DF29FDE1BA29D1D70BB0248EFEEE7DCB10B78EDE9F37078D39AEE37395927F97C2E8C8D80747496C5F4C7ED0A14193BDABE56665BE74475CBD49049F7BE47366B32A1E828B3155A7D48F1D06052DDAA3C0C24550772A69F0E3635794B1FC8BFF6274582092BE2CB3323269D3433FF6CC0294074B0BD8E5DF1A42A4A2A687FE9C4772994FA5EA75F099539D9A7761C687F3F2896D0517E73ABC64C8A330E740DB99537F30E9566497DE782C8F5A5A9E64111478A69BA4535C72B323CCCAFFD7E2C181009424D4CA391B0CED89411455E8CB00147E098716861AAB1B18EC5F295F22C8F687C9DBA534BDDF5F98D94E07F0DFFBB9D272AD71A7B1F657794E36EABA60A6D097F0AB4C405909F5D3D15B177496BCE74217892D701745D176AC5A6049C75F2C17C18FB00F09DFCF1934E69E64DC4C758C3353411503479EE07D7660B67DFDE76DD3FA26B2894DC3C6F5A87059657428324E613F7FE6AD25B09D73133AE16C0A5CA8E285BEF024DE79A27A3C363A70B80AAA1638EDEE29FCBD929D6AE23A5A064769F474D116DD11EACCA5B629EFAB4A95053BD9EBD5B21A3AC3CCD503EDF8CC659FBEAE8FC4EEB2B59CEB41438752AD130476F2DE793FB993BDE8057F1F31437F053B847653D379E2ED78491A0AF3F8ADFC4FF023DB11CC9087AFFC810FE16491CEE4E7CB8622C47E0F44479C0C6D915F4A68723B38FBE83DFDCEE4D5745CD316444BD98C951DAA9706795FE922754B80DB3AE924FBEC44AEF4C3D31EB9299175322FEF02A52E854377030F9BF09AB7CC1BF5327C8746BCAD1AA0A876B740FBCA2C914D45BA75292A2329078DF05ECDC8EA0C149D29E481AA1CA80DB2A13ADA476DE3D82D24136A5B92B7FCCC486A785706FF8ED0CD41F5DF4AEDA11D23 |
263 | 20180410071153 2 6 100 6143 2 E01FFD7EC91328929E4FD6183C9C9EDF4EF8CFC608D943A1011CEE0B49D7322663D64028F7205A4F008A0C8F393F91FF42D1C7ACB6B4041D0DC79BB0DA6D394532A0E33BC96FEA6EC2E67987F13D2F218B9E8A46D20125D822B6AA1C9615087E5C667CCA74414305E3382E20792B058F61D9DBFD93EF80A2E30E17FDB883F79989B540A6E467D9CEF07C849B659890706CAC7FF6F95669DAD0D9170D485C298AA940C6B7B3092E265FB512C70F36E3D6515B7B799E20FFE9DA35F932C3F2C238F5D8BCB92193216563D6163EB9FAAFEDD0E8A1A3F8CE292E8A1BEF630C5E75D845444B414017844E9560C8309CD54BF9EEAB2CAAE888226AB8031F1569A728256BB6FCC14DF314314F9F2DF75E781E8A4A5411ACCB4D9E3103131F52E0D14386A6E107AA7A522E42F1A41C8A8E46CE69E824492B87BC8B34A457EC25A7508B3E1A33BCC9E99EA754163AEC31161A83A80780DF46D36E757CF90C0F002DF73AB406F7DF81FDA75AD7F3F052EEA91955FA737616D8D4BB87A60FF471400D50688146BC3C10FF60A35D8BB9EF6BEF26497361118125FBEE607726AA408674A45931C87666146BE520503A5241D49B964406A864749C50F9B2718B8E0F62614DB27F35F53D57F70CB4ECE081BD377CDBA5C4AD75BEA63CB8E2653E52D11C0CAC67916B0C24232FC9D90091C7CDD317D4F60D8271D81E70B79031BE25CD5D6CC1E7A04FAF98C25B143B9D7B08D94160B1737AB49F55A01AF3A9BB7C8C261E8F2F84A1995C752276F5F03E54EE22A973F63C73083377DD6851634AA5568AA1173E5BE96606D946AAC82951E326750E18C2AD12C311EF784AD9014BEE322032B45244BD6EEDA224CCDA93983C8FB326F8C8B02F5574B0BC0CD7BFD1C524CD66ACD8A7AC1619E57136F2FEB5F49E9791D4E0F0C9AB8B9E7A98E49E5603D4E02771EFC9993ED15974CD0EEA50510C410FD884CB5D83D0FCD0AF7218D49523F95C4C396CBC0359DABD75EC138910788E1766649130AD089F565ED926B4F26FEBAF9CA4F768E6CA6E6BB7E43769B7D46E2F0D6A63254B41715567635FC1D38DCD7E147AB73B | 263 | 20180922102739 2 6 100 6143 5 CAD8A4810C1ADC23A2317EA8BB2F93AD4198F948452AD65159BD3D71800456C339AFD34BC6D512D8FCD337463E3CDFBB4E81A9BE01A6FBA103051D50118610088400DEE2C8E51376B07593D50760832754D352737620CB3BD45CF6A0356209541D14FA9A356DB075DAC362617DF28B202B8FF5FE65A7A6106715796ECC5433DF29FDE1BA29D1D70BB0248EFEEE7DCB10B78EDE9F37078D39AEE37395927F97C2E8C8D80747496C5F4C7ED0A14193BDABE56665BE74475CBD49049F7BE47366B32A1E828B3155A7D48F1D06052DDAA3C0C24550772A69F0E3635794B1FC8BFF6274582092BE2CB3323269D3433FF6CC0294074B0BD8E5DF1A42A4A2A687FE9C4772994FA5EA75F099539D9A7761C687F3F2896D0517E73ABC64C8A330E740DB99537F30E9566497DE782C8F5A5A9E64111478A69BA4535C72B323CCCAFFD7E2C181009424D4CA391B0CED89411455E8CB00147E098716861AAB1B18EC5F295F22C8F687C9DBA534BDDF5F98D94E07F0DFFBB9D272AD71A7B1F657794E36EABA60A6D097F0AB4C405909F5D3D15B177496BCE74217892D701745D176AC5A6049C75F2C17C18FB00F09DFCF1934E69E64DC4C758C3353411503479EE07D7660B67DFDE76DD3FA26B2894DC3C6F5A87059657428324E613F7FE6AD25B09D73133AE16C0A5CA8E285BEF024DE79A27A3C363A70B80AAA1638EDEE29FCBD929D6AE23A5A064769F474D116DD11EACCA5B629EFAB4A95053BD9EBD5B21A3AC3CCD503EDF8CC659FBEAE8FC4EEB2B59CEB41438752AD130476F2DE793FB993BDE8057F1F31437F053B847653D379E2ED78491A0AF3F8ADFC4FF023DB11CC9087AFFC810FE16491CEE4E7CB8622C47E0F44479C0C6D915F4A68723B38FBE83DFDCEE4D5745CD316444BD98C951DAA9706795FE922754B80DB3AE924FBEC44AEF4C3D31EB9299175322FEF02A52E854377030F9BF09AB7CC1BF5327C8746BCAD1AA0A876B740FBCA2C914D45BA75292A2329078DF05ECDC8EA0C149D29E481AA1CA80DB2A13ADA476DE3D82D24136A5B92B7FCCC486A785706FF8ED0CD41F5DF4AEE243617 |
264 | 20180410082253 2 6 100 6143 5 E01FFD7EC91328929E4FD6183C9C9EDF4EF8CFC608D943A1011CEE0B49D7322663D64028F7205A4F008A0C8F393F91FF42D1C7ACB6B4041D0DC79BB0DA6D394532A0E33BC96FEA6EC2E67987F13D2F218B9E8A46D20125D822B6AA1C9615087E5C667CCA74414305E3382E20792B058F61D9DBFD93EF80A2E30E17FDB883F79989B540A6E467D9CEF07C849B659890706CAC7FF6F95669DAD0D9170D485C298AA940C6B7B3092E265FB512C70F36E3D6515B7B799E20FFE9DA35F932C3F2C238F5D8BCB92193216563D6163EB9FAAFEDD0E8A1A3F8CE292E8A1BEF630C5E75D845444B414017844E9560C8309CD54BF9EEAB2CAAE888226AB8031F1569A728256BB6FCC14DF314314F9F2DF75E781E8A4A5411ACCB4D9E3103131F52E0D14386A6E107AA7A522E42F1A41C8A8E46CE69E824492B87BC8B34A457EC25A7508B3E1A33BCC9E99EA754163AEC31161A83A80780DF46D36E757CF90C0F002DF73AB406F7DF81FDA75AD7F3F052EEA91955FA737616D8D4BB87A60FF471400D50688146BC3C10FF60A35D8BB9EF6BEF26497361118125FBEE607726AA408674A45931C87666146BE520503A5241D49B964406A864749C50F9B2718B8E0F62614DB27F35F53D57F70CB4ECE081BD377CDBA5C4AD75BEA63CB8E2653E52D11C0CAC67916B0C24232FC9D90091C7CDD317D4F60D8271D81E70B79031BE25CD5D6CC1E7A04FAF98C25B143B9D7B08D94160B1737AB49F55A01AF3A9BB7C8C261E8F2F84A1995C752276F5F03E54EE22A973F63C73083377DD6851634AA5568AA1173E5BE96606D946AAC82951E326750E18C2AD12C311EF784AD9014BEE322032B45244BD6EEDA224CCDA93983C8FB326F8C8B02F5574B0BC0CD7BFD1C524CD66ACD8A7AC1619E57136F2FEB5F49E9791D4E0F0C9AB8B9E7A98E49E5603D4E02771EFC9993ED15974CD0EEA50510C410FD884CB5D83D0FCD0AF7218D49523F95C4C396CBC0359DABD75EC138910788E1766649130AD089F565ED926B4F26FEBAF9CA4F768E6CA6E6BB7E43769B7D46E2F0D6A63254B41715567635FC1D38DCD7E16363257 | 264 | 20180922111522 2 6 100 6143 5 CAD8A4810C1ADC23A2317EA8BB2F93AD4198F948452AD65159BD3D71800456C339AFD34BC6D512D8FCD337463E3CDFBB4E81A9BE01A6FBA103051D50118610088400DEE2C8E51376B07593D50760832754D352737620CB3BD45CF6A0356209541D14FA9A356DB075DAC362617DF28B202B8FF5FE65A7A6106715796ECC5433DF29FDE1BA29D1D70BB0248EFEEE7DCB10B78EDE9F37078D39AEE37395927F97C2E8C8D80747496C5F4C7ED0A14193BDABE56665BE74475CBD49049F7BE47366B32A1E828B3155A7D48F1D06052DDAA3C0C24550772A69F0E3635794B1FC8BFF6274582092BE2CB3323269D3433FF6CC0294074B0BD8E5DF1A42A4A2A687FE9C4772994FA5EA75F099539D9A7761C687F3F2896D0517E73ABC64C8A330E740DB99537F30E9566497DE782C8F5A5A9E64111478A69BA4535C72B323CCCAFFD7E2C181009424D4CA391B0CED89411455E8CB00147E098716861AAB1B18EC5F295F22C8F687C9DBA534BDDF5F98D94E07F0DFFBB9D272AD71A7B1F657794E36EABA60A6D097F0AB4C405909F5D3D15B177496BCE74217892D701745D176AC5A6049C75F2C17C18FB00F09DFCF1934E69E64DC4C758C3353411503479EE07D7660B67DFDE76DD3FA26B2894DC3C6F5A87059657428324E613F7FE6AD25B09D73133AE16C0A5CA8E285BEF024DE79A27A3C363A70B80AAA1638EDEE29FCBD929D6AE23A5A064769F474D116DD11EACCA5B629EFAB4A95053BD9EBD5B21A3AC3CCD503EDF8CC659FBEAE8FC4EEB2B59CEB41438752AD130476F2DE793FB993BDE8057F1F31437F053B847653D379E2ED78491A0AF3F8ADFC4FF023DB11CC9087AFFC810FE16491CEE4E7CB8622C47E0F44479C0C6D915F4A68723B38FBE83DFDCEE4D5745CD316444BD98C951DAA9706795FE922754B80DB3AE924FBEC44AEF4C3D31EB9299175322FEF02A52E854377030F9BF09AB7CC1BF5327C8746BCAD1AA0A876B740FBCA2C914D45BA75292A2329078DF05ECDC8EA0C149D29E481AA1CA80DB2A13ADA476DE3D82D24136A5B92B7FCCC486A785706FF8ED0CD41F5DF4AEF3698BF |
265 | 20180410101335 2 6 100 6143 2 E01FFD7EC91328929E4FD6183C9C9EDF4EF8CFC608D943A1011CEE0B49D7322663D64028F7205A4F008A0C8F393F91FF42D1C7ACB6B4041D0DC79BB0DA6D394532A0E33BC96FEA6EC2E67987F13D2F218B9E8A46D20125D822B6AA1C9615087E5C667CCA74414305E3382E20792B058F61D9DBFD93EF80A2E30E17FDB883F79989B540A6E467D9CEF07C849B659890706CAC7FF6F95669DAD0D9170D485C298AA940C6B7B3092E265FB512C70F36E3D6515B7B799E20FFE9DA35F932C3F2C238F5D8BCB92193216563D6163EB9FAAFEDD0E8A1A3F8CE292E8A1BEF630C5E75D845444B414017844E9560C8309CD54BF9EEAB2CAAE888226AB8031F1569A728256BB6FCC14DF314314F9F2DF75E781E8A4A5411ACCB4D9E3103131F52E0D14386A6E107AA7A522E42F1A41C8A8E46CE69E824492B87BC8B34A457EC25A7508B3E1A33BCC9E99EA754163AEC31161A83A80780DF46D36E757CF90C0F002DF73AB406F7DF81FDA75AD7F3F052EEA91955FA737616D8D4BB87A60FF471400D50688146BC3C10FF60A35D8BB9EF6BEF26497361118125FBEE607726AA408674A45931C87666146BE520503A5241D49B964406A864749C50F9B2718B8E0F62614DB27F35F53D57F70CB4ECE081BD377CDBA5C4AD75BEA63CB8E2653E52D11C0CAC67916B0C24232FC9D90091C7CDD317D4F60D8271D81E70B79031BE25CD5D6CC1E7A04FAF98C25B143B9D7B08D94160B1737AB49F55A01AF3A9BB7C8C261E8F2F84A1995C752276F5F03E54EE22A973F63C73083377DD6851634AA5568AA1173E5BE96606D946AAC82951E326750E18C2AD12C311EF784AD9014BEE322032B45244BD6EEDA224CCDA93983C8FB326F8C8B02F5574B0BC0CD7BFD1C524CD66ACD8A7AC1619E57136F2FEB5F49E9791D4E0F0C9AB8B9E7A98E49E5603D4E02771EFC9993ED15974CD0EEA50510C410FD884CB5D83D0FCD0AF7218D49523F95C4C396CBC0359DABD75EC138910788E1766649130AD089F565ED926B4F26FEBAF9CA4F768E6CA6E6BB7E43769B7D46E2F0D6A63254B41715567635FC1D38DCD7E18F03B13 | 265 | 20180922122645 2 6 100 6143 2 CAD8A4810C1ADC23A2317EA8BB2F93AD4198F948452AD65159BD3D71800456C339AFD34BC6D512D8FCD337463E3CDFBB4E81A9BE01A6FBA103051D50118610088400DEE2C8E51376B07593D50760832754D352737620CB3BD45CF6A0356209541D14FA9A356DB075DAC362617DF28B202B8FF5FE65A7A6106715796ECC5433DF29FDE1BA29D1D70BB0248EFEEE7DCB10B78EDE9F37078D39AEE37395927F97C2E8C8D80747496C5F4C7ED0A14193BDABE56665BE74475CBD49049F7BE47366B32A1E828B3155A7D48F1D06052DDAA3C0C24550772A69F0E3635794B1FC8BFF6274582092BE2CB3323269D3433FF6CC0294074B0BD8E5DF1A42A4A2A687FE9C4772994FA5EA75F099539D9A7761C687F3F2896D0517E73ABC64C8A330E740DB99537F30E9566497DE782C8F5A5A9E64111478A69BA4535C72B323CCCAFFD7E2C181009424D4CA391B0CED89411455E8CB00147E098716861AAB1B18EC5F295F22C8F687C9DBA534BDDF5F98D94E07F0DFFBB9D272AD71A7B1F657794E36EABA60A6D097F0AB4C405909F5D3D15B177496BCE74217892D701745D176AC5A6049C75F2C17C18FB00F09DFCF1934E69E64DC4C758C3353411503479EE07D7660B67DFDE76DD3FA26B2894DC3C6F5A87059657428324E613F7FE6AD25B09D73133AE16C0A5CA8E285BEF024DE79A27A3C363A70B80AAA1638EDEE29FCBD929D6AE23A5A064769F474D116DD11EACCA5B629EFAB4A95053BD9EBD5B21A3AC3CCD503EDF8CC659FBEAE8FC4EEB2B59CEB41438752AD130476F2DE793FB993BDE8057F1F31437F053B847653D379E2ED78491A0AF3F8ADFC4FF023DB11CC9087AFFC810FE16491CEE4E7CB8622C47E0F44479C0C6D915F4A68723B38FBE83DFDCEE4D5745CD316444BD98C951DAA9706795FE922754B80DB3AE924FBEC44AEF4C3D31EB9299175322FEF02A52E854377030F9BF09AB7CC1BF5327C8746BCAD1AA0A876B740FBCA2C914D45BA75292A2329078DF05ECDC8EA0C149D29E481AA1CA80DB2A13ADA476DE3D82D24136A5B92B7FCCC486A785706FF8ED0CD41F5DF4AF0DFB873 |
266 | 20180410105609 2 6 100 6143 5 E01FFD7EC91328929E4FD6183C9C9EDF4EF8CFC608D943A1011CEE0B49D7322663D64028F7205A4F008A0C8F393F91FF42D1C7ACB6B4041D0DC79BB0DA6D394532A0E33BC96FEA6EC2E67987F13D2F218B9E8A46D20125D822B6AA1C9615087E5C667CCA74414305E3382E20792B058F61D9DBFD93EF80A2E30E17FDB883F79989B540A6E467D9CEF07C849B659890706CAC7FF6F95669DAD0D9170D485C298AA940C6B7B3092E265FB512C70F36E3D6515B7B799E20FFE9DA35F932C3F2C238F5D8BCB92193216563D6163EB9FAAFEDD0E8A1A3F8CE292E8A1BEF630C5E75D845444B414017844E9560C8309CD54BF9EEAB2CAAE888226AB8031F1569A728256BB6FCC14DF314314F9F2DF75E781E8A4A5411ACCB4D9E3103131F52E0D14386A6E107AA7A522E42F1A41C8A8E46CE69E824492B87BC8B34A457EC25A7508B3E1A33BCC9E99EA754163AEC31161A83A80780DF46D36E757CF90C0F002DF73AB406F7DF81FDA75AD7F3F052EEA91955FA737616D8D4BB87A60FF471400D50688146BC3C10FF60A35D8BB9EF6BEF26497361118125FBEE607726AA408674A45931C87666146BE520503A5241D49B964406A864749C50F9B2718B8E0F62614DB27F35F53D57F70CB4ECE081BD377CDBA5C4AD75BEA63CB8E2653E52D11C0CAC67916B0C24232FC9D90091C7CDD317D4F60D8271D81E70B79031BE25CD5D6CC1E7A04FAF98C25B143B9D7B08D94160B1737AB49F55A01AF3A9BB7C8C261E8F2F84A1995C752276F5F03E54EE22A973F63C73083377DD6851634AA5568AA1173E5BE96606D946AAC82951E326750E18C2AD12C311EF784AD9014BEE322032B45244BD6EEDA224CCDA93983C8FB326F8C8B02F5574B0BC0CD7BFD1C524CD66ACD8A7AC1619E57136F2FEB5F49E9791D4E0F0C9AB8B9E7A98E49E5603D4E02771EFC9993ED15974CD0EEA50510C410FD884CB5D83D0FCD0AF7218D49523F95C4C396CBC0359DABD75EC138910788E1766649130AD089F565ED926B4F26FEBAF9CA4F768E6CA6E6BB7E43769B7D46E2F0D6A63254B41715567635FC1D38DCD7E19F1DE37 | 266 | 20180922135149 2 6 100 6143 2 CAD8A4810C1ADC23A2317EA8BB2F93AD4198F948452AD65159BD3D71800456C339AFD34BC6D512D8FCD337463E3CDFBB4E81A9BE01A6FBA103051D50118610088400DEE2C8E51376B07593D50760832754D352737620CB3BD45CF6A0356209541D14FA9A356DB075DAC362617DF28B202B8FF5FE65A7A6106715796ECC5433DF29FDE1BA29D1D70BB0248EFEEE7DCB10B78EDE9F37078D39AEE37395927F97C2E8C8D80747496C5F4C7ED0A14193BDABE56665BE74475CBD49049F7BE47366B32A1E828B3155A7D48F1D06052DDAA3C0C24550772A69F0E3635794B1FC8BFF6274582092BE2CB3323269D3433FF6CC0294074B0BD8E5DF1A42A4A2A687FE9C4772994FA5EA75F099539D9A7761C687F3F2896D0517E73ABC64C8A330E740DB99537F30E9566497DE782C8F5A5A9E64111478A69BA4535C72B323CCCAFFD7E2C181009424D4CA391B0CED89411455E8CB00147E098716861AAB1B18EC5F295F22C8F687C9DBA534BDDF5F98D94E07F0DFFBB9D272AD71A7B1F657794E36EABA60A6D097F0AB4C405909F5D3D15B177496BCE74217892D701745D176AC5A6049C75F2C17C18FB00F09DFCF1934E69E64DC4C758C3353411503479EE07D7660B67DFDE76DD3FA26B2894DC3C6F5A87059657428324E613F7FE6AD25B09D73133AE16C0A5CA8E285BEF024DE79A27A3C363A70B80AAA1638EDEE29FCBD929D6AE23A5A064769F474D116DD11EACCA5B629EFAB4A95053BD9EBD5B21A3AC3CCD503EDF8CC659FBEAE8FC4EEB2B59CEB41438752AD130476F2DE793FB993BDE8057F1F31437F053B847653D379E2ED78491A0AF3F8ADFC4FF023DB11CC9087AFFC810FE16491CEE4E7CB8622C47E0F44479C0C6D915F4A68723B38FBE83DFDCEE4D5745CD316444BD98C951DAA9706795FE922754B80DB3AE924FBEC44AEF4C3D31EB9299175322FEF02A52E854377030F9BF09AB7CC1BF5327C8746BCAD1AA0A876B740FBCA2C914D45BA75292A2329078DF05ECDC8EA0C149D29E481AA1CA80DB2A13ADA476DE3D82D24136A5B92B7FCCC486A785706FF8ED0CD41F5DF4AF2D2C0A3 |
267 | 20180410152104 2 6 100 6143 2 E01FFD7EC91328929E4FD6183C9C9EDF4EF8CFC608D943A1011CEE0B49D7322663D64028F7205A4F008A0C8F393F91FF42D1C7ACB6B4041D0DC79BB0DA6D394532A0E33BC96FEA6EC2E67987F13D2F218B9E8A46D20125D822B6AA1C9615087E5C667CCA74414305E3382E20792B058F61D9DBFD93EF80A2E30E17FDB883F79989B540A6E467D9CEF07C849B659890706CAC7FF6F95669DAD0D9170D485C298AA940C6B7B3092E265FB512C70F36E3D6515B7B799E20FFE9DA35F932C3F2C238F5D8BCB92193216563D6163EB9FAAFEDD0E8A1A3F8CE292E8A1BEF630C5E75D845444B414017844E9560C8309CD54BF9EEAB2CAAE888226AB8031F1569A728256BB6FCC14DF314314F9F2DF75E781E8A4A5411ACCB4D9E3103131F52E0D14386A6E107AA7A522E42F1A41C8A8E46CE69E824492B87BC8B34A457EC25A7508B3E1A33BCC9E99EA754163AEC31161A83A80780DF46D36E757CF90C0F002DF73AB406F7DF81FDA75AD7F3F052EEA91955FA737616D8D4BB87A60FF471400D50688146BC3C10FF60A35D8BB9EF6BEF26497361118125FBEE607726AA408674A45931C87666146BE520503A5241D49B964406A864749C50F9B2718B8E0F62614DB27F35F53D57F70CB4ECE081BD377CDBA5C4AD75BEA63CB8E2653E52D11C0CAC67916B0C24232FC9D90091C7CDD317D4F60D8271D81E70B79031BE25CD5D6CC1E7A04FAF98C25B143B9D7B08D94160B1737AB49F55A01AF3A9BB7C8C261E8F2F84A1995C752276F5F03E54EE22A973F63C73083377DD6851634AA5568AA1173E5BE96606D946AAC82951E326750E18C2AD12C311EF784AD9014BEE322032B45244BD6EEDA224CCDA93983C8FB326F8C8B02F5574B0BC0CD7BFD1C524CD66ACD8A7AC1619E57136F2FEB5F49E9791D4E0F0C9AB8B9E7A98E49E5603D4E02771EFC9993ED15974CD0EEA50510C410FD884CB5D83D0FCD0AF7218D49523F95C4C396CBC0359DABD75EC138910788E1766649130AD089F565ED926B4F26FEBAF9CA4F768E6CA6E6BB7E43769B7D46E2F0D6A63254B41715567635FC1D38DCD7E205A4ACB | 267 | 20180922135535 2 6 100 6143 2 CAD8A4810C1ADC23A2317EA8BB2F93AD4198F948452AD65159BD3D71800456C339AFD34BC6D512D8FCD337463E3CDFBB4E81A9BE01A6FBA103051D50118610088400DEE2C8E51376B07593D50760832754D352737620CB3BD45CF6A0356209541D14FA9A356DB075DAC362617DF28B202B8FF5FE65A7A6106715796ECC5433DF29FDE1BA29D1D70BB0248EFEEE7DCB10B78EDE9F37078D39AEE37395927F97C2E8C8D80747496C5F4C7ED0A14193BDABE56665BE74475CBD49049F7BE47366B32A1E828B3155A7D48F1D06052DDAA3C0C24550772A69F0E3635794B1FC8BFF6274582092BE2CB3323269D3433FF6CC0294074B0BD8E5DF1A42A4A2A687FE9C4772994FA5EA75F099539D9A7761C687F3F2896D0517E73ABC64C8A330E740DB99537F30E9566497DE782C8F5A5A9E64111478A69BA4535C72B323CCCAFFD7E2C181009424D4CA391B0CED89411455E8CB00147E098716861AAB1B18EC5F295F22C8F687C9DBA534BDDF5F98D94E07F0DFFBB9D272AD71A7B1F657794E36EABA60A6D097F0AB4C405909F5D3D15B177496BCE74217892D701745D176AC5A6049C75F2C17C18FB00F09DFCF1934E69E64DC4C758C3353411503479EE07D7660B67DFDE76DD3FA26B2894DC3C6F5A87059657428324E613F7FE6AD25B09D73133AE16C0A5CA8E285BEF024DE79A27A3C363A70B80AAA1638EDEE29FCBD929D6AE23A5A064769F474D116DD11EACCA5B629EFAB4A95053BD9EBD5B21A3AC3CCD503EDF8CC659FBEAE8FC4EEB2B59CEB41438752AD130476F2DE793FB993BDE8057F1F31437F053B847653D379E2ED78491A0AF3F8ADFC4FF023DB11CC9087AFFC810FE16491CEE4E7CB8622C47E0F44479C0C6D915F4A68723B38FBE83DFDCEE4D5745CD316444BD98C951DAA9706795FE922754B80DB3AE924FBEC44AEF4C3D31EB9299175322FEF02A52E854377030F9BF09AB7CC1BF5327C8746BCAD1AA0A876B740FBCA2C914D45BA75292A2329078DF05ECDC8EA0C149D29E481AA1CA80DB2A13ADA476DE3D82D24136A5B92B7FCCC486A785706FF8ED0CD41F5DF4AF2DFCAFB |
268 | 20180410153733 2 6 100 6143 5 E01FFD7EC91328929E4FD6183C9C9EDF4EF8CFC608D943A1011CEE0B49D7322663D64028F7205A4F008A0C8F393F91FF42D1C7ACB6B4041D0DC79BB0DA6D394532A0E33BC96FEA6EC2E67987F13D2F218B9E8A46D20125D822B6AA1C9615087E5C667CCA74414305E3382E20792B058F61D9DBFD93EF80A2E30E17FDB883F79989B540A6E467D9CEF07C849B659890706CAC7FF6F95669DAD0D9170D485C298AA940C6B7B3092E265FB512C70F36E3D6515B7B799E20FFE9DA35F932C3F2C238F5D8BCB92193216563D6163EB9FAAFEDD0E8A1A3F8CE292E8A1BEF630C5E75D845444B414017844E9560C8309CD54BF9EEAB2CAAE888226AB8031F1569A728256BB6FCC14DF314314F9F2DF75E781E8A4A5411ACCB4D9E3103131F52E0D14386A6E107AA7A522E42F1A41C8A8E46CE69E824492B87BC8B34A457EC25A7508B3E1A33BCC9E99EA754163AEC31161A83A80780DF46D36E757CF90C0F002DF73AB406F7DF81FDA75AD7F3F052EEA91955FA737616D8D4BB87A60FF471400D50688146BC3C10FF60A35D8BB9EF6BEF26497361118125FBEE607726AA408674A45931C87666146BE520503A5241D49B964406A864749C50F9B2718B8E0F62614DB27F35F53D57F70CB4ECE081BD377CDBA5C4AD75BEA63CB8E2653E52D11C0CAC67916B0C24232FC9D90091C7CDD317D4F60D8271D81E70B79031BE25CD5D6CC1E7A04FAF98C25B143B9D7B08D94160B1737AB49F55A01AF3A9BB7C8C261E8F2F84A1995C752276F5F03E54EE22A973F63C73083377DD6851634AA5568AA1173E5BE96606D946AAC82951E326750E18C2AD12C311EF784AD9014BEE322032B45244BD6EEDA224CCDA93983C8FB326F8C8B02F5574B0BC0CD7BFD1C524CD66ACD8A7AC1619E57136F2FEB5F49E9791D4E0F0C9AB8B9E7A98E49E5603D4E02771EFC9993ED15974CD0EEA50510C410FD884CB5D83D0FCD0AF7218D49523F95C4C396CBC0359DABD75EC138910788E1766649130AD089F565ED926B4F26FEBAF9CA4F768E6CA6E6BB7E43769B7D46E2F0D6A63254B41715567635FC1D38DCD7E20B2606F | 268 | 20180922143740 2 6 100 6143 2 CAD8A4810C1ADC23A2317EA8BB2F93AD4198F948452AD65159BD3D71800456C339AFD34BC6D512D8FCD337463E3CDFBB4E81A9BE01A6FBA103051D50118610088400DEE2C8E51376B07593D50760832754D352737620CB3BD45CF6A0356209541D14FA9A356DB075DAC362617DF28B202B8FF5FE65A7A6106715796ECC5433DF29FDE1BA29D1D70BB0248EFEEE7DCB10B78EDE9F37078D39AEE37395927F97C2E8C8D80747496C5F4C7ED0A14193BDABE56665BE74475CBD49049F7BE47366B32A1E828B3155A7D48F1D06052DDAA3C0C24550772A69F0E3635794B1FC8BFF6274582092BE2CB3323269D3433FF6CC0294074B0BD8E5DF1A42A4A2A687FE9C4772994FA5EA75F099539D9A7761C687F3F2896D0517E73ABC64C8A330E740DB99537F30E9566497DE782C8F5A5A9E64111478A69BA4535C72B323CCCAFFD7E2C181009424D4CA391B0CED89411455E8CB00147E098716861AAB1B18EC5F295F22C8F687C9DBA534BDDF5F98D94E07F0DFFBB9D272AD71A7B1F657794E36EABA60A6D097F0AB4C405909F5D3D15B177496BCE74217892D701745D176AC5A6049C75F2C17C18FB00F09DFCF1934E69E64DC4C758C3353411503479EE07D7660B67DFDE76DD3FA26B2894DC3C6F5A87059657428324E613F7FE6AD25B09D73133AE16C0A5CA8E285BEF024DE79A27A3C363A70B80AAA1638EDEE29FCBD929D6AE23A5A064769F474D116DD11EACCA5B629EFAB4A95053BD9EBD5B21A3AC3CCD503EDF8CC659FBEAE8FC4EEB2B59CEB41438752AD130476F2DE793FB993BDE8057F1F31437F053B847653D379E2ED78491A0AF3F8ADFC4FF023DB11CC9087AFFC810FE16491CEE4E7CB8622C47E0F44479C0C6D915F4A68723B38FBE83DFDCEE4D5745CD316444BD98C951DAA9706795FE922754B80DB3AE924FBEC44AEF4C3D31EB9299175322FEF02A52E854377030F9BF09AB7CC1BF5327C8746BCAD1AA0A876B740FBCA2C914D45BA75292A2329078DF05ECDC8EA0C149D29E481AA1CA80DB2A13ADA476DE3D82D24136A5B92B7FCCC486A785706FF8ED0CD41F5DF4AF3D211A3 |
269 | 20180410175655 2 6 100 6143 5 E01FFD7EC91328929E4FD6183C9C9EDF4EF8CFC608D943A1011CEE0B49D7322663D64028F7205A4F008A0C8F393F91FF42D1C7ACB6B4041D0DC79BB0DA6D394532A0E33BC96FEA6EC2E67987F13D2F218B9E8A46D20125D822B6AA1C9615087E5C667CCA74414305E3382E20792B058F61D9DBFD93EF80A2E30E17FDB883F79989B540A6E467D9CEF07C849B659890706CAC7FF6F95669DAD0D9170D485C298AA940C6B7B3092E265FB512C70F36E3D6515B7B799E20FFE9DA35F932C3F2C238F5D8BCB92193216563D6163EB9FAAFEDD0E8A1A3F8CE292E8A1BEF630C5E75D845444B414017844E9560C8309CD54BF9EEAB2CAAE888226AB8031F1569A728256BB6FCC14DF314314F9F2DF75E781E8A4A5411ACCB4D9E3103131F52E0D14386A6E107AA7A522E42F1A41C8A8E46CE69E824492B87BC8B34A457EC25A7508B3E1A33BCC9E99EA754163AEC31161A83A80780DF46D36E757CF90C0F002DF73AB406F7DF81FDA75AD7F3F052EEA91955FA737616D8D4BB87A60FF471400D50688146BC3C10FF60A35D8BB9EF6BEF26497361118125FBEE607726AA408674A45931C87666146BE520503A5241D49B964406A864749C50F9B2718B8E0F62614DB27F35F53D57F70CB4ECE081BD377CDBA5C4AD75BEA63CB8E2653E52D11C0CAC67916B0C24232FC9D90091C7CDD317D4F60D8271D81E70B79031BE25CD5D6CC1E7A04FAF98C25B143B9D7B08D94160B1737AB49F55A01AF3A9BB7C8C261E8F2F84A1995C752276F5F03E54EE22A973F63C73083377DD6851634AA5568AA1173E5BE96606D946AAC82951E326750E18C2AD12C311EF784AD9014BEE322032B45244BD6EEDA224CCDA93983C8FB326F8C8B02F5574B0BC0CD7BFD1C524CD66ACD8A7AC1619E57136F2FEB5F49E9791D4E0F0C9AB8B9E7A98E49E5603D4E02771EFC9993ED15974CD0EEA50510C410FD884CB5D83D0FCD0AF7218D49523F95C4C396CBC0359DABD75EC138910788E1766649130AD089F565ED926B4F26FEBAF9CA4F768E6CA6E6BB7E43769B7D46E2F0D6A63254B41715567635FC1D38DCD7E240655BF | 269 | 20180922150118 2 6 100 6143 2 CAD8A4810C1ADC23A2317EA8BB2F93AD4198F948452AD65159BD3D71800456C339AFD34BC6D512D8FCD337463E3CDFBB4E81A9BE01A6FBA103051D50118610088400DEE2C8E51376B07593D50760832754D352737620CB3BD45CF6A0356209541D14FA9A356DB075DAC362617DF28B202B8FF5FE65A7A6106715796ECC5433DF29FDE1BA29D1D70BB0248EFEEE7DCB10B78EDE9F37078D39AEE37395927F97C2E8C8D80747496C5F4C7ED0A14193BDABE56665BE74475CBD49049F7BE47366B32A1E828B3155A7D48F1D06052DDAA3C0C24550772A69F0E3635794B1FC8BFF6274582092BE2CB3323269D3433FF6CC0294074B0BD8E5DF1A42A4A2A687FE9C4772994FA5EA75F099539D9A7761C687F3F2896D0517E73ABC64C8A330E740DB99537F30E9566497DE782C8F5A5A9E64111478A69BA4535C72B323CCCAFFD7E2C181009424D4CA391B0CED89411455E8CB00147E098716861AAB1B18EC5F295F22C8F687C9DBA534BDDF5F98D94E07F0DFFBB9D272AD71A7B1F657794E36EABA60A6D097F0AB4C405909F5D3D15B177496BCE74217892D701745D176AC5A6049C75F2C17C18FB00F09DFCF1934E69E64DC4C758C3353411503479EE07D7660B67DFDE76DD3FA26B2894DC3C6F5A87059657428324E613F7FE6AD25B09D73133AE16C0A5CA8E285BEF024DE79A27A3C363A70B80AAA1638EDEE29FCBD929D6AE23A5A064769F474D116DD11EACCA5B629EFAB4A95053BD9EBD5B21A3AC3CCD503EDF8CC659FBEAE8FC4EEB2B59CEB41438752AD130476F2DE793FB993BDE8057F1F31437F053B847653D379E2ED78491A0AF3F8ADFC4FF023DB11CC9087AFFC810FE16491CEE4E7CB8622C47E0F44479C0C6D915F4A68723B38FBE83DFDCEE4D5745CD316444BD98C951DAA9706795FE922754B80DB3AE924FBEC44AEF4C3D31EB9299175322FEF02A52E854377030F9BF09AB7CC1BF5327C8746BCAD1AA0A876B740FBCA2C914D45BA75292A2329078DF05ECDC8EA0C149D29E481AA1CA80DB2A13ADA476DE3D82D24136A5B92B7FCCC486A785706FF8ED0CD41F5DF4AF45675DB |
270 | 20180410204830 2 6 100 6143 5 E01FFD7EC91328929E4FD6183C9C9EDF4EF8CFC608D943A1011CEE0B49D7322663D64028F7205A4F008A0C8F393F91FF42D1C7ACB6B4041D0DC79BB0DA6D394532A0E33BC96FEA6EC2E67987F13D2F218B9E8A46D20125D822B6AA1C9615087E5C667CCA74414305E3382E20792B058F61D9DBFD93EF80A2E30E17FDB883F79989B540A6E467D9CEF07C849B659890706CAC7FF6F95669DAD0D9170D485C298AA940C6B7B3092E265FB512C70F36E3D6515B7B799E20FFE9DA35F932C3F2C238F5D8BCB92193216563D6163EB9FAAFEDD0E8A1A3F8CE292E8A1BEF630C5E75D845444B414017844E9560C8309CD54BF9EEAB2CAAE888226AB8031F1569A728256BB6FCC14DF314314F9F2DF75E781E8A4A5411ACCB4D9E3103131F52E0D14386A6E107AA7A522E42F1A41C8A8E46CE69E824492B87BC8B34A457EC25A7508B3E1A33BCC9E99EA754163AEC31161A83A80780DF46D36E757CF90C0F002DF73AB406F7DF81FDA75AD7F3F052EEA91955FA737616D8D4BB87A60FF471400D50688146BC3C10FF60A35D8BB9EF6BEF26497361118125FBEE607726AA408674A45931C87666146BE520503A5241D49B964406A864749C50F9B2718B8E0F62614DB27F35F53D57F70CB4ECE081BD377CDBA5C4AD75BEA63CB8E2653E52D11C0CAC67916B0C24232FC9D90091C7CDD317D4F60D8271D81E70B79031BE25CD5D6CC1E7A04FAF98C25B143B9D7B08D94160B1737AB49F55A01AF3A9BB7C8C261E8F2F84A1995C752276F5F03E54EE22A973F63C73083377DD6851634AA5568AA1173E5BE96606D946AAC82951E326750E18C2AD12C311EF784AD9014BEE322032B45244BD6EEDA224CCDA93983C8FB326F8C8B02F5574B0BC0CD7BFD1C524CD66ACD8A7AC1619E57136F2FEB5F49E9791D4E0F0C9AB8B9E7A98E49E5603D4E02771EFC9993ED15974CD0EEA50510C410FD884CB5D83D0FCD0AF7218D49523F95C4C396CBC0359DABD75EC138910788E1766649130AD089F565ED926B4F26FEBAF9CA4F768E6CA6E6BB7E43769B7D46E2F0D6A63254B41715567635FC1D38DCD7E281EDA87 | 270 | 20180922161720 2 6 100 6143 2 CAD8A4810C1ADC23A2317EA8BB2F93AD4198F948452AD65159BD3D71800456C339AFD34BC6D512D8FCD337463E3CDFBB4E81A9BE01A6FBA103051D50118610088400DEE2C8E51376B07593D50760832754D352737620CB3BD45CF6A0356209541D14FA9A356DB075DAC362617DF28B202B8FF5FE65A7A6106715796ECC5433DF29FDE1BA29D1D70BB0248EFEEE7DCB10B78EDE9F37078D39AEE37395927F97C2E8C8D80747496C5F4C7ED0A14193BDABE56665BE74475CBD49049F7BE47366B32A1E828B3155A7D48F1D06052DDAA3C0C24550772A69F0E3635794B1FC8BFF6274582092BE2CB3323269D3433FF6CC0294074B0BD8E5DF1A42A4A2A687FE9C4772994FA5EA75F099539D9A7761C687F3F2896D0517E73ABC64C8A330E740DB99537F30E9566497DE782C8F5A5A9E64111478A69BA4535C72B323CCCAFFD7E2C181009424D4CA391B0CED89411455E8CB00147E098716861AAB1B18EC5F295F22C8F687C9DBA534BDDF5F98D94E07F0DFFBB9D272AD71A7B1F657794E36EABA60A6D097F0AB4C405909F5D3D15B177496BCE74217892D701745D176AC5A6049C75F2C17C18FB00F09DFCF1934E69E64DC4C758C3353411503479EE07D7660B67DFDE76DD3FA26B2894DC3C6F5A87059657428324E613F7FE6AD25B09D73133AE16C0A5CA8E285BEF024DE79A27A3C363A70B80AAA1638EDEE29FCBD929D6AE23A5A064769F474D116DD11EACCA5B629EFAB4A95053BD9EBD5B21A3AC3CCD503EDF8CC659FBEAE8FC4EEB2B59CEB41438752AD130476F2DE793FB993BDE8057F1F31437F053B847653D379E2ED78491A0AF3F8ADFC4FF023DB11CC9087AFFC810FE16491CEE4E7CB8622C47E0F44479C0C6D915F4A68723B38FBE83DFDCEE4D5745CD316444BD98C951DAA9706795FE922754B80DB3AE924FBEC44AEF4C3D31EB9299175322FEF02A52E854377030F9BF09AB7CC1BF5327C8746BCAD1AA0A876B740FBCA2C914D45BA75292A2329078DF05ECDC8EA0C149D29E481AA1CA80DB2A13ADA476DE3D82D24136A5B92B7FCCC486A785706FF8ED0CD41F5DF4AF614E323 |
271 | 20180410231426 2 6 100 6143 2 E01FFD7EC91328929E4FD6183C9C9EDF4EF8CFC608D943A1011CEE0B49D7322663D64028F7205A4F008A0C8F393F91FF42D1C7ACB6B4041D0DC79BB0DA6D394532A0E33BC96FEA6EC2E67987F13D2F218B9E8A46D20125D822B6AA1C9615087E5C667CCA74414305E3382E20792B058F61D9DBFD93EF80A2E30E17FDB883F79989B540A6E467D9CEF07C849B659890706CAC7FF6F95669DAD0D9170D485C298AA940C6B7B3092E265FB512C70F36E3D6515B7B799E20FFE9DA35F932C3F2C238F5D8BCB92193216563D6163EB9FAAFEDD0E8A1A3F8CE292E8A1BEF630C5E75D845444B414017844E9560C8309CD54BF9EEAB2CAAE888226AB8031F1569A728256BB6FCC14DF314314F9F2DF75E781E8A4A5411ACCB4D9E3103131F52E0D14386A6E107AA7A522E42F1A41C8A8E46CE69E824492B87BC8B34A457EC25A7508B3E1A33BCC9E99EA754163AEC31161A83A80780DF46D36E757CF90C0F002DF73AB406F7DF81FDA75AD7F3F052EEA91955FA737616D8D4BB87A60FF471400D50688146BC3C10FF60A35D8BB9EF6BEF26497361118125FBEE607726AA408674A45931C87666146BE520503A5241D49B964406A864749C50F9B2718B8E0F62614DB27F35F53D57F70CB4ECE081BD377CDBA5C4AD75BEA63CB8E2653E52D11C0CAC67916B0C24232FC9D90091C7CDD317D4F60D8271D81E70B79031BE25CD5D6CC1E7A04FAF98C25B143B9D7B08D94160B1737AB49F55A01AF3A9BB7C8C261E8F2F84A1995C752276F5F03E54EE22A973F63C73083377DD6851634AA5568AA1173E5BE96606D946AAC82951E326750E18C2AD12C311EF784AD9014BEE322032B45244BD6EEDA224CCDA93983C8FB326F8C8B02F5574B0BC0CD7BFD1C524CD66ACD8A7AC1619E57136F2FEB5F49E9791D4E0F0C9AB8B9E7A98E49E5603D4E02771EFC9993ED15974CD0EEA50510C410FD884CB5D83D0FCD0AF7218D49523F95C4C396CBC0359DABD75EC138910788E1766649130AD089F565ED926B4F26FEBAF9CA4F768E6CA6E6BB7E43769B7D46E2F0D6A63254B41715567635FC1D38DCD7E2B95718B | 271 | 20180922174324 2 6 100 6143 5 CAD8A4810C1ADC23A2317EA8BB2F93AD4198F948452AD65159BD3D71800456C339AFD34BC6D512D8FCD337463E3CDFBB4E81A9BE01A6FBA103051D50118610088400DEE2C8E51376B07593D50760832754D352737620CB3BD45CF6A0356209541D14FA9A356DB075DAC362617DF28B202B8FF5FE65A7A6106715796ECC5433DF29FDE1BA29D1D70BB0248EFEEE7DCB10B78EDE9F37078D39AEE37395927F97C2E8C8D80747496C5F4C7ED0A14193BDABE56665BE74475CBD49049F7BE47366B32A1E828B3155A7D48F1D06052DDAA3C0C24550772A69F0E3635794B1FC8BFF6274582092BE2CB3323269D3433FF6CC0294074B0BD8E5DF1A42A4A2A687FE9C4772994FA5EA75F099539D9A7761C687F3F2896D0517E73ABC64C8A330E740DB99537F30E9566497DE782C8F5A5A9E64111478A69BA4535C72B323CCCAFFD7E2C181009424D4CA391B0CED89411455E8CB00147E098716861AAB1B18EC5F295F22C8F687C9DBA534BDDF5F98D94E07F0DFFBB9D272AD71A7B1F657794E36EABA60A6D097F0AB4C405909F5D3D15B177496BCE74217892D701745D176AC5A6049C75F2C17C18FB00F09DFCF1934E69E64DC4C758C3353411503479EE07D7660B67DFDE76DD3FA26B2894DC3C6F5A87059657428324E613F7FE6AD25B09D73133AE16C0A5CA8E285BEF024DE79A27A3C363A70B80AAA1638EDEE29FCBD929D6AE23A5A064769F474D116DD11EACCA5B629EFAB4A95053BD9EBD5B21A3AC3CCD503EDF8CC659FBEAE8FC4EEB2B59CEB41438752AD130476F2DE793FB993BDE8057F1F31437F053B847653D379E2ED78491A0AF3F8ADFC4FF023DB11CC9087AFFC810FE16491CEE4E7CB8622C47E0F44479C0C6D915F4A68723B38FBE83DFDCEE4D5745CD316444BD98C951DAA9706795FE922754B80DB3AE924FBEC44AEF4C3D31EB9299175322FEF02A52E854377030F9BF09AB7CC1BF5327C8746BCAD1AA0A876B740FBCA2C914D45BA75292A2329078DF05ECDC8EA0C149D29E481AA1CA80DB2A13ADA476DE3D82D24136A5B92B7FCCC486A785706FF8ED0CD41F5DF4AF80E023F |
272 | 20180410233438 2 6 100 6143 5 E01FFD7EC91328929E4FD6183C9C9EDF4EF8CFC608D943A1011CEE0B49D7322663D64028F7205A4F008A0C8F393F91FF42D1C7ACB6B4041D0DC79BB0DA6D394532A0E33BC96FEA6EC2E67987F13D2F218B9E8A46D20125D822B6AA1C9615087E5C667CCA74414305E3382E20792B058F61D9DBFD93EF80A2E30E17FDB883F79989B540A6E467D9CEF07C849B659890706CAC7FF6F95669DAD0D9170D485C298AA940C6B7B3092E265FB512C70F36E3D6515B7B799E20FFE9DA35F932C3F2C238F5D8BCB92193216563D6163EB9FAAFEDD0E8A1A3F8CE292E8A1BEF630C5E75D845444B414017844E9560C8309CD54BF9EEAB2CAAE888226AB8031F1569A728256BB6FCC14DF314314F9F2DF75E781E8A4A5411ACCB4D9E3103131F52E0D14386A6E107AA7A522E42F1A41C8A8E46CE69E824492B87BC8B34A457EC25A7508B3E1A33BCC9E99EA754163AEC31161A83A80780DF46D36E757CF90C0F002DF73AB406F7DF81FDA75AD7F3F052EEA91955FA737616D8D4BB87A60FF471400D50688146BC3C10FF60A35D8BB9EF6BEF26497361118125FBEE607726AA408674A45931C87666146BE520503A5241D49B964406A864749C50F9B2718B8E0F62614DB27F35F53D57F70CB4ECE081BD377CDBA5C4AD75BEA63CB8E2653E52D11C0CAC67916B0C24232FC9D90091C7CDD317D4F60D8271D81E70B79031BE25CD5D6CC1E7A04FAF98C25B143B9D7B08D94160B1737AB49F55A01AF3A9BB7C8C261E8F2F84A1995C752276F5F03E54EE22A973F63C73083377DD6851634AA5568AA1173E5BE96606D946AAC82951E326750E18C2AD12C311EF784AD9014BEE322032B45244BD6EEDA224CCDA93983C8FB326F8C8B02F5574B0BC0CD7BFD1C524CD66ACD8A7AC1619E57136F2FEB5F49E9791D4E0F0C9AB8B9E7A98E49E5603D4E02771EFC9993ED15974CD0EEA50510C410FD884CB5D83D0FCD0AF7218D49523F95C4C396CBC0359DABD75EC138910788E1766649130AD089F565ED926B4F26FEBAF9CA4F768E6CA6E6BB7E43769B7D46E2F0D6A63254B41715567635FC1D38DCD7E2C0621C7 | 272 | 20180922183959 2 6 100 6143 5 CAD8A4810C1ADC23A2317EA8BB2F93AD4198F948452AD65159BD3D71800456C339AFD34BC6D512D8FCD337463E3CDFBB4E81A9BE01A6FBA103051D50118610088400DEE2C8E51376B07593D50760832754D352737620CB3BD45CF6A0356209541D14FA9A356DB075DAC362617DF28B202B8FF5FE65A7A6106715796ECC5433DF29FDE1BA29D1D70BB0248EFEEE7DCB10B78EDE9F37078D39AEE37395927F97C2E8C8D80747496C5F4C7ED0A14193BDABE56665BE74475CBD49049F7BE47366B32A1E828B3155A7D48F1D06052DDAA3C0C24550772A69F0E3635794B1FC8BFF6274582092BE2CB3323269D3433FF6CC0294074B0BD8E5DF1A42A4A2A687FE9C4772994FA5EA75F099539D9A7761C687F3F2896D0517E73ABC64C8A330E740DB99537F30E9566497DE782C8F5A5A9E64111478A69BA4535C72B323CCCAFFD7E2C181009424D4CA391B0CED89411455E8CB00147E098716861AAB1B18EC5F295F22C8F687C9DBA534BDDF5F98D94E07F0DFFBB9D272AD71A7B1F657794E36EABA60A6D097F0AB4C405909F5D3D15B177496BCE74217892D701745D176AC5A6049C75F2C17C18FB00F09DFCF1934E69E64DC4C758C3353411503479EE07D7660B67DFDE76DD3FA26B2894DC3C6F5A87059657428324E613F7FE6AD25B09D73133AE16C0A5CA8E285BEF024DE79A27A3C363A70B80AAA1638EDEE29FCBD929D6AE23A5A064769F474D116DD11EACCA5B629EFAB4A95053BD9EBD5B21A3AC3CCD503EDF8CC659FBEAE8FC4EEB2B59CEB41438752AD130476F2DE793FB993BDE8057F1F31437F053B847653D379E2ED78491A0AF3F8ADFC4FF023DB11CC9087AFFC810FE16491CEE4E7CB8622C47E0F44479C0C6D915F4A68723B38FBE83DFDCEE4D5745CD316444BD98C951DAA9706795FE922754B80DB3AE924FBEC44AEF4C3D31EB9299175322FEF02A52E854377030F9BF09AB7CC1BF5327C8746BCAD1AA0A876B740FBCA2C914D45BA75292A2329078DF05ECDC8EA0C149D29E481AA1CA80DB2A13ADA476DE3D82D24136A5B92B7FCCC486A785706FF8ED0CD41F5DF4AF956439F |
273 | 20180410234833 2 6 100 6143 2 E01FFD7EC91328929E4FD6183C9C9EDF4EF8CFC608D943A1011CEE0B49D7322663D64028F7205A4F008A0C8F393F91FF42D1C7ACB6B4041D0DC79BB0DA6D394532A0E33BC96FEA6EC2E67987F13D2F218B9E8A46D20125D822B6AA1C9615087E5C667CCA74414305E3382E20792B058F61D9DBFD93EF80A2E30E17FDB883F79989B540A6E467D9CEF07C849B659890706CAC7FF6F95669DAD0D9170D485C298AA940C6B7B3092E265FB512C70F36E3D6515B7B799E20FFE9DA35F932C3F2C238F5D8BCB92193216563D6163EB9FAAFEDD0E8A1A3F8CE292E8A1BEF630C5E75D845444B414017844E9560C8309CD54BF9EEAB2CAAE888226AB8031F1569A728256BB6FCC14DF314314F9F2DF75E781E8A4A5411ACCB4D9E3103131F52E0D14386A6E107AA7A522E42F1A41C8A8E46CE69E824492B87BC8B34A457EC25A7508B3E1A33BCC9E99EA754163AEC31161A83A80780DF46D36E757CF90C0F002DF73AB406F7DF81FDA75AD7F3F052EEA91955FA737616D8D4BB87A60FF471400D50688146BC3C10FF60A35D8BB9EF6BEF26497361118125FBEE607726AA408674A45931C87666146BE520503A5241D49B964406A864749C50F9B2718B8E0F62614DB27F35F53D57F70CB4ECE081BD377CDBA5C4AD75BEA63CB8E2653E52D11C0CAC67916B0C24232FC9D90091C7CDD317D4F60D8271D81E70B79031BE25CD5D6CC1E7A04FAF98C25B143B9D7B08D94160B1737AB49F55A01AF3A9BB7C8C261E8F2F84A1995C752276F5F03E54EE22A973F63C73083377DD6851634AA5568AA1173E5BE96606D946AAC82951E326750E18C2AD12C311EF784AD9014BEE322032B45244BD6EEDA224CCDA93983C8FB326F8C8B02F5574B0BC0CD7BFD1C524CD66ACD8A7AC1619E57136F2FEB5F49E9791D4E0F0C9AB8B9E7A98E49E5603D4E02771EFC9993ED15974CD0EEA50510C410FD884CB5D83D0FCD0AF7218D49523F95C4C396CBC0359DABD75EC138910788E1766649130AD089F565ED926B4F26FEBAF9CA4F768E6CA6E6BB7E43769B7D46E2F0D6A63254B41715567635FC1D38DCD7E2C5297E3 | 273 | 20180922202104 2 6 100 6143 2 CAD8A4810C1ADC23A2317EA8BB2F93AD4198F948452AD65159BD3D71800456C339AFD34BC6D512D8FCD337463E3CDFBB4E81A9BE01A6FBA103051D50118610088400DEE2C8E51376B07593D50760832754D352737620CB3BD45CF6A0356209541D14FA9A356DB075DAC362617DF28B202B8FF5FE65A7A6106715796ECC5433DF29FDE1BA29D1D70BB0248EFEEE7DCB10B78EDE9F37078D39AEE37395927F97C2E8C8D80747496C5F4C7ED0A14193BDABE56665BE74475CBD49049F7BE47366B32A1E828B3155A7D48F1D06052DDAA3C0C24550772A69F0E3635794B1FC8BFF6274582092BE2CB3323269D3433FF6CC0294074B0BD8E5DF1A42A4A2A687FE9C4772994FA5EA75F099539D9A7761C687F3F2896D0517E73ABC64C8A330E740DB99537F30E9566497DE782C8F5A5A9E64111478A69BA4535C72B323CCCAFFD7E2C181009424D4CA391B0CED89411455E8CB00147E098716861AAB1B18EC5F295F22C8F687C9DBA534BDDF5F98D94E07F0DFFBB9D272AD71A7B1F657794E36EABA60A6D097F0AB4C405909F5D3D15B177496BCE74217892D701745D176AC5A6049C75F2C17C18FB00F09DFCF1934E69E64DC4C758C3353411503479EE07D7660B67DFDE76DD3FA26B2894DC3C6F5A87059657428324E613F7FE6AD25B09D73133AE16C0A5CA8E285BEF024DE79A27A3C363A70B80AAA1638EDEE29FCBD929D6AE23A5A064769F474D116DD11EACCA5B629EFAB4A95053BD9EBD5B21A3AC3CCD503EDF8CC659FBEAE8FC4EEB2B59CEB41438752AD130476F2DE793FB993BDE8057F1F31437F053B847653D379E2ED78491A0AF3F8ADFC4FF023DB11CC9087AFFC810FE16491CEE4E7CB8622C47E0F44479C0C6D915F4A68723B38FBE83DFDCEE4D5745CD316444BD98C951DAA9706795FE922754B80DB3AE924FBEC44AEF4C3D31EB9299175322FEF02A52E854377030F9BF09AB7CC1BF5327C8746BCAD1AA0A876B740FBCA2C914D45BA75292A2329078DF05ECDC8EA0C149D29E481AA1CA80DB2A13ADA476DE3D82D24136A5B92B7FCCC486A785706FF8ED0CD41F5DF4AFBAC649B |
274 | 20180411035657 2 6 100 6143 2 E01FFD7EC91328929E4FD6183C9C9EDF4EF8CFC608D943A1011CEE0B49D7322663D64028F7205A4F008A0C8F393F91FF42D1C7ACB6B4041D0DC79BB0DA6D394532A0E33BC96FEA6EC2E67987F13D2F218B9E8A46D20125D822B6AA1C9615087E5C667CCA74414305E3382E20792B058F61D9DBFD93EF80A2E30E17FDB883F79989B540A6E467D9CEF07C849B659890706CAC7FF6F95669DAD0D9170D485C298AA940C6B7B3092E265FB512C70F36E3D6515B7B799E20FFE9DA35F932C3F2C238F5D8BCB92193216563D6163EB9FAAFEDD0E8A1A3F8CE292E8A1BEF630C5E75D845444B414017844E9560C8309CD54BF9EEAB2CAAE888226AB8031F1569A728256BB6FCC14DF314314F9F2DF75E781E8A4A5411ACCB4D9E3103131F52E0D14386A6E107AA7A522E42F1A41C8A8E46CE69E824492B87BC8B34A457EC25A7508B3E1A33BCC9E99EA754163AEC31161A83A80780DF46D36E757CF90C0F002DF73AB406F7DF81FDA75AD7F3F052EEA91955FA737616D8D4BB87A60FF471400D50688146BC3C10FF60A35D8BB9EF6BEF26497361118125FBEE607726AA408674A45931C87666146BE520503A5241D49B964406A864749C50F9B2718B8E0F62614DB27F35F53D57F70CB4ECE081BD377CDBA5C4AD75BEA63CB8E2653E52D11C0CAC67916B0C24232FC9D90091C7CDD317D4F60D8271D81E70B79031BE25CD5D6CC1E7A04FAF98C25B143B9D7B08D94160B1737AB49F55A01AF3A9BB7C8C261E8F2F84A1995C752276F5F03E54EE22A973F63C73083377DD6851634AA5568AA1173E5BE96606D946AAC82951E326750E18C2AD12C311EF784AD9014BEE322032B45244BD6EEDA224CCDA93983C8FB326F8C8B02F5574B0BC0CD7BFD1C524CD66ACD8A7AC1619E57136F2FEB5F49E9791D4E0F0C9AB8B9E7A98E49E5603D4E02771EFC9993ED15974CD0EEA50510C410FD884CB5D83D0FCD0AF7218D49523F95C4C396CBC0359DABD75EC138910788E1766649130AD089F565ED926B4F26FEBAF9CA4F768E6CA6E6BB7E43769B7D46E2F0D6A63254B41715567635FC1D38DCD7E32375BE3 | 274 | 20180922210150 2 6 100 6143 2 CAD8A4810C1ADC23A2317EA8BB2F93AD4198F948452AD65159BD3D71800456C339AFD34BC6D512D8FCD337463E3CDFBB4E81A9BE01A6FBA103051D50118610088400DEE2C8E51376B07593D50760832754D352737620CB3BD45CF6A0356209541D14FA9A356DB075DAC362617DF28B202B8FF5FE65A7A6106715796ECC5433DF29FDE1BA29D1D70BB0248EFEEE7DCB10B78EDE9F37078D39AEE37395927F97C2E8C8D80747496C5F4C7ED0A14193BDABE56665BE74475CBD49049F7BE47366B32A1E828B3155A7D48F1D06052DDAA3C0C24550772A69F0E3635794B1FC8BFF6274582092BE2CB3323269D3433FF6CC0294074B0BD8E5DF1A42A4A2A687FE9C4772994FA5EA75F099539D9A7761C687F3F2896D0517E73ABC64C8A330E740DB99537F30E9566497DE782C8F5A5A9E64111478A69BA4535C72B323CCCAFFD7E2C181009424D4CA391B0CED89411455E8CB00147E098716861AAB1B18EC5F295F22C8F687C9DBA534BDDF5F98D94E07F0DFFBB9D272AD71A7B1F657794E36EABA60A6D097F0AB4C405909F5D3D15B177496BCE74217892D701745D176AC5A6049C75F2C17C18FB00F09DFCF1934E69E64DC4C758C3353411503479EE07D7660B67DFDE76DD3FA26B2894DC3C6F5A87059657428324E613F7FE6AD25B09D73133AE16C0A5CA8E285BEF024DE79A27A3C363A70B80AAA1638EDEE29FCBD929D6AE23A5A064769F474D116DD11EACCA5B629EFAB4A95053BD9EBD5B21A3AC3CCD503EDF8CC659FBEAE8FC4EEB2B59CEB41438752AD130476F2DE793FB993BDE8057F1F31437F053B847653D379E2ED78491A0AF3F8ADFC4FF023DB11CC9087AFFC810FE16491CEE4E7CB8622C47E0F44479C0C6D915F4A68723B38FBE83DFDCEE4D5745CD316444BD98C951DAA9706795FE922754B80DB3AE924FBEC44AEF4C3D31EB9299175322FEF02A52E854377030F9BF09AB7CC1BF5327C8746BCAD1AA0A876B740FBCA2C914D45BA75292A2329078DF05ECDC8EA0C149D29E481AA1CA80DB2A13ADA476DE3D82D24136A5B92B7FCCC486A785706FF8ED0CD41F5DF4AFC958F53 |
275 | 20180411053901 2 6 100 6143 5 E01FFD7EC91328929E4FD6183C9C9EDF4EF8CFC608D943A1011CEE0B49D7322663D64028F7205A4F008A0C8F393F91FF42D1C7ACB6B4041D0DC79BB0DA6D394532A0E33BC96FEA6EC2E67987F13D2F218B9E8A46D20125D822B6AA1C9615087E5C667CCA74414305E3382E20792B058F61D9DBFD93EF80A2E30E17FDB883F79989B540A6E467D9CEF07C849B659890706CAC7FF6F95669DAD0D9170D485C298AA940C6B7B3092E265FB512C70F36E3D6515B7B799E20FFE9DA35F932C3F2C238F5D8BCB92193216563D6163EB9FAAFEDD0E8A1A3F8CE292E8A1BEF630C5E75D845444B414017844E9560C8309CD54BF9EEAB2CAAE888226AB8031F1569A728256BB6FCC14DF314314F9F2DF75E781E8A4A5411ACCB4D9E3103131F52E0D14386A6E107AA7A522E42F1A41C8A8E46CE69E824492B87BC8B34A457EC25A7508B3E1A33BCC9E99EA754163AEC31161A83A80780DF46D36E757CF90C0F002DF73AB406F7DF81FDA75AD7F3F052EEA91955FA737616D8D4BB87A60FF471400D50688146BC3C10FF60A35D8BB9EF6BEF26497361118125FBEE607726AA408674A45931C87666146BE520503A5241D49B964406A864749C50F9B2718B8E0F62614DB27F35F53D57F70CB4ECE081BD377CDBA5C4AD75BEA63CB8E2653E52D11C0CAC67916B0C24232FC9D90091C7CDD317D4F60D8271D81E70B79031BE25CD5D6CC1E7A04FAF98C25B143B9D7B08D94160B1737AB49F55A01AF3A9BB7C8C261E8F2F84A1995C752276F5F03E54EE22A973F63C73083377DD6851634AA5568AA1173E5BE96606D946AAC82951E326750E18C2AD12C311EF784AD9014BEE322032B45244BD6EEDA224CCDA93983C8FB326F8C8B02F5574B0BC0CD7BFD1C524CD66ACD8A7AC1619E57136F2FEB5F49E9791D4E0F0C9AB8B9E7A98E49E5603D4E02771EFC9993ED15974CD0EEA50510C410FD884CB5D83D0FCD0AF7218D49523F95C4C396CBC0359DABD75EC138910788E1766649130AD089F565ED926B4F26FEBAF9CA4F768E6CA6E6BB7E43769B7D46E2F0D6A63254B41715567635FC1D38DCD7E3499E12F | 275 | 20180922213354 2 6 100 6143 2 CAD8A4810C1ADC23A2317EA8BB2F93AD4198F948452AD65159BD3D71800456C339AFD34BC6D512D8FCD337463E3CDFBB4E81A9BE01A6FBA103051D50118610088400DEE2C8E51376B07593D50760832754D352737620CB3BD45CF6A0356209541D14FA9A356DB075DAC362617DF28B202B8FF5FE65A7A6106715796ECC5433DF29FDE1BA29D1D70BB0248EFEEE7DCB10B78EDE9F37078D39AEE37395927F97C2E8C8D80747496C5F4C7ED0A14193BDABE56665BE74475CBD49049F7BE47366B32A1E828B3155A7D48F1D06052DDAA3C0C24550772A69F0E3635794B1FC8BFF6274582092BE2CB3323269D3433FF6CC0294074B0BD8E5DF1A42A4A2A687FE9C4772994FA5EA75F099539D9A7761C687F3F2896D0517E73ABC64C8A330E740DB99537F30E9566497DE782C8F5A5A9E64111478A69BA4535C72B323CCCAFFD7E2C181009424D4CA391B0CED89411455E8CB00147E098716861AAB1B18EC5F295F22C8F687C9DBA534BDDF5F98D94E07F0DFFBB9D272AD71A7B1F657794E36EABA60A6D097F0AB4C405909F5D3D15B177496BCE74217892D701745D176AC5A6049C75F2C17C18FB00F09DFCF1934E69E64DC4C758C3353411503479EE07D7660B67DFDE76DD3FA26B2894DC3C6F5A87059657428324E613F7FE6AD25B09D73133AE16C0A5CA8E285BEF024DE79A27A3C363A70B80AAA1638EDEE29FCBD929D6AE23A5A064769F474D116DD11EACCA5B629EFAB4A95053BD9EBD5B21A3AC3CCD503EDF8CC659FBEAE8FC4EEB2B59CEB41438752AD130476F2DE793FB993BDE8057F1F31437F053B847653D379E2ED78491A0AF3F8ADFC4FF023DB11CC9087AFFC810FE16491CEE4E7CB8622C47E0F44479C0C6D915F4A68723B38FBE83DFDCEE4D5745CD316444BD98C951DAA9706795FE922754B80DB3AE924FBEC44AEF4C3D31EB9299175322FEF02A52E854377030F9BF09AB7CC1BF5327C8746BCAD1AA0A876B740FBCA2C914D45BA75292A2329078DF05ECDC8EA0C149D29E481AA1CA80DB2A13ADA476DE3D82D24136A5B92B7FCCC486A785706FF8ED0CD41F5DF4AFD502EE3 |
276 | 20180411073150 2 6 100 6143 2 E01FFD7EC91328929E4FD6183C9C9EDF4EF8CFC608D943A1011CEE0B49D7322663D64028F7205A4F008A0C8F393F91FF42D1C7ACB6B4041D0DC79BB0DA6D394532A0E33BC96FEA6EC2E67987F13D2F218B9E8A46D20125D822B6AA1C9615087E5C667CCA74414305E3382E20792B058F61D9DBFD93EF80A2E30E17FDB883F79989B540A6E467D9CEF07C849B659890706CAC7FF6F95669DAD0D9170D485C298AA940C6B7B3092E265FB512C70F36E3D6515B7B799E20FFE9DA35F932C3F2C238F5D8BCB92193216563D6163EB9FAAFEDD0E8A1A3F8CE292E8A1BEF630C5E75D845444B414017844E9560C8309CD54BF9EEAB2CAAE888226AB8031F1569A728256BB6FCC14DF314314F9F2DF75E781E8A4A5411ACCB4D9E3103131F52E0D14386A6E107AA7A522E42F1A41C8A8E46CE69E824492B87BC8B34A457EC25A7508B3E1A33BCC9E99EA754163AEC31161A83A80780DF46D36E757CF90C0F002DF73AB406F7DF81FDA75AD7F3F052EEA91955FA737616D8D4BB87A60FF471400D50688146BC3C10FF60A35D8BB9EF6BEF26497361118125FBEE607726AA408674A45931C87666146BE520503A5241D49B964406A864749C50F9B2718B8E0F62614DB27F35F53D57F70CB4ECE081BD377CDBA5C4AD75BEA63CB8E2653E52D11C0CAC67916B0C24232FC9D90091C7CDD317D4F60D8271D81E70B79031BE25CD5D6CC1E7A04FAF98C25B143B9D7B08D94160B1737AB49F55A01AF3A9BB7C8C261E8F2F84A1995C752276F5F03E54EE22A973F63C73083377DD6851634AA5568AA1173E5BE96606D946AAC82951E326750E18C2AD12C311EF784AD9014BEE322032B45244BD6EEDA224CCDA93983C8FB326F8C8B02F5574B0BC0CD7BFD1C524CD66ACD8A7AC1619E57136F2FEB5F49E9791D4E0F0C9AB8B9E7A98E49E5603D4E02771EFC9993ED15974CD0EEA50510C410FD884CB5D83D0FCD0AF7218D49523F95C4C396CBC0359DABD75EC138910788E1766649130AD089F565ED926B4F26FEBAF9CA4F768E6CA6E6BB7E43769B7D46E2F0D6A63254B41715567635FC1D38DCD7E3738967B | 276 | 20180922232002 2 6 100 6143 2 CAD8A4810C1ADC23A2317EA8BB2F93AD4198F948452AD65159BD3D71800456C339AFD34BC6D512D8FCD337463E3CDFBB4E81A9BE01A6FBA103051D50118610088400DEE2C8E51376B07593D50760832754D352737620CB3BD45CF6A0356209541D14FA9A356DB075DAC362617DF28B202B8FF5FE65A7A6106715796ECC5433DF29FDE1BA29D1D70BB0248EFEEE7DCB10B78EDE9F37078D39AEE37395927F97C2E8C8D80747496C5F4C7ED0A14193BDABE56665BE74475CBD49049F7BE47366B32A1E828B3155A7D48F1D06052DDAA3C0C24550772A69F0E3635794B1FC8BFF6274582092BE2CB3323269D3433FF6CC0294074B0BD8E5DF1A42A4A2A687FE9C4772994FA5EA75F099539D9A7761C687F3F2896D0517E73ABC64C8A330E740DB99537F30E9566497DE782C8F5A5A9E64111478A69BA4535C72B323CCCAFFD7E2C181009424D4CA391B0CED89411455E8CB00147E098716861AAB1B18EC5F295F22C8F687C9DBA534BDDF5F98D94E07F0DFFBB9D272AD71A7B1F657794E36EABA60A6D097F0AB4C405909F5D3D15B177496BCE74217892D701745D176AC5A6049C75F2C17C18FB00F09DFCF1934E69E64DC4C758C3353411503479EE07D7660B67DFDE76DD3FA26B2894DC3C6F5A87059657428324E613F7FE6AD25B09D73133AE16C0A5CA8E285BEF024DE79A27A3C363A70B80AAA1638EDEE29FCBD929D6AE23A5A064769F474D116DD11EACCA5B629EFAB4A95053BD9EBD5B21A3AC3CCD503EDF8CC659FBEAE8FC4EEB2B59CEB41438752AD130476F2DE793FB993BDE8057F1F31437F053B847653D379E2ED78491A0AF3F8ADFC4FF023DB11CC9087AFFC810FE16491CEE4E7CB8622C47E0F44479C0C6D915F4A68723B38FBE83DFDCEE4D5745CD316444BD98C951DAA9706795FE922754B80DB3AE924FBEC44AEF4C3D31EB9299175322FEF02A52E854377030F9BF09AB7CC1BF5327C8746BCAD1AA0A876B740FBCA2C914D45BA75292A2329078DF05ECDC8EA0C149D29E481AA1CA80DB2A13ADA476DE3D82D24136A5B92B7FCCC486A785706FF8ED0CD41F5DF4AFFC84A6B |
277 | 20180411073910 2 6 100 6143 5 E01FFD7EC91328929E4FD6183C9C9EDF4EF8CFC608D943A1011CEE0B49D7322663D64028F7205A4F008A0C8F393F91FF42D1C7ACB6B4041D0DC79BB0DA6D394532A0E33BC96FEA6EC2E67987F13D2F218B9E8A46D20125D822B6AA1C9615087E5C667CCA74414305E3382E20792B058F61D9DBFD93EF80A2E30E17FDB883F79989B540A6E467D9CEF07C849B659890706CAC7FF6F95669DAD0D9170D485C298AA940C6B7B3092E265FB512C70F36E3D6515B7B799E20FFE9DA35F932C3F2C238F5D8BCB92193216563D6163EB9FAAFEDD0E8A1A3F8CE292E8A1BEF630C5E75D845444B414017844E9560C8309CD54BF9EEAB2CAAE888226AB8031F1569A728256BB6FCC14DF314314F9F2DF75E781E8A4A5411ACCB4D9E3103131F52E0D14386A6E107AA7A522E42F1A41C8A8E46CE69E824492B87BC8B34A457EC25A7508B3E1A33BCC9E99EA754163AEC31161A83A80780DF46D36E757CF90C0F002DF73AB406F7DF81FDA75AD7F3F052EEA91955FA737616D8D4BB87A60FF471400D50688146BC3C10FF60A35D8BB9EF6BEF26497361118125FBEE607726AA408674A45931C87666146BE520503A5241D49B964406A864749C50F9B2718B8E0F62614DB27F35F53D57F70CB4ECE081BD377CDBA5C4AD75BEA63CB8E2653E52D11C0CAC67916B0C24232FC9D90091C7CDD317D4F60D8271D81E70B79031BE25CD5D6CC1E7A04FAF98C25B143B9D7B08D94160B1737AB49F55A01AF3A9BB7C8C261E8F2F84A1995C752276F5F03E54EE22A973F63C73083377DD6851634AA5568AA1173E5BE96606D946AAC82951E326750E18C2AD12C311EF784AD9014BEE322032B45244BD6EEDA224CCDA93983C8FB326F8C8B02F5574B0BC0CD7BFD1C524CD66ACD8A7AC1619E57136F2FEB5F49E9791D4E0F0C9AB8B9E7A98E49E5603D4E02771EFC9993ED15974CD0EEA50510C410FD884CB5D83D0FCD0AF7218D49523F95C4C396CBC0359DABD75EC138910788E1766649130AD089F565ED926B4F26FEBAF9CA4F768E6CA6E6BB7E43769B7D46E2F0D6A63254B41715567635FC1D38DCD7E375B7807 | 277 | 20180923014322 2 6 100 6143 2 CAD8A4810C1ADC23A2317EA8BB2F93AD4198F948452AD65159BD3D71800456C339AFD34BC6D512D8FCD337463E3CDFBB4E81A9BE01A6FBA103051D50118610088400DEE2C8E51376B07593D50760832754D352737620CB3BD45CF6A0356209541D14FA9A356DB075DAC362617DF28B202B8FF5FE65A7A6106715796ECC5433DF29FDE1BA29D1D70BB0248EFEEE7DCB10B78EDE9F37078D39AEE37395927F97C2E8C8D80747496C5F4C7ED0A14193BDABE56665BE74475CBD49049F7BE47366B32A1E828B3155A7D48F1D06052DDAA3C0C24550772A69F0E3635794B1FC8BFF6274582092BE2CB3323269D3433FF6CC0294074B0BD8E5DF1A42A4A2A687FE9C4772994FA5EA75F099539D9A7761C687F3F2896D0517E73ABC64C8A330E740DB99537F30E9566497DE782C8F5A5A9E64111478A69BA4535C72B323CCCAFFD7E2C181009424D4CA391B0CED89411455E8CB00147E098716861AAB1B18EC5F295F22C8F687C9DBA534BDDF5F98D94E07F0DFFBB9D272AD71A7B1F657794E36EABA60A6D097F0AB4C405909F5D3D15B177496BCE74217892D701745D176AC5A6049C75F2C17C18FB00F09DFCF1934E69E64DC4C758C3353411503479EE07D7660B67DFDE76DD3FA26B2894DC3C6F5A87059657428324E613F7FE6AD25B09D73133AE16C0A5CA8E285BEF024DE79A27A3C363A70B80AAA1638EDEE29FCBD929D6AE23A5A064769F474D116DD11EACCA5B629EFAB4A95053BD9EBD5B21A3AC3CCD503EDF8CC659FBEAE8FC4EEB2B59CEB41438752AD130476F2DE793FB993BDE8057F1F31437F053B847653D379E2ED78491A0AF3F8ADFC4FF023DB11CC9087AFFC810FE16491CEE4E7CB8622C47E0F44479C0C6D915F4A68723B38FBE83DFDCEE4D5745CD316444BD98C951DAA9706795FE922754B80DB3AE924FBEC44AEF4C3D31EB9299175322FEF02A52E854377030F9BF09AB7CC1BF5327C8746BCAD1AA0A876B740FBCA2C914D45BA75292A2329078DF05ECDC8EA0C149D29E481AA1CA80DB2A13ADA476DE3D82D24136A5B92B7FCCC486A785706FF8ED0CD41F5DF4B031123EB |
278 | 20180411075734 2 6 100 6143 2 E01FFD7EC91328929E4FD6183C9C9EDF4EF8CFC608D943A1011CEE0B49D7322663D64028F7205A4F008A0C8F393F91FF42D1C7ACB6B4041D0DC79BB0DA6D394532A0E33BC96FEA6EC2E67987F13D2F218B9E8A46D20125D822B6AA1C9615087E5C667CCA74414305E3382E20792B058F61D9DBFD93EF80A2E30E17FDB883F79989B540A6E467D9CEF07C849B659890706CAC7FF6F95669DAD0D9170D485C298AA940C6B7B3092E265FB512C70F36E3D6515B7B799E20FFE9DA35F932C3F2C238F5D8BCB92193216563D6163EB9FAAFEDD0E8A1A3F8CE292E8A1BEF630C5E75D845444B414017844E9560C8309CD54BF9EEAB2CAAE888226AB8031F1569A728256BB6FCC14DF314314F9F2DF75E781E8A4A5411ACCB4D9E3103131F52E0D14386A6E107AA7A522E42F1A41C8A8E46CE69E824492B87BC8B34A457EC25A7508B3E1A33BCC9E99EA754163AEC31161A83A80780DF46D36E757CF90C0F002DF73AB406F7DF81FDA75AD7F3F052EEA91955FA737616D8D4BB87A60FF471400D50688146BC3C10FF60A35D8BB9EF6BEF26497361118125FBEE607726AA408674A45931C87666146BE520503A5241D49B964406A864749C50F9B2718B8E0F62614DB27F35F53D57F70CB4ECE081BD377CDBA5C4AD75BEA63CB8E2653E52D11C0CAC67916B0C24232FC9D90091C7CDD317D4F60D8271D81E70B79031BE25CD5D6CC1E7A04FAF98C25B143B9D7B08D94160B1737AB49F55A01AF3A9BB7C8C261E8F2F84A1995C752276F5F03E54EE22A973F63C73083377DD6851634AA5568AA1173E5BE96606D946AAC82951E326750E18C2AD12C311EF784AD9014BEE322032B45244BD6EEDA224CCDA93983C8FB326F8C8B02F5574B0BC0CD7BFD1C524CD66ACD8A7AC1619E57136F2FEB5F49E9791D4E0F0C9AB8B9E7A98E49E5603D4E02771EFC9993ED15974CD0EEA50510C410FD884CB5D83D0FCD0AF7218D49523F95C4C396CBC0359DABD75EC138910788E1766649130AD089F565ED926B4F26FEBAF9CA4F768E6CA6E6BB7E43769B7D46E2F0D6A63254B41715567635FC1D38DCD7E37C0C66B | 278 | 20180923030251 2 6 100 6143 2 CAD8A4810C1ADC23A2317EA8BB2F93AD4198F948452AD65159BD3D71800456C339AFD34BC6D512D8FCD337463E3CDFBB4E81A9BE01A6FBA103051D50118610088400DEE2C8E51376B07593D50760832754D352737620CB3BD45CF6A0356209541D14FA9A356DB075DAC362617DF28B202B8FF5FE65A7A6106715796ECC5433DF29FDE1BA29D1D70BB0248EFEEE7DCB10B78EDE9F37078D39AEE37395927F97C2E8C8D80747496C5F4C7ED0A14193BDABE56665BE74475CBD49049F7BE47366B32A1E828B3155A7D48F1D06052DDAA3C0C24550772A69F0E3635794B1FC8BFF6274582092BE2CB3323269D3433FF6CC0294074B0BD8E5DF1A42A4A2A687FE9C4772994FA5EA75F099539D9A7761C687F3F2896D0517E73ABC64C8A330E740DB99537F30E9566497DE782C8F5A5A9E64111478A69BA4535C72B323CCCAFFD7E2C181009424D4CA391B0CED89411455E8CB00147E098716861AAB1B18EC5F295F22C8F687C9DBA534BDDF5F98D94E07F0DFFBB9D272AD71A7B1F657794E36EABA60A6D097F0AB4C405909F5D3D15B177496BCE74217892D701745D176AC5A6049C75F2C17C18FB00F09DFCF1934E69E64DC4C758C3353411503479EE07D7660B67DFDE76DD3FA26B2894DC3C6F5A87059657428324E613F7FE6AD25B09D73133AE16C0A5CA8E285BEF024DE79A27A3C363A70B80AAA1638EDEE29FCBD929D6AE23A5A064769F474D116DD11EACCA5B629EFAB4A95053BD9EBD5B21A3AC3CCD503EDF8CC659FBEAE8FC4EEB2B59CEB41438752AD130476F2DE793FB993BDE8057F1F31437F053B847653D379E2ED78491A0AF3F8ADFC4FF023DB11CC9087AFFC810FE16491CEE4E7CB8622C47E0F44479C0C6D915F4A68723B38FBE83DFDCEE4D5745CD316444BD98C951DAA9706795FE922754B80DB3AE924FBEC44AEF4C3D31EB9299175322FEF02A52E854377030F9BF09AB7CC1BF5327C8746BCAD1AA0A876B740FBCA2C914D45BA75292A2329078DF05ECDC8EA0C149D29E481AA1CA80DB2A13ADA476DE3D82D24136A5B92B7FCCC486A785706FF8ED0CD41F5DF4B04EC8B2B |
279 | 20180411081855 2 6 100 6143 2 E01FFD7EC91328929E4FD6183C9C9EDF4EF8CFC608D943A1011CEE0B49D7322663D64028F7205A4F008A0C8F393F91FF42D1C7ACB6B4041D0DC79BB0DA6D394532A0E33BC96FEA6EC2E67987F13D2F218B9E8A46D20125D822B6AA1C9615087E5C667CCA74414305E3382E20792B058F61D9DBFD93EF80A2E30E17FDB883F79989B540A6E467D9CEF07C849B659890706CAC7FF6F95669DAD0D9170D485C298AA940C6B7B3092E265FB512C70F36E3D6515B7B799E20FFE9DA35F932C3F2C238F5D8BCB92193216563D6163EB9FAAFEDD0E8A1A3F8CE292E8A1BEF630C5E75D845444B414017844E9560C8309CD54BF9EEAB2CAAE888226AB8031F1569A728256BB6FCC14DF314314F9F2DF75E781E8A4A5411ACCB4D9E3103131F52E0D14386A6E107AA7A522E42F1A41C8A8E46CE69E824492B87BC8B34A457EC25A7508B3E1A33BCC9E99EA754163AEC31161A83A80780DF46D36E757CF90C0F002DF73AB406F7DF81FDA75AD7F3F052EEA91955FA737616D8D4BB87A60FF471400D50688146BC3C10FF60A35D8BB9EF6BEF26497361118125FBEE607726AA408674A45931C87666146BE520503A5241D49B964406A864749C50F9B2718B8E0F62614DB27F35F53D57F70CB4ECE081BD377CDBA5C4AD75BEA63CB8E2653E52D11C0CAC67916B0C24232FC9D90091C7CDD317D4F60D8271D81E70B79031BE25CD5D6CC1E7A04FAF98C25B143B9D7B08D94160B1737AB49F55A01AF3A9BB7C8C261E8F2F84A1995C752276F5F03E54EE22A973F63C73083377DD6851634AA5568AA1173E5BE96606D946AAC82951E326750E18C2AD12C311EF784AD9014BEE322032B45244BD6EEDA224CCDA93983C8FB326F8C8B02F5574B0BC0CD7BFD1C524CD66ACD8A7AC1619E57136F2FEB5F49E9791D4E0F0C9AB8B9E7A98E49E5603D4E02771EFC9993ED15974CD0EEA50510C410FD884CB5D83D0FCD0AF7218D49523F95C4C396CBC0359DABD75EC138910788E1766649130AD089F565ED926B4F26FEBAF9CA4F768E6CA6E6BB7E43769B7D46E2F0D6A63254B41715567635FC1D38DCD7E383A5BCB | 279 | 20180923042422 2 6 100 6143 5 CAD8A4810C1ADC23A2317EA8BB2F93AD4198F948452AD65159BD3D71800456C339AFD34BC6D512D8FCD337463E3CDFBB4E81A9BE01A6FBA103051D50118610088400DEE2C8E51376B07593D50760832754D352737620CB3BD45CF6A0356209541D14FA9A356DB075DAC362617DF28B202B8FF5FE65A7A6106715796ECC5433DF29FDE1BA29D1D70BB0248EFEEE7DCB10B78EDE9F37078D39AEE37395927F97C2E8C8D80747496C5F4C7ED0A14193BDABE56665BE74475CBD49049F7BE47366B32A1E828B3155A7D48F1D06052DDAA3C0C24550772A69F0E3635794B1FC8BFF6274582092BE2CB3323269D3433FF6CC0294074B0BD8E5DF1A42A4A2A687FE9C4772994FA5EA75F099539D9A7761C687F3F2896D0517E73ABC64C8A330E740DB99537F30E9566497DE782C8F5A5A9E64111478A69BA4535C72B323CCCAFFD7E2C181009424D4CA391B0CED89411455E8CB00147E098716861AAB1B18EC5F295F22C8F687C9DBA534BDDF5F98D94E07F0DFFBB9D272AD71A7B1F657794E36EABA60A6D097F0AB4C405909F5D3D15B177496BCE74217892D701745D176AC5A6049C75F2C17C18FB00F09DFCF1934E69E64DC4C758C3353411503479EE07D7660B67DFDE76DD3FA26B2894DC3C6F5A87059657428324E613F7FE6AD25B09D73133AE16C0A5CA8E285BEF024DE79A27A3C363A70B80AAA1638EDEE29FCBD929D6AE23A5A064769F474D116DD11EACCA5B629EFAB4A95053BD9EBD5B21A3AC3CCD503EDF8CC659FBEAE8FC4EEB2B59CEB41438752AD130476F2DE793FB993BDE8057F1F31437F053B847653D379E2ED78491A0AF3F8ADFC4FF023DB11CC9087AFFC810FE16491CEE4E7CB8622C47E0F44479C0C6D915F4A68723B38FBE83DFDCEE4D5745CD316444BD98C951DAA9706795FE922754B80DB3AE924FBEC44AEF4C3D31EB9299175322FEF02A52E854377030F9BF09AB7CC1BF5327C8746BCAD1AA0A876B740FBCA2C914D45BA75292A2329078DF05ECDC8EA0C149D29E481AA1CA80DB2A13ADA476DE3D82D24136A5B92B7FCCC486A785706FF8ED0CD41F5DF4B06C56A47 |
280 | 20180411093848 2 6 100 6143 2 E01FFD7EC91328929E4FD6183C9C9EDF4EF8CFC608D943A1011CEE0B49D7322663D64028F7205A4F008A0C8F393F91FF42D1C7ACB6B4041D0DC79BB0DA6D394532A0E33BC96FEA6EC2E67987F13D2F218B9E8A46D20125D822B6AA1C9615087E5C667CCA74414305E3382E20792B058F61D9DBFD93EF80A2E30E17FDB883F79989B540A6E467D9CEF07C849B659890706CAC7FF6F95669DAD0D9170D485C298AA940C6B7B3092E265FB512C70F36E3D6515B7B799E20FFE9DA35F932C3F2C238F5D8BCB92193216563D6163EB9FAAFEDD0E8A1A3F8CE292E8A1BEF630C5E75D845444B414017844E9560C8309CD54BF9EEAB2CAAE888226AB8031F1569A728256BB6FCC14DF314314F9F2DF75E781E8A4A5411ACCB4D9E3103131F52E0D14386A6E107AA7A522E42F1A41C8A8E46CE69E824492B87BC8B34A457EC25A7508B3E1A33BCC9E99EA754163AEC31161A83A80780DF46D36E757CF90C0F002DF73AB406F7DF81FDA75AD7F3F052EEA91955FA737616D8D4BB87A60FF471400D50688146BC3C10FF60A35D8BB9EF6BEF26497361118125FBEE607726AA408674A45931C87666146BE520503A5241D49B964406A864749C50F9B2718B8E0F62614DB27F35F53D57F70CB4ECE081BD377CDBA5C4AD75BEA63CB8E2653E52D11C0CAC67916B0C24232FC9D90091C7CDD317D4F60D8271D81E70B79031BE25CD5D6CC1E7A04FAF98C25B143B9D7B08D94160B1737AB49F55A01AF3A9BB7C8C261E8F2F84A1995C752276F5F03E54EE22A973F63C73083377DD6851634AA5568AA1173E5BE96606D946AAC82951E326750E18C2AD12C311EF784AD9014BEE322032B45244BD6EEDA224CCDA93983C8FB326F8C8B02F5574B0BC0CD7BFD1C524CD66ACD8A7AC1619E57136F2FEB5F49E9791D4E0F0C9AB8B9E7A98E49E5603D4E02771EFC9993ED15974CD0EEA50510C410FD884CB5D83D0FCD0AF7218D49523F95C4C396CBC0359DABD75EC138910788E1766649130AD089F565ED926B4F26FEBAF9CA4F768E6CA6E6BB7E43769B7D46E2F0D6A63254B41715567635FC1D38DCD7E3A0D60EB | 280 | 20180923075109 2 6 100 6143 5 CAD8A4810C1ADC23A2317EA8BB2F93AD4198F948452AD65159BD3D71800456C339AFD34BC6D512D8FCD337463E3CDFBB4E81A9BE01A6FBA103051D50118610088400DEE2C8E51376B07593D50760832754D352737620CB3BD45CF6A0356209541D14FA9A356DB075DAC362617DF28B202B8FF5FE65A7A6106715796ECC5433DF29FDE1BA29D1D70BB0248EFEEE7DCB10B78EDE9F37078D39AEE37395927F97C2E8C8D80747496C5F4C7ED0A14193BDABE56665BE74475CBD49049F7BE47366B32A1E828B3155A7D48F1D06052DDAA3C0C24550772A69F0E3635794B1FC8BFF6274582092BE2CB3323269D3433FF6CC0294074B0BD8E5DF1A42A4A2A687FE9C4772994FA5EA75F099539D9A7761C687F3F2896D0517E73ABC64C8A330E740DB99537F30E9566497DE782C8F5A5A9E64111478A69BA4535C72B323CCCAFFD7E2C181009424D4CA391B0CED89411455E8CB00147E098716861AAB1B18EC5F295F22C8F687C9DBA534BDDF5F98D94E07F0DFFBB9D272AD71A7B1F657794E36EABA60A6D097F0AB4C405909F5D3D15B177496BCE74217892D701745D176AC5A6049C75F2C17C18FB00F09DFCF1934E69E64DC4C758C3353411503479EE07D7660B67DFDE76DD3FA26B2894DC3C6F5A87059657428324E613F7FE6AD25B09D73133AE16C0A5CA8E285BEF024DE79A27A3C363A70B80AAA1638EDEE29FCBD929D6AE23A5A064769F474D116DD11EACCA5B629EFAB4A95053BD9EBD5B21A3AC3CCD503EDF8CC659FBEAE8FC4EEB2B59CEB41438752AD130476F2DE793FB993BDE8057F1F31437F053B847653D379E2ED78491A0AF3F8ADFC4FF023DB11CC9087AFFC810FE16491CEE4E7CB8622C47E0F44479C0C6D915F4A68723B38FBE83DFDCEE4D5745CD316444BD98C951DAA9706795FE922754B80DB3AE924FBEC44AEF4C3D31EB9299175322FEF02A52E854377030F9BF09AB7CC1BF5327C8746BCAD1AA0A876B740FBCA2C914D45BA75292A2329078DF05ECDC8EA0C149D29E481AA1CA80DB2A13ADA476DE3D82D24136A5B92B7FCCC486A785706FF8ED0CD41F5DF4B0B7BA467 |
281 | 20180411094657 2 6 100 6143 5 E01FFD7EC91328929E4FD6183C9C9EDF4EF8CFC608D943A1011CEE0B49D7322663D64028F7205A4F008A0C8F393F91FF42D1C7ACB6B4041D0DC79BB0DA6D394532A0E33BC96FEA6EC2E67987F13D2F218B9E8A46D20125D822B6AA1C9615087E5C667CCA74414305E3382E20792B058F61D9DBFD93EF80A2E30E17FDB883F79989B540A6E467D9CEF07C849B659890706CAC7FF6F95669DAD0D9170D485C298AA940C6B7B3092E265FB512C70F36E3D6515B7B799E20FFE9DA35F932C3F2C238F5D8BCB92193216563D6163EB9FAAFEDD0E8A1A3F8CE292E8A1BEF630C5E75D845444B414017844E9560C8309CD54BF9EEAB2CAAE888226AB8031F1569A728256BB6FCC14DF314314F9F2DF75E781E8A4A5411ACCB4D9E3103131F52E0D14386A6E107AA7A522E42F1A41C8A8E46CE69E824492B87BC8B34A457EC25A7508B3E1A33BCC9E99EA754163AEC31161A83A80780DF46D36E757CF90C0F002DF73AB406F7DF81FDA75AD7F3F052EEA91955FA737616D8D4BB87A60FF471400D50688146BC3C10FF60A35D8BB9EF6BEF26497361118125FBEE607726AA408674A45931C87666146BE520503A5241D49B964406A864749C50F9B2718B8E0F62614DB27F35F53D57F70CB4ECE081BD377CDBA5C4AD75BEA63CB8E2653E52D11C0CAC67916B0C24232FC9D90091C7CDD317D4F60D8271D81E70B79031BE25CD5D6CC1E7A04FAF98C25B143B9D7B08D94160B1737AB49F55A01AF3A9BB7C8C261E8F2F84A1995C752276F5F03E54EE22A973F63C73083377DD6851634AA5568AA1173E5BE96606D946AAC82951E326750E18C2AD12C311EF784AD9014BEE322032B45244BD6EEDA224CCDA93983C8FB326F8C8B02F5574B0BC0CD7BFD1C524CD66ACD8A7AC1619E57136F2FEB5F49E9791D4E0F0C9AB8B9E7A98E49E5603D4E02771EFC9993ED15974CD0EEA50510C410FD884CB5D83D0FCD0AF7218D49523F95C4C396CBC0359DABD75EC138910788E1766649130AD089F565ED926B4F26FEBAF9CA4F768E6CA6E6BB7E43769B7D46E2F0D6A63254B41715567635FC1D38DCD7E3A351317 | 281 | 20180923091429 2 6 100 6143 2 F35161AADD9632E3575CDA92B32D0F28F2E75A457C95BE770E9A8E8122E71DDB31C63B86B67348319F52466B6F3FED41463FAADCA6CE2901FF62D867C09A3565BFC511A060AABAD5040F94C3066EFBFED3CA9BA71864EBBE9F616FCE8F9B0C9C463E2172BA6B1EEF222E310FEC9B70FDF42104292FE772CB350DB09040ED588DA44E0607286D1D66F155FFC5607EBEB4041F705839FEDB0C03FDA40F013BAE3D02EA1256B6DB4DB0F9ED423CD6DCFFD36AA0841BB1FDAF66A453A19EB967F0ECF045FB069302CCB0C6EB52834D1A8DBDE302530510349FC21AE0EE7D5F912D6FBFDEF8A19B8B4CEF2EEE0D05F67DB8F03E564FCD7CD2A344DD1A45A7079037A7629747BE1F183775275C93F52505BA701B27FB18035A0B8D707BF1A3B3BE453FD1A21B0B7FBA7CF90B3BB9665AA33EFB1FC04F858A33E8908397B976C03F972D6C50296DF33359E0BE9209C7D333A019937EC6A26BBB0EDD75DA06CF63A6333B1786B55DC0812AB74FD5D87EE581750E238EFCC75A1EF651502D3988C29C6C37504D90F8878D2FBE7F9131F273638A1BFFF96839557C5D1BA687DF78AFAF75E7FA7214B44C04BE0F3D160071146681C7CBE9B1DB1766C1D972E836DF71D0D4CD4E396D15EE25EF1A58FAC876E2ACCC2DE8EFA8B194694524C1F73D66B8D4D0B95C9896D18FE4061A68FB322BBC155D24E7EA516F740866BB32BB55E8FECAA7BC7F9D3D347024584F8BF4A40232D6AF32E3BB753718567698ABCA6440D68AF0B4317F343FA866ECCC64E895D780300BFA2FCAAAAFA4630C37EB8546025DFDD1E3FAB56F70CC95AA0CB7E3E8F11253D80B4C072ED04FE7068C4818B52831F77C11934F97AD153C44499AF0E6C99DE5741E41EB4C3DDEA3A7C7404AF7F154EAB7422598797E4E5106BFCF7390DE9AF5E9978A7000566FF8EE5737730108235AACBD38D8C337C71978FDC765243322C08F74B0F71B91E3C50BE3DAB7E58F0F8F187839AABB2991C1AB686975AEF90EECCBEAD74AE9C78F0A4DF2376A35A4E5894E8677A08788FEA19DEAE13C88D696C65A7426E620AA1492115E2BF0FB1949920F8B |
282 | 20180411110541 2 6 100 6143 5 E01FFD7EC91328929E4FD6183C9C9EDF4EF8CFC608D943A1011CEE0B49D7322663D64028F7205A4F008A0C8F393F91FF42D1C7ACB6B4041D0DC79BB0DA6D394532A0E33BC96FEA6EC2E67987F13D2F218B9E8A46D20125D822B6AA1C9615087E5C667CCA74414305E3382E20792B058F61D9DBFD93EF80A2E30E17FDB883F79989B540A6E467D9CEF07C849B659890706CAC7FF6F95669DAD0D9170D485C298AA940C6B7B3092E265FB512C70F36E3D6515B7B799E20FFE9DA35F932C3F2C238F5D8BCB92193216563D6163EB9FAAFEDD0E8A1A3F8CE292E8A1BEF630C5E75D845444B414017844E9560C8309CD54BF9EEAB2CAAE888226AB8031F1569A728256BB6FCC14DF314314F9F2DF75E781E8A4A5411ACCB4D9E3103131F52E0D14386A6E107AA7A522E42F1A41C8A8E46CE69E824492B87BC8B34A457EC25A7508B3E1A33BCC9E99EA754163AEC31161A83A80780DF46D36E757CF90C0F002DF73AB406F7DF81FDA75AD7F3F052EEA91955FA737616D8D4BB87A60FF471400D50688146BC3C10FF60A35D8BB9EF6BEF26497361118125FBEE607726AA408674A45931C87666146BE520503A5241D49B964406A864749C50F9B2718B8E0F62614DB27F35F53D57F70CB4ECE081BD377CDBA5C4AD75BEA63CB8E2653E52D11C0CAC67916B0C24232FC9D90091C7CDD317D4F60D8271D81E70B79031BE25CD5D6CC1E7A04FAF98C25B143B9D7B08D94160B1737AB49F55A01AF3A9BB7C8C261E8F2F84A1995C752276F5F03E54EE22A973F63C73083377DD6851634AA5568AA1173E5BE96606D946AAC82951E326750E18C2AD12C311EF784AD9014BEE322032B45244BD6EEDA224CCDA93983C8FB326F8C8B02F5574B0BC0CD7BFD1C524CD66ACD8A7AC1619E57136F2FEB5F49E9791D4E0F0C9AB8B9E7A98E49E5603D4E02771EFC9993ED15974CD0EEA50510C410FD884CB5D83D0FCD0AF7218D49523F95C4C396CBC0359DABD75EC138910788E1766649130AD089F565ED926B4F26FEBAF9CA4F768E6CA6E6BB7E43769B7D46E2F0D6A63254B41715567635FC1D38DCD7E3C08A7A7 | 282 | 20180923122354 2 6 100 6143 2 F35161AADD9632E3575CDA92B32D0F28F2E75A457C95BE770E9A8E8122E71DDB31C63B86B67348319F52466B6F3FED41463FAADCA6CE2901FF62D867C09A3565BFC511A060AABAD5040F94C3066EFBFED3CA9BA71864EBBE9F616FCE8F9B0C9C463E2172BA6B1EEF222E310FEC9B70FDF42104292FE772CB350DB09040ED588DA44E0607286D1D66F155FFC5607EBEB4041F705839FEDB0C03FDA40F013BAE3D02EA1256B6DB4DB0F9ED423CD6DCFFD36AA0841BB1FDAF66A453A19EB967F0ECF045FB069302CCB0C6EB52834D1A8DBDE302530510349FC21AE0EE7D5F912D6FBFDEF8A19B8B4CEF2EEE0D05F67DB8F03E564FCD7CD2A344DD1A45A7079037A7629747BE1F183775275C93F52505BA701B27FB18035A0B8D707BF1A3B3BE453FD1A21B0B7FBA7CF90B3BB9665AA33EFB1FC04F858A33E8908397B976C03F972D6C50296DF33359E0BE9209C7D333A019937EC6A26BBB0EDD75DA06CF63A6333B1786B55DC0812AB74FD5D87EE581750E238EFCC75A1EF651502D3988C29C6C37504D90F8878D2FBE7F9131F273638A1BFFF96839557C5D1BA687DF78AFAF75E7FA7214B44C04BE0F3D160071146681C7CBE9B1DB1766C1D972E836DF71D0D4CD4E396D15EE25EF1A58FAC876E2ACCC2DE8EFA8B194694524C1F73D66B8D4D0B95C9896D18FE4061A68FB322BBC155D24E7EA516F740866BB32BB55E8FECAA7BC7F9D3D347024584F8BF4A40232D6AF32E3BB753718567698ABCA6440D68AF0B4317F343FA866ECCC64E895D780300BFA2FCAAAAFA4630C37EB8546025DFDD1E3FAB56F70CC95AA0CB7E3E8F11253D80B4C072ED04FE7068C4818B52831F77C11934F97AD153C44499AF0E6C99DE5741E41EB4C3DDEA3A7C7404AF7F154EAB7422598797E4E5106BFCF7390DE9AF5E9978A7000566FF8EE5737730108235AACBD38D8C337C71978FDC765243322C08F74B0F71B91E3C50BE3DAB7E58F0F8F187839AABB2991C1AB686975AEF90EECCBEAD74AE9C78F0A4DF2376A35A4E5894E8677A08788FEA19DEAE13C88D696C65A7426E620AA1492115E2BF0FB194E3CB3E3 |
283 | 20180411120731 2 6 100 6143 2 E01FFD7EC91328929E4FD6183C9C9EDF4EF8CFC608D943A1011CEE0B49D7322663D64028F7205A4F008A0C8F393F91FF42D1C7ACB6B4041D0DC79BB0DA6D394532A0E33BC96FEA6EC2E67987F13D2F218B9E8A46D20125D822B6AA1C9615087E5C667CCA74414305E3382E20792B058F61D9DBFD93EF80A2E30E17FDB883F79989B540A6E467D9CEF07C849B659890706CAC7FF6F95669DAD0D9170D485C298AA940C6B7B3092E265FB512C70F36E3D6515B7B799E20FFE9DA35F932C3F2C238F5D8BCB92193216563D6163EB9FAAFEDD0E8A1A3F8CE292E8A1BEF630C5E75D845444B414017844E9560C8309CD54BF9EEAB2CAAE888226AB8031F1569A728256BB6FCC14DF314314F9F2DF75E781E8A4A5411ACCB4D9E3103131F52E0D14386A6E107AA7A522E42F1A41C8A8E46CE69E824492B87BC8B34A457EC25A7508B3E1A33BCC9E99EA754163AEC31161A83A80780DF46D36E757CF90C0F002DF73AB406F7DF81FDA75AD7F3F052EEA91955FA737616D8D4BB87A60FF471400D50688146BC3C10FF60A35D8BB9EF6BEF26497361118125FBEE607726AA408674A45931C87666146BE520503A5241D49B964406A864749C50F9B2718B8E0F62614DB27F35F53D57F70CB4ECE081BD377CDBA5C4AD75BEA63CB8E2653E52D11C0CAC67916B0C24232FC9D90091C7CDD317D4F60D8271D81E70B79031BE25CD5D6CC1E7A04FAF98C25B143B9D7B08D94160B1737AB49F55A01AF3A9BB7C8C261E8F2F84A1995C752276F5F03E54EE22A973F63C73083377DD6851634AA5568AA1173E5BE96606D946AAC82951E326750E18C2AD12C311EF784AD9014BEE322032B45244BD6EEDA224CCDA93983C8FB326F8C8B02F5574B0BC0CD7BFD1C524CD66ACD8A7AC1619E57136F2FEB5F49E9791D4E0F0C9AB8B9E7A98E49E5603D4E02771EFC9993ED15974CD0EEA50510C410FD884CB5D83D0FCD0AF7218D49523F95C4C396CBC0359DABD75EC138910788E1766649130AD089F565ED926B4F26FEBAF9CA4F768E6CA6E6BB7E43769B7D46E2F0D6A63254B41715567635FC1D38DCD7E3D6EB9BB | 283 | 20180923132927 2 6 100 6143 5 F35161AADD9632E3575CDA92B32D0F28F2E75A457C95BE770E9A8E8122E71DDB31C63B86B67348319F52466B6F3FED41463FAADCA6CE2901FF62D867C09A3565BFC511A060AABAD5040F94C3066EFBFED3CA9BA71864EBBE9F616FCE8F9B0C9C463E2172BA6B1EEF222E310FEC9B70FDF42104292FE772CB350DB09040ED588DA44E0607286D1D66F155FFC5607EBEB4041F705839FEDB0C03FDA40F013BAE3D02EA1256B6DB4DB0F9ED423CD6DCFFD36AA0841BB1FDAF66A453A19EB967F0ECF045FB069302CCB0C6EB52834D1A8DBDE302530510349FC21AE0EE7D5F912D6FBFDEF8A19B8B4CEF2EEE0D05F67DB8F03E564FCD7CD2A344DD1A45A7079037A7629747BE1F183775275C93F52505BA701B27FB18035A0B8D707BF1A3B3BE453FD1A21B0B7FBA7CF90B3BB9665AA33EFB1FC04F858A33E8908397B976C03F972D6C50296DF33359E0BE9209C7D333A019937EC6A26BBB0EDD75DA06CF63A6333B1786B55DC0812AB74FD5D87EE581750E238EFCC75A1EF651502D3988C29C6C37504D90F8878D2FBE7F9131F273638A1BFFF96839557C5D1BA687DF78AFAF75E7FA7214B44C04BE0F3D160071146681C7CBE9B1DB1766C1D972E836DF71D0D4CD4E396D15EE25EF1A58FAC876E2ACCC2DE8EFA8B194694524C1F73D66B8D4D0B95C9896D18FE4061A68FB322BBC155D24E7EA516F740866BB32BB55E8FECAA7BC7F9D3D347024584F8BF4A40232D6AF32E3BB753718567698ABCA6440D68AF0B4317F343FA866ECCC64E895D780300BFA2FCAAAAFA4630C37EB8546025DFDD1E3FAB56F70CC95AA0CB7E3E8F11253D80B4C072ED04FE7068C4818B52831F77C11934F97AD153C44499AF0E6C99DE5741E41EB4C3DDEA3A7C7404AF7F154EAB7422598797E4E5106BFCF7390DE9AF5E9978A7000566FF8EE5737730108235AACBD38D8C337C71978FDC765243322C08F74B0F71B91E3C50BE3DAB7E58F0F8F187839AABB2991C1AB686975AEF90EECCBEAD74AE9C78F0A4DF2376A35A4E5894E8677A08788FEA19DEAE13C88D696C65A7426E620AA1492115E2BF0FB194FD1CDE7 |
284 | 20180411130125 2 6 100 6143 2 E01FFD7EC91328929E4FD6183C9C9EDF4EF8CFC608D943A1011CEE0B49D7322663D64028F7205A4F008A0C8F393F91FF42D1C7ACB6B4041D0DC79BB0DA6D394532A0E33BC96FEA6EC2E67987F13D2F218B9E8A46D20125D822B6AA1C9615087E5C667CCA74414305E3382E20792B058F61D9DBFD93EF80A2E30E17FDB883F79989B540A6E467D9CEF07C849B659890706CAC7FF6F95669DAD0D9170D485C298AA940C6B7B3092E265FB512C70F36E3D6515B7B799E20FFE9DA35F932C3F2C238F5D8BCB92193216563D6163EB9FAAFEDD0E8A1A3F8CE292E8A1BEF630C5E75D845444B414017844E9560C8309CD54BF9EEAB2CAAE888226AB8031F1569A728256BB6FCC14DF314314F9F2DF75E781E8A4A5411ACCB4D9E3103131F52E0D14386A6E107AA7A522E42F1A41C8A8E46CE69E824492B87BC8B34A457EC25A7508B3E1A33BCC9E99EA754163AEC31161A83A80780DF46D36E757CF90C0F002DF73AB406F7DF81FDA75AD7F3F052EEA91955FA737616D8D4BB87A60FF471400D50688146BC3C10FF60A35D8BB9EF6BEF26497361118125FBEE607726AA408674A45931C87666146BE520503A5241D49B964406A864749C50F9B2718B8E0F62614DB27F35F53D57F70CB4ECE081BD377CDBA5C4AD75BEA63CB8E2653E52D11C0CAC67916B0C24232FC9D90091C7CDD317D4F60D8271D81E70B79031BE25CD5D6CC1E7A04FAF98C25B143B9D7B08D94160B1737AB49F55A01AF3A9BB7C8C261E8F2F84A1995C752276F5F03E54EE22A973F63C73083377DD6851634AA5568AA1173E5BE96606D946AAC82951E326750E18C2AD12C311EF784AD9014BEE322032B45244BD6EEDA224CCDA93983C8FB326F8C8B02F5574B0BC0CD7BFD1C524CD66ACD8A7AC1619E57136F2FEB5F49E9791D4E0F0C9AB8B9E7A98E49E5603D4E02771EFC9993ED15974CD0EEA50510C410FD884CB5D83D0FCD0AF7218D49523F95C4C396CBC0359DABD75EC138910788E1766649130AD089F565ED926B4F26FEBAF9CA4F768E6CA6E6BB7E43769B7D46E2F0D6A63254B41715567635FC1D38DCD7E3EAD50F3 | 284 | 20180923135953 2 6 100 6143 2 F35161AADD9632E3575CDA92B32D0F28F2E75A457C95BE770E9A8E8122E71DDB31C63B86B67348319F52466B6F3FED41463FAADCA6CE2901FF62D867C09A3565BFC511A060AABAD5040F94C3066EFBFED3CA9BA71864EBBE9F616FCE8F9B0C9C463E2172BA6B1EEF222E310FEC9B70FDF42104292FE772CB350DB09040ED588DA44E0607286D1D66F155FFC5607EBEB4041F705839FEDB0C03FDA40F013BAE3D02EA1256B6DB4DB0F9ED423CD6DCFFD36AA0841BB1FDAF66A453A19EB967F0ECF045FB069302CCB0C6EB52834D1A8DBDE302530510349FC21AE0EE7D5F912D6FBFDEF8A19B8B4CEF2EEE0D05F67DB8F03E564FCD7CD2A344DD1A45A7079037A7629747BE1F183775275C93F52505BA701B27FB18035A0B8D707BF1A3B3BE453FD1A21B0B7FBA7CF90B3BB9665AA33EFB1FC04F858A33E8908397B976C03F972D6C50296DF33359E0BE9209C7D333A019937EC6A26BBB0EDD75DA06CF63A6333B1786B55DC0812AB74FD5D87EE581750E238EFCC75A1EF651502D3988C29C6C37504D90F8878D2FBE7F9131F273638A1BFFF96839557C5D1BA687DF78AFAF75E7FA7214B44C04BE0F3D160071146681C7CBE9B1DB1766C1D972E836DF71D0D4CD4E396D15EE25EF1A58FAC876E2ACCC2DE8EFA8B194694524C1F73D66B8D4D0B95C9896D18FE4061A68FB322BBC155D24E7EA516F740866BB32BB55E8FECAA7BC7F9D3D347024584F8BF4A40232D6AF32E3BB753718567698ABCA6440D68AF0B4317F343FA866ECCC64E895D780300BFA2FCAAAAFA4630C37EB8546025DFDD1E3FAB56F70CC95AA0CB7E3E8F11253D80B4C072ED04FE7068C4818B52831F77C11934F97AD153C44499AF0E6C99DE5741E41EB4C3DDEA3A7C7404AF7F154EAB7422598797E4E5106BFCF7390DE9AF5E9978A7000566FF8EE5737730108235AACBD38D8C337C71978FDC765243322C08F74B0F71B91E3C50BE3DAB7E58F0F8F187839AABB2991C1AB686975AEF90EECCBEAD74AE9C78F0A4DF2376A35A4E5894E8677A08788FEA19DEAE13C88D696C65A7426E620AA1492115E2BF0FB195089F093 |
285 | 20180411151653 2 6 100 6143 5 E01FFD7EC91328929E4FD6183C9C9EDF4EF8CFC608D943A1011CEE0B49D7322663D64028F7205A4F008A0C8F393F91FF42D1C7ACB6B4041D0DC79BB0DA6D394532A0E33BC96FEA6EC2E67987F13D2F218B9E8A46D20125D822B6AA1C9615087E5C667CCA74414305E3382E20792B058F61D9DBFD93EF80A2E30E17FDB883F79989B540A6E467D9CEF07C849B659890706CAC7FF6F95669DAD0D9170D485C298AA940C6B7B3092E265FB512C70F36E3D6515B7B799E20FFE9DA35F932C3F2C238F5D8BCB92193216563D6163EB9FAAFEDD0E8A1A3F8CE292E8A1BEF630C5E75D845444B414017844E9560C8309CD54BF9EEAB2CAAE888226AB8031F1569A728256BB6FCC14DF314314F9F2DF75E781E8A4A5411ACCB4D9E3103131F52E0D14386A6E107AA7A522E42F1A41C8A8E46CE69E824492B87BC8B34A457EC25A7508B3E1A33BCC9E99EA754163AEC31161A83A80780DF46D36E757CF90C0F002DF73AB406F7DF81FDA75AD7F3F052EEA91955FA737616D8D4BB87A60FF471400D50688146BC3C10FF60A35D8BB9EF6BEF26497361118125FBEE607726AA408674A45931C87666146BE520503A5241D49B964406A864749C50F9B2718B8E0F62614DB27F35F53D57F70CB4ECE081BD377CDBA5C4AD75BEA63CB8E2653E52D11C0CAC67916B0C24232FC9D90091C7CDD317D4F60D8271D81E70B79031BE25CD5D6CC1E7A04FAF98C25B143B9D7B08D94160B1737AB49F55A01AF3A9BB7C8C261E8F2F84A1995C752276F5F03E54EE22A973F63C73083377DD6851634AA5568AA1173E5BE96606D946AAC82951E326750E18C2AD12C311EF784AD9014BEE322032B45244BD6EEDA224CCDA93983C8FB326F8C8B02F5574B0BC0CD7BFD1C524CD66ACD8A7AC1619E57136F2FEB5F49E9791D4E0F0C9AB8B9E7A98E49E5603D4E02771EFC9993ED15974CD0EEA50510C410FD884CB5D83D0FCD0AF7218D49523F95C4C396CBC0359DABD75EC138910788E1766649130AD089F565ED926B4F26FEBAF9CA4F768E6CA6E6BB7E43769B7D46E2F0D6A63254B41715567635FC1D38DCD7E41CC6D9F | 285 | 20180923141725 2 6 100 6143 5 F35161AADD9632E3575CDA92B32D0F28F2E75A457C95BE770E9A8E8122E71DDB31C63B86B67348319F52466B6F3FED41463FAADCA6CE2901FF62D867C09A3565BFC511A060AABAD5040F94C3066EFBFED3CA9BA71864EBBE9F616FCE8F9B0C9C463E2172BA6B1EEF222E310FEC9B70FDF42104292FE772CB350DB09040ED588DA44E0607286D1D66F155FFC5607EBEB4041F705839FEDB0C03FDA40F013BAE3D02EA1256B6DB4DB0F9ED423CD6DCFFD36AA0841BB1FDAF66A453A19EB967F0ECF045FB069302CCB0C6EB52834D1A8DBDE302530510349FC21AE0EE7D5F912D6FBFDEF8A19B8B4CEF2EEE0D05F67DB8F03E564FCD7CD2A344DD1A45A7079037A7629747BE1F183775275C93F52505BA701B27FB18035A0B8D707BF1A3B3BE453FD1A21B0B7FBA7CF90B3BB9665AA33EFB1FC04F858A33E8908397B976C03F972D6C50296DF33359E0BE9209C7D333A019937EC6A26BBB0EDD75DA06CF63A6333B1786B55DC0812AB74FD5D87EE581750E238EFCC75A1EF651502D3988C29C6C37504D90F8878D2FBE7F9131F273638A1BFFF96839557C5D1BA687DF78AFAF75E7FA7214B44C04BE0F3D160071146681C7CBE9B1DB1766C1D972E836DF71D0D4CD4E396D15EE25EF1A58FAC876E2ACCC2DE8EFA8B194694524C1F73D66B8D4D0B95C9896D18FE4061A68FB322BBC155D24E7EA516F740866BB32BB55E8FECAA7BC7F9D3D347024584F8BF4A40232D6AF32E3BB753718567698ABCA6440D68AF0B4317F343FA866ECCC64E895D780300BFA2FCAAAAFA4630C37EB8546025DFDD1E3FAB56F70CC95AA0CB7E3E8F11253D80B4C072ED04FE7068C4818B52831F77C11934F97AD153C44499AF0E6C99DE5741E41EB4C3DDEA3A7C7404AF7F154EAB7422598797E4E5106BFCF7390DE9AF5E9978A7000566FF8EE5737730108235AACBD38D8C337C71978FDC765243322C08F74B0F71B91E3C50BE3DAB7E58F0F8F187839AABB2991C1AB686975AEF90EECCBEAD74AE9C78F0A4DF2376A35A4E5894E8677A08788FEA19DEAE13C88D696C65A7426E620AA1492115E2BF0FB1950F052F7 |
286 | 20180411152943 2 6 100 6143 2 E01FFD7EC91328929E4FD6183C9C9EDF4EF8CFC608D943A1011CEE0B49D7322663D64028F7205A4F008A0C8F393F91FF42D1C7ACB6B4041D0DC79BB0DA6D394532A0E33BC96FEA6EC2E67987F13D2F218B9E8A46D20125D822B6AA1C9615087E5C667CCA74414305E3382E20792B058F61D9DBFD93EF80A2E30E17FDB883F79989B540A6E467D9CEF07C849B659890706CAC7FF6F95669DAD0D9170D485C298AA940C6B7B3092E265FB512C70F36E3D6515B7B799E20FFE9DA35F932C3F2C238F5D8BCB92193216563D6163EB9FAAFEDD0E8A1A3F8CE292E8A1BEF630C5E75D845444B414017844E9560C8309CD54BF9EEAB2CAAE888226AB8031F1569A728256BB6FCC14DF314314F9F2DF75E781E8A4A5411ACCB4D9E3103131F52E0D14386A6E107AA7A522E42F1A41C8A8E46CE69E824492B87BC8B34A457EC25A7508B3E1A33BCC9E99EA754163AEC31161A83A80780DF46D36E757CF90C0F002DF73AB406F7DF81FDA75AD7F3F052EEA91955FA737616D8D4BB87A60FF471400D50688146BC3C10FF60A35D8BB9EF6BEF26497361118125FBEE607726AA408674A45931C87666146BE520503A5241D49B964406A864749C50F9B2718B8E0F62614DB27F35F53D57F70CB4ECE081BD377CDBA5C4AD75BEA63CB8E2653E52D11C0CAC67916B0C24232FC9D90091C7CDD317D4F60D8271D81E70B79031BE25CD5D6CC1E7A04FAF98C25B143B9D7B08D94160B1737AB49F55A01AF3A9BB7C8C261E8F2F84A1995C752276F5F03E54EE22A973F63C73083377DD6851634AA5568AA1173E5BE96606D946AAC82951E326750E18C2AD12C311EF784AD9014BEE322032B45244BD6EEDA224CCDA93983C8FB326F8C8B02F5574B0BC0CD7BFD1C524CD66ACD8A7AC1619E57136F2FEB5F49E9791D4E0F0C9AB8B9E7A98E49E5603D4E02771EFC9993ED15974CD0EEA50510C410FD884CB5D83D0FCD0AF7218D49523F95C4C396CBC0359DABD75EC138910788E1766649130AD089F565ED926B4F26FEBAF9CA4F768E6CA6E6BB7E43769B7D46E2F0D6A63254B41715567635FC1D38DCD7E4210423B | 286 | 20180923153745 2 6 100 6143 2 F35161AADD9632E3575CDA92B32D0F28F2E75A457C95BE770E9A8E8122E71DDB31C63B86B67348319F52466B6F3FED41463FAADCA6CE2901FF62D867C09A3565BFC511A060AABAD5040F94C3066EFBFED3CA9BA71864EBBE9F616FCE8F9B0C9C463E2172BA6B1EEF222E310FEC9B70FDF42104292FE772CB350DB09040ED588DA44E0607286D1D66F155FFC5607EBEB4041F705839FEDB0C03FDA40F013BAE3D02EA1256B6DB4DB0F9ED423CD6DCFFD36AA0841BB1FDAF66A453A19EB967F0ECF045FB069302CCB0C6EB52834D1A8DBDE302530510349FC21AE0EE7D5F912D6FBFDEF8A19B8B4CEF2EEE0D05F67DB8F03E564FCD7CD2A344DD1A45A7079037A7629747BE1F183775275C93F52505BA701B27FB18035A0B8D707BF1A3B3BE453FD1A21B0B7FBA7CF90B3BB9665AA33EFB1FC04F858A33E8908397B976C03F972D6C50296DF33359E0BE9209C7D333A019937EC6A26BBB0EDD75DA06CF63A6333B1786B55DC0812AB74FD5D87EE581750E238EFCC75A1EF651502D3988C29C6C37504D90F8878D2FBE7F9131F273638A1BFFF96839557C5D1BA687DF78AFAF75E7FA7214B44C04BE0F3D160071146681C7CBE9B1DB1766C1D972E836DF71D0D4CD4E396D15EE25EF1A58FAC876E2ACCC2DE8EFA8B194694524C1F73D66B8D4D0B95C9896D18FE4061A68FB322BBC155D24E7EA516F740866BB32BB55E8FECAA7BC7F9D3D347024584F8BF4A40232D6AF32E3BB753718567698ABCA6440D68AF0B4317F343FA866ECCC64E895D780300BFA2FCAAAAFA4630C37EB8546025DFDD1E3FAB56F70CC95AA0CB7E3E8F11253D80B4C072ED04FE7068C4818B52831F77C11934F97AD153C44499AF0E6C99DE5741E41EB4C3DDEA3A7C7404AF7F154EAB7422598797E4E5106BFCF7390DE9AF5E9978A7000566FF8EE5737730108235AACBD38D8C337C71978FDC765243322C08F74B0F71B91E3C50BE3DAB7E58F0F8F187839AABB2991C1AB686975AEF90EECCBEAD74AE9C78F0A4DF2376A35A4E5894E8677A08788FEA19DEAE13C88D696C65A7426E620AA1492115E2BF0FB1952DF5333 |
287 | 20180411184911 2 6 100 6143 2 E01FFD7EC91328929E4FD6183C9C9EDF4EF8CFC608D943A1011CEE0B49D7322663D64028F7205A4F008A0C8F393F91FF42D1C7ACB6B4041D0DC79BB0DA6D394532A0E33BC96FEA6EC2E67987F13D2F218B9E8A46D20125D822B6AA1C9615087E5C667CCA74414305E3382E20792B058F61D9DBFD93EF80A2E30E17FDB883F79989B540A6E467D9CEF07C849B659890706CAC7FF6F95669DAD0D9170D485C298AA940C6B7B3092E265FB512C70F36E3D6515B7B799E20FFE9DA35F932C3F2C238F5D8BCB92193216563D6163EB9FAAFEDD0E8A1A3F8CE292E8A1BEF630C5E75D845444B414017844E9560C8309CD54BF9EEAB2CAAE888226AB8031F1569A728256BB6FCC14DF314314F9F2DF75E781E8A4A5411ACCB4D9E3103131F52E0D14386A6E107AA7A522E42F1A41C8A8E46CE69E824492B87BC8B34A457EC25A7508B3E1A33BCC9E99EA754163AEC31161A83A80780DF46D36E757CF90C0F002DF73AB406F7DF81FDA75AD7F3F052EEA91955FA737616D8D4BB87A60FF471400D50688146BC3C10FF60A35D8BB9EF6BEF26497361118125FBEE607726AA408674A45931C87666146BE520503A5241D49B964406A864749C50F9B2718B8E0F62614DB27F35F53D57F70CB4ECE081BD377CDBA5C4AD75BEA63CB8E2653E52D11C0CAC67916B0C24232FC9D90091C7CDD317D4F60D8271D81E70B79031BE25CD5D6CC1E7A04FAF98C25B143B9D7B08D94160B1737AB49F55A01AF3A9BB7C8C261E8F2F84A1995C752276F5F03E54EE22A973F63C73083377DD6851634AA5568AA1173E5BE96606D946AAC82951E326750E18C2AD12C311EF784AD9014BEE322032B45244BD6EEDA224CCDA93983C8FB326F8C8B02F5574B0BC0CD7BFD1C524CD66ACD8A7AC1619E57136F2FEB5F49E9791D4E0F0C9AB8B9E7A98E49E5603D4E02771EFC9993ED15974CD0EEA50510C410FD884CB5D83D0FCD0AF7218D49523F95C4C396CBC0359DABD75EC138910788E1766649130AD089F565ED926B4F26FEBAF9CA4F768E6CA6E6BB7E43769B7D46E2F0D6A63254B41715567635FC1D38DCD7E46A13843 | 287 | 20180923161625 2 6 100 6143 5 F35161AADD9632E3575CDA92B32D0F28F2E75A457C95BE770E9A8E8122E71DDB31C63B86B67348319F52466B6F3FED41463FAADCA6CE2901FF62D867C09A3565BFC511A060AABAD5040F94C3066EFBFED3CA9BA71864EBBE9F616FCE8F9B0C9C463E2172BA6B1EEF222E310FEC9B70FDF42104292FE772CB350DB09040ED588DA44E0607286D1D66F155FFC5607EBEB4041F705839FEDB0C03FDA40F013BAE3D02EA1256B6DB4DB0F9ED423CD6DCFFD36AA0841BB1FDAF66A453A19EB967F0ECF045FB069302CCB0C6EB52834D1A8DBDE302530510349FC21AE0EE7D5F912D6FBFDEF8A19B8B4CEF2EEE0D05F67DB8F03E564FCD7CD2A344DD1A45A7079037A7629747BE1F183775275C93F52505BA701B27FB18035A0B8D707BF1A3B3BE453FD1A21B0B7FBA7CF90B3BB9665AA33EFB1FC04F858A33E8908397B976C03F972D6C50296DF33359E0BE9209C7D333A019937EC6A26BBB0EDD75DA06CF63A6333B1786B55DC0812AB74FD5D87EE581750E238EFCC75A1EF651502D3988C29C6C37504D90F8878D2FBE7F9131F273638A1BFFF96839557C5D1BA687DF78AFAF75E7FA7214B44C04BE0F3D160071146681C7CBE9B1DB1766C1D972E836DF71D0D4CD4E396D15EE25EF1A58FAC876E2ACCC2DE8EFA8B194694524C1F73D66B8D4D0B95C9896D18FE4061A68FB322BBC155D24E7EA516F740866BB32BB55E8FECAA7BC7F9D3D347024584F8BF4A40232D6AF32E3BB753718567698ABCA6440D68AF0B4317F343FA866ECCC64E895D780300BFA2FCAAAAFA4630C37EB8546025DFDD1E3FAB56F70CC95AA0CB7E3E8F11253D80B4C072ED04FE7068C4818B52831F77C11934F97AD153C44499AF0E6C99DE5741E41EB4C3DDEA3A7C7404AF7F154EAB7422598797E4E5106BFCF7390DE9AF5E9978A7000566FF8EE5737730108235AACBD38D8C337C71978FDC765243322C08F74B0F71B91E3C50BE3DAB7E58F0F8F187839AABB2991C1AB686975AEF90EECCBEAD74AE9C78F0A4DF2376A35A4E5894E8677A08788FEA19DEAE13C88D696C65A7426E620AA1492115E2BF0FB1953CC5B37 |
288 | 20180411191726 2 6 100 6143 5 E01FFD7EC91328929E4FD6183C9C9EDF4EF8CFC608D943A1011CEE0B49D7322663D64028F7205A4F008A0C8F393F91FF42D1C7ACB6B4041D0DC79BB0DA6D394532A0E33BC96FEA6EC2E67987F13D2F218B9E8A46D20125D822B6AA1C9615087E5C667CCA74414305E3382E20792B058F61D9DBFD93EF80A2E30E17FDB883F79989B540A6E467D9CEF07C849B659890706CAC7FF6F95669DAD0D9170D485C298AA940C6B7B3092E265FB512C70F36E3D6515B7B799E20FFE9DA35F932C3F2C238F5D8BCB92193216563D6163EB9FAAFEDD0E8A1A3F8CE292E8A1BEF630C5E75D845444B414017844E9560C8309CD54BF9EEAB2CAAE888226AB8031F1569A728256BB6FCC14DF314314F9F2DF75E781E8A4A5411ACCB4D9E3103131F52E0D14386A6E107AA7A522E42F1A41C8A8E46CE69E824492B87BC8B34A457EC25A7508B3E1A33BCC9E99EA754163AEC31161A83A80780DF46D36E757CF90C0F002DF73AB406F7DF81FDA75AD7F3F052EEA91955FA737616D8D4BB87A60FF471400D50688146BC3C10FF60A35D8BB9EF6BEF26497361118125FBEE607726AA408674A45931C87666146BE520503A5241D49B964406A864749C50F9B2718B8E0F62614DB27F35F53D57F70CB4ECE081BD377CDBA5C4AD75BEA63CB8E2653E52D11C0CAC67916B0C24232FC9D90091C7CDD317D4F60D8271D81E70B79031BE25CD5D6CC1E7A04FAF98C25B143B9D7B08D94160B1737AB49F55A01AF3A9BB7C8C261E8F2F84A1995C752276F5F03E54EE22A973F63C73083377DD6851634AA5568AA1173E5BE96606D946AAC82951E326750E18C2AD12C311EF784AD9014BEE322032B45244BD6EEDA224CCDA93983C8FB326F8C8B02F5574B0BC0CD7BFD1C524CD66ACD8A7AC1619E57136F2FEB5F49E9791D4E0F0C9AB8B9E7A98E49E5603D4E02771EFC9993ED15974CD0EEA50510C410FD884CB5D83D0FCD0AF7218D49523F95C4C396CBC0359DABD75EC138910788E1766649130AD089F565ED926B4F26FEBAF9CA4F768E6CA6E6BB7E43769B7D46E2F0D6A63254B41715567635FC1D38DCD7E473E26CF | 288 | 20180923174651 2 6 100 6143 2 F35161AADD9632E3575CDA92B32D0F28F2E75A457C95BE770E9A8E8122E71DDB31C63B86B67348319F52466B6F3FED41463FAADCA6CE2901FF62D867C09A3565BFC511A060AABAD5040F94C3066EFBFED3CA9BA71864EBBE9F616FCE8F9B0C9C463E2172BA6B1EEF222E310FEC9B70FDF42104292FE772CB350DB09040ED588DA44E0607286D1D66F155FFC5607EBEB4041F705839FEDB0C03FDA40F013BAE3D02EA1256B6DB4DB0F9ED423CD6DCFFD36AA0841BB1FDAF66A453A19EB967F0ECF045FB069302CCB0C6EB52834D1A8DBDE302530510349FC21AE0EE7D5F912D6FBFDEF8A19B8B4CEF2EEE0D05F67DB8F03E564FCD7CD2A344DD1A45A7079037A7629747BE1F183775275C93F52505BA701B27FB18035A0B8D707BF1A3B3BE453FD1A21B0B7FBA7CF90B3BB9665AA33EFB1FC04F858A33E8908397B976C03F972D6C50296DF33359E0BE9209C7D333A019937EC6A26BBB0EDD75DA06CF63A6333B1786B55DC0812AB74FD5D87EE581750E238EFCC75A1EF651502D3988C29C6C37504D90F8878D2FBE7F9131F273638A1BFFF96839557C5D1BA687DF78AFAF75E7FA7214B44C04BE0F3D160071146681C7CBE9B1DB1766C1D972E836DF71D0D4CD4E396D15EE25EF1A58FAC876E2ACCC2DE8EFA8B194694524C1F73D66B8D4D0B95C9896D18FE4061A68FB322BBC155D24E7EA516F740866BB32BB55E8FECAA7BC7F9D3D347024584F8BF4A40232D6AF32E3BB753718567698ABCA6440D68AF0B4317F343FA866ECCC64E895D780300BFA2FCAAAAFA4630C37EB8546025DFDD1E3FAB56F70CC95AA0CB7E3E8F11253D80B4C072ED04FE7068C4818B52831F77C11934F97AD153C44499AF0E6C99DE5741E41EB4C3DDEA3A7C7404AF7F154EAB7422598797E4E5106BFCF7390DE9AF5E9978A7000566FF8EE5737730108235AACBD38D8C337C71978FDC765243322C08F74B0F71B91E3C50BE3DAB7E58F0F8F187839AABB2991C1AB686975AEF90EECCBEAD74AE9C78F0A4DF2376A35A4E5894E8677A08788FEA19DEAE13C88D696C65A7426E620AA1492115E2BF0FB1955FDACA3 |
289 | 20180411205712 2 6 100 6143 2 E01FFD7EC91328929E4FD6183C9C9EDF4EF8CFC608D943A1011CEE0B49D7322663D64028F7205A4F008A0C8F393F91FF42D1C7ACB6B4041D0DC79BB0DA6D394532A0E33BC96FEA6EC2E67987F13D2F218B9E8A46D20125D822B6AA1C9615087E5C667CCA74414305E3382E20792B058F61D9DBFD93EF80A2E30E17FDB883F79989B540A6E467D9CEF07C849B659890706CAC7FF6F95669DAD0D9170D485C298AA940C6B7B3092E265FB512C70F36E3D6515B7B799E20FFE9DA35F932C3F2C238F5D8BCB92193216563D6163EB9FAAFEDD0E8A1A3F8CE292E8A1BEF630C5E75D845444B414017844E9560C8309CD54BF9EEAB2CAAE888226AB8031F1569A728256BB6FCC14DF314314F9F2DF75E781E8A4A5411ACCB4D9E3103131F52E0D14386A6E107AA7A522E42F1A41C8A8E46CE69E824492B87BC8B34A457EC25A7508B3E1A33BCC9E99EA754163AEC31161A83A80780DF46D36E757CF90C0F002DF73AB406F7DF81FDA75AD7F3F052EEA91955FA737616D8D4BB87A60FF471400D50688146BC3C10FF60A35D8BB9EF6BEF26497361118125FBEE607726AA408674A45931C87666146BE520503A5241D49B964406A864749C50F9B2718B8E0F62614DB27F35F53D57F70CB4ECE081BD377CDBA5C4AD75BEA63CB8E2653E52D11C0CAC67916B0C24232FC9D90091C7CDD317D4F60D8271D81E70B79031BE25CD5D6CC1E7A04FAF98C25B143B9D7B08D94160B1737AB49F55A01AF3A9BB7C8C261E8F2F84A1995C752276F5F03E54EE22A973F63C73083377DD6851634AA5568AA1173E5BE96606D946AAC82951E326750E18C2AD12C311EF784AD9014BEE322032B45244BD6EEDA224CCDA93983C8FB326F8C8B02F5574B0BC0CD7BFD1C524CD66ACD8A7AC1619E57136F2FEB5F49E9791D4E0F0C9AB8B9E7A98E49E5603D4E02771EFC9993ED15974CD0EEA50510C410FD884CB5D83D0FCD0AF7218D49523F95C4C396CBC0359DABD75EC138910788E1766649130AD089F565ED926B4F26FEBAF9CA4F768E6CA6E6BB7E43769B7D46E2F0D6A63254B41715567635FC1D38DCD7E498A1853 | 289 | 20180923174907 2 6 100 6143 5 F35161AADD9632E3575CDA92B32D0F28F2E75A457C95BE770E9A8E8122E71DDB31C63B86B67348319F52466B6F3FED41463FAADCA6CE2901FF62D867C09A3565BFC511A060AABAD5040F94C3066EFBFED3CA9BA71864EBBE9F616FCE8F9B0C9C463E2172BA6B1EEF222E310FEC9B70FDF42104292FE772CB350DB09040ED588DA44E0607286D1D66F155FFC5607EBEB4041F705839FEDB0C03FDA40F013BAE3D02EA1256B6DB4DB0F9ED423CD6DCFFD36AA0841BB1FDAF66A453A19EB967F0ECF045FB069302CCB0C6EB52834D1A8DBDE302530510349FC21AE0EE7D5F912D6FBFDEF8A19B8B4CEF2EEE0D05F67DB8F03E564FCD7CD2A344DD1A45A7079037A7629747BE1F183775275C93F52505BA701B27FB18035A0B8D707BF1A3B3BE453FD1A21B0B7FBA7CF90B3BB9665AA33EFB1FC04F858A33E8908397B976C03F972D6C50296DF33359E0BE9209C7D333A019937EC6A26BBB0EDD75DA06CF63A6333B1786B55DC0812AB74FD5D87EE581750E238EFCC75A1EF651502D3988C29C6C37504D90F8878D2FBE7F9131F273638A1BFFF96839557C5D1BA687DF78AFAF75E7FA7214B44C04BE0F3D160071146681C7CBE9B1DB1766C1D972E836DF71D0D4CD4E396D15EE25EF1A58FAC876E2ACCC2DE8EFA8B194694524C1F73D66B8D4D0B95C9896D18FE4061A68FB322BBC155D24E7EA516F740866BB32BB55E8FECAA7BC7F9D3D347024584F8BF4A40232D6AF32E3BB753718567698ABCA6440D68AF0B4317F343FA866ECCC64E895D780300BFA2FCAAAAFA4630C37EB8546025DFDD1E3FAB56F70CC95AA0CB7E3E8F11253D80B4C072ED04FE7068C4818B52831F77C11934F97AD153C44499AF0E6C99DE5741E41EB4C3DDEA3A7C7404AF7F154EAB7422598797E4E5106BFCF7390DE9AF5E9978A7000566FF8EE5737730108235AACBD38D8C337C71978FDC765243322C08F74B0F71B91E3C50BE3DAB7E58F0F8F187839AABB2991C1AB686975AEF90EECCBEAD74AE9C78F0A4DF2376A35A4E5894E8677A08788FEA19DEAE13C88D696C65A7426E620AA1492115E2BF0FB195602AE57 |
290 | 20180411212652 2 6 100 6143 5 E01FFD7EC91328929E4FD6183C9C9EDF4EF8CFC608D943A1011CEE0B49D7322663D64028F7205A4F008A0C8F393F91FF42D1C7ACB6B4041D0DC79BB0DA6D394532A0E33BC96FEA6EC2E67987F13D2F218B9E8A46D20125D822B6AA1C9615087E5C667CCA74414305E3382E20792B058F61D9DBFD93EF80A2E30E17FDB883F79989B540A6E467D9CEF07C849B659890706CAC7FF6F95669DAD0D9170D485C298AA940C6B7B3092E265FB512C70F36E3D6515B7B799E20FFE9DA35F932C3F2C238F5D8BCB92193216563D6163EB9FAAFEDD0E8A1A3F8CE292E8A1BEF630C5E75D845444B414017844E9560C8309CD54BF9EEAB2CAAE888226AB8031F1569A728256BB6FCC14DF314314F9F2DF75E781E8A4A5411ACCB4D9E3103131F52E0D14386A6E107AA7A522E42F1A41C8A8E46CE69E824492B87BC8B34A457EC25A7508B3E1A33BCC9E99EA754163AEC31161A83A80780DF46D36E757CF90C0F002DF73AB406F7DF81FDA75AD7F3F052EEA91955FA737616D8D4BB87A60FF471400D50688146BC3C10FF60A35D8BB9EF6BEF26497361118125FBEE607726AA408674A45931C87666146BE520503A5241D49B964406A864749C50F9B2718B8E0F62614DB27F35F53D57F70CB4ECE081BD377CDBA5C4AD75BEA63CB8E2653E52D11C0CAC67916B0C24232FC9D90091C7CDD317D4F60D8271D81E70B79031BE25CD5D6CC1E7A04FAF98C25B143B9D7B08D94160B1737AB49F55A01AF3A9BB7C8C261E8F2F84A1995C752276F5F03E54EE22A973F63C73083377DD6851634AA5568AA1173E5BE96606D946AAC82951E326750E18C2AD12C311EF784AD9014BEE322032B45244BD6EEDA224CCDA93983C8FB326F8C8B02F5574B0BC0CD7BFD1C524CD66ACD8A7AC1619E57136F2FEB5F49E9791D4E0F0C9AB8B9E7A98E49E5603D4E02771EFC9993ED15974CD0EEA50510C410FD884CB5D83D0FCD0AF7218D49523F95C4C396CBC0359DABD75EC138910788E1766649130AD089F565ED926B4F26FEBAF9CA4F768E6CA6E6BB7E43769B7D46E2F0D6A63254B41715567635FC1D38DCD7E4A2D607F | 290 | 20180923185706 2 6 100 6143 2 F35161AADD9632E3575CDA92B32D0F28F2E75A457C95BE770E9A8E8122E71DDB31C63B86B67348319F52466B6F3FED41463FAADCA6CE2901FF62D867C09A3565BFC511A060AABAD5040F94C3066EFBFED3CA9BA71864EBBE9F616FCE8F9B0C9C463E2172BA6B1EEF222E310FEC9B70FDF42104292FE772CB350DB09040ED588DA44E0607286D1D66F155FFC5607EBEB4041F705839FEDB0C03FDA40F013BAE3D02EA1256B6DB4DB0F9ED423CD6DCFFD36AA0841BB1FDAF66A453A19EB967F0ECF045FB069302CCB0C6EB52834D1A8DBDE302530510349FC21AE0EE7D5F912D6FBFDEF8A19B8B4CEF2EEE0D05F67DB8F03E564FCD7CD2A344DD1A45A7079037A7629747BE1F183775275C93F52505BA701B27FB18035A0B8D707BF1A3B3BE453FD1A21B0B7FBA7CF90B3BB9665AA33EFB1FC04F858A33E8908397B976C03F972D6C50296DF33359E0BE9209C7D333A019937EC6A26BBB0EDD75DA06CF63A6333B1786B55DC0812AB74FD5D87EE581750E238EFCC75A1EF651502D3988C29C6C37504D90F8878D2FBE7F9131F273638A1BFFF96839557C5D1BA687DF78AFAF75E7FA7214B44C04BE0F3D160071146681C7CBE9B1DB1766C1D972E836DF71D0D4CD4E396D15EE25EF1A58FAC876E2ACCC2DE8EFA8B194694524C1F73D66B8D4D0B95C9896D18FE4061A68FB322BBC155D24E7EA516F740866BB32BB55E8FECAA7BC7F9D3D347024584F8BF4A40232D6AF32E3BB753718567698ABCA6440D68AF0B4317F343FA866ECCC64E895D780300BFA2FCAAAAFA4630C37EB8546025DFDD1E3FAB56F70CC95AA0CB7E3E8F11253D80B4C072ED04FE7068C4818B52831F77C11934F97AD153C44499AF0E6C99DE5741E41EB4C3DDEA3A7C7404AF7F154EAB7422598797E4E5106BFCF7390DE9AF5E9978A7000566FF8EE5737730108235AACBD38D8C337C71978FDC765243322C08F74B0F71B91E3C50BE3DAB7E58F0F8F187839AABB2991C1AB686975AEF90EECCBEAD74AE9C78F0A4DF2376A35A4E5894E8677A08788FEA19DEAE13C88D696C65A7426E620AA1492115E2BF0FB1957A5593B |
291 | 20180411215657 2 6 100 6143 2 E01FFD7EC91328929E4FD6183C9C9EDF4EF8CFC608D943A1011CEE0B49D7322663D64028F7205A4F008A0C8F393F91FF42D1C7ACB6B4041D0DC79BB0DA6D394532A0E33BC96FEA6EC2E67987F13D2F218B9E8A46D20125D822B6AA1C9615087E5C667CCA74414305E3382E20792B058F61D9DBFD93EF80A2E30E17FDB883F79989B540A6E467D9CEF07C849B659890706CAC7FF6F95669DAD0D9170D485C298AA940C6B7B3092E265FB512C70F36E3D6515B7B799E20FFE9DA35F932C3F2C238F5D8BCB92193216563D6163EB9FAAFEDD0E8A1A3F8CE292E8A1BEF630C5E75D845444B414017844E9560C8309CD54BF9EEAB2CAAE888226AB8031F1569A728256BB6FCC14DF314314F9F2DF75E781E8A4A5411ACCB4D9E3103131F52E0D14386A6E107AA7A522E42F1A41C8A8E46CE69E824492B87BC8B34A457EC25A7508B3E1A33BCC9E99EA754163AEC31161A83A80780DF46D36E757CF90C0F002DF73AB406F7DF81FDA75AD7F3F052EEA91955FA737616D8D4BB87A60FF471400D50688146BC3C10FF60A35D8BB9EF6BEF26497361118125FBEE607726AA408674A45931C87666146BE520503A5241D49B964406A864749C50F9B2718B8E0F62614DB27F35F53D57F70CB4ECE081BD377CDBA5C4AD75BEA63CB8E2653E52D11C0CAC67916B0C24232FC9D90091C7CDD317D4F60D8271D81E70B79031BE25CD5D6CC1E7A04FAF98C25B143B9D7B08D94160B1737AB49F55A01AF3A9BB7C8C261E8F2F84A1995C752276F5F03E54EE22A973F63C73083377DD6851634AA5568AA1173E5BE96606D946AAC82951E326750E18C2AD12C311EF784AD9014BEE322032B45244BD6EEDA224CCDA93983C8FB326F8C8B02F5574B0BC0CD7BFD1C524CD66ACD8A7AC1619E57136F2FEB5F49E9791D4E0F0C9AB8B9E7A98E49E5603D4E02771EFC9993ED15974CD0EEA50510C410FD884CB5D83D0FCD0AF7218D49523F95C4C396CBC0359DABD75EC138910788E1766649130AD089F565ED926B4F26FEBAF9CA4F768E6CA6E6BB7E43769B7D46E2F0D6A63254B41715567635FC1D38DCD7E4AD99963 | 291 | 20180923201932 2 6 100 6143 5 F35161AADD9632E3575CDA92B32D0F28F2E75A457C95BE770E9A8E8122E71DDB31C63B86B67348319F52466B6F3FED41463FAADCA6CE2901FF62D867C09A3565BFC511A060AABAD5040F94C3066EFBFED3CA9BA71864EBBE9F616FCE8F9B0C9C463E2172BA6B1EEF222E310FEC9B70FDF42104292FE772CB350DB09040ED588DA44E0607286D1D66F155FFC5607EBEB4041F705839FEDB0C03FDA40F013BAE3D02EA1256B6DB4DB0F9ED423CD6DCFFD36AA0841BB1FDAF66A453A19EB967F0ECF045FB069302CCB0C6EB52834D1A8DBDE302530510349FC21AE0EE7D5F912D6FBFDEF8A19B8B4CEF2EEE0D05F67DB8F03E564FCD7CD2A344DD1A45A7079037A7629747BE1F183775275C93F52505BA701B27FB18035A0B8D707BF1A3B3BE453FD1A21B0B7FBA7CF90B3BB9665AA33EFB1FC04F858A33E8908397B976C03F972D6C50296DF33359E0BE9209C7D333A019937EC6A26BBB0EDD75DA06CF63A6333B1786B55DC0812AB74FD5D87EE581750E238EFCC75A1EF651502D3988C29C6C37504D90F8878D2FBE7F9131F273638A1BFFF96839557C5D1BA687DF78AFAF75E7FA7214B44C04BE0F3D160071146681C7CBE9B1DB1766C1D972E836DF71D0D4CD4E396D15EE25EF1A58FAC876E2ACCC2DE8EFA8B194694524C1F73D66B8D4D0B95C9896D18FE4061A68FB322BBC155D24E7EA516F740866BB32BB55E8FECAA7BC7F9D3D347024584F8BF4A40232D6AF32E3BB753718567698ABCA6440D68AF0B4317F343FA866ECCC64E895D780300BFA2FCAAAAFA4630C37EB8546025DFDD1E3FAB56F70CC95AA0CB7E3E8F11253D80B4C072ED04FE7068C4818B52831F77C11934F97AD153C44499AF0E6C99DE5741E41EB4C3DDEA3A7C7404AF7F154EAB7422598797E4E5106BFCF7390DE9AF5E9978A7000566FF8EE5737730108235AACBD38D8C337C71978FDC765243322C08F74B0F71B91E3C50BE3DAB7E58F0F8F187839AABB2991C1AB686975AEF90EECCBEAD74AE9C78F0A4DF2376A35A4E5894E8677A08788FEA19DEAE13C88D696C65A7426E620AA1492115E2BF0FB1959A6D687 |
292 | 20180412095549 2 6 100 7679 5 FBED7F3DD7CF86B0A6EEDC1930C6958C3C00695DAF4347560C5AC1AA4B22F4DC76F190D63E230EB0CB4344A370A471F17FFCA8DA3B5B0A903F9D1258370125F6C172F3EC5F56D7B8EBD07B2072C45D6141DA3CDC01C3D95DE279C5FAA1E042651028141085EB68AFAC473600F75F4A373DC234D5405DCE7AB5B5854960ABC550FCEFEE8FD578810201DE6B4A5EF616F0CBF5707466D7ECBFD488EB68AD4B2EAC889BA2B7FEFE19CD8AA2C78F61D5DA08B4BC2738E1997F951A525EEF9F668148996D1ABFD1620F9276D741A46BECC0B7868A54745E0B16589A4AA7B938AF92FCA0FC9BBC193504D7EBFEFFEC996746DC6CAD3C192D724FB51E6228915789FF18314B3EB690359ADED802F35F48EC0D9C85AA1A20A2E5CF6EB795F2CCD03284547688B1B80A07EFC31668D30836C59C958BBBF6C1EE3940CC43A9334289C872302BB70368FDAC1653AF132F3E398E9310159C839E72555FD889E4E3B05E714E44E116804BF3748F62EF46E6A05DEC58A55185E43E2310EC945004AD61945BD2AD923B7B3C69A01C0393C15B6000BF542A55274ACA20B8A6EB96FAF83E27023FE0EA9EE564959A91BE17110176FB10D1A094947A23EFDE15DD093EF477EF798BCA8F5E14F85411242BC9C9492081444490C072BE8511B3C961AAAC80477897B54BDABE78C533F2E149FA64B51936E31F126625566CAFBB57E9F36CE0DF72A45E61AB27B6D25DEA3BA35910E16BB00AD300CEE2535CE75F9411DD43943250B03EBBA60C5C788974F2F695967103045F3A90A587AEFD0613F9C8E10A273DD827A314C75C7DBCE4326191DBCB92020CDB75129BCA032B6FD59D368C3E2404B2832398E40F43ACE284A91DED8812AA23E5B5A1D36AE204C53F1C6EF0E89AD31D1552E70538451847D7332D8FCACB62A1E56C1E5643E4F7AF63C67E082AC95DCB190795FA53522FA046F1919C81A088D7A8A452124E562BE2A702139670E94524D3110B9DFF35AE73F43280600B8304FA2E776089AF2ED929695967998E29A343FF62C4CAD7618222C01735734342FD33284BE9BDA4976DA1BC3B384E6F813FCBDFA3DC57B841515836CB2B37116EB6D417BBE6AEA7604AA915530AD803DF1C13656753C1A5867F4A3AE94BA7347580EE5A6CEBD2F3EB9B7F83E7B74F38995168F08A15A4CDF5702EA9DC907FC45910586D59537582DB1D5F155BF0050866CE3087560F1F44D1F275FD2B422038F9D8643C3BEBA49938D514848AC4F68F4CF44329C7E806B911B0CB7FF0020F3277A3E2B4FF17090D012B641E24D67A962E2FE361504DB014155F074F30F52078CB31DFC51B32746A42EDBF013F9920CFB17D1E908A07 | 292 | 20180924141921 2 6 100 6143 5 F35161AADD9632E3575CDA92B32D0F28F2E75A457C95BE770E9A8E8122E71DDB31C63B86B67348319F52466B6F3FED41463FAADCA6CE2901FF62D867C09A3565BFC511A060AABAD5040F94C3066EFBFED3CA9BA71864EBBE9F616FCE8F9B0C9C463E2172BA6B1EEF222E310FEC9B70FDF42104292FE772CB350DB09040ED588DA44E0607286D1D66F155FFC5607EBEB4041F705839FEDB0C03FDA40F013BAE3D02EA1256B6DB4DB0F9ED423CD6DCFFD36AA0841BB1FDAF66A453A19EB967F0ECF045FB069302CCB0C6EB52834D1A8DBDE302530510349FC21AE0EE7D5F912D6FBFDEF8A19B8B4CEF2EEE0D05F67DB8F03E564FCD7CD2A344DD1A45A7079037A7629747BE1F183775275C93F52505BA701B27FB18035A0B8D707BF1A3B3BE453FD1A21B0B7FBA7CF90B3BB9665AA33EFB1FC04F858A33E8908397B976C03F972D6C50296DF33359E0BE9209C7D333A019937EC6A26BBB0EDD75DA06CF63A6333B1786B55DC0812AB74FD5D87EE581750E238EFCC75A1EF651502D3988C29C6C37504D90F8878D2FBE7F9131F273638A1BFFF96839557C5D1BA687DF78AFAF75E7FA7214B44C04BE0F3D160071146681C7CBE9B1DB1766C1D972E836DF71D0D4CD4E396D15EE25EF1A58FAC876E2ACCC2DE8EFA8B194694524C1F73D66B8D4D0B95C9896D18FE4061A68FB322BBC155D24E7EA516F740866BB32BB55E8FECAA7BC7F9D3D347024584F8BF4A40232D6AF32E3BB753718567698ABCA6440D68AF0B4317F343FA866ECCC64E895D780300BFA2FCAAAAFA4630C37EB8546025DFDD1E3FAB56F70CC95AA0CB7E3E8F11253D80B4C072ED04FE7068C4818B52831F77C11934F97AD153C44499AF0E6C99DE5741E41EB4C3DDEA3A7C7404AF7F154EAB7422598797E4E5106BFCF7390DE9AF5E9978A7000566FF8EE5737730108235AACBD38D8C337C71978FDC765243322C08F74B0F71B91E3C50BE3DAB7E58F0F8F187839AABB2991C1AB686975AEF90EECCBEAD74AE9C78F0A4DF2376A35A4E5894E8677A08788FEA19DEAE13C88D696C65A7426E620AA1492115E2BF0FB1973A572FF |
293 | 20180412222127 2 6 100 7679 2 FBED7F3DD7CF86B0A6EEDC1930C6958C3C00695DAF4347560C5AC1AA4B22F4DC76F190D63E230EB0CB4344A370A471F17FFCA8DA3B5B0A903F9D1258370125F6C172F3EC5F56D7B8EBD07B2072C45D6141DA3CDC01C3D95DE279C5FAA1E042651028141085EB68AFAC473600F75F4A373DC234D5405DCE7AB5B5854960ABC550FCEFEE8FD578810201DE6B4A5EF616F0CBF5707466D7ECBFD488EB68AD4B2EAC889BA2B7FEFE19CD8AA2C78F61D5DA08B4BC2738E1997F951A525EEF9F668148996D1ABFD1620F9276D741A46BECC0B7868A54745E0B16589A4AA7B938AF92FCA0FC9BBC193504D7EBFEFFEC996746DC6CAD3C192D724FB51E6228915789FF18314B3EB690359ADED802F35F48EC0D9C85AA1A20A2E5CF6EB795F2CCD03284547688B1B80A07EFC31668D30836C59C958BBBF6C1EE3940CC43A9334289C872302BB70368FDAC1653AF132F3E398E9310159C839E72555FD889E4E3B05E714E44E116804BF3748F62EF46E6A05DEC58A55185E43E2310EC945004AD61945BD2AD923B7B3C69A01C0393C15B6000BF542A55274ACA20B8A6EB96FAF83E27023FE0EA9EE564959A91BE17110176FB10D1A094947A23EFDE15DD093EF477EF798BCA8F5E14F85411242BC9C9492081444490C072BE8511B3C961AAAC80477897B54BDABE78C533F2E149FA64B51936E31F126625566CAFBB57E9F36CE0DF72A45E61AB27B6D25DEA3BA35910E16BB00AD300CEE2535CE75F9411DD43943250B03EBBA60C5C788974F2F695967103045F3A90A587AEFD0613F9C8E10A273DD827A314C75C7DBCE4326191DBCB92020CDB75129BCA032B6FD59D368C3E2404B2832398E40F43ACE284A91DED8812AA23E5B5A1D36AE204C53F1C6EF0E89AD31D1552E70538451847D7332D8FCACB62A1E56C1E5643E4F7AF63C67E082AC95DCB190795FA53522FA046F1919C81A088D7A8A452124E562BE2A702139670E94524D3110B9DFF35AE73F43280600B8304FA2E776089AF2ED929695967998E29A343FF62C4CAD7618222C01735734342FD33284BE9BDA4976DA1BC3B384E6F813FCBDFA3DC57B841515836CB2B37116EB6D417BBE6AEA7604AA915530AD803DF1C13656753C1A5867F4A3AE94BA7347580EE5A6CEBD2F3EB9B7F83E7B74F38995168F08A15A4CDF5702EA9DC907FC45910586D59537582DB1D5F155BF0050866CE3087560F1F44D1F275FD2B422038F9D8643C3BEBA49938D514848AC4F68F4CF44329C7E806B911B0CB7FF0020F3277A3E2B4FF17090D012B641E24D67A962E2FE361504DB014155F074F30F52078CB31DFC51B32746A42EDBF013F9920CFB17D28C808CB | 293 | 20180924142936 2 6 100 6143 2 F35161AADD9632E3575CDA92B32D0F28F2E75A457C95BE770E9A8E8122E71DDB31C63B86B67348319F52466B6F3FED41463FAADCA6CE2901FF62D867C09A3565BFC511A060AABAD5040F94C3066EFBFED3CA9BA71864EBBE9F616FCE8F9B0C9C463E2172BA6B1EEF222E310FEC9B70FDF42104292FE772CB350DB09040ED588DA44E0607286D1D66F155FFC5607EBEB4041F705839FEDB0C03FDA40F013BAE3D02EA1256B6DB4DB0F9ED423CD6DCFFD36AA0841BB1FDAF66A453A19EB967F0ECF045FB069302CCB0C6EB52834D1A8DBDE302530510349FC21AE0EE7D5F912D6FBFDEF8A19B8B4CEF2EEE0D05F67DB8F03E564FCD7CD2A344DD1A45A7079037A7629747BE1F183775275C93F52505BA701B27FB18035A0B8D707BF1A3B3BE453FD1A21B0B7FBA7CF90B3BB9665AA33EFB1FC04F858A33E8908397B976C03F972D6C50296DF33359E0BE9209C7D333A019937EC6A26BBB0EDD75DA06CF63A6333B1786B55DC0812AB74FD5D87EE581750E238EFCC75A1EF651502D3988C29C6C37504D90F8878D2FBE7F9131F273638A1BFFF96839557C5D1BA687DF78AFAF75E7FA7214B44C04BE0F3D160071146681C7CBE9B1DB1766C1D972E836DF71D0D4CD4E396D15EE25EF1A58FAC876E2ACCC2DE8EFA8B194694524C1F73D66B8D4D0B95C9896D18FE4061A68FB322BBC155D24E7EA516F740866BB32BB55E8FECAA7BC7F9D3D347024584F8BF4A40232D6AF32E3BB753718567698ABCA6440D68AF0B4317F343FA866ECCC64E895D780300BFA2FCAAAAFA4630C37EB8546025DFDD1E3FAB56F70CC95AA0CB7E3E8F11253D80B4C072ED04FE7068C4818B52831F77C11934F97AD153C44499AF0E6C99DE5741E41EB4C3DDEA3A7C7404AF7F154EAB7422598797E4E5106BFCF7390DE9AF5E9978A7000566FF8EE5737730108235AACBD38D8C337C71978FDC765243322C08F74B0F71B91E3C50BE3DAB7E58F0F8F187839AABB2991C1AB686975AEF90EECCBEAD74AE9C78F0A4DF2376A35A4E5894E8677A08788FEA19DEAE13C88D696C65A7426E620AA1492115E2BF0FB1973D9C983 |
294 | 20180413014812 2 6 100 7679 2 FBED7F3DD7CF86B0A6EEDC1930C6958C3C00695DAF4347560C5AC1AA4B22F4DC76F190D63E230EB0CB4344A370A471F17FFCA8DA3B5B0A903F9D1258370125F6C172F3EC5F56D7B8EBD07B2072C45D6141DA3CDC01C3D95DE279C5FAA1E042651028141085EB68AFAC473600F75F4A373DC234D5405DCE7AB5B5854960ABC550FCEFEE8FD578810201DE6B4A5EF616F0CBF5707466D7ECBFD488EB68AD4B2EAC889BA2B7FEFE19CD8AA2C78F61D5DA08B4BC2738E1997F951A525EEF9F668148996D1ABFD1620F9276D741A46BECC0B7868A54745E0B16589A4AA7B938AF92FCA0FC9BBC193504D7EBFEFFEC996746DC6CAD3C192D724FB51E6228915789FF18314B3EB690359ADED802F35F48EC0D9C85AA1A20A2E5CF6EB795F2CCD03284547688B1B80A07EFC31668D30836C59C958BBBF6C1EE3940CC43A9334289C872302BB70368FDAC1653AF132F3E398E9310159C839E72555FD889E4E3B05E714E44E116804BF3748F62EF46E6A05DEC58A55185E43E2310EC945004AD61945BD2AD923B7B3C69A01C0393C15B6000BF542A55274ACA20B8A6EB96FAF83E27023FE0EA9EE564959A91BE17110176FB10D1A094947A23EFDE15DD093EF477EF798BCA8F5E14F85411242BC9C9492081444490C072BE8511B3C961AAAC80477897B54BDABE78C533F2E149FA64B51936E31F126625566CAFBB57E9F36CE0DF72A45E61AB27B6D25DEA3BA35910E16BB00AD300CEE2535CE75F9411DD43943250B03EBBA60C5C788974F2F695967103045F3A90A587AEFD0613F9C8E10A273DD827A314C75C7DBCE4326191DBCB92020CDB75129BCA032B6FD59D368C3E2404B2832398E40F43ACE284A91DED8812AA23E5B5A1D36AE204C53F1C6EF0E89AD31D1552E70538451847D7332D8FCACB62A1E56C1E5643E4F7AF63C67E082AC95DCB190795FA53522FA046F1919C81A088D7A8A452124E562BE2A702139670E94524D3110B9DFF35AE73F43280600B8304FA2E776089AF2ED929695967998E29A343FF62C4CAD7618222C01735734342FD33284BE9BDA4976DA1BC3B384E6F813FCBDFA3DC57B841515836CB2B37116EB6D417BBE6AEA7604AA915530AD803DF1C13656753C1A5867F4A3AE94BA7347580EE5A6CEBD2F3EB9B7F83E7B74F38995168F08A15A4CDF5702EA9DC907FC45910586D59537582DB1D5F155BF0050866CE3087560F1F44D1F275FD2B422038F9D8643C3BEBA49938D514848AC4F68F4CF44329C7E806B911B0CB7FF0020F3277A3E2B4FF17090D012B641E24D67A962E2FE361504DB014155F074F30F52078CB31DFC51B32746A42EDBF013F9920CFB17D2B32FFD3 | 294 | 20180924143229 2 6 100 6143 2 F35161AADD9632E3575CDA92B32D0F28F2E75A457C95BE770E9A8E8122E71DDB31C63B86B67348319F52466B6F3FED41463FAADCA6CE2901FF62D867C09A3565BFC511A060AABAD5040F94C3066EFBFED3CA9BA71864EBBE9F616FCE8F9B0C9C463E2172BA6B1EEF222E310FEC9B70FDF42104292FE772CB350DB09040ED588DA44E0607286D1D66F155FFC5607EBEB4041F705839FEDB0C03FDA40F013BAE3D02EA1256B6DB4DB0F9ED423CD6DCFFD36AA0841BB1FDAF66A453A19EB967F0ECF045FB069302CCB0C6EB52834D1A8DBDE302530510349FC21AE0EE7D5F912D6FBFDEF8A19B8B4CEF2EEE0D05F67DB8F03E564FCD7CD2A344DD1A45A7079037A7629747BE1F183775275C93F52505BA701B27FB18035A0B8D707BF1A3B3BE453FD1A21B0B7FBA7CF90B3BB9665AA33EFB1FC04F858A33E8908397B976C03F972D6C50296DF33359E0BE9209C7D333A019937EC6A26BBB0EDD75DA06CF63A6333B1786B55DC0812AB74FD5D87EE581750E238EFCC75A1EF651502D3988C29C6C37504D90F8878D2FBE7F9131F273638A1BFFF96839557C5D1BA687DF78AFAF75E7FA7214B44C04BE0F3D160071146681C7CBE9B1DB1766C1D972E836DF71D0D4CD4E396D15EE25EF1A58FAC876E2ACCC2DE8EFA8B194694524C1F73D66B8D4D0B95C9896D18FE4061A68FB322BBC155D24E7EA516F740866BB32BB55E8FECAA7BC7F9D3D347024584F8BF4A40232D6AF32E3BB753718567698ABCA6440D68AF0B4317F343FA866ECCC64E895D780300BFA2FCAAAAFA4630C37EB8546025DFDD1E3FAB56F70CC95AA0CB7E3E8F11253D80B4C072ED04FE7068C4818B52831F77C11934F97AD153C44499AF0E6C99DE5741E41EB4C3DDEA3A7C7404AF7F154EAB7422598797E4E5106BFCF7390DE9AF5E9978A7000566FF8EE5737730108235AACBD38D8C337C71978FDC765243322C08F74B0F71B91E3C50BE3DAB7E58F0F8F187839AABB2991C1AB686975AEF90EECCBEAD74AE9C78F0A4DF2376A35A4E5894E8677A08788FEA19DEAE13C88D696C65A7426E620AA1492115E2BF0FB1973E18163 |
295 | 20180413033600 2 6 100 7679 5 FBED7F3DD7CF86B0A6EEDC1930C6958C3C00695DAF4347560C5AC1AA4B22F4DC76F190D63E230EB0CB4344A370A471F17FFCA8DA3B5B0A903F9D1258370125F6C172F3EC5F56D7B8EBD07B2072C45D6141DA3CDC01C3D95DE279C5FAA1E042651028141085EB68AFAC473600F75F4A373DC234D5405DCE7AB5B5854960ABC550FCEFEE8FD578810201DE6B4A5EF616F0CBF5707466D7ECBFD488EB68AD4B2EAC889BA2B7FEFE19CD8AA2C78F61D5DA08B4BC2738E1997F951A525EEF9F668148996D1ABFD1620F9276D741A46BECC0B7868A54745E0B16589A4AA7B938AF92FCA0FC9BBC193504D7EBFEFFEC996746DC6CAD3C192D724FB51E6228915789FF18314B3EB690359ADED802F35F48EC0D9C85AA1A20A2E5CF6EB795F2CCD03284547688B1B80A07EFC31668D30836C59C958BBBF6C1EE3940CC43A9334289C872302BB70368FDAC1653AF132F3E398E9310159C839E72555FD889E4E3B05E714E44E116804BF3748F62EF46E6A05DEC58A55185E43E2310EC945004AD61945BD2AD923B7B3C69A01C0393C15B6000BF542A55274ACA20B8A6EB96FAF83E27023FE0EA9EE564959A91BE17110176FB10D1A094947A23EFDE15DD093EF477EF798BCA8F5E14F85411242BC9C9492081444490C072BE8511B3C961AAAC80477897B54BDABE78C533F2E149FA64B51936E31F126625566CAFBB57E9F36CE0DF72A45E61AB27B6D25DEA3BA35910E16BB00AD300CEE2535CE75F9411DD43943250B03EBBA60C5C788974F2F695967103045F3A90A587AEFD0613F9C8E10A273DD827A314C75C7DBCE4326191DBCB92020CDB75129BCA032B6FD59D368C3E2404B2832398E40F43ACE284A91DED8812AA23E5B5A1D36AE204C53F1C6EF0E89AD31D1552E70538451847D7332D8FCACB62A1E56C1E5643E4F7AF63C67E082AC95DCB190795FA53522FA046F1919C81A088D7A8A452124E562BE2A702139670E94524D3110B9DFF35AE73F43280600B8304FA2E776089AF2ED929695967998E29A343FF62C4CAD7618222C01735734342FD33284BE9BDA4976DA1BC3B384E6F813FCBDFA3DC57B841515836CB2B37116EB6D417BBE6AEA7604AA915530AD803DF1C13656753C1A5867F4A3AE94BA7347580EE5A6CEBD2F3EB9B7F83E7B74F38995168F08A15A4CDF5702EA9DC907FC45910586D59537582DB1D5F155BF0050866CE3087560F1F44D1F275FD2B422038F9D8643C3BEBA49938D514848AC4F68F4CF44329C7E806B911B0CB7FF0020F3277A3E2B4FF17090D012B641E24D67A962E2FE361504DB014155F074F30F52078CB31DFC51B32746A42EDBF013F9920CFB17D2C8AD64F | 295 | 20180924144304 2 6 100 6143 2 F35161AADD9632E3575CDA92B32D0F28F2E75A457C95BE770E9A8E8122E71DDB31C63B86B67348319F52466B6F3FED41463FAADCA6CE2901FF62D867C09A3565BFC511A060AABAD5040F94C3066EFBFED3CA9BA71864EBBE9F616FCE8F9B0C9C463E2172BA6B1EEF222E310FEC9B70FDF42104292FE772CB350DB09040ED588DA44E0607286D1D66F155FFC5607EBEB4041F705839FEDB0C03FDA40F013BAE3D02EA1256B6DB4DB0F9ED423CD6DCFFD36AA0841BB1FDAF66A453A19EB967F0ECF045FB069302CCB0C6EB52834D1A8DBDE302530510349FC21AE0EE7D5F912D6FBFDEF8A19B8B4CEF2EEE0D05F67DB8F03E564FCD7CD2A344DD1A45A7079037A7629747BE1F183775275C93F52505BA701B27FB18035A0B8D707BF1A3B3BE453FD1A21B0B7FBA7CF90B3BB9665AA33EFB1FC04F858A33E8908397B976C03F972D6C50296DF33359E0BE9209C7D333A019937EC6A26BBB0EDD75DA06CF63A6333B1786B55DC0812AB74FD5D87EE581750E238EFCC75A1EF651502D3988C29C6C37504D90F8878D2FBE7F9131F273638A1BFFF96839557C5D1BA687DF78AFAF75E7FA7214B44C04BE0F3D160071146681C7CBE9B1DB1766C1D972E836DF71D0D4CD4E396D15EE25EF1A58FAC876E2ACCC2DE8EFA8B194694524C1F73D66B8D4D0B95C9896D18FE4061A68FB322BBC155D24E7EA516F740866BB32BB55E8FECAA7BC7F9D3D347024584F8BF4A40232D6AF32E3BB753718567698ABCA6440D68AF0B4317F343FA866ECCC64E895D780300BFA2FCAAAAFA4630C37EB8546025DFDD1E3FAB56F70CC95AA0CB7E3E8F11253D80B4C072ED04FE7068C4818B52831F77C11934F97AD153C44499AF0E6C99DE5741E41EB4C3DDEA3A7C7404AF7F154EAB7422598797E4E5106BFCF7390DE9AF5E9978A7000566FF8EE5737730108235AACBD38D8C337C71978FDC765243322C08F74B0F71B91E3C50BE3DAB7E58F0F8F187839AABB2991C1AB686975AEF90EECCBEAD74AE9C78F0A4DF2376A35A4E5894E8677A08788FEA19DEAE13C88D696C65A7426E620AA1492115E2BF0FB19741666EB |
296 | 20180413142737 2 6 100 7679 2 FBED7F3DD7CF86B0A6EEDC1930C6958C3C00695DAF4347560C5AC1AA4B22F4DC76F190D63E230EB0CB4344A370A471F17FFCA8DA3B5B0A903F9D1258370125F6C172F3EC5F56D7B8EBD07B2072C45D6141DA3CDC01C3D95DE279C5FAA1E042651028141085EB68AFAC473600F75F4A373DC234D5405DCE7AB5B5854960ABC550FCEFEE8FD578810201DE6B4A5EF616F0CBF5707466D7ECBFD488EB68AD4B2EAC889BA2B7FEFE19CD8AA2C78F61D5DA08B4BC2738E1997F951A525EEF9F668148996D1ABFD1620F9276D741A46BECC0B7868A54745E0B16589A4AA7B938AF92FCA0FC9BBC193504D7EBFEFFEC996746DC6CAD3C192D724FB51E6228915789FF18314B3EB690359ADED802F35F48EC0D9C85AA1A20A2E5CF6EB795F2CCD03284547688B1B80A07EFC31668D30836C59C958BBBF6C1EE3940CC43A9334289C872302BB70368FDAC1653AF132F3E398E9310159C839E72555FD889E4E3B05E714E44E116804BF3748F62EF46E6A05DEC58A55185E43E2310EC945004AD61945BD2AD923B7B3C69A01C0393C15B6000BF542A55274ACA20B8A6EB96FAF83E27023FE0EA9EE564959A91BE17110176FB10D1A094947A23EFDE15DD093EF477EF798BCA8F5E14F85411242BC9C9492081444490C072BE8511B3C961AAAC80477897B54BDABE78C533F2E149FA64B51936E31F126625566CAFBB57E9F36CE0DF72A45E61AB27B6D25DEA3BA35910E16BB00AD300CEE2535CE75F9411DD43943250B03EBBA60C5C788974F2F695967103045F3A90A587AEFD0613F9C8E10A273DD827A314C75C7DBCE4326191DBCB92020CDB75129BCA032B6FD59D368C3E2404B2832398E40F43ACE284A91DED8812AA23E5B5A1D36AE204C53F1C6EF0E89AD31D1552E70538451847D7332D8FCACB62A1E56C1E5643E4F7AF63C67E082AC95DCB190795FA53522FA046F1919C81A088D7A8A452124E562BE2A702139670E94524D3110B9DFF35AE73F43280600B8304FA2E776089AF2ED929695967998E29A343FF62C4CAD7618222C01735734342FD33284BE9BDA4976DA1BC3B384E6F813FCBDFA3DC57B841515836CB2B37116EB6D417BBE6AEA7604AA915530AD803DF1C13656753C1A5867F4A3AE94BA7347580EE5A6CEBD2F3EB9B7F83E7B74F38995168F08A15A4CDF5702EA9DC907FC45910586D59537582DB1D5F155BF0050866CE3087560F1F44D1F275FD2B422038F9D8643C3BEBA49938D514848AC4F68F4CF44329C7E806B911B0CB7FF0020F3277A3E2B4FF17090D012B641E24D67A962E2FE361504DB014155F074F30F52078CB31DFC51B32746A42EDBF013F9920CFB17D34F03213 | 296 | 20180924164032 2 6 100 6143 2 F35161AADD9632E3575CDA92B32D0F28F2E75A457C95BE770E9A8E8122E71DDB31C63B86B67348319F52466B6F3FED41463FAADCA6CE2901FF62D867C09A3565BFC511A060AABAD5040F94C3066EFBFED3CA9BA71864EBBE9F616FCE8F9B0C9C463E2172BA6B1EEF222E310FEC9B70FDF42104292FE772CB350DB09040ED588DA44E0607286D1D66F155FFC5607EBEB4041F705839FEDB0C03FDA40F013BAE3D02EA1256B6DB4DB0F9ED423CD6DCFFD36AA0841BB1FDAF66A453A19EB967F0ECF045FB069302CCB0C6EB52834D1A8DBDE302530510349FC21AE0EE7D5F912D6FBFDEF8A19B8B4CEF2EEE0D05F67DB8F03E564FCD7CD2A344DD1A45A7079037A7629747BE1F183775275C93F52505BA701B27FB18035A0B8D707BF1A3B3BE453FD1A21B0B7FBA7CF90B3BB9665AA33EFB1FC04F858A33E8908397B976C03F972D6C50296DF33359E0BE9209C7D333A019937EC6A26BBB0EDD75DA06CF63A6333B1786B55DC0812AB74FD5D87EE581750E238EFCC75A1EF651502D3988C29C6C37504D90F8878D2FBE7F9131F273638A1BFFF96839557C5D1BA687DF78AFAF75E7FA7214B44C04BE0F3D160071146681C7CBE9B1DB1766C1D972E836DF71D0D4CD4E396D15EE25EF1A58FAC876E2ACCC2DE8EFA8B194694524C1F73D66B8D4D0B95C9896D18FE4061A68FB322BBC155D24E7EA516F740866BB32BB55E8FECAA7BC7F9D3D347024584F8BF4A40232D6AF32E3BB753718567698ABCA6440D68AF0B4317F343FA866ECCC64E895D780300BFA2FCAAAAFA4630C37EB8546025DFDD1E3FAB56F70CC95AA0CB7E3E8F11253D80B4C072ED04FE7068C4818B52831F77C11934F97AD153C44499AF0E6C99DE5741E41EB4C3DDEA3A7C7404AF7F154EAB7422598797E4E5106BFCF7390DE9AF5E9978A7000566FF8EE5737730108235AACBD38D8C337C71978FDC765243322C08F74B0F71B91E3C50BE3DAB7E58F0F8F187839AABB2991C1AB686975AEF90EECCBEAD74AE9C78F0A4DF2376A35A4E5894E8677A08788FEA19DEAE13C88D696C65A7426E620AA1492115E2BF0FB1976CE68FB |
297 | 20180413150907 2 6 100 7679 5 FBED7F3DD7CF86B0A6EEDC1930C6958C3C00695DAF4347560C5AC1AA4B22F4DC76F190D63E230EB0CB4344A370A471F17FFCA8DA3B5B0A903F9D1258370125F6C172F3EC5F56D7B8EBD07B2072C45D6141DA3CDC01C3D95DE279C5FAA1E042651028141085EB68AFAC473600F75F4A373DC234D5405DCE7AB5B5854960ABC550FCEFEE8FD578810201DE6B4A5EF616F0CBF5707466D7ECBFD488EB68AD4B2EAC889BA2B7FEFE19CD8AA2C78F61D5DA08B4BC2738E1997F951A525EEF9F668148996D1ABFD1620F9276D741A46BECC0B7868A54745E0B16589A4AA7B938AF92FCA0FC9BBC193504D7EBFEFFEC996746DC6CAD3C192D724FB51E6228915789FF18314B3EB690359ADED802F35F48EC0D9C85AA1A20A2E5CF6EB795F2CCD03284547688B1B80A07EFC31668D30836C59C958BBBF6C1EE3940CC43A9334289C872302BB70368FDAC1653AF132F3E398E9310159C839E72555FD889E4E3B05E714E44E116804BF3748F62EF46E6A05DEC58A55185E43E2310EC945004AD61945BD2AD923B7B3C69A01C0393C15B6000BF542A55274ACA20B8A6EB96FAF83E27023FE0EA9EE564959A91BE17110176FB10D1A094947A23EFDE15DD093EF477EF798BCA8F5E14F85411242BC9C9492081444490C072BE8511B3C961AAAC80477897B54BDABE78C533F2E149FA64B51936E31F126625566CAFBB57E9F36CE0DF72A45E61AB27B6D25DEA3BA35910E16BB00AD300CEE2535CE75F9411DD43943250B03EBBA60C5C788974F2F695967103045F3A90A587AEFD0613F9C8E10A273DD827A314C75C7DBCE4326191DBCB92020CDB75129BCA032B6FD59D368C3E2404B2832398E40F43ACE284A91DED8812AA23E5B5A1D36AE204C53F1C6EF0E89AD31D1552E70538451847D7332D8FCACB62A1E56C1E5643E4F7AF63C67E082AC95DCB190795FA53522FA046F1919C81A088D7A8A452124E562BE2A702139670E94524D3110B9DFF35AE73F43280600B8304FA2E776089AF2ED929695967998E29A343FF62C4CAD7618222C01735734342FD33284BE9BDA4976DA1BC3B384E6F813FCBDFA3DC57B841515836CB2B37116EB6D417BBE6AEA7604AA915530AD803DF1C13656753C1A5867F4A3AE94BA7347580EE5A6CEBD2F3EB9B7F83E7B74F38995168F08A15A4CDF5702EA9DC907FC45910586D59537582DB1D5F155BF0050866CE3087560F1F44D1F275FD2B422038F9D8643C3BEBA49938D514848AC4F68F4CF44329C7E806B911B0CB7FF0020F3277A3E2B4FF17090D012B641E24D67A962E2FE361504DB014155F074F30F52078CB31DFC51B32746A42EDBF013F9920CFB17D35714FEF | 297 | 20180924164811 2 6 100 6143 5 F35161AADD9632E3575CDA92B32D0F28F2E75A457C95BE770E9A8E8122E71DDB31C63B86B67348319F52466B6F3FED41463FAADCA6CE2901FF62D867C09A3565BFC511A060AABAD5040F94C3066EFBFED3CA9BA71864EBBE9F616FCE8F9B0C9C463E2172BA6B1EEF222E310FEC9B70FDF42104292FE772CB350DB09040ED588DA44E0607286D1D66F155FFC5607EBEB4041F705839FEDB0C03FDA40F013BAE3D02EA1256B6DB4DB0F9ED423CD6DCFFD36AA0841BB1FDAF66A453A19EB967F0ECF045FB069302CCB0C6EB52834D1A8DBDE302530510349FC21AE0EE7D5F912D6FBFDEF8A19B8B4CEF2EEE0D05F67DB8F03E564FCD7CD2A344DD1A45A7079037A7629747BE1F183775275C93F52505BA701B27FB18035A0B8D707BF1A3B3BE453FD1A21B0B7FBA7CF90B3BB9665AA33EFB1FC04F858A33E8908397B976C03F972D6C50296DF33359E0BE9209C7D333A019937EC6A26BBB0EDD75DA06CF63A6333B1786B55DC0812AB74FD5D87EE581750E238EFCC75A1EF651502D3988C29C6C37504D90F8878D2FBE7F9131F273638A1BFFF96839557C5D1BA687DF78AFAF75E7FA7214B44C04BE0F3D160071146681C7CBE9B1DB1766C1D972E836DF71D0D4CD4E396D15EE25EF1A58FAC876E2ACCC2DE8EFA8B194694524C1F73D66B8D4D0B95C9896D18FE4061A68FB322BBC155D24E7EA516F740866BB32BB55E8FECAA7BC7F9D3D347024584F8BF4A40232D6AF32E3BB753718567698ABCA6440D68AF0B4317F343FA866ECCC64E895D780300BFA2FCAAAAFA4630C37EB8546025DFDD1E3FAB56F70CC95AA0CB7E3E8F11253D80B4C072ED04FE7068C4818B52831F77C11934F97AD153C44499AF0E6C99DE5741E41EB4C3DDEA3A7C7404AF7F154EAB7422598797E4E5106BFCF7390DE9AF5E9978A7000566FF8EE5737730108235AACBD38D8C337C71978FDC765243322C08F74B0F71B91E3C50BE3DAB7E58F0F8F187839AABB2991C1AB686975AEF90EECCBEAD74AE9C78F0A4DF2376A35A4E5894E8677A08788FEA19DEAE13C88D696C65A7426E620AA1492115E2BF0FB1976F40FA7 |
298 | 20180413164654 2 6 100 7679 2 FBED7F3DD7CF86B0A6EEDC1930C6958C3C00695DAF4347560C5AC1AA4B22F4DC76F190D63E230EB0CB4344A370A471F17FFCA8DA3B5B0A903F9D1258370125F6C172F3EC5F56D7B8EBD07B2072C45D6141DA3CDC01C3D95DE279C5FAA1E042651028141085EB68AFAC473600F75F4A373DC234D5405DCE7AB5B5854960ABC550FCEFEE8FD578810201DE6B4A5EF616F0CBF5707466D7ECBFD488EB68AD4B2EAC889BA2B7FEFE19CD8AA2C78F61D5DA08B4BC2738E1997F951A525EEF9F668148996D1ABFD1620F9276D741A46BECC0B7868A54745E0B16589A4AA7B938AF92FCA0FC9BBC193504D7EBFEFFEC996746DC6CAD3C192D724FB51E6228915789FF18314B3EB690359ADED802F35F48EC0D9C85AA1A20A2E5CF6EB795F2CCD03284547688B1B80A07EFC31668D30836C59C958BBBF6C1EE3940CC43A9334289C872302BB70368FDAC1653AF132F3E398E9310159C839E72555FD889E4E3B05E714E44E116804BF3748F62EF46E6A05DEC58A55185E43E2310EC945004AD61945BD2AD923B7B3C69A01C0393C15B6000BF542A55274ACA20B8A6EB96FAF83E27023FE0EA9EE564959A91BE17110176FB10D1A094947A23EFDE15DD093EF477EF798BCA8F5E14F85411242BC9C9492081444490C072BE8511B3C961AAAC80477897B54BDABE78C533F2E149FA64B51936E31F126625566CAFBB57E9F36CE0DF72A45E61AB27B6D25DEA3BA35910E16BB00AD300CEE2535CE75F9411DD43943250B03EBBA60C5C788974F2F695967103045F3A90A587AEFD0613F9C8E10A273DD827A314C75C7DBCE4326191DBCB92020CDB75129BCA032B6FD59D368C3E2404B2832398E40F43ACE284A91DED8812AA23E5B5A1D36AE204C53F1C6EF0E89AD31D1552E70538451847D7332D8FCACB62A1E56C1E5643E4F7AF63C67E082AC95DCB190795FA53522FA046F1919C81A088D7A8A452124E562BE2A702139670E94524D3110B9DFF35AE73F43280600B8304FA2E776089AF2ED929695967998E29A343FF62C4CAD7618222C01735734342FD33284BE9BDA4976DA1BC3B384E6F813FCBDFA3DC57B841515836CB2B37116EB6D417BBE6AEA7604AA915530AD803DF1C13656753C1A5867F4A3AE94BA7347580EE5A6CEBD2F3EB9B7F83E7B74F38995168F08A15A4CDF5702EA9DC907FC45910586D59537582DB1D5F155BF0050866CE3087560F1F44D1F275FD2B422038F9D8643C3BEBA49938D514848AC4F68F4CF44329C7E806B911B0CB7FF0020F3277A3E2B4FF17090D012B641E24D67A962E2FE361504DB014155F074F30F52078CB31DFC51B32746A42EDBF013F9920CFB17D36BB8D1B | 298 | 20180924172248 2 6 100 6143 2 F35161AADD9632E3575CDA92B32D0F28F2E75A457C95BE770E9A8E8122E71DDB31C63B86B67348319F52466B6F3FED41463FAADCA6CE2901FF62D867C09A3565BFC511A060AABAD5040F94C3066EFBFED3CA9BA71864EBBE9F616FCE8F9B0C9C463E2172BA6B1EEF222E310FEC9B70FDF42104292FE772CB350DB09040ED588DA44E0607286D1D66F155FFC5607EBEB4041F705839FEDB0C03FDA40F013BAE3D02EA1256B6DB4DB0F9ED423CD6DCFFD36AA0841BB1FDAF66A453A19EB967F0ECF045FB069302CCB0C6EB52834D1A8DBDE302530510349FC21AE0EE7D5F912D6FBFDEF8A19B8B4CEF2EEE0D05F67DB8F03E564FCD7CD2A344DD1A45A7079037A7629747BE1F183775275C93F52505BA701B27FB18035A0B8D707BF1A3B3BE453FD1A21B0B7FBA7CF90B3BB9665AA33EFB1FC04F858A33E8908397B976C03F972D6C50296DF33359E0BE9209C7D333A019937EC6A26BBB0EDD75DA06CF63A6333B1786B55DC0812AB74FD5D87EE581750E238EFCC75A1EF651502D3988C29C6C37504D90F8878D2FBE7F9131F273638A1BFFF96839557C5D1BA687DF78AFAF75E7FA7214B44C04BE0F3D160071146681C7CBE9B1DB1766C1D972E836DF71D0D4CD4E396D15EE25EF1A58FAC876E2ACCC2DE8EFA8B194694524C1F73D66B8D4D0B95C9896D18FE4061A68FB322BBC155D24E7EA516F740866BB32BB55E8FECAA7BC7F9D3D347024584F8BF4A40232D6AF32E3BB753718567698ABCA6440D68AF0B4317F343FA866ECCC64E895D780300BFA2FCAAAAFA4630C37EB8546025DFDD1E3FAB56F70CC95AA0CB7E3E8F11253D80B4C072ED04FE7068C4818B52831F77C11934F97AD153C44499AF0E6C99DE5741E41EB4C3DDEA3A7C7404AF7F154EAB7422598797E4E5106BFCF7390DE9AF5E9978A7000566FF8EE5737730108235AACBD38D8C337C71978FDC765243322C08F74B0F71B91E3C50BE3DAB7E58F0F8F187839AABB2991C1AB686975AEF90EECCBEAD74AE9C78F0A4DF2376A35A4E5894E8677A08788FEA19DEAE13C88D696C65A7426E620AA1492115E2BF0FB1977BCD9FB |
299 | 20180413202724 2 6 100 7679 2 FBED7F3DD7CF86B0A6EEDC1930C6958C3C00695DAF4347560C5AC1AA4B22F4DC76F190D63E230EB0CB4344A370A471F17FFCA8DA3B5B0A903F9D1258370125F6C172F3EC5F56D7B8EBD07B2072C45D6141DA3CDC01C3D95DE279C5FAA1E042651028141085EB68AFAC473600F75F4A373DC234D5405DCE7AB5B5854960ABC550FCEFEE8FD578810201DE6B4A5EF616F0CBF5707466D7ECBFD488EB68AD4B2EAC889BA2B7FEFE19CD8AA2C78F61D5DA08B4BC2738E1997F951A525EEF9F668148996D1ABFD1620F9276D741A46BECC0B7868A54745E0B16589A4AA7B938AF92FCA0FC9BBC193504D7EBFEFFEC996746DC6CAD3C192D724FB51E6228915789FF18314B3EB690359ADED802F35F48EC0D9C85AA1A20A2E5CF6EB795F2CCD03284547688B1B80A07EFC31668D30836C59C958BBBF6C1EE3940CC43A9334289C872302BB70368FDAC1653AF132F3E398E9310159C839E72555FD889E4E3B05E714E44E116804BF3748F62EF46E6A05DEC58A55185E43E2310EC945004AD61945BD2AD923B7B3C69A01C0393C15B6000BF542A55274ACA20B8A6EB96FAF83E27023FE0EA9EE564959A91BE17110176FB10D1A094947A23EFDE15DD093EF477EF798BCA8F5E14F85411242BC9C9492081444490C072BE8511B3C961AAAC80477897B54BDABE78C533F2E149FA64B51936E31F126625566CAFBB57E9F36CE0DF72A45E61AB27B6D25DEA3BA35910E16BB00AD300CEE2535CE75F9411DD43943250B03EBBA60C5C788974F2F695967103045F3A90A587AEFD0613F9C8E10A273DD827A314C75C7DBCE4326191DBCB92020CDB75129BCA032B6FD59D368C3E2404B2832398E40F43ACE284A91DED8812AA23E5B5A1D36AE204C53F1C6EF0E89AD31D1552E70538451847D7332D8FCACB62A1E56C1E5643E4F7AF63C67E082AC95DCB190795FA53522FA046F1919C81A088D7A8A452124E562BE2A702139670E94524D3110B9DFF35AE73F43280600B8304FA2E776089AF2ED929695967998E29A343FF62C4CAD7618222C01735734342FD33284BE9BDA4976DA1BC3B384E6F813FCBDFA3DC57B841515836CB2B37116EB6D417BBE6AEA7604AA915530AD803DF1C13656753C1A5867F4A3AE94BA7347580EE5A6CEBD2F3EB9B7F83E7B74F38995168F08A15A4CDF5702EA9DC907FC45910586D59537582DB1D5F155BF0050866CE3087560F1F44D1F275FD2B422038F9D8643C3BEBA49938D514848AC4F68F4CF44329C7E806B911B0CB7FF0020F3277A3E2B4FF17090D012B641E24D67A962E2FE361504DB014155F074F30F52078CB31DFC51B32746A42EDBF013F9920CFB17D39A4E13B | 299 | 20180924193420 2 6 100 6143 5 F35161AADD9632E3575CDA92B32D0F28F2E75A457C95BE770E9A8E8122E71DDB31C63B86B67348319F52466B6F3FED41463FAADCA6CE2901FF62D867C09A3565BFC511A060AABAD5040F94C3066EFBFED3CA9BA71864EBBE9F616FCE8F9B0C9C463E2172BA6B1EEF222E310FEC9B70FDF42104292FE772CB350DB09040ED588DA44E0607286D1D66F155FFC5607EBEB4041F705839FEDB0C03FDA40F013BAE3D02EA1256B6DB4DB0F9ED423CD6DCFFD36AA0841BB1FDAF66A453A19EB967F0ECF045FB069302CCB0C6EB52834D1A8DBDE302530510349FC21AE0EE7D5F912D6FBFDEF8A19B8B4CEF2EEE0D05F67DB8F03E564FCD7CD2A344DD1A45A7079037A7629747BE1F183775275C93F52505BA701B27FB18035A0B8D707BF1A3B3BE453FD1A21B0B7FBA7CF90B3BB9665AA33EFB1FC04F858A33E8908397B976C03F972D6C50296DF33359E0BE9209C7D333A019937EC6A26BBB0EDD75DA06CF63A6333B1786B55DC0812AB74FD5D87EE581750E238EFCC75A1EF651502D3988C29C6C37504D90F8878D2FBE7F9131F273638A1BFFF96839557C5D1BA687DF78AFAF75E7FA7214B44C04BE0F3D160071146681C7CBE9B1DB1766C1D972E836DF71D0D4CD4E396D15EE25EF1A58FAC876E2ACCC2DE8EFA8B194694524C1F73D66B8D4D0B95C9896D18FE4061A68FB322BBC155D24E7EA516F740866BB32BB55E8FECAA7BC7F9D3D347024584F8BF4A40232D6AF32E3BB753718567698ABCA6440D68AF0B4317F343FA866ECCC64E895D780300BFA2FCAAAAFA4630C37EB8546025DFDD1E3FAB56F70CC95AA0CB7E3E8F11253D80B4C072ED04FE7068C4818B52831F77C11934F97AD153C44499AF0E6C99DE5741E41EB4C3DDEA3A7C7404AF7F154EAB7422598797E4E5106BFCF7390DE9AF5E9978A7000566FF8EE5737730108235AACBD38D8C337C71978FDC765243322C08F74B0F71B91E3C50BE3DAB7E58F0F8F187839AABB2991C1AB686975AEF90EECCBEAD74AE9C78F0A4DF2376A35A4E5894E8677A08788FEA19DEAE13C88D696C65A7426E620AA1492115E2BF0FB197ACC31C7 |
300 | 20180413203949 2 6 100 7679 2 FBED7F3DD7CF86B0A6EEDC1930C6958C3C00695DAF4347560C5AC1AA4B22F4DC76F190D63E230EB0CB4344A370A471F17FFCA8DA3B5B0A903F9D1258370125F6C172F3EC5F56D7B8EBD07B2072C45D6141DA3CDC01C3D95DE279C5FAA1E042651028141085EB68AFAC473600F75F4A373DC234D5405DCE7AB5B5854960ABC550FCEFEE8FD578810201DE6B4A5EF616F0CBF5707466D7ECBFD488EB68AD4B2EAC889BA2B7FEFE19CD8AA2C78F61D5DA08B4BC2738E1997F951A525EEF9F668148996D1ABFD1620F9276D741A46BECC0B7868A54745E0B16589A4AA7B938AF92FCA0FC9BBC193504D7EBFEFFEC996746DC6CAD3C192D724FB51E6228915789FF18314B3EB690359ADED802F35F48EC0D9C85AA1A20A2E5CF6EB795F2CCD03284547688B1B80A07EFC31668D30836C59C958BBBF6C1EE3940CC43A9334289C872302BB70368FDAC1653AF132F3E398E9310159C839E72555FD889E4E3B05E714E44E116804BF3748F62EF46E6A05DEC58A55185E43E2310EC945004AD61945BD2AD923B7B3C69A01C0393C15B6000BF542A55274ACA20B8A6EB96FAF83E27023FE0EA9EE564959A91BE17110176FB10D1A094947A23EFDE15DD093EF477EF798BCA8F5E14F85411242BC9C9492081444490C072BE8511B3C961AAAC80477897B54BDABE78C533F2E149FA64B51936E31F126625566CAFBB57E9F36CE0DF72A45E61AB27B6D25DEA3BA35910E16BB00AD300CEE2535CE75F9411DD43943250B03EBBA60C5C788974F2F695967103045F3A90A587AEFD0613F9C8E10A273DD827A314C75C7DBCE4326191DBCB92020CDB75129BCA032B6FD59D368C3E2404B2832398E40F43ACE284A91DED8812AA23E5B5A1D36AE204C53F1C6EF0E89AD31D1552E70538451847D7332D8FCACB62A1E56C1E5643E4F7AF63C67E082AC95DCB190795FA53522FA046F1919C81A088D7A8A452124E562BE2A702139670E94524D3110B9DFF35AE73F43280600B8304FA2E776089AF2ED929695967998E29A343FF62C4CAD7618222C01735734342FD33284BE9BDA4976DA1BC3B384E6F813FCBDFA3DC57B841515836CB2B37116EB6D417BBE6AEA7604AA915530AD803DF1C13656753C1A5867F4A3AE94BA7347580EE5A6CEBD2F3EB9B7F83E7B74F38995168F08A15A4CDF5702EA9DC907FC45910586D59537582DB1D5F155BF0050866CE3087560F1F44D1F275FD2B422038F9D8643C3BEBA49938D514848AC4F68F4CF44329C7E806B911B0CB7FF0020F3277A3E2B4FF17090D012B641E24D67A962E2FE361504DB014155F074F30F52078CB31DFC51B32746A42EDBF013F9920CFB17D39C6A4FB | 300 | 20180924195813 2 6 100 6143 2 F35161AADD9632E3575CDA92B32D0F28F2E75A457C95BE770E9A8E8122E71DDB31C63B86B67348319F52466B6F3FED41463FAADCA6CE2901FF62D867C09A3565BFC511A060AABAD5040F94C3066EFBFED3CA9BA71864EBBE9F616FCE8F9B0C9C463E2172BA6B1EEF222E310FEC9B70FDF42104292FE772CB350DB09040ED588DA44E0607286D1D66F155FFC5607EBEB4041F705839FEDB0C03FDA40F013BAE3D02EA1256B6DB4DB0F9ED423CD6DCFFD36AA0841BB1FDAF66A453A19EB967F0ECF045FB069302CCB0C6EB52834D1A8DBDE302530510349FC21AE0EE7D5F912D6FBFDEF8A19B8B4CEF2EEE0D05F67DB8F03E564FCD7CD2A344DD1A45A7079037A7629747BE1F183775275C93F52505BA701B27FB18035A0B8D707BF1A3B3BE453FD1A21B0B7FBA7CF90B3BB9665AA33EFB1FC04F858A33E8908397B976C03F972D6C50296DF33359E0BE9209C7D333A019937EC6A26BBB0EDD75DA06CF63A6333B1786B55DC0812AB74FD5D87EE581750E238EFCC75A1EF651502D3988C29C6C37504D90F8878D2FBE7F9131F273638A1BFFF96839557C5D1BA687DF78AFAF75E7FA7214B44C04BE0F3D160071146681C7CBE9B1DB1766C1D972E836DF71D0D4CD4E396D15EE25EF1A58FAC876E2ACCC2DE8EFA8B194694524C1F73D66B8D4D0B95C9896D18FE4061A68FB322BBC155D24E7EA516F740866BB32BB55E8FECAA7BC7F9D3D347024584F8BF4A40232D6AF32E3BB753718567698ABCA6440D68AF0B4317F343FA866ECCC64E895D780300BFA2FCAAAAFA4630C37EB8546025DFDD1E3FAB56F70CC95AA0CB7E3E8F11253D80B4C072ED04FE7068C4818B52831F77C11934F97AD153C44499AF0E6C99DE5741E41EB4C3DDEA3A7C7404AF7F154EAB7422598797E4E5106BFCF7390DE9AF5E9978A7000566FF8EE5737730108235AACBD38D8C337C71978FDC765243322C08F74B0F71B91E3C50BE3DAB7E58F0F8F187839AABB2991C1AB686975AEF90EECCBEAD74AE9C78F0A4DF2376A35A4E5894E8677A08788FEA19DEAE13C88D696C65A7426E620AA1492115E2BF0FB197B54F0A3 |
301 | 20180413211909 2 6 100 7679 2 FBED7F3DD7CF86B0A6EEDC1930C6958C3C00695DAF4347560C5AC1AA4B22F4DC76F190D63E230EB0CB4344A370A471F17FFCA8DA3B5B0A903F9D1258370125F6C172F3EC5F56D7B8EBD07B2072C45D6141DA3CDC01C3D95DE279C5FAA1E042651028141085EB68AFAC473600F75F4A373DC234D5405DCE7AB5B5854960ABC550FCEFEE8FD578810201DE6B4A5EF616F0CBF5707466D7ECBFD488EB68AD4B2EAC889BA2B7FEFE19CD8AA2C78F61D5DA08B4BC2738E1997F951A525EEF9F668148996D1ABFD1620F9276D741A46BECC0B7868A54745E0B16589A4AA7B938AF92FCA0FC9BBC193504D7EBFEFFEC996746DC6CAD3C192D724FB51E6228915789FF18314B3EB690359ADED802F35F48EC0D9C85AA1A20A2E5CF6EB795F2CCD03284547688B1B80A07EFC31668D30836C59C958BBBF6C1EE3940CC43A9334289C872302BB70368FDAC1653AF132F3E398E9310159C839E72555FD889E4E3B05E714E44E116804BF3748F62EF46E6A05DEC58A55185E43E2310EC945004AD61945BD2AD923B7B3C69A01C0393C15B6000BF542A55274ACA20B8A6EB96FAF83E27023FE0EA9EE564959A91BE17110176FB10D1A094947A23EFDE15DD093EF477EF798BCA8F5E14F85411242BC9C9492081444490C072BE8511B3C961AAAC80477897B54BDABE78C533F2E149FA64B51936E31F126625566CAFBB57E9F36CE0DF72A45E61AB27B6D25DEA3BA35910E16BB00AD300CEE2535CE75F9411DD43943250B03EBBA60C5C788974F2F695967103045F3A90A587AEFD0613F9C8E10A273DD827A314C75C7DBCE4326191DBCB92020CDB75129BCA032B6FD59D368C3E2404B2832398E40F43ACE284A91DED8812AA23E5B5A1D36AE204C53F1C6EF0E89AD31D1552E70538451847D7332D8FCACB62A1E56C1E5643E4F7AF63C67E082AC95DCB190795FA53522FA046F1919C81A088D7A8A452124E562BE2A702139670E94524D3110B9DFF35AE73F43280600B8304FA2E776089AF2ED929695967998E29A343FF62C4CAD7618222C01735734342FD33284BE9BDA4976DA1BC3B384E6F813FCBDFA3DC57B841515836CB2B37116EB6D417BBE6AEA7604AA915530AD803DF1C13656753C1A5867F4A3AE94BA7347580EE5A6CEBD2F3EB9B7F83E7B74F38995168F08A15A4CDF5702EA9DC907FC45910586D59537582DB1D5F155BF0050866CE3087560F1F44D1F275FD2B422038F9D8643C3BEBA49938D514848AC4F68F4CF44329C7E806B911B0CB7FF0020F3277A3E2B4FF17090D012B641E24D67A962E2FE361504DB014155F074F30F52078CB31DFC51B32746A42EDBF013F9920CFB17D3A44F883 | 301 | 20180924213953 2 6 100 6143 5 F35161AADD9632E3575CDA92B32D0F28F2E75A457C95BE770E9A8E8122E71DDB31C63B86B67348319F52466B6F3FED41463FAADCA6CE2901FF62D867C09A3565BFC511A060AABAD5040F94C3066EFBFED3CA9BA71864EBBE9F616FCE8F9B0C9C463E2172BA6B1EEF222E310FEC9B70FDF42104292FE772CB350DB09040ED588DA44E0607286D1D66F155FFC5607EBEB4041F705839FEDB0C03FDA40F013BAE3D02EA1256B6DB4DB0F9ED423CD6DCFFD36AA0841BB1FDAF66A453A19EB967F0ECF045FB069302CCB0C6EB52834D1A8DBDE302530510349FC21AE0EE7D5F912D6FBFDEF8A19B8B4CEF2EEE0D05F67DB8F03E564FCD7CD2A344DD1A45A7079037A7629747BE1F183775275C93F52505BA701B27FB18035A0B8D707BF1A3B3BE453FD1A21B0B7FBA7CF90B3BB9665AA33EFB1FC04F858A33E8908397B976C03F972D6C50296DF33359E0BE9209C7D333A019937EC6A26BBB0EDD75DA06CF63A6333B1786B55DC0812AB74FD5D87EE581750E238EFCC75A1EF651502D3988C29C6C37504D90F8878D2FBE7F9131F273638A1BFFF96839557C5D1BA687DF78AFAF75E7FA7214B44C04BE0F3D160071146681C7CBE9B1DB1766C1D972E836DF71D0D4CD4E396D15EE25EF1A58FAC876E2ACCC2DE8EFA8B194694524C1F73D66B8D4D0B95C9896D18FE4061A68FB322BBC155D24E7EA516F740866BB32BB55E8FECAA7BC7F9D3D347024584F8BF4A40232D6AF32E3BB753718567698ABCA6440D68AF0B4317F343FA866ECCC64E895D780300BFA2FCAAAAFA4630C37EB8546025DFDD1E3FAB56F70CC95AA0CB7E3E8F11253D80B4C072ED04FE7068C4818B52831F77C11934F97AD153C44499AF0E6C99DE5741E41EB4C3DDEA3A7C7404AF7F154EAB7422598797E4E5106BFCF7390DE9AF5E9978A7000566FF8EE5737730108235AACBD38D8C337C71978FDC765243322C08F74B0F71B91E3C50BE3DAB7E58F0F8F187839AABB2991C1AB686975AEF90EECCBEAD74AE9C78F0A4DF2376A35A4E5894E8677A08788FEA19DEAE13C88D696C65A7426E620AA1492115E2BF0FB197DA923D7 |
302 | 20180414010718 2 6 100 7679 5 FBED7F3DD7CF86B0A6EEDC1930C6958C3C00695DAF4347560C5AC1AA4B22F4DC76F190D63E230EB0CB4344A370A471F17FFCA8DA3B5B0A903F9D1258370125F6C172F3EC5F56D7B8EBD07B2072C45D6141DA3CDC01C3D95DE279C5FAA1E042651028141085EB68AFAC473600F75F4A373DC234D5405DCE7AB5B5854960ABC550FCEFEE8FD578810201DE6B4A5EF616F0CBF5707466D7ECBFD488EB68AD4B2EAC889BA2B7FEFE19CD8AA2C78F61D5DA08B4BC2738E1997F951A525EEF9F668148996D1ABFD1620F9276D741A46BECC0B7868A54745E0B16589A4AA7B938AF92FCA0FC9BBC193504D7EBFEFFEC996746DC6CAD3C192D724FB51E6228915789FF18314B3EB690359ADED802F35F48EC0D9C85AA1A20A2E5CF6EB795F2CCD03284547688B1B80A07EFC31668D30836C59C958BBBF6C1EE3940CC43A9334289C872302BB70368FDAC1653AF132F3E398E9310159C839E72555FD889E4E3B05E714E44E116804BF3748F62EF46E6A05DEC58A55185E43E2310EC945004AD61945BD2AD923B7B3C69A01C0393C15B6000BF542A55274ACA20B8A6EB96FAF83E27023FE0EA9EE564959A91BE17110176FB10D1A094947A23EFDE15DD093EF477EF798BCA8F5E14F85411242BC9C9492081444490C072BE8511B3C961AAAC80477897B54BDABE78C533F2E149FA64B51936E31F126625566CAFBB57E9F36CE0DF72A45E61AB27B6D25DEA3BA35910E16BB00AD300CEE2535CE75F9411DD43943250B03EBBA60C5C788974F2F695967103045F3A90A587AEFD0613F9C8E10A273DD827A314C75C7DBCE4326191DBCB92020CDB75129BCA032B6FD59D368C3E2404B2832398E40F43ACE284A91DED8812AA23E5B5A1D36AE204C53F1C6EF0E89AD31D1552E70538451847D7332D8FCACB62A1E56C1E5643E4F7AF63C67E082AC95DCB190795FA53522FA046F1919C81A088D7A8A452124E562BE2A702139670E94524D3110B9DFF35AE73F43280600B8304FA2E776089AF2ED929695967998E29A343FF62C4CAD7618222C01735734342FD33284BE9BDA4976DA1BC3B384E6F813FCBDFA3DC57B841515836CB2B37116EB6D417BBE6AEA7604AA915530AD803DF1C13656753C1A5867F4A3AE94BA7347580EE5A6CEBD2F3EB9B7F83E7B74F38995168F08A15A4CDF5702EA9DC907FC45910586D59537582DB1D5F155BF0050866CE3087560F1F44D1F275FD2B422038F9D8643C3BEBA49938D514848AC4F68F4CF44329C7E806B911B0CB7FF0020F3277A3E2B4FF17090D012B641E24D67A962E2FE361504DB014155F074F30F52078CB31DFC51B32746A42EDBF013F9920CFB17D3D3D3257 | 302 | 20180924220006 2 6 100 6143 2 F35161AADD9632E3575CDA92B32D0F28F2E75A457C95BE770E9A8E8122E71DDB31C63B86B67348319F52466B6F3FED41463FAADCA6CE2901FF62D867C09A3565BFC511A060AABAD5040F94C3066EFBFED3CA9BA71864EBBE9F616FCE8F9B0C9C463E2172BA6B1EEF222E310FEC9B70FDF42104292FE772CB350DB09040ED588DA44E0607286D1D66F155FFC5607EBEB4041F705839FEDB0C03FDA40F013BAE3D02EA1256B6DB4DB0F9ED423CD6DCFFD36AA0841BB1FDAF66A453A19EB967F0ECF045FB069302CCB0C6EB52834D1A8DBDE302530510349FC21AE0EE7D5F912D6FBFDEF8A19B8B4CEF2EEE0D05F67DB8F03E564FCD7CD2A344DD1A45A7079037A7629747BE1F183775275C93F52505BA701B27FB18035A0B8D707BF1A3B3BE453FD1A21B0B7FBA7CF90B3BB9665AA33EFB1FC04F858A33E8908397B976C03F972D6C50296DF33359E0BE9209C7D333A019937EC6A26BBB0EDD75DA06CF63A6333B1786B55DC0812AB74FD5D87EE581750E238EFCC75A1EF651502D3988C29C6C37504D90F8878D2FBE7F9131F273638A1BFFF96839557C5D1BA687DF78AFAF75E7FA7214B44C04BE0F3D160071146681C7CBE9B1DB1766C1D972E836DF71D0D4CD4E396D15EE25EF1A58FAC876E2ACCC2DE8EFA8B194694524C1F73D66B8D4D0B95C9896D18FE4061A68FB322BBC155D24E7EA516F740866BB32BB55E8FECAA7BC7F9D3D347024584F8BF4A40232D6AF32E3BB753718567698ABCA6440D68AF0B4317F343FA866ECCC64E895D780300BFA2FCAAAAFA4630C37EB8546025DFDD1E3FAB56F70CC95AA0CB7E3E8F11253D80B4C072ED04FE7068C4818B52831F77C11934F97AD153C44499AF0E6C99DE5741E41EB4C3DDEA3A7C7404AF7F154EAB7422598797E4E5106BFCF7390DE9AF5E9978A7000566FF8EE5737730108235AACBD38D8C337C71978FDC765243322C08F74B0F71B91E3C50BE3DAB7E58F0F8F187839AABB2991C1AB686975AEF90EECCBEAD74AE9C78F0A4DF2376A35A4E5894E8677A08788FEA19DEAE13C88D696C65A7426E620AA1492115E2BF0FB197E18BC83 |
303 | 20180414125221 2 6 100 7679 2 FBED7F3DD7CF86B0A6EEDC1930C6958C3C00695DAF4347560C5AC1AA4B22F4DC76F190D63E230EB0CB4344A370A471F17FFCA8DA3B5B0A903F9D1258370125F6C172F3EC5F56D7B8EBD07B2072C45D6141DA3CDC01C3D95DE279C5FAA1E042651028141085EB68AFAC473600F75F4A373DC234D5405DCE7AB5B5854960ABC550FCEFEE8FD578810201DE6B4A5EF616F0CBF5707466D7ECBFD488EB68AD4B2EAC889BA2B7FEFE19CD8AA2C78F61D5DA08B4BC2738E1997F951A525EEF9F668148996D1ABFD1620F9276D741A46BECC0B7868A54745E0B16589A4AA7B938AF92FCA0FC9BBC193504D7EBFEFFEC996746DC6CAD3C192D724FB51E6228915789FF18314B3EB690359ADED802F35F48EC0D9C85AA1A20A2E5CF6EB795F2CCD03284547688B1B80A07EFC31668D30836C59C958BBBF6C1EE3940CC43A9334289C872302BB70368FDAC1653AF132F3E398E9310159C839E72555FD889E4E3B05E714E44E116804BF3748F62EF46E6A05DEC58A55185E43E2310EC945004AD61945BD2AD923B7B3C69A01C0393C15B6000BF542A55274ACA20B8A6EB96FAF83E27023FE0EA9EE564959A91BE17110176FB10D1A094947A23EFDE15DD093EF477EF798BCA8F5E14F85411242BC9C9492081444490C072BE8511B3C961AAAC80477897B54BDABE78C533F2E149FA64B51936E31F126625566CAFBB57E9F36CE0DF72A45E61AB27B6D25DEA3BA35910E16BB00AD300CEE2535CE75F9411DD43943250B03EBBA60C5C788974F2F695967103045F3A90A587AEFD0613F9C8E10A273DD827A314C75C7DBCE4326191DBCB92020CDB75129BCA032B6FD59D368C3E2404B2832398E40F43ACE284A91DED8812AA23E5B5A1D36AE204C53F1C6EF0E89AD31D1552E70538451847D7332D8FCACB62A1E56C1E5643E4F7AF63C67E082AC95DCB190795FA53522FA046F1919C81A088D7A8A452124E562BE2A702139670E94524D3110B9DFF35AE73F43280600B8304FA2E776089AF2ED929695967998E29A343FF62C4CAD7618222C01735734342FD33284BE9BDA4976DA1BC3B384E6F813FCBDFA3DC57B841515836CB2B37116EB6D417BBE6AEA7604AA915530AD803DF1C13656753C1A5867F4A3AE94BA7347580EE5A6CEBD2F3EB9B7F83E7B74F38995168F08A15A4CDF5702EA9DC907FC45910586D59537582DB1D5F155BF0050866CE3087560F1F44D1F275FD2B422038F9D8643C3BEBA49938D514848AC4F68F4CF44329C7E806B911B0CB7FF0020F3277A3E2B4FF17090D012B641E24D67A962E2FE361504DB014155F074F30F52078CB31DFC51B32746A42EDBF013F9920CFB17D467C1523 | 303 | 20180924221925 2 6 100 6143 5 F35161AADD9632E3575CDA92B32D0F28F2E75A457C95BE770E9A8E8122E71DDB31C63B86B67348319F52466B6F3FED41463FAADCA6CE2901FF62D867C09A3565BFC511A060AABAD5040F94C3066EFBFED3CA9BA71864EBBE9F616FCE8F9B0C9C463E2172BA6B1EEF222E310FEC9B70FDF42104292FE772CB350DB09040ED588DA44E0607286D1D66F155FFC5607EBEB4041F705839FEDB0C03FDA40F013BAE3D02EA1256B6DB4DB0F9ED423CD6DCFFD36AA0841BB1FDAF66A453A19EB967F0ECF045FB069302CCB0C6EB52834D1A8DBDE302530510349FC21AE0EE7D5F912D6FBFDEF8A19B8B4CEF2EEE0D05F67DB8F03E564FCD7CD2A344DD1A45A7079037A7629747BE1F183775275C93F52505BA701B27FB18035A0B8D707BF1A3B3BE453FD1A21B0B7FBA7CF90B3BB9665AA33EFB1FC04F858A33E8908397B976C03F972D6C50296DF33359E0BE9209C7D333A019937EC6A26BBB0EDD75DA06CF63A6333B1786B55DC0812AB74FD5D87EE581750E238EFCC75A1EF651502D3988C29C6C37504D90F8878D2FBE7F9131F273638A1BFFF96839557C5D1BA687DF78AFAF75E7FA7214B44C04BE0F3D160071146681C7CBE9B1DB1766C1D972E836DF71D0D4CD4E396D15EE25EF1A58FAC876E2ACCC2DE8EFA8B194694524C1F73D66B8D4D0B95C9896D18FE4061A68FB322BBC155D24E7EA516F740866BB32BB55E8FECAA7BC7F9D3D347024584F8BF4A40232D6AF32E3BB753718567698ABCA6440D68AF0B4317F343FA866ECCC64E895D780300BFA2FCAAAAFA4630C37EB8546025DFDD1E3FAB56F70CC95AA0CB7E3E8F11253D80B4C072ED04FE7068C4818B52831F77C11934F97AD153C44499AF0E6C99DE5741E41EB4C3DDEA3A7C7404AF7F154EAB7422598797E4E5106BFCF7390DE9AF5E9978A7000566FF8EE5737730108235AACBD38D8C337C71978FDC765243322C08F74B0F71B91E3C50BE3DAB7E58F0F8F187839AABB2991C1AB686975AEF90EECCBEAD74AE9C78F0A4DF2376A35A4E5894E8677A08788FEA19DEAE13C88D696C65A7426E620AA1492115E2BF0FB197E83B0E7 |
304 | 20180414181319 2 6 100 7679 2 FBED7F3DD7CF86B0A6EEDC1930C6958C3C00695DAF4347560C5AC1AA4B22F4DC76F190D63E230EB0CB4344A370A471F17FFCA8DA3B5B0A903F9D1258370125F6C172F3EC5F56D7B8EBD07B2072C45D6141DA3CDC01C3D95DE279C5FAA1E042651028141085EB68AFAC473600F75F4A373DC234D5405DCE7AB5B5854960ABC550FCEFEE8FD578810201DE6B4A5EF616F0CBF5707466D7ECBFD488EB68AD4B2EAC889BA2B7FEFE19CD8AA2C78F61D5DA08B4BC2738E1997F951A525EEF9F668148996D1ABFD1620F9276D741A46BECC0B7868A54745E0B16589A4AA7B938AF92FCA0FC9BBC193504D7EBFEFFEC996746DC6CAD3C192D724FB51E6228915789FF18314B3EB690359ADED802F35F48EC0D9C85AA1A20A2E5CF6EB795F2CCD03284547688B1B80A07EFC31668D30836C59C958BBBF6C1EE3940CC43A9334289C872302BB70368FDAC1653AF132F3E398E9310159C839E72555FD889E4E3B05E714E44E116804BF3748F62EF46E6A05DEC58A55185E43E2310EC945004AD61945BD2AD923B7B3C69A01C0393C15B6000BF542A55274ACA20B8A6EB96FAF83E27023FE0EA9EE564959A91BE17110176FB10D1A094947A23EFDE15DD093EF477EF798BCA8F5E14F85411242BC9C9492081444490C072BE8511B3C961AAAC80477897B54BDABE78C533F2E149FA64B51936E31F126625566CAFBB57E9F36CE0DF72A45E61AB27B6D25DEA3BA35910E16BB00AD300CEE2535CE75F9411DD43943250B03EBBA60C5C788974F2F695967103045F3A90A587AEFD0613F9C8E10A273DD827A314C75C7DBCE4326191DBCB92020CDB75129BCA032B6FD59D368C3E2404B2832398E40F43ACE284A91DED8812AA23E5B5A1D36AE204C53F1C6EF0E89AD31D1552E70538451847D7332D8FCACB62A1E56C1E5643E4F7AF63C67E082AC95DCB190795FA53522FA046F1919C81A088D7A8A452124E562BE2A702139670E94524D3110B9DFF35AE73F43280600B8304FA2E776089AF2ED929695967998E29A343FF62C4CAD7618222C01735734342FD33284BE9BDA4976DA1BC3B384E6F813FCBDFA3DC57B841515836CB2B37116EB6D417BBE6AEA7604AA915530AD803DF1C13656753C1A5867F4A3AE94BA7347580EE5A6CEBD2F3EB9B7F83E7B74F38995168F08A15A4CDF5702EA9DC907FC45910586D59537582DB1D5F155BF0050866CE3087560F1F44D1F275FD2B422038F9D8643C3BEBA49938D514848AC4F68F4CF44329C7E806B911B0CB7FF0020F3277A3E2B4FF17090D012B641E24D67A962E2FE361504DB014155F074F30F52078CB31DFC51B32746A42EDBF013F9920CFB17D4AA2837B | 304 | 20180924230442 2 6 100 6143 5 F35161AADD9632E3575CDA92B32D0F28F2E75A457C95BE770E9A8E8122E71DDB31C63B86B67348319F52466B6F3FED41463FAADCA6CE2901FF62D867C09A3565BFC511A060AABAD5040F94C3066EFBFED3CA9BA71864EBBE9F616FCE8F9B0C9C463E2172BA6B1EEF222E310FEC9B70FDF42104292FE772CB350DB09040ED588DA44E0607286D1D66F155FFC5607EBEB4041F705839FEDB0C03FDA40F013BAE3D02EA1256B6DB4DB0F9ED423CD6DCFFD36AA0841BB1FDAF66A453A19EB967F0ECF045FB069302CCB0C6EB52834D1A8DBDE302530510349FC21AE0EE7D5F912D6FBFDEF8A19B8B4CEF2EEE0D05F67DB8F03E564FCD7CD2A344DD1A45A7079037A7629747BE1F183775275C93F52505BA701B27FB18035A0B8D707BF1A3B3BE453FD1A21B0B7FBA7CF90B3BB9665AA33EFB1FC04F858A33E8908397B976C03F972D6C50296DF33359E0BE9209C7D333A019937EC6A26BBB0EDD75DA06CF63A6333B1786B55DC0812AB74FD5D87EE581750E238EFCC75A1EF651502D3988C29C6C37504D90F8878D2FBE7F9131F273638A1BFFF96839557C5D1BA687DF78AFAF75E7FA7214B44C04BE0F3D160071146681C7CBE9B1DB1766C1D972E836DF71D0D4CD4E396D15EE25EF1A58FAC876E2ACCC2DE8EFA8B194694524C1F73D66B8D4D0B95C9896D18FE4061A68FB322BBC155D24E7EA516F740866BB32BB55E8FECAA7BC7F9D3D347024584F8BF4A40232D6AF32E3BB753718567698ABCA6440D68AF0B4317F343FA866ECCC64E895D780300BFA2FCAAAAFA4630C37EB8546025DFDD1E3FAB56F70CC95AA0CB7E3E8F11253D80B4C072ED04FE7068C4818B52831F77C11934F97AD153C44499AF0E6C99DE5741E41EB4C3DDEA3A7C7404AF7F154EAB7422598797E4E5106BFCF7390DE9AF5E9978A7000566FF8EE5737730108235AACBD38D8C337C71978FDC765243322C08F74B0F71B91E3C50BE3DAB7E58F0F8F187839AABB2991C1AB686975AEF90EECCBEAD74AE9C78F0A4DF2376A35A4E5894E8677A08788FEA19DEAE13C88D696C65A7426E620AA1492115E2BF0FB197F8509D7 |
305 | 20180414202910 2 6 100 7679 5 FBED7F3DD7CF86B0A6EEDC1930C6958C3C00695DAF4347560C5AC1AA4B22F4DC76F190D63E230EB0CB4344A370A471F17FFCA8DA3B5B0A903F9D1258370125F6C172F3EC5F56D7B8EBD07B2072C45D6141DA3CDC01C3D95DE279C5FAA1E042651028141085EB68AFAC473600F75F4A373DC234D5405DCE7AB5B5854960ABC550FCEFEE8FD578810201DE6B4A5EF616F0CBF5707466D7ECBFD488EB68AD4B2EAC889BA2B7FEFE19CD8AA2C78F61D5DA08B4BC2738E1997F951A525EEF9F668148996D1ABFD1620F9276D741A46BECC0B7868A54745E0B16589A4AA7B938AF92FCA0FC9BBC193504D7EBFEFFEC996746DC6CAD3C192D724FB51E6228915789FF18314B3EB690359ADED802F35F48EC0D9C85AA1A20A2E5CF6EB795F2CCD03284547688B1B80A07EFC31668D30836C59C958BBBF6C1EE3940CC43A9334289C872302BB70368FDAC1653AF132F3E398E9310159C839E72555FD889E4E3B05E714E44E116804BF3748F62EF46E6A05DEC58A55185E43E2310EC945004AD61945BD2AD923B7B3C69A01C0393C15B6000BF542A55274ACA20B8A6EB96FAF83E27023FE0EA9EE564959A91BE17110176FB10D1A094947A23EFDE15DD093EF477EF798BCA8F5E14F85411242BC9C9492081444490C072BE8511B3C961AAAC80477897B54BDABE78C533F2E149FA64B51936E31F126625566CAFBB57E9F36CE0DF72A45E61AB27B6D25DEA3BA35910E16BB00AD300CEE2535CE75F9411DD43943250B03EBBA60C5C788974F2F695967103045F3A90A587AEFD0613F9C8E10A273DD827A314C75C7DBCE4326191DBCB92020CDB75129BCA032B6FD59D368C3E2404B2832398E40F43ACE284A91DED8812AA23E5B5A1D36AE204C53F1C6EF0E89AD31D1552E70538451847D7332D8FCACB62A1E56C1E5643E4F7AF63C67E082AC95DCB190795FA53522FA046F1919C81A088D7A8A452124E562BE2A702139670E94524D3110B9DFF35AE73F43280600B8304FA2E776089AF2ED929695967998E29A343FF62C4CAD7618222C01735734342FD33284BE9BDA4976DA1BC3B384E6F813FCBDFA3DC57B841515836CB2B37116EB6D417BBE6AEA7604AA915530AD803DF1C13656753C1A5867F4A3AE94BA7347580EE5A6CEBD2F3EB9B7F83E7B74F38995168F08A15A4CDF5702EA9DC907FC45910586D59537582DB1D5F155BF0050866CE3087560F1F44D1F275FD2B422038F9D8643C3BEBA49938D514848AC4F68F4CF44329C7E806B911B0CB7FF0020F3277A3E2B4FF17090D012B641E24D67A962E2FE361504DB014155F074F30F52078CB31DFC51B32746A42EDBF013F9920CFB17D4C60657F | 305 | 20180925002733 2 6 100 6143 2 F35161AADD9632E3575CDA92B32D0F28F2E75A457C95BE770E9A8E8122E71DDB31C63B86B67348319F52466B6F3FED41463FAADCA6CE2901FF62D867C09A3565BFC511A060AABAD5040F94C3066EFBFED3CA9BA71864EBBE9F616FCE8F9B0C9C463E2172BA6B1EEF222E310FEC9B70FDF42104292FE772CB350DB09040ED588DA44E0607286D1D66F155FFC5607EBEB4041F705839FEDB0C03FDA40F013BAE3D02EA1256B6DB4DB0F9ED423CD6DCFFD36AA0841BB1FDAF66A453A19EB967F0ECF045FB069302CCB0C6EB52834D1A8DBDE302530510349FC21AE0EE7D5F912D6FBFDEF8A19B8B4CEF2EEE0D05F67DB8F03E564FCD7CD2A344DD1A45A7079037A7629747BE1F183775275C93F52505BA701B27FB18035A0B8D707BF1A3B3BE453FD1A21B0B7FBA7CF90B3BB9665AA33EFB1FC04F858A33E8908397B976C03F972D6C50296DF33359E0BE9209C7D333A019937EC6A26BBB0EDD75DA06CF63A6333B1786B55DC0812AB74FD5D87EE581750E238EFCC75A1EF651502D3988C29C6C37504D90F8878D2FBE7F9131F273638A1BFFF96839557C5D1BA687DF78AFAF75E7FA7214B44C04BE0F3D160071146681C7CBE9B1DB1766C1D972E836DF71D0D4CD4E396D15EE25EF1A58FAC876E2ACCC2DE8EFA8B194694524C1F73D66B8D4D0B95C9896D18FE4061A68FB322BBC155D24E7EA516F740866BB32BB55E8FECAA7BC7F9D3D347024584F8BF4A40232D6AF32E3BB753718567698ABCA6440D68AF0B4317F343FA866ECCC64E895D780300BFA2FCAAAAFA4630C37EB8546025DFDD1E3FAB56F70CC95AA0CB7E3E8F11253D80B4C072ED04FE7068C4818B52831F77C11934F97AD153C44499AF0E6C99DE5741E41EB4C3DDEA3A7C7404AF7F154EAB7422598797E4E5106BFCF7390DE9AF5E9978A7000566FF8EE5737730108235AACBD38D8C337C71978FDC765243322C08F74B0F71B91E3C50BE3DAB7E58F0F8F187839AABB2991C1AB686975AEF90EECCBEAD74AE9C78F0A4DF2376A35A4E5894E8677A08788FEA19DEAE13C88D696C65A7426E620AA1492115E2BF0FB198168A38B |
306 | 20180414210359 2 6 100 7679 5 FBED7F3DD7CF86B0A6EEDC1930C6958C3C00695DAF4347560C5AC1AA4B22F4DC76F190D63E230EB0CB4344A370A471F17FFCA8DA3B5B0A903F9D1258370125F6C172F3EC5F56D7B8EBD07B2072C45D6141DA3CDC01C3D95DE279C5FAA1E042651028141085EB68AFAC473600F75F4A373DC234D5405DCE7AB5B5854960ABC550FCEFEE8FD578810201DE6B4A5EF616F0CBF5707466D7ECBFD488EB68AD4B2EAC889BA2B7FEFE19CD8AA2C78F61D5DA08B4BC2738E1997F951A525EEF9F668148996D1ABFD1620F9276D741A46BECC0B7868A54745E0B16589A4AA7B938AF92FCA0FC9BBC193504D7EBFEFFEC996746DC6CAD3C192D724FB51E6228915789FF18314B3EB690359ADED802F35F48EC0D9C85AA1A20A2E5CF6EB795F2CCD03284547688B1B80A07EFC31668D30836C59C958BBBF6C1EE3940CC43A9334289C872302BB70368FDAC1653AF132F3E398E9310159C839E72555FD889E4E3B05E714E44E116804BF3748F62EF46E6A05DEC58A55185E43E2310EC945004AD61945BD2AD923B7B3C69A01C0393C15B6000BF542A55274ACA20B8A6EB96FAF83E27023FE0EA9EE564959A91BE17110176FB10D1A094947A23EFDE15DD093EF477EF798BCA8F5E14F85411242BC9C9492081444490C072BE8511B3C961AAAC80477897B54BDABE78C533F2E149FA64B51936E31F126625566CAFBB57E9F36CE0DF72A45E61AB27B6D25DEA3BA35910E16BB00AD300CEE2535CE75F9411DD43943250B03EBBA60C5C788974F2F695967103045F3A90A587AEFD0613F9C8E10A273DD827A314C75C7DBCE4326191DBCB92020CDB75129BCA032B6FD59D368C3E2404B2832398E40F43ACE284A91DED8812AA23E5B5A1D36AE204C53F1C6EF0E89AD31D1552E70538451847D7332D8FCACB62A1E56C1E5643E4F7AF63C67E082AC95DCB190795FA53522FA046F1919C81A088D7A8A452124E562BE2A702139670E94524D3110B9DFF35AE73F43280600B8304FA2E776089AF2ED929695967998E29A343FF62C4CAD7618222C01735734342FD33284BE9BDA4976DA1BC3B384E6F813FCBDFA3DC57B841515836CB2B37116EB6D417BBE6AEA7604AA915530AD803DF1C13656753C1A5867F4A3AE94BA7347580EE5A6CEBD2F3EB9B7F83E7B74F38995168F08A15A4CDF5702EA9DC907FC45910586D59537582DB1D5F155BF0050866CE3087560F1F44D1F275FD2B422038F9D8643C3BEBA49938D514848AC4F68F4CF44329C7E806B911B0CB7FF0020F3277A3E2B4FF17090D012B641E24D67A962E2FE361504DB014155F074F30F52078CB31DFC51B32746A42EDBF013F9920CFB17D4CCB3D87 | 306 | 20180925022629 2 6 100 6143 5 F35161AADD9632E3575CDA92B32D0F28F2E75A457C95BE770E9A8E8122E71DDB31C63B86B67348319F52466B6F3FED41463FAADCA6CE2901FF62D867C09A3565BFC511A060AABAD5040F94C3066EFBFED3CA9BA71864EBBE9F616FCE8F9B0C9C463E2172BA6B1EEF222E310FEC9B70FDF42104292FE772CB350DB09040ED588DA44E0607286D1D66F155FFC5607EBEB4041F705839FEDB0C03FDA40F013BAE3D02EA1256B6DB4DB0F9ED423CD6DCFFD36AA0841BB1FDAF66A453A19EB967F0ECF045FB069302CCB0C6EB52834D1A8DBDE302530510349FC21AE0EE7D5F912D6FBFDEF8A19B8B4CEF2EEE0D05F67DB8F03E564FCD7CD2A344DD1A45A7079037A7629747BE1F183775275C93F52505BA701B27FB18035A0B8D707BF1A3B3BE453FD1A21B0B7FBA7CF90B3BB9665AA33EFB1FC04F858A33E8908397B976C03F972D6C50296DF33359E0BE9209C7D333A019937EC6A26BBB0EDD75DA06CF63A6333B1786B55DC0812AB74FD5D87EE581750E238EFCC75A1EF651502D3988C29C6C37504D90F8878D2FBE7F9131F273638A1BFFF96839557C5D1BA687DF78AFAF75E7FA7214B44C04BE0F3D160071146681C7CBE9B1DB1766C1D972E836DF71D0D4CD4E396D15EE25EF1A58FAC876E2ACCC2DE8EFA8B194694524C1F73D66B8D4D0B95C9896D18FE4061A68FB322BBC155D24E7EA516F740866BB32BB55E8FECAA7BC7F9D3D347024584F8BF4A40232D6AF32E3BB753718567698ABCA6440D68AF0B4317F343FA866ECCC64E895D780300BFA2FCAAAAFA4630C37EB8546025DFDD1E3FAB56F70CC95AA0CB7E3E8F11253D80B4C072ED04FE7068C4818B52831F77C11934F97AD153C44499AF0E6C99DE5741E41EB4C3DDEA3A7C7404AF7F154EAB7422598797E4E5106BFCF7390DE9AF5E9978A7000566FF8EE5737730108235AACBD38D8C337C71978FDC765243322C08F74B0F71B91E3C50BE3DAB7E58F0F8F187839AABB2991C1AB686975AEF90EECCBEAD74AE9C78F0A4DF2376A35A4E5894E8677A08788FEA19DEAE13C88D696C65A7426E620AA1492115E2BF0FB19842450D7 |
307 | 20180415054313 2 6 100 7679 5 FBED7F3DD7CF86B0A6EEDC1930C6958C3C00695DAF4347560C5AC1AA4B22F4DC76F190D63E230EB0CB4344A370A471F17FFCA8DA3B5B0A903F9D1258370125F6C172F3EC5F56D7B8EBD07B2072C45D6141DA3CDC01C3D95DE279C5FAA1E042651028141085EB68AFAC473600F75F4A373DC234D5405DCE7AB5B5854960ABC550FCEFEE8FD578810201DE6B4A5EF616F0CBF5707466D7ECBFD488EB68AD4B2EAC889BA2B7FEFE19CD8AA2C78F61D5DA08B4BC2738E1997F951A525EEF9F668148996D1ABFD1620F9276D741A46BECC0B7868A54745E0B16589A4AA7B938AF92FCA0FC9BBC193504D7EBFEFFEC996746DC6CAD3C192D724FB51E6228915789FF18314B3EB690359ADED802F35F48EC0D9C85AA1A20A2E5CF6EB795F2CCD03284547688B1B80A07EFC31668D30836C59C958BBBF6C1EE3940CC43A9334289C872302BB70368FDAC1653AF132F3E398E9310159C839E72555FD889E4E3B05E714E44E116804BF3748F62EF46E6A05DEC58A55185E43E2310EC945004AD61945BD2AD923B7B3C69A01C0393C15B6000BF542A55274ACA20B8A6EB96FAF83E27023FE0EA9EE564959A91BE17110176FB10D1A094947A23EFDE15DD093EF477EF798BCA8F5E14F85411242BC9C9492081444490C072BE8511B3C961AAAC80477897B54BDABE78C533F2E149FA64B51936E31F126625566CAFBB57E9F36CE0DF72A45E61AB27B6D25DEA3BA35910E16BB00AD300CEE2535CE75F9411DD43943250B03EBBA60C5C788974F2F695967103045F3A90A587AEFD0613F9C8E10A273DD827A314C75C7DBCE4326191DBCB92020CDB75129BCA032B6FD59D368C3E2404B2832398E40F43ACE284A91DED8812AA23E5B5A1D36AE204C53F1C6EF0E89AD31D1552E70538451847D7332D8FCACB62A1E56C1E5643E4F7AF63C67E082AC95DCB190795FA53522FA046F1919C81A088D7A8A452124E562BE2A702139670E94524D3110B9DFF35AE73F43280600B8304FA2E776089AF2ED929695967998E29A343FF62C4CAD7618222C01735734342FD33284BE9BDA4976DA1BC3B384E6F813FCBDFA3DC57B841515836CB2B37116EB6D417BBE6AEA7604AA915530AD803DF1C13656753C1A5867F4A3AE94BA7347580EE5A6CEBD2F3EB9B7F83E7B74F38995168F08A15A4CDF5702EA9DC907FC45910586D59537582DB1D5F155BF0050866CE3087560F1F44D1F275FD2B422038F9D8643C3BEBA49938D514848AC4F68F4CF44329C7E806B911B0CB7FF0020F3277A3E2B4FF17090D012B641E24D67A962E2FE361504DB014155F074F30F52078CB31DFC51B32746A42EDBF013F9920CFB17D53659F57 | 307 | 20180925032318 2 6 100 6143 5 F35161AADD9632E3575CDA92B32D0F28F2E75A457C95BE770E9A8E8122E71DDB31C63B86B67348319F52466B6F3FED41463FAADCA6CE2901FF62D867C09A3565BFC511A060AABAD5040F94C3066EFBFED3CA9BA71864EBBE9F616FCE8F9B0C9C463E2172BA6B1EEF222E310FEC9B70FDF42104292FE772CB350DB09040ED588DA44E0607286D1D66F155FFC5607EBEB4041F705839FEDB0C03FDA40F013BAE3D02EA1256B6DB4DB0F9ED423CD6DCFFD36AA0841BB1FDAF66A453A19EB967F0ECF045FB069302CCB0C6EB52834D1A8DBDE302530510349FC21AE0EE7D5F912D6FBFDEF8A19B8B4CEF2EEE0D05F67DB8F03E564FCD7CD2A344DD1A45A7079037A7629747BE1F183775275C93F52505BA701B27FB18035A0B8D707BF1A3B3BE453FD1A21B0B7FBA7CF90B3BB9665AA33EFB1FC04F858A33E8908397B976C03F972D6C50296DF33359E0BE9209C7D333A019937EC6A26BBB0EDD75DA06CF63A6333B1786B55DC0812AB74FD5D87EE581750E238EFCC75A1EF651502D3988C29C6C37504D90F8878D2FBE7F9131F273638A1BFFF96839557C5D1BA687DF78AFAF75E7FA7214B44C04BE0F3D160071146681C7CBE9B1DB1766C1D972E836DF71D0D4CD4E396D15EE25EF1A58FAC876E2ACCC2DE8EFA8B194694524C1F73D66B8D4D0B95C9896D18FE4061A68FB322BBC155D24E7EA516F740866BB32BB55E8FECAA7BC7F9D3D347024584F8BF4A40232D6AF32E3BB753718567698ABCA6440D68AF0B4317F343FA866ECCC64E895D780300BFA2FCAAAAFA4630C37EB8546025DFDD1E3FAB56F70CC95AA0CB7E3E8F11253D80B4C072ED04FE7068C4818B52831F77C11934F97AD153C44499AF0E6C99DE5741E41EB4C3DDEA3A7C7404AF7F154EAB7422598797E4E5106BFCF7390DE9AF5E9978A7000566FF8EE5737730108235AACBD38D8C337C71978FDC765243322C08F74B0F71B91E3C50BE3DAB7E58F0F8F187839AABB2991C1AB686975AEF90EECCBEAD74AE9C78F0A4DF2376A35A4E5894E8677A08788FEA19DEAE13C88D696C65A7426E620AA1492115E2BF0FB19856CA53F |
308 | 20180415133017 2 6 100 7679 5 FBED7F3DD7CF86B0A6EEDC1930C6958C3C00695DAF4347560C5AC1AA4B22F4DC76F190D63E230EB0CB4344A370A471F17FFCA8DA3B5B0A903F9D1258370125F6C172F3EC5F56D7B8EBD07B2072C45D6141DA3CDC01C3D95DE279C5FAA1E042651028141085EB68AFAC473600F75F4A373DC234D5405DCE7AB5B5854960ABC550FCEFEE8FD578810201DE6B4A5EF616F0CBF5707466D7ECBFD488EB68AD4B2EAC889BA2B7FEFE19CD8AA2C78F61D5DA08B4BC2738E1997F951A525EEF9F668148996D1ABFD1620F9276D741A46BECC0B7868A54745E0B16589A4AA7B938AF92FCA0FC9BBC193504D7EBFEFFEC996746DC6CAD3C192D724FB51E6228915789FF18314B3EB690359ADED802F35F48EC0D9C85AA1A20A2E5CF6EB795F2CCD03284547688B1B80A07EFC31668D30836C59C958BBBF6C1EE3940CC43A9334289C872302BB70368FDAC1653AF132F3E398E9310159C839E72555FD889E4E3B05E714E44E116804BF3748F62EF46E6A05DEC58A55185E43E2310EC945004AD61945BD2AD923B7B3C69A01C0393C15B6000BF542A55274ACA20B8A6EB96FAF83E27023FE0EA9EE564959A91BE17110176FB10D1A094947A23EFDE15DD093EF477EF798BCA8F5E14F85411242BC9C9492081444490C072BE8511B3C961AAAC80477897B54BDABE78C533F2E149FA64B51936E31F126625566CAFBB57E9F36CE0DF72A45E61AB27B6D25DEA3BA35910E16BB00AD300CEE2535CE75F9411DD43943250B03EBBA60C5C788974F2F695967103045F3A90A587AEFD0613F9C8E10A273DD827A314C75C7DBCE4326191DBCB92020CDB75129BCA032B6FD59D368C3E2404B2832398E40F43ACE284A91DED8812AA23E5B5A1D36AE204C53F1C6EF0E89AD31D1552E70538451847D7332D8FCACB62A1E56C1E5643E4F7AF63C67E082AC95DCB190795FA53522FA046F1919C81A088D7A8A452124E562BE2A702139670E94524D3110B9DFF35AE73F43280600B8304FA2E776089AF2ED929695967998E29A343FF62C4CAD7618222C01735734342FD33284BE9BDA4976DA1BC3B384E6F813FCBDFA3DC57B841515836CB2B37116EB6D417BBE6AEA7604AA915530AD803DF1C13656753C1A5867F4A3AE94BA7347580EE5A6CEBD2F3EB9B7F83E7B74F38995168F08A15A4CDF5702EA9DC907FC45910586D59537582DB1D5F155BF0050866CE3087560F1F44D1F275FD2B422038F9D8643C3BEBA49938D514848AC4F68F4CF44329C7E806B911B0CB7FF0020F3277A3E2B4FF17090D012B641E24D67A962E2FE361504DB014155F074F30F52078CB31DFC51B32746A42EDBF013F9920CFB17D596ABEFF | 308 | 20180925033018 2 6 100 6143 2 F35161AADD9632E3575CDA92B32D0F28F2E75A457C95BE770E9A8E8122E71DDB31C63B86B67348319F52466B6F3FED41463FAADCA6CE2901FF62D867C09A3565BFC511A060AABAD5040F94C3066EFBFED3CA9BA71864EBBE9F616FCE8F9B0C9C463E2172BA6B1EEF222E310FEC9B70FDF42104292FE772CB350DB09040ED588DA44E0607286D1D66F155FFC5607EBEB4041F705839FEDB0C03FDA40F013BAE3D02EA1256B6DB4DB0F9ED423CD6DCFFD36AA0841BB1FDAF66A453A19EB967F0ECF045FB069302CCB0C6EB52834D1A8DBDE302530510349FC21AE0EE7D5F912D6FBFDEF8A19B8B4CEF2EEE0D05F67DB8F03E564FCD7CD2A344DD1A45A7079037A7629747BE1F183775275C93F52505BA701B27FB18035A0B8D707BF1A3B3BE453FD1A21B0B7FBA7CF90B3BB9665AA33EFB1FC04F858A33E8908397B976C03F972D6C50296DF33359E0BE9209C7D333A019937EC6A26BBB0EDD75DA06CF63A6333B1786B55DC0812AB74FD5D87EE581750E238EFCC75A1EF651502D3988C29C6C37504D90F8878D2FBE7F9131F273638A1BFFF96839557C5D1BA687DF78AFAF75E7FA7214B44C04BE0F3D160071146681C7CBE9B1DB1766C1D972E836DF71D0D4CD4E396D15EE25EF1A58FAC876E2ACCC2DE8EFA8B194694524C1F73D66B8D4D0B95C9896D18FE4061A68FB322BBC155D24E7EA516F740866BB32BB55E8FECAA7BC7F9D3D347024584F8BF4A40232D6AF32E3BB753718567698ABCA6440D68AF0B4317F343FA866ECCC64E895D780300BFA2FCAAAAFA4630C37EB8546025DFDD1E3FAB56F70CC95AA0CB7E3E8F11253D80B4C072ED04FE7068C4818B52831F77C11934F97AD153C44499AF0E6C99DE5741E41EB4C3DDEA3A7C7404AF7F154EAB7422598797E4E5106BFCF7390DE9AF5E9978A7000566FF8EE5737730108235AACBD38D8C337C71978FDC765243322C08F74B0F71B91E3C50BE3DAB7E58F0F8F187839AABB2991C1AB686975AEF90EECCBEAD74AE9C78F0A4DF2376A35A4E5894E8677A08788FEA19DEAE13C88D696C65A7426E620AA1492115E2BF0FB19858EBEEB |
309 | 20180415160204 2 6 100 7679 5 FBED7F3DD7CF86B0A6EEDC1930C6958C3C00695DAF4347560C5AC1AA4B22F4DC76F190D63E230EB0CB4344A370A471F17FFCA8DA3B5B0A903F9D1258370125F6C172F3EC5F56D7B8EBD07B2072C45D6141DA3CDC01C3D95DE279C5FAA1E042651028141085EB68AFAC473600F75F4A373DC234D5405DCE7AB5B5854960ABC550FCEFEE8FD578810201DE6B4A5EF616F0CBF5707466D7ECBFD488EB68AD4B2EAC889BA2B7FEFE19CD8AA2C78F61D5DA08B4BC2738E1997F951A525EEF9F668148996D1ABFD1620F9276D741A46BECC0B7868A54745E0B16589A4AA7B938AF92FCA0FC9BBC193504D7EBFEFFEC996746DC6CAD3C192D724FB51E6228915789FF18314B3EB690359ADED802F35F48EC0D9C85AA1A20A2E5CF6EB795F2CCD03284547688B1B80A07EFC31668D30836C59C958BBBF6C1EE3940CC43A9334289C872302BB70368FDAC1653AF132F3E398E9310159C839E72555FD889E4E3B05E714E44E116804BF3748F62EF46E6A05DEC58A55185E43E2310EC945004AD61945BD2AD923B7B3C69A01C0393C15B6000BF542A55274ACA20B8A6EB96FAF83E27023FE0EA9EE564959A91BE17110176FB10D1A094947A23EFDE15DD093EF477EF798BCA8F5E14F85411242BC9C9492081444490C072BE8511B3C961AAAC80477897B54BDABE78C533F2E149FA64B51936E31F126625566CAFBB57E9F36CE0DF72A45E61AB27B6D25DEA3BA35910E16BB00AD300CEE2535CE75F9411DD43943250B03EBBA60C5C788974F2F695967103045F3A90A587AEFD0613F9C8E10A273DD827A314C75C7DBCE4326191DBCB92020CDB75129BCA032B6FD59D368C3E2404B2832398E40F43ACE284A91DED8812AA23E5B5A1D36AE204C53F1C6EF0E89AD31D1552E70538451847D7332D8FCACB62A1E56C1E5643E4F7AF63C67E082AC95DCB190795FA53522FA046F1919C81A088D7A8A452124E562BE2A702139670E94524D3110B9DFF35AE73F43280600B8304FA2E776089AF2ED929695967998E29A343FF62C4CAD7618222C01735734342FD33284BE9BDA4976DA1BC3B384E6F813FCBDFA3DC57B841515836CB2B37116EB6D417BBE6AEA7604AA915530AD803DF1C13656753C1A5867F4A3AE94BA7347580EE5A6CEBD2F3EB9B7F83E7B74F38995168F08A15A4CDF5702EA9DC907FC45910586D59537582DB1D5F155BF0050866CE3087560F1F44D1F275FD2B422038F9D8643C3BEBA49938D514848AC4F68F4CF44329C7E806B911B0CB7FF0020F3277A3E2B4FF17090D012B641E24D67A962E2FE361504DB014155F074F30F52078CB31DFC51B32746A42EDBF013F9920CFB17D5B5415B7 | 309 | 20180925033504 2 6 100 6143 5 F35161AADD9632E3575CDA92B32D0F28F2E75A457C95BE770E9A8E8122E71DDB31C63B86B67348319F52466B6F3FED41463FAADCA6CE2901FF62D867C09A3565BFC511A060AABAD5040F94C3066EFBFED3CA9BA71864EBBE9F616FCE8F9B0C9C463E2172BA6B1EEF222E310FEC9B70FDF42104292FE772CB350DB09040ED588DA44E0607286D1D66F155FFC5607EBEB4041F705839FEDB0C03FDA40F013BAE3D02EA1256B6DB4DB0F9ED423CD6DCFFD36AA0841BB1FDAF66A453A19EB967F0ECF045FB069302CCB0C6EB52834D1A8DBDE302530510349FC21AE0EE7D5F912D6FBFDEF8A19B8B4CEF2EEE0D05F67DB8F03E564FCD7CD2A344DD1A45A7079037A7629747BE1F183775275C93F52505BA701B27FB18035A0B8D707BF1A3B3BE453FD1A21B0B7FBA7CF90B3BB9665AA33EFB1FC04F858A33E8908397B976C03F972D6C50296DF33359E0BE9209C7D333A019937EC6A26BBB0EDD75DA06CF63A6333B1786B55DC0812AB74FD5D87EE581750E238EFCC75A1EF651502D3988C29C6C37504D90F8878D2FBE7F9131F273638A1BFFF96839557C5D1BA687DF78AFAF75E7FA7214B44C04BE0F3D160071146681C7CBE9B1DB1766C1D972E836DF71D0D4CD4E396D15EE25EF1A58FAC876E2ACCC2DE8EFA8B194694524C1F73D66B8D4D0B95C9896D18FE4061A68FB322BBC155D24E7EA516F740866BB32BB55E8FECAA7BC7F9D3D347024584F8BF4A40232D6AF32E3BB753718567698ABCA6440D68AF0B4317F343FA866ECCC64E895D780300BFA2FCAAAAFA4630C37EB8546025DFDD1E3FAB56F70CC95AA0CB7E3E8F11253D80B4C072ED04FE7068C4818B52831F77C11934F97AD153C44499AF0E6C99DE5741E41EB4C3DDEA3A7C7404AF7F154EAB7422598797E4E5106BFCF7390DE9AF5E9978A7000566FF8EE5737730108235AACBD38D8C337C71978FDC765243322C08F74B0F71B91E3C50BE3DAB7E58F0F8F187839AABB2991C1AB686975AEF90EECCBEAD74AE9C78F0A4DF2376A35A4E5894E8677A08788FEA19DEAE13C88D696C65A7426E620AA1492115E2BF0FB1985A24167 |
310 | 20180415222232 2 6 100 7679 2 FBED7F3DD7CF86B0A6EEDC1930C6958C3C00695DAF4347560C5AC1AA4B22F4DC76F190D63E230EB0CB4344A370A471F17FFCA8DA3B5B0A903F9D1258370125F6C172F3EC5F56D7B8EBD07B2072C45D6141DA3CDC01C3D95DE279C5FAA1E042651028141085EB68AFAC473600F75F4A373DC234D5405DCE7AB5B5854960ABC550FCEFEE8FD578810201DE6B4A5EF616F0CBF5707466D7ECBFD488EB68AD4B2EAC889BA2B7FEFE19CD8AA2C78F61D5DA08B4BC2738E1997F951A525EEF9F668148996D1ABFD1620F9276D741A46BECC0B7868A54745E0B16589A4AA7B938AF92FCA0FC9BBC193504D7EBFEFFEC996746DC6CAD3C192D724FB51E6228915789FF18314B3EB690359ADED802F35F48EC0D9C85AA1A20A2E5CF6EB795F2CCD03284547688B1B80A07EFC31668D30836C59C958BBBF6C1EE3940CC43A9334289C872302BB70368FDAC1653AF132F3E398E9310159C839E72555FD889E4E3B05E714E44E116804BF3748F62EF46E6A05DEC58A55185E43E2310EC945004AD61945BD2AD923B7B3C69A01C0393C15B6000BF542A55274ACA20B8A6EB96FAF83E27023FE0EA9EE564959A91BE17110176FB10D1A094947A23EFDE15DD093EF477EF798BCA8F5E14F85411242BC9C9492081444490C072BE8511B3C961AAAC80477897B54BDABE78C533F2E149FA64B51936E31F126625566CAFBB57E9F36CE0DF72A45E61AB27B6D25DEA3BA35910E16BB00AD300CEE2535CE75F9411DD43943250B03EBBA60C5C788974F2F695967103045F3A90A587AEFD0613F9C8E10A273DD827A314C75C7DBCE4326191DBCB92020CDB75129BCA032B6FD59D368C3E2404B2832398E40F43ACE284A91DED8812AA23E5B5A1D36AE204C53F1C6EF0E89AD31D1552E70538451847D7332D8FCACB62A1E56C1E5643E4F7AF63C67E082AC95DCB190795FA53522FA046F1919C81A088D7A8A452124E562BE2A702139670E94524D3110B9DFF35AE73F43280600B8304FA2E776089AF2ED929695967998E29A343FF62C4CAD7618222C01735734342FD33284BE9BDA4976DA1BC3B384E6F813FCBDFA3DC57B841515836CB2B37116EB6D417BBE6AEA7604AA915530AD803DF1C13656753C1A5867F4A3AE94BA7347580EE5A6CEBD2F3EB9B7F83E7B74F38995168F08A15A4CDF5702EA9DC907FC45910586D59537582DB1D5F155BF0050866CE3087560F1F44D1F275FD2B422038F9D8643C3BEBA49938D514848AC4F68F4CF44329C7E806B911B0CB7FF0020F3277A3E2B4FF17090D012B641E24D67A962E2FE361504DB014155F074F30F52078CB31DFC51B32746A42EDBF013F9920CFB17D6018A3AB | 310 | 20180925040411 2 6 100 6143 5 F35161AADD9632E3575CDA92B32D0F28F2E75A457C95BE770E9A8E8122E71DDB31C63B86B67348319F52466B6F3FED41463FAADCA6CE2901FF62D867C09A3565BFC511A060AABAD5040F94C3066EFBFED3CA9BA71864EBBE9F616FCE8F9B0C9C463E2172BA6B1EEF222E310FEC9B70FDF42104292FE772CB350DB09040ED588DA44E0607286D1D66F155FFC5607EBEB4041F705839FEDB0C03FDA40F013BAE3D02EA1256B6DB4DB0F9ED423CD6DCFFD36AA0841BB1FDAF66A453A19EB967F0ECF045FB069302CCB0C6EB52834D1A8DBDE302530510349FC21AE0EE7D5F912D6FBFDEF8A19B8B4CEF2EEE0D05F67DB8F03E564FCD7CD2A344DD1A45A7079037A7629747BE1F183775275C93F52505BA701B27FB18035A0B8D707BF1A3B3BE453FD1A21B0B7FBA7CF90B3BB9665AA33EFB1FC04F858A33E8908397B976C03F972D6C50296DF33359E0BE9209C7D333A019937EC6A26BBB0EDD75DA06CF63A6333B1786B55DC0812AB74FD5D87EE581750E238EFCC75A1EF651502D3988C29C6C37504D90F8878D2FBE7F9131F273638A1BFFF96839557C5D1BA687DF78AFAF75E7FA7214B44C04BE0F3D160071146681C7CBE9B1DB1766C1D972E836DF71D0D4CD4E396D15EE25EF1A58FAC876E2ACCC2DE8EFA8B194694524C1F73D66B8D4D0B95C9896D18FE4061A68FB322BBC155D24E7EA516F740866BB32BB55E8FECAA7BC7F9D3D347024584F8BF4A40232D6AF32E3BB753718567698ABCA6440D68AF0B4317F343FA866ECCC64E895D780300BFA2FCAAAAFA4630C37EB8546025DFDD1E3FAB56F70CC95AA0CB7E3E8F11253D80B4C072ED04FE7068C4818B52831F77C11934F97AD153C44499AF0E6C99DE5741E41EB4C3DDEA3A7C7404AF7F154EAB7422598797E4E5106BFCF7390DE9AF5E9978A7000566FF8EE5737730108235AACBD38D8C337C71978FDC765243322C08F74B0F71B91E3C50BE3DAB7E58F0F8F187839AABB2991C1AB686975AEF90EECCBEAD74AE9C78F0A4DF2376A35A4E5894E8677A08788FEA19DEAE13C88D696C65A7426E620AA1492115E2BF0FB19864B479F |
311 | 20180415224834 2 6 100 7679 2 FBED7F3DD7CF86B0A6EEDC1930C6958C3C00695DAF4347560C5AC1AA4B22F4DC76F190D63E230EB0CB4344A370A471F17FFCA8DA3B5B0A903F9D1258370125F6C172F3EC5F56D7B8EBD07B2072C45D6141DA3CDC01C3D95DE279C5FAA1E042651028141085EB68AFAC473600F75F4A373DC234D5405DCE7AB5B5854960ABC550FCEFEE8FD578810201DE6B4A5EF616F0CBF5707466D7ECBFD488EB68AD4B2EAC889BA2B7FEFE19CD8AA2C78F61D5DA08B4BC2738E1997F951A525EEF9F668148996D1ABFD1620F9276D741A46BECC0B7868A54745E0B16589A4AA7B938AF92FCA0FC9BBC193504D7EBFEFFEC996746DC6CAD3C192D724FB51E6228915789FF18314B3EB690359ADED802F35F48EC0D9C85AA1A20A2E5CF6EB795F2CCD03284547688B1B80A07EFC31668D30836C59C958BBBF6C1EE3940CC43A9334289C872302BB70368FDAC1653AF132F3E398E9310159C839E72555FD889E4E3B05E714E44E116804BF3748F62EF46E6A05DEC58A55185E43E2310EC945004AD61945BD2AD923B7B3C69A01C0393C15B6000BF542A55274ACA20B8A6EB96FAF83E27023FE0EA9EE564959A91BE17110176FB10D1A094947A23EFDE15DD093EF477EF798BCA8F5E14F85411242BC9C9492081444490C072BE8511B3C961AAAC80477897B54BDABE78C533F2E149FA64B51936E31F126625566CAFBB57E9F36CE0DF72A45E61AB27B6D25DEA3BA35910E16BB00AD300CEE2535CE75F9411DD43943250B03EBBA60C5C788974F2F695967103045F3A90A587AEFD0613F9C8E10A273DD827A314C75C7DBCE4326191DBCB92020CDB75129BCA032B6FD59D368C3E2404B2832398E40F43ACE284A91DED8812AA23E5B5A1D36AE204C53F1C6EF0E89AD31D1552E70538451847D7332D8FCACB62A1E56C1E5643E4F7AF63C67E082AC95DCB190795FA53522FA046F1919C81A088D7A8A452124E562BE2A702139670E94524D3110B9DFF35AE73F43280600B8304FA2E776089AF2ED929695967998E29A343FF62C4CAD7618222C01735734342FD33284BE9BDA4976DA1BC3B384E6F813FCBDFA3DC57B841515836CB2B37116EB6D417BBE6AEA7604AA915530AD803DF1C13656753C1A5867F4A3AE94BA7347580EE5A6CEBD2F3EB9B7F83E7B74F38995168F08A15A4CDF5702EA9DC907FC45910586D59537582DB1D5F155BF0050866CE3087560F1F44D1F275FD2B422038F9D8643C3BEBA49938D514848AC4F68F4CF44329C7E806B911B0CB7FF0020F3277A3E2B4FF17090D012B641E24D67A962E2FE361504DB014155F074F30F52078CB31DFC51B32746A42EDBF013F9920CFB17D6064EF13 | 311 | 20180925075729 2 6 100 6143 2 F35161AADD9632E3575CDA92B32D0F28F2E75A457C95BE770E9A8E8122E71DDB31C63B86B67348319F52466B6F3FED41463FAADCA6CE2901FF62D867C09A3565BFC511A060AABAD5040F94C3066EFBFED3CA9BA71864EBBE9F616FCE8F9B0C9C463E2172BA6B1EEF222E310FEC9B70FDF42104292FE772CB350DB09040ED588DA44E0607286D1D66F155FFC5607EBEB4041F705839FEDB0C03FDA40F013BAE3D02EA1256B6DB4DB0F9ED423CD6DCFFD36AA0841BB1FDAF66A453A19EB967F0ECF045FB069302CCB0C6EB52834D1A8DBDE302530510349FC21AE0EE7D5F912D6FBFDEF8A19B8B4CEF2EEE0D05F67DB8F03E564FCD7CD2A344DD1A45A7079037A7629747BE1F183775275C93F52505BA701B27FB18035A0B8D707BF1A3B3BE453FD1A21B0B7FBA7CF90B3BB9665AA33EFB1FC04F858A33E8908397B976C03F972D6C50296DF33359E0BE9209C7D333A019937EC6A26BBB0EDD75DA06CF63A6333B1786B55DC0812AB74FD5D87EE581750E238EFCC75A1EF651502D3988C29C6C37504D90F8878D2FBE7F9131F273638A1BFFF96839557C5D1BA687DF78AFAF75E7FA7214B44C04BE0F3D160071146681C7CBE9B1DB1766C1D972E836DF71D0D4CD4E396D15EE25EF1A58FAC876E2ACCC2DE8EFA8B194694524C1F73D66B8D4D0B95C9896D18FE4061A68FB322BBC155D24E7EA516F740866BB32BB55E8FECAA7BC7F9D3D347024584F8BF4A40232D6AF32E3BB753718567698ABCA6440D68AF0B4317F343FA866ECCC64E895D780300BFA2FCAAAAFA4630C37EB8546025DFDD1E3FAB56F70CC95AA0CB7E3E8F11253D80B4C072ED04FE7068C4818B52831F77C11934F97AD153C44499AF0E6C99DE5741E41EB4C3DDEA3A7C7404AF7F154EAB7422598797E4E5106BFCF7390DE9AF5E9978A7000566FF8EE5737730108235AACBD38D8C337C71978FDC765243322C08F74B0F71B91E3C50BE3DAB7E58F0F8F187839AABB2991C1AB686975AEF90EECCBEAD74AE9C78F0A4DF2376A35A4E5894E8677A08788FEA19DEAE13C88D696C65A7426E620AA1492115E2BF0FB198B9EEEC3 |
312 | 20180416005338 2 6 100 7679 5 FBED7F3DD7CF86B0A6EEDC1930C6958C3C00695DAF4347560C5AC1AA4B22F4DC76F190D63E230EB0CB4344A370A471F17FFCA8DA3B5B0A903F9D1258370125F6C172F3EC5F56D7B8EBD07B2072C45D6141DA3CDC01C3D95DE279C5FAA1E042651028141085EB68AFAC473600F75F4A373DC234D5405DCE7AB5B5854960ABC550FCEFEE8FD578810201DE6B4A5EF616F0CBF5707466D7ECBFD488EB68AD4B2EAC889BA2B7FEFE19CD8AA2C78F61D5DA08B4BC2738E1997F951A525EEF9F668148996D1ABFD1620F9276D741A46BECC0B7868A54745E0B16589A4AA7B938AF92FCA0FC9BBC193504D7EBFEFFEC996746DC6CAD3C192D724FB51E6228915789FF18314B3EB690359ADED802F35F48EC0D9C85AA1A20A2E5CF6EB795F2CCD03284547688B1B80A07EFC31668D30836C59C958BBBF6C1EE3940CC43A9334289C872302BB70368FDAC1653AF132F3E398E9310159C839E72555FD889E4E3B05E714E44E116804BF3748F62EF46E6A05DEC58A55185E43E2310EC945004AD61945BD2AD923B7B3C69A01C0393C15B6000BF542A55274ACA20B8A6EB96FAF83E27023FE0EA9EE564959A91BE17110176FB10D1A094947A23EFDE15DD093EF477EF798BCA8F5E14F85411242BC9C9492081444490C072BE8511B3C961AAAC80477897B54BDABE78C533F2E149FA64B51936E31F126625566CAFBB57E9F36CE0DF72A45E61AB27B6D25DEA3BA35910E16BB00AD300CEE2535CE75F9411DD43943250B03EBBA60C5C788974F2F695967103045F3A90A587AEFD0613F9C8E10A273DD827A314C75C7DBCE4326191DBCB92020CDB75129BCA032B6FD59D368C3E2404B2832398E40F43ACE284A91DED8812AA23E5B5A1D36AE204C53F1C6EF0E89AD31D1552E70538451847D7332D8FCACB62A1E56C1E5643E4F7AF63C67E082AC95DCB190795FA53522FA046F1919C81A088D7A8A452124E562BE2A702139670E94524D3110B9DFF35AE73F43280600B8304FA2E776089AF2ED929695967998E29A343FF62C4CAD7618222C01735734342FD33284BE9BDA4976DA1BC3B384E6F813FCBDFA3DC57B841515836CB2B37116EB6D417BBE6AEA7604AA915530AD803DF1C13656753C1A5867F4A3AE94BA7347580EE5A6CEBD2F3EB9B7F83E7B74F38995168F08A15A4CDF5702EA9DC907FC45910586D59537582DB1D5F155BF0050866CE3087560F1F44D1F275FD2B422038F9D8643C3BEBA49938D514848AC4F68F4CF44329C7E806B911B0CB7FF0020F3277A3E2B4FF17090D012B641E24D67A962E2FE361504DB014155F074F30F52078CB31DFC51B32746A42EDBF013F9920CFB17D61F17307 | 312 | 20180925083607 2 6 100 6143 5 F35161AADD9632E3575CDA92B32D0F28F2E75A457C95BE770E9A8E8122E71DDB31C63B86B67348319F52466B6F3FED41463FAADCA6CE2901FF62D867C09A3565BFC511A060AABAD5040F94C3066EFBFED3CA9BA71864EBBE9F616FCE8F9B0C9C463E2172BA6B1EEF222E310FEC9B70FDF42104292FE772CB350DB09040ED588DA44E0607286D1D66F155FFC5607EBEB4041F705839FEDB0C03FDA40F013BAE3D02EA1256B6DB4DB0F9ED423CD6DCFFD36AA0841BB1FDAF66A453A19EB967F0ECF045FB069302CCB0C6EB52834D1A8DBDE302530510349FC21AE0EE7D5F912D6FBFDEF8A19B8B4CEF2EEE0D05F67DB8F03E564FCD7CD2A344DD1A45A7079037A7629747BE1F183775275C93F52505BA701B27FB18035A0B8D707BF1A3B3BE453FD1A21B0B7FBA7CF90B3BB9665AA33EFB1FC04F858A33E8908397B976C03F972D6C50296DF33359E0BE9209C7D333A019937EC6A26BBB0EDD75DA06CF63A6333B1786B55DC0812AB74FD5D87EE581750E238EFCC75A1EF651502D3988C29C6C37504D90F8878D2FBE7F9131F273638A1BFFF96839557C5D1BA687DF78AFAF75E7FA7214B44C04BE0F3D160071146681C7CBE9B1DB1766C1D972E836DF71D0D4CD4E396D15EE25EF1A58FAC876E2ACCC2DE8EFA8B194694524C1F73D66B8D4D0B95C9896D18FE4061A68FB322BBC155D24E7EA516F740866BB32BB55E8FECAA7BC7F9D3D347024584F8BF4A40232D6AF32E3BB753718567698ABCA6440D68AF0B4317F343FA866ECCC64E895D780300BFA2FCAAAAFA4630C37EB8546025DFDD1E3FAB56F70CC95AA0CB7E3E8F11253D80B4C072ED04FE7068C4818B52831F77C11934F97AD153C44499AF0E6C99DE5741E41EB4C3DDEA3A7C7404AF7F154EAB7422598797E4E5106BFCF7390DE9AF5E9978A7000566FF8EE5737730108235AACBD38D8C337C71978FDC765243322C08F74B0F71B91E3C50BE3DAB7E58F0F8F187839AABB2991C1AB686975AEF90EECCBEAD74AE9C78F0A4DF2376A35A4E5894E8677A08788FEA19DEAE13C88D696C65A7426E620AA1492115E2BF0FB198C77AA37 |
313 | 20180416021119 2 6 100 7679 5 FBED7F3DD7CF86B0A6EEDC1930C6958C3C00695DAF4347560C5AC1AA4B22F4DC76F190D63E230EB0CB4344A370A471F17FFCA8DA3B5B0A903F9D1258370125F6C172F3EC5F56D7B8EBD07B2072C45D6141DA3CDC01C3D95DE279C5FAA1E042651028141085EB68AFAC473600F75F4A373DC234D5405DCE7AB5B5854960ABC550FCEFEE8FD578810201DE6B4A5EF616F0CBF5707466D7ECBFD488EB68AD4B2EAC889BA2B7FEFE19CD8AA2C78F61D5DA08B4BC2738E1997F951A525EEF9F668148996D1ABFD1620F9276D741A46BECC0B7868A54745E0B16589A4AA7B938AF92FCA0FC9BBC193504D7EBFEFFEC996746DC6CAD3C192D724FB51E6228915789FF18314B3EB690359ADED802F35F48EC0D9C85AA1A20A2E5CF6EB795F2CCD03284547688B1B80A07EFC31668D30836C59C958BBBF6C1EE3940CC43A9334289C872302BB70368FDAC1653AF132F3E398E9310159C839E72555FD889E4E3B05E714E44E116804BF3748F62EF46E6A05DEC58A55185E43E2310EC945004AD61945BD2AD923B7B3C69A01C0393C15B6000BF542A55274ACA20B8A6EB96FAF83E27023FE0EA9EE564959A91BE17110176FB10D1A094947A23EFDE15DD093EF477EF798BCA8F5E14F85411242BC9C9492081444490C072BE8511B3C961AAAC80477897B54BDABE78C533F2E149FA64B51936E31F126625566CAFBB57E9F36CE0DF72A45E61AB27B6D25DEA3BA35910E16BB00AD300CEE2535CE75F9411DD43943250B03EBBA60C5C788974F2F695967103045F3A90A587AEFD0613F9C8E10A273DD827A314C75C7DBCE4326191DBCB92020CDB75129BCA032B6FD59D368C3E2404B2832398E40F43ACE284A91DED8812AA23E5B5A1D36AE204C53F1C6EF0E89AD31D1552E70538451847D7332D8FCACB62A1E56C1E5643E4F7AF63C67E082AC95DCB190795FA53522FA046F1919C81A088D7A8A452124E562BE2A702139670E94524D3110B9DFF35AE73F43280600B8304FA2E776089AF2ED929695967998E29A343FF62C4CAD7618222C01735734342FD33284BE9BDA4976DA1BC3B384E6F813FCBDFA3DC57B841515836CB2B37116EB6D417BBE6AEA7604AA915530AD803DF1C13656753C1A5867F4A3AE94BA7347580EE5A6CEBD2F3EB9B7F83E7B74F38995168F08A15A4CDF5702EA9DC907FC45910586D59537582DB1D5F155BF0050866CE3087560F1F44D1F275FD2B422038F9D8643C3BEBA49938D514848AC4F68F4CF44329C7E806B911B0CB7FF0020F3277A3E2B4FF17090D012B641E24D67A962E2FE361504DB014155F074F30F52078CB31DFC51B32746A42EDBF013F9920CFB17D62E1D04F | 313 | 20180925142730 2 6 100 7679 2 C988D06CCD826A9351D5CAE32A47B28ECC90FA4870D861CCC058CFA49419B0044A395E3F289A48C821B2EFE08D293B917B1DB2E2369564F5D066084F71A090706F84E101625CACAAECFFF3B2FE2A8C04FF9A14D43E9B316576F1571B0FDD51A119222601AE2BBFC3007FBC12D10A2D725AD9D8503A47B4B1977FAF4B0C8E244C372662A335C82380718ABAA9B522A03866EBFC6DD7DEE135A54FDCE58EAAF1996D2485E178888F361B01C2A5F5E21E65BAFFE3024C02210AF189975CADE7BFEAD4A90401D7E37D9B855FA8C8F0D2FBFF9357F8C05E3A2A14173E8F7555FD78B88ECEDC94E238639FA1F59C896F61501B2094199D7679805FB69026D4F13CDEB60CAA339BEB091D7D0C125C72028FDFEC35C5D6EE231B1A46C0619BF822F415121A975322001C4EDC29C5CAA430D1471D1013B67B90F5A7FAFB322B53A9C4D418763CB8A9DD068BF3B7702BA939B4FB0DA5253A999B5A8DFA664D2A9F94169F34E46D45D348E3A7E3424CF6019CFDFE1623940B3FC47A1064E601549C02020571FA10F63AEB0676213CD71D1A8A4140662D00471FE9BA88C269F8D217A978AE910A85CADCA772BD7023DC8D0C2ED524C7FEEFEDF408E4221F474A3783545E155118133FA9D65382F7261CF001701E46721021A1315780A53F4238C1AEEA41D38E1B3310D2EC9AE97C2677467157A0B74DA93A3CDF3E6CF898FA0F5CDF3F55CA572385698FD0F55E0E5C63B4BCB9F4A6EDB74C02C0150B057B1A903F7DD8EFC011EE822F2ECBB780914BCC43A11F7BF4A63BE31F06226881ADE9EA780A58C1A6D7183EE947611A03051A0EA817D6D26FC0C418607EEF57AE00494CDDA1CB518C3F910FD46C65F96E3553CEFFD72D13AC13904EFF4E66203B8D512BF7136251120F0BD28C1E781000BBF832A072DB3BBA7B2CFB5AB1F6DAA17FD6EA6C484BB764E5F01194A5445B1FD435977F916261FA1B5AAD6B7E83782C04EBF3CBD11DC7D929FFD8A16597E2D6A384F343D08E13CEA8232818D7F989BB4B0D7D7531AF0F4C6683356A109EAFD135D2E3319FFA6218053EC737FBD91D5886790D4FB1DB70F3D704148EFF2FAA0241F47F2902EA8286BD7647B615197B0E2A70F3638BDF46973518EA692DA5EE26E533F815FA5E5835C2080FAC1776A7CCFE2F49B1400A55F24C9FC465A766772EFB35756AABF0A42B58966E883AFE5E4000D863756225CDDA2F5AC06093173A1AFB5AD9A7B721A30820170A4AE35B3A2F09DE1B53B7D7A407E0F77F1CD4201337315E6677D30CA3E40F84A7AD707BE0FF99CE9334FAE40692F38135DBBC8CE8E7604C0F9C8AE1989C9FE2AC29C2800DC8876032B416C2EDFD4B |
314 | 20180416083930 2 6 100 7679 5 FBED7F3DD7CF86B0A6EEDC1930C6958C3C00695DAF4347560C5AC1AA4B22F4DC76F190D63E230EB0CB4344A370A471F17FFCA8DA3B5B0A903F9D1258370125F6C172F3EC5F56D7B8EBD07B2072C45D6141DA3CDC01C3D95DE279C5FAA1E042651028141085EB68AFAC473600F75F4A373DC234D5405DCE7AB5B5854960ABC550FCEFEE8FD578810201DE6B4A5EF616F0CBF5707466D7ECBFD488EB68AD4B2EAC889BA2B7FEFE19CD8AA2C78F61D5DA08B4BC2738E1997F951A525EEF9F668148996D1ABFD1620F9276D741A46BECC0B7868A54745E0B16589A4AA7B938AF92FCA0FC9BBC193504D7EBFEFFEC996746DC6CAD3C192D724FB51E6228915789FF18314B3EB690359ADED802F35F48EC0D9C85AA1A20A2E5CF6EB795F2CCD03284547688B1B80A07EFC31668D30836C59C958BBBF6C1EE3940CC43A9334289C872302BB70368FDAC1653AF132F3E398E9310159C839E72555FD889E4E3B05E714E44E116804BF3748F62EF46E6A05DEC58A55185E43E2310EC945004AD61945BD2AD923B7B3C69A01C0393C15B6000BF542A55274ACA20B8A6EB96FAF83E27023FE0EA9EE564959A91BE17110176FB10D1A094947A23EFDE15DD093EF477EF798BCA8F5E14F85411242BC9C9492081444490C072BE8511B3C961AAAC80477897B54BDABE78C533F2E149FA64B51936E31F126625566CAFBB57E9F36CE0DF72A45E61AB27B6D25DEA3BA35910E16BB00AD300CEE2535CE75F9411DD43943250B03EBBA60C5C788974F2F695967103045F3A90A587AEFD0613F9C8E10A273DD827A314C75C7DBCE4326191DBCB92020CDB75129BCA032B6FD59D368C3E2404B2832398E40F43ACE284A91DED8812AA23E5B5A1D36AE204C53F1C6EF0E89AD31D1552E70538451847D7332D8FCACB62A1E56C1E5643E4F7AF63C67E082AC95DCB190795FA53522FA046F1919C81A088D7A8A452124E562BE2A702139670E94524D3110B9DFF35AE73F43280600B8304FA2E776089AF2ED929695967998E29A343FF62C4CAD7618222C01735734342FD33284BE9BDA4976DA1BC3B384E6F813FCBDFA3DC57B841515836CB2B37116EB6D417BBE6AEA7604AA915530AD803DF1C13656753C1A5867F4A3AE94BA7347580EE5A6CEBD2F3EB9B7F83E7B74F38995168F08A15A4CDF5702EA9DC907FC45910586D59537582DB1D5F155BF0050866CE3087560F1F44D1F275FD2B422038F9D8643C3BEBA49938D514848AC4F68F4CF44329C7E806B911B0CB7FF0020F3277A3E2B4FF17090D012B641E24D67A962E2FE361504DB014155F074F30F52078CB31DFC51B32746A42EDBF013F9920CFB17D67B78127 | 314 | 20180926003216 2 6 100 7679 2 C988D06CCD826A9351D5CAE32A47B28ECC90FA4870D861CCC058CFA49419B0044A395E3F289A48C821B2EFE08D293B917B1DB2E2369564F5D066084F71A090706F84E101625CACAAECFFF3B2FE2A8C04FF9A14D43E9B316576F1571B0FDD51A119222601AE2BBFC3007FBC12D10A2D725AD9D8503A47B4B1977FAF4B0C8E244C372662A335C82380718ABAA9B522A03866EBFC6DD7DEE135A54FDCE58EAAF1996D2485E178888F361B01C2A5F5E21E65BAFFE3024C02210AF189975CADE7BFEAD4A90401D7E37D9B855FA8C8F0D2FBFF9357F8C05E3A2A14173E8F7555FD78B88ECEDC94E238639FA1F59C896F61501B2094199D7679805FB69026D4F13CDEB60CAA339BEB091D7D0C125C72028FDFEC35C5D6EE231B1A46C0619BF822F415121A975322001C4EDC29C5CAA430D1471D1013B67B90F5A7FAFB322B53A9C4D418763CB8A9DD068BF3B7702BA939B4FB0DA5253A999B5A8DFA664D2A9F94169F34E46D45D348E3A7E3424CF6019CFDFE1623940B3FC47A1064E601549C02020571FA10F63AEB0676213CD71D1A8A4140662D00471FE9BA88C269F8D217A978AE910A85CADCA772BD7023DC8D0C2ED524C7FEEFEDF408E4221F474A3783545E155118133FA9D65382F7261CF001701E46721021A1315780A53F4238C1AEEA41D38E1B3310D2EC9AE97C2677467157A0B74DA93A3CDF3E6CF898FA0F5CDF3F55CA572385698FD0F55E0E5C63B4BCB9F4A6EDB74C02C0150B057B1A903F7DD8EFC011EE822F2ECBB780914BCC43A11F7BF4A63BE31F06226881ADE9EA780A58C1A6D7183EE947611A03051A0EA817D6D26FC0C418607EEF57AE00494CDDA1CB518C3F910FD46C65F96E3553CEFFD72D13AC13904EFF4E66203B8D512BF7136251120F0BD28C1E781000BBF832A072DB3BBA7B2CFB5AB1F6DAA17FD6EA6C484BB764E5F01194A5445B1FD435977F916261FA1B5AAD6B7E83782C04EBF3CBD11DC7D929FFD8A16597E2D6A384F343D08E13CEA8232818D7F989BB4B0D7D7531AF0F4C6683356A109EAFD135D2E3319FFA6218053EC737FBD91D5886790D4FB1DB70F3D704148EFF2FAA0241F47F2902EA8286BD7647B615197B0E2A70F3638BDF46973518EA692DA5EE26E533F815FA5E5835C2080FAC1776A7CCFE2F49B1400A55F24C9FC465A766772EFB35756AABF0A42B58966E883AFE5E4000D863756225CDDA2F5AC06093173A1AFB5AD9A7B721A30820170A4AE35B3A2F09DE1B53B7D7A407E0F77F1CD4201337315E6677D30CA3E40F84A7AD707BE0FF99CE9334FAE40692F38135DBBC8CE8E7604C0F9C8AE1989C9FE2AC29C2800DC8876032B416CB3AFEA3 |
315 | 20180416182014 2 6 100 7679 2 FBED7F3DD7CF86B0A6EEDC1930C6958C3C00695DAF4347560C5AC1AA4B22F4DC76F190D63E230EB0CB4344A370A471F17FFCA8DA3B5B0A903F9D1258370125F6C172F3EC5F56D7B8EBD07B2072C45D6141DA3CDC01C3D95DE279C5FAA1E042651028141085EB68AFAC473600F75F4A373DC234D5405DCE7AB5B5854960ABC550FCEFEE8FD578810201DE6B4A5EF616F0CBF5707466D7ECBFD488EB68AD4B2EAC889BA2B7FEFE19CD8AA2C78F61D5DA08B4BC2738E1997F951A525EEF9F668148996D1ABFD1620F9276D741A46BECC0B7868A54745E0B16589A4AA7B938AF92FCA0FC9BBC193504D7EBFEFFEC996746DC6CAD3C192D724FB51E6228915789FF18314B3EB690359ADED802F35F48EC0D9C85AA1A20A2E5CF6EB795F2CCD03284547688B1B80A07EFC31668D30836C59C958BBBF6C1EE3940CC43A9334289C872302BB70368FDAC1653AF132F3E398E9310159C839E72555FD889E4E3B05E714E44E116804BF3748F62EF46E6A05DEC58A55185E43E2310EC945004AD61945BD2AD923B7B3C69A01C0393C15B6000BF542A55274ACA20B8A6EB96FAF83E27023FE0EA9EE564959A91BE17110176FB10D1A094947A23EFDE15DD093EF477EF798BCA8F5E14F85411242BC9C9492081444490C072BE8511B3C961AAAC80477897B54BDABE78C533F2E149FA64B51936E31F126625566CAFBB57E9F36CE0DF72A45E61AB27B6D25DEA3BA35910E16BB00AD300CEE2535CE75F9411DD43943250B03EBBA60C5C788974F2F695967103045F3A90A587AEFD0613F9C8E10A273DD827A314C75C7DBCE4326191DBCB92020CDB75129BCA032B6FD59D368C3E2404B2832398E40F43ACE284A91DED8812AA23E5B5A1D36AE204C53F1C6EF0E89AD31D1552E70538451847D7332D8FCACB62A1E56C1E5643E4F7AF63C67E082AC95DCB190795FA53522FA046F1919C81A088D7A8A452124E562BE2A702139670E94524D3110B9DFF35AE73F43280600B8304FA2E776089AF2ED929695967998E29A343FF62C4CAD7618222C01735734342FD33284BE9BDA4976DA1BC3B384E6F813FCBDFA3DC57B841515836CB2B37116EB6D417BBE6AEA7604AA915530AD803DF1C13656753C1A5867F4A3AE94BA7347580EE5A6CEBD2F3EB9B7F83E7B74F38995168F08A15A4CDF5702EA9DC907FC45910586D59537582DB1D5F155BF0050866CE3087560F1F44D1F275FD2B422038F9D8643C3BEBA49938D514848AC4F68F4CF44329C7E806B911B0CB7FF0020F3277A3E2B4FF17090D012B641E24D67A962E2FE361504DB014155F074F30F52078CB31DFC51B32746A42EDBF013F9920CFB17D6EDFEF6B | 315 | 20180926041318 2 6 100 7679 2 C988D06CCD826A9351D5CAE32A47B28ECC90FA4870D861CCC058CFA49419B0044A395E3F289A48C821B2EFE08D293B917B1DB2E2369564F5D066084F71A090706F84E101625CACAAECFFF3B2FE2A8C04FF9A14D43E9B316576F1571B0FDD51A119222601AE2BBFC3007FBC12D10A2D725AD9D8503A47B4B1977FAF4B0C8E244C372662A335C82380718ABAA9B522A03866EBFC6DD7DEE135A54FDCE58EAAF1996D2485E178888F361B01C2A5F5E21E65BAFFE3024C02210AF189975CADE7BFEAD4A90401D7E37D9B855FA8C8F0D2FBFF9357F8C05E3A2A14173E8F7555FD78B88ECEDC94E238639FA1F59C896F61501B2094199D7679805FB69026D4F13CDEB60CAA339BEB091D7D0C125C72028FDFEC35C5D6EE231B1A46C0619BF822F415121A975322001C4EDC29C5CAA430D1471D1013B67B90F5A7FAFB322B53A9C4D418763CB8A9DD068BF3B7702BA939B4FB0DA5253A999B5A8DFA664D2A9F94169F34E46D45D348E3A7E3424CF6019CFDFE1623940B3FC47A1064E601549C02020571FA10F63AEB0676213CD71D1A8A4140662D00471FE9BA88C269F8D217A978AE910A85CADCA772BD7023DC8D0C2ED524C7FEEFEDF408E4221F474A3783545E155118133FA9D65382F7261CF001701E46721021A1315780A53F4238C1AEEA41D38E1B3310D2EC9AE97C2677467157A0B74DA93A3CDF3E6CF898FA0F5CDF3F55CA572385698FD0F55E0E5C63B4BCB9F4A6EDB74C02C0150B057B1A903F7DD8EFC011EE822F2ECBB780914BCC43A11F7BF4A63BE31F06226881ADE9EA780A58C1A6D7183EE947611A03051A0EA817D6D26FC0C418607EEF57AE00494CDDA1CB518C3F910FD46C65F96E3553CEFFD72D13AC13904EFF4E66203B8D512BF7136251120F0BD28C1E781000BBF832A072DB3BBA7B2CFB5AB1F6DAA17FD6EA6C484BB764E5F01194A5445B1FD435977F916261FA1B5AAD6B7E83782C04EBF3CBD11DC7D929FFD8A16597E2D6A384F343D08E13CEA8232818D7F989BB4B0D7D7531AF0F4C6683356A109EAFD135D2E3319FFA6218053EC737FBD91D5886790D4FB1DB70F3D704148EFF2FAA0241F47F2902EA8286BD7647B615197B0E2A70F3638BDF46973518EA692DA5EE26E533F815FA5E5835C2080FAC1776A7CCFE2F49B1400A55F24C9FC465A766772EFB35756AABF0A42B58966E883AFE5E4000D863756225CDDA2F5AC06093173A1AFB5AD9A7B721A30820170A4AE35B3A2F09DE1B53B7D7A407E0F77F1CD4201337315E6677D30CA3E40F84A7AD707BE0FF99CE9334FAE40692F38135DBBC8CE8E7604C0F9C8AE1989C9FE2AC29C2800DC8876032B416CE37F7FB |
316 | 20180416190916 2 6 100 7679 5 FBED7F3DD7CF86B0A6EEDC1930C6958C3C00695DAF4347560C5AC1AA4B22F4DC76F190D63E230EB0CB4344A370A471F17FFCA8DA3B5B0A903F9D1258370125F6C172F3EC5F56D7B8EBD07B2072C45D6141DA3CDC01C3D95DE279C5FAA1E042651028141085EB68AFAC473600F75F4A373DC234D5405DCE7AB5B5854960ABC550FCEFEE8FD578810201DE6B4A5EF616F0CBF5707466D7ECBFD488EB68AD4B2EAC889BA2B7FEFE19CD8AA2C78F61D5DA08B4BC2738E1997F951A525EEF9F668148996D1ABFD1620F9276D741A46BECC0B7868A54745E0B16589A4AA7B938AF92FCA0FC9BBC193504D7EBFEFFEC996746DC6CAD3C192D724FB51E6228915789FF18314B3EB690359ADED802F35F48EC0D9C85AA1A20A2E5CF6EB795F2CCD03284547688B1B80A07EFC31668D30836C59C958BBBF6C1EE3940CC43A9334289C872302BB70368FDAC1653AF132F3E398E9310159C839E72555FD889E4E3B05E714E44E116804BF3748F62EF46E6A05DEC58A55185E43E2310EC945004AD61945BD2AD923B7B3C69A01C0393C15B6000BF542A55274ACA20B8A6EB96FAF83E27023FE0EA9EE564959A91BE17110176FB10D1A094947A23EFDE15DD093EF477EF798BCA8F5E14F85411242BC9C9492081444490C072BE8511B3C961AAAC80477897B54BDABE78C533F2E149FA64B51936E31F126625566CAFBB57E9F36CE0DF72A45E61AB27B6D25DEA3BA35910E16BB00AD300CEE2535CE75F9411DD43943250B03EBBA60C5C788974F2F695967103045F3A90A587AEFD0613F9C8E10A273DD827A314C75C7DBCE4326191DBCB92020CDB75129BCA032B6FD59D368C3E2404B2832398E40F43ACE284A91DED8812AA23E5B5A1D36AE204C53F1C6EF0E89AD31D1552E70538451847D7332D8FCACB62A1E56C1E5643E4F7AF63C67E082AC95DCB190795FA53522FA046F1919C81A088D7A8A452124E562BE2A702139670E94524D3110B9DFF35AE73F43280600B8304FA2E776089AF2ED929695967998E29A343FF62C4CAD7618222C01735734342FD33284BE9BDA4976DA1BC3B384E6F813FCBDFA3DC57B841515836CB2B37116EB6D417BBE6AEA7604AA915530AD803DF1C13656753C1A5867F4A3AE94BA7347580EE5A6CEBD2F3EB9B7F83E7B74F38995168F08A15A4CDF5702EA9DC907FC45910586D59537582DB1D5F155BF0050866CE3087560F1F44D1F275FD2B422038F9D8643C3BEBA49938D514848AC4F68F4CF44329C7E806B911B0CB7FF0020F3277A3E2B4FF17090D012B641E24D67A962E2FE361504DB014155F074F30F52078CB31DFC51B32746A42EDBF013F9920CFB17D6F71FA97 | 316 | 20180926074350 2 6 100 7679 2 C988D06CCD826A9351D5CAE32A47B28ECC90FA4870D861CCC058CFA49419B0044A395E3F289A48C821B2EFE08D293B917B1DB2E2369564F5D066084F71A090706F84E101625CACAAECFFF3B2FE2A8C04FF9A14D43E9B316576F1571B0FDD51A119222601AE2BBFC3007FBC12D10A2D725AD9D8503A47B4B1977FAF4B0C8E244C372662A335C82380718ABAA9B522A03866EBFC6DD7DEE135A54FDCE58EAAF1996D2485E178888F361B01C2A5F5E21E65BAFFE3024C02210AF189975CADE7BFEAD4A90401D7E37D9B855FA8C8F0D2FBFF9357F8C05E3A2A14173E8F7555FD78B88ECEDC94E238639FA1F59C896F61501B2094199D7679805FB69026D4F13CDEB60CAA339BEB091D7D0C125C72028FDFEC35C5D6EE231B1A46C0619BF822F415121A975322001C4EDC29C5CAA430D1471D1013B67B90F5A7FAFB322B53A9C4D418763CB8A9DD068BF3B7702BA939B4FB0DA5253A999B5A8DFA664D2A9F94169F34E46D45D348E3A7E3424CF6019CFDFE1623940B3FC47A1064E601549C02020571FA10F63AEB0676213CD71D1A8A4140662D00471FE9BA88C269F8D217A978AE910A85CADCA772BD7023DC8D0C2ED524C7FEEFEDF408E4221F474A3783545E155118133FA9D65382F7261CF001701E46721021A1315780A53F4238C1AEEA41D38E1B3310D2EC9AE97C2677467157A0B74DA93A3CDF3E6CF898FA0F5CDF3F55CA572385698FD0F55E0E5C63B4BCB9F4A6EDB74C02C0150B057B1A903F7DD8EFC011EE822F2ECBB780914BCC43A11F7BF4A63BE31F06226881ADE9EA780A58C1A6D7183EE947611A03051A0EA817D6D26FC0C418607EEF57AE00494CDDA1CB518C3F910FD46C65F96E3553CEFFD72D13AC13904EFF4E66203B8D512BF7136251120F0BD28C1E781000BBF832A072DB3BBA7B2CFB5AB1F6DAA17FD6EA6C484BB764E5F01194A5445B1FD435977F916261FA1B5AAD6B7E83782C04EBF3CBD11DC7D929FFD8A16597E2D6A384F343D08E13CEA8232818D7F989BB4B0D7D7531AF0F4C6683356A109EAFD135D2E3319FFA6218053EC737FBD91D5886790D4FB1DB70F3D704148EFF2FAA0241F47F2902EA8286BD7647B615197B0E2A70F3638BDF46973518EA692DA5EE26E533F815FA5E5835C2080FAC1776A7CCFE2F49B1400A55F24C9FC465A766772EFB35756AABF0A42B58966E883AFE5E4000D863756225CDDA2F5AC06093173A1AFB5AD9A7B721A30820170A4AE35B3A2F09DE1B53B7D7A407E0F77F1CD4201337315E6677D30CA3E40F84A7AD707BE0FF99CE9334FAE40692F38135DBBC8CE8E7604C0F9C8AE1989C9FE2AC29C2800DC8876032B416D109F343 |
317 | 20180416195012 2 6 100 7679 5 FBED7F3DD7CF86B0A6EEDC1930C6958C3C00695DAF4347560C5AC1AA4B22F4DC76F190D63E230EB0CB4344A370A471F17FFCA8DA3B5B0A903F9D1258370125F6C172F3EC5F56D7B8EBD07B2072C45D6141DA3CDC01C3D95DE279C5FAA1E042651028141085EB68AFAC473600F75F4A373DC234D5405DCE7AB5B5854960ABC550FCEFEE8FD578810201DE6B4A5EF616F0CBF5707466D7ECBFD488EB68AD4B2EAC889BA2B7FEFE19CD8AA2C78F61D5DA08B4BC2738E1997F951A525EEF9F668148996D1ABFD1620F9276D741A46BECC0B7868A54745E0B16589A4AA7B938AF92FCA0FC9BBC193504D7EBFEFFEC996746DC6CAD3C192D724FB51E6228915789FF18314B3EB690359ADED802F35F48EC0D9C85AA1A20A2E5CF6EB795F2CCD03284547688B1B80A07EFC31668D30836C59C958BBBF6C1EE3940CC43A9334289C872302BB70368FDAC1653AF132F3E398E9310159C839E72555FD889E4E3B05E714E44E116804BF3748F62EF46E6A05DEC58A55185E43E2310EC945004AD61945BD2AD923B7B3C69A01C0393C15B6000BF542A55274ACA20B8A6EB96FAF83E27023FE0EA9EE564959A91BE17110176FB10D1A094947A23EFDE15DD093EF477EF798BCA8F5E14F85411242BC9C9492081444490C072BE8511B3C961AAAC80477897B54BDABE78C533F2E149FA64B51936E31F126625566CAFBB57E9F36CE0DF72A45E61AB27B6D25DEA3BA35910E16BB00AD300CEE2535CE75F9411DD43943250B03EBBA60C5C788974F2F695967103045F3A90A587AEFD0613F9C8E10A273DD827A314C75C7DBCE4326191DBCB92020CDB75129BCA032B6FD59D368C3E2404B2832398E40F43ACE284A91DED8812AA23E5B5A1D36AE204C53F1C6EF0E89AD31D1552E70538451847D7332D8FCACB62A1E56C1E5643E4F7AF63C67E082AC95DCB190795FA53522FA046F1919C81A088D7A8A452124E562BE2A702139670E94524D3110B9DFF35AE73F43280600B8304FA2E776089AF2ED929695967998E29A343FF62C4CAD7618222C01735734342FD33284BE9BDA4976DA1BC3B384E6F813FCBDFA3DC57B841515836CB2B37116EB6D417BBE6AEA7604AA915530AD803DF1C13656753C1A5867F4A3AE94BA7347580EE5A6CEBD2F3EB9B7F83E7B74F38995168F08A15A4CDF5702EA9DC907FC45910586D59537582DB1D5F155BF0050866CE3087560F1F44D1F275FD2B422038F9D8643C3BEBA49938D514848AC4F68F4CF44329C7E806B911B0CB7FF0020F3277A3E2B4FF17090D012B641E24D67A962E2FE361504DB014155F074F30F52078CB31DFC51B32746A42EDBF013F9920CFB17D6FE60F77 | 317 | 20180926090735 2 6 100 7679 5 C988D06CCD826A9351D5CAE32A47B28ECC90FA4870D861CCC058CFA49419B0044A395E3F289A48C821B2EFE08D293B917B1DB2E2369564F5D066084F71A090706F84E101625CACAAECFFF3B2FE2A8C04FF9A14D43E9B316576F1571B0FDD51A119222601AE2BBFC3007FBC12D10A2D725AD9D8503A47B4B1977FAF4B0C8E244C372662A335C82380718ABAA9B522A03866EBFC6DD7DEE135A54FDCE58EAAF1996D2485E178888F361B01C2A5F5E21E65BAFFE3024C02210AF189975CADE7BFEAD4A90401D7E37D9B855FA8C8F0D2FBFF9357F8C05E3A2A14173E8F7555FD78B88ECEDC94E238639FA1F59C896F61501B2094199D7679805FB69026D4F13CDEB60CAA339BEB091D7D0C125C72028FDFEC35C5D6EE231B1A46C0619BF822F415121A975322001C4EDC29C5CAA430D1471D1013B67B90F5A7FAFB322B53A9C4D418763CB8A9DD068BF3B7702BA939B4FB0DA5253A999B5A8DFA664D2A9F94169F34E46D45D348E3A7E3424CF6019CFDFE1623940B3FC47A1064E601549C02020571FA10F63AEB0676213CD71D1A8A4140662D00471FE9BA88C269F8D217A978AE910A85CADCA772BD7023DC8D0C2ED524C7FEEFEDF408E4221F474A3783545E155118133FA9D65382F7261CF001701E46721021A1315780A53F4238C1AEEA41D38E1B3310D2EC9AE97C2677467157A0B74DA93A3CDF3E6CF898FA0F5CDF3F55CA572385698FD0F55E0E5C63B4BCB9F4A6EDB74C02C0150B057B1A903F7DD8EFC011EE822F2ECBB780914BCC43A11F7BF4A63BE31F06226881ADE9EA780A58C1A6D7183EE947611A03051A0EA817D6D26FC0C418607EEF57AE00494CDDA1CB518C3F910FD46C65F96E3553CEFFD72D13AC13904EFF4E66203B8D512BF7136251120F0BD28C1E781000BBF832A072DB3BBA7B2CFB5AB1F6DAA17FD6EA6C484BB764E5F01194A5445B1FD435977F916261FA1B5AAD6B7E83782C04EBF3CBD11DC7D929FFD8A16597E2D6A384F343D08E13CEA8232818D7F989BB4B0D7D7531AF0F4C6683356A109EAFD135D2E3319FFA6218053EC737FBD91D5886790D4FB1DB70F3D704148EFF2FAA0241F47F2902EA8286BD7647B615197B0E2A70F3638BDF46973518EA692DA5EE26E533F815FA5E5835C2080FAC1776A7CCFE2F49B1400A55F24C9FC465A766772EFB35756AABF0A42B58966E883AFE5E4000D863756225CDDA2F5AC06093173A1AFB5AD9A7B721A30820170A4AE35B3A2F09DE1B53B7D7A407E0F77F1CD4201337315E6677D30CA3E40F84A7AD707BE0FF99CE9334FAE40692F38135DBBC8CE8E7604C0F9C8AE1989C9FE2AC29C2800DC8876032B416D2224817 |
318 | 20180417005002 2 6 100 7679 5 FBED7F3DD7CF86B0A6EEDC1930C6958C3C00695DAF4347560C5AC1AA4B22F4DC76F190D63E230EB0CB4344A370A471F17FFCA8DA3B5B0A903F9D1258370125F6C172F3EC5F56D7B8EBD07B2072C45D6141DA3CDC01C3D95DE279C5FAA1E042651028141085EB68AFAC473600F75F4A373DC234D5405DCE7AB5B5854960ABC550FCEFEE8FD578810201DE6B4A5EF616F0CBF5707466D7ECBFD488EB68AD4B2EAC889BA2B7FEFE19CD8AA2C78F61D5DA08B4BC2738E1997F951A525EEF9F668148996D1ABFD1620F9276D741A46BECC0B7868A54745E0B16589A4AA7B938AF92FCA0FC9BBC193504D7EBFEFFEC996746DC6CAD3C192D724FB51E6228915789FF18314B3EB690359ADED802F35F48EC0D9C85AA1A20A2E5CF6EB795F2CCD03284547688B1B80A07EFC31668D30836C59C958BBBF6C1EE3940CC43A9334289C872302BB70368FDAC1653AF132F3E398E9310159C839E72555FD889E4E3B05E714E44E116804BF3748F62EF46E6A05DEC58A55185E43E2310EC945004AD61945BD2AD923B7B3C69A01C0393C15B6000BF542A55274ACA20B8A6EB96FAF83E27023FE0EA9EE564959A91BE17110176FB10D1A094947A23EFDE15DD093EF477EF798BCA8F5E14F85411242BC9C9492081444490C072BE8511B3C961AAAC80477897B54BDABE78C533F2E149FA64B51936E31F126625566CAFBB57E9F36CE0DF72A45E61AB27B6D25DEA3BA35910E16BB00AD300CEE2535CE75F9411DD43943250B03EBBA60C5C788974F2F695967103045F3A90A587AEFD0613F9C8E10A273DD827A314C75C7DBCE4326191DBCB92020CDB75129BCA032B6FD59D368C3E2404B2832398E40F43ACE284A91DED8812AA23E5B5A1D36AE204C53F1C6EF0E89AD31D1552E70538451847D7332D8FCACB62A1E56C1E5643E4F7AF63C67E082AC95DCB190795FA53522FA046F1919C81A088D7A8A452124E562BE2A702139670E94524D3110B9DFF35AE73F43280600B8304FA2E776089AF2ED929695967998E29A343FF62C4CAD7618222C01735734342FD33284BE9BDA4976DA1BC3B384E6F813FCBDFA3DC57B841515836CB2B37116EB6D417BBE6AEA7604AA915530AD803DF1C13656753C1A5867F4A3AE94BA7347580EE5A6CEBD2F3EB9B7F83E7B74F38995168F08A15A4CDF5702EA9DC907FC45910586D59537582DB1D5F155BF0050866CE3087560F1F44D1F275FD2B422038F9D8643C3BEBA49938D514848AC4F68F4CF44329C7E806B911B0CB7FF0020F3277A3E2B4FF17090D012B641E24D67A962E2FE361504DB014155F074F30F52078CB31DFC51B32746A42EDBF013F9920CFB17D737F03EF | 318 | 20180926125425 2 6 100 7679 2 C988D06CCD826A9351D5CAE32A47B28ECC90FA4870D861CCC058CFA49419B0044A395E3F289A48C821B2EFE08D293B917B1DB2E2369564F5D066084F71A090706F84E101625CACAAECFFF3B2FE2A8C04FF9A14D43E9B316576F1571B0FDD51A119222601AE2BBFC3007FBC12D10A2D725AD9D8503A47B4B1977FAF4B0C8E244C372662A335C82380718ABAA9B522A03866EBFC6DD7DEE135A54FDCE58EAAF1996D2485E178888F361B01C2A5F5E21E65BAFFE3024C02210AF189975CADE7BFEAD4A90401D7E37D9B855FA8C8F0D2FBFF9357F8C05E3A2A14173E8F7555FD78B88ECEDC94E238639FA1F59C896F61501B2094199D7679805FB69026D4F13CDEB60CAA339BEB091D7D0C125C72028FDFEC35C5D6EE231B1A46C0619BF822F415121A975322001C4EDC29C5CAA430D1471D1013B67B90F5A7FAFB322B53A9C4D418763CB8A9DD068BF3B7702BA939B4FB0DA5253A999B5A8DFA664D2A9F94169F34E46D45D348E3A7E3424CF6019CFDFE1623940B3FC47A1064E601549C02020571FA10F63AEB0676213CD71D1A8A4140662D00471FE9BA88C269F8D217A978AE910A85CADCA772BD7023DC8D0C2ED524C7FEEFEDF408E4221F474A3783545E155118133FA9D65382F7261CF001701E46721021A1315780A53F4238C1AEEA41D38E1B3310D2EC9AE97C2677467157A0B74DA93A3CDF3E6CF898FA0F5CDF3F55CA572385698FD0F55E0E5C63B4BCB9F4A6EDB74C02C0150B057B1A903F7DD8EFC011EE822F2ECBB780914BCC43A11F7BF4A63BE31F06226881ADE9EA780A58C1A6D7183EE947611A03051A0EA817D6D26FC0C418607EEF57AE00494CDDA1CB518C3F910FD46C65F96E3553CEFFD72D13AC13904EFF4E66203B8D512BF7136251120F0BD28C1E781000BBF832A072DB3BBA7B2CFB5AB1F6DAA17FD6EA6C484BB764E5F01194A5445B1FD435977F916261FA1B5AAD6B7E83782C04EBF3CBD11DC7D929FFD8A16597E2D6A384F343D08E13CEA8232818D7F989BB4B0D7D7531AF0F4C6683356A109EAFD135D2E3319FFA6218053EC737FBD91D5886790D4FB1DB70F3D704148EFF2FAA0241F47F2902EA8286BD7647B615197B0E2A70F3638BDF46973518EA692DA5EE26E533F815FA5E5835C2080FAC1776A7CCFE2F49B1400A55F24C9FC465A766772EFB35756AABF0A42B58966E883AFE5E4000D863756225CDDA2F5AC06093173A1AFB5AD9A7B721A30820170A4AE35B3A2F09DE1B53B7D7A407E0F77F1CD4201337315E6677D30CA3E40F84A7AD707BE0FF99CE9334FAE40692F38135DBBC8CE8E7604C0F9C8AE1989C9FE2AC29C2800DC8876032B416D526B7D3 |
319 | 20180417031611 2 6 100 7679 2 FBED7F3DD7CF86B0A6EEDC1930C6958C3C00695DAF4347560C5AC1AA4B22F4DC76F190D63E230EB0CB4344A370A471F17FFCA8DA3B5B0A903F9D1258370125F6C172F3EC5F56D7B8EBD07B2072C45D6141DA3CDC01C3D95DE279C5FAA1E042651028141085EB68AFAC473600F75F4A373DC234D5405DCE7AB5B5854960ABC550FCEFEE8FD578810201DE6B4A5EF616F0CBF5707466D7ECBFD488EB68AD4B2EAC889BA2B7FEFE19CD8AA2C78F61D5DA08B4BC2738E1997F951A525EEF9F668148996D1ABFD1620F9276D741A46BECC0B7868A54745E0B16589A4AA7B938AF92FCA0FC9BBC193504D7EBFEFFEC996746DC6CAD3C192D724FB51E6228915789FF18314B3EB690359ADED802F35F48EC0D9C85AA1A20A2E5CF6EB795F2CCD03284547688B1B80A07EFC31668D30836C59C958BBBF6C1EE3940CC43A9334289C872302BB70368FDAC1653AF132F3E398E9310159C839E72555FD889E4E3B05E714E44E116804BF3748F62EF46E6A05DEC58A55185E43E2310EC945004AD61945BD2AD923B7B3C69A01C0393C15B6000BF542A55274ACA20B8A6EB96FAF83E27023FE0EA9EE564959A91BE17110176FB10D1A094947A23EFDE15DD093EF477EF798BCA8F5E14F85411242BC9C9492081444490C072BE8511B3C961AAAC80477897B54BDABE78C533F2E149FA64B51936E31F126625566CAFBB57E9F36CE0DF72A45E61AB27B6D25DEA3BA35910E16BB00AD300CEE2535CE75F9411DD43943250B03EBBA60C5C788974F2F695967103045F3A90A587AEFD0613F9C8E10A273DD827A314C75C7DBCE4326191DBCB92020CDB75129BCA032B6FD59D368C3E2404B2832398E40F43ACE284A91DED8812AA23E5B5A1D36AE204C53F1C6EF0E89AD31D1552E70538451847D7332D8FCACB62A1E56C1E5643E4F7AF63C67E082AC95DCB190795FA53522FA046F1919C81A088D7A8A452124E562BE2A702139670E94524D3110B9DFF35AE73F43280600B8304FA2E776089AF2ED929695967998E29A343FF62C4CAD7618222C01735734342FD33284BE9BDA4976DA1BC3B384E6F813FCBDFA3DC57B841515836CB2B37116EB6D417BBE6AEA7604AA915530AD803DF1C13656753C1A5867F4A3AE94BA7347580EE5A6CEBD2F3EB9B7F83E7B74F38995168F08A15A4CDF5702EA9DC907FC45910586D59537582DB1D5F155BF0050866CE3087560F1F44D1F275FD2B422038F9D8643C3BEBA49938D514848AC4F68F4CF44329C7E806B911B0CB7FF0020F3277A3E2B4FF17090D012B641E24D67A962E2FE361504DB014155F074F30F52078CB31DFC51B32746A42EDBF013F9920CFB17D75497E7B | 319 | 20180926162303 2 6 100 7679 2 C988D06CCD826A9351D5CAE32A47B28ECC90FA4870D861CCC058CFA49419B0044A395E3F289A48C821B2EFE08D293B917B1DB2E2369564F5D066084F71A090706F84E101625CACAAECFFF3B2FE2A8C04FF9A14D43E9B316576F1571B0FDD51A119222601AE2BBFC3007FBC12D10A2D725AD9D8503A47B4B1977FAF4B0C8E244C372662A335C82380718ABAA9B522A03866EBFC6DD7DEE135A54FDCE58EAAF1996D2485E178888F361B01C2A5F5E21E65BAFFE3024C02210AF189975CADE7BFEAD4A90401D7E37D9B855FA8C8F0D2FBFF9357F8C05E3A2A14173E8F7555FD78B88ECEDC94E238639FA1F59C896F61501B2094199D7679805FB69026D4F13CDEB60CAA339BEB091D7D0C125C72028FDFEC35C5D6EE231B1A46C0619BF822F415121A975322001C4EDC29C5CAA430D1471D1013B67B90F5A7FAFB322B53A9C4D418763CB8A9DD068BF3B7702BA939B4FB0DA5253A999B5A8DFA664D2A9F94169F34E46D45D348E3A7E3424CF6019CFDFE1623940B3FC47A1064E601549C02020571FA10F63AEB0676213CD71D1A8A4140662D00471FE9BA88C269F8D217A978AE910A85CADCA772BD7023DC8D0C2ED524C7FEEFEDF408E4221F474A3783545E155118133FA9D65382F7261CF001701E46721021A1315780A53F4238C1AEEA41D38E1B3310D2EC9AE97C2677467157A0B74DA93A3CDF3E6CF898FA0F5CDF3F55CA572385698FD0F55E0E5C63B4BCB9F4A6EDB74C02C0150B057B1A903F7DD8EFC011EE822F2ECBB780914BCC43A11F7BF4A63BE31F06226881ADE9EA780A58C1A6D7183EE947611A03051A0EA817D6D26FC0C418607EEF57AE00494CDDA1CB518C3F910FD46C65F96E3553CEFFD72D13AC13904EFF4E66203B8D512BF7136251120F0BD28C1E781000BBF832A072DB3BBA7B2CFB5AB1F6DAA17FD6EA6C484BB764E5F01194A5445B1FD435977F916261FA1B5AAD6B7E83782C04EBF3CBD11DC7D929FFD8A16597E2D6A384F343D08E13CEA8232818D7F989BB4B0D7D7531AF0F4C6683356A109EAFD135D2E3319FFA6218053EC737FBD91D5886790D4FB1DB70F3D704148EFF2FAA0241F47F2902EA8286BD7647B615197B0E2A70F3638BDF46973518EA692DA5EE26E533F815FA5E5835C2080FAC1776A7CCFE2F49B1400A55F24C9FC465A766772EFB35756AABF0A42B58966E883AFE5E4000D863756225CDDA2F5AC06093173A1AFB5AD9A7B721A30820170A4AE35B3A2F09DE1B53B7D7A407E0F77F1CD4201337315E6677D30CA3E40F84A7AD707BE0FF99CE9334FAE40692F38135DBBC8CE8E7604C0F9C8AE1989C9FE2AC29C2800DC8876032B416D7F88093 |
320 | 20180417042601 2 6 100 7679 5 FBED7F3DD7CF86B0A6EEDC1930C6958C3C00695DAF4347560C5AC1AA4B22F4DC76F190D63E230EB0CB4344A370A471F17FFCA8DA3B5B0A903F9D1258370125F6C172F3EC5F56D7B8EBD07B2072C45D6141DA3CDC01C3D95DE279C5FAA1E042651028141085EB68AFAC473600F75F4A373DC234D5405DCE7AB5B5854960ABC550FCEFEE8FD578810201DE6B4A5EF616F0CBF5707466D7ECBFD488EB68AD4B2EAC889BA2B7FEFE19CD8AA2C78F61D5DA08B4BC2738E1997F951A525EEF9F668148996D1ABFD1620F9276D741A46BECC0B7868A54745E0B16589A4AA7B938AF92FCA0FC9BBC193504D7EBFEFFEC996746DC6CAD3C192D724FB51E6228915789FF18314B3EB690359ADED802F35F48EC0D9C85AA1A20A2E5CF6EB795F2CCD03284547688B1B80A07EFC31668D30836C59C958BBBF6C1EE3940CC43A9334289C872302BB70368FDAC1653AF132F3E398E9310159C839E72555FD889E4E3B05E714E44E116804BF3748F62EF46E6A05DEC58A55185E43E2310EC945004AD61945BD2AD923B7B3C69A01C0393C15B6000BF542A55274ACA20B8A6EB96FAF83E27023FE0EA9EE564959A91BE17110176FB10D1A094947A23EFDE15DD093EF477EF798BCA8F5E14F85411242BC9C9492081444490C072BE8511B3C961AAAC80477897B54BDABE78C533F2E149FA64B51936E31F126625566CAFBB57E9F36CE0DF72A45E61AB27B6D25DEA3BA35910E16BB00AD300CEE2535CE75F9411DD43943250B03EBBA60C5C788974F2F695967103045F3A90A587AEFD0613F9C8E10A273DD827A314C75C7DBCE4326191DBCB92020CDB75129BCA032B6FD59D368C3E2404B2832398E40F43ACE284A91DED8812AA23E5B5A1D36AE204C53F1C6EF0E89AD31D1552E70538451847D7332D8FCACB62A1E56C1E5643E4F7AF63C67E082AC95DCB190795FA53522FA046F1919C81A088D7A8A452124E562BE2A702139670E94524D3110B9DFF35AE73F43280600B8304FA2E776089AF2ED929695967998E29A343FF62C4CAD7618222C01735734342FD33284BE9BDA4976DA1BC3B384E6F813FCBDFA3DC57B841515836CB2B37116EB6D417BBE6AEA7604AA915530AD803DF1C13656753C1A5867F4A3AE94BA7347580EE5A6CEBD2F3EB9B7F83E7B74F38995168F08A15A4CDF5702EA9DC907FC45910586D59537582DB1D5F155BF0050866CE3087560F1F44D1F275FD2B422038F9D8643C3BEBA49938D514848AC4F68F4CF44329C7E806B911B0CB7FF0020F3277A3E2B4FF17090D012B641E24D67A962E2FE361504DB014155F074F30F52078CB31DFC51B32746A42EDBF013F9920CFB17D761E7D7F | 320 | 20180926165118 2 6 100 7679 2 C988D06CCD826A9351D5CAE32A47B28ECC90FA4870D861CCC058CFA49419B0044A395E3F289A48C821B2EFE08D293B917B1DB2E2369564F5D066084F71A090706F84E101625CACAAECFFF3B2FE2A8C04FF9A14D43E9B316576F1571B0FDD51A119222601AE2BBFC3007FBC12D10A2D725AD9D8503A47B4B1977FAF4B0C8E244C372662A335C82380718ABAA9B522A03866EBFC6DD7DEE135A54FDCE58EAAF1996D2485E178888F361B01C2A5F5E21E65BAFFE3024C02210AF189975CADE7BFEAD4A90401D7E37D9B855FA8C8F0D2FBFF9357F8C05E3A2A14173E8F7555FD78B88ECEDC94E238639FA1F59C896F61501B2094199D7679805FB69026D4F13CDEB60CAA339BEB091D7D0C125C72028FDFEC35C5D6EE231B1A46C0619BF822F415121A975322001C4EDC29C5CAA430D1471D1013B67B90F5A7FAFB322B53A9C4D418763CB8A9DD068BF3B7702BA939B4FB0DA5253A999B5A8DFA664D2A9F94169F34E46D45D348E3A7E3424CF6019CFDFE1623940B3FC47A1064E601549C02020571FA10F63AEB0676213CD71D1A8A4140662D00471FE9BA88C269F8D217A978AE910A85CADCA772BD7023DC8D0C2ED524C7FEEFEDF408E4221F474A3783545E155118133FA9D65382F7261CF001701E46721021A1315780A53F4238C1AEEA41D38E1B3310D2EC9AE97C2677467157A0B74DA93A3CDF3E6CF898FA0F5CDF3F55CA572385698FD0F55E0E5C63B4BCB9F4A6EDB74C02C0150B057B1A903F7DD8EFC011EE822F2ECBB780914BCC43A11F7BF4A63BE31F06226881ADE9EA780A58C1A6D7183EE947611A03051A0EA817D6D26FC0C418607EEF57AE00494CDDA1CB518C3F910FD46C65F96E3553CEFFD72D13AC13904EFF4E66203B8D512BF7136251120F0BD28C1E781000BBF832A072DB3BBA7B2CFB5AB1F6DAA17FD6EA6C484BB764E5F01194A5445B1FD435977F916261FA1B5AAD6B7E83782C04EBF3CBD11DC7D929FFD8A16597E2D6A384F343D08E13CEA8232818D7F989BB4B0D7D7531AF0F4C6683356A109EAFD135D2E3319FFA6218053EC737FBD91D5886790D4FB1DB70F3D704148EFF2FAA0241F47F2902EA8286BD7647B615197B0E2A70F3638BDF46973518EA692DA5EE26E533F815FA5E5835C2080FAC1776A7CCFE2F49B1400A55F24C9FC465A766772EFB35756AABF0A42B58966E883AFE5E4000D863756225CDDA2F5AC06093173A1AFB5AD9A7B721A30820170A4AE35B3A2F09DE1B53B7D7A407E0F77F1CD4201337315E6677D30CA3E40F84A7AD707BE0FF99CE9334FAE40692F38135DBBC8CE8E7604C0F9C8AE1989C9FE2AC29C2800DC8876032B416D85194CB |
321 | 20180417230051 2 6 100 7679 5 FBED7F3DD7CF86B0A6EEDC1930C6958C3C00695DAF4347560C5AC1AA4B22F4DC76F190D63E230EB0CB4344A370A471F17FFCA8DA3B5B0A903F9D1258370125F6C172F3EC5F56D7B8EBD07B2072C45D6141DA3CDC01C3D95DE279C5FAA1E042651028141085EB68AFAC473600F75F4A373DC234D5405DCE7AB5B5854960ABC550FCEFEE8FD578810201DE6B4A5EF616F0CBF5707466D7ECBFD488EB68AD4B2EAC889BA2B7FEFE19CD8AA2C78F61D5DA08B4BC2738E1997F951A525EEF9F668148996D1ABFD1620F9276D741A46BECC0B7868A54745E0B16589A4AA7B938AF92FCA0FC9BBC193504D7EBFEFFEC996746DC6CAD3C192D724FB51E6228915789FF18314B3EB690359ADED802F35F48EC0D9C85AA1A20A2E5CF6EB795F2CCD03284547688B1B80A07EFC31668D30836C59C958BBBF6C1EE3940CC43A9334289C872302BB70368FDAC1653AF132F3E398E9310159C839E72555FD889E4E3B05E714E44E116804BF3748F62EF46E6A05DEC58A55185E43E2310EC945004AD61945BD2AD923B7B3C69A01C0393C15B6000BF542A55274ACA20B8A6EB96FAF83E27023FE0EA9EE564959A91BE17110176FB10D1A094947A23EFDE15DD093EF477EF798BCA8F5E14F85411242BC9C9492081444490C072BE8511B3C961AAAC80477897B54BDABE78C533F2E149FA64B51936E31F126625566CAFBB57E9F36CE0DF72A45E61AB27B6D25DEA3BA35910E16BB00AD300CEE2535CE75F9411DD43943250B03EBBA60C5C788974F2F695967103045F3A90A587AEFD0613F9C8E10A273DD827A314C75C7DBCE4326191DBCB92020CDB75129BCA032B6FD59D368C3E2404B2832398E40F43ACE284A91DED8812AA23E5B5A1D36AE204C53F1C6EF0E89AD31D1552E70538451847D7332D8FCACB62A1E56C1E5643E4F7AF63C67E082AC95DCB190795FA53522FA046F1919C81A088D7A8A452124E562BE2A702139670E94524D3110B9DFF35AE73F43280600B8304FA2E776089AF2ED929695967998E29A343FF62C4CAD7618222C01735734342FD33284BE9BDA4976DA1BC3B384E6F813FCBDFA3DC57B841515836CB2B37116EB6D417BBE6AEA7604AA915530AD803DF1C13656753C1A5867F4A3AE94BA7347580EE5A6CEBD2F3EB9B7F83E7B74F38995168F08A15A4CDF5702EA9DC907FC45910586D59537582DB1D5F155BF0050866CE3087560F1F44D1F275FD2B422038F9D8643C3BEBA49938D514848AC4F68F4CF44329C7E806B911B0CB7FF0020F3277A3E2B4FF17090D012B641E24D67A962E2FE361504DB014155F074F30F52078CB31DFC51B32746A42EDBF013F9920CFB17D83ABCCEF | 321 | 20180926224609 2 6 100 7679 5 C988D06CCD826A9351D5CAE32A47B28ECC90FA4870D861CCC058CFA49419B0044A395E3F289A48C821B2EFE08D293B917B1DB2E2369564F5D066084F71A090706F84E101625CACAAECFFF3B2FE2A8C04FF9A14D43E9B316576F1571B0FDD51A119222601AE2BBFC3007FBC12D10A2D725AD9D8503A47B4B1977FAF4B0C8E244C372662A335C82380718ABAA9B522A03866EBFC6DD7DEE135A54FDCE58EAAF1996D2485E178888F361B01C2A5F5E21E65BAFFE3024C02210AF189975CADE7BFEAD4A90401D7E37D9B855FA8C8F0D2FBFF9357F8C05E3A2A14173E8F7555FD78B88ECEDC94E238639FA1F59C896F61501B2094199D7679805FB69026D4F13CDEB60CAA339BEB091D7D0C125C72028FDFEC35C5D6EE231B1A46C0619BF822F415121A975322001C4EDC29C5CAA430D1471D1013B67B90F5A7FAFB322B53A9C4D418763CB8A9DD068BF3B7702BA939B4FB0DA5253A999B5A8DFA664D2A9F94169F34E46D45D348E3A7E3424CF6019CFDFE1623940B3FC47A1064E601549C02020571FA10F63AEB0676213CD71D1A8A4140662D00471FE9BA88C269F8D217A978AE910A85CADCA772BD7023DC8D0C2ED524C7FEEFEDF408E4221F474A3783545E155118133FA9D65382F7261CF001701E46721021A1315780A53F4238C1AEEA41D38E1B3310D2EC9AE97C2677467157A0B74DA93A3CDF3E6CF898FA0F5CDF3F55CA572385698FD0F55E0E5C63B4BCB9F4A6EDB74C02C0150B057B1A903F7DD8EFC011EE822F2ECBB780914BCC43A11F7BF4A63BE31F06226881ADE9EA780A58C1A6D7183EE947611A03051A0EA817D6D26FC0C418607EEF57AE00494CDDA1CB518C3F910FD46C65F96E3553CEFFD72D13AC13904EFF4E66203B8D512BF7136251120F0BD28C1E781000BBF832A072DB3BBA7B2CFB5AB1F6DAA17FD6EA6C484BB764E5F01194A5445B1FD435977F916261FA1B5AAD6B7E83782C04EBF3CBD11DC7D929FFD8A16597E2D6A384F343D08E13CEA8232818D7F989BB4B0D7D7531AF0F4C6683356A109EAFD135D2E3319FFA6218053EC737FBD91D5886790D4FB1DB70F3D704148EFF2FAA0241F47F2902EA8286BD7647B615197B0E2A70F3638BDF46973518EA692DA5EE26E533F815FA5E5835C2080FAC1776A7CCFE2F49B1400A55F24C9FC465A766772EFB35756AABF0A42B58966E883AFE5E4000D863756225CDDA2F5AC06093173A1AFB5AD9A7B721A30820170A4AE35B3A2F09DE1B53B7D7A407E0F77F1CD4201337315E6677D30CA3E40F84A7AD707BE0FF99CE9334FAE40692F38135DBBC8CE8E7604C0F9C8AE1989C9FE2AC29C2800DC8876032B416DD089B0F |
322 | 20180417231044 2 6 100 7679 5 FBED7F3DD7CF86B0A6EEDC1930C6958C3C00695DAF4347560C5AC1AA4B22F4DC76F190D63E230EB0CB4344A370A471F17FFCA8DA3B5B0A903F9D1258370125F6C172F3EC5F56D7B8EBD07B2072C45D6141DA3CDC01C3D95DE279C5FAA1E042651028141085EB68AFAC473600F75F4A373DC234D5405DCE7AB5B5854960ABC550FCEFEE8FD578810201DE6B4A5EF616F0CBF5707466D7ECBFD488EB68AD4B2EAC889BA2B7FEFE19CD8AA2C78F61D5DA08B4BC2738E1997F951A525EEF9F668148996D1ABFD1620F9276D741A46BECC0B7868A54745E0B16589A4AA7B938AF92FCA0FC9BBC193504D7EBFEFFEC996746DC6CAD3C192D724FB51E6228915789FF18314B3EB690359ADED802F35F48EC0D9C85AA1A20A2E5CF6EB795F2CCD03284547688B1B80A07EFC31668D30836C59C958BBBF6C1EE3940CC43A9334289C872302BB70368FDAC1653AF132F3E398E9310159C839E72555FD889E4E3B05E714E44E116804BF3748F62EF46E6A05DEC58A55185E43E2310EC945004AD61945BD2AD923B7B3C69A01C0393C15B6000BF542A55274ACA20B8A6EB96FAF83E27023FE0EA9EE564959A91BE17110176FB10D1A094947A23EFDE15DD093EF477EF798BCA8F5E14F85411242BC9C9492081444490C072BE8511B3C961AAAC80477897B54BDABE78C533F2E149FA64B51936E31F126625566CAFBB57E9F36CE0DF72A45E61AB27B6D25DEA3BA35910E16BB00AD300CEE2535CE75F9411DD43943250B03EBBA60C5C788974F2F695967103045F3A90A587AEFD0613F9C8E10A273DD827A314C75C7DBCE4326191DBCB92020CDB75129BCA032B6FD59D368C3E2404B2832398E40F43ACE284A91DED8812AA23E5B5A1D36AE204C53F1C6EF0E89AD31D1552E70538451847D7332D8FCACB62A1E56C1E5643E4F7AF63C67E082AC95DCB190795FA53522FA046F1919C81A088D7A8A452124E562BE2A702139670E94524D3110B9DFF35AE73F43280600B8304FA2E776089AF2ED929695967998E29A343FF62C4CAD7618222C01735734342FD33284BE9BDA4976DA1BC3B384E6F813FCBDFA3DC57B841515836CB2B37116EB6D417BBE6AEA7604AA915530AD803DF1C13656753C1A5867F4A3AE94BA7347580EE5A6CEBD2F3EB9B7F83E7B74F38995168F08A15A4CDF5702EA9DC907FC45910586D59537582DB1D5F155BF0050866CE3087560F1F44D1F275FD2B422038F9D8643C3BEBA49938D514848AC4F68F4CF44329C7E806B911B0CB7FF0020F3277A3E2B4FF17090D012B641E24D67A962E2FE361504DB014155F074F30F52078CB31DFC51B32746A42EDBF013F9920CFB17D83C22B2F | 322 | 20180926225812 2 6 100 7679 2 C988D06CCD826A9351D5CAE32A47B28ECC90FA4870D861CCC058CFA49419B0044A395E3F289A48C821B2EFE08D293B917B1DB2E2369564F5D066084F71A090706F84E101625CACAAECFFF3B2FE2A8C04FF9A14D43E9B316576F1571B0FDD51A119222601AE2BBFC3007FBC12D10A2D725AD9D8503A47B4B1977FAF4B0C8E244C372662A335C82380718ABAA9B522A03866EBFC6DD7DEE135A54FDCE58EAAF1996D2485E178888F361B01C2A5F5E21E65BAFFE3024C02210AF189975CADE7BFEAD4A90401D7E37D9B855FA8C8F0D2FBFF9357F8C05E3A2A14173E8F7555FD78B88ECEDC94E238639FA1F59C896F61501B2094199D7679805FB69026D4F13CDEB60CAA339BEB091D7D0C125C72028FDFEC35C5D6EE231B1A46C0619BF822F415121A975322001C4EDC29C5CAA430D1471D1013B67B90F5A7FAFB322B53A9C4D418763CB8A9DD068BF3B7702BA939B4FB0DA5253A999B5A8DFA664D2A9F94169F34E46D45D348E3A7E3424CF6019CFDFE1623940B3FC47A1064E601549C02020571FA10F63AEB0676213CD71D1A8A4140662D00471FE9BA88C269F8D217A978AE910A85CADCA772BD7023DC8D0C2ED524C7FEEFEDF408E4221F474A3783545E155118133FA9D65382F7261CF001701E46721021A1315780A53F4238C1AEEA41D38E1B3310D2EC9AE97C2677467157A0B74DA93A3CDF3E6CF898FA0F5CDF3F55CA572385698FD0F55E0E5C63B4BCB9F4A6EDB74C02C0150B057B1A903F7DD8EFC011EE822F2ECBB780914BCC43A11F7BF4A63BE31F06226881ADE9EA780A58C1A6D7183EE947611A03051A0EA817D6D26FC0C418607EEF57AE00494CDDA1CB518C3F910FD46C65F96E3553CEFFD72D13AC13904EFF4E66203B8D512BF7136251120F0BD28C1E781000BBF832A072DB3BBA7B2CFB5AB1F6DAA17FD6EA6C484BB764E5F01194A5445B1FD435977F916261FA1B5AAD6B7E83782C04EBF3CBD11DC7D929FFD8A16597E2D6A384F343D08E13CEA8232818D7F989BB4B0D7D7531AF0F4C6683356A109EAFD135D2E3319FFA6218053EC737FBD91D5886790D4FB1DB70F3D704148EFF2FAA0241F47F2902EA8286BD7647B615197B0E2A70F3638BDF46973518EA692DA5EE26E533F815FA5E5835C2080FAC1776A7CCFE2F49B1400A55F24C9FC465A766772EFB35756AABF0A42B58966E883AFE5E4000D863756225CDDA2F5AC06093173A1AFB5AD9A7B721A30820170A4AE35B3A2F09DE1B53B7D7A407E0F77F1CD4201337315E6677D30CA3E40F84A7AD707BE0FF99CE9334FAE40692F38135DBBC8CE8E7604C0F9C8AE1989C9FE2AC29C2800DC8876032B416DD2A3B6B |
323 | 20180418011858 2 6 100 7679 2 FBED7F3DD7CF86B0A6EEDC1930C6958C3C00695DAF4347560C5AC1AA4B22F4DC76F190D63E230EB0CB4344A370A471F17FFCA8DA3B5B0A903F9D1258370125F6C172F3EC5F56D7B8EBD07B2072C45D6141DA3CDC01C3D95DE279C5FAA1E042651028141085EB68AFAC473600F75F4A373DC234D5405DCE7AB5B5854960ABC550FCEFEE8FD578810201DE6B4A5EF616F0CBF5707466D7ECBFD488EB68AD4B2EAC889BA2B7FEFE19CD8AA2C78F61D5DA08B4BC2738E1997F951A525EEF9F668148996D1ABFD1620F9276D741A46BECC0B7868A54745E0B16589A4AA7B938AF92FCA0FC9BBC193504D7EBFEFFEC996746DC6CAD3C192D724FB51E6228915789FF18314B3EB690359ADED802F35F48EC0D9C85AA1A20A2E5CF6EB795F2CCD03284547688B1B80A07EFC31668D30836C59C958BBBF6C1EE3940CC43A9334289C872302BB70368FDAC1653AF132F3E398E9310159C839E72555FD889E4E3B05E714E44E116804BF3748F62EF46E6A05DEC58A55185E43E2310EC945004AD61945BD2AD923B7B3C69A01C0393C15B6000BF542A55274ACA20B8A6EB96FAF83E27023FE0EA9EE564959A91BE17110176FB10D1A094947A23EFDE15DD093EF477EF798BCA8F5E14F85411242BC9C9492081444490C072BE8511B3C961AAAC80477897B54BDABE78C533F2E149FA64B51936E31F126625566CAFBB57E9F36CE0DF72A45E61AB27B6D25DEA3BA35910E16BB00AD300CEE2535CE75F9411DD43943250B03EBBA60C5C788974F2F695967103045F3A90A587AEFD0613F9C8E10A273DD827A314C75C7DBCE4326191DBCB92020CDB75129BCA032B6FD59D368C3E2404B2832398E40F43ACE284A91DED8812AA23E5B5A1D36AE204C53F1C6EF0E89AD31D1552E70538451847D7332D8FCACB62A1E56C1E5643E4F7AF63C67E082AC95DCB190795FA53522FA046F1919C81A088D7A8A452124E562BE2A702139670E94524D3110B9DFF35AE73F43280600B8304FA2E776089AF2ED929695967998E29A343FF62C4CAD7618222C01735734342FD33284BE9BDA4976DA1BC3B384E6F813FCBDFA3DC57B841515836CB2B37116EB6D417BBE6AEA7604AA915530AD803DF1C13656753C1A5867F4A3AE94BA7347580EE5A6CEBD2F3EB9B7F83E7B74F38995168F08A15A4CDF5702EA9DC907FC45910586D59537582DB1D5F155BF0050866CE3087560F1F44D1F275FD2B422038F9D8643C3BEBA49938D514848AC4F68F4CF44329C7E806B911B0CB7FF0020F3277A3E2B4FF17090D012B641E24D67A962E2FE361504DB014155F074F30F52078CB31DFC51B32746A42EDBF013F9920CFB17D8545B2B3 | 323 | 20180927013355 2 6 100 7679 5 C988D06CCD826A9351D5CAE32A47B28ECC90FA4870D861CCC058CFA49419B0044A395E3F289A48C821B2EFE08D293B917B1DB2E2369564F5D066084F71A090706F84E101625CACAAECFFF3B2FE2A8C04FF9A14D43E9B316576F1571B0FDD51A119222601AE2BBFC3007FBC12D10A2D725AD9D8503A47B4B1977FAF4B0C8E244C372662A335C82380718ABAA9B522A03866EBFC6DD7DEE135A54FDCE58EAAF1996D2485E178888F361B01C2A5F5E21E65BAFFE3024C02210AF189975CADE7BFEAD4A90401D7E37D9B855FA8C8F0D2FBFF9357F8C05E3A2A14173E8F7555FD78B88ECEDC94E238639FA1F59C896F61501B2094199D7679805FB69026D4F13CDEB60CAA339BEB091D7D0C125C72028FDFEC35C5D6EE231B1A46C0619BF822F415121A975322001C4EDC29C5CAA430D1471D1013B67B90F5A7FAFB322B53A9C4D418763CB8A9DD068BF3B7702BA939B4FB0DA5253A999B5A8DFA664D2A9F94169F34E46D45D348E3A7E3424CF6019CFDFE1623940B3FC47A1064E601549C02020571FA10F63AEB0676213CD71D1A8A4140662D00471FE9BA88C269F8D217A978AE910A85CADCA772BD7023DC8D0C2ED524C7FEEFEDF408E4221F474A3783545E155118133FA9D65382F7261CF001701E46721021A1315780A53F4238C1AEEA41D38E1B3310D2EC9AE97C2677467157A0B74DA93A3CDF3E6CF898FA0F5CDF3F55CA572385698FD0F55E0E5C63B4BCB9F4A6EDB74C02C0150B057B1A903F7DD8EFC011EE822F2ECBB780914BCC43A11F7BF4A63BE31F06226881ADE9EA780A58C1A6D7183EE947611A03051A0EA817D6D26FC0C418607EEF57AE00494CDDA1CB518C3F910FD46C65F96E3553CEFFD72D13AC13904EFF4E66203B8D512BF7136251120F0BD28C1E781000BBF832A072DB3BBA7B2CFB5AB1F6DAA17FD6EA6C484BB764E5F01194A5445B1FD435977F916261FA1B5AAD6B7E83782C04EBF3CBD11DC7D929FFD8A16597E2D6A384F343D08E13CEA8232818D7F989BB4B0D7D7531AF0F4C6683356A109EAFD135D2E3319FFA6218053EC737FBD91D5886790D4FB1DB70F3D704148EFF2FAA0241F47F2902EA8286BD7647B615197B0E2A70F3638BDF46973518EA692DA5EE26E533F815FA5E5835C2080FAC1776A7CCFE2F49B1400A55F24C9FC465A766772EFB35756AABF0A42B58966E883AFE5E4000D863756225CDDA2F5AC06093173A1AFB5AD9A7B721A30820170A4AE35B3A2F09DE1B53B7D7A407E0F77F1CD4201337315E6677D30CA3E40F84A7AD707BE0FF99CE9334FAE40692F38135DBBC8CE8E7604C0F9C8AE1989C9FE2AC29C2800DC8876032B416DF3A214F |
324 | 20180418054538 2 6 100 7679 2 ECCC9B93ED119552D36A774B288F541A81536A13B8D687B23174D680CE3F21B8FA088685F5B965215AFA69736E741A3AFC2AC82CE16162A1E4F0012F28998A638AA98D0789D6C58D92F207EAAA33E467C801891B8D37651B66E0942CF6AB7FD8E0D09A6D597D582BA48563F1450C3300218874730D26EE8B6505059C95C1C764D5FD736BF0A64FAD10F0C7D52A8A57C3FBD653887AAA890DA7AFEDA55DAF702EFF06CC722D147DAA2C8B78F0707F51D2B326BEF8972F5A289829E998B94D98E0ED663143797B569F3A6B56897B5726A38B042806FDFDAA367A4F63C4BA31114300B6290828321C30B25DF97F273041E30A404836E84BB32E0620DC558047FC011A1205126F84D9F8EA5E607FC297E5C9FA00D803026D8126C08EF68B49F6A6C55DCB06EED0B666880CD49FCBFF598055D5E40303669CBC55D85F583DA5EF4F320D6E6A50ECBBFAF8C1F7209655EEAA58BFC18EB9FA20B29EC63FBC810C3A2EDCF8E27FD98975C87D59D9C909895AA10CEA5F7594ADD3ED1EBDFE01BE0559423475592A0E2936E4671504337221F897AE3016BC4670C6B765F5FF1185933B26B1183BCB1E5591970F40A1402EB19EF2644E941F67ABB31935259308B4A5271541F41653EB5E77CCA82214C9C6F4E42E8A3C46CC9BE15BC868BC45B28027E515A16554B9D4F6AB57CFFE42CFE0B42BF83E53F27B39AD95E000C329F716E51D15D6CD211E87AAA83A0F1175F5E1E8963A57DA656FBC19FB42661F14328B05CA7F1A83F49044A5086E6AF56225B8783450E43CB1B6F19061441AF58053BBFAACBC3A80FF5F19A8BD873F487A8FFE3DECD35E77EB2C26387EF66A3EED98C773211914115AFD0776FDAC90CB65479DFE59C0D199F195BBE9E4B2F70A9B1A41429002C2998FAB0F2D6956731819D9F5175B92FECE43178BC69ABEC6E2C18EA88289C5B14C58227640D02F614A9A881633816B9DCAC79E4721EF6E42691902AD1CF565600BAA8019310CAA0AC1087A86846C2E9B96B82C3F0CE52EE73760111061EF090DCBF47882710302A65FBDCF380F84703FE3D4FF7ADD0CB7ED65C889DD6EEC24D01F92771DF3F3D8DFB4BDE234D4A35AB20B22BF5D749398C9B6AE5C7B62DC11ACD887A49586238F5B6D37B47EA6953C3E339A9B40EF3EB01DD70F69253BA9A262777C75DF175195D172BD8233FC7B6F207154EF6E2F47533E359D24EB312A292C756C34A2D55A16452829DAD7A9731E2026E56486F6A3C07380DCA1AFFF270464DA8FF34621FBA715C5853EB1D4EA1C4E23B43CD1CDE1F252B728875F187626A813B4166CC34A62A5D6867E0B605641CEE8025F0AD73DBE4443286CA00823770B | 324 | 20180927022646 2 6 100 7679 5 C988D06CCD826A9351D5CAE32A47B28ECC90FA4870D861CCC058CFA49419B0044A395E3F289A48C821B2EFE08D293B917B1DB2E2369564F5D066084F71A090706F84E101625CACAAECFFF3B2FE2A8C04FF9A14D43E9B316576F1571B0FDD51A119222601AE2BBFC3007FBC12D10A2D725AD9D8503A47B4B1977FAF4B0C8E244C372662A335C82380718ABAA9B522A03866EBFC6DD7DEE135A54FDCE58EAAF1996D2485E178888F361B01C2A5F5E21E65BAFFE3024C02210AF189975CADE7BFEAD4A90401D7E37D9B855FA8C8F0D2FBFF9357F8C05E3A2A14173E8F7555FD78B88ECEDC94E238639FA1F59C896F61501B2094199D7679805FB69026D4F13CDEB60CAA339BEB091D7D0C125C72028FDFEC35C5D6EE231B1A46C0619BF822F415121A975322001C4EDC29C5CAA430D1471D1013B67B90F5A7FAFB322B53A9C4D418763CB8A9DD068BF3B7702BA939B4FB0DA5253A999B5A8DFA664D2A9F94169F34E46D45D348E3A7E3424CF6019CFDFE1623940B3FC47A1064E601549C02020571FA10F63AEB0676213CD71D1A8A4140662D00471FE9BA88C269F8D217A978AE910A85CADCA772BD7023DC8D0C2ED524C7FEEFEDF408E4221F474A3783545E155118133FA9D65382F7261CF001701E46721021A1315780A53F4238C1AEEA41D38E1B3310D2EC9AE97C2677467157A0B74DA93A3CDF3E6CF898FA0F5CDF3F55CA572385698FD0F55E0E5C63B4BCB9F4A6EDB74C02C0150B057B1A903F7DD8EFC011EE822F2ECBB780914BCC43A11F7BF4A63BE31F06226881ADE9EA780A58C1A6D7183EE947611A03051A0EA817D6D26FC0C418607EEF57AE00494CDDA1CB518C3F910FD46C65F96E3553CEFFD72D13AC13904EFF4E66203B8D512BF7136251120F0BD28C1E781000BBF832A072DB3BBA7B2CFB5AB1F6DAA17FD6EA6C484BB764E5F01194A5445B1FD435977F916261FA1B5AAD6B7E83782C04EBF3CBD11DC7D929FFD8A16597E2D6A384F343D08E13CEA8232818D7F989BB4B0D7D7531AF0F4C6683356A109EAFD135D2E3319FFA6218053EC737FBD91D5886790D4FB1DB70F3D704148EFF2FAA0241F47F2902EA8286BD7647B615197B0E2A70F3638BDF46973518EA692DA5EE26E533F815FA5E5835C2080FAC1776A7CCFE2F49B1400A55F24C9FC465A766772EFB35756AABF0A42B58966E883AFE5E4000D863756225CDDA2F5AC06093173A1AFB5AD9A7B721A30820170A4AE35B3A2F09DE1B53B7D7A407E0F77F1CD4201337315E6677D30CA3E40F84A7AD707BE0FF99CE9334FAE40692F38135DBBC8CE8E7604C0F9C8AE1989C9FE2AC29C2800DC8876032B416DFE1C77F |
325 | 20180418071157 2 6 100 7679 2 ECCC9B93ED119552D36A774B288F541A81536A13B8D687B23174D680CE3F21B8FA088685F5B965215AFA69736E741A3AFC2AC82CE16162A1E4F0012F28998A638AA98D0789D6C58D92F207EAAA33E467C801891B8D37651B66E0942CF6AB7FD8E0D09A6D597D582BA48563F1450C3300218874730D26EE8B6505059C95C1C764D5FD736BF0A64FAD10F0C7D52A8A57C3FBD653887AAA890DA7AFEDA55DAF702EFF06CC722D147DAA2C8B78F0707F51D2B326BEF8972F5A289829E998B94D98E0ED663143797B569F3A6B56897B5726A38B042806FDFDAA367A4F63C4BA31114300B6290828321C30B25DF97F273041E30A404836E84BB32E0620DC558047FC011A1205126F84D9F8EA5E607FC297E5C9FA00D803026D8126C08EF68B49F6A6C55DCB06EED0B666880CD49FCBFF598055D5E40303669CBC55D85F583DA5EF4F320D6E6A50ECBBFAF8C1F7209655EEAA58BFC18EB9FA20B29EC63FBC810C3A2EDCF8E27FD98975C87D59D9C909895AA10CEA5F7594ADD3ED1EBDFE01BE0559423475592A0E2936E4671504337221F897AE3016BC4670C6B765F5FF1185933B26B1183BCB1E5591970F40A1402EB19EF2644E941F67ABB31935259308B4A5271541F41653EB5E77CCA82214C9C6F4E42E8A3C46CC9BE15BC868BC45B28027E515A16554B9D4F6AB57CFFE42CFE0B42BF83E53F27B39AD95E000C329F716E51D15D6CD211E87AAA83A0F1175F5E1E8963A57DA656FBC19FB42661F14328B05CA7F1A83F49044A5086E6AF56225B8783450E43CB1B6F19061441AF58053BBFAACBC3A80FF5F19A8BD873F487A8FFE3DECD35E77EB2C26387EF66A3EED98C773211914115AFD0776FDAC90CB65479DFE59C0D199F195BBE9E4B2F70A9B1A41429002C2998FAB0F2D6956731819D9F5175B92FECE43178BC69ABEC6E2C18EA88289C5B14C58227640D02F614A9A881633816B9DCAC79E4721EF6E42691902AD1CF565600BAA8019310CAA0AC1087A86846C2E9B96B82C3F0CE52EE73760111061EF090DCBF47882710302A65FBDCF380F84703FE3D4FF7ADD0CB7ED65C889DD6EEC24D01F92771DF3F3D8DFB4BDE234D4A35AB20B22BF5D749398C9B6AE5C7B62DC11ACD887A49586238F5B6D37B47EA6953C3E339A9B40EF3EB01DD70F69253BA9A262777C75DF175195D172BD8233FC7B6F207154EF6E2F47533E359D24EB312A292C756C34A2D55A16452829DAD7A9731E2026E56486F6A3C07380DCA1AFFF270464DA8FF34621FBA715C5853EB1D4EA1C4E23B43CD1CDE1F252B728875F187626A813B4166CC34A62A5D6867E0B605641CEE8025F0AD73DBE4443286CA00950BDC3 | 325 | 20180927025105 2 6 100 7679 2 C988D06CCD826A9351D5CAE32A47B28ECC90FA4870D861CCC058CFA49419B0044A395E3F289A48C821B2EFE08D293B917B1DB2E2369564F5D066084F71A090706F84E101625CACAAECFFF3B2FE2A8C04FF9A14D43E9B316576F1571B0FDD51A119222601AE2BBFC3007FBC12D10A2D725AD9D8503A47B4B1977FAF4B0C8E244C372662A335C82380718ABAA9B522A03866EBFC6DD7DEE135A54FDCE58EAAF1996D2485E178888F361B01C2A5F5E21E65BAFFE3024C02210AF189975CADE7BFEAD4A90401D7E37D9B855FA8C8F0D2FBFF9357F8C05E3A2A14173E8F7555FD78B88ECEDC94E238639FA1F59C896F61501B2094199D7679805FB69026D4F13CDEB60CAA339BEB091D7D0C125C72028FDFEC35C5D6EE231B1A46C0619BF822F415121A975322001C4EDC29C5CAA430D1471D1013B67B90F5A7FAFB322B53A9C4D418763CB8A9DD068BF3B7702BA939B4FB0DA5253A999B5A8DFA664D2A9F94169F34E46D45D348E3A7E3424CF6019CFDFE1623940B3FC47A1064E601549C02020571FA10F63AEB0676213CD71D1A8A4140662D00471FE9BA88C269F8D217A978AE910A85CADCA772BD7023DC8D0C2ED524C7FEEFEDF408E4221F474A3783545E155118133FA9D65382F7261CF001701E46721021A1315780A53F4238C1AEEA41D38E1B3310D2EC9AE97C2677467157A0B74DA93A3CDF3E6CF898FA0F5CDF3F55CA572385698FD0F55E0E5C63B4BCB9F4A6EDB74C02C0150B057B1A903F7DD8EFC011EE822F2ECBB780914BCC43A11F7BF4A63BE31F06226881ADE9EA780A58C1A6D7183EE947611A03051A0EA817D6D26FC0C418607EEF57AE00494CDDA1CB518C3F910FD46C65F96E3553CEFFD72D13AC13904EFF4E66203B8D512BF7136251120F0BD28C1E781000BBF832A072DB3BBA7B2CFB5AB1F6DAA17FD6EA6C484BB764E5F01194A5445B1FD435977F916261FA1B5AAD6B7E83782C04EBF3CBD11DC7D929FFD8A16597E2D6A384F343D08E13CEA8232818D7F989BB4B0D7D7531AF0F4C6683356A109EAFD135D2E3319FFA6218053EC737FBD91D5886790D4FB1DB70F3D704148EFF2FAA0241F47F2902EA8286BD7647B615197B0E2A70F3638BDF46973518EA692DA5EE26E533F815FA5E5835C2080FAC1776A7CCFE2F49B1400A55F24C9FC465A766772EFB35756AABF0A42B58966E883AFE5E4000D863756225CDDA2F5AC06093173A1AFB5AD9A7B721A30820170A4AE35B3A2F09DE1B53B7D7A407E0F77F1CD4201337315E6677D30CA3E40F84A7AD707BE0FF99CE9334FAE40692F38135DBBC8CE8E7604C0F9C8AE1989C9FE2AC29C2800DC8876032B416E02B64E3 |
326 | 20180418085254 2 6 100 7679 2 ECCC9B93ED119552D36A774B288F541A81536A13B8D687B23174D680CE3F21B8FA088685F5B965215AFA69736E741A3AFC2AC82CE16162A1E4F0012F28998A638AA98D0789D6C58D92F207EAAA33E467C801891B8D37651B66E0942CF6AB7FD8E0D09A6D597D582BA48563F1450C3300218874730D26EE8B6505059C95C1C764D5FD736BF0A64FAD10F0C7D52A8A57C3FBD653887AAA890DA7AFEDA55DAF702EFF06CC722D147DAA2C8B78F0707F51D2B326BEF8972F5A289829E998B94D98E0ED663143797B569F3A6B56897B5726A38B042806FDFDAA367A4F63C4BA31114300B6290828321C30B25DF97F273041E30A404836E84BB32E0620DC558047FC011A1205126F84D9F8EA5E607FC297E5C9FA00D803026D8126C08EF68B49F6A6C55DCB06EED0B666880CD49FCBFF598055D5E40303669CBC55D85F583DA5EF4F320D6E6A50ECBBFAF8C1F7209655EEAA58BFC18EB9FA20B29EC63FBC810C3A2EDCF8E27FD98975C87D59D9C909895AA10CEA5F7594ADD3ED1EBDFE01BE0559423475592A0E2936E4671504337221F897AE3016BC4670C6B765F5FF1185933B26B1183BCB1E5591970F40A1402EB19EF2644E941F67ABB31935259308B4A5271541F41653EB5E77CCA82214C9C6F4E42E8A3C46CC9BE15BC868BC45B28027E515A16554B9D4F6AB57CFFE42CFE0B42BF83E53F27B39AD95E000C329F716E51D15D6CD211E87AAA83A0F1175F5E1E8963A57DA656FBC19FB42661F14328B05CA7F1A83F49044A5086E6AF56225B8783450E43CB1B6F19061441AF58053BBFAACBC3A80FF5F19A8BD873F487A8FFE3DECD35E77EB2C26387EF66A3EED98C773211914115AFD0776FDAC90CB65479DFE59C0D199F195BBE9E4B2F70A9B1A41429002C2998FAB0F2D6956731819D9F5175B92FECE43178BC69ABEC6E2C18EA88289C5B14C58227640D02F614A9A881633816B9DCAC79E4721EF6E42691902AD1CF565600BAA8019310CAA0AC1087A86846C2E9B96B82C3F0CE52EE73760111061EF090DCBF47882710302A65FBDCF380F84703FE3D4FF7ADD0CB7ED65C889DD6EEC24D01F92771DF3F3D8DFB4BDE234D4A35AB20B22BF5D749398C9B6AE5C7B62DC11ACD887A49586238F5B6D37B47EA6953C3E339A9B40EF3EB01DD70F69253BA9A262777C75DF175195D172BD8233FC7B6F207154EF6E2F47533E359D24EB312A292C756C34A2D55A16452829DAD7A9731E2026E56486F6A3C07380DCA1AFFF270464DA8FF34621FBA715C5853EB1D4EA1C4E23B43CD1CDE1F252B728875F187626A813B4166CC34A62A5D6867E0B605641CEE8025F0AD73DBE4443286CA00AAFBDDB | 326 | 20180927073721 2 6 100 7679 5 C988D06CCD826A9351D5CAE32A47B28ECC90FA4870D861CCC058CFA49419B0044A395E3F289A48C821B2EFE08D293B917B1DB2E2369564F5D066084F71A090706F84E101625CACAAECFFF3B2FE2A8C04FF9A14D43E9B316576F1571B0FDD51A119222601AE2BBFC3007FBC12D10A2D725AD9D8503A47B4B1977FAF4B0C8E244C372662A335C82380718ABAA9B522A03866EBFC6DD7DEE135A54FDCE58EAAF1996D2485E178888F361B01C2A5F5E21E65BAFFE3024C02210AF189975CADE7BFEAD4A90401D7E37D9B855FA8C8F0D2FBFF9357F8C05E3A2A14173E8F7555FD78B88ECEDC94E238639FA1F59C896F61501B2094199D7679805FB69026D4F13CDEB60CAA339BEB091D7D0C125C72028FDFEC35C5D6EE231B1A46C0619BF822F415121A975322001C4EDC29C5CAA430D1471D1013B67B90F5A7FAFB322B53A9C4D418763CB8A9DD068BF3B7702BA939B4FB0DA5253A999B5A8DFA664D2A9F94169F34E46D45D348E3A7E3424CF6019CFDFE1623940B3FC47A1064E601549C02020571FA10F63AEB0676213CD71D1A8A4140662D00471FE9BA88C269F8D217A978AE910A85CADCA772BD7023DC8D0C2ED524C7FEEFEDF408E4221F474A3783545E155118133FA9D65382F7261CF001701E46721021A1315780A53F4238C1AEEA41D38E1B3310D2EC9AE97C2677467157A0B74DA93A3CDF3E6CF898FA0F5CDF3F55CA572385698FD0F55E0E5C63B4BCB9F4A6EDB74C02C0150B057B1A903F7DD8EFC011EE822F2ECBB780914BCC43A11F7BF4A63BE31F06226881ADE9EA780A58C1A6D7183EE947611A03051A0EA817D6D26FC0C418607EEF57AE00494CDDA1CB518C3F910FD46C65F96E3553CEFFD72D13AC13904EFF4E66203B8D512BF7136251120F0BD28C1E781000BBF832A072DB3BBA7B2CFB5AB1F6DAA17FD6EA6C484BB764E5F01194A5445B1FD435977F916261FA1B5AAD6B7E83782C04EBF3CBD11DC7D929FFD8A16597E2D6A384F343D08E13CEA8232818D7F989BB4B0D7D7531AF0F4C6683356A109EAFD135D2E3319FFA6218053EC737FBD91D5886790D4FB1DB70F3D704148EFF2FAA0241F47F2902EA8286BD7647B615197B0E2A70F3638BDF46973518EA692DA5EE26E533F815FA5E5835C2080FAC1776A7CCFE2F49B1400A55F24C9FC465A766772EFB35756AABF0A42B58966E883AFE5E4000D863756225CDDA2F5AC06093173A1AFB5AD9A7B721A30820170A4AE35B3A2F09DE1B53B7D7A407E0F77F1CD4201337315E6677D30CA3E40F84A7AD707BE0FF99CE9334FAE40692F38135DBBC8CE8E7604C0F9C8AE1989C9FE2AC29C2800DC8876032B416E3F7C30F |
327 | 20180418174929 2 6 100 7679 2 ECCC9B93ED119552D36A774B288F541A81536A13B8D687B23174D680CE3F21B8FA088685F5B965215AFA69736E741A3AFC2AC82CE16162A1E4F0012F28998A638AA98D0789D6C58D92F207EAAA33E467C801891B8D37651B66E0942CF6AB7FD8E0D09A6D597D582BA48563F1450C3300218874730D26EE8B6505059C95C1C764D5FD736BF0A64FAD10F0C7D52A8A57C3FBD653887AAA890DA7AFEDA55DAF702EFF06CC722D147DAA2C8B78F0707F51D2B326BEF8972F5A289829E998B94D98E0ED663143797B569F3A6B56897B5726A38B042806FDFDAA367A4F63C4BA31114300B6290828321C30B25DF97F273041E30A404836E84BB32E0620DC558047FC011A1205126F84D9F8EA5E607FC297E5C9FA00D803026D8126C08EF68B49F6A6C55DCB06EED0B666880CD49FCBFF598055D5E40303669CBC55D85F583DA5EF4F320D6E6A50ECBBFAF8C1F7209655EEAA58BFC18EB9FA20B29EC63FBC810C3A2EDCF8E27FD98975C87D59D9C909895AA10CEA5F7594ADD3ED1EBDFE01BE0559423475592A0E2936E4671504337221F897AE3016BC4670C6B765F5FF1185933B26B1183BCB1E5591970F40A1402EB19EF2644E941F67ABB31935259308B4A5271541F41653EB5E77CCA82214C9C6F4E42E8A3C46CC9BE15BC868BC45B28027E515A16554B9D4F6AB57CFFE42CFE0B42BF83E53F27B39AD95E000C329F716E51D15D6CD211E87AAA83A0F1175F5E1E8963A57DA656FBC19FB42661F14328B05CA7F1A83F49044A5086E6AF56225B8783450E43CB1B6F19061441AF58053BBFAACBC3A80FF5F19A8BD873F487A8FFE3DECD35E77EB2C26387EF66A3EED98C773211914115AFD0776FDAC90CB65479DFE59C0D199F195BBE9E4B2F70A9B1A41429002C2998FAB0F2D6956731819D9F5175B92FECE43178BC69ABEC6E2C18EA88289C5B14C58227640D02F614A9A881633816B9DCAC79E4721EF6E42691902AD1CF565600BAA8019310CAA0AC1087A86846C2E9B96B82C3F0CE52EE73760111061EF090DCBF47882710302A65FBDCF380F84703FE3D4FF7ADD0CB7ED65C889DD6EEC24D01F92771DF3F3D8DFB4BDE234D4A35AB20B22BF5D749398C9B6AE5C7B62DC11ACD887A49586238F5B6D37B47EA6953C3E339A9B40EF3EB01DD70F69253BA9A262777C75DF175195D172BD8233FC7B6F207154EF6E2F47533E359D24EB312A292C756C34A2D55A16452829DAD7A9731E2026E56486F6A3C07380DCA1AFFF270464DA8FF34621FBA715C5853EB1D4EA1C4E23B43CD1CDE1F252B728875F187626A813B4166CC34A62A5D6867E0B605641CEE8025F0AD73DBE4443286CA01225DA53 | 327 | 20180927091345 2 6 100 7679 2 C988D06CCD826A9351D5CAE32A47B28ECC90FA4870D861CCC058CFA49419B0044A395E3F289A48C821B2EFE08D293B917B1DB2E2369564F5D066084F71A090706F84E101625CACAAECFFF3B2FE2A8C04FF9A14D43E9B316576F1571B0FDD51A119222601AE2BBFC3007FBC12D10A2D725AD9D8503A47B4B1977FAF4B0C8E244C372662A335C82380718ABAA9B522A03866EBFC6DD7DEE135A54FDCE58EAAF1996D2485E178888F361B01C2A5F5E21E65BAFFE3024C02210AF189975CADE7BFEAD4A90401D7E37D9B855FA8C8F0D2FBFF9357F8C05E3A2A14173E8F7555FD78B88ECEDC94E238639FA1F59C896F61501B2094199D7679805FB69026D4F13CDEB60CAA339BEB091D7D0C125C72028FDFEC35C5D6EE231B1A46C0619BF822F415121A975322001C4EDC29C5CAA430D1471D1013B67B90F5A7FAFB322B53A9C4D418763CB8A9DD068BF3B7702BA939B4FB0DA5253A999B5A8DFA664D2A9F94169F34E46D45D348E3A7E3424CF6019CFDFE1623940B3FC47A1064E601549C02020571FA10F63AEB0676213CD71D1A8A4140662D00471FE9BA88C269F8D217A978AE910A85CADCA772BD7023DC8D0C2ED524C7FEEFEDF408E4221F474A3783545E155118133FA9D65382F7261CF001701E46721021A1315780A53F4238C1AEEA41D38E1B3310D2EC9AE97C2677467157A0B74DA93A3CDF3E6CF898FA0F5CDF3F55CA572385698FD0F55E0E5C63B4BCB9F4A6EDB74C02C0150B057B1A903F7DD8EFC011EE822F2ECBB780914BCC43A11F7BF4A63BE31F06226881ADE9EA780A58C1A6D7183EE947611A03051A0EA817D6D26FC0C418607EEF57AE00494CDDA1CB518C3F910FD46C65F96E3553CEFFD72D13AC13904EFF4E66203B8D512BF7136251120F0BD28C1E781000BBF832A072DB3BBA7B2CFB5AB1F6DAA17FD6EA6C484BB764E5F01194A5445B1FD435977F916261FA1B5AAD6B7E83782C04EBF3CBD11DC7D929FFD8A16597E2D6A384F343D08E13CEA8232818D7F989BB4B0D7D7531AF0F4C6683356A109EAFD135D2E3319FFA6218053EC737FBD91D5886790D4FB1DB70F3D704148EFF2FAA0241F47F2902EA8286BD7647B615197B0E2A70F3638BDF46973518EA692DA5EE26E533F815FA5E5835C2080FAC1776A7CCFE2F49B1400A55F24C9FC465A766772EFB35756AABF0A42B58966E883AFE5E4000D863756225CDDA2F5AC06093173A1AFB5AD9A7B721A30820170A4AE35B3A2F09DE1B53B7D7A407E0F77F1CD4201337315E6677D30CA3E40F84A7AD707BE0FF99CE9334FAE40692F38135DBBC8CE8E7604C0F9C8AE1989C9FE2AC29C2800DC8876032B416E533987B |
328 | 20180418210652 2 6 100 7679 5 ECCC9B93ED119552D36A774B288F541A81536A13B8D687B23174D680CE3F21B8FA088685F5B965215AFA69736E741A3AFC2AC82CE16162A1E4F0012F28998A638AA98D0789D6C58D92F207EAAA33E467C801891B8D37651B66E0942CF6AB7FD8E0D09A6D597D582BA48563F1450C3300218874730D26EE8B6505059C95C1C764D5FD736BF0A64FAD10F0C7D52A8A57C3FBD653887AAA890DA7AFEDA55DAF702EFF06CC722D147DAA2C8B78F0707F51D2B326BEF8972F5A289829E998B94D98E0ED663143797B569F3A6B56897B5726A38B042806FDFDAA367A4F63C4BA31114300B6290828321C30B25DF97F273041E30A404836E84BB32E0620DC558047FC011A1205126F84D9F8EA5E607FC297E5C9FA00D803026D8126C08EF68B49F6A6C55DCB06EED0B666880CD49FCBFF598055D5E40303669CBC55D85F583DA5EF4F320D6E6A50ECBBFAF8C1F7209655EEAA58BFC18EB9FA20B29EC63FBC810C3A2EDCF8E27FD98975C87D59D9C909895AA10CEA5F7594ADD3ED1EBDFE01BE0559423475592A0E2936E4671504337221F897AE3016BC4670C6B765F5FF1185933B26B1183BCB1E5591970F40A1402EB19EF2644E941F67ABB31935259308B4A5271541F41653EB5E77CCA82214C9C6F4E42E8A3C46CC9BE15BC868BC45B28027E515A16554B9D4F6AB57CFFE42CFE0B42BF83E53F27B39AD95E000C329F716E51D15D6CD211E87AAA83A0F1175F5E1E8963A57DA656FBC19FB42661F14328B05CA7F1A83F49044A5086E6AF56225B8783450E43CB1B6F19061441AF58053BBFAACBC3A80FF5F19A8BD873F487A8FFE3DECD35E77EB2C26387EF66A3EED98C773211914115AFD0776FDAC90CB65479DFE59C0D199F195BBE9E4B2F70A9B1A41429002C2998FAB0F2D6956731819D9F5175B92FECE43178BC69ABEC6E2C18EA88289C5B14C58227640D02F614A9A881633816B9DCAC79E4721EF6E42691902AD1CF565600BAA8019310CAA0AC1087A86846C2E9B96B82C3F0CE52EE73760111061EF090DCBF47882710302A65FBDCF380F84703FE3D4FF7ADD0CB7ED65C889DD6EEC24D01F92771DF3F3D8DFB4BDE234D4A35AB20B22BF5D749398C9B6AE5C7B62DC11ACD887A49586238F5B6D37B47EA6953C3E339A9B40EF3EB01DD70F69253BA9A262777C75DF175195D172BD8233FC7B6F207154EF6E2F47533E359D24EB312A292C756C34A2D55A16452829DAD7A9731E2026E56486F6A3C07380DCA1AFFF270464DA8FF34621FBA715C5853EB1D4EA1C4E23B43CD1CDE1F252B728875F187626A813B4166CC34A62A5D6867E0B605641CEE8025F0AD73DBE4443286CA014D6E5DF | 328 | 20180927094940 2 6 100 7679 2 C988D06CCD826A9351D5CAE32A47B28ECC90FA4870D861CCC058CFA49419B0044A395E3F289A48C821B2EFE08D293B917B1DB2E2369564F5D066084F71A090706F84E101625CACAAECFFF3B2FE2A8C04FF9A14D43E9B316576F1571B0FDD51A119222601AE2BBFC3007FBC12D10A2D725AD9D8503A47B4B1977FAF4B0C8E244C372662A335C82380718ABAA9B522A03866EBFC6DD7DEE135A54FDCE58EAAF1996D2485E178888F361B01C2A5F5E21E65BAFFE3024C02210AF189975CADE7BFEAD4A90401D7E37D9B855FA8C8F0D2FBFF9357F8C05E3A2A14173E8F7555FD78B88ECEDC94E238639FA1F59C896F61501B2094199D7679805FB69026D4F13CDEB60CAA339BEB091D7D0C125C72028FDFEC35C5D6EE231B1A46C0619BF822F415121A975322001C4EDC29C5CAA430D1471D1013B67B90F5A7FAFB322B53A9C4D418763CB8A9DD068BF3B7702BA939B4FB0DA5253A999B5A8DFA664D2A9F94169F34E46D45D348E3A7E3424CF6019CFDFE1623940B3FC47A1064E601549C02020571FA10F63AEB0676213CD71D1A8A4140662D00471FE9BA88C269F8D217A978AE910A85CADCA772BD7023DC8D0C2ED524C7FEEFEDF408E4221F474A3783545E155118133FA9D65382F7261CF001701E46721021A1315780A53F4238C1AEEA41D38E1B3310D2EC9AE97C2677467157A0B74DA93A3CDF3E6CF898FA0F5CDF3F55CA572385698FD0F55E0E5C63B4BCB9F4A6EDB74C02C0150B057B1A903F7DD8EFC011EE822F2ECBB780914BCC43A11F7BF4A63BE31F06226881ADE9EA780A58C1A6D7183EE947611A03051A0EA817D6D26FC0C418607EEF57AE00494CDDA1CB518C3F910FD46C65F96E3553CEFFD72D13AC13904EFF4E66203B8D512BF7136251120F0BD28C1E781000BBF832A072DB3BBA7B2CFB5AB1F6DAA17FD6EA6C484BB764E5F01194A5445B1FD435977F916261FA1B5AAD6B7E83782C04EBF3CBD11DC7D929FFD8A16597E2D6A384F343D08E13CEA8232818D7F989BB4B0D7D7531AF0F4C6683356A109EAFD135D2E3319FFA6218053EC737FBD91D5886790D4FB1DB70F3D704148EFF2FAA0241F47F2902EA8286BD7647B615197B0E2A70F3638BDF46973518EA692DA5EE26E533F815FA5E5835C2080FAC1776A7CCFE2F49B1400A55F24C9FC465A766772EFB35756AABF0A42B58966E883AFE5E4000D863756225CDDA2F5AC06093173A1AFB5AD9A7B721A30820170A4AE35B3A2F09DE1B53B7D7A407E0F77F1CD4201337315E6677D30CA3E40F84A7AD707BE0FF99CE9334FAE40692F38135DBBC8CE8E7604C0F9C8AE1989C9FE2AC29C2800DC8876032B416E5A3AA83 |
329 | 20180418211238 2 6 100 7679 2 ECCC9B93ED119552D36A774B288F541A81536A13B8D687B23174D680CE3F21B8FA088685F5B965215AFA69736E741A3AFC2AC82CE16162A1E4F0012F28998A638AA98D0789D6C58D92F207EAAA33E467C801891B8D37651B66E0942CF6AB7FD8E0D09A6D597D582BA48563F1450C3300218874730D26EE8B6505059C95C1C764D5FD736BF0A64FAD10F0C7D52A8A57C3FBD653887AAA890DA7AFEDA55DAF702EFF06CC722D147DAA2C8B78F0707F51D2B326BEF8972F5A289829E998B94D98E0ED663143797B569F3A6B56897B5726A38B042806FDFDAA367A4F63C4BA31114300B6290828321C30B25DF97F273041E30A404836E84BB32E0620DC558047FC011A1205126F84D9F8EA5E607FC297E5C9FA00D803026D8126C08EF68B49F6A6C55DCB06EED0B666880CD49FCBFF598055D5E40303669CBC55D85F583DA5EF4F320D6E6A50ECBBFAF8C1F7209655EEAA58BFC18EB9FA20B29EC63FBC810C3A2EDCF8E27FD98975C87D59D9C909895AA10CEA5F7594ADD3ED1EBDFE01BE0559423475592A0E2936E4671504337221F897AE3016BC4670C6B765F5FF1185933B26B1183BCB1E5591970F40A1402EB19EF2644E941F67ABB31935259308B4A5271541F41653EB5E77CCA82214C9C6F4E42E8A3C46CC9BE15BC868BC45B28027E515A16554B9D4F6AB57CFFE42CFE0B42BF83E53F27B39AD95E000C329F716E51D15D6CD211E87AAA83A0F1175F5E1E8963A57DA656FBC19FB42661F14328B05CA7F1A83F49044A5086E6AF56225B8783450E43CB1B6F19061441AF58053BBFAACBC3A80FF5F19A8BD873F487A8FFE3DECD35E77EB2C26387EF66A3EED98C773211914115AFD0776FDAC90CB65479DFE59C0D199F195BBE9E4B2F70A9B1A41429002C2998FAB0F2D6956731819D9F5175B92FECE43178BC69ABEC6E2C18EA88289C5B14C58227640D02F614A9A881633816B9DCAC79E4721EF6E42691902AD1CF565600BAA8019310CAA0AC1087A86846C2E9B96B82C3F0CE52EE73760111061EF090DCBF47882710302A65FBDCF380F84703FE3D4FF7ADD0CB7ED65C889DD6EEC24D01F92771DF3F3D8DFB4BDE234D4A35AB20B22BF5D749398C9B6AE5C7B62DC11ACD887A49586238F5B6D37B47EA6953C3E339A9B40EF3EB01DD70F69253BA9A262777C75DF175195D172BD8233FC7B6F207154EF6E2F47533E359D24EB312A292C756C34A2D55A16452829DAD7A9731E2026E56486F6A3C07380DCA1AFFF270464DA8FF34621FBA715C5853EB1D4EA1C4E23B43CD1CDE1F252B728875F187626A813B4166CC34A62A5D6867E0B605641CEE8025F0AD73DBE4443286CA014E1D75B | 329 | 20180927172504 2 6 100 7679 5 C988D06CCD826A9351D5CAE32A47B28ECC90FA4870D861CCC058CFA49419B0044A395E3F289A48C821B2EFE08D293B917B1DB2E2369564F5D066084F71A090706F84E101625CACAAECFFF3B2FE2A8C04FF9A14D43E9B316576F1571B0FDD51A119222601AE2BBFC3007FBC12D10A2D725AD9D8503A47B4B1977FAF4B0C8E244C372662A335C82380718ABAA9B522A03866EBFC6DD7DEE135A54FDCE58EAAF1996D2485E178888F361B01C2A5F5E21E65BAFFE3024C02210AF189975CADE7BFEAD4A90401D7E37D9B855FA8C8F0D2FBFF9357F8C05E3A2A14173E8F7555FD78B88ECEDC94E238639FA1F59C896F61501B2094199D7679805FB69026D4F13CDEB60CAA339BEB091D7D0C125C72028FDFEC35C5D6EE231B1A46C0619BF822F415121A975322001C4EDC29C5CAA430D1471D1013B67B90F5A7FAFB322B53A9C4D418763CB8A9DD068BF3B7702BA939B4FB0DA5253A999B5A8DFA664D2A9F94169F34E46D45D348E3A7E3424CF6019CFDFE1623940B3FC47A1064E601549C02020571FA10F63AEB0676213CD71D1A8A4140662D00471FE9BA88C269F8D217A978AE910A85CADCA772BD7023DC8D0C2ED524C7FEEFEDF408E4221F474A3783545E155118133FA9D65382F7261CF001701E46721021A1315780A53F4238C1AEEA41D38E1B3310D2EC9AE97C2677467157A0B74DA93A3CDF3E6CF898FA0F5CDF3F55CA572385698FD0F55E0E5C63B4BCB9F4A6EDB74C02C0150B057B1A903F7DD8EFC011EE822F2ECBB780914BCC43A11F7BF4A63BE31F06226881ADE9EA780A58C1A6D7183EE947611A03051A0EA817D6D26FC0C418607EEF57AE00494CDDA1CB518C3F910FD46C65F96E3553CEFFD72D13AC13904EFF4E66203B8D512BF7136251120F0BD28C1E781000BBF832A072DB3BBA7B2CFB5AB1F6DAA17FD6EA6C484BB764E5F01194A5445B1FD435977F916261FA1B5AAD6B7E83782C04EBF3CBD11DC7D929FFD8A16597E2D6A384F343D08E13CEA8232818D7F989BB4B0D7D7531AF0F4C6683356A109EAFD135D2E3319FFA6218053EC737FBD91D5886790D4FB1DB70F3D704148EFF2FAA0241F47F2902EA8286BD7647B615197B0E2A70F3638BDF46973518EA692DA5EE26E533F815FA5E5835C2080FAC1776A7CCFE2F49B1400A55F24C9FC465A766772EFB35756AABF0A42B58966E883AFE5E4000D863756225CDDA2F5AC06093173A1AFB5AD9A7B721A30820170A4AE35B3A2F09DE1B53B7D7A407E0F77F1CD4201337315E6677D30CA3E40F84A7AD707BE0FF99CE9334FAE40692F38135DBBC8CE8E7604C0F9C8AE1989C9FE2AC29C2800DC8876032B416EB936ECF |
330 | 20180418224228 2 6 100 7679 2 ECCC9B93ED119552D36A774B288F541A81536A13B8D687B23174D680CE3F21B8FA088685F5B965215AFA69736E741A3AFC2AC82CE16162A1E4F0012F28998A638AA98D0789D6C58D92F207EAAA33E467C801891B8D37651B66E0942CF6AB7FD8E0D09A6D597D582BA48563F1450C3300218874730D26EE8B6505059C95C1C764D5FD736BF0A64FAD10F0C7D52A8A57C3FBD653887AAA890DA7AFEDA55DAF702EFF06CC722D147DAA2C8B78F0707F51D2B326BEF8972F5A289829E998B94D98E0ED663143797B569F3A6B56897B5726A38B042806FDFDAA367A4F63C4BA31114300B6290828321C30B25DF97F273041E30A404836E84BB32E0620DC558047FC011A1205126F84D9F8EA5E607FC297E5C9FA00D803026D8126C08EF68B49F6A6C55DCB06EED0B666880CD49FCBFF598055D5E40303669CBC55D85F583DA5EF4F320D6E6A50ECBBFAF8C1F7209655EEAA58BFC18EB9FA20B29EC63FBC810C3A2EDCF8E27FD98975C87D59D9C909895AA10CEA5F7594ADD3ED1EBDFE01BE0559423475592A0E2936E4671504337221F897AE3016BC4670C6B765F5FF1185933B26B1183BCB1E5591970F40A1402EB19EF2644E941F67ABB31935259308B4A5271541F41653EB5E77CCA82214C9C6F4E42E8A3C46CC9BE15BC868BC45B28027E515A16554B9D4F6AB57CFFE42CFE0B42BF83E53F27B39AD95E000C329F716E51D15D6CD211E87AAA83A0F1175F5E1E8963A57DA656FBC19FB42661F14328B05CA7F1A83F49044A5086E6AF56225B8783450E43CB1B6F19061441AF58053BBFAACBC3A80FF5F19A8BD873F487A8FFE3DECD35E77EB2C26387EF66A3EED98C773211914115AFD0776FDAC90CB65479DFE59C0D199F195BBE9E4B2F70A9B1A41429002C2998FAB0F2D6956731819D9F5175B92FECE43178BC69ABEC6E2C18EA88289C5B14C58227640D02F614A9A881633816B9DCAC79E4721EF6E42691902AD1CF565600BAA8019310CAA0AC1087A86846C2E9B96B82C3F0CE52EE73760111061EF090DCBF47882710302A65FBDCF380F84703FE3D4FF7ADD0CB7ED65C889DD6EEC24D01F92771DF3F3D8DFB4BDE234D4A35AB20B22BF5D749398C9B6AE5C7B62DC11ACD887A49586238F5B6D37B47EA6953C3E339A9B40EF3EB01DD70F69253BA9A262777C75DF175195D172BD8233FC7B6F207154EF6E2F47533E359D24EB312A292C756C34A2D55A16452829DAD7A9731E2026E56486F6A3C07380DCA1AFFF270464DA8FF34621FBA715C5853EB1D4EA1C4E23B43CD1CDE1F252B728875F187626A813B4166CC34A62A5D6867E0B605641CEE8025F0AD73DBE4443286CA016133603 | 330 | 20180927221028 2 6 100 7679 5 C988D06CCD826A9351D5CAE32A47B28ECC90FA4870D861CCC058CFA49419B0044A395E3F289A48C821B2EFE08D293B917B1DB2E2369564F5D066084F71A090706F84E101625CACAAECFFF3B2FE2A8C04FF9A14D43E9B316576F1571B0FDD51A119222601AE2BBFC3007FBC12D10A2D725AD9D8503A47B4B1977FAF4B0C8E244C372662A335C82380718ABAA9B522A03866EBFC6DD7DEE135A54FDCE58EAAF1996D2485E178888F361B01C2A5F5E21E65BAFFE3024C02210AF189975CADE7BFEAD4A90401D7E37D9B855FA8C8F0D2FBFF9357F8C05E3A2A14173E8F7555FD78B88ECEDC94E238639FA1F59C896F61501B2094199D7679805FB69026D4F13CDEB60CAA339BEB091D7D0C125C72028FDFEC35C5D6EE231B1A46C0619BF822F415121A975322001C4EDC29C5CAA430D1471D1013B67B90F5A7FAFB322B53A9C4D418763CB8A9DD068BF3B7702BA939B4FB0DA5253A999B5A8DFA664D2A9F94169F34E46D45D348E3A7E3424CF6019CFDFE1623940B3FC47A1064E601549C02020571FA10F63AEB0676213CD71D1A8A4140662D00471FE9BA88C269F8D217A978AE910A85CADCA772BD7023DC8D0C2ED524C7FEEFEDF408E4221F474A3783545E155118133FA9D65382F7261CF001701E46721021A1315780A53F4238C1AEEA41D38E1B3310D2EC9AE97C2677467157A0B74DA93A3CDF3E6CF898FA0F5CDF3F55CA572385698FD0F55E0E5C63B4BCB9F4A6EDB74C02C0150B057B1A903F7DD8EFC011EE822F2ECBB780914BCC43A11F7BF4A63BE31F06226881ADE9EA780A58C1A6D7183EE947611A03051A0EA817D6D26FC0C418607EEF57AE00494CDDA1CB518C3F910FD46C65F96E3553CEFFD72D13AC13904EFF4E66203B8D512BF7136251120F0BD28C1E781000BBF832A072DB3BBA7B2CFB5AB1F6DAA17FD6EA6C484BB764E5F01194A5445B1FD435977F916261FA1B5AAD6B7E83782C04EBF3CBD11DC7D929FFD8A16597E2D6A384F343D08E13CEA8232818D7F989BB4B0D7D7531AF0F4C6683356A109EAFD135D2E3319FFA6218053EC737FBD91D5886790D4FB1DB70F3D704148EFF2FAA0241F47F2902EA8286BD7647B615197B0E2A70F3638BDF46973518EA692DA5EE26E533F815FA5E5835C2080FAC1776A7CCFE2F49B1400A55F24C9FC465A766772EFB35756AABF0A42B58966E883AFE5E4000D863756225CDDA2F5AC06093173A1AFB5AD9A7B721A30820170A4AE35B3A2F09DE1B53B7D7A407E0F77F1CD4201337315E6677D30CA3E40F84A7AD707BE0FF99CE9334FAE40692F38135DBBC8CE8E7604C0F9C8AE1989C9FE2AC29C2800DC8876032B416EF491CEF |
331 | 20180418233547 2 6 100 7679 5 ECCC9B93ED119552D36A774B288F541A81536A13B8D687B23174D680CE3F21B8FA088685F5B965215AFA69736E741A3AFC2AC82CE16162A1E4F0012F28998A638AA98D0789D6C58D92F207EAAA33E467C801891B8D37651B66E0942CF6AB7FD8E0D09A6D597D582BA48563F1450C3300218874730D26EE8B6505059C95C1C764D5FD736BF0A64FAD10F0C7D52A8A57C3FBD653887AAA890DA7AFEDA55DAF702EFF06CC722D147DAA2C8B78F0707F51D2B326BEF8972F5A289829E998B94D98E0ED663143797B569F3A6B56897B5726A38B042806FDFDAA367A4F63C4BA31114300B6290828321C30B25DF97F273041E30A404836E84BB32E0620DC558047FC011A1205126F84D9F8EA5E607FC297E5C9FA00D803026D8126C08EF68B49F6A6C55DCB06EED0B666880CD49FCBFF598055D5E40303669CBC55D85F583DA5EF4F320D6E6A50ECBBFAF8C1F7209655EEAA58BFC18EB9FA20B29EC63FBC810C3A2EDCF8E27FD98975C87D59D9C909895AA10CEA5F7594ADD3ED1EBDFE01BE0559423475592A0E2936E4671504337221F897AE3016BC4670C6B765F5FF1185933B26B1183BCB1E5591970F40A1402EB19EF2644E941F67ABB31935259308B4A5271541F41653EB5E77CCA82214C9C6F4E42E8A3C46CC9BE15BC868BC45B28027E515A16554B9D4F6AB57CFFE42CFE0B42BF83E53F27B39AD95E000C329F716E51D15D6CD211E87AAA83A0F1175F5E1E8963A57DA656FBC19FB42661F14328B05CA7F1A83F49044A5086E6AF56225B8783450E43CB1B6F19061441AF58053BBFAACBC3A80FF5F19A8BD873F487A8FFE3DECD35E77EB2C26387EF66A3EED98C773211914115AFD0776FDAC90CB65479DFE59C0D199F195BBE9E4B2F70A9B1A41429002C2998FAB0F2D6956731819D9F5175B92FECE43178BC69ABEC6E2C18EA88289C5B14C58227640D02F614A9A881633816B9DCAC79E4721EF6E42691902AD1CF565600BAA8019310CAA0AC1087A86846C2E9B96B82C3F0CE52EE73760111061EF090DCBF47882710302A65FBDCF380F84703FE3D4FF7ADD0CB7ED65C889DD6EEC24D01F92771DF3F3D8DFB4BDE234D4A35AB20B22BF5D749398C9B6AE5C7B62DC11ACD887A49586238F5B6D37B47EA6953C3E339A9B40EF3EB01DD70F69253BA9A262777C75DF175195D172BD8233FC7B6F207154EF6E2F47533E359D24EB312A292C756C34A2D55A16452829DAD7A9731E2026E56486F6A3C07380DCA1AFFF270464DA8FF34621FBA715C5853EB1D4EA1C4E23B43CD1CDE1F252B728875F187626A813B4166CC34A62A5D6867E0B605641CEE8025F0AD73DBE4443286CA016C53D1F | 331 | 20180928031538 2 6 100 7679 5 C988D06CCD826A9351D5CAE32A47B28ECC90FA4870D861CCC058CFA49419B0044A395E3F289A48C821B2EFE08D293B917B1DB2E2369564F5D066084F71A090706F84E101625CACAAECFFF3B2FE2A8C04FF9A14D43E9B316576F1571B0FDD51A119222601AE2BBFC3007FBC12D10A2D725AD9D8503A47B4B1977FAF4B0C8E244C372662A335C82380718ABAA9B522A03866EBFC6DD7DEE135A54FDCE58EAAF1996D2485E178888F361B01C2A5F5E21E65BAFFE3024C02210AF189975CADE7BFEAD4A90401D7E37D9B855FA8C8F0D2FBFF9357F8C05E3A2A14173E8F7555FD78B88ECEDC94E238639FA1F59C896F61501B2094199D7679805FB69026D4F13CDEB60CAA339BEB091D7D0C125C72028FDFEC35C5D6EE231B1A46C0619BF822F415121A975322001C4EDC29C5CAA430D1471D1013B67B90F5A7FAFB322B53A9C4D418763CB8A9DD068BF3B7702BA939B4FB0DA5253A999B5A8DFA664D2A9F94169F34E46D45D348E3A7E3424CF6019CFDFE1623940B3FC47A1064E601549C02020571FA10F63AEB0676213CD71D1A8A4140662D00471FE9BA88C269F8D217A978AE910A85CADCA772BD7023DC8D0C2ED524C7FEEFEDF408E4221F474A3783545E155118133FA9D65382F7261CF001701E46721021A1315780A53F4238C1AEEA41D38E1B3310D2EC9AE97C2677467157A0B74DA93A3CDF3E6CF898FA0F5CDF3F55CA572385698FD0F55E0E5C63B4BCB9F4A6EDB74C02C0150B057B1A903F7DD8EFC011EE822F2ECBB780914BCC43A11F7BF4A63BE31F06226881ADE9EA780A58C1A6D7183EE947611A03051A0EA817D6D26FC0C418607EEF57AE00494CDDA1CB518C3F910FD46C65F96E3553CEFFD72D13AC13904EFF4E66203B8D512BF7136251120F0BD28C1E781000BBF832A072DB3BBA7B2CFB5AB1F6DAA17FD6EA6C484BB764E5F01194A5445B1FD435977F916261FA1B5AAD6B7E83782C04EBF3CBD11DC7D929FFD8A16597E2D6A384F343D08E13CEA8232818D7F989BB4B0D7D7531AF0F4C6683356A109EAFD135D2E3319FFA6218053EC737FBD91D5886790D4FB1DB70F3D704148EFF2FAA0241F47F2902EA8286BD7647B615197B0E2A70F3638BDF46973518EA692DA5EE26E533F815FA5E5835C2080FAC1776A7CCFE2F49B1400A55F24C9FC465A766772EFB35756AABF0A42B58966E883AFE5E4000D863756225CDDA2F5AC06093173A1AFB5AD9A7B721A30820170A4AE35B3A2F09DE1B53B7D7A407E0F77F1CD4201337315E6677D30CA3E40F84A7AD707BE0FF99CE9334FAE40692F38135DBBC8CE8E7604C0F9C8AE1989C9FE2AC29C2800DC8876032B416F33826BF |
332 | 20180419053435 2 6 100 7679 2 ECCC9B93ED119552D36A774B288F541A81536A13B8D687B23174D680CE3F21B8FA088685F5B965215AFA69736E741A3AFC2AC82CE16162A1E4F0012F28998A638AA98D0789D6C58D92F207EAAA33E467C801891B8D37651B66E0942CF6AB7FD8E0D09A6D597D582BA48563F1450C3300218874730D26EE8B6505059C95C1C764D5FD736BF0A64FAD10F0C7D52A8A57C3FBD653887AAA890DA7AFEDA55DAF702EFF06CC722D147DAA2C8B78F0707F51D2B326BEF8972F5A289829E998B94D98E0ED663143797B569F3A6B56897B5726A38B042806FDFDAA367A4F63C4BA31114300B6290828321C30B25DF97F273041E30A404836E84BB32E0620DC558047FC011A1205126F84D9F8EA5E607FC297E5C9FA00D803026D8126C08EF68B49F6A6C55DCB06EED0B666880CD49FCBFF598055D5E40303669CBC55D85F583DA5EF4F320D6E6A50ECBBFAF8C1F7209655EEAA58BFC18EB9FA20B29EC63FBC810C3A2EDCF8E27FD98975C87D59D9C909895AA10CEA5F7594ADD3ED1EBDFE01BE0559423475592A0E2936E4671504337221F897AE3016BC4670C6B765F5FF1185933B26B1183BCB1E5591970F40A1402EB19EF2644E941F67ABB31935259308B4A5271541F41653EB5E77CCA82214C9C6F4E42E8A3C46CC9BE15BC868BC45B28027E515A16554B9D4F6AB57CFFE42CFE0B42BF83E53F27B39AD95E000C329F716E51D15D6CD211E87AAA83A0F1175F5E1E8963A57DA656FBC19FB42661F14328B05CA7F1A83F49044A5086E6AF56225B8783450E43CB1B6F19061441AF58053BBFAACBC3A80FF5F19A8BD873F487A8FFE3DECD35E77EB2C26387EF66A3EED98C773211914115AFD0776FDAC90CB65479DFE59C0D199F195BBE9E4B2F70A9B1A41429002C2998FAB0F2D6956731819D9F5175B92FECE43178BC69ABEC6E2C18EA88289C5B14C58227640D02F614A9A881633816B9DCAC79E4721EF6E42691902AD1CF565600BAA8019310CAA0AC1087A86846C2E9B96B82C3F0CE52EE73760111061EF090DCBF47882710302A65FBDCF380F84703FE3D4FF7ADD0CB7ED65C889DD6EEC24D01F92771DF3F3D8DFB4BDE234D4A35AB20B22BF5D749398C9B6AE5C7B62DC11ACD887A49586238F5B6D37B47EA6953C3E339A9B40EF3EB01DD70F69253BA9A262777C75DF175195D172BD8233FC7B6F207154EF6E2F47533E359D24EB312A292C756C34A2D55A16452829DAD7A9731E2026E56486F6A3C07380DCA1AFFF270464DA8FF34621FBA715C5853EB1D4EA1C4E23B43CD1CDE1F252B728875F187626A813B4166CC34A62A5D6867E0B605641CEE8025F0AD73DBE4443286CA01B7B0413 | 332 | 20180928061816 2 6 100 7679 2 C988D06CCD826A9351D5CAE32A47B28ECC90FA4870D861CCC058CFA49419B0044A395E3F289A48C821B2EFE08D293B917B1DB2E2369564F5D066084F71A090706F84E101625CACAAECFFF3B2FE2A8C04FF9A14D43E9B316576F1571B0FDD51A119222601AE2BBFC3007FBC12D10A2D725AD9D8503A47B4B1977FAF4B0C8E244C372662A335C82380718ABAA9B522A03866EBFC6DD7DEE135A54FDCE58EAAF1996D2485E178888F361B01C2A5F5E21E65BAFFE3024C02210AF189975CADE7BFEAD4A90401D7E37D9B855FA8C8F0D2FBFF9357F8C05E3A2A14173E8F7555FD78B88ECEDC94E238639FA1F59C896F61501B2094199D7679805FB69026D4F13CDEB60CAA339BEB091D7D0C125C72028FDFEC35C5D6EE231B1A46C0619BF822F415121A975322001C4EDC29C5CAA430D1471D1013B67B90F5A7FAFB322B53A9C4D418763CB8A9DD068BF3B7702BA939B4FB0DA5253A999B5A8DFA664D2A9F94169F34E46D45D348E3A7E3424CF6019CFDFE1623940B3FC47A1064E601549C02020571FA10F63AEB0676213CD71D1A8A4140662D00471FE9BA88C269F8D217A978AE910A85CADCA772BD7023DC8D0C2ED524C7FEEFEDF408E4221F474A3783545E155118133FA9D65382F7261CF001701E46721021A1315780A53F4238C1AEEA41D38E1B3310D2EC9AE97C2677467157A0B74DA93A3CDF3E6CF898FA0F5CDF3F55CA572385698FD0F55E0E5C63B4BCB9F4A6EDB74C02C0150B057B1A903F7DD8EFC011EE822F2ECBB780914BCC43A11F7BF4A63BE31F06226881ADE9EA780A58C1A6D7183EE947611A03051A0EA817D6D26FC0C418607EEF57AE00494CDDA1CB518C3F910FD46C65F96E3553CEFFD72D13AC13904EFF4E66203B8D512BF7136251120F0BD28C1E781000BBF832A072DB3BBA7B2CFB5AB1F6DAA17FD6EA6C484BB764E5F01194A5445B1FD435977F916261FA1B5AAD6B7E83782C04EBF3CBD11DC7D929FFD8A16597E2D6A384F343D08E13CEA8232818D7F989BB4B0D7D7531AF0F4C6683356A109EAFD135D2E3319FFA6218053EC737FBD91D5886790D4FB1DB70F3D704148EFF2FAA0241F47F2902EA8286BD7647B615197B0E2A70F3638BDF46973518EA692DA5EE26E533F815FA5E5835C2080FAC1776A7CCFE2F49B1400A55F24C9FC465A766772EFB35756AABF0A42B58966E883AFE5E4000D863756225CDDA2F5AC06093173A1AFB5AD9A7B721A30820170A4AE35B3A2F09DE1B53B7D7A407E0F77F1CD4201337315E6677D30CA3E40F84A7AD707BE0FF99CE9334FAE40692F38135DBBC8CE8E7604C0F9C8AE1989C9FE2AC29C2800DC8876032B416F58E9E8B |
333 | 20180419055744 2 6 100 7679 2 ECCC9B93ED119552D36A774B288F541A81536A13B8D687B23174D680CE3F21B8FA088685F5B965215AFA69736E741A3AFC2AC82CE16162A1E4F0012F28998A638AA98D0789D6C58D92F207EAAA33E467C801891B8D37651B66E0942CF6AB7FD8E0D09A6D597D582BA48563F1450C3300218874730D26EE8B6505059C95C1C764D5FD736BF0A64FAD10F0C7D52A8A57C3FBD653887AAA890DA7AFEDA55DAF702EFF06CC722D147DAA2C8B78F0707F51D2B326BEF8972F5A289829E998B94D98E0ED663143797B569F3A6B56897B5726A38B042806FDFDAA367A4F63C4BA31114300B6290828321C30B25DF97F273041E30A404836E84BB32E0620DC558047FC011A1205126F84D9F8EA5E607FC297E5C9FA00D803026D8126C08EF68B49F6A6C55DCB06EED0B666880CD49FCBFF598055D5E40303669CBC55D85F583DA5EF4F320D6E6A50ECBBFAF8C1F7209655EEAA58BFC18EB9FA20B29EC63FBC810C3A2EDCF8E27FD98975C87D59D9C909895AA10CEA5F7594ADD3ED1EBDFE01BE0559423475592A0E2936E4671504337221F897AE3016BC4670C6B765F5FF1185933B26B1183BCB1E5591970F40A1402EB19EF2644E941F67ABB31935259308B4A5271541F41653EB5E77CCA82214C9C6F4E42E8A3C46CC9BE15BC868BC45B28027E515A16554B9D4F6AB57CFFE42CFE0B42BF83E53F27B39AD95E000C329F716E51D15D6CD211E87AAA83A0F1175F5E1E8963A57DA656FBC19FB42661F14328B05CA7F1A83F49044A5086E6AF56225B8783450E43CB1B6F19061441AF58053BBFAACBC3A80FF5F19A8BD873F487A8FFE3DECD35E77EB2C26387EF66A3EED98C773211914115AFD0776FDAC90CB65479DFE59C0D199F195BBE9E4B2F70A9B1A41429002C2998FAB0F2D6956731819D9F5175B92FECE43178BC69ABEC6E2C18EA88289C5B14C58227640D02F614A9A881633816B9DCAC79E4721EF6E42691902AD1CF565600BAA8019310CAA0AC1087A86846C2E9B96B82C3F0CE52EE73760111061EF090DCBF47882710302A65FBDCF380F84703FE3D4FF7ADD0CB7ED65C889DD6EEC24D01F92771DF3F3D8DFB4BDE234D4A35AB20B22BF5D749398C9B6AE5C7B62DC11ACD887A49586238F5B6D37B47EA6953C3E339A9B40EF3EB01DD70F69253BA9A262777C75DF175195D172BD8233FC7B6F207154EF6E2F47533E359D24EB312A292C756C34A2D55A16452829DAD7A9731E2026E56486F6A3C07380DCA1AFFF270464DA8FF34621FBA715C5853EB1D4EA1C4E23B43CD1CDE1F252B728875F187626A813B4166CC34A62A5D6867E0B605641CEE8025F0AD73DBE4443286CA01BC212DB | 333 | 20180928065908 2 6 100 7679 2 C988D06CCD826A9351D5CAE32A47B28ECC90FA4870D861CCC058CFA49419B0044A395E3F289A48C821B2EFE08D293B917B1DB2E2369564F5D066084F71A090706F84E101625CACAAECFFF3B2FE2A8C04FF9A14D43E9B316576F1571B0FDD51A119222601AE2BBFC3007FBC12D10A2D725AD9D8503A47B4B1977FAF4B0C8E244C372662A335C82380718ABAA9B522A03866EBFC6DD7DEE135A54FDCE58EAAF1996D2485E178888F361B01C2A5F5E21E65BAFFE3024C02210AF189975CADE7BFEAD4A90401D7E37D9B855FA8C8F0D2FBFF9357F8C05E3A2A14173E8F7555FD78B88ECEDC94E238639FA1F59C896F61501B2094199D7679805FB69026D4F13CDEB60CAA339BEB091D7D0C125C72028FDFEC35C5D6EE231B1A46C0619BF822F415121A975322001C4EDC29C5CAA430D1471D1013B67B90F5A7FAFB322B53A9C4D418763CB8A9DD068BF3B7702BA939B4FB0DA5253A999B5A8DFA664D2A9F94169F34E46D45D348E3A7E3424CF6019CFDFE1623940B3FC47A1064E601549C02020571FA10F63AEB0676213CD71D1A8A4140662D00471FE9BA88C269F8D217A978AE910A85CADCA772BD7023DC8D0C2ED524C7FEEFEDF408E4221F474A3783545E155118133FA9D65382F7261CF001701E46721021A1315780A53F4238C1AEEA41D38E1B3310D2EC9AE97C2677467157A0B74DA93A3CDF3E6CF898FA0F5CDF3F55CA572385698FD0F55E0E5C63B4BCB9F4A6EDB74C02C0150B057B1A903F7DD8EFC011EE822F2ECBB780914BCC43A11F7BF4A63BE31F06226881ADE9EA780A58C1A6D7183EE947611A03051A0EA817D6D26FC0C418607EEF57AE00494CDDA1CB518C3F910FD46C65F96E3553CEFFD72D13AC13904EFF4E66203B8D512BF7136251120F0BD28C1E781000BBF832A072DB3BBA7B2CFB5AB1F6DAA17FD6EA6C484BB764E5F01194A5445B1FD435977F916261FA1B5AAD6B7E83782C04EBF3CBD11DC7D929FFD8A16597E2D6A384F343D08E13CEA8232818D7F989BB4B0D7D7531AF0F4C6683356A109EAFD135D2E3319FFA6218053EC737FBD91D5886790D4FB1DB70F3D704148EFF2FAA0241F47F2902EA8286BD7647B615197B0E2A70F3638BDF46973518EA692DA5EE26E533F815FA5E5835C2080FAC1776A7CCFE2F49B1400A55F24C9FC465A766772EFB35756AABF0A42B58966E883AFE5E4000D863756225CDDA2F5AC06093173A1AFB5AD9A7B721A30820170A4AE35B3A2F09DE1B53B7D7A407E0F77F1CD4201337315E6677D30CA3E40F84A7AD707BE0FF99CE9334FAE40692F38135DBBC8CE8E7604C0F9C8AE1989C9FE2AC29C2800DC8876032B416F6069543 |
334 | 20180419135850 2 6 100 7679 2 ECCC9B93ED119552D36A774B288F541A81536A13B8D687B23174D680CE3F21B8FA088685F5B965215AFA69736E741A3AFC2AC82CE16162A1E4F0012F28998A638AA98D0789D6C58D92F207EAAA33E467C801891B8D37651B66E0942CF6AB7FD8E0D09A6D597D582BA48563F1450C3300218874730D26EE8B6505059C95C1C764D5FD736BF0A64FAD10F0C7D52A8A57C3FBD653887AAA890DA7AFEDA55DAF702EFF06CC722D147DAA2C8B78F0707F51D2B326BEF8972F5A289829E998B94D98E0ED663143797B569F3A6B56897B5726A38B042806FDFDAA367A4F63C4BA31114300B6290828321C30B25DF97F273041E30A404836E84BB32E0620DC558047FC011A1205126F84D9F8EA5E607FC297E5C9FA00D803026D8126C08EF68B49F6A6C55DCB06EED0B666880CD49FCBFF598055D5E40303669CBC55D85F583DA5EF4F320D6E6A50ECBBFAF8C1F7209655EEAA58BFC18EB9FA20B29EC63FBC810C3A2EDCF8E27FD98975C87D59D9C909895AA10CEA5F7594ADD3ED1EBDFE01BE0559423475592A0E2936E4671504337221F897AE3016BC4670C6B765F5FF1185933B26B1183BCB1E5591970F40A1402EB19EF2644E941F67ABB31935259308B4A5271541F41653EB5E77CCA82214C9C6F4E42E8A3C46CC9BE15BC868BC45B28027E515A16554B9D4F6AB57CFFE42CFE0B42BF83E53F27B39AD95E000C329F716E51D15D6CD211E87AAA83A0F1175F5E1E8963A57DA656FBC19FB42661F14328B05CA7F1A83F49044A5086E6AF56225B8783450E43CB1B6F19061441AF58053BBFAACBC3A80FF5F19A8BD873F487A8FFE3DECD35E77EB2C26387EF66A3EED98C773211914115AFD0776FDAC90CB65479DFE59C0D199F195BBE9E4B2F70A9B1A41429002C2998FAB0F2D6956731819D9F5175B92FECE43178BC69ABEC6E2C18EA88289C5B14C58227640D02F614A9A881633816B9DCAC79E4721EF6E42691902AD1CF565600BAA8019310CAA0AC1087A86846C2E9B96B82C3F0CE52EE73760111061EF090DCBF47882710302A65FBDCF380F84703FE3D4FF7ADD0CB7ED65C889DD6EEC24D01F92771DF3F3D8DFB4BDE234D4A35AB20B22BF5D749398C9B6AE5C7B62DC11ACD887A49586238F5B6D37B47EA6953C3E339A9B40EF3EB01DD70F69253BA9A262777C75DF175195D172BD8233FC7B6F207154EF6E2F47533E359D24EB312A292C756C34A2D55A16452829DAD7A9731E2026E56486F6A3C07380DCA1AFFF270464DA8FF34621FBA715C5853EB1D4EA1C4E23B43CD1CDE1F252B728875F187626A813B4166CC34A62A5D6867E0B605641CEE8025F0AD73DBE4443286CA022362F53 | 334 | 20180928120844 2 6 100 7679 2 C988D06CCD826A9351D5CAE32A47B28ECC90FA4870D861CCC058CFA49419B0044A395E3F289A48C821B2EFE08D293B917B1DB2E2369564F5D066084F71A090706F84E101625CACAAECFFF3B2FE2A8C04FF9A14D43E9B316576F1571B0FDD51A119222601AE2BBFC3007FBC12D10A2D725AD9D8503A47B4B1977FAF4B0C8E244C372662A335C82380718ABAA9B522A03866EBFC6DD7DEE135A54FDCE58EAAF1996D2485E178888F361B01C2A5F5E21E65BAFFE3024C02210AF189975CADE7BFEAD4A90401D7E37D9B855FA8C8F0D2FBFF9357F8C05E3A2A14173E8F7555FD78B88ECEDC94E238639FA1F59C896F61501B2094199D7679805FB69026D4F13CDEB60CAA339BEB091D7D0C125C72028FDFEC35C5D6EE231B1A46C0619BF822F415121A975322001C4EDC29C5CAA430D1471D1013B67B90F5A7FAFB322B53A9C4D418763CB8A9DD068BF3B7702BA939B4FB0DA5253A999B5A8DFA664D2A9F94169F34E46D45D348E3A7E3424CF6019CFDFE1623940B3FC47A1064E601549C02020571FA10F63AEB0676213CD71D1A8A4140662D00471FE9BA88C269F8D217A978AE910A85CADCA772BD7023DC8D0C2ED524C7FEEFEDF408E4221F474A3783545E155118133FA9D65382F7261CF001701E46721021A1315780A53F4238C1AEEA41D38E1B3310D2EC9AE97C2677467157A0B74DA93A3CDF3E6CF898FA0F5CDF3F55CA572385698FD0F55E0E5C63B4BCB9F4A6EDB74C02C0150B057B1A903F7DD8EFC011EE822F2ECBB780914BCC43A11F7BF4A63BE31F06226881ADE9EA780A58C1A6D7183EE947611A03051A0EA817D6D26FC0C418607EEF57AE00494CDDA1CB518C3F910FD46C65F96E3553CEFFD72D13AC13904EFF4E66203B8D512BF7136251120F0BD28C1E781000BBF832A072DB3BBA7B2CFB5AB1F6DAA17FD6EA6C484BB764E5F01194A5445B1FD435977F916261FA1B5AAD6B7E83782C04EBF3CBD11DC7D929FFD8A16597E2D6A384F343D08E13CEA8232818D7F989BB4B0D7D7531AF0F4C6683356A109EAFD135D2E3319FFA6218053EC737FBD91D5886790D4FB1DB70F3D704148EFF2FAA0241F47F2902EA8286BD7647B615197B0E2A70F3638BDF46973518EA692DA5EE26E533F815FA5E5835C2080FAC1776A7CCFE2F49B1400A55F24C9FC465A766772EFB35756AABF0A42B58966E883AFE5E4000D863756225CDDA2F5AC06093173A1AFB5AD9A7B721A30820170A4AE35B3A2F09DE1B53B7D7A407E0F77F1CD4201337315E6677D30CA3E40F84A7AD707BE0FF99CE9334FAE40692F38135DBBC8CE8E7604C0F9C8AE1989C9FE2AC29C2800DC8876032B416F9FC5BCB |
335 | 20180419162659 2 6 100 7679 2 ECCC9B93ED119552D36A774B288F541A81536A13B8D687B23174D680CE3F21B8FA088685F5B965215AFA69736E741A3AFC2AC82CE16162A1E4F0012F28998A638AA98D0789D6C58D92F207EAAA33E467C801891B8D37651B66E0942CF6AB7FD8E0D09A6D597D582BA48563F1450C3300218874730D26EE8B6505059C95C1C764D5FD736BF0A64FAD10F0C7D52A8A57C3FBD653887AAA890DA7AFEDA55DAF702EFF06CC722D147DAA2C8B78F0707F51D2B326BEF8972F5A289829E998B94D98E0ED663143797B569F3A6B56897B5726A38B042806FDFDAA367A4F63C4BA31114300B6290828321C30B25DF97F273041E30A404836E84BB32E0620DC558047FC011A1205126F84D9F8EA5E607FC297E5C9FA00D803026D8126C08EF68B49F6A6C55DCB06EED0B666880CD49FCBFF598055D5E40303669CBC55D85F583DA5EF4F320D6E6A50ECBBFAF8C1F7209655EEAA58BFC18EB9FA20B29EC63FBC810C3A2EDCF8E27FD98975C87D59D9C909895AA10CEA5F7594ADD3ED1EBDFE01BE0559423475592A0E2936E4671504337221F897AE3016BC4670C6B765F5FF1185933B26B1183BCB1E5591970F40A1402EB19EF2644E941F67ABB31935259308B4A5271541F41653EB5E77CCA82214C9C6F4E42E8A3C46CC9BE15BC868BC45B28027E515A16554B9D4F6AB57CFFE42CFE0B42BF83E53F27B39AD95E000C329F716E51D15D6CD211E87AAA83A0F1175F5E1E8963A57DA656FBC19FB42661F14328B05CA7F1A83F49044A5086E6AF56225B8783450E43CB1B6F19061441AF58053BBFAACBC3A80FF5F19A8BD873F487A8FFE3DECD35E77EB2C26387EF66A3EED98C773211914115AFD0776FDAC90CB65479DFE59C0D199F195BBE9E4B2F70A9B1A41429002C2998FAB0F2D6956731819D9F5175B92FECE43178BC69ABEC6E2C18EA88289C5B14C58227640D02F614A9A881633816B9DCAC79E4721EF6E42691902AD1CF565600BAA8019310CAA0AC1087A86846C2E9B96B82C3F0CE52EE73760111061EF090DCBF47882710302A65FBDCF380F84703FE3D4FF7ADD0CB7ED65C889DD6EEC24D01F92771DF3F3D8DFB4BDE234D4A35AB20B22BF5D749398C9B6AE5C7B62DC11ACD887A49586238F5B6D37B47EA6953C3E339A9B40EF3EB01DD70F69253BA9A262777C75DF175195D172BD8233FC7B6F207154EF6E2F47533E359D24EB312A292C756C34A2D55A16452829DAD7A9731E2026E56486F6A3C07380DCA1AFFF270464DA8FF34621FBA715C5853EB1D4EA1C4E23B43CD1CDE1F252B728875F187626A813B4166CC34A62A5D6867E0B605641CEE8025F0AD73DBE4443286CA02429C813 | 335 | 20180928170131 2 6 100 7679 2 C988D06CCD826A9351D5CAE32A47B28ECC90FA4870D861CCC058CFA49419B0044A395E3F289A48C821B2EFE08D293B917B1DB2E2369564F5D066084F71A090706F84E101625CACAAECFFF3B2FE2A8C04FF9A14D43E9B316576F1571B0FDD51A119222601AE2BBFC3007FBC12D10A2D725AD9D8503A47B4B1977FAF4B0C8E244C372662A335C82380718ABAA9B522A03866EBFC6DD7DEE135A54FDCE58EAAF1996D2485E178888F361B01C2A5F5E21E65BAFFE3024C02210AF189975CADE7BFEAD4A90401D7E37D9B855FA8C8F0D2FBFF9357F8C05E3A2A14173E8F7555FD78B88ECEDC94E238639FA1F59C896F61501B2094199D7679805FB69026D4F13CDEB60CAA339BEB091D7D0C125C72028FDFEC35C5D6EE231B1A46C0619BF822F415121A975322001C4EDC29C5CAA430D1471D1013B67B90F5A7FAFB322B53A9C4D418763CB8A9DD068BF3B7702BA939B4FB0DA5253A999B5A8DFA664D2A9F94169F34E46D45D348E3A7E3424CF6019CFDFE1623940B3FC47A1064E601549C02020571FA10F63AEB0676213CD71D1A8A4140662D00471FE9BA88C269F8D217A978AE910A85CADCA772BD7023DC8D0C2ED524C7FEEFEDF408E4221F474A3783545E155118133FA9D65382F7261CF001701E46721021A1315780A53F4238C1AEEA41D38E1B3310D2EC9AE97C2677467157A0B74DA93A3CDF3E6CF898FA0F5CDF3F55CA572385698FD0F55E0E5C63B4BCB9F4A6EDB74C02C0150B057B1A903F7DD8EFC011EE822F2ECBB780914BCC43A11F7BF4A63BE31F06226881ADE9EA780A58C1A6D7183EE947611A03051A0EA817D6D26FC0C418607EEF57AE00494CDDA1CB518C3F910FD46C65F96E3553CEFFD72D13AC13904EFF4E66203B8D512BF7136251120F0BD28C1E781000BBF832A072DB3BBA7B2CFB5AB1F6DAA17FD6EA6C484BB764E5F01194A5445B1FD435977F916261FA1B5AAD6B7E83782C04EBF3CBD11DC7D929FFD8A16597E2D6A384F343D08E13CEA8232818D7F989BB4B0D7D7531AF0F4C6683356A109EAFD135D2E3319FFA6218053EC737FBD91D5886790D4FB1DB70F3D704148EFF2FAA0241F47F2902EA8286BD7647B615197B0E2A70F3638BDF46973518EA692DA5EE26E533F815FA5E5835C2080FAC1776A7CCFE2F49B1400A55F24C9FC465A766772EFB35756AABF0A42B58966E883AFE5E4000D863756225CDDA2F5AC06093173A1AFB5AD9A7B721A30820170A4AE35B3A2F09DE1B53B7D7A407E0F77F1CD4201337315E6677D30CA3E40F84A7AD707BE0FF99CE9334FAE40692F38135DBBC8CE8E7604C0F9C8AE1989C9FE2AC29C2800DC8876032B416FDB2EF23 |
336 | 20180419214419 2 6 100 7679 5 ECCC9B93ED119552D36A774B288F541A81536A13B8D687B23174D680CE3F21B8FA088685F5B965215AFA69736E741A3AFC2AC82CE16162A1E4F0012F28998A638AA98D0789D6C58D92F207EAAA33E467C801891B8D37651B66E0942CF6AB7FD8E0D09A6D597D582BA48563F1450C3300218874730D26EE8B6505059C95C1C764D5FD736BF0A64FAD10F0C7D52A8A57C3FBD653887AAA890DA7AFEDA55DAF702EFF06CC722D147DAA2C8B78F0707F51D2B326BEF8972F5A289829E998B94D98E0ED663143797B569F3A6B56897B5726A38B042806FDFDAA367A4F63C4BA31114300B6290828321C30B25DF97F273041E30A404836E84BB32E0620DC558047FC011A1205126F84D9F8EA5E607FC297E5C9FA00D803026D8126C08EF68B49F6A6C55DCB06EED0B666880CD49FCBFF598055D5E40303669CBC55D85F583DA5EF4F320D6E6A50ECBBFAF8C1F7209655EEAA58BFC18EB9FA20B29EC63FBC810C3A2EDCF8E27FD98975C87D59D9C909895AA10CEA5F7594ADD3ED1EBDFE01BE0559423475592A0E2936E4671504337221F897AE3016BC4670C6B765F5FF1185933B26B1183BCB1E5591970F40A1402EB19EF2644E941F67ABB31935259308B4A5271541F41653EB5E77CCA82214C9C6F4E42E8A3C46CC9BE15BC868BC45B28027E515A16554B9D4F6AB57CFFE42CFE0B42BF83E53F27B39AD95E000C329F716E51D15D6CD211E87AAA83A0F1175F5E1E8963A57DA656FBC19FB42661F14328B05CA7F1A83F49044A5086E6AF56225B8783450E43CB1B6F19061441AF58053BBFAACBC3A80FF5F19A8BD873F487A8FFE3DECD35E77EB2C26387EF66A3EED98C773211914115AFD0776FDAC90CB65479DFE59C0D199F195BBE9E4B2F70A9B1A41429002C2998FAB0F2D6956731819D9F5175B92FECE43178BC69ABEC6E2C18EA88289C5B14C58227640D02F614A9A881633816B9DCAC79E4721EF6E42691902AD1CF565600BAA8019310CAA0AC1087A86846C2E9B96B82C3F0CE52EE73760111061EF090DCBF47882710302A65FBDCF380F84703FE3D4FF7ADD0CB7ED65C889DD6EEC24D01F92771DF3F3D8DFB4BDE234D4A35AB20B22BF5D749398C9B6AE5C7B62DC11ACD887A49586238F5B6D37B47EA6953C3E339A9B40EF3EB01DD70F69253BA9A262777C75DF175195D172BD8233FC7B6F207154EF6E2F47533E359D24EB312A292C756C34A2D55A16452829DAD7A9731E2026E56486F6A3C07380DCA1AFFF270464DA8FF34621FBA715C5853EB1D4EA1C4E23B43CD1CDE1F252B728875F187626A813B4166CC34A62A5D6867E0B605641CEE8025F0AD73DBE4443286CA0286020EF | 336 | 20180928221854 2 6 100 7679 2 C988D06CCD826A9351D5CAE32A47B28ECC90FA4870D861CCC058CFA49419B0044A395E3F289A48C821B2EFE08D293B917B1DB2E2369564F5D066084F71A090706F84E101625CACAAECFFF3B2FE2A8C04FF9A14D43E9B316576F1571B0FDD51A119222601AE2BBFC3007FBC12D10A2D725AD9D8503A47B4B1977FAF4B0C8E244C372662A335C82380718ABAA9B522A03866EBFC6DD7DEE135A54FDCE58EAAF1996D2485E178888F361B01C2A5F5E21E65BAFFE3024C02210AF189975CADE7BFEAD4A90401D7E37D9B855FA8C8F0D2FBFF9357F8C05E3A2A14173E8F7555FD78B88ECEDC94E238639FA1F59C896F61501B2094199D7679805FB69026D4F13CDEB60CAA339BEB091D7D0C125C72028FDFEC35C5D6EE231B1A46C0619BF822F415121A975322001C4EDC29C5CAA430D1471D1013B67B90F5A7FAFB322B53A9C4D418763CB8A9DD068BF3B7702BA939B4FB0DA5253A999B5A8DFA664D2A9F94169F34E46D45D348E3A7E3424CF6019CFDFE1623940B3FC47A1064E601549C02020571FA10F63AEB0676213CD71D1A8A4140662D00471FE9BA88C269F8D217A978AE910A85CADCA772BD7023DC8D0C2ED524C7FEEFEDF408E4221F474A3783545E155118133FA9D65382F7261CF001701E46721021A1315780A53F4238C1AEEA41D38E1B3310D2EC9AE97C2677467157A0B74DA93A3CDF3E6CF898FA0F5CDF3F55CA572385698FD0F55E0E5C63B4BCB9F4A6EDB74C02C0150B057B1A903F7DD8EFC011EE822F2ECBB780914BCC43A11F7BF4A63BE31F06226881ADE9EA780A58C1A6D7183EE947611A03051A0EA817D6D26FC0C418607EEF57AE00494CDDA1CB518C3F910FD46C65F96E3553CEFFD72D13AC13904EFF4E66203B8D512BF7136251120F0BD28C1E781000BBF832A072DB3BBA7B2CFB5AB1F6DAA17FD6EA6C484BB764E5F01194A5445B1FD435977F916261FA1B5AAD6B7E83782C04EBF3CBD11DC7D929FFD8A16597E2D6A384F343D08E13CEA8232818D7F989BB4B0D7D7531AF0F4C6683356A109EAFD135D2E3319FFA6218053EC737FBD91D5886790D4FB1DB70F3D704148EFF2FAA0241F47F2902EA8286BD7647B615197B0E2A70F3638BDF46973518EA692DA5EE26E533F815FA5E5835C2080FAC1776A7CCFE2F49B1400A55F24C9FC465A766772EFB35756AABF0A42B58966E883AFE5E4000D863756225CDDA2F5AC06093173A1AFB5AD9A7B721A30820170A4AE35B3A2F09DE1B53B7D7A407E0F77F1CD4201337315E6677D30CA3E40F84A7AD707BE0FF99CE9334FAE40692F38135DBBC8CE8E7604C0F9C8AE1989C9FE2AC29C2800DC8876032B41701B64E6B |
337 | 20180420033054 2 6 100 7679 5 ECCC9B93ED119552D36A774B288F541A81536A13B8D687B23174D680CE3F21B8FA088685F5B965215AFA69736E741A3AFC2AC82CE16162A1E4F0012F28998A638AA98D0789D6C58D92F207EAAA33E467C801891B8D37651B66E0942CF6AB7FD8E0D09A6D597D582BA48563F1450C3300218874730D26EE8B6505059C95C1C764D5FD736BF0A64FAD10F0C7D52A8A57C3FBD653887AAA890DA7AFEDA55DAF702EFF06CC722D147DAA2C8B78F0707F51D2B326BEF8972F5A289829E998B94D98E0ED663143797B569F3A6B56897B5726A38B042806FDFDAA367A4F63C4BA31114300B6290828321C30B25DF97F273041E30A404836E84BB32E0620DC558047FC011A1205126F84D9F8EA5E607FC297E5C9FA00D803026D8126C08EF68B49F6A6C55DCB06EED0B666880CD49FCBFF598055D5E40303669CBC55D85F583DA5EF4F320D6E6A50ECBBFAF8C1F7209655EEAA58BFC18EB9FA20B29EC63FBC810C3A2EDCF8E27FD98975C87D59D9C909895AA10CEA5F7594ADD3ED1EBDFE01BE0559423475592A0E2936E4671504337221F897AE3016BC4670C6B765F5FF1185933B26B1183BCB1E5591970F40A1402EB19EF2644E941F67ABB31935259308B4A5271541F41653EB5E77CCA82214C9C6F4E42E8A3C46CC9BE15BC868BC45B28027E515A16554B9D4F6AB57CFFE42CFE0B42BF83E53F27B39AD95E000C329F716E51D15D6CD211E87AAA83A0F1175F5E1E8963A57DA656FBC19FB42661F14328B05CA7F1A83F49044A5086E6AF56225B8783450E43CB1B6F19061441AF58053BBFAACBC3A80FF5F19A8BD873F487A8FFE3DECD35E77EB2C26387EF66A3EED98C773211914115AFD0776FDAC90CB65479DFE59C0D199F195BBE9E4B2F70A9B1A41429002C2998FAB0F2D6956731819D9F5175B92FECE43178BC69ABEC6E2C18EA88289C5B14C58227640D02F614A9A881633816B9DCAC79E4721EF6E42691902AD1CF565600BAA8019310CAA0AC1087A86846C2E9B96B82C3F0CE52EE73760111061EF090DCBF47882710302A65FBDCF380F84703FE3D4FF7ADD0CB7ED65C889DD6EEC24D01F92771DF3F3D8DFB4BDE234D4A35AB20B22BF5D749398C9B6AE5C7B62DC11ACD887A49586238F5B6D37B47EA6953C3E339A9B40EF3EB01DD70F69253BA9A262777C75DF175195D172BD8233FC7B6F207154EF6E2F47533E359D24EB312A292C756C34A2D55A16452829DAD7A9731E2026E56486F6A3C07380DCA1AFFF270464DA8FF34621FBA715C5853EB1D4EA1C4E23B43CD1CDE1F252B728875F187626A813B4166CC34A62A5D6867E0B605641CEE8025F0AD73DBE4443286CA02CE157FF | 337 | 20180929042224 2 6 100 7679 5 C988D06CCD826A9351D5CAE32A47B28ECC90FA4870D861CCC058CFA49419B0044A395E3F289A48C821B2EFE08D293B917B1DB2E2369564F5D066084F71A090706F84E101625CACAAECFFF3B2FE2A8C04FF9A14D43E9B316576F1571B0FDD51A119222601AE2BBFC3007FBC12D10A2D725AD9D8503A47B4B1977FAF4B0C8E244C372662A335C82380718ABAA9B522A03866EBFC6DD7DEE135A54FDCE58EAAF1996D2485E178888F361B01C2A5F5E21E65BAFFE3024C02210AF189975CADE7BFEAD4A90401D7E37D9B855FA8C8F0D2FBFF9357F8C05E3A2A14173E8F7555FD78B88ECEDC94E238639FA1F59C896F61501B2094199D7679805FB69026D4F13CDEB60CAA339BEB091D7D0C125C72028FDFEC35C5D6EE231B1A46C0619BF822F415121A975322001C4EDC29C5CAA430D1471D1013B67B90F5A7FAFB322B53A9C4D418763CB8A9DD068BF3B7702BA939B4FB0DA5253A999B5A8DFA664D2A9F94169F34E46D45D348E3A7E3424CF6019CFDFE1623940B3FC47A1064E601549C02020571FA10F63AEB0676213CD71D1A8A4140662D00471FE9BA88C269F8D217A978AE910A85CADCA772BD7023DC8D0C2ED524C7FEEFEDF408E4221F474A3783545E155118133FA9D65382F7261CF001701E46721021A1315780A53F4238C1AEEA41D38E1B3310D2EC9AE97C2677467157A0B74DA93A3CDF3E6CF898FA0F5CDF3F55CA572385698FD0F55E0E5C63B4BCB9F4A6EDB74C02C0150B057B1A903F7DD8EFC011EE822F2ECBB780914BCC43A11F7BF4A63BE31F06226881ADE9EA780A58C1A6D7183EE947611A03051A0EA817D6D26FC0C418607EEF57AE00494CDDA1CB518C3F910FD46C65F96E3553CEFFD72D13AC13904EFF4E66203B8D512BF7136251120F0BD28C1E781000BBF832A072DB3BBA7B2CFB5AB1F6DAA17FD6EA6C484BB764E5F01194A5445B1FD435977F916261FA1B5AAD6B7E83782C04EBF3CBD11DC7D929FFD8A16597E2D6A384F343D08E13CEA8232818D7F989BB4B0D7D7531AF0F4C6683356A109EAFD135D2E3319FFA6218053EC737FBD91D5886790D4FB1DB70F3D704148EFF2FAA0241F47F2902EA8286BD7647B615197B0E2A70F3638BDF46973518EA692DA5EE26E533F815FA5E5835C2080FAC1776A7CCFE2F49B1400A55F24C9FC465A766772EFB35756AABF0A42B58966E883AFE5E4000D863756225CDDA2F5AC06093173A1AFB5AD9A7B721A30820170A4AE35B3A2F09DE1B53B7D7A407E0F77F1CD4201337315E6677D30CA3E40F84A7AD707BE0FF99CE9334FAE40692F38135DBBC8CE8E7604C0F9C8AE1989C9FE2AC29C2800DC8876032B417064EC2FF |
338 | 20180420033355 2 6 100 7679 5 ECCC9B93ED119552D36A774B288F541A81536A13B8D687B23174D680CE3F21B8FA088685F5B965215AFA69736E741A3AFC2AC82CE16162A1E4F0012F28998A638AA98D0789D6C58D92F207EAAA33E467C801891B8D37651B66E0942CF6AB7FD8E0D09A6D597D582BA48563F1450C3300218874730D26EE8B6505059C95C1C764D5FD736BF0A64FAD10F0C7D52A8A57C3FBD653887AAA890DA7AFEDA55DAF702EFF06CC722D147DAA2C8B78F0707F51D2B326BEF8972F5A289829E998B94D98E0ED663143797B569F3A6B56897B5726A38B042806FDFDAA367A4F63C4BA31114300B6290828321C30B25DF97F273041E30A404836E84BB32E0620DC558047FC011A1205126F84D9F8EA5E607FC297E5C9FA00D803026D8126C08EF68B49F6A6C55DCB06EED0B666880CD49FCBFF598055D5E40303669CBC55D85F583DA5EF4F320D6E6A50ECBBFAF8C1F7209655EEAA58BFC18EB9FA20B29EC63FBC810C3A2EDCF8E27FD98975C87D59D9C909895AA10CEA5F7594ADD3ED1EBDFE01BE0559423475592A0E2936E4671504337221F897AE3016BC4670C6B765F5FF1185933B26B1183BCB1E5591970F40A1402EB19EF2644E941F67ABB31935259308B4A5271541F41653EB5E77CCA82214C9C6F4E42E8A3C46CC9BE15BC868BC45B28027E515A16554B9D4F6AB57CFFE42CFE0B42BF83E53F27B39AD95E000C329F716E51D15D6CD211E87AAA83A0F1175F5E1E8963A57DA656FBC19FB42661F14328B05CA7F1A83F49044A5086E6AF56225B8783450E43CB1B6F19061441AF58053BBFAACBC3A80FF5F19A8BD873F487A8FFE3DECD35E77EB2C26387EF66A3EED98C773211914115AFD0776FDAC90CB65479DFE59C0D199F195BBE9E4B2F70A9B1A41429002C2998FAB0F2D6956731819D9F5175B92FECE43178BC69ABEC6E2C18EA88289C5B14C58227640D02F614A9A881633816B9DCAC79E4721EF6E42691902AD1CF565600BAA8019310CAA0AC1087A86846C2E9B96B82C3F0CE52EE73760111061EF090DCBF47882710302A65FBDCF380F84703FE3D4FF7ADD0CB7ED65C889DD6EEC24D01F92771DF3F3D8DFB4BDE234D4A35AB20B22BF5D749398C9B6AE5C7B62DC11ACD887A49586238F5B6D37B47EA6953C3E339A9B40EF3EB01DD70F69253BA9A262777C75DF175195D172BD8233FC7B6F207154EF6E2F47533E359D24EB312A292C756C34A2D55A16452829DAD7A9731E2026E56486F6A3C07380DCA1AFFF270464DA8FF34621FBA715C5853EB1D4EA1C4E23B43CD1CDE1F252B728875F187626A813B4166CC34A62A5D6867E0B605641CEE8025F0AD73DBE4443286CA02CE22F0F | 338 | 20180929093251 2 6 100 7679 2 C988D06CCD826A9351D5CAE32A47B28ECC90FA4870D861CCC058CFA49419B0044A395E3F289A48C821B2EFE08D293B917B1DB2E2369564F5D066084F71A090706F84E101625CACAAECFFF3B2FE2A8C04FF9A14D43E9B316576F1571B0FDD51A119222601AE2BBFC3007FBC12D10A2D725AD9D8503A47B4B1977FAF4B0C8E244C372662A335C82380718ABAA9B522A03866EBFC6DD7DEE135A54FDCE58EAAF1996D2485E178888F361B01C2A5F5E21E65BAFFE3024C02210AF189975CADE7BFEAD4A90401D7E37D9B855FA8C8F0D2FBFF9357F8C05E3A2A14173E8F7555FD78B88ECEDC94E238639FA1F59C896F61501B2094199D7679805FB69026D4F13CDEB60CAA339BEB091D7D0C125C72028FDFEC35C5D6EE231B1A46C0619BF822F415121A975322001C4EDC29C5CAA430D1471D1013B67B90F5A7FAFB322B53A9C4D418763CB8A9DD068BF3B7702BA939B4FB0DA5253A999B5A8DFA664D2A9F94169F34E46D45D348E3A7E3424CF6019CFDFE1623940B3FC47A1064E601549C02020571FA10F63AEB0676213CD71D1A8A4140662D00471FE9BA88C269F8D217A978AE910A85CADCA772BD7023DC8D0C2ED524C7FEEFEDF408E4221F474A3783545E155118133FA9D65382F7261CF001701E46721021A1315780A53F4238C1AEEA41D38E1B3310D2EC9AE97C2677467157A0B74DA93A3CDF3E6CF898FA0F5CDF3F55CA572385698FD0F55E0E5C63B4BCB9F4A6EDB74C02C0150B057B1A903F7DD8EFC011EE822F2ECBB780914BCC43A11F7BF4A63BE31F06226881ADE9EA780A58C1A6D7183EE947611A03051A0EA817D6D26FC0C418607EEF57AE00494CDDA1CB518C3F910FD46C65F96E3553CEFFD72D13AC13904EFF4E66203B8D512BF7136251120F0BD28C1E781000BBF832A072DB3BBA7B2CFB5AB1F6DAA17FD6EA6C484BB764E5F01194A5445B1FD435977F916261FA1B5AAD6B7E83782C04EBF3CBD11DC7D929FFD8A16597E2D6A384F343D08E13CEA8232818D7F989BB4B0D7D7531AF0F4C6683356A109EAFD135D2E3319FFA6218053EC737FBD91D5886790D4FB1DB70F3D704148EFF2FAA0241F47F2902EA8286BD7647B615197B0E2A70F3638BDF46973518EA692DA5EE26E533F815FA5E5835C2080FAC1776A7CCFE2F49B1400A55F24C9FC465A766772EFB35756AABF0A42B58966E883AFE5E4000D863756225CDDA2F5AC06093173A1AFB5AD9A7B721A30820170A4AE35B3A2F09DE1B53B7D7A407E0F77F1CD4201337315E6677D30CA3E40F84A7AD707BE0FF99CE9334FAE40692F38135DBBC8CE8E7604C0F9C8AE1989C9FE2AC29C2800DC8876032B4170A2F02DB |
339 | 20180420131137 2 6 100 7679 2 ECCC9B93ED119552D36A774B288F541A81536A13B8D687B23174D680CE3F21B8FA088685F5B965215AFA69736E741A3AFC2AC82CE16162A1E4F0012F28998A638AA98D0789D6C58D92F207EAAA33E467C801891B8D37651B66E0942CF6AB7FD8E0D09A6D597D582BA48563F1450C3300218874730D26EE8B6505059C95C1C764D5FD736BF0A64FAD10F0C7D52A8A57C3FBD653887AAA890DA7AFEDA55DAF702EFF06CC722D147DAA2C8B78F0707F51D2B326BEF8972F5A289829E998B94D98E0ED663143797B569F3A6B56897B5726A38B042806FDFDAA367A4F63C4BA31114300B6290828321C30B25DF97F273041E30A404836E84BB32E0620DC558047FC011A1205126F84D9F8EA5E607FC297E5C9FA00D803026D8126C08EF68B49F6A6C55DCB06EED0B666880CD49FCBFF598055D5E40303669CBC55D85F583DA5EF4F320D6E6A50ECBBFAF8C1F7209655EEAA58BFC18EB9FA20B29EC63FBC810C3A2EDCF8E27FD98975C87D59D9C909895AA10CEA5F7594ADD3ED1EBDFE01BE0559423475592A0E2936E4671504337221F897AE3016BC4670C6B765F5FF1185933B26B1183BCB1E5591970F40A1402EB19EF2644E941F67ABB31935259308B4A5271541F41653EB5E77CCA82214C9C6F4E42E8A3C46CC9BE15BC868BC45B28027E515A16554B9D4F6AB57CFFE42CFE0B42BF83E53F27B39AD95E000C329F716E51D15D6CD211E87AAA83A0F1175F5E1E8963A57DA656FBC19FB42661F14328B05CA7F1A83F49044A5086E6AF56225B8783450E43CB1B6F19061441AF58053BBFAACBC3A80FF5F19A8BD873F487A8FFE3DECD35E77EB2C26387EF66A3EED98C773211914115AFD0776FDAC90CB65479DFE59C0D199F195BBE9E4B2F70A9B1A41429002C2998FAB0F2D6956731819D9F5175B92FECE43178BC69ABEC6E2C18EA88289C5B14C58227640D02F614A9A881633816B9DCAC79E4721EF6E42691902AD1CF565600BAA8019310CAA0AC1087A86846C2E9B96B82C3F0CE52EE73760111061EF090DCBF47882710302A65FBDCF380F84703FE3D4FF7ADD0CB7ED65C889DD6EEC24D01F92771DF3F3D8DFB4BDE234D4A35AB20B22BF5D749398C9B6AE5C7B62DC11ACD887A49586238F5B6D37B47EA6953C3E339A9B40EF3EB01DD70F69253BA9A262777C75DF175195D172BD8233FC7B6F207154EF6E2F47533E359D24EB312A292C756C34A2D55A16452829DAD7A9731E2026E56486F6A3C07380DCA1AFFF270464DA8FF34621FBA715C5853EB1D4EA1C4E23B43CD1CDE1F252B728875F187626A813B4166CC34A62A5D6867E0B605641CEE8025F0AD73DBE4443286CA03463D903 | 339 | 20180929124700 2 6 100 7679 2 C988D06CCD826A9351D5CAE32A47B28ECC90FA4870D861CCC058CFA49419B0044A395E3F289A48C821B2EFE08D293B917B1DB2E2369564F5D066084F71A090706F84E101625CACAAECFFF3B2FE2A8C04FF9A14D43E9B316576F1571B0FDD51A119222601AE2BBFC3007FBC12D10A2D725AD9D8503A47B4B1977FAF4B0C8E244C372662A335C82380718ABAA9B522A03866EBFC6DD7DEE135A54FDCE58EAAF1996D2485E178888F361B01C2A5F5E21E65BAFFE3024C02210AF189975CADE7BFEAD4A90401D7E37D9B855FA8C8F0D2FBFF9357F8C05E3A2A14173E8F7555FD78B88ECEDC94E238639FA1F59C896F61501B2094199D7679805FB69026D4F13CDEB60CAA339BEB091D7D0C125C72028FDFEC35C5D6EE231B1A46C0619BF822F415121A975322001C4EDC29C5CAA430D1471D1013B67B90F5A7FAFB322B53A9C4D418763CB8A9DD068BF3B7702BA939B4FB0DA5253A999B5A8DFA664D2A9F94169F34E46D45D348E3A7E3424CF6019CFDFE1623940B3FC47A1064E601549C02020571FA10F63AEB0676213CD71D1A8A4140662D00471FE9BA88C269F8D217A978AE910A85CADCA772BD7023DC8D0C2ED524C7FEEFEDF408E4221F474A3783545E155118133FA9D65382F7261CF001701E46721021A1315780A53F4238C1AEEA41D38E1B3310D2EC9AE97C2677467157A0B74DA93A3CDF3E6CF898FA0F5CDF3F55CA572385698FD0F55E0E5C63B4BCB9F4A6EDB74C02C0150B057B1A903F7DD8EFC011EE822F2ECBB780914BCC43A11F7BF4A63BE31F06226881ADE9EA780A58C1A6D7183EE947611A03051A0EA817D6D26FC0C418607EEF57AE00494CDDA1CB518C3F910FD46C65F96E3553CEFFD72D13AC13904EFF4E66203B8D512BF7136251120F0BD28C1E781000BBF832A072DB3BBA7B2CFB5AB1F6DAA17FD6EA6C484BB764E5F01194A5445B1FD435977F916261FA1B5AAD6B7E83782C04EBF3CBD11DC7D929FFD8A16597E2D6A384F343D08E13CEA8232818D7F989BB4B0D7D7531AF0F4C6683356A109EAFD135D2E3319FFA6218053EC737FBD91D5886790D4FB1DB70F3D704148EFF2FAA0241F47F2902EA8286BD7647B615197B0E2A70F3638BDF46973518EA692DA5EE26E533F815FA5E5835C2080FAC1776A7CCFE2F49B1400A55F24C9FC465A766772EFB35756AABF0A42B58966E883AFE5E4000D863756225CDDA2F5AC06093173A1AFB5AD9A7B721A30820170A4AE35B3A2F09DE1B53B7D7A407E0F77F1CD4201337315E6677D30CA3E40F84A7AD707BE0FF99CE9334FAE40692F38135DBBC8CE8E7604C0F9C8AE1989C9FE2AC29C2800DC8876032B4170C92055B |
340 | 20180420174655 2 6 100 7679 2 ECCC9B93ED119552D36A774B288F541A81536A13B8D687B23174D680CE3F21B8FA088685F5B965215AFA69736E741A3AFC2AC82CE16162A1E4F0012F28998A638AA98D0789D6C58D92F207EAAA33E467C801891B8D37651B66E0942CF6AB7FD8E0D09A6D597D582BA48563F1450C3300218874730D26EE8B6505059C95C1C764D5FD736BF0A64FAD10F0C7D52A8A57C3FBD653887AAA890DA7AFEDA55DAF702EFF06CC722D147DAA2C8B78F0707F51D2B326BEF8972F5A289829E998B94D98E0ED663143797B569F3A6B56897B5726A38B042806FDFDAA367A4F63C4BA31114300B6290828321C30B25DF97F273041E30A404836E84BB32E0620DC558047FC011A1205126F84D9F8EA5E607FC297E5C9FA00D803026D8126C08EF68B49F6A6C55DCB06EED0B666880CD49FCBFF598055D5E40303669CBC55D85F583DA5EF4F320D6E6A50ECBBFAF8C1F7209655EEAA58BFC18EB9FA20B29EC63FBC810C3A2EDCF8E27FD98975C87D59D9C909895AA10CEA5F7594ADD3ED1EBDFE01BE0559423475592A0E2936E4671504337221F897AE3016BC4670C6B765F5FF1185933B26B1183BCB1E5591970F40A1402EB19EF2644E941F67ABB31935259308B4A5271541F41653EB5E77CCA82214C9C6F4E42E8A3C46CC9BE15BC868BC45B28027E515A16554B9D4F6AB57CFFE42CFE0B42BF83E53F27B39AD95E000C329F716E51D15D6CD211E87AAA83A0F1175F5E1E8963A57DA656FBC19FB42661F14328B05CA7F1A83F49044A5086E6AF56225B8783450E43CB1B6F19061441AF58053BBFAACBC3A80FF5F19A8BD873F487A8FFE3DECD35E77EB2C26387EF66A3EED98C773211914115AFD0776FDAC90CB65479DFE59C0D199F195BBE9E4B2F70A9B1A41429002C2998FAB0F2D6956731819D9F5175B92FECE43178BC69ABEC6E2C18EA88289C5B14C58227640D02F614A9A881633816B9DCAC79E4721EF6E42691902AD1CF565600BAA8019310CAA0AC1087A86846C2E9B96B82C3F0CE52EE73760111061EF090DCBF47882710302A65FBDCF380F84703FE3D4FF7ADD0CB7ED65C889DD6EEC24D01F92771DF3F3D8DFB4BDE234D4A35AB20B22BF5D749398C9B6AE5C7B62DC11ACD887A49586238F5B6D37B47EA6953C3E339A9B40EF3EB01DD70F69253BA9A262777C75DF175195D172BD8233FC7B6F207154EF6E2F47533E359D24EB312A292C756C34A2D55A16452829DAD7A9731E2026E56486F6A3C07380DCA1AFFF270464DA8FF34621FBA715C5853EB1D4EA1C4E23B43CD1CDE1F252B728875F187626A813B4166CC34A62A5D6867E0B605641CEE8025F0AD73DBE4443286CA037E8E853 | 340 | 20180929125705 2 6 100 7679 5 C988D06CCD826A9351D5CAE32A47B28ECC90FA4870D861CCC058CFA49419B0044A395E3F289A48C821B2EFE08D293B917B1DB2E2369564F5D066084F71A090706F84E101625CACAAECFFF3B2FE2A8C04FF9A14D43E9B316576F1571B0FDD51A119222601AE2BBFC3007FBC12D10A2D725AD9D8503A47B4B1977FAF4B0C8E244C372662A335C82380718ABAA9B522A03866EBFC6DD7DEE135A54FDCE58EAAF1996D2485E178888F361B01C2A5F5E21E65BAFFE3024C02210AF189975CADE7BFEAD4A90401D7E37D9B855FA8C8F0D2FBFF9357F8C05E3A2A14173E8F7555FD78B88ECEDC94E238639FA1F59C896F61501B2094199D7679805FB69026D4F13CDEB60CAA339BEB091D7D0C125C72028FDFEC35C5D6EE231B1A46C0619BF822F415121A975322001C4EDC29C5CAA430D1471D1013B67B90F5A7FAFB322B53A9C4D418763CB8A9DD068BF3B7702BA939B4FB0DA5253A999B5A8DFA664D2A9F94169F34E46D45D348E3A7E3424CF6019CFDFE1623940B3FC47A1064E601549C02020571FA10F63AEB0676213CD71D1A8A4140662D00471FE9BA88C269F8D217A978AE910A85CADCA772BD7023DC8D0C2ED524C7FEEFEDF408E4221F474A3783545E155118133FA9D65382F7261CF001701E46721021A1315780A53F4238C1AEEA41D38E1B3310D2EC9AE97C2677467157A0B74DA93A3CDF3E6CF898FA0F5CDF3F55CA572385698FD0F55E0E5C63B4BCB9F4A6EDB74C02C0150B057B1A903F7DD8EFC011EE822F2ECBB780914BCC43A11F7BF4A63BE31F06226881ADE9EA780A58C1A6D7183EE947611A03051A0EA817D6D26FC0C418607EEF57AE00494CDDA1CB518C3F910FD46C65F96E3553CEFFD72D13AC13904EFF4E66203B8D512BF7136251120F0BD28C1E781000BBF832A072DB3BBA7B2CFB5AB1F6DAA17FD6EA6C484BB764E5F01194A5445B1FD435977F916261FA1B5AAD6B7E83782C04EBF3CBD11DC7D929FFD8A16597E2D6A384F343D08E13CEA8232818D7F989BB4B0D7D7531AF0F4C6683356A109EAFD135D2E3319FFA6218053EC737FBD91D5886790D4FB1DB70F3D704148EFF2FAA0241F47F2902EA8286BD7647B615197B0E2A70F3638BDF46973518EA692DA5EE26E533F815FA5E5835C2080FAC1776A7CCFE2F49B1400A55F24C9FC465A766772EFB35756AABF0A42B58966E883AFE5E4000D863756225CDDA2F5AC06093173A1AFB5AD9A7B721A30820170A4AE35B3A2F09DE1B53B7D7A407E0F77F1CD4201337315E6677D30CA3E40F84A7AD707BE0FF99CE9334FAE40692F38135DBBC8CE8E7604C0F9C8AE1989C9FE2AC29C2800DC8876032B4170CA966AF |
341 | 20180420224816 2 6 100 7679 2 ECCC9B93ED119552D36A774B288F541A81536A13B8D687B23174D680CE3F21B8FA088685F5B965215AFA69736E741A3AFC2AC82CE16162A1E4F0012F28998A638AA98D0789D6C58D92F207EAAA33E467C801891B8D37651B66E0942CF6AB7FD8E0D09A6D597D582BA48563F1450C3300218874730D26EE8B6505059C95C1C764D5FD736BF0A64FAD10F0C7D52A8A57C3FBD653887AAA890DA7AFEDA55DAF702EFF06CC722D147DAA2C8B78F0707F51D2B326BEF8972F5A289829E998B94D98E0ED663143797B569F3A6B56897B5726A38B042806FDFDAA367A4F63C4BA31114300B6290828321C30B25DF97F273041E30A404836E84BB32E0620DC558047FC011A1205126F84D9F8EA5E607FC297E5C9FA00D803026D8126C08EF68B49F6A6C55DCB06EED0B666880CD49FCBFF598055D5E40303669CBC55D85F583DA5EF4F320D6E6A50ECBBFAF8C1F7209655EEAA58BFC18EB9FA20B29EC63FBC810C3A2EDCF8E27FD98975C87D59D9C909895AA10CEA5F7594ADD3ED1EBDFE01BE0559423475592A0E2936E4671504337221F897AE3016BC4670C6B765F5FF1185933B26B1183BCB1E5591970F40A1402EB19EF2644E941F67ABB31935259308B4A5271541F41653EB5E77CCA82214C9C6F4E42E8A3C46CC9BE15BC868BC45B28027E515A16554B9D4F6AB57CFFE42CFE0B42BF83E53F27B39AD95E000C329F716E51D15D6CD211E87AAA83A0F1175F5E1E8963A57DA656FBC19FB42661F14328B05CA7F1A83F49044A5086E6AF56225B8783450E43CB1B6F19061441AF58053BBFAACBC3A80FF5F19A8BD873F487A8FFE3DECD35E77EB2C26387EF66A3EED98C773211914115AFD0776FDAC90CB65479DFE59C0D199F195BBE9E4B2F70A9B1A41429002C2998FAB0F2D6956731819D9F5175B92FECE43178BC69ABEC6E2C18EA88289C5B14C58227640D02F614A9A881633816B9DCAC79E4721EF6E42691902AD1CF565600BAA8019310CAA0AC1087A86846C2E9B96B82C3F0CE52EE73760111061EF090DCBF47882710302A65FBDCF380F84703FE3D4FF7ADD0CB7ED65C889DD6EEC24D01F92771DF3F3D8DFB4BDE234D4A35AB20B22BF5D749398C9B6AE5C7B62DC11ACD887A49586238F5B6D37B47EA6953C3E339A9B40EF3EB01DD70F69253BA9A262777C75DF175195D172BD8233FC7B6F207154EF6E2F47533E359D24EB312A292C756C34A2D55A16452829DAD7A9731E2026E56486F6A3C07380DCA1AFFF270464DA8FF34621FBA715C5853EB1D4EA1C4E23B43CD1CDE1F252B728875F187626A813B4166CC34A62A5D6867E0B605641CEE8025F0AD73DBE4443286CA03BC5BAEB | 341 | 20180929140557 2 6 100 7679 2 C988D06CCD826A9351D5CAE32A47B28ECC90FA4870D861CCC058CFA49419B0044A395E3F289A48C821B2EFE08D293B917B1DB2E2369564F5D066084F71A090706F84E101625CACAAECFFF3B2FE2A8C04FF9A14D43E9B316576F1571B0FDD51A119222601AE2BBFC3007FBC12D10A2D725AD9D8503A47B4B1977FAF4B0C8E244C372662A335C82380718ABAA9B522A03866EBFC6DD7DEE135A54FDCE58EAAF1996D2485E178888F361B01C2A5F5E21E65BAFFE3024C02210AF189975CADE7BFEAD4A90401D7E37D9B855FA8C8F0D2FBFF9357F8C05E3A2A14173E8F7555FD78B88ECEDC94E238639FA1F59C896F61501B2094199D7679805FB69026D4F13CDEB60CAA339BEB091D7D0C125C72028FDFEC35C5D6EE231B1A46C0619BF822F415121A975322001C4EDC29C5CAA430D1471D1013B67B90F5A7FAFB322B53A9C4D418763CB8A9DD068BF3B7702BA939B4FB0DA5253A999B5A8DFA664D2A9F94169F34E46D45D348E3A7E3424CF6019CFDFE1623940B3FC47A1064E601549C02020571FA10F63AEB0676213CD71D1A8A4140662D00471FE9BA88C269F8D217A978AE910A85CADCA772BD7023DC8D0C2ED524C7FEEFEDF408E4221F474A3783545E155118133FA9D65382F7261CF001701E46721021A1315780A53F4238C1AEEA41D38E1B3310D2EC9AE97C2677467157A0B74DA93A3CDF3E6CF898FA0F5CDF3F55CA572385698FD0F55E0E5C63B4BCB9F4A6EDB74C02C0150B057B1A903F7DD8EFC011EE822F2ECBB780914BCC43A11F7BF4A63BE31F06226881ADE9EA780A58C1A6D7183EE947611A03051A0EA817D6D26FC0C418607EEF57AE00494CDDA1CB518C3F910FD46C65F96E3553CEFFD72D13AC13904EFF4E66203B8D512BF7136251120F0BD28C1E781000BBF832A072DB3BBA7B2CFB5AB1F6DAA17FD6EA6C484BB764E5F01194A5445B1FD435977F916261FA1B5AAD6B7E83782C04EBF3CBD11DC7D929FFD8A16597E2D6A384F343D08E13CEA8232818D7F989BB4B0D7D7531AF0F4C6683356A109EAFD135D2E3319FFA6218053EC737FBD91D5886790D4FB1DB70F3D704148EFF2FAA0241F47F2902EA8286BD7647B615197B0E2A70F3638BDF46973518EA692DA5EE26E533F815FA5E5835C2080FAC1776A7CCFE2F49B1400A55F24C9FC465A766772EFB35756AABF0A42B58966E883AFE5E4000D863756225CDDA2F5AC06093173A1AFB5AD9A7B721A30820170A4AE35B3A2F09DE1B53B7D7A407E0F77F1CD4201337315E6677D30CA3E40F84A7AD707BE0FF99CE9334FAE40692F38135DBBC8CE8E7604C0F9C8AE1989C9FE2AC29C2800DC8876032B4170D7B99EB |
342 | 20180421002804 2 6 100 7679 2 ECCC9B93ED119552D36A774B288F541A81536A13B8D687B23174D680CE3F21B8FA088685F5B965215AFA69736E741A3AFC2AC82CE16162A1E4F0012F28998A638AA98D0789D6C58D92F207EAAA33E467C801891B8D37651B66E0942CF6AB7FD8E0D09A6D597D582BA48563F1450C3300218874730D26EE8B6505059C95C1C764D5FD736BF0A64FAD10F0C7D52A8A57C3FBD653887AAA890DA7AFEDA55DAF702EFF06CC722D147DAA2C8B78F0707F51D2B326BEF8972F5A289829E998B94D98E0ED663143797B569F3A6B56897B5726A38B042806FDFDAA367A4F63C4BA31114300B6290828321C30B25DF97F273041E30A404836E84BB32E0620DC558047FC011A1205126F84D9F8EA5E607FC297E5C9FA00D803026D8126C08EF68B49F6A6C55DCB06EED0B666880CD49FCBFF598055D5E40303669CBC55D85F583DA5EF4F320D6E6A50ECBBFAF8C1F7209655EEAA58BFC18EB9FA20B29EC63FBC810C3A2EDCF8E27FD98975C87D59D9C909895AA10CEA5F7594ADD3ED1EBDFE01BE0559423475592A0E2936E4671504337221F897AE3016BC4670C6B765F5FF1185933B26B1183BCB1E5591970F40A1402EB19EF2644E941F67ABB31935259308B4A5271541F41653EB5E77CCA82214C9C6F4E42E8A3C46CC9BE15BC868BC45B28027E515A16554B9D4F6AB57CFFE42CFE0B42BF83E53F27B39AD95E000C329F716E51D15D6CD211E87AAA83A0F1175F5E1E8963A57DA656FBC19FB42661F14328B05CA7F1A83F49044A5086E6AF56225B8783450E43CB1B6F19061441AF58053BBFAACBC3A80FF5F19A8BD873F487A8FFE3DECD35E77EB2C26387EF66A3EED98C773211914115AFD0776FDAC90CB65479DFE59C0D199F195BBE9E4B2F70A9B1A41429002C2998FAB0F2D6956731819D9F5175B92FECE43178BC69ABEC6E2C18EA88289C5B14C58227640D02F614A9A881633816B9DCAC79E4721EF6E42691902AD1CF565600BAA8019310CAA0AC1087A86846C2E9B96B82C3F0CE52EE73760111061EF090DCBF47882710302A65FBDCF380F84703FE3D4FF7ADD0CB7ED65C889DD6EEC24D01F92771DF3F3D8DFB4BDE234D4A35AB20B22BF5D749398C9B6AE5C7B62DC11ACD887A49586238F5B6D37B47EA6953C3E339A9B40EF3EB01DD70F69253BA9A262777C75DF175195D172BD8233FC7B6F207154EF6E2F47533E359D24EB312A292C756C34A2D55A16452829DAD7A9731E2026E56486F6A3C07380DCA1AFFF270464DA8FF34621FBA715C5853EB1D4EA1C4E23B43CD1CDE1F252B728875F187626A813B4166CC34A62A5D6867E0B605641CEE8025F0AD73DBE4443286CA03CFF8483 | 342 | 20180929225234 2 6 100 7679 2 C988D06CCD826A9351D5CAE32A47B28ECC90FA4870D861CCC058CFA49419B0044A395E3F289A48C821B2EFE08D293B917B1DB2E2369564F5D066084F71A090706F84E101625CACAAECFFF3B2FE2A8C04FF9A14D43E9B316576F1571B0FDD51A119222601AE2BBFC3007FBC12D10A2D725AD9D8503A47B4B1977FAF4B0C8E244C372662A335C82380718ABAA9B522A03866EBFC6DD7DEE135A54FDCE58EAAF1996D2485E178888F361B01C2A5F5E21E65BAFFE3024C02210AF189975CADE7BFEAD4A90401D7E37D9B855FA8C8F0D2FBFF9357F8C05E3A2A14173E8F7555FD78B88ECEDC94E238639FA1F59C896F61501B2094199D7679805FB69026D4F13CDEB60CAA339BEB091D7D0C125C72028FDFEC35C5D6EE231B1A46C0619BF822F415121A975322001C4EDC29C5CAA430D1471D1013B67B90F5A7FAFB322B53A9C4D418763CB8A9DD068BF3B7702BA939B4FB0DA5253A999B5A8DFA664D2A9F94169F34E46D45D348E3A7E3424CF6019CFDFE1623940B3FC47A1064E601549C02020571FA10F63AEB0676213CD71D1A8A4140662D00471FE9BA88C269F8D217A978AE910A85CADCA772BD7023DC8D0C2ED524C7FEEFEDF408E4221F474A3783545E155118133FA9D65382F7261CF001701E46721021A1315780A53F4238C1AEEA41D38E1B3310D2EC9AE97C2677467157A0B74DA93A3CDF3E6CF898FA0F5CDF3F55CA572385698FD0F55E0E5C63B4BCB9F4A6EDB74C02C0150B057B1A903F7DD8EFC011EE822F2ECBB780914BCC43A11F7BF4A63BE31F06226881ADE9EA780A58C1A6D7183EE947611A03051A0EA817D6D26FC0C418607EEF57AE00494CDDA1CB518C3F910FD46C65F96E3553CEFFD72D13AC13904EFF4E66203B8D512BF7136251120F0BD28C1E781000BBF832A072DB3BBA7B2CFB5AB1F6DAA17FD6EA6C484BB764E5F01194A5445B1FD435977F916261FA1B5AAD6B7E83782C04EBF3CBD11DC7D929FFD8A16597E2D6A384F343D08E13CEA8232818D7F989BB4B0D7D7531AF0F4C6683356A109EAFD135D2E3319FFA6218053EC737FBD91D5886790D4FB1DB70F3D704148EFF2FAA0241F47F2902EA8286BD7647B615197B0E2A70F3638BDF46973518EA692DA5EE26E533F815FA5E5835C2080FAC1776A7CCFE2F49B1400A55F24C9FC465A766772EFB35756AABF0A42B58966E883AFE5E4000D863756225CDDA2F5AC06093173A1AFB5AD9A7B721A30820170A4AE35B3A2F09DE1B53B7D7A407E0F77F1CD4201337315E6677D30CA3E40F84A7AD707BE0FF99CE9334FAE40692F38135DBBC8CE8E7604C0F9C8AE1989C9FE2AC29C2800DC8876032B4171409B02B |
343 | 20180421033707 2 6 100 7679 5 ECCC9B93ED119552D36A774B288F541A81536A13B8D687B23174D680CE3F21B8FA088685F5B965215AFA69736E741A3AFC2AC82CE16162A1E4F0012F28998A638AA98D0789D6C58D92F207EAAA33E467C801891B8D37651B66E0942CF6AB7FD8E0D09A6D597D582BA48563F1450C3300218874730D26EE8B6505059C95C1C764D5FD736BF0A64FAD10F0C7D52A8A57C3FBD653887AAA890DA7AFEDA55DAF702EFF06CC722D147DAA2C8B78F0707F51D2B326BEF8972F5A289829E998B94D98E0ED663143797B569F3A6B56897B5726A38B042806FDFDAA367A4F63C4BA31114300B6290828321C30B25DF97F273041E30A404836E84BB32E0620DC558047FC011A1205126F84D9F8EA5E607FC297E5C9FA00D803026D8126C08EF68B49F6A6C55DCB06EED0B666880CD49FCBFF598055D5E40303669CBC55D85F583DA5EF4F320D6E6A50ECBBFAF8C1F7209655EEAA58BFC18EB9FA20B29EC63FBC810C3A2EDCF8E27FD98975C87D59D9C909895AA10CEA5F7594ADD3ED1EBDFE01BE0559423475592A0E2936E4671504337221F897AE3016BC4670C6B765F5FF1185933B26B1183BCB1E5591970F40A1402EB19EF2644E941F67ABB31935259308B4A5271541F41653EB5E77CCA82214C9C6F4E42E8A3C46CC9BE15BC868BC45B28027E515A16554B9D4F6AB57CFFE42CFE0B42BF83E53F27B39AD95E000C329F716E51D15D6CD211E87AAA83A0F1175F5E1E8963A57DA656FBC19FB42661F14328B05CA7F1A83F49044A5086E6AF56225B8783450E43CB1B6F19061441AF58053BBFAACBC3A80FF5F19A8BD873F487A8FFE3DECD35E77EB2C26387EF66A3EED98C773211914115AFD0776FDAC90CB65479DFE59C0D199F195BBE9E4B2F70A9B1A41429002C2998FAB0F2D6956731819D9F5175B92FECE43178BC69ABEC6E2C18EA88289C5B14C58227640D02F614A9A881633816B9DCAC79E4721EF6E42691902AD1CF565600BAA8019310CAA0AC1087A86846C2E9B96B82C3F0CE52EE73760111061EF090DCBF47882710302A65FBDCF380F84703FE3D4FF7ADD0CB7ED65C889DD6EEC24D01F92771DF3F3D8DFB4BDE234D4A35AB20B22BF5D749398C9B6AE5C7B62DC11ACD887A49586238F5B6D37B47EA6953C3E339A9B40EF3EB01DD70F69253BA9A262777C75DF175195D172BD8233FC7B6F207154EF6E2F47533E359D24EB312A292C756C34A2D55A16452829DAD7A9731E2026E56486F6A3C07380DCA1AFFF270464DA8FF34621FBA715C5853EB1D4EA1C4E23B43CD1CDE1F252B728875F187626A813B4166CC34A62A5D6867E0B605641CEE8025F0AD73DBE4443286CA03F5CEF07 | 343 | 20180930030835 2 6 100 7679 2 C988D06CCD826A9351D5CAE32A47B28ECC90FA4870D861CCC058CFA49419B0044A395E3F289A48C821B2EFE08D293B917B1DB2E2369564F5D066084F71A090706F84E101625CACAAECFFF3B2FE2A8C04FF9A14D43E9B316576F1571B0FDD51A119222601AE2BBFC3007FBC12D10A2D725AD9D8503A47B4B1977FAF4B0C8E244C372662A335C82380718ABAA9B522A03866EBFC6DD7DEE135A54FDCE58EAAF1996D2485E178888F361B01C2A5F5E21E65BAFFE3024C02210AF189975CADE7BFEAD4A90401D7E37D9B855FA8C8F0D2FBFF9357F8C05E3A2A14173E8F7555FD78B88ECEDC94E238639FA1F59C896F61501B2094199D7679805FB69026D4F13CDEB60CAA339BEB091D7D0C125C72028FDFEC35C5D6EE231B1A46C0619BF822F415121A975322001C4EDC29C5CAA430D1471D1013B67B90F5A7FAFB322B53A9C4D418763CB8A9DD068BF3B7702BA939B4FB0DA5253A999B5A8DFA664D2A9F94169F34E46D45D348E3A7E3424CF6019CFDFE1623940B3FC47A1064E601549C02020571FA10F63AEB0676213CD71D1A8A4140662D00471FE9BA88C269F8D217A978AE910A85CADCA772BD7023DC8D0C2ED524C7FEEFEDF408E4221F474A3783545E155118133FA9D65382F7261CF001701E46721021A1315780A53F4238C1AEEA41D38E1B3310D2EC9AE97C2677467157A0B74DA93A3CDF3E6CF898FA0F5CDF3F55CA572385698FD0F55E0E5C63B4BCB9F4A6EDB74C02C0150B057B1A903F7DD8EFC011EE822F2ECBB780914BCC43A11F7BF4A63BE31F06226881ADE9EA780A58C1A6D7183EE947611A03051A0EA817D6D26FC0C418607EEF57AE00494CDDA1CB518C3F910FD46C65F96E3553CEFFD72D13AC13904EFF4E66203B8D512BF7136251120F0BD28C1E781000BBF832A072DB3BBA7B2CFB5AB1F6DAA17FD6EA6C484BB764E5F01194A5445B1FD435977F916261FA1B5AAD6B7E83782C04EBF3CBD11DC7D929FFD8A16597E2D6A384F343D08E13CEA8232818D7F989BB4B0D7D7531AF0F4C6683356A109EAFD135D2E3319FFA6218053EC737FBD91D5886790D4FB1DB70F3D704148EFF2FAA0241F47F2902EA8286BD7647B615197B0E2A70F3638BDF46973518EA692DA5EE26E533F815FA5E5835C2080FAC1776A7CCFE2F49B1400A55F24C9FC465A766772EFB35756AABF0A42B58966E883AFE5E4000D863756225CDDA2F5AC06093173A1AFB5AD9A7B721A30820170A4AE35B3A2F09DE1B53B7D7A407E0F77F1CD4201337315E6677D30CA3E40F84A7AD707BE0FF99CE9334FAE40692F38135DBBC8CE8E7604C0F9C8AE1989C9FE2AC29C2800DC8876032B417172F0403 |
344 | 20180421044121 2 6 100 7679 2 ECCC9B93ED119552D36A774B288F541A81536A13B8D687B23174D680CE3F21B8FA088685F5B965215AFA69736E741A3AFC2AC82CE16162A1E4F0012F28998A638AA98D0789D6C58D92F207EAAA33E467C801891B8D37651B66E0942CF6AB7FD8E0D09A6D597D582BA48563F1450C3300218874730D26EE8B6505059C95C1C764D5FD736BF0A64FAD10F0C7D52A8A57C3FBD653887AAA890DA7AFEDA55DAF702EFF06CC722D147DAA2C8B78F0707F51D2B326BEF8972F5A289829E998B94D98E0ED663143797B569F3A6B56897B5726A38B042806FDFDAA367A4F63C4BA31114300B6290828321C30B25DF97F273041E30A404836E84BB32E0620DC558047FC011A1205126F84D9F8EA5E607FC297E5C9FA00D803026D8126C08EF68B49F6A6C55DCB06EED0B666880CD49FCBFF598055D5E40303669CBC55D85F583DA5EF4F320D6E6A50ECBBFAF8C1F7209655EEAA58BFC18EB9FA20B29EC63FBC810C3A2EDCF8E27FD98975C87D59D9C909895AA10CEA5F7594ADD3ED1EBDFE01BE0559423475592A0E2936E4671504337221F897AE3016BC4670C6B765F5FF1185933B26B1183BCB1E5591970F40A1402EB19EF2644E941F67ABB31935259308B4A5271541F41653EB5E77CCA82214C9C6F4E42E8A3C46CC9BE15BC868BC45B28027E515A16554B9D4F6AB57CFFE42CFE0B42BF83E53F27B39AD95E000C329F716E51D15D6CD211E87AAA83A0F1175F5E1E8963A57DA656FBC19FB42661F14328B05CA7F1A83F49044A5086E6AF56225B8783450E43CB1B6F19061441AF58053BBFAACBC3A80FF5F19A8BD873F487A8FFE3DECD35E77EB2C26387EF66A3EED98C773211914115AFD0776FDAC90CB65479DFE59C0D199F195BBE9E4B2F70A9B1A41429002C2998FAB0F2D6956731819D9F5175B92FECE43178BC69ABEC6E2C18EA88289C5B14C58227640D02F614A9A881633816B9DCAC79E4721EF6E42691902AD1CF565600BAA8019310CAA0AC1087A86846C2E9B96B82C3F0CE52EE73760111061EF090DCBF47882710302A65FBDCF380F84703FE3D4FF7ADD0CB7ED65C889DD6EEC24D01F92771DF3F3D8DFB4BDE234D4A35AB20B22BF5D749398C9B6AE5C7B62DC11ACD887A49586238F5B6D37B47EA6953C3E339A9B40EF3EB01DD70F69253BA9A262777C75DF175195D172BD8233FC7B6F207154EF6E2F47533E359D24EB312A292C756C34A2D55A16452829DAD7A9731E2026E56486F6A3C07380DCA1AFFF270464DA8FF34621FBA715C5853EB1D4EA1C4E23B43CD1CDE1F252B728875F187626A813B4166CC34A62A5D6867E0B605641CEE8025F0AD73DBE4443286CA04029ED83 | 344 | 20180930110353 2 6 100 7679 5 C988D06CCD826A9351D5CAE32A47B28ECC90FA4870D861CCC058CFA49419B0044A395E3F289A48C821B2EFE08D293B917B1DB2E2369564F5D066084F71A090706F84E101625CACAAECFFF3B2FE2A8C04FF9A14D43E9B316576F1571B0FDD51A119222601AE2BBFC3007FBC12D10A2D725AD9D8503A47B4B1977FAF4B0C8E244C372662A335C82380718ABAA9B522A03866EBFC6DD7DEE135A54FDCE58EAAF1996D2485E178888F361B01C2A5F5E21E65BAFFE3024C02210AF189975CADE7BFEAD4A90401D7E37D9B855FA8C8F0D2FBFF9357F8C05E3A2A14173E8F7555FD78B88ECEDC94E238639FA1F59C896F61501B2094199D7679805FB69026D4F13CDEB60CAA339BEB091D7D0C125C72028FDFEC35C5D6EE231B1A46C0619BF822F415121A975322001C4EDC29C5CAA430D1471D1013B67B90F5A7FAFB322B53A9C4D418763CB8A9DD068BF3B7702BA939B4FB0DA5253A999B5A8DFA664D2A9F94169F34E46D45D348E3A7E3424CF6019CFDFE1623940B3FC47A1064E601549C02020571FA10F63AEB0676213CD71D1A8A4140662D00471FE9BA88C269F8D217A978AE910A85CADCA772BD7023DC8D0C2ED524C7FEEFEDF408E4221F474A3783545E155118133FA9D65382F7261CF001701E46721021A1315780A53F4238C1AEEA41D38E1B3310D2EC9AE97C2677467157A0B74DA93A3CDF3E6CF898FA0F5CDF3F55CA572385698FD0F55E0E5C63B4BCB9F4A6EDB74C02C0150B057B1A903F7DD8EFC011EE822F2ECBB780914BCC43A11F7BF4A63BE31F06226881ADE9EA780A58C1A6D7183EE947611A03051A0EA817D6D26FC0C418607EEF57AE00494CDDA1CB518C3F910FD46C65F96E3553CEFFD72D13AC13904EFF4E66203B8D512BF7136251120F0BD28C1E781000BBF832A072DB3BBA7B2CFB5AB1F6DAA17FD6EA6C484BB764E5F01194A5445B1FD435977F916261FA1B5AAD6B7E83782C04EBF3CBD11DC7D929FFD8A16597E2D6A384F343D08E13CEA8232818D7F989BB4B0D7D7531AF0F4C6683356A109EAFD135D2E3319FFA6218053EC737FBD91D5886790D4FB1DB70F3D704148EFF2FAA0241F47F2902EA8286BD7647B615197B0E2A70F3638BDF46973518EA692DA5EE26E533F815FA5E5835C2080FAC1776A7CCFE2F49B1400A55F24C9FC465A766772EFB35756AABF0A42B58966E883AFE5E4000D863756225CDDA2F5AC06093173A1AFB5AD9A7B721A30820170A4AE35B3A2F09DE1B53B7D7A407E0F77F1CD4201337315E6677D30CA3E40F84A7AD707BE0FF99CE9334FAE40692F38135DBBC8CE8E7604C0F9C8AE1989C9FE2AC29C2800DC8876032B4171D11BFBF |
345 | 20180421054539 2 6 100 7679 2 ECCC9B93ED119552D36A774B288F541A81536A13B8D687B23174D680CE3F21B8FA088685F5B965215AFA69736E741A3AFC2AC82CE16162A1E4F0012F28998A638AA98D0789D6C58D92F207EAAA33E467C801891B8D37651B66E0942CF6AB7FD8E0D09A6D597D582BA48563F1450C3300218874730D26EE8B6505059C95C1C764D5FD736BF0A64FAD10F0C7D52A8A57C3FBD653887AAA890DA7AFEDA55DAF702EFF06CC722D147DAA2C8B78F0707F51D2B326BEF8972F5A289829E998B94D98E0ED663143797B569F3A6B56897B5726A38B042806FDFDAA367A4F63C4BA31114300B6290828321C30B25DF97F273041E30A404836E84BB32E0620DC558047FC011A1205126F84D9F8EA5E607FC297E5C9FA00D803026D8126C08EF68B49F6A6C55DCB06EED0B666880CD49FCBFF598055D5E40303669CBC55D85F583DA5EF4F320D6E6A50ECBBFAF8C1F7209655EEAA58BFC18EB9FA20B29EC63FBC810C3A2EDCF8E27FD98975C87D59D9C909895AA10CEA5F7594ADD3ED1EBDFE01BE0559423475592A0E2936E4671504337221F897AE3016BC4670C6B765F5FF1185933B26B1183BCB1E5591970F40A1402EB19EF2644E941F67ABB31935259308B4A5271541F41653EB5E77CCA82214C9C6F4E42E8A3C46CC9BE15BC868BC45B28027E515A16554B9D4F6AB57CFFE42CFE0B42BF83E53F27B39AD95E000C329F716E51D15D6CD211E87AAA83A0F1175F5E1E8963A57DA656FBC19FB42661F14328B05CA7F1A83F49044A5086E6AF56225B8783450E43CB1B6F19061441AF58053BBFAACBC3A80FF5F19A8BD873F487A8FFE3DECD35E77EB2C26387EF66A3EED98C773211914115AFD0776FDAC90CB65479DFE59C0D199F195BBE9E4B2F70A9B1A41429002C2998FAB0F2D6956731819D9F5175B92FECE43178BC69ABEC6E2C18EA88289C5B14C58227640D02F614A9A881633816B9DCAC79E4721EF6E42691902AD1CF565600BAA8019310CAA0AC1087A86846C2E9B96B82C3F0CE52EE73760111061EF090DCBF47882710302A65FBDCF380F84703FE3D4FF7ADD0CB7ED65C889DD6EEC24D01F92771DF3F3D8DFB4BDE234D4A35AB20B22BF5D749398C9B6AE5C7B62DC11ACD887A49586238F5B6D37B47EA6953C3E339A9B40EF3EB01DD70F69253BA9A262777C75DF175195D172BD8233FC7B6F207154EF6E2F47533E359D24EB312A292C756C34A2D55A16452829DAD7A9731E2026E56486F6A3C07380DCA1AFFF270464DA8FF34621FBA715C5853EB1D4EA1C4E23B43CD1CDE1F252B728875F187626A813B4166CC34A62A5D6867E0B605641CEE8025F0AD73DBE4443286CA040F07753 | 345 | 20180930124634 2 6 100 7679 2 C988D06CCD826A9351D5CAE32A47B28ECC90FA4870D861CCC058CFA49419B0044A395E3F289A48C821B2EFE08D293B917B1DB2E2369564F5D066084F71A090706F84E101625CACAAECFFF3B2FE2A8C04FF9A14D43E9B316576F1571B0FDD51A119222601AE2BBFC3007FBC12D10A2D725AD9D8503A47B4B1977FAF4B0C8E244C372662A335C82380718ABAA9B522A03866EBFC6DD7DEE135A54FDCE58EAAF1996D2485E178888F361B01C2A5F5E21E65BAFFE3024C02210AF189975CADE7BFEAD4A90401D7E37D9B855FA8C8F0D2FBFF9357F8C05E3A2A14173E8F7555FD78B88ECEDC94E238639FA1F59C896F61501B2094199D7679805FB69026D4F13CDEB60CAA339BEB091D7D0C125C72028FDFEC35C5D6EE231B1A46C0619BF822F415121A975322001C4EDC29C5CAA430D1471D1013B67B90F5A7FAFB322B53A9C4D418763CB8A9DD068BF3B7702BA939B4FB0DA5253A999B5A8DFA664D2A9F94169F34E46D45D348E3A7E3424CF6019CFDFE1623940B3FC47A1064E601549C02020571FA10F63AEB0676213CD71D1A8A4140662D00471FE9BA88C269F8D217A978AE910A85CADCA772BD7023DC8D0C2ED524C7FEEFEDF408E4221F474A3783545E155118133FA9D65382F7261CF001701E46721021A1315780A53F4238C1AEEA41D38E1B3310D2EC9AE97C2677467157A0B74DA93A3CDF3E6CF898FA0F5CDF3F55CA572385698FD0F55E0E5C63B4BCB9F4A6EDB74C02C0150B057B1A903F7DD8EFC011EE822F2ECBB780914BCC43A11F7BF4A63BE31F06226881ADE9EA780A58C1A6D7183EE947611A03051A0EA817D6D26FC0C418607EEF57AE00494CDDA1CB518C3F910FD46C65F96E3553CEFFD72D13AC13904EFF4E66203B8D512BF7136251120F0BD28C1E781000BBF832A072DB3BBA7B2CFB5AB1F6DAA17FD6EA6C484BB764E5F01194A5445B1FD435977F916261FA1B5AAD6B7E83782C04EBF3CBD11DC7D929FFD8A16597E2D6A384F343D08E13CEA8232818D7F989BB4B0D7D7531AF0F4C6683356A109EAFD135D2E3319FFA6218053EC737FBD91D5886790D4FB1DB70F3D704148EFF2FAA0241F47F2902EA8286BD7647B615197B0E2A70F3638BDF46973518EA692DA5EE26E533F815FA5E5835C2080FAC1776A7CCFE2F49B1400A55F24C9FC465A766772EFB35756AABF0A42B58966E883AFE5E4000D863756225CDDA2F5AC06093173A1AFB5AD9A7B721A30820170A4AE35B3A2F09DE1B53B7D7A407E0F77F1CD4201337315E6677D30CA3E40F84A7AD707BE0FF99CE9334FAE40692F38135DBBC8CE8E7604C0F9C8AE1989C9FE2AC29C2800DC8876032B4171E461903 |
346 | 20180421080206 2 6 100 7679 5 ECCC9B93ED119552D36A774B288F541A81536A13B8D687B23174D680CE3F21B8FA088685F5B965215AFA69736E741A3AFC2AC82CE16162A1E4F0012F28998A638AA98D0789D6C58D92F207EAAA33E467C801891B8D37651B66E0942CF6AB7FD8E0D09A6D597D582BA48563F1450C3300218874730D26EE8B6505059C95C1C764D5FD736BF0A64FAD10F0C7D52A8A57C3FBD653887AAA890DA7AFEDA55DAF702EFF06CC722D147DAA2C8B78F0707F51D2B326BEF8972F5A289829E998B94D98E0ED663143797B569F3A6B56897B5726A38B042806FDFDAA367A4F63C4BA31114300B6290828321C30B25DF97F273041E30A404836E84BB32E0620DC558047FC011A1205126F84D9F8EA5E607FC297E5C9FA00D803026D8126C08EF68B49F6A6C55DCB06EED0B666880CD49FCBFF598055D5E40303669CBC55D85F583DA5EF4F320D6E6A50ECBBFAF8C1F7209655EEAA58BFC18EB9FA20B29EC63FBC810C3A2EDCF8E27FD98975C87D59D9C909895AA10CEA5F7594ADD3ED1EBDFE01BE0559423475592A0E2936E4671504337221F897AE3016BC4670C6B765F5FF1185933B26B1183BCB1E5591970F40A1402EB19EF2644E941F67ABB31935259308B4A5271541F41653EB5E77CCA82214C9C6F4E42E8A3C46CC9BE15BC868BC45B28027E515A16554B9D4F6AB57CFFE42CFE0B42BF83E53F27B39AD95E000C329F716E51D15D6CD211E87AAA83A0F1175F5E1E8963A57DA656FBC19FB42661F14328B05CA7F1A83F49044A5086E6AF56225B8783450E43CB1B6F19061441AF58053BBFAACBC3A80FF5F19A8BD873F487A8FFE3DECD35E77EB2C26387EF66A3EED98C773211914115AFD0776FDAC90CB65479DFE59C0D199F195BBE9E4B2F70A9B1A41429002C2998FAB0F2D6956731819D9F5175B92FECE43178BC69ABEC6E2C18EA88289C5B14C58227640D02F614A9A881633816B9DCAC79E4721EF6E42691902AD1CF565600BAA8019310CAA0AC1087A86846C2E9B96B82C3F0CE52EE73760111061EF090DCBF47882710302A65FBDCF380F84703FE3D4FF7ADD0CB7ED65C889DD6EEC24D01F92771DF3F3D8DFB4BDE234D4A35AB20B22BF5D749398C9B6AE5C7B62DC11ACD887A49586238F5B6D37B47EA6953C3E339A9B40EF3EB01DD70F69253BA9A262777C75DF175195D172BD8233FC7B6F207154EF6E2F47533E359D24EB312A292C756C34A2D55A16452829DAD7A9731E2026E56486F6A3C07380DCA1AFFF270464DA8FF34621FBA715C5853EB1D4EA1C4E23B43CD1CDE1F252B728875F187626A813B4166CC34A62A5D6867E0B605641CEE8025F0AD73DBE4443286CA042A70927 | 346 | 20180930150219 2 6 100 7679 2 C988D06CCD826A9351D5CAE32A47B28ECC90FA4870D861CCC058CFA49419B0044A395E3F289A48C821B2EFE08D293B917B1DB2E2369564F5D066084F71A090706F84E101625CACAAECFFF3B2FE2A8C04FF9A14D43E9B316576F1571B0FDD51A119222601AE2BBFC3007FBC12D10A2D725AD9D8503A47B4B1977FAF4B0C8E244C372662A335C82380718ABAA9B522A03866EBFC6DD7DEE135A54FDCE58EAAF1996D2485E178888F361B01C2A5F5E21E65BAFFE3024C02210AF189975CADE7BFEAD4A90401D7E37D9B855FA8C8F0D2FBFF9357F8C05E3A2A14173E8F7555FD78B88ECEDC94E238639FA1F59C896F61501B2094199D7679805FB69026D4F13CDEB60CAA339BEB091D7D0C125C72028FDFEC35C5D6EE231B1A46C0619BF822F415121A975322001C4EDC29C5CAA430D1471D1013B67B90F5A7FAFB322B53A9C4D418763CB8A9DD068BF3B7702BA939B4FB0DA5253A999B5A8DFA664D2A9F94169F34E46D45D348E3A7E3424CF6019CFDFE1623940B3FC47A1064E601549C02020571FA10F63AEB0676213CD71D1A8A4140662D00471FE9BA88C269F8D217A978AE910A85CADCA772BD7023DC8D0C2ED524C7FEEFEDF408E4221F474A3783545E155118133FA9D65382F7261CF001701E46721021A1315780A53F4238C1AEEA41D38E1B3310D2EC9AE97C2677467157A0B74DA93A3CDF3E6CF898FA0F5CDF3F55CA572385698FD0F55E0E5C63B4BCB9F4A6EDB74C02C0150B057B1A903F7DD8EFC011EE822F2ECBB780914BCC43A11F7BF4A63BE31F06226881ADE9EA780A58C1A6D7183EE947611A03051A0EA817D6D26FC0C418607EEF57AE00494CDDA1CB518C3F910FD46C65F96E3553CEFFD72D13AC13904EFF4E66203B8D512BF7136251120F0BD28C1E781000BBF832A072DB3BBA7B2CFB5AB1F6DAA17FD6EA6C484BB764E5F01194A5445B1FD435977F916261FA1B5AAD6B7E83782C04EBF3CBD11DC7D929FFD8A16597E2D6A384F343D08E13CEA8232818D7F989BB4B0D7D7531AF0F4C6683356A109EAFD135D2E3319FFA6218053EC737FBD91D5886790D4FB1DB70F3D704148EFF2FAA0241F47F2902EA8286BD7647B615197B0E2A70F3638BDF46973518EA692DA5EE26E533F815FA5E5835C2080FAC1776A7CCFE2F49B1400A55F24C9FC465A766772EFB35756AABF0A42B58966E883AFE5E4000D863756225CDDA2F5AC06093173A1AFB5AD9A7B721A30820170A4AE35B3A2F09DE1B53B7D7A407E0F77F1CD4201337315E6677D30CA3E40F84A7AD707BE0FF99CE9334FAE40692F38135DBBC8CE8E7604C0F9C8AE1989C9FE2AC29C2800DC8876032B4171FE2013B |
347 | 20180421084346 2 6 100 7679 2 ECCC9B93ED119552D36A774B288F541A81536A13B8D687B23174D680CE3F21B8FA088685F5B965215AFA69736E741A3AFC2AC82CE16162A1E4F0012F28998A638AA98D0789D6C58D92F207EAAA33E467C801891B8D37651B66E0942CF6AB7FD8E0D09A6D597D582BA48563F1450C3300218874730D26EE8B6505059C95C1C764D5FD736BF0A64FAD10F0C7D52A8A57C3FBD653887AAA890DA7AFEDA55DAF702EFF06CC722D147DAA2C8B78F0707F51D2B326BEF8972F5A289829E998B94D98E0ED663143797B569F3A6B56897B5726A38B042806FDFDAA367A4F63C4BA31114300B6290828321C30B25DF97F273041E30A404836E84BB32E0620DC558047FC011A1205126F84D9F8EA5E607FC297E5C9FA00D803026D8126C08EF68B49F6A6C55DCB06EED0B666880CD49FCBFF598055D5E40303669CBC55D85F583DA5EF4F320D6E6A50ECBBFAF8C1F7209655EEAA58BFC18EB9FA20B29EC63FBC810C3A2EDCF8E27FD98975C87D59D9C909895AA10CEA5F7594ADD3ED1EBDFE01BE0559423475592A0E2936E4671504337221F897AE3016BC4670C6B765F5FF1185933B26B1183BCB1E5591970F40A1402EB19EF2644E941F67ABB31935259308B4A5271541F41653EB5E77CCA82214C9C6F4E42E8A3C46CC9BE15BC868BC45B28027E515A16554B9D4F6AB57CFFE42CFE0B42BF83E53F27B39AD95E000C329F716E51D15D6CD211E87AAA83A0F1175F5E1E8963A57DA656FBC19FB42661F14328B05CA7F1A83F49044A5086E6AF56225B8783450E43CB1B6F19061441AF58053BBFAACBC3A80FF5F19A8BD873F487A8FFE3DECD35E77EB2C26387EF66A3EED98C773211914115AFD0776FDAC90CB65479DFE59C0D199F195BBE9E4B2F70A9B1A41429002C2998FAB0F2D6956731819D9F5175B92FECE43178BC69ABEC6E2C18EA88289C5B14C58227640D02F614A9A881633816B9DCAC79E4721EF6E42691902AD1CF565600BAA8019310CAA0AC1087A86846C2E9B96B82C3F0CE52EE73760111061EF090DCBF47882710302A65FBDCF380F84703FE3D4FF7ADD0CB7ED65C889DD6EEC24D01F92771DF3F3D8DFB4BDE234D4A35AB20B22BF5D749398C9B6AE5C7B62DC11ACD887A49586238F5B6D37B47EA6953C3E339A9B40EF3EB01DD70F69253BA9A262777C75DF175195D172BD8233FC7B6F207154EF6E2F47533E359D24EB312A292C756C34A2D55A16452829DAD7A9731E2026E56486F6A3C07380DCA1AFFF270464DA8FF34621FBA715C5853EB1D4EA1C4E23B43CD1CDE1F252B728875F187626A813B4166CC34A62A5D6867E0B605641CEE8025F0AD73DBE4443286CA04323E033 | 347 | 20181001021616 2 6 100 7679 2 C988D06CCD826A9351D5CAE32A47B28ECC90FA4870D861CCC058CFA49419B0044A395E3F289A48C821B2EFE08D293B917B1DB2E2369564F5D066084F71A090706F84E101625CACAAECFFF3B2FE2A8C04FF9A14D43E9B316576F1571B0FDD51A119222601AE2BBFC3007FBC12D10A2D725AD9D8503A47B4B1977FAF4B0C8E244C372662A335C82380718ABAA9B522A03866EBFC6DD7DEE135A54FDCE58EAAF1996D2485E178888F361B01C2A5F5E21E65BAFFE3024C02210AF189975CADE7BFEAD4A90401D7E37D9B855FA8C8F0D2FBFF9357F8C05E3A2A14173E8F7555FD78B88ECEDC94E238639FA1F59C896F61501B2094199D7679805FB69026D4F13CDEB60CAA339BEB091D7D0C125C72028FDFEC35C5D6EE231B1A46C0619BF822F415121A975322001C4EDC29C5CAA430D1471D1013B67B90F5A7FAFB322B53A9C4D418763CB8A9DD068BF3B7702BA939B4FB0DA5253A999B5A8DFA664D2A9F94169F34E46D45D348E3A7E3424CF6019CFDFE1623940B3FC47A1064E601549C02020571FA10F63AEB0676213CD71D1A8A4140662D00471FE9BA88C269F8D217A978AE910A85CADCA772BD7023DC8D0C2ED524C7FEEFEDF408E4221F474A3783545E155118133FA9D65382F7261CF001701E46721021A1315780A53F4238C1AEEA41D38E1B3310D2EC9AE97C2677467157A0B74DA93A3CDF3E6CF898FA0F5CDF3F55CA572385698FD0F55E0E5C63B4BCB9F4A6EDB74C02C0150B057B1A903F7DD8EFC011EE822F2ECBB780914BCC43A11F7BF4A63BE31F06226881ADE9EA780A58C1A6D7183EE947611A03051A0EA817D6D26FC0C418607EEF57AE00494CDDA1CB518C3F910FD46C65F96E3553CEFFD72D13AC13904EFF4E66203B8D512BF7136251120F0BD28C1E781000BBF832A072DB3BBA7B2CFB5AB1F6DAA17FD6EA6C484BB764E5F01194A5445B1FD435977F916261FA1B5AAD6B7E83782C04EBF3CBD11DC7D929FFD8A16597E2D6A384F343D08E13CEA8232818D7F989BB4B0D7D7531AF0F4C6683356A109EAFD135D2E3319FFA6218053EC737FBD91D5886790D4FB1DB70F3D704148EFF2FAA0241F47F2902EA8286BD7647B615197B0E2A70F3638BDF46973518EA692DA5EE26E533F815FA5E5835C2080FAC1776A7CCFE2F49B1400A55F24C9FC465A766772EFB35756AABF0A42B58966E883AFE5E4000D863756225CDDA2F5AC06093173A1AFB5AD9A7B721A30820170A4AE35B3A2F09DE1B53B7D7A407E0F77F1CD4201337315E6677D30CA3E40F84A7AD707BE0FF99CE9334FAE40692F38135DBBC8CE8E7604C0F9C8AE1989C9FE2AC29C2800DC8876032B4172812EAEB |
348 | 20180421135101 2 6 100 7679 5 ECCC9B93ED119552D36A774B288F541A81536A13B8D687B23174D680CE3F21B8FA088685F5B965215AFA69736E741A3AFC2AC82CE16162A1E4F0012F28998A638AA98D0789D6C58D92F207EAAA33E467C801891B8D37651B66E0942CF6AB7FD8E0D09A6D597D582BA48563F1450C3300218874730D26EE8B6505059C95C1C764D5FD736BF0A64FAD10F0C7D52A8A57C3FBD653887AAA890DA7AFEDA55DAF702EFF06CC722D147DAA2C8B78F0707F51D2B326BEF8972F5A289829E998B94D98E0ED663143797B569F3A6B56897B5726A38B042806FDFDAA367A4F63C4BA31114300B6290828321C30B25DF97F273041E30A404836E84BB32E0620DC558047FC011A1205126F84D9F8EA5E607FC297E5C9FA00D803026D8126C08EF68B49F6A6C55DCB06EED0B666880CD49FCBFF598055D5E40303669CBC55D85F583DA5EF4F320D6E6A50ECBBFAF8C1F7209655EEAA58BFC18EB9FA20B29EC63FBC810C3A2EDCF8E27FD98975C87D59D9C909895AA10CEA5F7594ADD3ED1EBDFE01BE0559423475592A0E2936E4671504337221F897AE3016BC4670C6B765F5FF1185933B26B1183BCB1E5591970F40A1402EB19EF2644E941F67ABB31935259308B4A5271541F41653EB5E77CCA82214C9C6F4E42E8A3C46CC9BE15BC868BC45B28027E515A16554B9D4F6AB57CFFE42CFE0B42BF83E53F27B39AD95E000C329F716E51D15D6CD211E87AAA83A0F1175F5E1E8963A57DA656FBC19FB42661F14328B05CA7F1A83F49044A5086E6AF56225B8783450E43CB1B6F19061441AF58053BBFAACBC3A80FF5F19A8BD873F487A8FFE3DECD35E77EB2C26387EF66A3EED98C773211914115AFD0776FDAC90CB65479DFE59C0D199F195BBE9E4B2F70A9B1A41429002C2998FAB0F2D6956731819D9F5175B92FECE43178BC69ABEC6E2C18EA88289C5B14C58227640D02F614A9A881633816B9DCAC79E4721EF6E42691902AD1CF565600BAA8019310CAA0AC1087A86846C2E9B96B82C3F0CE52EE73760111061EF090DCBF47882710302A65FBDCF380F84703FE3D4FF7ADD0CB7ED65C889DD6EEC24D01F92771DF3F3D8DFB4BDE234D4A35AB20B22BF5D749398C9B6AE5C7B62DC11ACD887A49586238F5B6D37B47EA6953C3E339A9B40EF3EB01DD70F69253BA9A262777C75DF175195D172BD8233FC7B6F207154EF6E2F47533E359D24EB312A292C756C34A2D55A16452829DAD7A9731E2026E56486F6A3C07380DCA1AFFF270464DA8FF34621FBA715C5853EB1D4EA1C4E23B43CD1CDE1F252B728875F187626A813B4166CC34A62A5D6867E0B605641CEE8025F0AD73DBE4443286CA04708373F | 348 | 20181001072125 2 6 100 7679 5 C988D06CCD826A9351D5CAE32A47B28ECC90FA4870D861CCC058CFA49419B0044A395E3F289A48C821B2EFE08D293B917B1DB2E2369564F5D066084F71A090706F84E101625CACAAECFFF3B2FE2A8C04FF9A14D43E9B316576F1571B0FDD51A119222601AE2BBFC3007FBC12D10A2D725AD9D8503A47B4B1977FAF4B0C8E244C372662A335C82380718ABAA9B522A03866EBFC6DD7DEE135A54FDCE58EAAF1996D2485E178888F361B01C2A5F5E21E65BAFFE3024C02210AF189975CADE7BFEAD4A90401D7E37D9B855FA8C8F0D2FBFF9357F8C05E3A2A14173E8F7555FD78B88ECEDC94E238639FA1F59C896F61501B2094199D7679805FB69026D4F13CDEB60CAA339BEB091D7D0C125C72028FDFEC35C5D6EE231B1A46C0619BF822F415121A975322001C4EDC29C5CAA430D1471D1013B67B90F5A7FAFB322B53A9C4D418763CB8A9DD068BF3B7702BA939B4FB0DA5253A999B5A8DFA664D2A9F94169F34E46D45D348E3A7E3424CF6019CFDFE1623940B3FC47A1064E601549C02020571FA10F63AEB0676213CD71D1A8A4140662D00471FE9BA88C269F8D217A978AE910A85CADCA772BD7023DC8D0C2ED524C7FEEFEDF408E4221F474A3783545E155118133FA9D65382F7261CF001701E46721021A1315780A53F4238C1AEEA41D38E1B3310D2EC9AE97C2677467157A0B74DA93A3CDF3E6CF898FA0F5CDF3F55CA572385698FD0F55E0E5C63B4BCB9F4A6EDB74C02C0150B057B1A903F7DD8EFC011EE822F2ECBB780914BCC43A11F7BF4A63BE31F06226881ADE9EA780A58C1A6D7183EE947611A03051A0EA817D6D26FC0C418607EEF57AE00494CDDA1CB518C3F910FD46C65F96E3553CEFFD72D13AC13904EFF4E66203B8D512BF7136251120F0BD28C1E781000BBF832A072DB3BBA7B2CFB5AB1F6DAA17FD6EA6C484BB764E5F01194A5445B1FD435977F916261FA1B5AAD6B7E83782C04EBF3CBD11DC7D929FFD8A16597E2D6A384F343D08E13CEA8232818D7F989BB4B0D7D7531AF0F4C6683356A109EAFD135D2E3319FFA6218053EC737FBD91D5886790D4FB1DB70F3D704148EFF2FAA0241F47F2902EA8286BD7647B615197B0E2A70F3638BDF46973518EA692DA5EE26E533F815FA5E5835C2080FAC1776A7CCFE2F49B1400A55F24C9FC465A766772EFB35756AABF0A42B58966E883AFE5E4000D863756225CDDA2F5AC06093173A1AFB5AD9A7B721A30820170A4AE35B3A2F09DE1B53B7D7A407E0F77F1CD4201337315E6677D30CA3E40F84A7AD707BE0FF99CE9334FAE40692F38135DBBC8CE8E7604C0F9C8AE1989C9FE2AC29C2800DC8876032B4172BC07FE7 |
349 | 20180421220150 2 6 100 7679 2 ECCC9B93ED119552D36A774B288F541A81536A13B8D687B23174D680CE3F21B8FA088685F5B965215AFA69736E741A3AFC2AC82CE16162A1E4F0012F28998A638AA98D0789D6C58D92F207EAAA33E467C801891B8D37651B66E0942CF6AB7FD8E0D09A6D597D582BA48563F1450C3300218874730D26EE8B6505059C95C1C764D5FD736BF0A64FAD10F0C7D52A8A57C3FBD653887AAA890DA7AFEDA55DAF702EFF06CC722D147DAA2C8B78F0707F51D2B326BEF8972F5A289829E998B94D98E0ED663143797B569F3A6B56897B5726A38B042806FDFDAA367A4F63C4BA31114300B6290828321C30B25DF97F273041E30A404836E84BB32E0620DC558047FC011A1205126F84D9F8EA5E607FC297E5C9FA00D803026D8126C08EF68B49F6A6C55DCB06EED0B666880CD49FCBFF598055D5E40303669CBC55D85F583DA5EF4F320D6E6A50ECBBFAF8C1F7209655EEAA58BFC18EB9FA20B29EC63FBC810C3A2EDCF8E27FD98975C87D59D9C909895AA10CEA5F7594ADD3ED1EBDFE01BE0559423475592A0E2936E4671504337221F897AE3016BC4670C6B765F5FF1185933B26B1183BCB1E5591970F40A1402EB19EF2644E941F67ABB31935259308B4A5271541F41653EB5E77CCA82214C9C6F4E42E8A3C46CC9BE15BC868BC45B28027E515A16554B9D4F6AB57CFFE42CFE0B42BF83E53F27B39AD95E000C329F716E51D15D6CD211E87AAA83A0F1175F5E1E8963A57DA656FBC19FB42661F14328B05CA7F1A83F49044A5086E6AF56225B8783450E43CB1B6F19061441AF58053BBFAACBC3A80FF5F19A8BD873F487A8FFE3DECD35E77EB2C26387EF66A3EED98C773211914115AFD0776FDAC90CB65479DFE59C0D199F195BBE9E4B2F70A9B1A41429002C2998FAB0F2D6956731819D9F5175B92FECE43178BC69ABEC6E2C18EA88289C5B14C58227640D02F614A9A881633816B9DCAC79E4721EF6E42691902AD1CF565600BAA8019310CAA0AC1087A86846C2E9B96B82C3F0CE52EE73760111061EF090DCBF47882710302A65FBDCF380F84703FE3D4FF7ADD0CB7ED65C889DD6EEC24D01F92771DF3F3D8DFB4BDE234D4A35AB20B22BF5D749398C9B6AE5C7B62DC11ACD887A49586238F5B6D37B47EA6953C3E339A9B40EF3EB01DD70F69253BA9A262777C75DF175195D172BD8233FC7B6F207154EF6E2F47533E359D24EB312A292C756C34A2D55A16452829DAD7A9731E2026E56486F6A3C07380DCA1AFFF270464DA8FF34621FBA715C5853EB1D4EA1C4E23B43CD1CDE1F252B728875F187626A813B4166CC34A62A5D6867E0B605641CEE8025F0AD73DBE4443286CA04D33A023 | 349 | 20181001133408 2 6 100 7679 5 C988D06CCD826A9351D5CAE32A47B28ECC90FA4870D861CCC058CFA49419B0044A395E3F289A48C821B2EFE08D293B917B1DB2E2369564F5D066084F71A090706F84E101625CACAAECFFF3B2FE2A8C04FF9A14D43E9B316576F1571B0FDD51A119222601AE2BBFC3007FBC12D10A2D725AD9D8503A47B4B1977FAF4B0C8E244C372662A335C82380718ABAA9B522A03866EBFC6DD7DEE135A54FDCE58EAAF1996D2485E178888F361B01C2A5F5E21E65BAFFE3024C02210AF189975CADE7BFEAD4A90401D7E37D9B855FA8C8F0D2FBFF9357F8C05E3A2A14173E8F7555FD78B88ECEDC94E238639FA1F59C896F61501B2094199D7679805FB69026D4F13CDEB60CAA339BEB091D7D0C125C72028FDFEC35C5D6EE231B1A46C0619BF822F415121A975322001C4EDC29C5CAA430D1471D1013B67B90F5A7FAFB322B53A9C4D418763CB8A9DD068BF3B7702BA939B4FB0DA5253A999B5A8DFA664D2A9F94169F34E46D45D348E3A7E3424CF6019CFDFE1623940B3FC47A1064E601549C02020571FA10F63AEB0676213CD71D1A8A4140662D00471FE9BA88C269F8D217A978AE910A85CADCA772BD7023DC8D0C2ED524C7FEEFEDF408E4221F474A3783545E155118133FA9D65382F7261CF001701E46721021A1315780A53F4238C1AEEA41D38E1B3310D2EC9AE97C2677467157A0B74DA93A3CDF3E6CF898FA0F5CDF3F55CA572385698FD0F55E0E5C63B4BCB9F4A6EDB74C02C0150B057B1A903F7DD8EFC011EE822F2ECBB780914BCC43A11F7BF4A63BE31F06226881ADE9EA780A58C1A6D7183EE947611A03051A0EA817D6D26FC0C418607EEF57AE00494CDDA1CB518C3F910FD46C65F96E3553CEFFD72D13AC13904EFF4E66203B8D512BF7136251120F0BD28C1E781000BBF832A072DB3BBA7B2CFB5AB1F6DAA17FD6EA6C484BB764E5F01194A5445B1FD435977F916261FA1B5AAD6B7E83782C04EBF3CBD11DC7D929FFD8A16597E2D6A384F343D08E13CEA8232818D7F989BB4B0D7D7531AF0F4C6683356A109EAFD135D2E3319FFA6218053EC737FBD91D5886790D4FB1DB70F3D704148EFF2FAA0241F47F2902EA8286BD7647B615197B0E2A70F3638BDF46973518EA692DA5EE26E533F815FA5E5835C2080FAC1776A7CCFE2F49B1400A55F24C9FC465A766772EFB35756AABF0A42B58966E883AFE5E4000D863756225CDDA2F5AC06093173A1AFB5AD9A7B721A30820170A4AE35B3A2F09DE1B53B7D7A407E0F77F1CD4201337315E6677D30CA3E40F84A7AD707BE0FF99CE9334FAE40692F38135DBBC8CE8E7604C0F9C8AE1989C9FE2AC29C2800DC8876032B41730368927 |
350 | 20180421233337 2 6 100 7679 5 ECCC9B93ED119552D36A774B288F541A81536A13B8D687B23174D680CE3F21B8FA088685F5B965215AFA69736E741A3AFC2AC82CE16162A1E4F0012F28998A638AA98D0789D6C58D92F207EAAA33E467C801891B8D37651B66E0942CF6AB7FD8E0D09A6D597D582BA48563F1450C3300218874730D26EE8B6505059C95C1C764D5FD736BF0A64FAD10F0C7D52A8A57C3FBD653887AAA890DA7AFEDA55DAF702EFF06CC722D147DAA2C8B78F0707F51D2B326BEF8972F5A289829E998B94D98E0ED663143797B569F3A6B56897B5726A38B042806FDFDAA367A4F63C4BA31114300B6290828321C30B25DF97F273041E30A404836E84BB32E0620DC558047FC011A1205126F84D9F8EA5E607FC297E5C9FA00D803026D8126C08EF68B49F6A6C55DCB06EED0B666880CD49FCBFF598055D5E40303669CBC55D85F583DA5EF4F320D6E6A50ECBBFAF8C1F7209655EEAA58BFC18EB9FA20B29EC63FBC810C3A2EDCF8E27FD98975C87D59D9C909895AA10CEA5F7594ADD3ED1EBDFE01BE0559423475592A0E2936E4671504337221F897AE3016BC4670C6B765F5FF1185933B26B1183BCB1E5591970F40A1402EB19EF2644E941F67ABB31935259308B4A5271541F41653EB5E77CCA82214C9C6F4E42E8A3C46CC9BE15BC868BC45B28027E515A16554B9D4F6AB57CFFE42CFE0B42BF83E53F27B39AD95E000C329F716E51D15D6CD211E87AAA83A0F1175F5E1E8963A57DA656FBC19FB42661F14328B05CA7F1A83F49044A5086E6AF56225B8783450E43CB1B6F19061441AF58053BBFAACBC3A80FF5F19A8BD873F487A8FFE3DECD35E77EB2C26387EF66A3EED98C773211914115AFD0776FDAC90CB65479DFE59C0D199F195BBE9E4B2F70A9B1A41429002C2998FAB0F2D6956731819D9F5175B92FECE43178BC69ABEC6E2C18EA88289C5B14C58227640D02F614A9A881633816B9DCAC79E4721EF6E42691902AD1CF565600BAA8019310CAA0AC1087A86846C2E9B96B82C3F0CE52EE73760111061EF090DCBF47882710302A65FBDCF380F84703FE3D4FF7ADD0CB7ED65C889DD6EEC24D01F92771DF3F3D8DFB4BDE234D4A35AB20B22BF5D749398C9B6AE5C7B62DC11ACD887A49586238F5B6D37B47EA6953C3E339A9B40EF3EB01DD70F69253BA9A262777C75DF175195D172BD8233FC7B6F207154EF6E2F47533E359D24EB312A292C756C34A2D55A16452829DAD7A9731E2026E56486F6A3C07380DCA1AFFF270464DA8FF34621FBA715C5853EB1D4EA1C4E23B43CD1CDE1F252B728875F187626A813B4166CC34A62A5D6867E0B605641CEE8025F0AD73DBE4443286CA04E52D9FF | 350 | 20181002022928 2 6 100 7679 5 FB0D9422C2C18ABC70FF186A01FA8ED40D4950F804266E0B9661F1E2A6EC548235ADF6A86C277AC391995CF5C43940D264D81121AE69F224E949221EDC039AFE2DA6752F6C04E10159FE65D54CBE5EF34174D36E069C4FB18C8E6DBB80B2C6E0F0AD82E0B7281B9D675AE9E85F509B12746130BF725235E2AC495D268C383378FA130AFF2584962A8A3EDEC0B02504DF264F77980B8342713A28BD3219D83F6D70CC1393E10D5A4734BC029FECD3383FF41CB73AC61C29B54B50E439807BFA5663814B6DA5E81B9491217BE616F6B5F93728669FEF51C06D049586FA6584DFBECD526C5CAE6BBD17F104FA69D353A01CD7E39D5BEA60EB0491DCAE78F3A42BFBCC1F366C55FB23B649197B2D2493180963388FBC4A2AC804ECD042A97A07943D46F18EB6D6C24FC050E3DBD8EE2C84FA03E34814EA53197F1121232E239AA0DA133BD81D439AB595FC6F895AB27D0C6C8A5C3F468C9EF81A42BCB7676C2FF4D381063700AEE81FB7369463187413077048310A98D2DC034CCAB7001A28E288B4E6A8DB609974EC9FFC75F6DA91203429ACCEBA35B4CC03006BB069BD2A062A8CAF59E200A8E27B0CD48F896AE6236F0208AE3924EDF58F87557D05413C00CCAD3B95E6F659EC73FDC6933D6D1E21BE753670F6725F21721FDDC304E6178A3164A85F6757A508AFBD9AA4F1C7B181866F5AA306A25032E59C042ACA8EAEDE17B5136ACEC3B56D2E73284922162E614BE0B87654B7B12132D15E6F11F23B0FF2D0A898680B9A66BB908106A60FFC9A0FB43FF3ADCECDB128764764E1D429A0A194ABCD5AB41CE6B75CD025AC8A5FF2153A20E937354A27E361FB396D87924DCF91FE72203BCEA88303DF0A848EA5ADA9282C2C3C2B92542F721C58809178F36E2DA00D17C613FA5173BFC0F27F9502A1AE535BA9D373ABF83413A8F086FE904B0B45F449CCA9F0615028E1A4878463EA8EB424CA76949EA34A6A36C8DDE6EC4A4AE653A2F1F1009773BB92B8D20530A3313F388FA1AD70C3ECB716E5CA80A06C35CBA247D15D41795F8E083B27B4E227B616408863AFAE48F4C4AE68F1DA9A4B427F666DAD85035D1A499B25A09CC19548A5B9276FB082AA8B00879CCE17105CE7368033F4A18D68826780EB79162AD1B7C70879041BA08FB4A45B3071951DD05EFC9FD04AFCB99D57AEFD4EC51549EF9A166312E744CC7EEAEE9543C02D1B2D233A4B59B187D6E1DB64C843358E8B3C73765DDDC9D79D2D270FF493F56BB4F2F0DC4002605999644FF2A573CBA98492AC8577F5C1A822FD0FB709EAD85C786292DCB4FC8FAD924EEE898502BCD84ED4023C7D74A691A7A3A812685C4608E66C77 |
351 | 20180422094542 2 6 100 7679 2 ECCC9B93ED119552D36A774B288F541A81536A13B8D687B23174D680CE3F21B8FA088685F5B965215AFA69736E741A3AFC2AC82CE16162A1E4F0012F28998A638AA98D0789D6C58D92F207EAAA33E467C801891B8D37651B66E0942CF6AB7FD8E0D09A6D597D582BA48563F1450C3300218874730D26EE8B6505059C95C1C764D5FD736BF0A64FAD10F0C7D52A8A57C3FBD653887AAA890DA7AFEDA55DAF702EFF06CC722D147DAA2C8B78F0707F51D2B326BEF8972F5A289829E998B94D98E0ED663143797B569F3A6B56897B5726A38B042806FDFDAA367A4F63C4BA31114300B6290828321C30B25DF97F273041E30A404836E84BB32E0620DC558047FC011A1205126F84D9F8EA5E607FC297E5C9FA00D803026D8126C08EF68B49F6A6C55DCB06EED0B666880CD49FCBFF598055D5E40303669CBC55D85F583DA5EF4F320D6E6A50ECBBFAF8C1F7209655EEAA58BFC18EB9FA20B29EC63FBC810C3A2EDCF8E27FD98975C87D59D9C909895AA10CEA5F7594ADD3ED1EBDFE01BE0559423475592A0E2936E4671504337221F897AE3016BC4670C6B765F5FF1185933B26B1183BCB1E5591970F40A1402EB19EF2644E941F67ABB31935259308B4A5271541F41653EB5E77CCA82214C9C6F4E42E8A3C46CC9BE15BC868BC45B28027E515A16554B9D4F6AB57CFFE42CFE0B42BF83E53F27B39AD95E000C329F716E51D15D6CD211E87AAA83A0F1175F5E1E8963A57DA656FBC19FB42661F14328B05CA7F1A83F49044A5086E6AF56225B8783450E43CB1B6F19061441AF58053BBFAACBC3A80FF5F19A8BD873F487A8FFE3DECD35E77EB2C26387EF66A3EED98C773211914115AFD0776FDAC90CB65479DFE59C0D199F195BBE9E4B2F70A9B1A41429002C2998FAB0F2D6956731819D9F5175B92FECE43178BC69ABEC6E2C18EA88289C5B14C58227640D02F614A9A881633816B9DCAC79E4721EF6E42691902AD1CF565600BAA8019310CAA0AC1087A86846C2E9B96B82C3F0CE52EE73760111061EF090DCBF47882710302A65FBDCF380F84703FE3D4FF7ADD0CB7ED65C889DD6EEC24D01F92771DF3F3D8DFB4BDE234D4A35AB20B22BF5D749398C9B6AE5C7B62DC11ACD887A49586238F5B6D37B47EA6953C3E339A9B40EF3EB01DD70F69253BA9A262777C75DF175195D172BD8233FC7B6F207154EF6E2F47533E359D24EB312A292C756C34A2D55A16452829DAD7A9731E2026E56486F6A3C07380DCA1AFFF270464DA8FF34621FBA715C5853EB1D4EA1C4E23B43CD1CDE1F252B728875F187626A813B4166CC34A62A5D6867E0B605641CEE8025F0AD73DBE4443286CA055FBBC03 | 351 | 20181002041648 2 6 100 7679 5 FB0D9422C2C18ABC70FF186A01FA8ED40D4950F804266E0B9661F1E2A6EC548235ADF6A86C277AC391995CF5C43940D264D81121AE69F224E949221EDC039AFE2DA6752F6C04E10159FE65D54CBE5EF34174D36E069C4FB18C8E6DBB80B2C6E0F0AD82E0B7281B9D675AE9E85F509B12746130BF725235E2AC495D268C383378FA130AFF2584962A8A3EDEC0B02504DF264F77980B8342713A28BD3219D83F6D70CC1393E10D5A4734BC029FECD3383FF41CB73AC61C29B54B50E439807BFA5663814B6DA5E81B9491217BE616F6B5F93728669FEF51C06D049586FA6584DFBECD526C5CAE6BBD17F104FA69D353A01CD7E39D5BEA60EB0491DCAE78F3A42BFBCC1F366C55FB23B649197B2D2493180963388FBC4A2AC804ECD042A97A07943D46F18EB6D6C24FC050E3DBD8EE2C84FA03E34814EA53197F1121232E239AA0DA133BD81D439AB595FC6F895AB27D0C6C8A5C3F468C9EF81A42BCB7676C2FF4D381063700AEE81FB7369463187413077048310A98D2DC034CCAB7001A28E288B4E6A8DB609974EC9FFC75F6DA91203429ACCEBA35B4CC03006BB069BD2A062A8CAF59E200A8E27B0CD48F896AE6236F0208AE3924EDF58F87557D05413C00CCAD3B95E6F659EC73FDC6933D6D1E21BE753670F6725F21721FDDC304E6178A3164A85F6757A508AFBD9AA4F1C7B181866F5AA306A25032E59C042ACA8EAEDE17B5136ACEC3B56D2E73284922162E614BE0B87654B7B12132D15E6F11F23B0FF2D0A898680B9A66BB908106A60FFC9A0FB43FF3ADCECDB128764764E1D429A0A194ABCD5AB41CE6B75CD025AC8A5FF2153A20E937354A27E361FB396D87924DCF91FE72203BCEA88303DF0A848EA5ADA9282C2C3C2B92542F721C58809178F36E2DA00D17C613FA5173BFC0F27F9502A1AE535BA9D373ABF83413A8F086FE904B0B45F449CCA9F0615028E1A4878463EA8EB424CA76949EA34A6A36C8DDE6EC4A4AE653A2F1F1009773BB92B8D20530A3313F388FA1AD70C3ECB716E5CA80A06C35CBA247D15D41795F8E083B27B4E227B616408863AFAE48F4C4AE68F1DA9A4B427F666DAD85035D1A499B25A09CC19548A5B9276FB082AA8B00879CCE17105CE7368033F4A18D68826780EB79162AD1B7C70879041BA08FB4A45B3071951DD05EFC9FD04AFCB99D57AEFD4EC51549EF9A166312E744CC7EEAEE9543C02D1B2D233A4B59B187D6E1DB64C843358E8B3C73765DDDC9D79D2D270FF493F56BB4F2F0DC4002605999644FF2A573CBA98492AC8577F5C1A822FD0FB709EAD85C786292DCB4FC8FAD924EEE898502BCD84ED4023C7D74A691A7A3A812685C460A539D5F |
352 | 20180422151643 2 6 100 7679 2 ECCC9B93ED119552D36A774B288F541A81536A13B8D687B23174D680CE3F21B8FA088685F5B965215AFA69736E741A3AFC2AC82CE16162A1E4F0012F28998A638AA98D0789D6C58D92F207EAAA33E467C801891B8D37651B66E0942CF6AB7FD8E0D09A6D597D582BA48563F1450C3300218874730D26EE8B6505059C95C1C764D5FD736BF0A64FAD10F0C7D52A8A57C3FBD653887AAA890DA7AFEDA55DAF702EFF06CC722D147DAA2C8B78F0707F51D2B326BEF8972F5A289829E998B94D98E0ED663143797B569F3A6B56897B5726A38B042806FDFDAA367A4F63C4BA31114300B6290828321C30B25DF97F273041E30A404836E84BB32E0620DC558047FC011A1205126F84D9F8EA5E607FC297E5C9FA00D803026D8126C08EF68B49F6A6C55DCB06EED0B666880CD49FCBFF598055D5E40303669CBC55D85F583DA5EF4F320D6E6A50ECBBFAF8C1F7209655EEAA58BFC18EB9FA20B29EC63FBC810C3A2EDCF8E27FD98975C87D59D9C909895AA10CEA5F7594ADD3ED1EBDFE01BE0559423475592A0E2936E4671504337221F897AE3016BC4670C6B765F5FF1185933B26B1183BCB1E5591970F40A1402EB19EF2644E941F67ABB31935259308B4A5271541F41653EB5E77CCA82214C9C6F4E42E8A3C46CC9BE15BC868BC45B28027E515A16554B9D4F6AB57CFFE42CFE0B42BF83E53F27B39AD95E000C329F716E51D15D6CD211E87AAA83A0F1175F5E1E8963A57DA656FBC19FB42661F14328B05CA7F1A83F49044A5086E6AF56225B8783450E43CB1B6F19061441AF58053BBFAACBC3A80FF5F19A8BD873F487A8FFE3DECD35E77EB2C26387EF66A3EED98C773211914115AFD0776FDAC90CB65479DFE59C0D199F195BBE9E4B2F70A9B1A41429002C2998FAB0F2D6956731819D9F5175B92FECE43178BC69ABEC6E2C18EA88289C5B14C58227640D02F614A9A881633816B9DCAC79E4721EF6E42691902AD1CF565600BAA8019310CAA0AC1087A86846C2E9B96B82C3F0CE52EE73760111061EF090DCBF47882710302A65FBDCF380F84703FE3D4FF7ADD0CB7ED65C889DD6EEC24D01F92771DF3F3D8DFB4BDE234D4A35AB20B22BF5D749398C9B6AE5C7B62DC11ACD887A49586238F5B6D37B47EA6953C3E339A9B40EF3EB01DD70F69253BA9A262777C75DF175195D172BD8233FC7B6F207154EF6E2F47533E359D24EB312A292C756C34A2D55A16452829DAD7A9731E2026E56486F6A3C07380DCA1AFFF270464DA8FF34621FBA715C5853EB1D4EA1C4E23B43CD1CDE1F252B728875F187626A813B4166CC34A62A5D6867E0B605641CEE8025F0AD73DBE4443286CA05A0B8E53 | 352 | 20181002080547 2 6 100 7679 2 FB0D9422C2C18ABC70FF186A01FA8ED40D4950F804266E0B9661F1E2A6EC548235ADF6A86C277AC391995CF5C43940D264D81121AE69F224E949221EDC039AFE2DA6752F6C04E10159FE65D54CBE5EF34174D36E069C4FB18C8E6DBB80B2C6E0F0AD82E0B7281B9D675AE9E85F509B12746130BF725235E2AC495D268C383378FA130AFF2584962A8A3EDEC0B02504DF264F77980B8342713A28BD3219D83F6D70CC1393E10D5A4734BC029FECD3383FF41CB73AC61C29B54B50E439807BFA5663814B6DA5E81B9491217BE616F6B5F93728669FEF51C06D049586FA6584DFBECD526C5CAE6BBD17F104FA69D353A01CD7E39D5BEA60EB0491DCAE78F3A42BFBCC1F366C55FB23B649197B2D2493180963388FBC4A2AC804ECD042A97A07943D46F18EB6D6C24FC050E3DBD8EE2C84FA03E34814EA53197F1121232E239AA0DA133BD81D439AB595FC6F895AB27D0C6C8A5C3F468C9EF81A42BCB7676C2FF4D381063700AEE81FB7369463187413077048310A98D2DC034CCAB7001A28E288B4E6A8DB609974EC9FFC75F6DA91203429ACCEBA35B4CC03006BB069BD2A062A8CAF59E200A8E27B0CD48F896AE6236F0208AE3924EDF58F87557D05413C00CCAD3B95E6F659EC73FDC6933D6D1E21BE753670F6725F21721FDDC304E6178A3164A85F6757A508AFBD9AA4F1C7B181866F5AA306A25032E59C042ACA8EAEDE17B5136ACEC3B56D2E73284922162E614BE0B87654B7B12132D15E6F11F23B0FF2D0A898680B9A66BB908106A60FFC9A0FB43FF3ADCECDB128764764E1D429A0A194ABCD5AB41CE6B75CD025AC8A5FF2153A20E937354A27E361FB396D87924DCF91FE72203BCEA88303DF0A848EA5ADA9282C2C3C2B92542F721C58809178F36E2DA00D17C613FA5173BFC0F27F9502A1AE535BA9D373ABF83413A8F086FE904B0B45F449CCA9F0615028E1A4878463EA8EB424CA76949EA34A6A36C8DDE6EC4A4AE653A2F1F1009773BB92B8D20530A3313F388FA1AD70C3ECB716E5CA80A06C35CBA247D15D41795F8E083B27B4E227B616408863AFAE48F4C4AE68F1DA9A4B427F666DAD85035D1A499B25A09CC19548A5B9276FB082AA8B00879CCE17105CE7368033F4A18D68826780EB79162AD1B7C70879041BA08FB4A45B3071951DD05EFC9FD04AFCB99D57AEFD4EC51549EF9A166312E744CC7EEAEE9543C02D1B2D233A4B59B187D6E1DB64C843358E8B3C73765DDDC9D79D2D270FF493F56BB4F2F0DC4002605999644FF2A573CBA98492AC8577F5C1A822FD0FB709EAD85C786292DCB4FC8FAD924EEE898502BCD84ED4023C7D74A691A7A3A812685C460D765A73 |
353 | 20180422163933 2 6 100 7679 2 ECCC9B93ED119552D36A774B288F541A81536A13B8D687B23174D680CE3F21B8FA088685F5B965215AFA69736E741A3AFC2AC82CE16162A1E4F0012F28998A638AA98D0789D6C58D92F207EAAA33E467C801891B8D37651B66E0942CF6AB7FD8E0D09A6D597D582BA48563F1450C3300218874730D26EE8B6505059C95C1C764D5FD736BF0A64FAD10F0C7D52A8A57C3FBD653887AAA890DA7AFEDA55DAF702EFF06CC722D147DAA2C8B78F0707F51D2B326BEF8972F5A289829E998B94D98E0ED663143797B569F3A6B56897B5726A38B042806FDFDAA367A4F63C4BA31114300B6290828321C30B25DF97F273041E30A404836E84BB32E0620DC558047FC011A1205126F84D9F8EA5E607FC297E5C9FA00D803026D8126C08EF68B49F6A6C55DCB06EED0B666880CD49FCBFF598055D5E40303669CBC55D85F583DA5EF4F320D6E6A50ECBBFAF8C1F7209655EEAA58BFC18EB9FA20B29EC63FBC810C3A2EDCF8E27FD98975C87D59D9C909895AA10CEA5F7594ADD3ED1EBDFE01BE0559423475592A0E2936E4671504337221F897AE3016BC4670C6B765F5FF1185933B26B1183BCB1E5591970F40A1402EB19EF2644E941F67ABB31935259308B4A5271541F41653EB5E77CCA82214C9C6F4E42E8A3C46CC9BE15BC868BC45B28027E515A16554B9D4F6AB57CFFE42CFE0B42BF83E53F27B39AD95E000C329F716E51D15D6CD211E87AAA83A0F1175F5E1E8963A57DA656FBC19FB42661F14328B05CA7F1A83F49044A5086E6AF56225B8783450E43CB1B6F19061441AF58053BBFAACBC3A80FF5F19A8BD873F487A8FFE3DECD35E77EB2C26387EF66A3EED98C773211914115AFD0776FDAC90CB65479DFE59C0D199F195BBE9E4B2F70A9B1A41429002C2998FAB0F2D6956731819D9F5175B92FECE43178BC69ABEC6E2C18EA88289C5B14C58227640D02F614A9A881633816B9DCAC79E4721EF6E42691902AD1CF565600BAA8019310CAA0AC1087A86846C2E9B96B82C3F0CE52EE73760111061EF090DCBF47882710302A65FBDCF380F84703FE3D4FF7ADD0CB7ED65C889DD6EEC24D01F92771DF3F3D8DFB4BDE234D4A35AB20B22BF5D749398C9B6AE5C7B62DC11ACD887A49586238F5B6D37B47EA6953C3E339A9B40EF3EB01DD70F69253BA9A262777C75DF175195D172BD8233FC7B6F207154EF6E2F47533E359D24EB312A292C756C34A2D55A16452829DAD7A9731E2026E56486F6A3C07380DCA1AFFF270464DA8FF34621FBA715C5853EB1D4EA1C4E23B43CD1CDE1F252B728875F187626A813B4166CC34A62A5D6867E0B605641CEE8025F0AD73DBE4443286CA05B02DF5B | 353 | 20181002132925 2 6 100 7679 5 FB0D9422C2C18ABC70FF186A01FA8ED40D4950F804266E0B9661F1E2A6EC548235ADF6A86C277AC391995CF5C43940D264D81121AE69F224E949221EDC039AFE2DA6752F6C04E10159FE65D54CBE5EF34174D36E069C4FB18C8E6DBB80B2C6E0F0AD82E0B7281B9D675AE9E85F509B12746130BF725235E2AC495D268C383378FA130AFF2584962A8A3EDEC0B02504DF264F77980B8342713A28BD3219D83F6D70CC1393E10D5A4734BC029FECD3383FF41CB73AC61C29B54B50E439807BFA5663814B6DA5E81B9491217BE616F6B5F93728669FEF51C06D049586FA6584DFBECD526C5CAE6BBD17F104FA69D353A01CD7E39D5BEA60EB0491DCAE78F3A42BFBCC1F366C55FB23B649197B2D2493180963388FBC4A2AC804ECD042A97A07943D46F18EB6D6C24FC050E3DBD8EE2C84FA03E34814EA53197F1121232E239AA0DA133BD81D439AB595FC6F895AB27D0C6C8A5C3F468C9EF81A42BCB7676C2FF4D381063700AEE81FB7369463187413077048310A98D2DC034CCAB7001A28E288B4E6A8DB609974EC9FFC75F6DA91203429ACCEBA35B4CC03006BB069BD2A062A8CAF59E200A8E27B0CD48F896AE6236F0208AE3924EDF58F87557D05413C00CCAD3B95E6F659EC73FDC6933D6D1E21BE753670F6725F21721FDDC304E6178A3164A85F6757A508AFBD9AA4F1C7B181866F5AA306A25032E59C042ACA8EAEDE17B5136ACEC3B56D2E73284922162E614BE0B87654B7B12132D15E6F11F23B0FF2D0A898680B9A66BB908106A60FFC9A0FB43FF3ADCECDB128764764E1D429A0A194ABCD5AB41CE6B75CD025AC8A5FF2153A20E937354A27E361FB396D87924DCF91FE72203BCEA88303DF0A848EA5ADA9282C2C3C2B92542F721C58809178F36E2DA00D17C613FA5173BFC0F27F9502A1AE535BA9D373ABF83413A8F086FE904B0B45F449CCA9F0615028E1A4878463EA8EB424CA76949EA34A6A36C8DDE6EC4A4AE653A2F1F1009773BB92B8D20530A3313F388FA1AD70C3ECB716E5CA80A06C35CBA247D15D41795F8E083B27B4E227B616408863AFAE48F4C4AE68F1DA9A4B427F666DAD85035D1A499B25A09CC19548A5B9276FB082AA8B00879CCE17105CE7368033F4A18D68826780EB79162AD1B7C70879041BA08FB4A45B3071951DD05EFC9FD04AFCB99D57AEFD4EC51549EF9A166312E744CC7EEAEE9543C02D1B2D233A4B59B187D6E1DB64C843358E8B3C73765DDDC9D79D2D270FF493F56BB4F2F0DC4002605999644FF2A573CBA98492AC8577F5C1A822FD0FB709EAD85C786292DCB4FC8FAD924EEE898502BCD84ED4023C7D74A691A7A3A812685C4611D8F2D7 |
354 | 20180423004105 2 6 100 7679 2 ECCC9B93ED119552D36A774B288F541A81536A13B8D687B23174D680CE3F21B8FA088685F5B965215AFA69736E741A3AFC2AC82CE16162A1E4F0012F28998A638AA98D0789D6C58D92F207EAAA33E467C801891B8D37651B66E0942CF6AB7FD8E0D09A6D597D582BA48563F1450C3300218874730D26EE8B6505059C95C1C764D5FD736BF0A64FAD10F0C7D52A8A57C3FBD653887AAA890DA7AFEDA55DAF702EFF06CC722D147DAA2C8B78F0707F51D2B326BEF8972F5A289829E998B94D98E0ED663143797B569F3A6B56897B5726A38B042806FDFDAA367A4F63C4BA31114300B6290828321C30B25DF97F273041E30A404836E84BB32E0620DC558047FC011A1205126F84D9F8EA5E607FC297E5C9FA00D803026D8126C08EF68B49F6A6C55DCB06EED0B666880CD49FCBFF598055D5E40303669CBC55D85F583DA5EF4F320D6E6A50ECBBFAF8C1F7209655EEAA58BFC18EB9FA20B29EC63FBC810C3A2EDCF8E27FD98975C87D59D9C909895AA10CEA5F7594ADD3ED1EBDFE01BE0559423475592A0E2936E4671504337221F897AE3016BC4670C6B765F5FF1185933B26B1183BCB1E5591970F40A1402EB19EF2644E941F67ABB31935259308B4A5271541F41653EB5E77CCA82214C9C6F4E42E8A3C46CC9BE15BC868BC45B28027E515A16554B9D4F6AB57CFFE42CFE0B42BF83E53F27B39AD95E000C329F716E51D15D6CD211E87AAA83A0F1175F5E1E8963A57DA656FBC19FB42661F14328B05CA7F1A83F49044A5086E6AF56225B8783450E43CB1B6F19061441AF58053BBFAACBC3A80FF5F19A8BD873F487A8FFE3DECD35E77EB2C26387EF66A3EED98C773211914115AFD0776FDAC90CB65479DFE59C0D199F195BBE9E4B2F70A9B1A41429002C2998FAB0F2D6956731819D9F5175B92FECE43178BC69ABEC6E2C18EA88289C5B14C58227640D02F614A9A881633816B9DCAC79E4721EF6E42691902AD1CF565600BAA8019310CAA0AC1087A86846C2E9B96B82C3F0CE52EE73760111061EF090DCBF47882710302A65FBDCF380F84703FE3D4FF7ADD0CB7ED65C889DD6EEC24D01F92771DF3F3D8DFB4BDE234D4A35AB20B22BF5D749398C9B6AE5C7B62DC11ACD887A49586238F5B6D37B47EA6953C3E339A9B40EF3EB01DD70F69253BA9A262777C75DF175195D172BD8233FC7B6F207154EF6E2F47533E359D24EB312A292C756C34A2D55A16452829DAD7A9731E2026E56486F6A3C07380DCA1AFFF270464DA8FF34621FBA715C5853EB1D4EA1C4E23B43CD1CDE1F252B728875F187626A813B4166CC34A62A5D6867E0B605641CEE8025F0AD73DBE4443286CA060EDD493 | 354 | 20181002195913 2 6 100 7679 5 FB0D9422C2C18ABC70FF186A01FA8ED40D4950F804266E0B9661F1E2A6EC548235ADF6A86C277AC391995CF5C43940D264D81121AE69F224E949221EDC039AFE2DA6752F6C04E10159FE65D54CBE5EF34174D36E069C4FB18C8E6DBB80B2C6E0F0AD82E0B7281B9D675AE9E85F509B12746130BF725235E2AC495D268C383378FA130AFF2584962A8A3EDEC0B02504DF264F77980B8342713A28BD3219D83F6D70CC1393E10D5A4734BC029FECD3383FF41CB73AC61C29B54B50E439807BFA5663814B6DA5E81B9491217BE616F6B5F93728669FEF51C06D049586FA6584DFBECD526C5CAE6BBD17F104FA69D353A01CD7E39D5BEA60EB0491DCAE78F3A42BFBCC1F366C55FB23B649197B2D2493180963388FBC4A2AC804ECD042A97A07943D46F18EB6D6C24FC050E3DBD8EE2C84FA03E34814EA53197F1121232E239AA0DA133BD81D439AB595FC6F895AB27D0C6C8A5C3F468C9EF81A42BCB7676C2FF4D381063700AEE81FB7369463187413077048310A98D2DC034CCAB7001A28E288B4E6A8DB609974EC9FFC75F6DA91203429ACCEBA35B4CC03006BB069BD2A062A8CAF59E200A8E27B0CD48F896AE6236F0208AE3924EDF58F87557D05413C00CCAD3B95E6F659EC73FDC6933D6D1E21BE753670F6725F21721FDDC304E6178A3164A85F6757A508AFBD9AA4F1C7B181866F5AA306A25032E59C042ACA8EAEDE17B5136ACEC3B56D2E73284922162E614BE0B87654B7B12132D15E6F11F23B0FF2D0A898680B9A66BB908106A60FFC9A0FB43FF3ADCECDB128764764E1D429A0A194ABCD5AB41CE6B75CD025AC8A5FF2153A20E937354A27E361FB396D87924DCF91FE72203BCEA88303DF0A848EA5ADA9282C2C3C2B92542F721C58809178F36E2DA00D17C613FA5173BFC0F27F9502A1AE535BA9D373ABF83413A8F086FE904B0B45F449CCA9F0615028E1A4878463EA8EB424CA76949EA34A6A36C8DDE6EC4A4AE653A2F1F1009773BB92B8D20530A3313F388FA1AD70C3ECB716E5CA80A06C35CBA247D15D41795F8E083B27B4E227B616408863AFAE48F4C4AE68F1DA9A4B427F666DAD85035D1A499B25A09CC19548A5B9276FB082AA8B00879CCE17105CE7368033F4A18D68826780EB79162AD1B7C70879041BA08FB4A45B3071951DD05EFC9FD04AFCB99D57AEFD4EC51549EF9A166312E744CC7EEAEE9543C02D1B2D233A4B59B187D6E1DB64C843358E8B3C73765DDDC9D79D2D270FF493F56BB4F2F0DC4002605999644FF2A573CBA98492AC8577F5C1A822FD0FB709EAD85C786292DCB4FC8FAD924EEE898502BCD84ED4023C7D74A691A7A3A812685C46170D027F |
355 | 20180423045850 2 6 100 7679 5 ECCC9B93ED119552D36A774B288F541A81536A13B8D687B23174D680CE3F21B8FA088685F5B965215AFA69736E741A3AFC2AC82CE16162A1E4F0012F28998A638AA98D0789D6C58D92F207EAAA33E467C801891B8D37651B66E0942CF6AB7FD8E0D09A6D597D582BA48563F1450C3300218874730D26EE8B6505059C95C1C764D5FD736BF0A64FAD10F0C7D52A8A57C3FBD653887AAA890DA7AFEDA55DAF702EFF06CC722D147DAA2C8B78F0707F51D2B326BEF8972F5A289829E998B94D98E0ED663143797B569F3A6B56897B5726A38B042806FDFDAA367A4F63C4BA31114300B6290828321C30B25DF97F273041E30A404836E84BB32E0620DC558047FC011A1205126F84D9F8EA5E607FC297E5C9FA00D803026D8126C08EF68B49F6A6C55DCB06EED0B666880CD49FCBFF598055D5E40303669CBC55D85F583DA5EF4F320D6E6A50ECBBFAF8C1F7209655EEAA58BFC18EB9FA20B29EC63FBC810C3A2EDCF8E27FD98975C87D59D9C909895AA10CEA5F7594ADD3ED1EBDFE01BE0559423475592A0E2936E4671504337221F897AE3016BC4670C6B765F5FF1185933B26B1183BCB1E5591970F40A1402EB19EF2644E941F67ABB31935259308B4A5271541F41653EB5E77CCA82214C9C6F4E42E8A3C46CC9BE15BC868BC45B28027E515A16554B9D4F6AB57CFFE42CFE0B42BF83E53F27B39AD95E000C329F716E51D15D6CD211E87AAA83A0F1175F5E1E8963A57DA656FBC19FB42661F14328B05CA7F1A83F49044A5086E6AF56225B8783450E43CB1B6F19061441AF58053BBFAACBC3A80FF5F19A8BD873F487A8FFE3DECD35E77EB2C26387EF66A3EED98C773211914115AFD0776FDAC90CB65479DFE59C0D199F195BBE9E4B2F70A9B1A41429002C2998FAB0F2D6956731819D9F5175B92FECE43178BC69ABEC6E2C18EA88289C5B14C58227640D02F614A9A881633816B9DCAC79E4721EF6E42691902AD1CF565600BAA8019310CAA0AC1087A86846C2E9B96B82C3F0CE52EE73760111061EF090DCBF47882710302A65FBDCF380F84703FE3D4FF7ADD0CB7ED65C889DD6EEC24D01F92771DF3F3D8DFB4BDE234D4A35AB20B22BF5D749398C9B6AE5C7B62DC11ACD887A49586238F5B6D37B47EA6953C3E339A9B40EF3EB01DD70F69253BA9A262777C75DF175195D172BD8233FC7B6F207154EF6E2F47533E359D24EB312A292C756C34A2D55A16452829DAD7A9731E2026E56486F6A3C07380DCA1AFFF270464DA8FF34621FBA715C5853EB1D4EA1C4E23B43CD1CDE1F252B728875F187626A813B4166CC34A62A5D6867E0B605641CEE8025F0AD73DBE4443286CA06410777F | 355 | 20181003044410 2 6 100 7679 5 FB0D9422C2C18ABC70FF186A01FA8ED40D4950F804266E0B9661F1E2A6EC548235ADF6A86C277AC391995CF5C43940D264D81121AE69F224E949221EDC039AFE2DA6752F6C04E10159FE65D54CBE5EF34174D36E069C4FB18C8E6DBB80B2C6E0F0AD82E0B7281B9D675AE9E85F509B12746130BF725235E2AC495D268C383378FA130AFF2584962A8A3EDEC0B02504DF264F77980B8342713A28BD3219D83F6D70CC1393E10D5A4734BC029FECD3383FF41CB73AC61C29B54B50E439807BFA5663814B6DA5E81B9491217BE616F6B5F93728669FEF51C06D049586FA6584DFBECD526C5CAE6BBD17F104FA69D353A01CD7E39D5BEA60EB0491DCAE78F3A42BFBCC1F366C55FB23B649197B2D2493180963388FBC4A2AC804ECD042A97A07943D46F18EB6D6C24FC050E3DBD8EE2C84FA03E34814EA53197F1121232E239AA0DA133BD81D439AB595FC6F895AB27D0C6C8A5C3F468C9EF81A42BCB7676C2FF4D381063700AEE81FB7369463187413077048310A98D2DC034CCAB7001A28E288B4E6A8DB609974EC9FFC75F6DA91203429ACCEBA35B4CC03006BB069BD2A062A8CAF59E200A8E27B0CD48F896AE6236F0208AE3924EDF58F87557D05413C00CCAD3B95E6F659EC73FDC6933D6D1E21BE753670F6725F21721FDDC304E6178A3164A85F6757A508AFBD9AA4F1C7B181866F5AA306A25032E59C042ACA8EAEDE17B5136ACEC3B56D2E73284922162E614BE0B87654B7B12132D15E6F11F23B0FF2D0A898680B9A66BB908106A60FFC9A0FB43FF3ADCECDB128764764E1D429A0A194ABCD5AB41CE6B75CD025AC8A5FF2153A20E937354A27E361FB396D87924DCF91FE72203BCEA88303DF0A848EA5ADA9282C2C3C2B92542F721C58809178F36E2DA00D17C613FA5173BFC0F27F9502A1AE535BA9D373ABF83413A8F086FE904B0B45F449CCA9F0615028E1A4878463EA8EB424CA76949EA34A6A36C8DDE6EC4A4AE653A2F1F1009773BB92B8D20530A3313F388FA1AD70C3ECB716E5CA80A06C35CBA247D15D41795F8E083B27B4E227B616408863AFAE48F4C4AE68F1DA9A4B427F666DAD85035D1A499B25A09CC19548A5B9276FB082AA8B00879CCE17105CE7368033F4A18D68826780EB79162AD1B7C70879041BA08FB4A45B3071951DD05EFC9FD04AFCB99D57AEFD4EC51549EF9A166312E744CC7EEAEE9543C02D1B2D233A4B59B187D6E1DB64C843358E8B3C73765DDDC9D79D2D270FF493F56BB4F2F0DC4002605999644FF2A573CBA98492AC8577F5C1A822FD0FB709EAD85C786292DCB4FC8FAD924EEE898502BCD84ED4023C7D74A691A7A3A812685C461E0FB427 |
356 | 20180423175352 2 6 100 7679 2 ECCC9B93ED119552D36A774B288F541A81536A13B8D687B23174D680CE3F21B8FA088685F5B965215AFA69736E741A3AFC2AC82CE16162A1E4F0012F28998A638AA98D0789D6C58D92F207EAAA33E467C801891B8D37651B66E0942CF6AB7FD8E0D09A6D597D582BA48563F1450C3300218874730D26EE8B6505059C95C1C764D5FD736BF0A64FAD10F0C7D52A8A57C3FBD653887AAA890DA7AFEDA55DAF702EFF06CC722D147DAA2C8B78F0707F51D2B326BEF8972F5A289829E998B94D98E0ED663143797B569F3A6B56897B5726A38B042806FDFDAA367A4F63C4BA31114300B6290828321C30B25DF97F273041E30A404836E84BB32E0620DC558047FC011A1205126F84D9F8EA5E607FC297E5C9FA00D803026D8126C08EF68B49F6A6C55DCB06EED0B666880CD49FCBFF598055D5E40303669CBC55D85F583DA5EF4F320D6E6A50ECBBFAF8C1F7209655EEAA58BFC18EB9FA20B29EC63FBC810C3A2EDCF8E27FD98975C87D59D9C909895AA10CEA5F7594ADD3ED1EBDFE01BE0559423475592A0E2936E4671504337221F897AE3016BC4670C6B765F5FF1185933B26B1183BCB1E5591970F40A1402EB19EF2644E941F67ABB31935259308B4A5271541F41653EB5E77CCA82214C9C6F4E42E8A3C46CC9BE15BC868BC45B28027E515A16554B9D4F6AB57CFFE42CFE0B42BF83E53F27B39AD95E000C329F716E51D15D6CD211E87AAA83A0F1175F5E1E8963A57DA656FBC19FB42661F14328B05CA7F1A83F49044A5086E6AF56225B8783450E43CB1B6F19061441AF58053BBFAACBC3A80FF5F19A8BD873F487A8FFE3DECD35E77EB2C26387EF66A3EED98C773211914115AFD0776FDAC90CB65479DFE59C0D199F195BBE9E4B2F70A9B1A41429002C2998FAB0F2D6956731819D9F5175B92FECE43178BC69ABEC6E2C18EA88289C5B14C58227640D02F614A9A881633816B9DCAC79E4721EF6E42691902AD1CF565600BAA8019310CAA0AC1087A86846C2E9B96B82C3F0CE52EE73760111061EF090DCBF47882710302A65FBDCF380F84703FE3D4FF7ADD0CB7ED65C889DD6EEC24D01F92771DF3F3D8DFB4BDE234D4A35AB20B22BF5D749398C9B6AE5C7B62DC11ACD887A49586238F5B6D37B47EA6953C3E339A9B40EF3EB01DD70F69253BA9A262777C75DF175195D172BD8233FC7B6F207154EF6E2F47533E359D24EB312A292C756C34A2D55A16452829DAD7A9731E2026E56486F6A3C07380DCA1AFFF270464DA8FF34621FBA715C5853EB1D4EA1C4E23B43CD1CDE1F252B728875F187626A813B4166CC34A62A5D6867E0B605641CEE8025F0AD73DBE4443286CA06D85A5C3 | 356 | 20181003045243 2 6 100 7679 5 FB0D9422C2C18ABC70FF186A01FA8ED40D4950F804266E0B9661F1E2A6EC548235ADF6A86C277AC391995CF5C43940D264D81121AE69F224E949221EDC039AFE2DA6752F6C04E10159FE65D54CBE5EF34174D36E069C4FB18C8E6DBB80B2C6E0F0AD82E0B7281B9D675AE9E85F509B12746130BF725235E2AC495D268C383378FA130AFF2584962A8A3EDEC0B02504DF264F77980B8342713A28BD3219D83F6D70CC1393E10D5A4734BC029FECD3383FF41CB73AC61C29B54B50E439807BFA5663814B6DA5E81B9491217BE616F6B5F93728669FEF51C06D049586FA6584DFBECD526C5CAE6BBD17F104FA69D353A01CD7E39D5BEA60EB0491DCAE78F3A42BFBCC1F366C55FB23B649197B2D2493180963388FBC4A2AC804ECD042A97A07943D46F18EB6D6C24FC050E3DBD8EE2C84FA03E34814EA53197F1121232E239AA0DA133BD81D439AB595FC6F895AB27D0C6C8A5C3F468C9EF81A42BCB7676C2FF4D381063700AEE81FB7369463187413077048310A98D2DC034CCAB7001A28E288B4E6A8DB609974EC9FFC75F6DA91203429ACCEBA35B4CC03006BB069BD2A062A8CAF59E200A8E27B0CD48F896AE6236F0208AE3924EDF58F87557D05413C00CCAD3B95E6F659EC73FDC6933D6D1E21BE753670F6725F21721FDDC304E6178A3164A85F6757A508AFBD9AA4F1C7B181866F5AA306A25032E59C042ACA8EAEDE17B5136ACEC3B56D2E73284922162E614BE0B87654B7B12132D15E6F11F23B0FF2D0A898680B9A66BB908106A60FFC9A0FB43FF3ADCECDB128764764E1D429A0A194ABCD5AB41CE6B75CD025AC8A5FF2153A20E937354A27E361FB396D87924DCF91FE72203BCEA88303DF0A848EA5ADA9282C2C3C2B92542F721C58809178F36E2DA00D17C613FA5173BFC0F27F9502A1AE535BA9D373ABF83413A8F086FE904B0B45F449CCA9F0615028E1A4878463EA8EB424CA76949EA34A6A36C8DDE6EC4A4AE653A2F1F1009773BB92B8D20530A3313F388FA1AD70C3ECB716E5CA80A06C35CBA247D15D41795F8E083B27B4E227B616408863AFAE48F4C4AE68F1DA9A4B427F666DAD85035D1A499B25A09CC19548A5B9276FB082AA8B00879CCE17105CE7368033F4A18D68826780EB79162AD1B7C70879041BA08FB4A45B3071951DD05EFC9FD04AFCB99D57AEFD4EC51549EF9A166312E744CC7EEAEE9543C02D1B2D233A4B59B187D6E1DB64C843358E8B3C73765DDDC9D79D2D270FF493F56BB4F2F0DC4002605999644FF2A573CBA98492AC8577F5C1A822FD0FB709EAD85C786292DCB4FC8FAD924EEE898502BCD84ED4023C7D74A691A7A3A812685C461E245A3F |
357 | 20180424034739 2 6 100 7679 5 ECCC9B93ED119552D36A774B288F541A81536A13B8D687B23174D680CE3F21B8FA088685F5B965215AFA69736E741A3AFC2AC82CE16162A1E4F0012F28998A638AA98D0789D6C58D92F207EAAA33E467C801891B8D37651B66E0942CF6AB7FD8E0D09A6D597D582BA48563F1450C3300218874730D26EE8B6505059C95C1C764D5FD736BF0A64FAD10F0C7D52A8A57C3FBD653887AAA890DA7AFEDA55DAF702EFF06CC722D147DAA2C8B78F0707F51D2B326BEF8972F5A289829E998B94D98E0ED663143797B569F3A6B56897B5726A38B042806FDFDAA367A4F63C4BA31114300B6290828321C30B25DF97F273041E30A404836E84BB32E0620DC558047FC011A1205126F84D9F8EA5E607FC297E5C9FA00D803026D8126C08EF68B49F6A6C55DCB06EED0B666880CD49FCBFF598055D5E40303669CBC55D85F583DA5EF4F320D6E6A50ECBBFAF8C1F7209655EEAA58BFC18EB9FA20B29EC63FBC810C3A2EDCF8E27FD98975C87D59D9C909895AA10CEA5F7594ADD3ED1EBDFE01BE0559423475592A0E2936E4671504337221F897AE3016BC4670C6B765F5FF1185933B26B1183BCB1E5591970F40A1402EB19EF2644E941F67ABB31935259308B4A5271541F41653EB5E77CCA82214C9C6F4E42E8A3C46CC9BE15BC868BC45B28027E515A16554B9D4F6AB57CFFE42CFE0B42BF83E53F27B39AD95E000C329F716E51D15D6CD211E87AAA83A0F1175F5E1E8963A57DA656FBC19FB42661F14328B05CA7F1A83F49044A5086E6AF56225B8783450E43CB1B6F19061441AF58053BBFAACBC3A80FF5F19A8BD873F487A8FFE3DECD35E77EB2C26387EF66A3EED98C773211914115AFD0776FDAC90CB65479DFE59C0D199F195BBE9E4B2F70A9B1A41429002C2998FAB0F2D6956731819D9F5175B92FECE43178BC69ABEC6E2C18EA88289C5B14C58227640D02F614A9A881633816B9DCAC79E4721EF6E42691902AD1CF565600BAA8019310CAA0AC1087A86846C2E9B96B82C3F0CE52EE73760111061EF090DCBF47882710302A65FBDCF380F84703FE3D4FF7ADD0CB7ED65C889DD6EEC24D01F92771DF3F3D8DFB4BDE234D4A35AB20B22BF5D749398C9B6AE5C7B62DC11ACD887A49586238F5B6D37B47EA6953C3E339A9B40EF3EB01DD70F69253BA9A262777C75DF175195D172BD8233FC7B6F207154EF6E2F47533E359D24EB312A292C756C34A2D55A16452829DAD7A9731E2026E56486F6A3C07380DCA1AFFF270464DA8FF34621FBA715C5853EB1D4EA1C4E23B43CD1CDE1F252B728875F187626A813B4166CC34A62A5D6867E0B605641CEE8025F0AD73DBE4443286CA074B2314F | 357 | 20181003065635 2 6 100 7679 5 FB0D9422C2C18ABC70FF186A01FA8ED40D4950F804266E0B9661F1E2A6EC548235ADF6A86C277AC391995CF5C43940D264D81121AE69F224E949221EDC039AFE2DA6752F6C04E10159FE65D54CBE5EF34174D36E069C4FB18C8E6DBB80B2C6E0F0AD82E0B7281B9D675AE9E85F509B12746130BF725235E2AC495D268C383378FA130AFF2584962A8A3EDEC0B02504DF264F77980B8342713A28BD3219D83F6D70CC1393E10D5A4734BC029FECD3383FF41CB73AC61C29B54B50E439807BFA5663814B6DA5E81B9491217BE616F6B5F93728669FEF51C06D049586FA6584DFBECD526C5CAE6BBD17F104FA69D353A01CD7E39D5BEA60EB0491DCAE78F3A42BFBCC1F366C55FB23B649197B2D2493180963388FBC4A2AC804ECD042A97A07943D46F18EB6D6C24FC050E3DBD8EE2C84FA03E34814EA53197F1121232E239AA0DA133BD81D439AB595FC6F895AB27D0C6C8A5C3F468C9EF81A42BCB7676C2FF4D381063700AEE81FB7369463187413077048310A98D2DC034CCAB7001A28E288B4E6A8DB609974EC9FFC75F6DA91203429ACCEBA35B4CC03006BB069BD2A062A8CAF59E200A8E27B0CD48F896AE6236F0208AE3924EDF58F87557D05413C00CCAD3B95E6F659EC73FDC6933D6D1E21BE753670F6725F21721FDDC304E6178A3164A85F6757A508AFBD9AA4F1C7B181866F5AA306A25032E59C042ACA8EAEDE17B5136ACEC3B56D2E73284922162E614BE0B87654B7B12132D15E6F11F23B0FF2D0A898680B9A66BB908106A60FFC9A0FB43FF3ADCECDB128764764E1D429A0A194ABCD5AB41CE6B75CD025AC8A5FF2153A20E937354A27E361FB396D87924DCF91FE72203BCEA88303DF0A848EA5ADA9282C2C3C2B92542F721C58809178F36E2DA00D17C613FA5173BFC0F27F9502A1AE535BA9D373ABF83413A8F086FE904B0B45F449CCA9F0615028E1A4878463EA8EB424CA76949EA34A6A36C8DDE6EC4A4AE653A2F1F1009773BB92B8D20530A3313F388FA1AD70C3ECB716E5CA80A06C35CBA247D15D41795F8E083B27B4E227B616408863AFAE48F4C4AE68F1DA9A4B427F666DAD85035D1A499B25A09CC19548A5B9276FB082AA8B00879CCE17105CE7368033F4A18D68826780EB79162AD1B7C70879041BA08FB4A45B3071951DD05EFC9FD04AFCB99D57AEFD4EC51549EF9A166312E744CC7EEAEE9543C02D1B2D233A4B59B187D6E1DB64C843358E8B3C73765DDDC9D79D2D270FF493F56BB4F2F0DC4002605999644FF2A573CBA98492AC8577F5C1A822FD0FB709EAD85C786292DCB4FC8FAD924EEE898502BCD84ED4023C7D74A691A7A3A812685C461FC358AF |
358 | 20180424155916 2 6 100 8191 5 FAEE1044985A5E9005F621D69401F45F006C4AC70C849E5C17F3D28A22FE2C86DEF3780E73C15BC778C65638702E1DF6193E19C79BC8A9CEC1D64759E6E8E1B3754AAD1F82819BDB1F1E224F7D7BFF62061D89F6AE8D8EAF444A543333A4E71A4EBEE16AA9FEAE434FD965B90E6B57A198C12619CC31EF4F2BA3ACEA4C0D31EDD7BD715FE76FCD9282221F27F6CFD678ABC0458E4EDFBB72FB23333A3137C1C9AEB0AE4E5D98148527A5670311C0181861C1305901FF9704C64F88B75AD76574ABE3B5CEAAC2F675F5A56B807B2D9FFEDC975C7CFC6C697A18ED7F3D76C164FE108255F43971A3CCEE8FDC5E95F38B6ED8F8B150E17A7780E2D5CFD9A4D35BC4E2B3C3F4F286DC9DD0A8A53A22E643AD29753AAAB58E4C268A4145B1958050895F7FF5EB300FD0435824024F6DA4C38039A621D8E553493D964479DB2C1647C5123A9ED27955117CB966D41BAB3FA2F6AE1CE0E9787E3C815B1E3A3E3002B0BC54A89D66A3B532E8152BB0FD681D134374B4F2197F0B451E4C68C589E1F213D42CB62FC749D0883D9A68B39B93A1582F957AC989E5664266BB53BB8A07C84F662D5E3B4D4B277840A98B37F8A2CDF892085AF77A0AD370B2A4649F2381B7136AEB189421C6C801DC4F20273922A57C76DB4DB487DFC33DA2AC490C77E8ABA4AC719E6F0428A37ADBBE04F776199ACE29C1BC3B8A1F8E0D049628FDA016735559589D660FB23421D29745528E160F60B5D1923E685D0E04BE9DAC15C90BCAC4F4A7FD5CE52950734F2A849CAAB083DD18324EE82D1679146E60C290A97E2C94FBFEEDD88DE9EBEB346DF9E11AE14F4540A84F98B210E5366A03A82128986543C48FC3867431B2531AF99B379CE7E8D3105C574B0D4974295E98EFA2C01AC31C80CB1654BCEFA8467A55BC7B55ADB92DC1BE438006E5392ED521B5817558DE5E38172D023E3236EEAE34037E92EA61D6DA463212E012E603709D65EBE8062644A17B1A00FF5DE6E42FD4B3812DACC8C85754616A5539AB60FEF0F9170413E94D3052CBA3A7B9FCF46F318D30DD88DD988C9C16F5BB8823538A8DBC4830B00E7CE5346277E4DAD464128025955E7E5FD184C40EEC184B6143FC4720DA45C7DE3ED4849D6ABC89B1C01D6761660EA595B65E7F70457A32A4D63CCC6FC9736ABDDB9AE9FC8FB90388DAB7BD2189B38488B17DA76B96DAB6871475F59FC36BD53076293EBF9970A1081BA84E44A3A109F6B7231E64C1C54BF9AABD2320185DC054672B2F8F52172CD262F14CCA3237542F421A2413DF5E371DD4F1297E01D81E392A6C4F3BBABAA3091B2F10DB1C4A2C12B0DDDC279F7AD45992225ACA55ADA7CB6370B07B0CD5B935B8DF18BFFA2567EBF77658772D043318B6BA159DBD3AA48C7A509A1F887A05118CBE1470599C2683D9C00DAA5480A05FFDDF7612E6CFACFC9C07 | 358 | 20181003081458 2 6 100 7679 2 FB0D9422C2C18ABC70FF186A01FA8ED40D4950F804266E0B9661F1E2A6EC548235ADF6A86C277AC391995CF5C43940D264D81121AE69F224E949221EDC039AFE2DA6752F6C04E10159FE65D54CBE5EF34174D36E069C4FB18C8E6DBB80B2C6E0F0AD82E0B7281B9D675AE9E85F509B12746130BF725235E2AC495D268C383378FA130AFF2584962A8A3EDEC0B02504DF264F77980B8342713A28BD3219D83F6D70CC1393E10D5A4734BC029FECD3383FF41CB73AC61C29B54B50E439807BFA5663814B6DA5E81B9491217BE616F6B5F93728669FEF51C06D049586FA6584DFBECD526C5CAE6BBD17F104FA69D353A01CD7E39D5BEA60EB0491DCAE78F3A42BFBCC1F366C55FB23B649197B2D2493180963388FBC4A2AC804ECD042A97A07943D46F18EB6D6C24FC050E3DBD8EE2C84FA03E34814EA53197F1121232E239AA0DA133BD81D439AB595FC6F895AB27D0C6C8A5C3F468C9EF81A42BCB7676C2FF4D381063700AEE81FB7369463187413077048310A98D2DC034CCAB7001A28E288B4E6A8DB609974EC9FFC75F6DA91203429ACCEBA35B4CC03006BB069BD2A062A8CAF59E200A8E27B0CD48F896AE6236F0208AE3924EDF58F87557D05413C00CCAD3B95E6F659EC73FDC6933D6D1E21BE753670F6725F21721FDDC304E6178A3164A85F6757A508AFBD9AA4F1C7B181866F5AA306A25032E59C042ACA8EAEDE17B5136ACEC3B56D2E73284922162E614BE0B87654B7B12132D15E6F11F23B0FF2D0A898680B9A66BB908106A60FFC9A0FB43FF3ADCECDB128764764E1D429A0A194ABCD5AB41CE6B75CD025AC8A5FF2153A20E937354A27E361FB396D87924DCF91FE72203BCEA88303DF0A848EA5ADA9282C2C3C2B92542F721C58809178F36E2DA00D17C613FA5173BFC0F27F9502A1AE535BA9D373ABF83413A8F086FE904B0B45F449CCA9F0615028E1A4878463EA8EB424CA76949EA34A6A36C8DDE6EC4A4AE653A2F1F1009773BB92B8D20530A3313F388FA1AD70C3ECB716E5CA80A06C35CBA247D15D41795F8E083B27B4E227B616408863AFAE48F4C4AE68F1DA9A4B427F666DAD85035D1A499B25A09CC19548A5B9276FB082AA8B00879CCE17105CE7368033F4A18D68826780EB79162AD1B7C70879041BA08FB4A45B3071951DD05EFC9FD04AFCB99D57AEFD4EC51549EF9A166312E744CC7EEAEE9543C02D1B2D233A4B59B187D6E1DB64C843358E8B3C73765DDDC9D79D2D270FF493F56BB4F2F0DC4002605999644FF2A573CBA98492AC8577F5C1A822FD0FB709EAD85C786292DCB4FC8FAD924EEE898502BCD84ED4023C7D74A691A7A3A812685C4620C4118B |
359 | 20180424222331 2 6 100 8191 5 FAEE1044985A5E9005F621D69401F45F006C4AC70C849E5C17F3D28A22FE2C86DEF3780E73C15BC778C65638702E1DF6193E19C79BC8A9CEC1D64759E6E8E1B3754AAD1F82819BDB1F1E224F7D7BFF62061D89F6AE8D8EAF444A543333A4E71A4EBEE16AA9FEAE434FD965B90E6B57A198C12619CC31EF4F2BA3ACEA4C0D31EDD7BD715FE76FCD9282221F27F6CFD678ABC0458E4EDFBB72FB23333A3137C1C9AEB0AE4E5D98148527A5670311C0181861C1305901FF9704C64F88B75AD76574ABE3B5CEAAC2F675F5A56B807B2D9FFEDC975C7CFC6C697A18ED7F3D76C164FE108255F43971A3CCEE8FDC5E95F38B6ED8F8B150E17A7780E2D5CFD9A4D35BC4E2B3C3F4F286DC9DD0A8A53A22E643AD29753AAAB58E4C268A4145B1958050895F7FF5EB300FD0435824024F6DA4C38039A621D8E553493D964479DB2C1647C5123A9ED27955117CB966D41BAB3FA2F6AE1CE0E9787E3C815B1E3A3E3002B0BC54A89D66A3B532E8152BB0FD681D134374B4F2197F0B451E4C68C589E1F213D42CB62FC749D0883D9A68B39B93A1582F957AC989E5664266BB53BB8A07C84F662D5E3B4D4B277840A98B37F8A2CDF892085AF77A0AD370B2A4649F2381B7136AEB189421C6C801DC4F20273922A57C76DB4DB487DFC33DA2AC490C77E8ABA4AC719E6F0428A37ADBBE04F776199ACE29C1BC3B8A1F8E0D049628FDA016735559589D660FB23421D29745528E160F60B5D1923E685D0E04BE9DAC15C90BCAC4F4A7FD5CE52950734F2A849CAAB083DD18324EE82D1679146E60C290A97E2C94FBFEEDD88DE9EBEB346DF9E11AE14F4540A84F98B210E5366A03A82128986543C48FC3867431B2531AF99B379CE7E8D3105C574B0D4974295E98EFA2C01AC31C80CB1654BCEFA8467A55BC7B55ADB92DC1BE438006E5392ED521B5817558DE5E38172D023E3236EEAE34037E92EA61D6DA463212E012E603709D65EBE8062644A17B1A00FF5DE6E42FD4B3812DACC8C85754616A5539AB60FEF0F9170413E94D3052CBA3A7B9FCF46F318D30DD88DD988C9C16F5BB8823538A8DBC4830B00E7CE5346277E4DAD464128025955E7E5FD184C40EEC184B6143FC4720DA45C7DE3ED4849D6ABC89B1C01D6761660EA595B65E7F70457A32A4D63CCC6FC9736ABDDB9AE9FC8FB90388DAB7BD2189B38488B17DA76B96DAB6871475F59FC36BD53076293EBF9970A1081BA84E44A3A109F6B7231E64C1C54BF9AABD2320185DC054672B2F8F52172CD262F14CCA3237542F421A2413DF5E371DD4F1297E01D81E392A6C4F3BBABAA3091B2F10DB1C4A2C12B0DDDC279F7AD45992225ACA55ADA7CB6370B07B0CD5B935B8DF18BFFA2567EBF77658772D043318B6BA159DBD3AA48C7A509A1F887A05118CBE1470599C2683D9C00DAA5480A05FFDDF7612E6CFB180A887 | 359 | 20181003091804 2 6 100 7679 5 FB0D9422C2C18ABC70FF186A01FA8ED40D4950F804266E0B9661F1E2A6EC548235ADF6A86C277AC391995CF5C43940D264D81121AE69F224E949221EDC039AFE2DA6752F6C04E10159FE65D54CBE5EF34174D36E069C4FB18C8E6DBB80B2C6E0F0AD82E0B7281B9D675AE9E85F509B12746130BF725235E2AC495D268C383378FA130AFF2584962A8A3EDEC0B02504DF264F77980B8342713A28BD3219D83F6D70CC1393E10D5A4734BC029FECD3383FF41CB73AC61C29B54B50E439807BFA5663814B6DA5E81B9491217BE616F6B5F93728669FEF51C06D049586FA6584DFBECD526C5CAE6BBD17F104FA69D353A01CD7E39D5BEA60EB0491DCAE78F3A42BFBCC1F366C55FB23B649197B2D2493180963388FBC4A2AC804ECD042A97A07943D46F18EB6D6C24FC050E3DBD8EE2C84FA03E34814EA53197F1121232E239AA0DA133BD81D439AB595FC6F895AB27D0C6C8A5C3F468C9EF81A42BCB7676C2FF4D381063700AEE81FB7369463187413077048310A98D2DC034CCAB7001A28E288B4E6A8DB609974EC9FFC75F6DA91203429ACCEBA35B4CC03006BB069BD2A062A8CAF59E200A8E27B0CD48F896AE6236F0208AE3924EDF58F87557D05413C00CCAD3B95E6F659EC73FDC6933D6D1E21BE753670F6725F21721FDDC304E6178A3164A85F6757A508AFBD9AA4F1C7B181866F5AA306A25032E59C042ACA8EAEDE17B5136ACEC3B56D2E73284922162E614BE0B87654B7B12132D15E6F11F23B0FF2D0A898680B9A66BB908106A60FFC9A0FB43FF3ADCECDB128764764E1D429A0A194ABCD5AB41CE6B75CD025AC8A5FF2153A20E937354A27E361FB396D87924DCF91FE72203BCEA88303DF0A848EA5ADA9282C2C3C2B92542F721C58809178F36E2DA00D17C613FA5173BFC0F27F9502A1AE535BA9D373ABF83413A8F086FE904B0B45F449CCA9F0615028E1A4878463EA8EB424CA76949EA34A6A36C8DDE6EC4A4AE653A2F1F1009773BB92B8D20530A3313F388FA1AD70C3ECB716E5CA80A06C35CBA247D15D41795F8E083B27B4E227B616408863AFAE48F4C4AE68F1DA9A4B427F666DAD85035D1A499B25A09CC19548A5B9276FB082AA8B00879CCE17105CE7368033F4A18D68826780EB79162AD1B7C70879041BA08FB4A45B3071951DD05EFC9FD04AFCB99D57AEFD4EC51549EF9A166312E744CC7EEAEE9543C02D1B2D233A4B59B187D6E1DB64C843358E8B3C73765DDDC9D79D2D270FF493F56BB4F2F0DC4002605999644FF2A573CBA98492AC8577F5C1A822FD0FB709EAD85C786292DCB4FC8FAD924EEE898502BCD84ED4023C7D74A691A7A3A812685C4621936EAF |
360 | 20180425154127 2 6 100 8191 2 FAEE1044985A5E9005F621D69401F45F006C4AC70C849E5C17F3D28A22FE2C86DEF3780E73C15BC778C65638702E1DF6193E19C79BC8A9CEC1D64759E6E8E1B3754AAD1F82819BDB1F1E224F7D7BFF62061D89F6AE8D8EAF444A543333A4E71A4EBEE16AA9FEAE434FD965B90E6B57A198C12619CC31EF4F2BA3ACEA4C0D31EDD7BD715FE76FCD9282221F27F6CFD678ABC0458E4EDFBB72FB23333A3137C1C9AEB0AE4E5D98148527A5670311C0181861C1305901FF9704C64F88B75AD76574ABE3B5CEAAC2F675F5A56B807B2D9FFEDC975C7CFC6C697A18ED7F3D76C164FE108255F43971A3CCEE8FDC5E95F38B6ED8F8B150E17A7780E2D5CFD9A4D35BC4E2B3C3F4F286DC9DD0A8A53A22E643AD29753AAAB58E4C268A4145B1958050895F7FF5EB300FD0435824024F6DA4C38039A621D8E553493D964479DB2C1647C5123A9ED27955117CB966D41BAB3FA2F6AE1CE0E9787E3C815B1E3A3E3002B0BC54A89D66A3B532E8152BB0FD681D134374B4F2197F0B451E4C68C589E1F213D42CB62FC749D0883D9A68B39B93A1582F957AC989E5664266BB53BB8A07C84F662D5E3B4D4B277840A98B37F8A2CDF892085AF77A0AD370B2A4649F2381B7136AEB189421C6C801DC4F20273922A57C76DB4DB487DFC33DA2AC490C77E8ABA4AC719E6F0428A37ADBBE04F776199ACE29C1BC3B8A1F8E0D049628FDA016735559589D660FB23421D29745528E160F60B5D1923E685D0E04BE9DAC15C90BCAC4F4A7FD5CE52950734F2A849CAAB083DD18324EE82D1679146E60C290A97E2C94FBFEEDD88DE9EBEB346DF9E11AE14F4540A84F98B210E5366A03A82128986543C48FC3867431B2531AF99B379CE7E8D3105C574B0D4974295E98EFA2C01AC31C80CB1654BCEFA8467A55BC7B55ADB92DC1BE438006E5392ED521B5817558DE5E38172D023E3236EEAE34037E92EA61D6DA463212E012E603709D65EBE8062644A17B1A00FF5DE6E42FD4B3812DACC8C85754616A5539AB60FEF0F9170413E94D3052CBA3A7B9FCF46F318D30DD88DD988C9C16F5BB8823538A8DBC4830B00E7CE5346277E4DAD464128025955E7E5FD184C40EEC184B6143FC4720DA45C7DE3ED4849D6ABC89B1C01D6761660EA595B65E7F70457A32A4D63CCC6FC9736ABDDB9AE9FC8FB90388DAB7BD2189B38488B17DA76B96DAB6871475F59FC36BD53076293EBF9970A1081BA84E44A3A109F6B7231E64C1C54BF9AABD2320185DC054672B2F8F52172CD262F14CCA3237542F421A2413DF5E371DD4F1297E01D81E392A6C4F3BBABAA3091B2F10DB1C4A2C12B0DDDC279F7AD45992225ACA55ADA7CB6370B07B0CD5B935B8DF18BFFA2567EBF77658772D043318B6BA159DBD3AA48C7A509A1F887A05118CBE1470599C2683D9C00DAA5480A05FFDDF7612E6CFBD59073B | 360 | 20181003093652 2 6 100 7679 5 FB0D9422C2C18ABC70FF186A01FA8ED40D4950F804266E0B9661F1E2A6EC548235ADF6A86C277AC391995CF5C43940D264D81121AE69F224E949221EDC039AFE2DA6752F6C04E10159FE65D54CBE5EF34174D36E069C4FB18C8E6DBB80B2C6E0F0AD82E0B7281B9D675AE9E85F509B12746130BF725235E2AC495D268C383378FA130AFF2584962A8A3EDEC0B02504DF264F77980B8342713A28BD3219D83F6D70CC1393E10D5A4734BC029FECD3383FF41CB73AC61C29B54B50E439807BFA5663814B6DA5E81B9491217BE616F6B5F93728669FEF51C06D049586FA6584DFBECD526C5CAE6BBD17F104FA69D353A01CD7E39D5BEA60EB0491DCAE78F3A42BFBCC1F366C55FB23B649197B2D2493180963388FBC4A2AC804ECD042A97A07943D46F18EB6D6C24FC050E3DBD8EE2C84FA03E34814EA53197F1121232E239AA0DA133BD81D439AB595FC6F895AB27D0C6C8A5C3F468C9EF81A42BCB7676C2FF4D381063700AEE81FB7369463187413077048310A98D2DC034CCAB7001A28E288B4E6A8DB609974EC9FFC75F6DA91203429ACCEBA35B4CC03006BB069BD2A062A8CAF59E200A8E27B0CD48F896AE6236F0208AE3924EDF58F87557D05413C00CCAD3B95E6F659EC73FDC6933D6D1E21BE753670F6725F21721FDDC304E6178A3164A85F6757A508AFBD9AA4F1C7B181866F5AA306A25032E59C042ACA8EAEDE17B5136ACEC3B56D2E73284922162E614BE0B87654B7B12132D15E6F11F23B0FF2D0A898680B9A66BB908106A60FFC9A0FB43FF3ADCECDB128764764E1D429A0A194ABCD5AB41CE6B75CD025AC8A5FF2153A20E937354A27E361FB396D87924DCF91FE72203BCEA88303DF0A848EA5ADA9282C2C3C2B92542F721C58809178F36E2DA00D17C613FA5173BFC0F27F9502A1AE535BA9D373ABF83413A8F086FE904B0B45F449CCA9F0615028E1A4878463EA8EB424CA76949EA34A6A36C8DDE6EC4A4AE653A2F1F1009773BB92B8D20530A3313F388FA1AD70C3ECB716E5CA80A06C35CBA247D15D41795F8E083B27B4E227B616408863AFAE48F4C4AE68F1DA9A4B427F666DAD85035D1A499B25A09CC19548A5B9276FB082AA8B00879CCE17105CE7368033F4A18D68826780EB79162AD1B7C70879041BA08FB4A45B3071951DD05EFC9FD04AFCB99D57AEFD4EC51549EF9A166312E744CC7EEAEE9543C02D1B2D233A4B59B187D6E1DB64C843358E8B3C73765DDDC9D79D2D270FF493F56BB4F2F0DC4002605999644FF2A573CBA98492AC8577F5C1A822FD0FB709EAD85C786292DCB4FC8FAD924EEE898502BCD84ED4023C7D74A691A7A3A812685C4621C96C57 |
361 | 20180426001519 2 6 100 8191 2 FAEE1044985A5E9005F621D69401F45F006C4AC70C849E5C17F3D28A22FE2C86DEF3780E73C15BC778C65638702E1DF6193E19C79BC8A9CEC1D64759E6E8E1B3754AAD1F82819BDB1F1E224F7D7BFF62061D89F6AE8D8EAF444A543333A4E71A4EBEE16AA9FEAE434FD965B90E6B57A198C12619CC31EF4F2BA3ACEA4C0D31EDD7BD715FE76FCD9282221F27F6CFD678ABC0458E4EDFBB72FB23333A3137C1C9AEB0AE4E5D98148527A5670311C0181861C1305901FF9704C64F88B75AD76574ABE3B5CEAAC2F675F5A56B807B2D9FFEDC975C7CFC6C697A18ED7F3D76C164FE108255F43971A3CCEE8FDC5E95F38B6ED8F8B150E17A7780E2D5CFD9A4D35BC4E2B3C3F4F286DC9DD0A8A53A22E643AD29753AAAB58E4C268A4145B1958050895F7FF5EB300FD0435824024F6DA4C38039A621D8E553493D964479DB2C1647C5123A9ED27955117CB966D41BAB3FA2F6AE1CE0E9787E3C815B1E3A3E3002B0BC54A89D66A3B532E8152BB0FD681D134374B4F2197F0B451E4C68C589E1F213D42CB62FC749D0883D9A68B39B93A1582F957AC989E5664266BB53BB8A07C84F662D5E3B4D4B277840A98B37F8A2CDF892085AF77A0AD370B2A4649F2381B7136AEB189421C6C801DC4F20273922A57C76DB4DB487DFC33DA2AC490C77E8ABA4AC719E6F0428A37ADBBE04F776199ACE29C1BC3B8A1F8E0D049628FDA016735559589D660FB23421D29745528E160F60B5D1923E685D0E04BE9DAC15C90BCAC4F4A7FD5CE52950734F2A849CAAB083DD18324EE82D1679146E60C290A97E2C94FBFEEDD88DE9EBEB346DF9E11AE14F4540A84F98B210E5366A03A82128986543C48FC3867431B2531AF99B379CE7E8D3105C574B0D4974295E98EFA2C01AC31C80CB1654BCEFA8467A55BC7B55ADB92DC1BE438006E5392ED521B5817558DE5E38172D023E3236EEAE34037E92EA61D6DA463212E012E603709D65EBE8062644A17B1A00FF5DE6E42FD4B3812DACC8C85754616A5539AB60FEF0F9170413E94D3052CBA3A7B9FCF46F318D30DD88DD988C9C16F5BB8823538A8DBC4830B00E7CE5346277E4DAD464128025955E7E5FD184C40EEC184B6143FC4720DA45C7DE3ED4849D6ABC89B1C01D6761660EA595B65E7F70457A32A4D63CCC6FC9736ABDDB9AE9FC8FB90388DAB7BD2189B38488B17DA76B96DAB6871475F59FC36BD53076293EBF9970A1081BA84E44A3A109F6B7231E64C1C54BF9AABD2320185DC054672B2F8F52172CD262F14CCA3237542F421A2413DF5E371DD4F1297E01D81E392A6C4F3BBABAA3091B2F10DB1C4A2C12B0DDDC279F7AD45992225ACA55ADA7CB6370B07B0CD5B935B8DF18BFFA2567EBF77658772D043318B6BA159DBD3AA48C7A509A1F887A05118CBE1470599C2683D9C00DAA5480A05FFDDF7612E6CFC3391D93 | 361 | 20181003213125 2 6 100 7679 2 FB0D9422C2C18ABC70FF186A01FA8ED40D4950F804266E0B9661F1E2A6EC548235ADF6A86C277AC391995CF5C43940D264D81121AE69F224E949221EDC039AFE2DA6752F6C04E10159FE65D54CBE5EF34174D36E069C4FB18C8E6DBB80B2C6E0F0AD82E0B7281B9D675AE9E85F509B12746130BF725235E2AC495D268C383378FA130AFF2584962A8A3EDEC0B02504DF264F77980B8342713A28BD3219D83F6D70CC1393E10D5A4734BC029FECD3383FF41CB73AC61C29B54B50E439807BFA5663814B6DA5E81B9491217BE616F6B5F93728669FEF51C06D049586FA6584DFBECD526C5CAE6BBD17F104FA69D353A01CD7E39D5BEA60EB0491DCAE78F3A42BFBCC1F366C55FB23B649197B2D2493180963388FBC4A2AC804ECD042A97A07943D46F18EB6D6C24FC050E3DBD8EE2C84FA03E34814EA53197F1121232E239AA0DA133BD81D439AB595FC6F895AB27D0C6C8A5C3F468C9EF81A42BCB7676C2FF4D381063700AEE81FB7369463187413077048310A98D2DC034CCAB7001A28E288B4E6A8DB609974EC9FFC75F6DA91203429ACCEBA35B4CC03006BB069BD2A062A8CAF59E200A8E27B0CD48F896AE6236F0208AE3924EDF58F87557D05413C00CCAD3B95E6F659EC73FDC6933D6D1E21BE753670F6725F21721FDDC304E6178A3164A85F6757A508AFBD9AA4F1C7B181866F5AA306A25032E59C042ACA8EAEDE17B5136ACEC3B56D2E73284922162E614BE0B87654B7B12132D15E6F11F23B0FF2D0A898680B9A66BB908106A60FFC9A0FB43FF3ADCECDB128764764E1D429A0A194ABCD5AB41CE6B75CD025AC8A5FF2153A20E937354A27E361FB396D87924DCF91FE72203BCEA88303DF0A848EA5ADA9282C2C3C2B92542F721C58809178F36E2DA00D17C613FA5173BFC0F27F9502A1AE535BA9D373ABF83413A8F086FE904B0B45F449CCA9F0615028E1A4878463EA8EB424CA76949EA34A6A36C8DDE6EC4A4AE653A2F1F1009773BB92B8D20530A3313F388FA1AD70C3ECB716E5CA80A06C35CBA247D15D41795F8E083B27B4E227B616408863AFAE48F4C4AE68F1DA9A4B427F666DAD85035D1A499B25A09CC19548A5B9276FB082AA8B00879CCE17105CE7368033F4A18D68826780EB79162AD1B7C70879041BA08FB4A45B3071951DD05EFC9FD04AFCB99D57AEFD4EC51549EF9A166312E744CC7EEAEE9543C02D1B2D233A4B59B187D6E1DB64C843358E8B3C73765DDDC9D79D2D270FF493F56BB4F2F0DC4002605999644FF2A573CBA98492AC8577F5C1A822FD0FB709EAD85C786292DCB4FC8FAD924EEE898502BCD84ED4023C7D74A691A7A3A812685C462B2BBD5B |
362 | 20180426011753 2 6 100 8191 5 FAEE1044985A5E9005F621D69401F45F006C4AC70C849E5C17F3D28A22FE2C86DEF3780E73C15BC778C65638702E1DF6193E19C79BC8A9CEC1D64759E6E8E1B3754AAD1F82819BDB1F1E224F7D7BFF62061D89F6AE8D8EAF444A543333A4E71A4EBEE16AA9FEAE434FD965B90E6B57A198C12619CC31EF4F2BA3ACEA4C0D31EDD7BD715FE76FCD9282221F27F6CFD678ABC0458E4EDFBB72FB23333A3137C1C9AEB0AE4E5D98148527A5670311C0181861C1305901FF9704C64F88B75AD76574ABE3B5CEAAC2F675F5A56B807B2D9FFEDC975C7CFC6C697A18ED7F3D76C164FE108255F43971A3CCEE8FDC5E95F38B6ED8F8B150E17A7780E2D5CFD9A4D35BC4E2B3C3F4F286DC9DD0A8A53A22E643AD29753AAAB58E4C268A4145B1958050895F7FF5EB300FD0435824024F6DA4C38039A621D8E553493D964479DB2C1647C5123A9ED27955117CB966D41BAB3FA2F6AE1CE0E9787E3C815B1E3A3E3002B0BC54A89D66A3B532E8152BB0FD681D134374B4F2197F0B451E4C68C589E1F213D42CB62FC749D0883D9A68B39B93A1582F957AC989E5664266BB53BB8A07C84F662D5E3B4D4B277840A98B37F8A2CDF892085AF77A0AD370B2A4649F2381B7136AEB189421C6C801DC4F20273922A57C76DB4DB487DFC33DA2AC490C77E8ABA4AC719E6F0428A37ADBBE04F776199ACE29C1BC3B8A1F8E0D049628FDA016735559589D660FB23421D29745528E160F60B5D1923E685D0E04BE9DAC15C90BCAC4F4A7FD5CE52950734F2A849CAAB083DD18324EE82D1679146E60C290A97E2C94FBFEEDD88DE9EBEB346DF9E11AE14F4540A84F98B210E5366A03A82128986543C48FC3867431B2531AF99B379CE7E8D3105C574B0D4974295E98EFA2C01AC31C80CB1654BCEFA8467A55BC7B55ADB92DC1BE438006E5392ED521B5817558DE5E38172D023E3236EEAE34037E92EA61D6DA463212E012E603709D65EBE8062644A17B1A00FF5DE6E42FD4B3812DACC8C85754616A5539AB60FEF0F9170413E94D3052CBA3A7B9FCF46F318D30DD88DD988C9C16F5BB8823538A8DBC4830B00E7CE5346277E4DAD464128025955E7E5FD184C40EEC184B6143FC4720DA45C7DE3ED4849D6ABC89B1C01D6761660EA595B65E7F70457A32A4D63CCC6FC9736ABDDB9AE9FC8FB90388DAB7BD2189B38488B17DA76B96DAB6871475F59FC36BD53076293EBF9970A1081BA84E44A3A109F6B7231E64C1C54BF9AABD2320185DC054672B2F8F52172CD262F14CCA3237542F421A2413DF5E371DD4F1297E01D81E392A6C4F3BBABAA3091B2F10DB1C4A2C12B0DDDC279F7AD45992225ACA55ADA7CB6370B07B0CD5B935B8DF18BFFA2567EBF77658772D043318B6BA159DBD3AA48C7A509A1F887A05118CBE1470599C2683D9C00DAA5480A05FFDDF7612E6CFC3E66CFF | 362 | 20181004064641 2 6 100 7679 5 FB0D9422C2C18ABC70FF186A01FA8ED40D4950F804266E0B9661F1E2A6EC548235ADF6A86C277AC391995CF5C43940D264D81121AE69F224E949221EDC039AFE2DA6752F6C04E10159FE65D54CBE5EF34174D36E069C4FB18C8E6DBB80B2C6E0F0AD82E0B7281B9D675AE9E85F509B12746130BF725235E2AC495D268C383378FA130AFF2584962A8A3EDEC0B02504DF264F77980B8342713A28BD3219D83F6D70CC1393E10D5A4734BC029FECD3383FF41CB73AC61C29B54B50E439807BFA5663814B6DA5E81B9491217BE616F6B5F93728669FEF51C06D049586FA6584DFBECD526C5CAE6BBD17F104FA69D353A01CD7E39D5BEA60EB0491DCAE78F3A42BFBCC1F366C55FB23B649197B2D2493180963388FBC4A2AC804ECD042A97A07943D46F18EB6D6C24FC050E3DBD8EE2C84FA03E34814EA53197F1121232E239AA0DA133BD81D439AB595FC6F895AB27D0C6C8A5C3F468C9EF81A42BCB7676C2FF4D381063700AEE81FB7369463187413077048310A98D2DC034CCAB7001A28E288B4E6A8DB609974EC9FFC75F6DA91203429ACCEBA35B4CC03006BB069BD2A062A8CAF59E200A8E27B0CD48F896AE6236F0208AE3924EDF58F87557D05413C00CCAD3B95E6F659EC73FDC6933D6D1E21BE753670F6725F21721FDDC304E6178A3164A85F6757A508AFBD9AA4F1C7B181866F5AA306A25032E59C042ACA8EAEDE17B5136ACEC3B56D2E73284922162E614BE0B87654B7B12132D15E6F11F23B0FF2D0A898680B9A66BB908106A60FFC9A0FB43FF3ADCECDB128764764E1D429A0A194ABCD5AB41CE6B75CD025AC8A5FF2153A20E937354A27E361FB396D87924DCF91FE72203BCEA88303DF0A848EA5ADA9282C2C3C2B92542F721C58809178F36E2DA00D17C613FA5173BFC0F27F9502A1AE535BA9D373ABF83413A8F086FE904B0B45F449CCA9F0615028E1A4878463EA8EB424CA76949EA34A6A36C8DDE6EC4A4AE653A2F1F1009773BB92B8D20530A3313F388FA1AD70C3ECB716E5CA80A06C35CBA247D15D41795F8E083B27B4E227B616408863AFAE48F4C4AE68F1DA9A4B427F666DAD85035D1A499B25A09CC19548A5B9276FB082AA8B00879CCE17105CE7368033F4A18D68826780EB79162AD1B7C70879041BA08FB4A45B3071951DD05EFC9FD04AFCB99D57AEFD4EC51549EF9A166312E744CC7EEAEE9543C02D1B2D233A4B59B187D6E1DB64C843358E8B3C73765DDDC9D79D2D270FF493F56BB4F2F0DC4002605999644FF2A573CBA98492AC8577F5C1A822FD0FB709EAD85C786292DCB4FC8FAD924EEE898502BCD84ED4023C7D74A691A7A3A812685C4632523CCF |
363 | 20180426121313 2 6 100 8191 5 FAEE1044985A5E9005F621D69401F45F006C4AC70C849E5C17F3D28A22FE2C86DEF3780E73C15BC778C65638702E1DF6193E19C79BC8A9CEC1D64759E6E8E1B3754AAD1F82819BDB1F1E224F7D7BFF62061D89F6AE8D8EAF444A543333A4E71A4EBEE16AA9FEAE434FD965B90E6B57A198C12619CC31EF4F2BA3ACEA4C0D31EDD7BD715FE76FCD9282221F27F6CFD678ABC0458E4EDFBB72FB23333A3137C1C9AEB0AE4E5D98148527A5670311C0181861C1305901FF9704C64F88B75AD76574ABE3B5CEAAC2F675F5A56B807B2D9FFEDC975C7CFC6C697A18ED7F3D76C164FE108255F43971A3CCEE8FDC5E95F38B6ED8F8B150E17A7780E2D5CFD9A4D35BC4E2B3C3F4F286DC9DD0A8A53A22E643AD29753AAAB58E4C268A4145B1958050895F7FF5EB300FD0435824024F6DA4C38039A621D8E553493D964479DB2C1647C5123A9ED27955117CB966D41BAB3FA2F6AE1CE0E9787E3C815B1E3A3E3002B0BC54A89D66A3B532E8152BB0FD681D134374B4F2197F0B451E4C68C589E1F213D42CB62FC749D0883D9A68B39B93A1582F957AC989E5664266BB53BB8A07C84F662D5E3B4D4B277840A98B37F8A2CDF892085AF77A0AD370B2A4649F2381B7136AEB189421C6C801DC4F20273922A57C76DB4DB487DFC33DA2AC490C77E8ABA4AC719E6F0428A37ADBBE04F776199ACE29C1BC3B8A1F8E0D049628FDA016735559589D660FB23421D29745528E160F60B5D1923E685D0E04BE9DAC15C90BCAC4F4A7FD5CE52950734F2A849CAAB083DD18324EE82D1679146E60C290A97E2C94FBFEEDD88DE9EBEB346DF9E11AE14F4540A84F98B210E5366A03A82128986543C48FC3867431B2531AF99B379CE7E8D3105C574B0D4974295E98EFA2C01AC31C80CB1654BCEFA8467A55BC7B55ADB92DC1BE438006E5392ED521B5817558DE5E38172D023E3236EEAE34037E92EA61D6DA463212E012E603709D65EBE8062644A17B1A00FF5DE6E42FD4B3812DACC8C85754616A5539AB60FEF0F9170413E94D3052CBA3A7B9FCF46F318D30DD88DD988C9C16F5BB8823538A8DBC4830B00E7CE5346277E4DAD464128025955E7E5FD184C40EEC184B6143FC4720DA45C7DE3ED4849D6ABC89B1C01D6761660EA595B65E7F70457A32A4D63CCC6FC9736ABDDB9AE9FC8FB90388DAB7BD2189B38488B17DA76B96DAB6871475F59FC36BD53076293EBF9970A1081BA84E44A3A109F6B7231E64C1C54BF9AABD2320185DC054672B2F8F52172CD262F14CCA3237542F421A2413DF5E371DD4F1297E01D81E392A6C4F3BBABAA3091B2F10DB1C4A2C12B0DDDC279F7AD45992225ACA55ADA7CB6370B07B0CD5B935B8DF18BFFA2567EBF77658772D043318B6BA159DBD3AA48C7A509A1F887A05118CBE1470599C2683D9C00DAA5480A05FFDDF7612E6CFCB4C31C7 | 363 | 20181004083341 2 6 100 7679 5 FB0D9422C2C18ABC70FF186A01FA8ED40D4950F804266E0B9661F1E2A6EC548235ADF6A86C277AC391995CF5C43940D264D81121AE69F224E949221EDC039AFE2DA6752F6C04E10159FE65D54CBE5EF34174D36E069C4FB18C8E6DBB80B2C6E0F0AD82E0B7281B9D675AE9E85F509B12746130BF725235E2AC495D268C383378FA130AFF2584962A8A3EDEC0B02504DF264F77980B8342713A28BD3219D83F6D70CC1393E10D5A4734BC029FECD3383FF41CB73AC61C29B54B50E439807BFA5663814B6DA5E81B9491217BE616F6B5F93728669FEF51C06D049586FA6584DFBECD526C5CAE6BBD17F104FA69D353A01CD7E39D5BEA60EB0491DCAE78F3A42BFBCC1F366C55FB23B649197B2D2493180963388FBC4A2AC804ECD042A97A07943D46F18EB6D6C24FC050E3DBD8EE2C84FA03E34814EA53197F1121232E239AA0DA133BD81D439AB595FC6F895AB27D0C6C8A5C3F468C9EF81A42BCB7676C2FF4D381063700AEE81FB7369463187413077048310A98D2DC034CCAB7001A28E288B4E6A8DB609974EC9FFC75F6DA91203429ACCEBA35B4CC03006BB069BD2A062A8CAF59E200A8E27B0CD48F896AE6236F0208AE3924EDF58F87557D05413C00CCAD3B95E6F659EC73FDC6933D6D1E21BE753670F6725F21721FDDC304E6178A3164A85F6757A508AFBD9AA4F1C7B181866F5AA306A25032E59C042ACA8EAEDE17B5136ACEC3B56D2E73284922162E614BE0B87654B7B12132D15E6F11F23B0FF2D0A898680B9A66BB908106A60FFC9A0FB43FF3ADCECDB128764764E1D429A0A194ABCD5AB41CE6B75CD025AC8A5FF2153A20E937354A27E361FB396D87924DCF91FE72203BCEA88303DF0A848EA5ADA9282C2C3C2B92542F721C58809178F36E2DA00D17C613FA5173BFC0F27F9502A1AE535BA9D373ABF83413A8F086FE904B0B45F449CCA9F0615028E1A4878463EA8EB424CA76949EA34A6A36C8DDE6EC4A4AE653A2F1F1009773BB92B8D20530A3313F388FA1AD70C3ECB716E5CA80A06C35CBA247D15D41795F8E083B27B4E227B616408863AFAE48F4C4AE68F1DA9A4B427F666DAD85035D1A499B25A09CC19548A5B9276FB082AA8B00879CCE17105CE7368033F4A18D68826780EB79162AD1B7C70879041BA08FB4A45B3071951DD05EFC9FD04AFCB99D57AEFD4EC51549EF9A166312E744CC7EEAEE9543C02D1B2D233A4B59B187D6E1DB64C843358E8B3C73765DDDC9D79D2D270FF493F56BB4F2F0DC4002605999644FF2A573CBA98492AC8577F5C1A822FD0FB709EAD85C786292DCB4FC8FAD924EEE898502BCD84ED4023C7D74A691A7A3A812685C4633A72497 |
364 | 20180426192735 2 6 100 8191 5 FAEE1044985A5E9005F621D69401F45F006C4AC70C849E5C17F3D28A22FE2C86DEF3780E73C15BC778C65638702E1DF6193E19C79BC8A9CEC1D64759E6E8E1B3754AAD1F82819BDB1F1E224F7D7BFF62061D89F6AE8D8EAF444A543333A4E71A4EBEE16AA9FEAE434FD965B90E6B57A198C12619CC31EF4F2BA3ACEA4C0D31EDD7BD715FE76FCD9282221F27F6CFD678ABC0458E4EDFBB72FB23333A3137C1C9AEB0AE4E5D98148527A5670311C0181861C1305901FF9704C64F88B75AD76574ABE3B5CEAAC2F675F5A56B807B2D9FFEDC975C7CFC6C697A18ED7F3D76C164FE108255F43971A3CCEE8FDC5E95F38B6ED8F8B150E17A7780E2D5CFD9A4D35BC4E2B3C3F4F286DC9DD0A8A53A22E643AD29753AAAB58E4C268A4145B1958050895F7FF5EB300FD0435824024F6DA4C38039A621D8E553493D964479DB2C1647C5123A9ED27955117CB966D41BAB3FA2F6AE1CE0E9787E3C815B1E3A3E3002B0BC54A89D66A3B532E8152BB0FD681D134374B4F2197F0B451E4C68C589E1F213D42CB62FC749D0883D9A68B39B93A1582F957AC989E5664266BB53BB8A07C84F662D5E3B4D4B277840A98B37F8A2CDF892085AF77A0AD370B2A4649F2381B7136AEB189421C6C801DC4F20273922A57C76DB4DB487DFC33DA2AC490C77E8ABA4AC719E6F0428A37ADBBE04F776199ACE29C1BC3B8A1F8E0D049628FDA016735559589D660FB23421D29745528E160F60B5D1923E685D0E04BE9DAC15C90BCAC4F4A7FD5CE52950734F2A849CAAB083DD18324EE82D1679146E60C290A97E2C94FBFEEDD88DE9EBEB346DF9E11AE14F4540A84F98B210E5366A03A82128986543C48FC3867431B2531AF99B379CE7E8D3105C574B0D4974295E98EFA2C01AC31C80CB1654BCEFA8467A55BC7B55ADB92DC1BE438006E5392ED521B5817558DE5E38172D023E3236EEAE34037E92EA61D6DA463212E012E603709D65EBE8062644A17B1A00FF5DE6E42FD4B3812DACC8C85754616A5539AB60FEF0F9170413E94D3052CBA3A7B9FCF46F318D30DD88DD988C9C16F5BB8823538A8DBC4830B00E7CE5346277E4DAD464128025955E7E5FD184C40EEC184B6143FC4720DA45C7DE3ED4849D6ABC89B1C01D6761660EA595B65E7F70457A32A4D63CCC6FC9736ABDDB9AE9FC8FB90388DAB7BD2189B38488B17DA76B96DAB6871475F59FC36BD53076293EBF9970A1081BA84E44A3A109F6B7231E64C1C54BF9AABD2320185DC054672B2F8F52172CD262F14CCA3237542F421A2413DF5E371DD4F1297E01D81E392A6C4F3BBABAA3091B2F10DB1C4A2C12B0DDDC279F7AD45992225ACA55ADA7CB6370B07B0CD5B935B8DF18BFFA2567EBF77658772D043318B6BA159DBD3AA48C7A509A1F887A05118CBE1470599C2683D9C00DAA5480A05FFDDF7612E6CFD02C1487 | 364 | 20181004113212 2 6 100 7679 2 FB0D9422C2C18ABC70FF186A01FA8ED40D4950F804266E0B9661F1E2A6EC548235ADF6A86C277AC391995CF5C43940D264D81121AE69F224E949221EDC039AFE2DA6752F6C04E10159FE65D54CBE5EF34174D36E069C4FB18C8E6DBB80B2C6E0F0AD82E0B7281B9D675AE9E85F509B12746130BF725235E2AC495D268C383378FA130AFF2584962A8A3EDEC0B02504DF264F77980B8342713A28BD3219D83F6D70CC1393E10D5A4734BC029FECD3383FF41CB73AC61C29B54B50E439807BFA5663814B6DA5E81B9491217BE616F6B5F93728669FEF51C06D049586FA6584DFBECD526C5CAE6BBD17F104FA69D353A01CD7E39D5BEA60EB0491DCAE78F3A42BFBCC1F366C55FB23B649197B2D2493180963388FBC4A2AC804ECD042A97A07943D46F18EB6D6C24FC050E3DBD8EE2C84FA03E34814EA53197F1121232E239AA0DA133BD81D439AB595FC6F895AB27D0C6C8A5C3F468C9EF81A42BCB7676C2FF4D381063700AEE81FB7369463187413077048310A98D2DC034CCAB7001A28E288B4E6A8DB609974EC9FFC75F6DA91203429ACCEBA35B4CC03006BB069BD2A062A8CAF59E200A8E27B0CD48F896AE6236F0208AE3924EDF58F87557D05413C00CCAD3B95E6F659EC73FDC6933D6D1E21BE753670F6725F21721FDDC304E6178A3164A85F6757A508AFBD9AA4F1C7B181866F5AA306A25032E59C042ACA8EAEDE17B5136ACEC3B56D2E73284922162E614BE0B87654B7B12132D15E6F11F23B0FF2D0A898680B9A66BB908106A60FFC9A0FB43FF3ADCECDB128764764E1D429A0A194ABCD5AB41CE6B75CD025AC8A5FF2153A20E937354A27E361FB396D87924DCF91FE72203BCEA88303DF0A848EA5ADA9282C2C3C2B92542F721C58809178F36E2DA00D17C613FA5173BFC0F27F9502A1AE535BA9D373ABF83413A8F086FE904B0B45F449CCA9F0615028E1A4878463EA8EB424CA76949EA34A6A36C8DDE6EC4A4AE653A2F1F1009773BB92B8D20530A3313F388FA1AD70C3ECB716E5CA80A06C35CBA247D15D41795F8E083B27B4E227B616408863AFAE48F4C4AE68F1DA9A4B427F666DAD85035D1A499B25A09CC19548A5B9276FB082AA8B00879CCE17105CE7368033F4A18D68826780EB79162AD1B7C70879041BA08FB4A45B3071951DD05EFC9FD04AFCB99D57AEFD4EC51549EF9A166312E744CC7EEAEE9543C02D1B2D233A4B59B187D6E1DB64C843358E8B3C73765DDDC9D79D2D270FF493F56BB4F2F0DC4002605999644FF2A573CBA98492AC8577F5C1A822FD0FB709EAD85C786292DCB4FC8FAD924EEE898502BCD84ED4023C7D74A691A7A3A812685C4635EC630B |
365 | 20180427041246 2 6 100 8191 2 FAEE1044985A5E9005F621D69401F45F006C4AC70C849E5C17F3D28A22FE2C86DEF3780E73C15BC778C65638702E1DF6193E19C79BC8A9CEC1D64759E6E8E1B3754AAD1F82819BDB1F1E224F7D7BFF62061D89F6AE8D8EAF444A543333A4E71A4EBEE16AA9FEAE434FD965B90E6B57A198C12619CC31EF4F2BA3ACEA4C0D31EDD7BD715FE76FCD9282221F27F6CFD678ABC0458E4EDFBB72FB23333A3137C1C9AEB0AE4E5D98148527A5670311C0181861C1305901FF9704C64F88B75AD76574ABE3B5CEAAC2F675F5A56B807B2D9FFEDC975C7CFC6C697A18ED7F3D76C164FE108255F43971A3CCEE8FDC5E95F38B6ED8F8B150E17A7780E2D5CFD9A4D35BC4E2B3C3F4F286DC9DD0A8A53A22E643AD29753AAAB58E4C268A4145B1958050895F7FF5EB300FD0435824024F6DA4C38039A621D8E553493D964479DB2C1647C5123A9ED27955117CB966D41BAB3FA2F6AE1CE0E9787E3C815B1E3A3E3002B0BC54A89D66A3B532E8152BB0FD681D134374B4F2197F0B451E4C68C589E1F213D42CB62FC749D0883D9A68B39B93A1582F957AC989E5664266BB53BB8A07C84F662D5E3B4D4B277840A98B37F8A2CDF892085AF77A0AD370B2A4649F2381B7136AEB189421C6C801DC4F20273922A57C76DB4DB487DFC33DA2AC490C77E8ABA4AC719E6F0428A37ADBBE04F776199ACE29C1BC3B8A1F8E0D049628FDA016735559589D660FB23421D29745528E160F60B5D1923E685D0E04BE9DAC15C90BCAC4F4A7FD5CE52950734F2A849CAAB083DD18324EE82D1679146E60C290A97E2C94FBFEEDD88DE9EBEB346DF9E11AE14F4540A84F98B210E5366A03A82128986543C48FC3867431B2531AF99B379CE7E8D3105C574B0D4974295E98EFA2C01AC31C80CB1654BCEFA8467A55BC7B55ADB92DC1BE438006E5392ED521B5817558DE5E38172D023E3236EEAE34037E92EA61D6DA463212E012E603709D65EBE8062644A17B1A00FF5DE6E42FD4B3812DACC8C85754616A5539AB60FEF0F9170413E94D3052CBA3A7B9FCF46F318D30DD88DD988C9C16F5BB8823538A8DBC4830B00E7CE5346277E4DAD464128025955E7E5FD184C40EEC184B6143FC4720DA45C7DE3ED4849D6ABC89B1C01D6761660EA595B65E7F70457A32A4D63CCC6FC9736ABDDB9AE9FC8FB90388DAB7BD2189B38488B17DA76B96DAB6871475F59FC36BD53076293EBF9970A1081BA84E44A3A109F6B7231E64C1C54BF9AABD2320185DC054672B2F8F52172CD262F14CCA3237542F421A2413DF5E371DD4F1297E01D81E392A6C4F3BBABAA3091B2F10DB1C4A2C12B0DDDC279F7AD45992225ACA55ADA7CB6370B07B0CD5B935B8DF18BFFA2567EBF77658772D043318B6BA159DBD3AA48C7A509A1F887A05118CBE1470599C2683D9C00DAA5480A05FFDDF7612E6CFD60EF383 | 365 | 20181004123633 2 6 100 7679 5 FB0D9422C2C18ABC70FF186A01FA8ED40D4950F804266E0B9661F1E2A6EC548235ADF6A86C277AC391995CF5C43940D264D81121AE69F224E949221EDC039AFE2DA6752F6C04E10159FE65D54CBE5EF34174D36E069C4FB18C8E6DBB80B2C6E0F0AD82E0B7281B9D675AE9E85F509B12746130BF725235E2AC495D268C383378FA130AFF2584962A8A3EDEC0B02504DF264F77980B8342713A28BD3219D83F6D70CC1393E10D5A4734BC029FECD3383FF41CB73AC61C29B54B50E439807BFA5663814B6DA5E81B9491217BE616F6B5F93728669FEF51C06D049586FA6584DFBECD526C5CAE6BBD17F104FA69D353A01CD7E39D5BEA60EB0491DCAE78F3A42BFBCC1F366C55FB23B649197B2D2493180963388FBC4A2AC804ECD042A97A07943D46F18EB6D6C24FC050E3DBD8EE2C84FA03E34814EA53197F1121232E239AA0DA133BD81D439AB595FC6F895AB27D0C6C8A5C3F468C9EF81A42BCB7676C2FF4D381063700AEE81FB7369463187413077048310A98D2DC034CCAB7001A28E288B4E6A8DB609974EC9FFC75F6DA91203429ACCEBA35B4CC03006BB069BD2A062A8CAF59E200A8E27B0CD48F896AE6236F0208AE3924EDF58F87557D05413C00CCAD3B95E6F659EC73FDC6933D6D1E21BE753670F6725F21721FDDC304E6178A3164A85F6757A508AFBD9AA4F1C7B181866F5AA306A25032E59C042ACA8EAEDE17B5136ACEC3B56D2E73284922162E614BE0B87654B7B12132D15E6F11F23B0FF2D0A898680B9A66BB908106A60FFC9A0FB43FF3ADCECDB128764764E1D429A0A194ABCD5AB41CE6B75CD025AC8A5FF2153A20E937354A27E361FB396D87924DCF91FE72203BCEA88303DF0A848EA5ADA9282C2C3C2B92542F721C58809178F36E2DA00D17C613FA5173BFC0F27F9502A1AE535BA9D373ABF83413A8F086FE904B0B45F449CCA9F0615028E1A4878463EA8EB424CA76949EA34A6A36C8DDE6EC4A4AE653A2F1F1009773BB92B8D20530A3313F388FA1AD70C3ECB716E5CA80A06C35CBA247D15D41795F8E083B27B4E227B616408863AFAE48F4C4AE68F1DA9A4B427F666DAD85035D1A499B25A09CC19548A5B9276FB082AA8B00879CCE17105CE7368033F4A18D68826780EB79162AD1B7C70879041BA08FB4A45B3071951DD05EFC9FD04AFCB99D57AEFD4EC51549EF9A166312E744CC7EEAEE9543C02D1B2D233A4B59B187D6E1DB64C843358E8B3C73765DDDC9D79D2D270FF493F56BB4F2F0DC4002605999644FF2A573CBA98492AC8577F5C1A822FD0FB709EAD85C786292DCB4FC8FAD924EEE898502BCD84ED4023C7D74A691A7A3A812685C4636B93337 |
366 | 20180427102113 2 6 100 8191 2 FAEE1044985A5E9005F621D69401F45F006C4AC70C849E5C17F3D28A22FE2C86DEF3780E73C15BC778C65638702E1DF6193E19C79BC8A9CEC1D64759E6E8E1B3754AAD1F82819BDB1F1E224F7D7BFF62061D89F6AE8D8EAF444A543333A4E71A4EBEE16AA9FEAE434FD965B90E6B57A198C12619CC31EF4F2BA3ACEA4C0D31EDD7BD715FE76FCD9282221F27F6CFD678ABC0458E4EDFBB72FB23333A3137C1C9AEB0AE4E5D98148527A5670311C0181861C1305901FF9704C64F88B75AD76574ABE3B5CEAAC2F675F5A56B807B2D9FFEDC975C7CFC6C697A18ED7F3D76C164FE108255F43971A3CCEE8FDC5E95F38B6ED8F8B150E17A7780E2D5CFD9A4D35BC4E2B3C3F4F286DC9DD0A8A53A22E643AD29753AAAB58E4C268A4145B1958050895F7FF5EB300FD0435824024F6DA4C38039A621D8E553493D964479DB2C1647C5123A9ED27955117CB966D41BAB3FA2F6AE1CE0E9787E3C815B1E3A3E3002B0BC54A89D66A3B532E8152BB0FD681D134374B4F2197F0B451E4C68C589E1F213D42CB62FC749D0883D9A68B39B93A1582F957AC989E5664266BB53BB8A07C84F662D5E3B4D4B277840A98B37F8A2CDF892085AF77A0AD370B2A4649F2381B7136AEB189421C6C801DC4F20273922A57C76DB4DB487DFC33DA2AC490C77E8ABA4AC719E6F0428A37ADBBE04F776199ACE29C1BC3B8A1F8E0D049628FDA016735559589D660FB23421D29745528E160F60B5D1923E685D0E04BE9DAC15C90BCAC4F4A7FD5CE52950734F2A849CAAB083DD18324EE82D1679146E60C290A97E2C94FBFEEDD88DE9EBEB346DF9E11AE14F4540A84F98B210E5366A03A82128986543C48FC3867431B2531AF99B379CE7E8D3105C574B0D4974295E98EFA2C01AC31C80CB1654BCEFA8467A55BC7B55ADB92DC1BE438006E5392ED521B5817558DE5E38172D023E3236EEAE34037E92EA61D6DA463212E012E603709D65EBE8062644A17B1A00FF5DE6E42FD4B3812DACC8C85754616A5539AB60FEF0F9170413E94D3052CBA3A7B9FCF46F318D30DD88DD988C9C16F5BB8823538A8DBC4830B00E7CE5346277E4DAD464128025955E7E5FD184C40EEC184B6143FC4720DA45C7DE3ED4849D6ABC89B1C01D6761660EA595B65E7F70457A32A4D63CCC6FC9736ABDDB9AE9FC8FB90388DAB7BD2189B38488B17DA76B96DAB6871475F59FC36BD53076293EBF9970A1081BA84E44A3A109F6B7231E64C1C54BF9AABD2320185DC054672B2F8F52172CD262F14CCA3237542F421A2413DF5E371DD4F1297E01D81E392A6C4F3BBABAA3091B2F10DB1C4A2C12B0DDDC279F7AD45992225ACA55ADA7CB6370B07B0CD5B935B8DF18BFFA2567EBF77658772D043318B6BA159DBD3AA48C7A509A1F887A05118CBE1470599C2683D9C00DAA5480A05FFDDF7612E6CFD9FE975B | 366 | 20181004144119 2 6 100 7679 2 FB0D9422C2C18ABC70FF186A01FA8ED40D4950F804266E0B9661F1E2A6EC548235ADF6A86C277AC391995CF5C43940D264D81121AE69F224E949221EDC039AFE2DA6752F6C04E10159FE65D54CBE5EF34174D36E069C4FB18C8E6DBB80B2C6E0F0AD82E0B7281B9D675AE9E85F509B12746130BF725235E2AC495D268C383378FA130AFF2584962A8A3EDEC0B02504DF264F77980B8342713A28BD3219D83F6D70CC1393E10D5A4734BC029FECD3383FF41CB73AC61C29B54B50E439807BFA5663814B6DA5E81B9491217BE616F6B5F93728669FEF51C06D049586FA6584DFBECD526C5CAE6BBD17F104FA69D353A01CD7E39D5BEA60EB0491DCAE78F3A42BFBCC1F366C55FB23B649197B2D2493180963388FBC4A2AC804ECD042A97A07943D46F18EB6D6C24FC050E3DBD8EE2C84FA03E34814EA53197F1121232E239AA0DA133BD81D439AB595FC6F895AB27D0C6C8A5C3F468C9EF81A42BCB7676C2FF4D381063700AEE81FB7369463187413077048310A98D2DC034CCAB7001A28E288B4E6A8DB609974EC9FFC75F6DA91203429ACCEBA35B4CC03006BB069BD2A062A8CAF59E200A8E27B0CD48F896AE6236F0208AE3924EDF58F87557D05413C00CCAD3B95E6F659EC73FDC6933D6D1E21BE753670F6725F21721FDDC304E6178A3164A85F6757A508AFBD9AA4F1C7B181866F5AA306A25032E59C042ACA8EAEDE17B5136ACEC3B56D2E73284922162E614BE0B87654B7B12132D15E6F11F23B0FF2D0A898680B9A66BB908106A60FFC9A0FB43FF3ADCECDB128764764E1D429A0A194ABCD5AB41CE6B75CD025AC8A5FF2153A20E937354A27E361FB396D87924DCF91FE72203BCEA88303DF0A848EA5ADA9282C2C3C2B92542F721C58809178F36E2DA00D17C613FA5173BFC0F27F9502A1AE535BA9D373ABF83413A8F086FE904B0B45F449CCA9F0615028E1A4878463EA8EB424CA76949EA34A6A36C8DDE6EC4A4AE653A2F1F1009773BB92B8D20530A3313F388FA1AD70C3ECB716E5CA80A06C35CBA247D15D41795F8E083B27B4E227B616408863AFAE48F4C4AE68F1DA9A4B427F666DAD85035D1A499B25A09CC19548A5B9276FB082AA8B00879CCE17105CE7368033F4A18D68826780EB79162AD1B7C70879041BA08FB4A45B3071951DD05EFC9FD04AFCB99D57AEFD4EC51549EF9A166312E744CC7EEAEE9543C02D1B2D233A4B59B187D6E1DB64C843358E8B3C73765DDDC9D79D2D270FF493F56BB4F2F0DC4002605999644FF2A573CBA98492AC8577F5C1A822FD0FB709EAD85C786292DCB4FC8FAD924EEE898502BCD84ED4023C7D74A691A7A3A812685C463844D7C3 |
367 | 20180427110709 2 6 100 8191 5 FAEE1044985A5E9005F621D69401F45F006C4AC70C849E5C17F3D28A22FE2C86DEF3780E73C15BC778C65638702E1DF6193E19C79BC8A9CEC1D64759E6E8E1B3754AAD1F82819BDB1F1E224F7D7BFF62061D89F6AE8D8EAF444A543333A4E71A4EBEE16AA9FEAE434FD965B90E6B57A198C12619CC31EF4F2BA3ACEA4C0D31EDD7BD715FE76FCD9282221F27F6CFD678ABC0458E4EDFBB72FB23333A3137C1C9AEB0AE4E5D98148527A5670311C0181861C1305901FF9704C64F88B75AD76574ABE3B5CEAAC2F675F5A56B807B2D9FFEDC975C7CFC6C697A18ED7F3D76C164FE108255F43971A3CCEE8FDC5E95F38B6ED8F8B150E17A7780E2D5CFD9A4D35BC4E2B3C3F4F286DC9DD0A8A53A22E643AD29753AAAB58E4C268A4145B1958050895F7FF5EB300FD0435824024F6DA4C38039A621D8E553493D964479DB2C1647C5123A9ED27955117CB966D41BAB3FA2F6AE1CE0E9787E3C815B1E3A3E3002B0BC54A89D66A3B532E8152BB0FD681D134374B4F2197F0B451E4C68C589E1F213D42CB62FC749D0883D9A68B39B93A1582F957AC989E5664266BB53BB8A07C84F662D5E3B4D4B277840A98B37F8A2CDF892085AF77A0AD370B2A4649F2381B7136AEB189421C6C801DC4F20273922A57C76DB4DB487DFC33DA2AC490C77E8ABA4AC719E6F0428A37ADBBE04F776199ACE29C1BC3B8A1F8E0D049628FDA016735559589D660FB23421D29745528E160F60B5D1923E685D0E04BE9DAC15C90BCAC4F4A7FD5CE52950734F2A849CAAB083DD18324EE82D1679146E60C290A97E2C94FBFEEDD88DE9EBEB346DF9E11AE14F4540A84F98B210E5366A03A82128986543C48FC3867431B2531AF99B379CE7E8D3105C574B0D4974295E98EFA2C01AC31C80CB1654BCEFA8467A55BC7B55ADB92DC1BE438006E5392ED521B5817558DE5E38172D023E3236EEAE34037E92EA61D6DA463212E012E603709D65EBE8062644A17B1A00FF5DE6E42FD4B3812DACC8C85754616A5539AB60FEF0F9170413E94D3052CBA3A7B9FCF46F318D30DD88DD988C9C16F5BB8823538A8DBC4830B00E7CE5346277E4DAD464128025955E7E5FD184C40EEC184B6143FC4720DA45C7DE3ED4849D6ABC89B1C01D6761660EA595B65E7F70457A32A4D63CCC6FC9736ABDDB9AE9FC8FB90388DAB7BD2189B38488B17DA76B96DAB6871475F59FC36BD53076293EBF9970A1081BA84E44A3A109F6B7231E64C1C54BF9AABD2320185DC054672B2F8F52172CD262F14CCA3237542F421A2413DF5E371DD4F1297E01D81E392A6C4F3BBABAA3091B2F10DB1C4A2C12B0DDDC279F7AD45992225ACA55ADA7CB6370B07B0CD5B935B8DF18BFFA2567EBF77658772D043318B6BA159DBD3AA48C7A509A1F887A05118CBE1470599C2683D9C00DAA5480A05FFDDF7612E6CFDA77CFC7 | 367 | 20181005025309 2 6 100 7679 5 FB0D9422C2C18ABC70FF186A01FA8ED40D4950F804266E0B9661F1E2A6EC548235ADF6A86C277AC391995CF5C43940D264D81121AE69F224E949221EDC039AFE2DA6752F6C04E10159FE65D54CBE5EF34174D36E069C4FB18C8E6DBB80B2C6E0F0AD82E0B7281B9D675AE9E85F509B12746130BF725235E2AC495D268C383378FA130AFF2584962A8A3EDEC0B02504DF264F77980B8342713A28BD3219D83F6D70CC1393E10D5A4734BC029FECD3383FF41CB73AC61C29B54B50E439807BFA5663814B6DA5E81B9491217BE616F6B5F93728669FEF51C06D049586FA6584DFBECD526C5CAE6BBD17F104FA69D353A01CD7E39D5BEA60EB0491DCAE78F3A42BFBCC1F366C55FB23B649197B2D2493180963388FBC4A2AC804ECD042A97A07943D46F18EB6D6C24FC050E3DBD8EE2C84FA03E34814EA53197F1121232E239AA0DA133BD81D439AB595FC6F895AB27D0C6C8A5C3F468C9EF81A42BCB7676C2FF4D381063700AEE81FB7369463187413077048310A98D2DC034CCAB7001A28E288B4E6A8DB609974EC9FFC75F6DA91203429ACCEBA35B4CC03006BB069BD2A062A8CAF59E200A8E27B0CD48F896AE6236F0208AE3924EDF58F87557D05413C00CCAD3B95E6F659EC73FDC6933D6D1E21BE753670F6725F21721FDDC304E6178A3164A85F6757A508AFBD9AA4F1C7B181866F5AA306A25032E59C042ACA8EAEDE17B5136ACEC3B56D2E73284922162E614BE0B87654B7B12132D15E6F11F23B0FF2D0A898680B9A66BB908106A60FFC9A0FB43FF3ADCECDB128764764E1D429A0A194ABCD5AB41CE6B75CD025AC8A5FF2153A20E937354A27E361FB396D87924DCF91FE72203BCEA88303DF0A848EA5ADA9282C2C3C2B92542F721C58809178F36E2DA00D17C613FA5173BFC0F27F9502A1AE535BA9D373ABF83413A8F086FE904B0B45F449CCA9F0615028E1A4878463EA8EB424CA76949EA34A6A36C8DDE6EC4A4AE653A2F1F1009773BB92B8D20530A3313F388FA1AD70C3ECB716E5CA80A06C35CBA247D15D41795F8E083B27B4E227B616408863AFAE48F4C4AE68F1DA9A4B427F666DAD85035D1A499B25A09CC19548A5B9276FB082AA8B00879CCE17105CE7368033F4A18D68826780EB79162AD1B7C70879041BA08FB4A45B3071951DD05EFC9FD04AFCB99D57AEFD4EC51549EF9A166312E744CC7EEAEE9543C02D1B2D233A4B59B187D6E1DB64C843358E8B3C73765DDDC9D79D2D270FF493F56BB4F2F0DC4002605999644FF2A573CBA98492AC8577F5C1A822FD0FB709EAD85C786292DCB4FC8FAD924EEE898502BCD84ED4023C7D74A691A7A3A812685C4641A155C7 |
368 | 20180427115833 2 6 100 8191 5 FAEE1044985A5E9005F621D69401F45F006C4AC70C849E5C17F3D28A22FE2C86DEF3780E73C15BC778C65638702E1DF6193E19C79BC8A9CEC1D64759E6E8E1B3754AAD1F82819BDB1F1E224F7D7BFF62061D89F6AE8D8EAF444A543333A4E71A4EBEE16AA9FEAE434FD965B90E6B57A198C12619CC31EF4F2BA3ACEA4C0D31EDD7BD715FE76FCD9282221F27F6CFD678ABC0458E4EDFBB72FB23333A3137C1C9AEB0AE4E5D98148527A5670311C0181861C1305901FF9704C64F88B75AD76574ABE3B5CEAAC2F675F5A56B807B2D9FFEDC975C7CFC6C697A18ED7F3D76C164FE108255F43971A3CCEE8FDC5E95F38B6ED8F8B150E17A7780E2D5CFD9A4D35BC4E2B3C3F4F286DC9DD0A8A53A22E643AD29753AAAB58E4C268A4145B1958050895F7FF5EB300FD0435824024F6DA4C38039A621D8E553493D964479DB2C1647C5123A9ED27955117CB966D41BAB3FA2F6AE1CE0E9787E3C815B1E3A3E3002B0BC54A89D66A3B532E8152BB0FD681D134374B4F2197F0B451E4C68C589E1F213D42CB62FC749D0883D9A68B39B93A1582F957AC989E5664266BB53BB8A07C84F662D5E3B4D4B277840A98B37F8A2CDF892085AF77A0AD370B2A4649F2381B7136AEB189421C6C801DC4F20273922A57C76DB4DB487DFC33DA2AC490C77E8ABA4AC719E6F0428A37ADBBE04F776199ACE29C1BC3B8A1F8E0D049628FDA016735559589D660FB23421D29745528E160F60B5D1923E685D0E04BE9DAC15C90BCAC4F4A7FD5CE52950734F2A849CAAB083DD18324EE82D1679146E60C290A97E2C94FBFEEDD88DE9EBEB346DF9E11AE14F4540A84F98B210E5366A03A82128986543C48FC3867431B2531AF99B379CE7E8D3105C574B0D4974295E98EFA2C01AC31C80CB1654BCEFA8467A55BC7B55ADB92DC1BE438006E5392ED521B5817558DE5E38172D023E3236EEAE34037E92EA61D6DA463212E012E603709D65EBE8062644A17B1A00FF5DE6E42FD4B3812DACC8C85754616A5539AB60FEF0F9170413E94D3052CBA3A7B9FCF46F318D30DD88DD988C9C16F5BB8823538A8DBC4830B00E7CE5346277E4DAD464128025955E7E5FD184C40EEC184B6143FC4720DA45C7DE3ED4849D6ABC89B1C01D6761660EA595B65E7F70457A32A4D63CCC6FC9736ABDDB9AE9FC8FB90388DAB7BD2189B38488B17DA76B96DAB6871475F59FC36BD53076293EBF9970A1081BA84E44A3A109F6B7231E64C1C54BF9AABD2320185DC054672B2F8F52172CD262F14CCA3237542F421A2413DF5E371DD4F1297E01D81E392A6C4F3BBABAA3091B2F10DB1C4A2C12B0DDDC279F7AD45992225ACA55ADA7CB6370B07B0CD5B935B8DF18BFFA2567EBF77658772D043318B6BA159DBD3AA48C7A509A1F887A05118CBE1470599C2683D9C00DAA5480A05FFDDF7612E6CFDB032A8F | 368 | 20181005044622 2 6 100 7679 2 FB0D9422C2C18ABC70FF186A01FA8ED40D4950F804266E0B9661F1E2A6EC548235ADF6A86C277AC391995CF5C43940D264D81121AE69F224E949221EDC039AFE2DA6752F6C04E10159FE65D54CBE5EF34174D36E069C4FB18C8E6DBB80B2C6E0F0AD82E0B7281B9D675AE9E85F509B12746130BF725235E2AC495D268C383378FA130AFF2584962A8A3EDEC0B02504DF264F77980B8342713A28BD3219D83F6D70CC1393E10D5A4734BC029FECD3383FF41CB73AC61C29B54B50E439807BFA5663814B6DA5E81B9491217BE616F6B5F93728669FEF51C06D049586FA6584DFBECD526C5CAE6BBD17F104FA69D353A01CD7E39D5BEA60EB0491DCAE78F3A42BFBCC1F366C55FB23B649197B2D2493180963388FBC4A2AC804ECD042A97A07943D46F18EB6D6C24FC050E3DBD8EE2C84FA03E34814EA53197F1121232E239AA0DA133BD81D439AB595FC6F895AB27D0C6C8A5C3F468C9EF81A42BCB7676C2FF4D381063700AEE81FB7369463187413077048310A98D2DC034CCAB7001A28E288B4E6A8DB609974EC9FFC75F6DA91203429ACCEBA35B4CC03006BB069BD2A062A8CAF59E200A8E27B0CD48F896AE6236F0208AE3924EDF58F87557D05413C00CCAD3B95E6F659EC73FDC6933D6D1E21BE753670F6725F21721FDDC304E6178A3164A85F6757A508AFBD9AA4F1C7B181866F5AA306A25032E59C042ACA8EAEDE17B5136ACEC3B56D2E73284922162E614BE0B87654B7B12132D15E6F11F23B0FF2D0A898680B9A66BB908106A60FFC9A0FB43FF3ADCECDB128764764E1D429A0A194ABCD5AB41CE6B75CD025AC8A5FF2153A20E937354A27E361FB396D87924DCF91FE72203BCEA88303DF0A848EA5ADA9282C2C3C2B92542F721C58809178F36E2DA00D17C613FA5173BFC0F27F9502A1AE535BA9D373ABF83413A8F086FE904B0B45F449CCA9F0615028E1A4878463EA8EB424CA76949EA34A6A36C8DDE6EC4A4AE653A2F1F1009773BB92B8D20530A3313F388FA1AD70C3ECB716E5CA80A06C35CBA247D15D41795F8E083B27B4E227B616408863AFAE48F4C4AE68F1DA9A4B427F666DAD85035D1A499B25A09CC19548A5B9276FB082AA8B00879CCE17105CE7368033F4A18D68826780EB79162AD1B7C70879041BA08FB4A45B3071951DD05EFC9FD04AFCB99D57AEFD4EC51549EF9A166312E744CC7EEAEE9543C02D1B2D233A4B59B187D6E1DB64C843358E8B3C73765DDDC9D79D2D270FF493F56BB4F2F0DC4002605999644FF2A573CBA98492AC8577F5C1A822FD0FB709EAD85C786292DCB4FC8FAD924EEE898502BCD84ED4023C7D74A691A7A3A812685C46430AFEB3 |
369 | 20180427231209 2 6 100 8191 5 FAEE1044985A5E9005F621D69401F45F006C4AC70C849E5C17F3D28A22FE2C86DEF3780E73C15BC778C65638702E1DF6193E19C79BC8A9CEC1D64759E6E8E1B3754AAD1F82819BDB1F1E224F7D7BFF62061D89F6AE8D8EAF444A543333A4E71A4EBEE16AA9FEAE434FD965B90E6B57A198C12619CC31EF4F2BA3ACEA4C0D31EDD7BD715FE76FCD9282221F27F6CFD678ABC0458E4EDFBB72FB23333A3137C1C9AEB0AE4E5D98148527A5670311C0181861C1305901FF9704C64F88B75AD76574ABE3B5CEAAC2F675F5A56B807B2D9FFEDC975C7CFC6C697A18ED7F3D76C164FE108255F43971A3CCEE8FDC5E95F38B6ED8F8B150E17A7780E2D5CFD9A4D35BC4E2B3C3F4F286DC9DD0A8A53A22E643AD29753AAAB58E4C268A4145B1958050895F7FF5EB300FD0435824024F6DA4C38039A621D8E553493D964479DB2C1647C5123A9ED27955117CB966D41BAB3FA2F6AE1CE0E9787E3C815B1E3A3E3002B0BC54A89D66A3B532E8152BB0FD681D134374B4F2197F0B451E4C68C589E1F213D42CB62FC749D0883D9A68B39B93A1582F957AC989E5664266BB53BB8A07C84F662D5E3B4D4B277840A98B37F8A2CDF892085AF77A0AD370B2A4649F2381B7136AEB189421C6C801DC4F20273922A57C76DB4DB487DFC33DA2AC490C77E8ABA4AC719E6F0428A37ADBBE04F776199ACE29C1BC3B8A1F8E0D049628FDA016735559589D660FB23421D29745528E160F60B5D1923E685D0E04BE9DAC15C90BCAC4F4A7FD5CE52950734F2A849CAAB083DD18324EE82D1679146E60C290A97E2C94FBFEEDD88DE9EBEB346DF9E11AE14F4540A84F98B210E5366A03A82128986543C48FC3867431B2531AF99B379CE7E8D3105C574B0D4974295E98EFA2C01AC31C80CB1654BCEFA8467A55BC7B55ADB92DC1BE438006E5392ED521B5817558DE5E38172D023E3236EEAE34037E92EA61D6DA463212E012E603709D65EBE8062644A17B1A00FF5DE6E42FD4B3812DACC8C85754616A5539AB60FEF0F9170413E94D3052CBA3A7B9FCF46F318D30DD88DD988C9C16F5BB8823538A8DBC4830B00E7CE5346277E4DAD464128025955E7E5FD184C40EEC184B6143FC4720DA45C7DE3ED4849D6ABC89B1C01D6761660EA595B65E7F70457A32A4D63CCC6FC9736ABDDB9AE9FC8FB90388DAB7BD2189B38488B17DA76B96DAB6871475F59FC36BD53076293EBF9970A1081BA84E44A3A109F6B7231E64C1C54BF9AABD2320185DC054672B2F8F52172CD262F14CCA3237542F421A2413DF5E371DD4F1297E01D81E392A6C4F3BBABAA3091B2F10DB1C4A2C12B0DDDC279F7AD45992225ACA55ADA7CB6370B07B0CD5B935B8DF18BFFA2567EBF77658772D043318B6BA159DBD3AA48C7A509A1F887A05118CBE1470599C2683D9C00DAA5480A05FFDDF7612E6CFE24BAFE7 | 369 | 20181005053156 2 6 100 7679 2 FB0D9422C2C18ABC70FF186A01FA8ED40D4950F804266E0B9661F1E2A6EC548235ADF6A86C277AC391995CF5C43940D264D81121AE69F224E949221EDC039AFE2DA6752F6C04E10159FE65D54CBE5EF34174D36E069C4FB18C8E6DBB80B2C6E0F0AD82E0B7281B9D675AE9E85F509B12746130BF725235E2AC495D268C383378FA130AFF2584962A8A3EDEC0B02504DF264F77980B8342713A28BD3219D83F6D70CC1393E10D5A4734BC029FECD3383FF41CB73AC61C29B54B50E439807BFA5663814B6DA5E81B9491217BE616F6B5F93728669FEF51C06D049586FA6584DFBECD526C5CAE6BBD17F104FA69D353A01CD7E39D5BEA60EB0491DCAE78F3A42BFBCC1F366C55FB23B649197B2D2493180963388FBC4A2AC804ECD042A97A07943D46F18EB6D6C24FC050E3DBD8EE2C84FA03E34814EA53197F1121232E239AA0DA133BD81D439AB595FC6F895AB27D0C6C8A5C3F468C9EF81A42BCB7676C2FF4D381063700AEE81FB7369463187413077048310A98D2DC034CCAB7001A28E288B4E6A8DB609974EC9FFC75F6DA91203429ACCEBA35B4CC03006BB069BD2A062A8CAF59E200A8E27B0CD48F896AE6236F0208AE3924EDF58F87557D05413C00CCAD3B95E6F659EC73FDC6933D6D1E21BE753670F6725F21721FDDC304E6178A3164A85F6757A508AFBD9AA4F1C7B181866F5AA306A25032E59C042ACA8EAEDE17B5136ACEC3B56D2E73284922162E614BE0B87654B7B12132D15E6F11F23B0FF2D0A898680B9A66BB908106A60FFC9A0FB43FF3ADCECDB128764764E1D429A0A194ABCD5AB41CE6B75CD025AC8A5FF2153A20E937354A27E361FB396D87924DCF91FE72203BCEA88303DF0A848EA5ADA9282C2C3C2B92542F721C58809178F36E2DA00D17C613FA5173BFC0F27F9502A1AE535BA9D373ABF83413A8F086FE904B0B45F449CCA9F0615028E1A4878463EA8EB424CA76949EA34A6A36C8DDE6EC4A4AE653A2F1F1009773BB92B8D20530A3313F388FA1AD70C3ECB716E5CA80A06C35CBA247D15D41795F8E083B27B4E227B616408863AFAE48F4C4AE68F1DA9A4B427F666DAD85035D1A499B25A09CC19548A5B9276FB082AA8B00879CCE17105CE7368033F4A18D68826780EB79162AD1B7C70879041BA08FB4A45B3071951DD05EFC9FD04AFCB99D57AEFD4EC51549EF9A166312E744CC7EEAEE9543C02D1B2D233A4B59B187D6E1DB64C843358E8B3C73765DDDC9D79D2D270FF493F56BB4F2F0DC4002605999644FF2A573CBA98492AC8577F5C1A822FD0FB709EAD85C786292DCB4FC8FAD924EEE898502BCD84ED4023C7D74A691A7A3A812685C464390BAB3 |
370 | 20180428032748 2 6 100 8191 2 FAEE1044985A5E9005F621D69401F45F006C4AC70C849E5C17F3D28A22FE2C86DEF3780E73C15BC778C65638702E1DF6193E19C79BC8A9CEC1D64759E6E8E1B3754AAD1F82819BDB1F1E224F7D7BFF62061D89F6AE8D8EAF444A543333A4E71A4EBEE16AA9FEAE434FD965B90E6B57A198C12619CC31EF4F2BA3ACEA4C0D31EDD7BD715FE76FCD9282221F27F6CFD678ABC0458E4EDFBB72FB23333A3137C1C9AEB0AE4E5D98148527A5670311C0181861C1305901FF9704C64F88B75AD76574ABE3B5CEAAC2F675F5A56B807B2D9FFEDC975C7CFC6C697A18ED7F3D76C164FE108255F43971A3CCEE8FDC5E95F38B6ED8F8B150E17A7780E2D5CFD9A4D35BC4E2B3C3F4F286DC9DD0A8A53A22E643AD29753AAAB58E4C268A4145B1958050895F7FF5EB300FD0435824024F6DA4C38039A621D8E553493D964479DB2C1647C5123A9ED27955117CB966D41BAB3FA2F6AE1CE0E9787E3C815B1E3A3E3002B0BC54A89D66A3B532E8152BB0FD681D134374B4F2197F0B451E4C68C589E1F213D42CB62FC749D0883D9A68B39B93A1582F957AC989E5664266BB53BB8A07C84F662D5E3B4D4B277840A98B37F8A2CDF892085AF77A0AD370B2A4649F2381B7136AEB189421C6C801DC4F20273922A57C76DB4DB487DFC33DA2AC490C77E8ABA4AC719E6F0428A37ADBBE04F776199ACE29C1BC3B8A1F8E0D049628FDA016735559589D660FB23421D29745528E160F60B5D1923E685D0E04BE9DAC15C90BCAC4F4A7FD5CE52950734F2A849CAAB083DD18324EE82D1679146E60C290A97E2C94FBFEEDD88DE9EBEB346DF9E11AE14F4540A84F98B210E5366A03A82128986543C48FC3867431B2531AF99B379CE7E8D3105C574B0D4974295E98EFA2C01AC31C80CB1654BCEFA8467A55BC7B55ADB92DC1BE438006E5392ED521B5817558DE5E38172D023E3236EEAE34037E92EA61D6DA463212E012E603709D65EBE8062644A17B1A00FF5DE6E42FD4B3812DACC8C85754616A5539AB60FEF0F9170413E94D3052CBA3A7B9FCF46F318D30DD88DD988C9C16F5BB8823538A8DBC4830B00E7CE5346277E4DAD464128025955E7E5FD184C40EEC184B6143FC4720DA45C7DE3ED4849D6ABC89B1C01D6761660EA595B65E7F70457A32A4D63CCC6FC9736ABDDB9AE9FC8FB90388DAB7BD2189B38488B17DA76B96DAB6871475F59FC36BD53076293EBF9970A1081BA84E44A3A109F6B7231E64C1C54BF9AABD2320185DC054672B2F8F52172CD262F14CCA3237542F421A2413DF5E371DD4F1297E01D81E392A6C4F3BBABAA3091B2F10DB1C4A2C12B0DDDC279F7AD45992225ACA55ADA7CB6370B07B0CD5B935B8DF18BFFA2567EBF77658772D043318B6BA159DBD3AA48C7A509A1F887A05118CBE1470599C2683D9C00DAA5480A05FFDDF7612E6CFE509AE73 | 370 | 20181005074342 2 6 100 7679 2 FB0D9422C2C18ABC70FF186A01FA8ED40D4950F804266E0B9661F1E2A6EC548235ADF6A86C277AC391995CF5C43940D264D81121AE69F224E949221EDC039AFE2DA6752F6C04E10159FE65D54CBE5EF34174D36E069C4FB18C8E6DBB80B2C6E0F0AD82E0B7281B9D675AE9E85F509B12746130BF725235E2AC495D268C383378FA130AFF2584962A8A3EDEC0B02504DF264F77980B8342713A28BD3219D83F6D70CC1393E10D5A4734BC029FECD3383FF41CB73AC61C29B54B50E439807BFA5663814B6DA5E81B9491217BE616F6B5F93728669FEF51C06D049586FA6584DFBECD526C5CAE6BBD17F104FA69D353A01CD7E39D5BEA60EB0491DCAE78F3A42BFBCC1F366C55FB23B649197B2D2493180963388FBC4A2AC804ECD042A97A07943D46F18EB6D6C24FC050E3DBD8EE2C84FA03E34814EA53197F1121232E239AA0DA133BD81D439AB595FC6F895AB27D0C6C8A5C3F468C9EF81A42BCB7676C2FF4D381063700AEE81FB7369463187413077048310A98D2DC034CCAB7001A28E288B4E6A8DB609974EC9FFC75F6DA91203429ACCEBA35B4CC03006BB069BD2A062A8CAF59E200A8E27B0CD48F896AE6236F0208AE3924EDF58F87557D05413C00CCAD3B95E6F659EC73FDC6933D6D1E21BE753670F6725F21721FDDC304E6178A3164A85F6757A508AFBD9AA4F1C7B181866F5AA306A25032E59C042ACA8EAEDE17B5136ACEC3B56D2E73284922162E614BE0B87654B7B12132D15E6F11F23B0FF2D0A898680B9A66BB908106A60FFC9A0FB43FF3ADCECDB128764764E1D429A0A194ABCD5AB41CE6B75CD025AC8A5FF2153A20E937354A27E361FB396D87924DCF91FE72203BCEA88303DF0A848EA5ADA9282C2C3C2B92542F721C58809178F36E2DA00D17C613FA5173BFC0F27F9502A1AE535BA9D373ABF83413A8F086FE904B0B45F449CCA9F0615028E1A4878463EA8EB424CA76949EA34A6A36C8DDE6EC4A4AE653A2F1F1009773BB92B8D20530A3313F388FA1AD70C3ECB716E5CA80A06C35CBA247D15D41795F8E083B27B4E227B616408863AFAE48F4C4AE68F1DA9A4B427F666DAD85035D1A499B25A09CC19548A5B9276FB082AA8B00879CCE17105CE7368033F4A18D68826780EB79162AD1B7C70879041BA08FB4A45B3071951DD05EFC9FD04AFCB99D57AEFD4EC51549EF9A166312E744CC7EEAEE9543C02D1B2D233A4B59B187D6E1DB64C843358E8B3C73765DDDC9D79D2D270FF493F56BB4F2F0DC4002605999644FF2A573CBA98492AC8577F5C1A822FD0FB709EAD85C786292DCB4FC8FAD924EEE898502BCD84ED4023C7D74A691A7A3A812685C464535BB4B |
371 | 20180428050334 2 6 100 8191 2 FAEE1044985A5E9005F621D69401F45F006C4AC70C849E5C17F3D28A22FE2C86DEF3780E73C15BC778C65638702E1DF6193E19C79BC8A9CEC1D64759E6E8E1B3754AAD1F82819BDB1F1E224F7D7BFF62061D89F6AE8D8EAF444A543333A4E71A4EBEE16AA9FEAE434FD965B90E6B57A198C12619CC31EF4F2BA3ACEA4C0D31EDD7BD715FE76FCD9282221F27F6CFD678ABC0458E4EDFBB72FB23333A3137C1C9AEB0AE4E5D98148527A5670311C0181861C1305901FF9704C64F88B75AD76574ABE3B5CEAAC2F675F5A56B807B2D9FFEDC975C7CFC6C697A18ED7F3D76C164FE108255F43971A3CCEE8FDC5E95F38B6ED8F8B150E17A7780E2D5CFD9A4D35BC4E2B3C3F4F286DC9DD0A8A53A22E643AD29753AAAB58E4C268A4145B1958050895F7FF5EB300FD0435824024F6DA4C38039A621D8E553493D964479DB2C1647C5123A9ED27955117CB966D41BAB3FA2F6AE1CE0E9787E3C815B1E3A3E3002B0BC54A89D66A3B532E8152BB0FD681D134374B4F2197F0B451E4C68C589E1F213D42CB62FC749D0883D9A68B39B93A1582F957AC989E5664266BB53BB8A07C84F662D5E3B4D4B277840A98B37F8A2CDF892085AF77A0AD370B2A4649F2381B7136AEB189421C6C801DC4F20273922A57C76DB4DB487DFC33DA2AC490C77E8ABA4AC719E6F0428A37ADBBE04F776199ACE29C1BC3B8A1F8E0D049628FDA016735559589D660FB23421D29745528E160F60B5D1923E685D0E04BE9DAC15C90BCAC4F4A7FD5CE52950734F2A849CAAB083DD18324EE82D1679146E60C290A97E2C94FBFEEDD88DE9EBEB346DF9E11AE14F4540A84F98B210E5366A03A82128986543C48FC3867431B2531AF99B379CE7E8D3105C574B0D4974295E98EFA2C01AC31C80CB1654BCEFA8467A55BC7B55ADB92DC1BE438006E5392ED521B5817558DE5E38172D023E3236EEAE34037E92EA61D6DA463212E012E603709D65EBE8062644A17B1A00FF5DE6E42FD4B3812DACC8C85754616A5539AB60FEF0F9170413E94D3052CBA3A7B9FCF46F318D30DD88DD988C9C16F5BB8823538A8DBC4830B00E7CE5346277E4DAD464128025955E7E5FD184C40EEC184B6143FC4720DA45C7DE3ED4849D6ABC89B1C01D6761660EA595B65E7F70457A32A4D63CCC6FC9736ABDDB9AE9FC8FB90388DAB7BD2189B38488B17DA76B96DAB6871475F59FC36BD53076293EBF9970A1081BA84E44A3A109F6B7231E64C1C54BF9AABD2320185DC054672B2F8F52172CD262F14CCA3237542F421A2413DF5E371DD4F1297E01D81E392A6C4F3BBABAA3091B2F10DB1C4A2C12B0DDDC279F7AD45992225ACA55ADA7CB6370B07B0CD5B935B8DF18BFFA2567EBF77658772D043318B6BA159DBD3AA48C7A509A1F887A05118CBE1470599C2683D9C00DAA5480A05FFDDF7612E6CFE60622B3 | 371 | 20181005094350 2 6 100 7679 5 FB0D9422C2C18ABC70FF186A01FA8ED40D4950F804266E0B9661F1E2A6EC548235ADF6A86C277AC391995CF5C43940D264D81121AE69F224E949221EDC039AFE2DA6752F6C04E10159FE65D54CBE5EF34174D36E069C4FB18C8E6DBB80B2C6E0F0AD82E0B7281B9D675AE9E85F509B12746130BF725235E2AC495D268C383378FA130AFF2584962A8A3EDEC0B02504DF264F77980B8342713A28BD3219D83F6D70CC1393E10D5A4734BC029FECD3383FF41CB73AC61C29B54B50E439807BFA5663814B6DA5E81B9491217BE616F6B5F93728669FEF51C06D049586FA6584DFBECD526C5CAE6BBD17F104FA69D353A01CD7E39D5BEA60EB0491DCAE78F3A42BFBCC1F366C55FB23B649197B2D2493180963388FBC4A2AC804ECD042A97A07943D46F18EB6D6C24FC050E3DBD8EE2C84FA03E34814EA53197F1121232E239AA0DA133BD81D439AB595FC6F895AB27D0C6C8A5C3F468C9EF81A42BCB7676C2FF4D381063700AEE81FB7369463187413077048310A98D2DC034CCAB7001A28E288B4E6A8DB609974EC9FFC75F6DA91203429ACCEBA35B4CC03006BB069BD2A062A8CAF59E200A8E27B0CD48F896AE6236F0208AE3924EDF58F87557D05413C00CCAD3B95E6F659EC73FDC6933D6D1E21BE753670F6725F21721FDDC304E6178A3164A85F6757A508AFBD9AA4F1C7B181866F5AA306A25032E59C042ACA8EAEDE17B5136ACEC3B56D2E73284922162E614BE0B87654B7B12132D15E6F11F23B0FF2D0A898680B9A66BB908106A60FFC9A0FB43FF3ADCECDB128764764E1D429A0A194ABCD5AB41CE6B75CD025AC8A5FF2153A20E937354A27E361FB396D87924DCF91FE72203BCEA88303DF0A848EA5ADA9282C2C3C2B92542F721C58809178F36E2DA00D17C613FA5173BFC0F27F9502A1AE535BA9D373ABF83413A8F086FE904B0B45F449CCA9F0615028E1A4878463EA8EB424CA76949EA34A6A36C8DDE6EC4A4AE653A2F1F1009773BB92B8D20530A3313F388FA1AD70C3ECB716E5CA80A06C35CBA247D15D41795F8E083B27B4E227B616408863AFAE48F4C4AE68F1DA9A4B427F666DAD85035D1A499B25A09CC19548A5B9276FB082AA8B00879CCE17105CE7368033F4A18D68826780EB79162AD1B7C70879041BA08FB4A45B3071951DD05EFC9FD04AFCB99D57AEFD4EC51549EF9A166312E744CC7EEAEE9543C02D1B2D233A4B59B187D6E1DB64C843358E8B3C73765DDDC9D79D2D270FF493F56BB4F2F0DC4002605999644FF2A573CBA98492AC8577F5C1A822FD0FB709EAD85C786292DCB4FC8FAD924EEE898502BCD84ED4023C7D74A691A7A3A812685C4646B220EF |
372 | 20180428204832 2 6 100 8191 5 FAEE1044985A5E9005F621D69401F45F006C4AC70C849E5C17F3D28A22FE2C86DEF3780E73C15BC778C65638702E1DF6193E19C79BC8A9CEC1D64759E6E8E1B3754AAD1F82819BDB1F1E224F7D7BFF62061D89F6AE8D8EAF444A543333A4E71A4EBEE16AA9FEAE434FD965B90E6B57A198C12619CC31EF4F2BA3ACEA4C0D31EDD7BD715FE76FCD9282221F27F6CFD678ABC0458E4EDFBB72FB23333A3137C1C9AEB0AE4E5D98148527A5670311C0181861C1305901FF9704C64F88B75AD76574ABE3B5CEAAC2F675F5A56B807B2D9FFEDC975C7CFC6C697A18ED7F3D76C164FE108255F43971A3CCEE8FDC5E95F38B6ED8F8B150E17A7780E2D5CFD9A4D35BC4E2B3C3F4F286DC9DD0A8A53A22E643AD29753AAAB58E4C268A4145B1958050895F7FF5EB300FD0435824024F6DA4C38039A621D8E553493D964479DB2C1647C5123A9ED27955117CB966D41BAB3FA2F6AE1CE0E9787E3C815B1E3A3E3002B0BC54A89D66A3B532E8152BB0FD681D134374B4F2197F0B451E4C68C589E1F213D42CB62FC749D0883D9A68B39B93A1582F957AC989E5664266BB53BB8A07C84F662D5E3B4D4B277840A98B37F8A2CDF892085AF77A0AD370B2A4649F2381B7136AEB189421C6C801DC4F20273922A57C76DB4DB487DFC33DA2AC490C77E8ABA4AC719E6F0428A37ADBBE04F776199ACE29C1BC3B8A1F8E0D049628FDA016735559589D660FB23421D29745528E160F60B5D1923E685D0E04BE9DAC15C90BCAC4F4A7FD5CE52950734F2A849CAAB083DD18324EE82D1679146E60C290A97E2C94FBFEEDD88DE9EBEB346DF9E11AE14F4540A84F98B210E5366A03A82128986543C48FC3867431B2531AF99B379CE7E8D3105C574B0D4974295E98EFA2C01AC31C80CB1654BCEFA8467A55BC7B55ADB92DC1BE438006E5392ED521B5817558DE5E38172D023E3236EEAE34037E92EA61D6DA463212E012E603709D65EBE8062644A17B1A00FF5DE6E42FD4B3812DACC8C85754616A5539AB60FEF0F9170413E94D3052CBA3A7B9FCF46F318D30DD88DD988C9C16F5BB8823538A8DBC4830B00E7CE5346277E4DAD464128025955E7E5FD184C40EEC184B6143FC4720DA45C7DE3ED4849D6ABC89B1C01D6761660EA595B65E7F70457A32A4D63CCC6FC9736ABDDB9AE9FC8FB90388DAB7BD2189B38488B17DA76B96DAB6871475F59FC36BD53076293EBF9970A1081BA84E44A3A109F6B7231E64C1C54BF9AABD2320185DC054672B2F8F52172CD262F14CCA3237542F421A2413DF5E371DD4F1297E01D81E392A6C4F3BBABAA3091B2F10DB1C4A2C12B0DDDC279F7AD45992225ACA55ADA7CB6370B07B0CD5B935B8DF18BFFA2567EBF77658772D043318B6BA159DBD3AA48C7A509A1F887A05118CBE1470599C2683D9C00DAA5480A05FFDDF7612E6CFF035C75F | 372 | 20181005154803 2 6 100 7679 2 FB0D9422C2C18ABC70FF186A01FA8ED40D4950F804266E0B9661F1E2A6EC548235ADF6A86C277AC391995CF5C43940D264D81121AE69F224E949221EDC039AFE2DA6752F6C04E10159FE65D54CBE5EF34174D36E069C4FB18C8E6DBB80B2C6E0F0AD82E0B7281B9D675AE9E85F509B12746130BF725235E2AC495D268C383378FA130AFF2584962A8A3EDEC0B02504DF264F77980B8342713A28BD3219D83F6D70CC1393E10D5A4734BC029FECD3383FF41CB73AC61C29B54B50E439807BFA5663814B6DA5E81B9491217BE616F6B5F93728669FEF51C06D049586FA6584DFBECD526C5CAE6BBD17F104FA69D353A01CD7E39D5BEA60EB0491DCAE78F3A42BFBCC1F366C55FB23B649197B2D2493180963388FBC4A2AC804ECD042A97A07943D46F18EB6D6C24FC050E3DBD8EE2C84FA03E34814EA53197F1121232E239AA0DA133BD81D439AB595FC6F895AB27D0C6C8A5C3F468C9EF81A42BCB7676C2FF4D381063700AEE81FB7369463187413077048310A98D2DC034CCAB7001A28E288B4E6A8DB609974EC9FFC75F6DA91203429ACCEBA35B4CC03006BB069BD2A062A8CAF59E200A8E27B0CD48F896AE6236F0208AE3924EDF58F87557D05413C00CCAD3B95E6F659EC73FDC6933D6D1E21BE753670F6725F21721FDDC304E6178A3164A85F6757A508AFBD9AA4F1C7B181866F5AA306A25032E59C042ACA8EAEDE17B5136ACEC3B56D2E73284922162E614BE0B87654B7B12132D15E6F11F23B0FF2D0A898680B9A66BB908106A60FFC9A0FB43FF3ADCECDB128764764E1D429A0A194ABCD5AB41CE6B75CD025AC8A5FF2153A20E937354A27E361FB396D87924DCF91FE72203BCEA88303DF0A848EA5ADA9282C2C3C2B92542F721C58809178F36E2DA00D17C613FA5173BFC0F27F9502A1AE535BA9D373ABF83413A8F086FE904B0B45F449CCA9F0615028E1A4878463EA8EB424CA76949EA34A6A36C8DDE6EC4A4AE653A2F1F1009773BB92B8D20530A3313F388FA1AD70C3ECB716E5CA80A06C35CBA247D15D41795F8E083B27B4E227B616408863AFAE48F4C4AE68F1DA9A4B427F666DAD85035D1A499B25A09CC19548A5B9276FB082AA8B00879CCE17105CE7368033F4A18D68826780EB79162AD1B7C70879041BA08FB4A45B3071951DD05EFC9FD04AFCB99D57AEFD4EC51549EF9A166312E744CC7EEAEE9543C02D1B2D233A4B59B187D6E1DB64C843358E8B3C73765DDDC9D79D2D270FF493F56BB4F2F0DC4002605999644FF2A573CBA98492AC8577F5C1A822FD0FB709EAD85C786292DCB4FC8FAD924EEE898502BCD84ED4023C7D74A691A7A3A812685C464B3844E3 |
373 | 20180428220506 2 6 100 8191 2 FAEE1044985A5E9005F621D69401F45F006C4AC70C849E5C17F3D28A22FE2C86DEF3780E73C15BC778C65638702E1DF6193E19C79BC8A9CEC1D64759E6E8E1B3754AAD1F82819BDB1F1E224F7D7BFF62061D89F6AE8D8EAF444A543333A4E71A4EBEE16AA9FEAE434FD965B90E6B57A198C12619CC31EF4F2BA3ACEA4C0D31EDD7BD715FE76FCD9282221F27F6CFD678ABC0458E4EDFBB72FB23333A3137C1C9AEB0AE4E5D98148527A5670311C0181861C1305901FF9704C64F88B75AD76574ABE3B5CEAAC2F675F5A56B807B2D9FFEDC975C7CFC6C697A18ED7F3D76C164FE108255F43971A3CCEE8FDC5E95F38B6ED8F8B150E17A7780E2D5CFD9A4D35BC4E2B3C3F4F286DC9DD0A8A53A22E643AD29753AAAB58E4C268A4145B1958050895F7FF5EB300FD0435824024F6DA4C38039A621D8E553493D964479DB2C1647C5123A9ED27955117CB966D41BAB3FA2F6AE1CE0E9787E3C815B1E3A3E3002B0BC54A89D66A3B532E8152BB0FD681D134374B4F2197F0B451E4C68C589E1F213D42CB62FC749D0883D9A68B39B93A1582F957AC989E5664266BB53BB8A07C84F662D5E3B4D4B277840A98B37F8A2CDF892085AF77A0AD370B2A4649F2381B7136AEB189421C6C801DC4F20273922A57C76DB4DB487DFC33DA2AC490C77E8ABA4AC719E6F0428A37ADBBE04F776199ACE29C1BC3B8A1F8E0D049628FDA016735559589D660FB23421D29745528E160F60B5D1923E685D0E04BE9DAC15C90BCAC4F4A7FD5CE52950734F2A849CAAB083DD18324EE82D1679146E60C290A97E2C94FBFEEDD88DE9EBEB346DF9E11AE14F4540A84F98B210E5366A03A82128986543C48FC3867431B2531AF99B379CE7E8D3105C574B0D4974295E98EFA2C01AC31C80CB1654BCEFA8467A55BC7B55ADB92DC1BE438006E5392ED521B5817558DE5E38172D023E3236EEAE34037E92EA61D6DA463212E012E603709D65EBE8062644A17B1A00FF5DE6E42FD4B3812DACC8C85754616A5539AB60FEF0F9170413E94D3052CBA3A7B9FCF46F318D30DD88DD988C9C16F5BB8823538A8DBC4830B00E7CE5346277E4DAD464128025955E7E5FD184C40EEC184B6143FC4720DA45C7DE3ED4849D6ABC89B1C01D6761660EA595B65E7F70457A32A4D63CCC6FC9736ABDDB9AE9FC8FB90388DAB7BD2189B38488B17DA76B96DAB6871475F59FC36BD53076293EBF9970A1081BA84E44A3A109F6B7231E64C1C54BF9AABD2320185DC054672B2F8F52172CD262F14CCA3237542F421A2413DF5E371DD4F1297E01D81E392A6C4F3BBABAA3091B2F10DB1C4A2C12B0DDDC279F7AD45992225ACA55ADA7CB6370B07B0CD5B935B8DF18BFFA2567EBF77658772D043318B6BA159DBD3AA48C7A509A1F887A05118CBE1470599C2683D9C00DAA5480A05FFDDF7612E6CFF0FF9743 | 373 | 20181005164416 2 6 100 7679 5 FB0D9422C2C18ABC70FF186A01FA8ED40D4950F804266E0B9661F1E2A6EC548235ADF6A86C277AC391995CF5C43940D264D81121AE69F224E949221EDC039AFE2DA6752F6C04E10159FE65D54CBE5EF34174D36E069C4FB18C8E6DBB80B2C6E0F0AD82E0B7281B9D675AE9E85F509B12746130BF725235E2AC495D268C383378FA130AFF2584962A8A3EDEC0B02504DF264F77980B8342713A28BD3219D83F6D70CC1393E10D5A4734BC029FECD3383FF41CB73AC61C29B54B50E439807BFA5663814B6DA5E81B9491217BE616F6B5F93728669FEF51C06D049586FA6584DFBECD526C5CAE6BBD17F104FA69D353A01CD7E39D5BEA60EB0491DCAE78F3A42BFBCC1F366C55FB23B649197B2D2493180963388FBC4A2AC804ECD042A97A07943D46F18EB6D6C24FC050E3DBD8EE2C84FA03E34814EA53197F1121232E239AA0DA133BD81D439AB595FC6F895AB27D0C6C8A5C3F468C9EF81A42BCB7676C2FF4D381063700AEE81FB7369463187413077048310A98D2DC034CCAB7001A28E288B4E6A8DB609974EC9FFC75F6DA91203429ACCEBA35B4CC03006BB069BD2A062A8CAF59E200A8E27B0CD48F896AE6236F0208AE3924EDF58F87557D05413C00CCAD3B95E6F659EC73FDC6933D6D1E21BE753670F6725F21721FDDC304E6178A3164A85F6757A508AFBD9AA4F1C7B181866F5AA306A25032E59C042ACA8EAEDE17B5136ACEC3B56D2E73284922162E614BE0B87654B7B12132D15E6F11F23B0FF2D0A898680B9A66BB908106A60FFC9A0FB43FF3ADCECDB128764764E1D429A0A194ABCD5AB41CE6B75CD025AC8A5FF2153A20E937354A27E361FB396D87924DCF91FE72203BCEA88303DF0A848EA5ADA9282C2C3C2B92542F721C58809178F36E2DA00D17C613FA5173BFC0F27F9502A1AE535BA9D373ABF83413A8F086FE904B0B45F449CCA9F0615028E1A4878463EA8EB424CA76949EA34A6A36C8DDE6EC4A4AE653A2F1F1009773BB92B8D20530A3313F388FA1AD70C3ECB716E5CA80A06C35CBA247D15D41795F8E083B27B4E227B616408863AFAE48F4C4AE68F1DA9A4B427F666DAD85035D1A499B25A09CC19548A5B9276FB082AA8B00879CCE17105CE7368033F4A18D68826780EB79162AD1B7C70879041BA08FB4A45B3071951DD05EFC9FD04AFCB99D57AEFD4EC51549EF9A166312E744CC7EEAEE9543C02D1B2D233A4B59B187D6E1DB64C843358E8B3C73765DDDC9D79D2D270FF493F56BB4F2F0DC4002605999644FF2A573CBA98492AC8577F5C1A822FD0FB709EAD85C786292DCB4FC8FAD924EEE898502BCD84ED4023C7D74A691A7A3A812685C464BE2332F |
374 | 20180428221212 2 6 100 8191 5 FAEE1044985A5E9005F621D69401F45F006C4AC70C849E5C17F3D28A22FE2C86DEF3780E73C15BC778C65638702E1DF6193E19C79BC8A9CEC1D64759E6E8E1B3754AAD1F82819BDB1F1E224F7D7BFF62061D89F6AE8D8EAF444A543333A4E71A4EBEE16AA9FEAE434FD965B90E6B57A198C12619CC31EF4F2BA3ACEA4C0D31EDD7BD715FE76FCD9282221F27F6CFD678ABC0458E4EDFBB72FB23333A3137C1C9AEB0AE4E5D98148527A5670311C0181861C1305901FF9704C64F88B75AD76574ABE3B5CEAAC2F675F5A56B807B2D9FFEDC975C7CFC6C697A18ED7F3D76C164FE108255F43971A3CCEE8FDC5E95F38B6ED8F8B150E17A7780E2D5CFD9A4D35BC4E2B3C3F4F286DC9DD0A8A53A22E643AD29753AAAB58E4C268A4145B1958050895F7FF5EB300FD0435824024F6DA4C38039A621D8E553493D964479DB2C1647C5123A9ED27955117CB966D41BAB3FA2F6AE1CE0E9787E3C815B1E3A3E3002B0BC54A89D66A3B532E8152BB0FD681D134374B4F2197F0B451E4C68C589E1F213D42CB62FC749D0883D9A68B39B93A1582F957AC989E5664266BB53BB8A07C84F662D5E3B4D4B277840A98B37F8A2CDF892085AF77A0AD370B2A4649F2381B7136AEB189421C6C801DC4F20273922A57C76DB4DB487DFC33DA2AC490C77E8ABA4AC719E6F0428A37ADBBE04F776199ACE29C1BC3B8A1F8E0D049628FDA016735559589D660FB23421D29745528E160F60B5D1923E685D0E04BE9DAC15C90BCAC4F4A7FD5CE52950734F2A849CAAB083DD18324EE82D1679146E60C290A97E2C94FBFEEDD88DE9EBEB346DF9E11AE14F4540A84F98B210E5366A03A82128986543C48FC3867431B2531AF99B379CE7E8D3105C574B0D4974295E98EFA2C01AC31C80CB1654BCEFA8467A55BC7B55ADB92DC1BE438006E5392ED521B5817558DE5E38172D023E3236EEAE34037E92EA61D6DA463212E012E603709D65EBE8062644A17B1A00FF5DE6E42FD4B3812DACC8C85754616A5539AB60FEF0F9170413E94D3052CBA3A7B9FCF46F318D30DD88DD988C9C16F5BB8823538A8DBC4830B00E7CE5346277E4DAD464128025955E7E5FD184C40EEC184B6143FC4720DA45C7DE3ED4849D6ABC89B1C01D6761660EA595B65E7F70457A32A4D63CCC6FC9736ABDDB9AE9FC8FB90388DAB7BD2189B38488B17DA76B96DAB6871475F59FC36BD53076293EBF9970A1081BA84E44A3A109F6B7231E64C1C54BF9AABD2320185DC054672B2F8F52172CD262F14CCA3237542F421A2413DF5E371DD4F1297E01D81E392A6C4F3BBABAA3091B2F10DB1C4A2C12B0DDDC279F7AD45992225ACA55ADA7CB6370B07B0CD5B935B8DF18BFFA2567EBF77658772D043318B6BA159DBD3AA48C7A509A1F887A05118CBE1470599C2683D9C00DAA5480A05FFDDF7612E6CFF108842F | 374 | 20181005203233 2 6 100 7679 2 FB0D9422C2C18ABC70FF186A01FA8ED40D4950F804266E0B9661F1E2A6EC548235ADF6A86C277AC391995CF5C43940D264D81121AE69F224E949221EDC039AFE2DA6752F6C04E10159FE65D54CBE5EF34174D36E069C4FB18C8E6DBB80B2C6E0F0AD82E0B7281B9D675AE9E85F509B12746130BF725235E2AC495D268C383378FA130AFF2584962A8A3EDEC0B02504DF264F77980B8342713A28BD3219D83F6D70CC1393E10D5A4734BC029FECD3383FF41CB73AC61C29B54B50E439807BFA5663814B6DA5E81B9491217BE616F6B5F93728669FEF51C06D049586FA6584DFBECD526C5CAE6BBD17F104FA69D353A01CD7E39D5BEA60EB0491DCAE78F3A42BFBCC1F366C55FB23B649197B2D2493180963388FBC4A2AC804ECD042A97A07943D46F18EB6D6C24FC050E3DBD8EE2C84FA03E34814EA53197F1121232E239AA0DA133BD81D439AB595FC6F895AB27D0C6C8A5C3F468C9EF81A42BCB7676C2FF4D381063700AEE81FB7369463187413077048310A98D2DC034CCAB7001A28E288B4E6A8DB609974EC9FFC75F6DA91203429ACCEBA35B4CC03006BB069BD2A062A8CAF59E200A8E27B0CD48F896AE6236F0208AE3924EDF58F87557D05413C00CCAD3B95E6F659EC73FDC6933D6D1E21BE753670F6725F21721FDDC304E6178A3164A85F6757A508AFBD9AA4F1C7B181866F5AA306A25032E59C042ACA8EAEDE17B5136ACEC3B56D2E73284922162E614BE0B87654B7B12132D15E6F11F23B0FF2D0A898680B9A66BB908106A60FFC9A0FB43FF3ADCECDB128764764E1D429A0A194ABCD5AB41CE6B75CD025AC8A5FF2153A20E937354A27E361FB396D87924DCF91FE72203BCEA88303DF0A848EA5ADA9282C2C3C2B92542F721C58809178F36E2DA00D17C613FA5173BFC0F27F9502A1AE535BA9D373ABF83413A8F086FE904B0B45F449CCA9F0615028E1A4878463EA8EB424CA76949EA34A6A36C8DDE6EC4A4AE653A2F1F1009773BB92B8D20530A3313F388FA1AD70C3ECB716E5CA80A06C35CBA247D15D41795F8E083B27B4E227B616408863AFAE48F4C4AE68F1DA9A4B427F666DAD85035D1A499B25A09CC19548A5B9276FB082AA8B00879CCE17105CE7368033F4A18D68826780EB79162AD1B7C70879041BA08FB4A45B3071951DD05EFC9FD04AFCB99D57AEFD4EC51549EF9A166312E744CC7EEAEE9543C02D1B2D233A4B59B187D6E1DB64C843358E8B3C73765DDDC9D79D2D270FF493F56BB4F2F0DC4002605999644FF2A573CBA98492AC8577F5C1A822FD0FB709EAD85C786292DCB4FC8FAD924EEE898502BCD84ED4023C7D74A691A7A3A812685C464EAB7A73 |
375 | 20180429040829 2 6 100 8191 5 FAEE1044985A5E9005F621D69401F45F006C4AC70C849E5C17F3D28A22FE2C86DEF3780E73C15BC778C65638702E1DF6193E19C79BC8A9CEC1D64759E6E8E1B3754AAD1F82819BDB1F1E224F7D7BFF62061D89F6AE8D8EAF444A543333A4E71A4EBEE16AA9FEAE434FD965B90E6B57A198C12619CC31EF4F2BA3ACEA4C0D31EDD7BD715FE76FCD9282221F27F6CFD678ABC0458E4EDFBB72FB23333A3137C1C9AEB0AE4E5D98148527A5670311C0181861C1305901FF9704C64F88B75AD76574ABE3B5CEAAC2F675F5A56B807B2D9FFEDC975C7CFC6C697A18ED7F3D76C164FE108255F43971A3CCEE8FDC5E95F38B6ED8F8B150E17A7780E2D5CFD9A4D35BC4E2B3C3F4F286DC9DD0A8A53A22E643AD29753AAAB58E4C268A4145B1958050895F7FF5EB300FD0435824024F6DA4C38039A621D8E553493D964479DB2C1647C5123A9ED27955117CB966D41BAB3FA2F6AE1CE0E9787E3C815B1E3A3E3002B0BC54A89D66A3B532E8152BB0FD681D134374B4F2197F0B451E4C68C589E1F213D42CB62FC749D0883D9A68B39B93A1582F957AC989E5664266BB53BB8A07C84F662D5E3B4D4B277840A98B37F8A2CDF892085AF77A0AD370B2A4649F2381B7136AEB189421C6C801DC4F20273922A57C76DB4DB487DFC33DA2AC490C77E8ABA4AC719E6F0428A37ADBBE04F776199ACE29C1BC3B8A1F8E0D049628FDA016735559589D660FB23421D29745528E160F60B5D1923E685D0E04BE9DAC15C90BCAC4F4A7FD5CE52950734F2A849CAAB083DD18324EE82D1679146E60C290A97E2C94FBFEEDD88DE9EBEB346DF9E11AE14F4540A84F98B210E5366A03A82128986543C48FC3867431B2531AF99B379CE7E8D3105C574B0D4974295E98EFA2C01AC31C80CB1654BCEFA8467A55BC7B55ADB92DC1BE438006E5392ED521B5817558DE5E38172D023E3236EEAE34037E92EA61D6DA463212E012E603709D65EBE8062644A17B1A00FF5DE6E42FD4B3812DACC8C85754616A5539AB60FEF0F9170413E94D3052CBA3A7B9FCF46F318D30DD88DD988C9C16F5BB8823538A8DBC4830B00E7CE5346277E4DAD464128025955E7E5FD184C40EEC184B6143FC4720DA45C7DE3ED4849D6ABC89B1C01D6761660EA595B65E7F70457A32A4D63CCC6FC9736ABDDB9AE9FC8FB90388DAB7BD2189B38488B17DA76B96DAB6871475F59FC36BD53076293EBF9970A1081BA84E44A3A109F6B7231E64C1C54BF9AABD2320185DC054672B2F8F52172CD262F14CCA3237542F421A2413DF5E371DD4F1297E01D81E392A6C4F3BBABAA3091B2F10DB1C4A2C12B0DDDC279F7AD45992225ACA55ADA7CB6370B07B0CD5B935B8DF18BFFA2567EBF77658772D043318B6BA159DBD3AA48C7A509A1F887A05118CBE1470599C2683D9C00DAA5480A05FFDDF7612E6CFF4BDEDDF | 375 | 20181006030808 2 6 100 7679 2 FB0D9422C2C18ABC70FF186A01FA8ED40D4950F804266E0B9661F1E2A6EC548235ADF6A86C277AC391995CF5C43940D264D81121AE69F224E949221EDC039AFE2DA6752F6C04E10159FE65D54CBE5EF34174D36E069C4FB18C8E6DBB80B2C6E0F0AD82E0B7281B9D675AE9E85F509B12746130BF725235E2AC495D268C383378FA130AFF2584962A8A3EDEC0B02504DF264F77980B8342713A28BD3219D83F6D70CC1393E10D5A4734BC029FECD3383FF41CB73AC61C29B54B50E439807BFA5663814B6DA5E81B9491217BE616F6B5F93728669FEF51C06D049586FA6584DFBECD526C5CAE6BBD17F104FA69D353A01CD7E39D5BEA60EB0491DCAE78F3A42BFBCC1F366C55FB23B649197B2D2493180963388FBC4A2AC804ECD042A97A07943D46F18EB6D6C24FC050E3DBD8EE2C84FA03E34814EA53197F1121232E239AA0DA133BD81D439AB595FC6F895AB27D0C6C8A5C3F468C9EF81A42BCB7676C2FF4D381063700AEE81FB7369463187413077048310A98D2DC034CCAB7001A28E288B4E6A8DB609974EC9FFC75F6DA91203429ACCEBA35B4CC03006BB069BD2A062A8CAF59E200A8E27B0CD48F896AE6236F0208AE3924EDF58F87557D05413C00CCAD3B95E6F659EC73FDC6933D6D1E21BE753670F6725F21721FDDC304E6178A3164A85F6757A508AFBD9AA4F1C7B181866F5AA306A25032E59C042ACA8EAEDE17B5136ACEC3B56D2E73284922162E614BE0B87654B7B12132D15E6F11F23B0FF2D0A898680B9A66BB908106A60FFC9A0FB43FF3ADCECDB128764764E1D429A0A194ABCD5AB41CE6B75CD025AC8A5FF2153A20E937354A27E361FB396D87924DCF91FE72203BCEA88303DF0A848EA5ADA9282C2C3C2B92542F721C58809178F36E2DA00D17C613FA5173BFC0F27F9502A1AE535BA9D373ABF83413A8F086FE904B0B45F449CCA9F0615028E1A4878463EA8EB424CA76949EA34A6A36C8DDE6EC4A4AE653A2F1F1009773BB92B8D20530A3313F388FA1AD70C3ECB716E5CA80A06C35CBA247D15D41795F8E083B27B4E227B616408863AFAE48F4C4AE68F1DA9A4B427F666DAD85035D1A499B25A09CC19548A5B9276FB082AA8B00879CCE17105CE7368033F4A18D68826780EB79162AD1B7C70879041BA08FB4A45B3071951DD05EFC9FD04AFCB99D57AEFD4EC51549EF9A166312E744CC7EEAEE9543C02D1B2D233A4B59B187D6E1DB64C843358E8B3C73765DDDC9D79D2D270FF493F56BB4F2F0DC4002605999644FF2A573CBA98492AC8577F5C1A822FD0FB709EAD85C786292DCB4FC8FAD924EEE898502BCD84ED4023C7D74A691A7A3A812685C46538BEADB |
376 | 20180429045604 2 6 100 8191 5 FAEE1044985A5E9005F621D69401F45F006C4AC70C849E5C17F3D28A22FE2C86DEF3780E73C15BC778C65638702E1DF6193E19C79BC8A9CEC1D64759E6E8E1B3754AAD1F82819BDB1F1E224F7D7BFF62061D89F6AE8D8EAF444A543333A4E71A4EBEE16AA9FEAE434FD965B90E6B57A198C12619CC31EF4F2BA3ACEA4C0D31EDD7BD715FE76FCD9282221F27F6CFD678ABC0458E4EDFBB72FB23333A3137C1C9AEB0AE4E5D98148527A5670311C0181861C1305901FF9704C64F88B75AD76574ABE3B5CEAAC2F675F5A56B807B2D9FFEDC975C7CFC6C697A18ED7F3D76C164FE108255F43971A3CCEE8FDC5E95F38B6ED8F8B150E17A7780E2D5CFD9A4D35BC4E2B3C3F4F286DC9DD0A8A53A22E643AD29753AAAB58E4C268A4145B1958050895F7FF5EB300FD0435824024F6DA4C38039A621D8E553493D964479DB2C1647C5123A9ED27955117CB966D41BAB3FA2F6AE1CE0E9787E3C815B1E3A3E3002B0BC54A89D66A3B532E8152BB0FD681D134374B4F2197F0B451E4C68C589E1F213D42CB62FC749D0883D9A68B39B93A1582F957AC989E5664266BB53BB8A07C84F662D5E3B4D4B277840A98B37F8A2CDF892085AF77A0AD370B2A4649F2381B7136AEB189421C6C801DC4F20273922A57C76DB4DB487DFC33DA2AC490C77E8ABA4AC719E6F0428A37ADBBE04F776199ACE29C1BC3B8A1F8E0D049628FDA016735559589D660FB23421D29745528E160F60B5D1923E685D0E04BE9DAC15C90BCAC4F4A7FD5CE52950734F2A849CAAB083DD18324EE82D1679146E60C290A97E2C94FBFEEDD88DE9EBEB346DF9E11AE14F4540A84F98B210E5366A03A82128986543C48FC3867431B2531AF99B379CE7E8D3105C574B0D4974295E98EFA2C01AC31C80CB1654BCEFA8467A55BC7B55ADB92DC1BE438006E5392ED521B5817558DE5E38172D023E3236EEAE34037E92EA61D6DA463212E012E603709D65EBE8062644A17B1A00FF5DE6E42FD4B3812DACC8C85754616A5539AB60FEF0F9170413E94D3052CBA3A7B9FCF46F318D30DD88DD988C9C16F5BB8823538A8DBC4830B00E7CE5346277E4DAD464128025955E7E5FD184C40EEC184B6143FC4720DA45C7DE3ED4849D6ABC89B1C01D6761660EA595B65E7F70457A32A4D63CCC6FC9736ABDDB9AE9FC8FB90388DAB7BD2189B38488B17DA76B96DAB6871475F59FC36BD53076293EBF9970A1081BA84E44A3A109F6B7231E64C1C54BF9AABD2320185DC054672B2F8F52172CD262F14CCA3237542F421A2413DF5E371DD4F1297E01D81E392A6C4F3BBABAA3091B2F10DB1C4A2C12B0DDDC279F7AD45992225ACA55ADA7CB6370B07B0CD5B935B8DF18BFFA2567EBF77658772D043318B6BA159DBD3AA48C7A509A1F887A05118CBE1470599C2683D9C00DAA5480A05FFDDF7612E6CFF5372357 | 376 | 20181006045927 2 6 100 7679 2 FB0D9422C2C18ABC70FF186A01FA8ED40D4950F804266E0B9661F1E2A6EC548235ADF6A86C277AC391995CF5C43940D264D81121AE69F224E949221EDC039AFE2DA6752F6C04E10159FE65D54CBE5EF34174D36E069C4FB18C8E6DBB80B2C6E0F0AD82E0B7281B9D675AE9E85F509B12746130BF725235E2AC495D268C383378FA130AFF2584962A8A3EDEC0B02504DF264F77980B8342713A28BD3219D83F6D70CC1393E10D5A4734BC029FECD3383FF41CB73AC61C29B54B50E439807BFA5663814B6DA5E81B9491217BE616F6B5F93728669FEF51C06D049586FA6584DFBECD526C5CAE6BBD17F104FA69D353A01CD7E39D5BEA60EB0491DCAE78F3A42BFBCC1F366C55FB23B649197B2D2493180963388FBC4A2AC804ECD042A97A07943D46F18EB6D6C24FC050E3DBD8EE2C84FA03E34814EA53197F1121232E239AA0DA133BD81D439AB595FC6F895AB27D0C6C8A5C3F468C9EF81A42BCB7676C2FF4D381063700AEE81FB7369463187413077048310A98D2DC034CCAB7001A28E288B4E6A8DB609974EC9FFC75F6DA91203429ACCEBA35B4CC03006BB069BD2A062A8CAF59E200A8E27B0CD48F896AE6236F0208AE3924EDF58F87557D05413C00CCAD3B95E6F659EC73FDC6933D6D1E21BE753670F6725F21721FDDC304E6178A3164A85F6757A508AFBD9AA4F1C7B181866F5AA306A25032E59C042ACA8EAEDE17B5136ACEC3B56D2E73284922162E614BE0B87654B7B12132D15E6F11F23B0FF2D0A898680B9A66BB908106A60FFC9A0FB43FF3ADCECDB128764764E1D429A0A194ABCD5AB41CE6B75CD025AC8A5FF2153A20E937354A27E361FB396D87924DCF91FE72203BCEA88303DF0A848EA5ADA9282C2C3C2B92542F721C58809178F36E2DA00D17C613FA5173BFC0F27F9502A1AE535BA9D373ABF83413A8F086FE904B0B45F449CCA9F0615028E1A4878463EA8EB424CA76949EA34A6A36C8DDE6EC4A4AE653A2F1F1009773BB92B8D20530A3313F388FA1AD70C3ECB716E5CA80A06C35CBA247D15D41795F8E083B27B4E227B616408863AFAE48F4C4AE68F1DA9A4B427F666DAD85035D1A499B25A09CC19548A5B9276FB082AA8B00879CCE17105CE7368033F4A18D68826780EB79162AD1B7C70879041BA08FB4A45B3071951DD05EFC9FD04AFCB99D57AEFD4EC51549EF9A166312E744CC7EEAEE9543C02D1B2D233A4B59B187D6E1DB64C843358E8B3C73765DDDC9D79D2D270FF493F56BB4F2F0DC4002605999644FF2A573CBA98492AC8577F5C1A822FD0FB709EAD85C786292DCB4FC8FAD924EEE898502BCD84ED4023C7D74A691A7A3A812685C4654E5E903 |
377 | 20180429052346 2 6 100 8191 2 FAEE1044985A5E9005F621D69401F45F006C4AC70C849E5C17F3D28A22FE2C86DEF3780E73C15BC778C65638702E1DF6193E19C79BC8A9CEC1D64759E6E8E1B3754AAD1F82819BDB1F1E224F7D7BFF62061D89F6AE8D8EAF444A543333A4E71A4EBEE16AA9FEAE434FD965B90E6B57A198C12619CC31EF4F2BA3ACEA4C0D31EDD7BD715FE76FCD9282221F27F6CFD678ABC0458E4EDFBB72FB23333A3137C1C9AEB0AE4E5D98148527A5670311C0181861C1305901FF9704C64F88B75AD76574ABE3B5CEAAC2F675F5A56B807B2D9FFEDC975C7CFC6C697A18ED7F3D76C164FE108255F43971A3CCEE8FDC5E95F38B6ED8F8B150E17A7780E2D5CFD9A4D35BC4E2B3C3F4F286DC9DD0A8A53A22E643AD29753AAAB58E4C268A4145B1958050895F7FF5EB300FD0435824024F6DA4C38039A621D8E553493D964479DB2C1647C5123A9ED27955117CB966D41BAB3FA2F6AE1CE0E9787E3C815B1E3A3E3002B0BC54A89D66A3B532E8152BB0FD681D134374B4F2197F0B451E4C68C589E1F213D42CB62FC749D0883D9A68B39B93A1582F957AC989E5664266BB53BB8A07C84F662D5E3B4D4B277840A98B37F8A2CDF892085AF77A0AD370B2A4649F2381B7136AEB189421C6C801DC4F20273922A57C76DB4DB487DFC33DA2AC490C77E8ABA4AC719E6F0428A37ADBBE04F776199ACE29C1BC3B8A1F8E0D049628FDA016735559589D660FB23421D29745528E160F60B5D1923E685D0E04BE9DAC15C90BCAC4F4A7FD5CE52950734F2A849CAAB083DD18324EE82D1679146E60C290A97E2C94FBFEEDD88DE9EBEB346DF9E11AE14F4540A84F98B210E5366A03A82128986543C48FC3867431B2531AF99B379CE7E8D3105C574B0D4974295E98EFA2C01AC31C80CB1654BCEFA8467A55BC7B55ADB92DC1BE438006E5392ED521B5817558DE5E38172D023E3236EEAE34037E92EA61D6DA463212E012E603709D65EBE8062644A17B1A00FF5DE6E42FD4B3812DACC8C85754616A5539AB60FEF0F9170413E94D3052CBA3A7B9FCF46F318D30DD88DD988C9C16F5BB8823538A8DBC4830B00E7CE5346277E4DAD464128025955E7E5FD184C40EEC184B6143FC4720DA45C7DE3ED4849D6ABC89B1C01D6761660EA595B65E7F70457A32A4D63CCC6FC9736ABDDB9AE9FC8FB90388DAB7BD2189B38488B17DA76B96DAB6871475F59FC36BD53076293EBF9970A1081BA84E44A3A109F6B7231E64C1C54BF9AABD2320185DC054672B2F8F52172CD262F14CCA3237542F421A2413DF5E371DD4F1297E01D81E392A6C4F3BBABAA3091B2F10DB1C4A2C12B0DDDC279F7AD45992225ACA55ADA7CB6370B07B0CD5B935B8DF18BFFA2567EBF77658772D043318B6BA159DBD3AA48C7A509A1F887A05118CBE1470599C2683D9C00DAA5480A05FFDDF7612E6CFF57C9113 | 377 | 20181006134442 2 6 100 7679 2 FB0D9422C2C18ABC70FF186A01FA8ED40D4950F804266E0B9661F1E2A6EC548235ADF6A86C277AC391995CF5C43940D264D81121AE69F224E949221EDC039AFE2DA6752F6C04E10159FE65D54CBE5EF34174D36E069C4FB18C8E6DBB80B2C6E0F0AD82E0B7281B9D675AE9E85F509B12746130BF725235E2AC495D268C383378FA130AFF2584962A8A3EDEC0B02504DF264F77980B8342713A28BD3219D83F6D70CC1393E10D5A4734BC029FECD3383FF41CB73AC61C29B54B50E439807BFA5663814B6DA5E81B9491217BE616F6B5F93728669FEF51C06D049586FA6584DFBECD526C5CAE6BBD17F104FA69D353A01CD7E39D5BEA60EB0491DCAE78F3A42BFBCC1F366C55FB23B649197B2D2493180963388FBC4A2AC804ECD042A97A07943D46F18EB6D6C24FC050E3DBD8EE2C84FA03E34814EA53197F1121232E239AA0DA133BD81D439AB595FC6F895AB27D0C6C8A5C3F468C9EF81A42BCB7676C2FF4D381063700AEE81FB7369463187413077048310A98D2DC034CCAB7001A28E288B4E6A8DB609974EC9FFC75F6DA91203429ACCEBA35B4CC03006BB069BD2A062A8CAF59E200A8E27B0CD48F896AE6236F0208AE3924EDF58F87557D05413C00CCAD3B95E6F659EC73FDC6933D6D1E21BE753670F6725F21721FDDC304E6178A3164A85F6757A508AFBD9AA4F1C7B181866F5AA306A25032E59C042ACA8EAEDE17B5136ACEC3B56D2E73284922162E614BE0B87654B7B12132D15E6F11F23B0FF2D0A898680B9A66BB908106A60FFC9A0FB43FF3ADCECDB128764764E1D429A0A194ABCD5AB41CE6B75CD025AC8A5FF2153A20E937354A27E361FB396D87924DCF91FE72203BCEA88303DF0A848EA5ADA9282C2C3C2B92542F721C58809178F36E2DA00D17C613FA5173BFC0F27F9502A1AE535BA9D373ABF83413A8F086FE904B0B45F449CCA9F0615028E1A4878463EA8EB424CA76949EA34A6A36C8DDE6EC4A4AE653A2F1F1009773BB92B8D20530A3313F388FA1AD70C3ECB716E5CA80A06C35CBA247D15D41795F8E083B27B4E227B616408863AFAE48F4C4AE68F1DA9A4B427F666DAD85035D1A499B25A09CC19548A5B9276FB082AA8B00879CCE17105CE7368033F4A18D68826780EB79162AD1B7C70879041BA08FB4A45B3071951DD05EFC9FD04AFCB99D57AEFD4EC51549EF9A166312E744CC7EEAEE9543C02D1B2D233A4B59B187D6E1DB64C843358E8B3C73765DDDC9D79D2D270FF493F56BB4F2F0DC4002605999644FF2A573CBA98492AC8577F5C1A822FD0FB709EAD85C786292DCB4FC8FAD924EEE898502BCD84ED4023C7D74A691A7A3A812685C465B551BBB |
378 | 20180429053535 2 6 100 8191 2 FAEE1044985A5E9005F621D69401F45F006C4AC70C849E5C17F3D28A22FE2C86DEF3780E73C15BC778C65638702E1DF6193E19C79BC8A9CEC1D64759E6E8E1B3754AAD1F82819BDB1F1E224F7D7BFF62061D89F6AE8D8EAF444A543333A4E71A4EBEE16AA9FEAE434FD965B90E6B57A198C12619CC31EF4F2BA3ACEA4C0D31EDD7BD715FE76FCD9282221F27F6CFD678ABC0458E4EDFBB72FB23333A3137C1C9AEB0AE4E5D98148527A5670311C0181861C1305901FF9704C64F88B75AD76574ABE3B5CEAAC2F675F5A56B807B2D9FFEDC975C7CFC6C697A18ED7F3D76C164FE108255F43971A3CCEE8FDC5E95F38B6ED8F8B150E17A7780E2D5CFD9A4D35BC4E2B3C3F4F286DC9DD0A8A53A22E643AD29753AAAB58E4C268A4145B1958050895F7FF5EB300FD0435824024F6DA4C38039A621D8E553493D964479DB2C1647C5123A9ED27955117CB966D41BAB3FA2F6AE1CE0E9787E3C815B1E3A3E3002B0BC54A89D66A3B532E8152BB0FD681D134374B4F2197F0B451E4C68C589E1F213D42CB62FC749D0883D9A68B39B93A1582F957AC989E5664266BB53BB8A07C84F662D5E3B4D4B277840A98B37F8A2CDF892085AF77A0AD370B2A4649F2381B7136AEB189421C6C801DC4F20273922A57C76DB4DB487DFC33DA2AC490C77E8ABA4AC719E6F0428A37ADBBE04F776199ACE29C1BC3B8A1F8E0D049628FDA016735559589D660FB23421D29745528E160F60B5D1923E685D0E04BE9DAC15C90BCAC4F4A7FD5CE52950734F2A849CAAB083DD18324EE82D1679146E60C290A97E2C94FBFEEDD88DE9EBEB346DF9E11AE14F4540A84F98B210E5366A03A82128986543C48FC3867431B2531AF99B379CE7E8D3105C574B0D4974295E98EFA2C01AC31C80CB1654BCEFA8467A55BC7B55ADB92DC1BE438006E5392ED521B5817558DE5E38172D023E3236EEAE34037E92EA61D6DA463212E012E603709D65EBE8062644A17B1A00FF5DE6E42FD4B3812DACC8C85754616A5539AB60FEF0F9170413E94D3052CBA3A7B9FCF46F318D30DD88DD988C9C16F5BB8823538A8DBC4830B00E7CE5346277E4DAD464128025955E7E5FD184C40EEC184B6143FC4720DA45C7DE3ED4849D6ABC89B1C01D6761660EA595B65E7F70457A32A4D63CCC6FC9736ABDDB9AE9FC8FB90388DAB7BD2189B38488B17DA76B96DAB6871475F59FC36BD53076293EBF9970A1081BA84E44A3A109F6B7231E64C1C54BF9AABD2320185DC054672B2F8F52172CD262F14CCA3237542F421A2413DF5E371DD4F1297E01D81E392A6C4F3BBABAA3091B2F10DB1C4A2C12B0DDDC279F7AD45992225ACA55ADA7CB6370B07B0CD5B935B8DF18BFFA2567EBF77658772D043318B6BA159DBD3AA48C7A509A1F887A05118CBE1470599C2683D9C00DAA5480A05FFDDF7612E6CFF591B0F3 | 378 | 20181006162315 2 6 100 7679 5 FB0D9422C2C18ABC70FF186A01FA8ED40D4950F804266E0B9661F1E2A6EC548235ADF6A86C277AC391995CF5C43940D264D81121AE69F224E949221EDC039AFE2DA6752F6C04E10159FE65D54CBE5EF34174D36E069C4FB18C8E6DBB80B2C6E0F0AD82E0B7281B9D675AE9E85F509B12746130BF725235E2AC495D268C383378FA130AFF2584962A8A3EDEC0B02504DF264F77980B8342713A28BD3219D83F6D70CC1393E10D5A4734BC029FECD3383FF41CB73AC61C29B54B50E439807BFA5663814B6DA5E81B9491217BE616F6B5F93728669FEF51C06D049586FA6584DFBECD526C5CAE6BBD17F104FA69D353A01CD7E39D5BEA60EB0491DCAE78F3A42BFBCC1F366C55FB23B649197B2D2493180963388FBC4A2AC804ECD042A97A07943D46F18EB6D6C24FC050E3DBD8EE2C84FA03E34814EA53197F1121232E239AA0DA133BD81D439AB595FC6F895AB27D0C6C8A5C3F468C9EF81A42BCB7676C2FF4D381063700AEE81FB7369463187413077048310A98D2DC034CCAB7001A28E288B4E6A8DB609974EC9FFC75F6DA91203429ACCEBA35B4CC03006BB069BD2A062A8CAF59E200A8E27B0CD48F896AE6236F0208AE3924EDF58F87557D05413C00CCAD3B95E6F659EC73FDC6933D6D1E21BE753670F6725F21721FDDC304E6178A3164A85F6757A508AFBD9AA4F1C7B181866F5AA306A25032E59C042ACA8EAEDE17B5136ACEC3B56D2E73284922162E614BE0B87654B7B12132D15E6F11F23B0FF2D0A898680B9A66BB908106A60FFC9A0FB43FF3ADCECDB128764764E1D429A0A194ABCD5AB41CE6B75CD025AC8A5FF2153A20E937354A27E361FB396D87924DCF91FE72203BCEA88303DF0A848EA5ADA9282C2C3C2B92542F721C58809178F36E2DA00D17C613FA5173BFC0F27F9502A1AE535BA9D373ABF83413A8F086FE904B0B45F449CCA9F0615028E1A4878463EA8EB424CA76949EA34A6A36C8DDE6EC4A4AE653A2F1F1009773BB92B8D20530A3313F388FA1AD70C3ECB716E5CA80A06C35CBA247D15D41795F8E083B27B4E227B616408863AFAE48F4C4AE68F1DA9A4B427F666DAD85035D1A499B25A09CC19548A5B9276FB082AA8B00879CCE17105CE7368033F4A18D68826780EB79162AD1B7C70879041BA08FB4A45B3071951DD05EFC9FD04AFCB99D57AEFD4EC51549EF9A166312E744CC7EEAEE9543C02D1B2D233A4B59B187D6E1DB64C843358E8B3C73765DDDC9D79D2D270FF493F56BB4F2F0DC4002605999644FF2A573CBA98492AC8577F5C1A822FD0FB709EAD85C786292DCB4FC8FAD924EEE898502BCD84ED4023C7D74A691A7A3A812685C465D3CDE9F |
379 | 20180429234833 2 6 100 8191 2 FAEE1044985A5E9005F621D69401F45F006C4AC70C849E5C17F3D28A22FE2C86DEF3780E73C15BC778C65638702E1DF6193E19C79BC8A9CEC1D64759E6E8E1B3754AAD1F82819BDB1F1E224F7D7BFF62061D89F6AE8D8EAF444A543333A4E71A4EBEE16AA9FEAE434FD965B90E6B57A198C12619CC31EF4F2BA3ACEA4C0D31EDD7BD715FE76FCD9282221F27F6CFD678ABC0458E4EDFBB72FB23333A3137C1C9AEB0AE4E5D98148527A5670311C0181861C1305901FF9704C64F88B75AD76574ABE3B5CEAAC2F675F5A56B807B2D9FFEDC975C7CFC6C697A18ED7F3D76C164FE108255F43971A3CCEE8FDC5E95F38B6ED8F8B150E17A7780E2D5CFD9A4D35BC4E2B3C3F4F286DC9DD0A8A53A22E643AD29753AAAB58E4C268A4145B1958050895F7FF5EB300FD0435824024F6DA4C38039A621D8E553493D964479DB2C1647C5123A9ED27955117CB966D41BAB3FA2F6AE1CE0E9787E3C815B1E3A3E3002B0BC54A89D66A3B532E8152BB0FD681D134374B4F2197F0B451E4C68C589E1F213D42CB62FC749D0883D9A68B39B93A1582F957AC989E5664266BB53BB8A07C84F662D5E3B4D4B277840A98B37F8A2CDF892085AF77A0AD370B2A4649F2381B7136AEB189421C6C801DC4F20273922A57C76DB4DB487DFC33DA2AC490C77E8ABA4AC719E6F0428A37ADBBE04F776199ACE29C1BC3B8A1F8E0D049628FDA016735559589D660FB23421D29745528E160F60B5D1923E685D0E04BE9DAC15C90BCAC4F4A7FD5CE52950734F2A849CAAB083DD18324EE82D1679146E60C290A97E2C94FBFEEDD88DE9EBEB346DF9E11AE14F4540A84F98B210E5366A03A82128986543C48FC3867431B2531AF99B379CE7E8D3105C574B0D4974295E98EFA2C01AC31C80CB1654BCEFA8467A55BC7B55ADB92DC1BE438006E5392ED521B5817558DE5E38172D023E3236EEAE34037E92EA61D6DA463212E012E603709D65EBE8062644A17B1A00FF5DE6E42FD4B3812DACC8C85754616A5539AB60FEF0F9170413E94D3052CBA3A7B9FCF46F318D30DD88DD988C9C16F5BB8823538A8DBC4830B00E7CE5346277E4DAD464128025955E7E5FD184C40EEC184B6143FC4720DA45C7DE3ED4849D6ABC89B1C01D6761660EA595B65E7F70457A32A4D63CCC6FC9736ABDDB9AE9FC8FB90388DAB7BD2189B38488B17DA76B96DAB6871475F59FC36BD53076293EBF9970A1081BA84E44A3A109F6B7231E64C1C54BF9AABD2320185DC054672B2F8F52172CD262F14CCA3237542F421A2413DF5E371DD4F1297E01D81E392A6C4F3BBABAA3091B2F10DB1C4A2C12B0DDDC279F7AD45992225ACA55ADA7CB6370B07B0CD5B935B8DF18BFFA2567EBF77658772D043318B6BA159DBD3AA48C7A509A1F887A05118CBE1470599C2683D9C00DAA5480A05FFDDF7612E6D000DBC47B | 379 | 20181006171548 2 6 100 7679 5 FB0D9422C2C18ABC70FF186A01FA8ED40D4950F804266E0B9661F1E2A6EC548235ADF6A86C277AC391995CF5C43940D264D81121AE69F224E949221EDC039AFE2DA6752F6C04E10159FE65D54CBE5EF34174D36E069C4FB18C8E6DBB80B2C6E0F0AD82E0B7281B9D675AE9E85F509B12746130BF725235E2AC495D268C383378FA130AFF2584962A8A3EDEC0B02504DF264F77980B8342713A28BD3219D83F6D70CC1393E10D5A4734BC029FECD3383FF41CB73AC61C29B54B50E439807BFA5663814B6DA5E81B9491217BE616F6B5F93728669FEF51C06D049586FA6584DFBECD526C5CAE6BBD17F104FA69D353A01CD7E39D5BEA60EB0491DCAE78F3A42BFBCC1F366C55FB23B649197B2D2493180963388FBC4A2AC804ECD042A97A07943D46F18EB6D6C24FC050E3DBD8EE2C84FA03E34814EA53197F1121232E239AA0DA133BD81D439AB595FC6F895AB27D0C6C8A5C3F468C9EF81A42BCB7676C2FF4D381063700AEE81FB7369463187413077048310A98D2DC034CCAB7001A28E288B4E6A8DB609974EC9FFC75F6DA91203429ACCEBA35B4CC03006BB069BD2A062A8CAF59E200A8E27B0CD48F896AE6236F0208AE3924EDF58F87557D05413C00CCAD3B95E6F659EC73FDC6933D6D1E21BE753670F6725F21721FDDC304E6178A3164A85F6757A508AFBD9AA4F1C7B181866F5AA306A25032E59C042ACA8EAEDE17B5136ACEC3B56D2E73284922162E614BE0B87654B7B12132D15E6F11F23B0FF2D0A898680B9A66BB908106A60FFC9A0FB43FF3ADCECDB128764764E1D429A0A194ABCD5AB41CE6B75CD025AC8A5FF2153A20E937354A27E361FB396D87924DCF91FE72203BCEA88303DF0A848EA5ADA9282C2C3C2B92542F721C58809178F36E2DA00D17C613FA5173BFC0F27F9502A1AE535BA9D373ABF83413A8F086FE904B0B45F449CCA9F0615028E1A4878463EA8EB424CA76949EA34A6A36C8DDE6EC4A4AE653A2F1F1009773BB92B8D20530A3313F388FA1AD70C3ECB716E5CA80A06C35CBA247D15D41795F8E083B27B4E227B616408863AFAE48F4C4AE68F1DA9A4B427F666DAD85035D1A499B25A09CC19548A5B9276FB082AA8B00879CCE17105CE7368033F4A18D68826780EB79162AD1B7C70879041BA08FB4A45B3071951DD05EFC9FD04AFCB99D57AEFD4EC51549EF9A166312E744CC7EEAEE9543C02D1B2D233A4B59B187D6E1DB64C843358E8B3C73765DDDC9D79D2D270FF493F56BB4F2F0DC4002605999644FF2A573CBA98492AC8577F5C1A822FD0FB709EAD85C786292DCB4FC8FAD924EEE898502BCD84ED4023C7D74A691A7A3A812685C465DD9203F |
380 | 20180430061137 2 6 100 8191 2 FAEE1044985A5E9005F621D69401F45F006C4AC70C849E5C17F3D28A22FE2C86DEF3780E73C15BC778C65638702E1DF6193E19C79BC8A9CEC1D64759E6E8E1B3754AAD1F82819BDB1F1E224F7D7BFF62061D89F6AE8D8EAF444A543333A4E71A4EBEE16AA9FEAE434FD965B90E6B57A198C12619CC31EF4F2BA3ACEA4C0D31EDD7BD715FE76FCD9282221F27F6CFD678ABC0458E4EDFBB72FB23333A3137C1C9AEB0AE4E5D98148527A5670311C0181861C1305901FF9704C64F88B75AD76574ABE3B5CEAAC2F675F5A56B807B2D9FFEDC975C7CFC6C697A18ED7F3D76C164FE108255F43971A3CCEE8FDC5E95F38B6ED8F8B150E17A7780E2D5CFD9A4D35BC4E2B3C3F4F286DC9DD0A8A53A22E643AD29753AAAB58E4C268A4145B1958050895F7FF5EB300FD0435824024F6DA4C38039A621D8E553493D964479DB2C1647C5123A9ED27955117CB966D41BAB3FA2F6AE1CE0E9787E3C815B1E3A3E3002B0BC54A89D66A3B532E8152BB0FD681D134374B4F2197F0B451E4C68C589E1F213D42CB62FC749D0883D9A68B39B93A1582F957AC989E5664266BB53BB8A07C84F662D5E3B4D4B277840A98B37F8A2CDF892085AF77A0AD370B2A4649F2381B7136AEB189421C6C801DC4F20273922A57C76DB4DB487DFC33DA2AC490C77E8ABA4AC719E6F0428A37ADBBE04F776199ACE29C1BC3B8A1F8E0D049628FDA016735559589D660FB23421D29745528E160F60B5D1923E685D0E04BE9DAC15C90BCAC4F4A7FD5CE52950734F2A849CAAB083DD18324EE82D1679146E60C290A97E2C94FBFEEDD88DE9EBEB346DF9E11AE14F4540A84F98B210E5366A03A82128986543C48FC3867431B2531AF99B379CE7E8D3105C574B0D4974295E98EFA2C01AC31C80CB1654BCEFA8467A55BC7B55ADB92DC1BE438006E5392ED521B5817558DE5E38172D023E3236EEAE34037E92EA61D6DA463212E012E603709D65EBE8062644A17B1A00FF5DE6E42FD4B3812DACC8C85754616A5539AB60FEF0F9170413E94D3052CBA3A7B9FCF46F318D30DD88DD988C9C16F5BB8823538A8DBC4830B00E7CE5346277E4DAD464128025955E7E5FD184C40EEC184B6143FC4720DA45C7DE3ED4849D6ABC89B1C01D6761660EA595B65E7F70457A32A4D63CCC6FC9736ABDDB9AE9FC8FB90388DAB7BD2189B38488B17DA76B96DAB6871475F59FC36BD53076293EBF9970A1081BA84E44A3A109F6B7231E64C1C54BF9AABD2320185DC054672B2F8F52172CD262F14CCA3237542F421A2413DF5E371DD4F1297E01D81E392A6C4F3BBABAA3091B2F10DB1C4A2C12B0DDDC279F7AD45992225ACA55ADA7CB6370B07B0CD5B935B8DF18BFFA2567EBF77658772D043318B6BA159DBD3AA48C7A509A1F887A05118CBE1470599C2683D9C00DAA5480A05FFDDF7612E6D004DD4873 | 380 | 20181006173731 2 6 100 7679 2 FB0D9422C2C18ABC70FF186A01FA8ED40D4950F804266E0B9661F1E2A6EC548235ADF6A86C277AC391995CF5C43940D264D81121AE69F224E949221EDC039AFE2DA6752F6C04E10159FE65D54CBE5EF34174D36E069C4FB18C8E6DBB80B2C6E0F0AD82E0B7281B9D675AE9E85F509B12746130BF725235E2AC495D268C383378FA130AFF2584962A8A3EDEC0B02504DF264F77980B8342713A28BD3219D83F6D70CC1393E10D5A4734BC029FECD3383FF41CB73AC61C29B54B50E439807BFA5663814B6DA5E81B9491217BE616F6B5F93728669FEF51C06D049586FA6584DFBECD526C5CAE6BBD17F104FA69D353A01CD7E39D5BEA60EB0491DCAE78F3A42BFBCC1F366C55FB23B649197B2D2493180963388FBC4A2AC804ECD042A97A07943D46F18EB6D6C24FC050E3DBD8EE2C84FA03E34814EA53197F1121232E239AA0DA133BD81D439AB595FC6F895AB27D0C6C8A5C3F468C9EF81A42BCB7676C2FF4D381063700AEE81FB7369463187413077048310A98D2DC034CCAB7001A28E288B4E6A8DB609974EC9FFC75F6DA91203429ACCEBA35B4CC03006BB069BD2A062A8CAF59E200A8E27B0CD48F896AE6236F0208AE3924EDF58F87557D05413C00CCAD3B95E6F659EC73FDC6933D6D1E21BE753670F6725F21721FDDC304E6178A3164A85F6757A508AFBD9AA4F1C7B181866F5AA306A25032E59C042ACA8EAEDE17B5136ACEC3B56D2E73284922162E614BE0B87654B7B12132D15E6F11F23B0FF2D0A898680B9A66BB908106A60FFC9A0FB43FF3ADCECDB128764764E1D429A0A194ABCD5AB41CE6B75CD025AC8A5FF2153A20E937354A27E361FB396D87924DCF91FE72203BCEA88303DF0A848EA5ADA9282C2C3C2B92542F721C58809178F36E2DA00D17C613FA5173BFC0F27F9502A1AE535BA9D373ABF83413A8F086FE904B0B45F449CCA9F0615028E1A4878463EA8EB424CA76949EA34A6A36C8DDE6EC4A4AE653A2F1F1009773BB92B8D20530A3313F388FA1AD70C3ECB716E5CA80A06C35CBA247D15D41795F8E083B27B4E227B616408863AFAE48F4C4AE68F1DA9A4B427F666DAD85035D1A499B25A09CC19548A5B9276FB082AA8B00879CCE17105CE7368033F4A18D68826780EB79162AD1B7C70879041BA08FB4A45B3071951DD05EFC9FD04AFCB99D57AEFD4EC51549EF9A166312E744CC7EEAEE9543C02D1B2D233A4B59B187D6E1DB64C843358E8B3C73765DDDC9D79D2D270FF493F56BB4F2F0DC4002605999644FF2A573CBA98492AC8577F5C1A822FD0FB709EAD85C786292DCB4FC8FAD924EEE898502BCD84ED4023C7D74A691A7A3A812685C465E163313 |
381 | 20180430071004 2 6 100 8191 5 FAEE1044985A5E9005F621D69401F45F006C4AC70C849E5C17F3D28A22FE2C86DEF3780E73C15BC778C65638702E1DF6193E19C79BC8A9CEC1D64759E6E8E1B3754AAD1F82819BDB1F1E224F7D7BFF62061D89F6AE8D8EAF444A543333A4E71A4EBEE16AA9FEAE434FD965B90E6B57A198C12619CC31EF4F2BA3ACEA4C0D31EDD7BD715FE76FCD9282221F27F6CFD678ABC0458E4EDFBB72FB23333A3137C1C9AEB0AE4E5D98148527A5670311C0181861C1305901FF9704C64F88B75AD76574ABE3B5CEAAC2F675F5A56B807B2D9FFEDC975C7CFC6C697A18ED7F3D76C164FE108255F43971A3CCEE8FDC5E95F38B6ED8F8B150E17A7780E2D5CFD9A4D35BC4E2B3C3F4F286DC9DD0A8A53A22E643AD29753AAAB58E4C268A4145B1958050895F7FF5EB300FD0435824024F6DA4C38039A621D8E553493D964479DB2C1647C5123A9ED27955117CB966D41BAB3FA2F6AE1CE0E9787E3C815B1E3A3E3002B0BC54A89D66A3B532E8152BB0FD681D134374B4F2197F0B451E4C68C589E1F213D42CB62FC749D0883D9A68B39B93A1582F957AC989E5664266BB53BB8A07C84F662D5E3B4D4B277840A98B37F8A2CDF892085AF77A0AD370B2A4649F2381B7136AEB189421C6C801DC4F20273922A57C76DB4DB487DFC33DA2AC490C77E8ABA4AC719E6F0428A37ADBBE04F776199ACE29C1BC3B8A1F8E0D049628FDA016735559589D660FB23421D29745528E160F60B5D1923E685D0E04BE9DAC15C90BCAC4F4A7FD5CE52950734F2A849CAAB083DD18324EE82D1679146E60C290A97E2C94FBFEEDD88DE9EBEB346DF9E11AE14F4540A84F98B210E5366A03A82128986543C48FC3867431B2531AF99B379CE7E8D3105C574B0D4974295E98EFA2C01AC31C80CB1654BCEFA8467A55BC7B55ADB92DC1BE438006E5392ED521B5817558DE5E38172D023E3236EEAE34037E92EA61D6DA463212E012E603709D65EBE8062644A17B1A00FF5DE6E42FD4B3812DACC8C85754616A5539AB60FEF0F9170413E94D3052CBA3A7B9FCF46F318D30DD88DD988C9C16F5BB8823538A8DBC4830B00E7CE5346277E4DAD464128025955E7E5FD184C40EEC184B6143FC4720DA45C7DE3ED4849D6ABC89B1C01D6761660EA595B65E7F70457A32A4D63CCC6FC9736ABDDB9AE9FC8FB90388DAB7BD2189B38488B17DA76B96DAB6871475F59FC36BD53076293EBF9970A1081BA84E44A3A109F6B7231E64C1C54BF9AABD2320185DC054672B2F8F52172CD262F14CCA3237542F421A2413DF5E371DD4F1297E01D81E392A6C4F3BBABAA3091B2F10DB1C4A2C12B0DDDC279F7AD45992225ACA55ADA7CB6370B07B0CD5B935B8DF18BFFA2567EBF77658772D043318B6BA159DBD3AA48C7A509A1F887A05118CBE1470599C2683D9C00DAA5480A05FFDDF7612E6D0056DDF9F | 381 | 20181006214027 2 6 100 7679 5 FB0D9422C2C18ABC70FF186A01FA8ED40D4950F804266E0B9661F1E2A6EC548235ADF6A86C277AC391995CF5C43940D264D81121AE69F224E949221EDC039AFE2DA6752F6C04E10159FE65D54CBE5EF34174D36E069C4FB18C8E6DBB80B2C6E0F0AD82E0B7281B9D675AE9E85F509B12746130BF725235E2AC495D268C383378FA130AFF2584962A8A3EDEC0B02504DF264F77980B8342713A28BD3219D83F6D70CC1393E10D5A4734BC029FECD3383FF41CB73AC61C29B54B50E439807BFA5663814B6DA5E81B9491217BE616F6B5F93728669FEF51C06D049586FA6584DFBECD526C5CAE6BBD17F104FA69D353A01CD7E39D5BEA60EB0491DCAE78F3A42BFBCC1F366C55FB23B649197B2D2493180963388FBC4A2AC804ECD042A97A07943D46F18EB6D6C24FC050E3DBD8EE2C84FA03E34814EA53197F1121232E239AA0DA133BD81D439AB595FC6F895AB27D0C6C8A5C3F468C9EF81A42BCB7676C2FF4D381063700AEE81FB7369463187413077048310A98D2DC034CCAB7001A28E288B4E6A8DB609974EC9FFC75F6DA91203429ACCEBA35B4CC03006BB069BD2A062A8CAF59E200A8E27B0CD48F896AE6236F0208AE3924EDF58F87557D05413C00CCAD3B95E6F659EC73FDC6933D6D1E21BE753670F6725F21721FDDC304E6178A3164A85F6757A508AFBD9AA4F1C7B181866F5AA306A25032E59C042ACA8EAEDE17B5136ACEC3B56D2E73284922162E614BE0B87654B7B12132D15E6F11F23B0FF2D0A898680B9A66BB908106A60FFC9A0FB43FF3ADCECDB128764764E1D429A0A194ABCD5AB41CE6B75CD025AC8A5FF2153A20E937354A27E361FB396D87924DCF91FE72203BCEA88303DF0A848EA5ADA9282C2C3C2B92542F721C58809178F36E2DA00D17C613FA5173BFC0F27F9502A1AE535BA9D373ABF83413A8F086FE904B0B45F449CCA9F0615028E1A4878463EA8EB424CA76949EA34A6A36C8DDE6EC4A4AE653A2F1F1009773BB92B8D20530A3313F388FA1AD70C3ECB716E5CA80A06C35CBA247D15D41795F8E083B27B4E227B616408863AFAE48F4C4AE68F1DA9A4B427F666DAD85035D1A499B25A09CC19548A5B9276FB082AA8B00879CCE17105CE7368033F4A18D68826780EB79162AD1B7C70879041BA08FB4A45B3071951DD05EFC9FD04AFCB99D57AEFD4EC51549EF9A166312E744CC7EEAEE9543C02D1B2D233A4B59B187D6E1DB64C843358E8B3C73765DDDC9D79D2D270FF493F56BB4F2F0DC4002605999644FF2A573CBA98492AC8577F5C1A822FD0FB709EAD85C786292DCB4FC8FAD924EEE898502BCD84ED4023C7D74A691A7A3A812685C466102759F |
382 | 20180430074559 2 6 100 8191 2 FAEE1044985A5E9005F621D69401F45F006C4AC70C849E5C17F3D28A22FE2C86DEF3780E73C15BC778C65638702E1DF6193E19C79BC8A9CEC1D64759E6E8E1B3754AAD1F82819BDB1F1E224F7D7BFF62061D89F6AE8D8EAF444A543333A4E71A4EBEE16AA9FEAE434FD965B90E6B57A198C12619CC31EF4F2BA3ACEA4C0D31EDD7BD715FE76FCD9282221F27F6CFD678ABC0458E4EDFBB72FB23333A3137C1C9AEB0AE4E5D98148527A5670311C0181861C1305901FF9704C64F88B75AD76574ABE3B5CEAAC2F675F5A56B807B2D9FFEDC975C7CFC6C697A18ED7F3D76C164FE108255F43971A3CCEE8FDC5E95F38B6ED8F8B150E17A7780E2D5CFD9A4D35BC4E2B3C3F4F286DC9DD0A8A53A22E643AD29753AAAB58E4C268A4145B1958050895F7FF5EB300FD0435824024F6DA4C38039A621D8E553493D964479DB2C1647C5123A9ED27955117CB966D41BAB3FA2F6AE1CE0E9787E3C815B1E3A3E3002B0BC54A89D66A3B532E8152BB0FD681D134374B4F2197F0B451E4C68C589E1F213D42CB62FC749D0883D9A68B39B93A1582F957AC989E5664266BB53BB8A07C84F662D5E3B4D4B277840A98B37F8A2CDF892085AF77A0AD370B2A4649F2381B7136AEB189421C6C801DC4F20273922A57C76DB4DB487DFC33DA2AC490C77E8ABA4AC719E6F0428A37ADBBE04F776199ACE29C1BC3B8A1F8E0D049628FDA016735559589D660FB23421D29745528E160F60B5D1923E685D0E04BE9DAC15C90BCAC4F4A7FD5CE52950734F2A849CAAB083DD18324EE82D1679146E60C290A97E2C94FBFEEDD88DE9EBEB346DF9E11AE14F4540A84F98B210E5366A03A82128986543C48FC3867431B2531AF99B379CE7E8D3105C574B0D4974295E98EFA2C01AC31C80CB1654BCEFA8467A55BC7B55ADB92DC1BE438006E5392ED521B5817558DE5E38172D023E3236EEAE34037E92EA61D6DA463212E012E603709D65EBE8062644A17B1A00FF5DE6E42FD4B3812DACC8C85754616A5539AB60FEF0F9170413E94D3052CBA3A7B9FCF46F318D30DD88DD988C9C16F5BB8823538A8DBC4830B00E7CE5346277E4DAD464128025955E7E5FD184C40EEC184B6143FC4720DA45C7DE3ED4849D6ABC89B1C01D6761660EA595B65E7F70457A32A4D63CCC6FC9736ABDDB9AE9FC8FB90388DAB7BD2189B38488B17DA76B96DAB6871475F59FC36BD53076293EBF9970A1081BA84E44A3A109F6B7231E64C1C54BF9AABD2320185DC054672B2F8F52172CD262F14CCA3237542F421A2413DF5E371DD4F1297E01D81E392A6C4F3BBABAA3091B2F10DB1C4A2C12B0DDDC279F7AD45992225ACA55ADA7CB6370B07B0CD5B935B8DF18BFFA2567EBF77658772D043318B6BA159DBD3AA48C7A509A1F887A05118CBE1470599C2683D9C00DAA5480A05FFDDF7612E6D005C5181B | 382 | 20181007065411 2 6 100 7679 2 FB0D9422C2C18ABC70FF186A01FA8ED40D4950F804266E0B9661F1E2A6EC548235ADF6A86C277AC391995CF5C43940D264D81121AE69F224E949221EDC039AFE2DA6752F6C04E10159FE65D54CBE5EF34174D36E069C4FB18C8E6DBB80B2C6E0F0AD82E0B7281B9D675AE9E85F509B12746130BF725235E2AC495D268C383378FA130AFF2584962A8A3EDEC0B02504DF264F77980B8342713A28BD3219D83F6D70CC1393E10D5A4734BC029FECD3383FF41CB73AC61C29B54B50E439807BFA5663814B6DA5E81B9491217BE616F6B5F93728669FEF51C06D049586FA6584DFBECD526C5CAE6BBD17F104FA69D353A01CD7E39D5BEA60EB0491DCAE78F3A42BFBCC1F366C55FB23B649197B2D2493180963388FBC4A2AC804ECD042A97A07943D46F18EB6D6C24FC050E3DBD8EE2C84FA03E34814EA53197F1121232E239AA0DA133BD81D439AB595FC6F895AB27D0C6C8A5C3F468C9EF81A42BCB7676C2FF4D381063700AEE81FB7369463187413077048310A98D2DC034CCAB7001A28E288B4E6A8DB609974EC9FFC75F6DA91203429ACCEBA35B4CC03006BB069BD2A062A8CAF59E200A8E27B0CD48F896AE6236F0208AE3924EDF58F87557D05413C00CCAD3B95E6F659EC73FDC6933D6D1E21BE753670F6725F21721FDDC304E6178A3164A85F6757A508AFBD9AA4F1C7B181866F5AA306A25032E59C042ACA8EAEDE17B5136ACEC3B56D2E73284922162E614BE0B87654B7B12132D15E6F11F23B0FF2D0A898680B9A66BB908106A60FFC9A0FB43FF3ADCECDB128764764E1D429A0A194ABCD5AB41CE6B75CD025AC8A5FF2153A20E937354A27E361FB396D87924DCF91FE72203BCEA88303DF0A848EA5ADA9282C2C3C2B92542F721C58809178F36E2DA00D17C613FA5173BFC0F27F9502A1AE535BA9D373ABF83413A8F086FE904B0B45F449CCA9F0615028E1A4878463EA8EB424CA76949EA34A6A36C8DDE6EC4A4AE653A2F1F1009773BB92B8D20530A3313F388FA1AD70C3ECB716E5CA80A06C35CBA247D15D41795F8E083B27B4E227B616408863AFAE48F4C4AE68F1DA9A4B427F666DAD85035D1A499B25A09CC19548A5B9276FB082AA8B00879CCE17105CE7368033F4A18D68826780EB79162AD1B7C70879041BA08FB4A45B3071951DD05EFC9FD04AFCB99D57AEFD4EC51549EF9A166312E744CC7EEAEE9543C02D1B2D233A4B59B187D6E1DB64C843358E8B3C73765DDDC9D79D2D270FF493F56BB4F2F0DC4002605999644FF2A573CBA98492AC8577F5C1A822FD0FB709EAD85C786292DCB4FC8FAD924EEE898502BCD84ED4023C7D74A691A7A3A812685C4667A72DC3 |
383 | 20180430091811 2 6 100 8191 5 FAEE1044985A5E9005F621D69401F45F006C4AC70C849E5C17F3D28A22FE2C86DEF3780E73C15BC778C65638702E1DF6193E19C79BC8A9CEC1D64759E6E8E1B3754AAD1F82819BDB1F1E224F7D7BFF62061D89F6AE8D8EAF444A543333A4E71A4EBEE16AA9FEAE434FD965B90E6B57A198C12619CC31EF4F2BA3ACEA4C0D31EDD7BD715FE76FCD9282221F27F6CFD678ABC0458E4EDFBB72FB23333A3137C1C9AEB0AE4E5D98148527A5670311C0181861C1305901FF9704C64F88B75AD76574ABE3B5CEAAC2F675F5A56B807B2D9FFEDC975C7CFC6C697A18ED7F3D76C164FE108255F43971A3CCEE8FDC5E95F38B6ED8F8B150E17A7780E2D5CFD9A4D35BC4E2B3C3F4F286DC9DD0A8A53A22E643AD29753AAAB58E4C268A4145B1958050895F7FF5EB300FD0435824024F6DA4C38039A621D8E553493D964479DB2C1647C5123A9ED27955117CB966D41BAB3FA2F6AE1CE0E9787E3C815B1E3A3E3002B0BC54A89D66A3B532E8152BB0FD681D134374B4F2197F0B451E4C68C589E1F213D42CB62FC749D0883D9A68B39B93A1582F957AC989E5664266BB53BB8A07C84F662D5E3B4D4B277840A98B37F8A2CDF892085AF77A0AD370B2A4649F2381B7136AEB189421C6C801DC4F20273922A57C76DB4DB487DFC33DA2AC490C77E8ABA4AC719E6F0428A37ADBBE04F776199ACE29C1BC3B8A1F8E0D049628FDA016735559589D660FB23421D29745528E160F60B5D1923E685D0E04BE9DAC15C90BCAC4F4A7FD5CE52950734F2A849CAAB083DD18324EE82D1679146E60C290A97E2C94FBFEEDD88DE9EBEB346DF9E11AE14F4540A84F98B210E5366A03A82128986543C48FC3867431B2531AF99B379CE7E8D3105C574B0D4974295E98EFA2C01AC31C80CB1654BCEFA8467A55BC7B55ADB92DC1BE438006E5392ED521B5817558DE5E38172D023E3236EEAE34037E92EA61D6DA463212E012E603709D65EBE8062644A17B1A00FF5DE6E42FD4B3812DACC8C85754616A5539AB60FEF0F9170413E94D3052CBA3A7B9FCF46F318D30DD88DD988C9C16F5BB8823538A8DBC4830B00E7CE5346277E4DAD464128025955E7E5FD184C40EEC184B6143FC4720DA45C7DE3ED4849D6ABC89B1C01D6761660EA595B65E7F70457A32A4D63CCC6FC9736ABDDB9AE9FC8FB90388DAB7BD2189B38488B17DA76B96DAB6871475F59FC36BD53076293EBF9970A1081BA84E44A3A109F6B7231E64C1C54BF9AABD2320185DC054672B2F8F52172CD262F14CCA3237542F421A2413DF5E371DD4F1297E01D81E392A6C4F3BBABAA3091B2F10DB1C4A2C12B0DDDC279F7AD45992225ACA55ADA7CB6370B07B0CD5B935B8DF18BFFA2567EBF77658772D043318B6BA159DBD3AA48C7A509A1F887A05118CBE1470599C2683D9C00DAA5480A05FFDDF7612E6D006B26D17 | 383 | 20181007123656 2 6 100 7679 5 FB0D9422C2C18ABC70FF186A01FA8ED40D4950F804266E0B9661F1E2A6EC548235ADF6A86C277AC391995CF5C43940D264D81121AE69F224E949221EDC039AFE2DA6752F6C04E10159FE65D54CBE5EF34174D36E069C4FB18C8E6DBB80B2C6E0F0AD82E0B7281B9D675AE9E85F509B12746130BF725235E2AC495D268C383378FA130AFF2584962A8A3EDEC0B02504DF264F77980B8342713A28BD3219D83F6D70CC1393E10D5A4734BC029FECD3383FF41CB73AC61C29B54B50E439807BFA5663814B6DA5E81B9491217BE616F6B5F93728669FEF51C06D049586FA6584DFBECD526C5CAE6BBD17F104FA69D353A01CD7E39D5BEA60EB0491DCAE78F3A42BFBCC1F366C55FB23B649197B2D2493180963388FBC4A2AC804ECD042A97A07943D46F18EB6D6C24FC050E3DBD8EE2C84FA03E34814EA53197F1121232E239AA0DA133BD81D439AB595FC6F895AB27D0C6C8A5C3F468C9EF81A42BCB7676C2FF4D381063700AEE81FB7369463187413077048310A98D2DC034CCAB7001A28E288B4E6A8DB609974EC9FFC75F6DA91203429ACCEBA35B4CC03006BB069BD2A062A8CAF59E200A8E27B0CD48F896AE6236F0208AE3924EDF58F87557D05413C00CCAD3B95E6F659EC73FDC6933D6D1E21BE753670F6725F21721FDDC304E6178A3164A85F6757A508AFBD9AA4F1C7B181866F5AA306A25032E59C042ACA8EAEDE17B5136ACEC3B56D2E73284922162E614BE0B87654B7B12132D15E6F11F23B0FF2D0A898680B9A66BB908106A60FFC9A0FB43FF3ADCECDB128764764E1D429A0A194ABCD5AB41CE6B75CD025AC8A5FF2153A20E937354A27E361FB396D87924DCF91FE72203BCEA88303DF0A848EA5ADA9282C2C3C2B92542F721C58809178F36E2DA00D17C613FA5173BFC0F27F9502A1AE535BA9D373ABF83413A8F086FE904B0B45F449CCA9F0615028E1A4878463EA8EB424CA76949EA34A6A36C8DDE6EC4A4AE653A2F1F1009773BB92B8D20530A3313F388FA1AD70C3ECB716E5CA80A06C35CBA247D15D41795F8E083B27B4E227B616408863AFAE48F4C4AE68F1DA9A4B427F666DAD85035D1A499B25A09CC19548A5B9276FB082AA8B00879CCE17105CE7368033F4A18D68826780EB79162AD1B7C70879041BA08FB4A45B3071951DD05EFC9FD04AFCB99D57AEFD4EC51549EF9A166312E744CC7EEAEE9543C02D1B2D233A4B59B187D6E1DB64C843358E8B3C73765DDDC9D79D2D270FF493F56BB4F2F0DC4002605999644FF2A573CBA98492AC8577F5C1A822FD0FB709EAD85C786292DCB4FC8FAD924EEE898502BCD84ED4023C7D74A691A7A3A812685C466BB5F597 |
384 | 20180430191732 2 6 100 8191 2 FAEE1044985A5E9005F621D69401F45F006C4AC70C849E5C17F3D28A22FE2C86DEF3780E73C15BC778C65638702E1DF6193E19C79BC8A9CEC1D64759E6E8E1B3754AAD1F82819BDB1F1E224F7D7BFF62061D89F6AE8D8EAF444A543333A4E71A4EBEE16AA9FEAE434FD965B90E6B57A198C12619CC31EF4F2BA3ACEA4C0D31EDD7BD715FE76FCD9282221F27F6CFD678ABC0458E4EDFBB72FB23333A3137C1C9AEB0AE4E5D98148527A5670311C0181861C1305901FF9704C64F88B75AD76574ABE3B5CEAAC2F675F5A56B807B2D9FFEDC975C7CFC6C697A18ED7F3D76C164FE108255F43971A3CCEE8FDC5E95F38B6ED8F8B150E17A7780E2D5CFD9A4D35BC4E2B3C3F4F286DC9DD0A8A53A22E643AD29753AAAB58E4C268A4145B1958050895F7FF5EB300FD0435824024F6DA4C38039A621D8E553493D964479DB2C1647C5123A9ED27955117CB966D41BAB3FA2F6AE1CE0E9787E3C815B1E3A3E3002B0BC54A89D66A3B532E8152BB0FD681D134374B4F2197F0B451E4C68C589E1F213D42CB62FC749D0883D9A68B39B93A1582F957AC989E5664266BB53BB8A07C84F662D5E3B4D4B277840A98B37F8A2CDF892085AF77A0AD370B2A4649F2381B7136AEB189421C6C801DC4F20273922A57C76DB4DB487DFC33DA2AC490C77E8ABA4AC719E6F0428A37ADBBE04F776199ACE29C1BC3B8A1F8E0D049628FDA016735559589D660FB23421D29745528E160F60B5D1923E685D0E04BE9DAC15C90BCAC4F4A7FD5CE52950734F2A849CAAB083DD18324EE82D1679146E60C290A97E2C94FBFEEDD88DE9EBEB346DF9E11AE14F4540A84F98B210E5366A03A82128986543C48FC3867431B2531AF99B379CE7E8D3105C574B0D4974295E98EFA2C01AC31C80CB1654BCEFA8467A55BC7B55ADB92DC1BE438006E5392ED521B5817558DE5E38172D023E3236EEAE34037E92EA61D6DA463212E012E603709D65EBE8062644A17B1A00FF5DE6E42FD4B3812DACC8C85754616A5539AB60FEF0F9170413E94D3052CBA3A7B9FCF46F318D30DD88DD988C9C16F5BB8823538A8DBC4830B00E7CE5346277E4DAD464128025955E7E5FD184C40EEC184B6143FC4720DA45C7DE3ED4849D6ABC89B1C01D6761660EA595B65E7F70457A32A4D63CCC6FC9736ABDDB9AE9FC8FB90388DAB7BD2189B38488B17DA76B96DAB6871475F59FC36BD53076293EBF9970A1081BA84E44A3A109F6B7231E64C1C54BF9AABD2320185DC054672B2F8F52172CD262F14CCA3237542F421A2413DF5E371DD4F1297E01D81E392A6C4F3BBABAA3091B2F10DB1C4A2C12B0DDDC279F7AD45992225ACA55ADA7CB6370B07B0CD5B935B8DF18BFFA2567EBF77658772D043318B6BA159DBD3AA48C7A509A1F887A05118CBE1470599C2683D9C00DAA5480A05FFDDF7612E6D00CD17013 | 384 | 20181007145027 2 6 100 7679 2 FB0D9422C2C18ABC70FF186A01FA8ED40D4950F804266E0B9661F1E2A6EC548235ADF6A86C277AC391995CF5C43940D264D81121AE69F224E949221EDC039AFE2DA6752F6C04E10159FE65D54CBE5EF34174D36E069C4FB18C8E6DBB80B2C6E0F0AD82E0B7281B9D675AE9E85F509B12746130BF725235E2AC495D268C383378FA130AFF2584962A8A3EDEC0B02504DF264F77980B8342713A28BD3219D83F6D70CC1393E10D5A4734BC029FECD3383FF41CB73AC61C29B54B50E439807BFA5663814B6DA5E81B9491217BE616F6B5F93728669FEF51C06D049586FA6584DFBECD526C5CAE6BBD17F104FA69D353A01CD7E39D5BEA60EB0491DCAE78F3A42BFBCC1F366C55FB23B649197B2D2493180963388FBC4A2AC804ECD042A97A07943D46F18EB6D6C24FC050E3DBD8EE2C84FA03E34814EA53197F1121232E239AA0DA133BD81D439AB595FC6F895AB27D0C6C8A5C3F468C9EF81A42BCB7676C2FF4D381063700AEE81FB7369463187413077048310A98D2DC034CCAB7001A28E288B4E6A8DB609974EC9FFC75F6DA91203429ACCEBA35B4CC03006BB069BD2A062A8CAF59E200A8E27B0CD48F896AE6236F0208AE3924EDF58F87557D05413C00CCAD3B95E6F659EC73FDC6933D6D1E21BE753670F6725F21721FDDC304E6178A3164A85F6757A508AFBD9AA4F1C7B181866F5AA306A25032E59C042ACA8EAEDE17B5136ACEC3B56D2E73284922162E614BE0B87654B7B12132D15E6F11F23B0FF2D0A898680B9A66BB908106A60FFC9A0FB43FF3ADCECDB128764764E1D429A0A194ABCD5AB41CE6B75CD025AC8A5FF2153A20E937354A27E361FB396D87924DCF91FE72203BCEA88303DF0A848EA5ADA9282C2C3C2B92542F721C58809178F36E2DA00D17C613FA5173BFC0F27F9502A1AE535BA9D373ABF83413A8F086FE904B0B45F449CCA9F0615028E1A4878463EA8EB424CA76949EA34A6A36C8DDE6EC4A4AE653A2F1F1009773BB92B8D20530A3313F388FA1AD70C3ECB716E5CA80A06C35CBA247D15D41795F8E083B27B4E227B616408863AFAE48F4C4AE68F1DA9A4B427F666DAD85035D1A499B25A09CC19548A5B9276FB082AA8B00879CCE17105CE7368033F4A18D68826780EB79162AD1B7C70879041BA08FB4A45B3071951DD05EFC9FD04AFCB99D57AEFD4EC51549EF9A166312E744CC7EEAEE9543C02D1B2D233A4B59B187D6E1DB64C843358E8B3C73765DDDC9D79D2D270FF493F56BB4F2F0DC4002605999644FF2A573CBA98492AC8577F5C1A822FD0FB709EAD85C786292DCB4FC8FAD924EEE898502BCD84ED4023C7D74A691A7A3A812685C466D436643 |
385 | 20180501005739 2 6 100 8191 2 FAEE1044985A5E9005F621D69401F45F006C4AC70C849E5C17F3D28A22FE2C86DEF3780E73C15BC778C65638702E1DF6193E19C79BC8A9CEC1D64759E6E8E1B3754AAD1F82819BDB1F1E224F7D7BFF62061D89F6AE8D8EAF444A543333A4E71A4EBEE16AA9FEAE434FD965B90E6B57A198C12619CC31EF4F2BA3ACEA4C0D31EDD7BD715FE76FCD9282221F27F6CFD678ABC0458E4EDFBB72FB23333A3137C1C9AEB0AE4E5D98148527A5670311C0181861C1305901FF9704C64F88B75AD76574ABE3B5CEAAC2F675F5A56B807B2D9FFEDC975C7CFC6C697A18ED7F3D76C164FE108255F43971A3CCEE8FDC5E95F38B6ED8F8B150E17A7780E2D5CFD9A4D35BC4E2B3C3F4F286DC9DD0A8A53A22E643AD29753AAAB58E4C268A4145B1958050895F7FF5EB300FD0435824024F6DA4C38039A621D8E553493D964479DB2C1647C5123A9ED27955117CB966D41BAB3FA2F6AE1CE0E9787E3C815B1E3A3E3002B0BC54A89D66A3B532E8152BB0FD681D134374B4F2197F0B451E4C68C589E1F213D42CB62FC749D0883D9A68B39B93A1582F957AC989E5664266BB53BB8A07C84F662D5E3B4D4B277840A98B37F8A2CDF892085AF77A0AD370B2A4649F2381B7136AEB189421C6C801DC4F20273922A57C76DB4DB487DFC33DA2AC490C77E8ABA4AC719E6F0428A37ADBBE04F776199ACE29C1BC3B8A1F8E0D049628FDA016735559589D660FB23421D29745528E160F60B5D1923E685D0E04BE9DAC15C90BCAC4F4A7FD5CE52950734F2A849CAAB083DD18324EE82D1679146E60C290A97E2C94FBFEEDD88DE9EBEB346DF9E11AE14F4540A84F98B210E5366A03A82128986543C48FC3867431B2531AF99B379CE7E8D3105C574B0D4974295E98EFA2C01AC31C80CB1654BCEFA8467A55BC7B55ADB92DC1BE438006E5392ED521B5817558DE5E38172D023E3236EEAE34037E92EA61D6DA463212E012E603709D65EBE8062644A17B1A00FF5DE6E42FD4B3812DACC8C85754616A5539AB60FEF0F9170413E94D3052CBA3A7B9FCF46F318D30DD88DD988C9C16F5BB8823538A8DBC4830B00E7CE5346277E4DAD464128025955E7E5FD184C40EEC184B6143FC4720DA45C7DE3ED4849D6ABC89B1C01D6761660EA595B65E7F70457A32A4D63CCC6FC9736ABDDB9AE9FC8FB90388DAB7BD2189B38488B17DA76B96DAB6871475F59FC36BD53076293EBF9970A1081BA84E44A3A109F6B7231E64C1C54BF9AABD2320185DC054672B2F8F52172CD262F14CCA3237542F421A2413DF5E371DD4F1297E01D81E392A6C4F3BBABAA3091B2F10DB1C4A2C12B0DDDC279F7AD45992225ACA55ADA7CB6370B07B0CD5B935B8DF18BFFA2567EBF77658772D043318B6BA159DBD3AA48C7A509A1F887A05118CBE1470599C2683D9C00DAA5480A05FFDDF7612E6D01047BA13 | 385 | 20181007184043 2 6 100 7679 2 FB0D9422C2C18ABC70FF186A01FA8ED40D4950F804266E0B9661F1E2A6EC548235ADF6A86C277AC391995CF5C43940D264D81121AE69F224E949221EDC039AFE2DA6752F6C04E10159FE65D54CBE5EF34174D36E069C4FB18C8E6DBB80B2C6E0F0AD82E0B7281B9D675AE9E85F509B12746130BF725235E2AC495D268C383378FA130AFF2584962A8A3EDEC0B02504DF264F77980B8342713A28BD3219D83F6D70CC1393E10D5A4734BC029FECD3383FF41CB73AC61C29B54B50E439807BFA5663814B6DA5E81B9491217BE616F6B5F93728669FEF51C06D049586FA6584DFBECD526C5CAE6BBD17F104FA69D353A01CD7E39D5BEA60EB0491DCAE78F3A42BFBCC1F366C55FB23B649197B2D2493180963388FBC4A2AC804ECD042A97A07943D46F18EB6D6C24FC050E3DBD8EE2C84FA03E34814EA53197F1121232E239AA0DA133BD81D439AB595FC6F895AB27D0C6C8A5C3F468C9EF81A42BCB7676C2FF4D381063700AEE81FB7369463187413077048310A98D2DC034CCAB7001A28E288B4E6A8DB609974EC9FFC75F6DA91203429ACCEBA35B4CC03006BB069BD2A062A8CAF59E200A8E27B0CD48F896AE6236F0208AE3924EDF58F87557D05413C00CCAD3B95E6F659EC73FDC6933D6D1E21BE753670F6725F21721FDDC304E6178A3164A85F6757A508AFBD9AA4F1C7B181866F5AA306A25032E59C042ACA8EAEDE17B5136ACEC3B56D2E73284922162E614BE0B87654B7B12132D15E6F11F23B0FF2D0A898680B9A66BB908106A60FFC9A0FB43FF3ADCECDB128764764E1D429A0A194ABCD5AB41CE6B75CD025AC8A5FF2153A20E937354A27E361FB396D87924DCF91FE72203BCEA88303DF0A848EA5ADA9282C2C3C2B92542F721C58809178F36E2DA00D17C613FA5173BFC0F27F9502A1AE535BA9D373ABF83413A8F086FE904B0B45F449CCA9F0615028E1A4878463EA8EB424CA76949EA34A6A36C8DDE6EC4A4AE653A2F1F1009773BB92B8D20530A3313F388FA1AD70C3ECB716E5CA80A06C35CBA247D15D41795F8E083B27B4E227B616408863AFAE48F4C4AE68F1DA9A4B427F666DAD85035D1A499B25A09CC19548A5B9276FB082AA8B00879CCE17105CE7368033F4A18D68826780EB79162AD1B7C70879041BA08FB4A45B3071951DD05EFC9FD04AFCB99D57AEFD4EC51549EF9A166312E744CC7EEAEE9543C02D1B2D233A4B59B187D6E1DB64C843358E8B3C73765DDDC9D79D2D270FF493F56BB4F2F0DC4002605999644FF2A573CBA98492AC8577F5C1A822FD0FB709EAD85C786292DCB4FC8FAD924EEE898502BCD84ED4023C7D74A691A7A3A812685C467005CF4B |
386 | 20180501022059 2 6 100 8191 2 FAEE1044985A5E9005F621D69401F45F006C4AC70C849E5C17F3D28A22FE2C86DEF3780E73C15BC778C65638702E1DF6193E19C79BC8A9CEC1D64759E6E8E1B3754AAD1F82819BDB1F1E224F7D7BFF62061D89F6AE8D8EAF444A543333A4E71A4EBEE16AA9FEAE434FD965B90E6B57A198C12619CC31EF4F2BA3ACEA4C0D31EDD7BD715FE76FCD9282221F27F6CFD678ABC0458E4EDFBB72FB23333A3137C1C9AEB0AE4E5D98148527A5670311C0181861C1305901FF9704C64F88B75AD76574ABE3B5CEAAC2F675F5A56B807B2D9FFEDC975C7CFC6C697A18ED7F3D76C164FE108255F43971A3CCEE8FDC5E95F38B6ED8F8B150E17A7780E2D5CFD9A4D35BC4E2B3C3F4F286DC9DD0A8A53A22E643AD29753AAAB58E4C268A4145B1958050895F7FF5EB300FD0435824024F6DA4C38039A621D8E553493D964479DB2C1647C5123A9ED27955117CB966D41BAB3FA2F6AE1CE0E9787E3C815B1E3A3E3002B0BC54A89D66A3B532E8152BB0FD681D134374B4F2197F0B451E4C68C589E1F213D42CB62FC749D0883D9A68B39B93A1582F957AC989E5664266BB53BB8A07C84F662D5E3B4D4B277840A98B37F8A2CDF892085AF77A0AD370B2A4649F2381B7136AEB189421C6C801DC4F20273922A57C76DB4DB487DFC33DA2AC490C77E8ABA4AC719E6F0428A37ADBBE04F776199ACE29C1BC3B8A1F8E0D049628FDA016735559589D660FB23421D29745528E160F60B5D1923E685D0E04BE9DAC15C90BCAC4F4A7FD5CE52950734F2A849CAAB083DD18324EE82D1679146E60C290A97E2C94FBFEEDD88DE9EBEB346DF9E11AE14F4540A84F98B210E5366A03A82128986543C48FC3867431B2531AF99B379CE7E8D3105C574B0D4974295E98EFA2C01AC31C80CB1654BCEFA8467A55BC7B55ADB92DC1BE438006E5392ED521B5817558DE5E38172D023E3236EEAE34037E92EA61D6DA463212E012E603709D65EBE8062644A17B1A00FF5DE6E42FD4B3812DACC8C85754616A5539AB60FEF0F9170413E94D3052CBA3A7B9FCF46F318D30DD88DD988C9C16F5BB8823538A8DBC4830B00E7CE5346277E4DAD464128025955E7E5FD184C40EEC184B6143FC4720DA45C7DE3ED4849D6ABC89B1C01D6761660EA595B65E7F70457A32A4D63CCC6FC9736ABDDB9AE9FC8FB90388DAB7BD2189B38488B17DA76B96DAB6871475F59FC36BD53076293EBF9970A1081BA84E44A3A109F6B7231E64C1C54BF9AABD2320185DC054672B2F8F52172CD262F14CCA3237542F421A2413DF5E371DD4F1297E01D81E392A6C4F3BBABAA3091B2F10DB1C4A2C12B0DDDC279F7AD45992225ACA55ADA7CB6370B07B0CD5B935B8DF18BFFA2567EBF77658772D043318B6BA159DBD3AA48C7A509A1F887A05118CBE1470599C2683D9C00DAA5480A05FFDDF7612E6D01117B47B | 386 | 20181007223658 2 6 100 8191 5 D72A51FC8A019CA61D28C85021CE881FBDCA1D9E2773A50343C390408ABF52C024F0268B5D4F74AA0722F8FA78F966B7AE411C57015CC9E0DB7E56B27A1D078D951747F90F8F663552B12F9BE26809481BD6D62C8EE018E2944DCF0EC7D31FFE3F7DD2F11F3C8311F1C2E2038613E541F53BA05FD92A540D11BB3267E80CCC5DEC74FD67AE473FAD56EFE2CF04457BB7B3121F93AC8F00A5DBE46E460B9B97823F937CF18722D4EE6373EF369D26A7602491493497C1EFDA3F7509772853CF84CD64A06A54FE32817B39B98CE3CE4477616CF232B04D0B2098D5A4E575939C63B26B72BE87B2BEF58F2F6DB4B2A0E00634E02637DF471D6519C22BA9494F225CA01A1A96886C6F02CE0D11EDE3370180E6E6F5CA54B44A8B66BF16ECD52193B7483700AA4051AF775F80818F3331AD80BB25A0FC8775B7821C32EAFDBEF75B3BFCB2F1A4BBDF5340B20AC9E185B0770CE6AAB120CFC4C8C88CA381946F48C0478DC07E5CF3CFB805A1BA8DB905A6D2ABFCFD765990CA4699D9F9B6922FECA4FF861362B4525FF0934E679109AB8F00909945FE897E927380F72416231AAE1A717D47BD129D5549F60C2EA377744B8807AA2432D1925D02C4C205715231DFAD86AC6B5253DE58E3E3F65484A0014CC1EFFBABC6EE912A925C08C8BB68E5FD7A13AED0116863EFA7E69A33D28A1FA853B7E0B84A5F78EFC44CDC39C4148C4B1B3D17E7371E51F96CFAAEBE15D67E82B590B9BB0567BC161AFF012F7571E514BCA7157A8C1521BD7147E83EE57721A77895722390D9C1B7C3BEEEF316E313F5A2DFBA0A5E3509F5F2CEB90C07E1177D3C8AA6CD56F5C5C614656D155350AAFD556890247AE6EDEE2236583A6DA347679C69A9B518FA9BD882F5B9850762C987F727CFEE68421A2D4F363EC45EDABAD574CC4C5AB7654F1C7E0CD84E708CD7C3ED66F369EC1E0E193346FE4747709F6A6DC969E3D2394758E807F4370E2C5A64B5190C5E9D3983CF5778076667B3E41AA28A868B9EA72C45A9234A2C92F0627512AC815CDC1418C676E66B474C071C65DF4EB7AA109ED189B30F49C9A7310CDD5504A0155E5A37FB41548B78049F3FF57EF682D04EFF6B43E5390B07019C555CB55D477552EC778C5BBF00830D1D2B233CB9B5C5A1817F96F395A527458625740A6B2FEFDF160F003D72086FAD44EA24CC669E710A965052D997E63144FD5F32271D0CF75D24DCCF5F4A8E7FD0381E03F0E9DB6F63BA5A59790788D48161E0C292436F79120C9057EBC7B1CA430E5D060836CEE57945DF5557EE2036588A902A1BD163F4DA436602B4BEF61A20D52B15877BFF9973366F242A6D2564BF32E2251C0E07DB2C98A31E82B63F6513FD4CC37D040653E3A68C6B2DB43B569FB070120ADEE89042BF0AC0E9103164E5F8BC57847A1F109ABF35E6E5DE0258C211133D9A97 |
387 | 20180501025617 2 6 100 8191 5 FAEE1044985A5E9005F621D69401F45F006C4AC70C849E5C17F3D28A22FE2C86DEF3780E73C15BC778C65638702E1DF6193E19C79BC8A9CEC1D64759E6E8E1B3754AAD1F82819BDB1F1E224F7D7BFF62061D89F6AE8D8EAF444A543333A4E71A4EBEE16AA9FEAE434FD965B90E6B57A198C12619CC31EF4F2BA3ACEA4C0D31EDD7BD715FE76FCD9282221F27F6CFD678ABC0458E4EDFBB72FB23333A3137C1C9AEB0AE4E5D98148527A5670311C0181861C1305901FF9704C64F88B75AD76574ABE3B5CEAAC2F675F5A56B807B2D9FFEDC975C7CFC6C697A18ED7F3D76C164FE108255F43971A3CCEE8FDC5E95F38B6ED8F8B150E17A7780E2D5CFD9A4D35BC4E2B3C3F4F286DC9DD0A8A53A22E643AD29753AAAB58E4C268A4145B1958050895F7FF5EB300FD0435824024F6DA4C38039A621D8E553493D964479DB2C1647C5123A9ED27955117CB966D41BAB3FA2F6AE1CE0E9787E3C815B1E3A3E3002B0BC54A89D66A3B532E8152BB0FD681D134374B4F2197F0B451E4C68C589E1F213D42CB62FC749D0883D9A68B39B93A1582F957AC989E5664266BB53BB8A07C84F662D5E3B4D4B277840A98B37F8A2CDF892085AF77A0AD370B2A4649F2381B7136AEB189421C6C801DC4F20273922A57C76DB4DB487DFC33DA2AC490C77E8ABA4AC719E6F0428A37ADBBE04F776199ACE29C1BC3B8A1F8E0D049628FDA016735559589D660FB23421D29745528E160F60B5D1923E685D0E04BE9DAC15C90BCAC4F4A7FD5CE52950734F2A849CAAB083DD18324EE82D1679146E60C290A97E2C94FBFEEDD88DE9EBEB346DF9E11AE14F4540A84F98B210E5366A03A82128986543C48FC3867431B2531AF99B379CE7E8D3105C574B0D4974295E98EFA2C01AC31C80CB1654BCEFA8467A55BC7B55ADB92DC1BE438006E5392ED521B5817558DE5E38172D023E3236EEAE34037E92EA61D6DA463212E012E603709D65EBE8062644A17B1A00FF5DE6E42FD4B3812DACC8C85754616A5539AB60FEF0F9170413E94D3052CBA3A7B9FCF46F318D30DD88DD988C9C16F5BB8823538A8DBC4830B00E7CE5346277E4DAD464128025955E7E5FD184C40EEC184B6143FC4720DA45C7DE3ED4849D6ABC89B1C01D6761660EA595B65E7F70457A32A4D63CCC6FC9736ABDDB9AE9FC8FB90388DAB7BD2189B38488B17DA76B96DAB6871475F59FC36BD53076293EBF9970A1081BA84E44A3A109F6B7231E64C1C54BF9AABD2320185DC054672B2F8F52172CD262F14CCA3237542F421A2413DF5E371DD4F1297E01D81E392A6C4F3BBABAA3091B2F10DB1C4A2C12B0DDDC279F7AD45992225ACA55ADA7CB6370B07B0CD5B935B8DF18BFFA2567EBF77658772D043318B6BA159DBD3AA48C7A509A1F887A05118CBE1470599C2683D9C00DAA5480A05FFDDF7612E6D0116B88A7 | 387 | 20181008074149 2 6 100 8191 2 D72A51FC8A019CA61D28C85021CE881FBDCA1D9E2773A50343C390408ABF52C024F0268B5D4F74AA0722F8FA78F966B7AE411C57015CC9E0DB7E56B27A1D078D951747F90F8F663552B12F9BE26809481BD6D62C8EE018E2944DCF0EC7D31FFE3F7DD2F11F3C8311F1C2E2038613E541F53BA05FD92A540D11BB3267E80CCC5DEC74FD67AE473FAD56EFE2CF04457BB7B3121F93AC8F00A5DBE46E460B9B97823F937CF18722D4EE6373EF369D26A7602491493497C1EFDA3F7509772853CF84CD64A06A54FE32817B39B98CE3CE4477616CF232B04D0B2098D5A4E575939C63B26B72BE87B2BEF58F2F6DB4B2A0E00634E02637DF471D6519C22BA9494F225CA01A1A96886C6F02CE0D11EDE3370180E6E6F5CA54B44A8B66BF16ECD52193B7483700AA4051AF775F80818F3331AD80BB25A0FC8775B7821C32EAFDBEF75B3BFCB2F1A4BBDF5340B20AC9E185B0770CE6AAB120CFC4C8C88CA381946F48C0478DC07E5CF3CFB805A1BA8DB905A6D2ABFCFD765990CA4699D9F9B6922FECA4FF861362B4525FF0934E679109AB8F00909945FE897E927380F72416231AAE1A717D47BD129D5549F60C2EA377744B8807AA2432D1925D02C4C205715231DFAD86AC6B5253DE58E3E3F65484A0014CC1EFFBABC6EE912A925C08C8BB68E5FD7A13AED0116863EFA7E69A33D28A1FA853B7E0B84A5F78EFC44CDC39C4148C4B1B3D17E7371E51F96CFAAEBE15D67E82B590B9BB0567BC161AFF012F7571E514BCA7157A8C1521BD7147E83EE57721A77895722390D9C1B7C3BEEEF316E313F5A2DFBA0A5E3509F5F2CEB90C07E1177D3C8AA6CD56F5C5C614656D155350AAFD556890247AE6EDEE2236583A6DA347679C69A9B518FA9BD882F5B9850762C987F727CFEE68421A2D4F363EC45EDABAD574CC4C5AB7654F1C7E0CD84E708CD7C3ED66F369EC1E0E193346FE4747709F6A6DC969E3D2394758E807F4370E2C5A64B5190C5E9D3983CF5778076667B3E41AA28A868B9EA72C45A9234A2C92F0627512AC815CDC1418C676E66B474C071C65DF4EB7AA109ED189B30F49C9A7310CDD5504A0155E5A37FB41548B78049F3FF57EF682D04EFF6B43E5390B07019C555CB55D477552EC778C5BBF00830D1D2B233CB9B5C5A1817F96F395A527458625740A6B2FEFDF160F003D72086FAD44EA24CC669E710A965052D997E63144FD5F32271D0CF75D24DCCF5F4A8E7FD0381E03F0E9DB6F63BA5A59790788D48161E0C292436F79120C9057EBC7B1CA430E5D060836CEE57945DF5557EE2036588A902A1BD163F4DA436602B4BEF61A20D52B15877BFF9973366F242A6D2564BF32E2251C0E07DB2C98A31E82B63F6513FD4CC37D040653E3A68C6B2DB43B569FB070120ADEE89042BF0AC0E9103164E5F8BC57847A1F109ABF35E6E5DE0258C21119A92B8B |
388 | 20180501031400 2 6 100 8191 5 FAEE1044985A5E9005F621D69401F45F006C4AC70C849E5C17F3D28A22FE2C86DEF3780E73C15BC778C65638702E1DF6193E19C79BC8A9CEC1D64759E6E8E1B3754AAD1F82819BDB1F1E224F7D7BFF62061D89F6AE8D8EAF444A543333A4E71A4EBEE16AA9FEAE434FD965B90E6B57A198C12619CC31EF4F2BA3ACEA4C0D31EDD7BD715FE76FCD9282221F27F6CFD678ABC0458E4EDFBB72FB23333A3137C1C9AEB0AE4E5D98148527A5670311C0181861C1305901FF9704C64F88B75AD76574ABE3B5CEAAC2F675F5A56B807B2D9FFEDC975C7CFC6C697A18ED7F3D76C164FE108255F43971A3CCEE8FDC5E95F38B6ED8F8B150E17A7780E2D5CFD9A4D35BC4E2B3C3F4F286DC9DD0A8A53A22E643AD29753AAAB58E4C268A4145B1958050895F7FF5EB300FD0435824024F6DA4C38039A621D8E553493D964479DB2C1647C5123A9ED27955117CB966D41BAB3FA2F6AE1CE0E9787E3C815B1E3A3E3002B0BC54A89D66A3B532E8152BB0FD681D134374B4F2197F0B451E4C68C589E1F213D42CB62FC749D0883D9A68B39B93A1582F957AC989E5664266BB53BB8A07C84F662D5E3B4D4B277840A98B37F8A2CDF892085AF77A0AD370B2A4649F2381B7136AEB189421C6C801DC4F20273922A57C76DB4DB487DFC33DA2AC490C77E8ABA4AC719E6F0428A37ADBBE04F776199ACE29C1BC3B8A1F8E0D049628FDA016735559589D660FB23421D29745528E160F60B5D1923E685D0E04BE9DAC15C90BCAC4F4A7FD5CE52950734F2A849CAAB083DD18324EE82D1679146E60C290A97E2C94FBFEEDD88DE9EBEB346DF9E11AE14F4540A84F98B210E5366A03A82128986543C48FC3867431B2531AF99B379CE7E8D3105C574B0D4974295E98EFA2C01AC31C80CB1654BCEFA8467A55BC7B55ADB92DC1BE438006E5392ED521B5817558DE5E38172D023E3236EEAE34037E92EA61D6DA463212E012E603709D65EBE8062644A17B1A00FF5DE6E42FD4B3812DACC8C85754616A5539AB60FEF0F9170413E94D3052CBA3A7B9FCF46F318D30DD88DD988C9C16F5BB8823538A8DBC4830B00E7CE5346277E4DAD464128025955E7E5FD184C40EEC184B6143FC4720DA45C7DE3ED4849D6ABC89B1C01D6761660EA595B65E7F70457A32A4D63CCC6FC9736ABDDB9AE9FC8FB90388DAB7BD2189B38488B17DA76B96DAB6871475F59FC36BD53076293EBF9970A1081BA84E44A3A109F6B7231E64C1C54BF9AABD2320185DC054672B2F8F52172CD262F14CCA3237542F421A2413DF5E371DD4F1297E01D81E392A6C4F3BBABAA3091B2F10DB1C4A2C12B0DDDC279F7AD45992225ACA55ADA7CB6370B07B0CD5B935B8DF18BFFA2567EBF77658772D043318B6BA159DBD3AA48C7A509A1F887A05118CBE1470599C2683D9C00DAA5480A05FFDDF7612E6D01190866F | 388 | 20181008163451 2 6 100 8191 2 D72A51FC8A019CA61D28C85021CE881FBDCA1D9E2773A50343C390408ABF52C024F0268B5D4F74AA0722F8FA78F966B7AE411C57015CC9E0DB7E56B27A1D078D951747F90F8F663552B12F9BE26809481BD6D62C8EE018E2944DCF0EC7D31FFE3F7DD2F11F3C8311F1C2E2038613E541F53BA05FD92A540D11BB3267E80CCC5DEC74FD67AE473FAD56EFE2CF04457BB7B3121F93AC8F00A5DBE46E460B9B97823F937CF18722D4EE6373EF369D26A7602491493497C1EFDA3F7509772853CF84CD64A06A54FE32817B39B98CE3CE4477616CF232B04D0B2098D5A4E575939C63B26B72BE87B2BEF58F2F6DB4B2A0E00634E02637DF471D6519C22BA9494F225CA01A1A96886C6F02CE0D11EDE3370180E6E6F5CA54B44A8B66BF16ECD52193B7483700AA4051AF775F80818F3331AD80BB25A0FC8775B7821C32EAFDBEF75B3BFCB2F1A4BBDF5340B20AC9E185B0770CE6AAB120CFC4C8C88CA381946F48C0478DC07E5CF3CFB805A1BA8DB905A6D2ABFCFD765990CA4699D9F9B6922FECA4FF861362B4525FF0934E679109AB8F00909945FE897E927380F72416231AAE1A717D47BD129D5549F60C2EA377744B8807AA2432D1925D02C4C205715231DFAD86AC6B5253DE58E3E3F65484A0014CC1EFFBABC6EE912A925C08C8BB68E5FD7A13AED0116863EFA7E69A33D28A1FA853B7E0B84A5F78EFC44CDC39C4148C4B1B3D17E7371E51F96CFAAEBE15D67E82B590B9BB0567BC161AFF012F7571E514BCA7157A8C1521BD7147E83EE57721A77895722390D9C1B7C3BEEEF316E313F5A2DFBA0A5E3509F5F2CEB90C07E1177D3C8AA6CD56F5C5C614656D155350AAFD556890247AE6EDEE2236583A6DA347679C69A9B518FA9BD882F5B9850762C987F727CFEE68421A2D4F363EC45EDABAD574CC4C5AB7654F1C7E0CD84E708CD7C3ED66F369EC1E0E193346FE4747709F6A6DC969E3D2394758E807F4370E2C5A64B5190C5E9D3983CF5778076667B3E41AA28A868B9EA72C45A9234A2C92F0627512AC815CDC1418C676E66B474C071C65DF4EB7AA109ED189B30F49C9A7310CDD5504A0155E5A37FB41548B78049F3FF57EF682D04EFF6B43E5390B07019C555CB55D477552EC778C5BBF00830D1D2B233CB9B5C5A1817F96F395A527458625740A6B2FEFDF160F003D72086FAD44EA24CC669E710A965052D997E63144FD5F32271D0CF75D24DCCF5F4A8E7FD0381E03F0E9DB6F63BA5A59790788D48161E0C292436F79120C9057EBC7B1CA430E5D060836CEE57945DF5557EE2036588A902A1BD163F4DA436602B4BEF61A20D52B15877BFF9973366F242A6D2564BF32E2251C0E07DB2C98A31E82B63F6513FD4CC37D040653E3A68C6B2DB43B569FB070120ADEE89042BF0AC0E9103164E5F8BC57847A1F109ABF35E6E5DE0258C2111FD14FAB |
389 | 20180501201356 2 6 100 8191 2 FAEE1044985A5E9005F621D69401F45F006C4AC70C849E5C17F3D28A22FE2C86DEF3780E73C15BC778C65638702E1DF6193E19C79BC8A9CEC1D64759E6E8E1B3754AAD1F82819BDB1F1E224F7D7BFF62061D89F6AE8D8EAF444A543333A4E71A4EBEE16AA9FEAE434FD965B90E6B57A198C12619CC31EF4F2BA3ACEA4C0D31EDD7BD715FE76FCD9282221F27F6CFD678ABC0458E4EDFBB72FB23333A3137C1C9AEB0AE4E5D98148527A5670311C0181861C1305901FF9704C64F88B75AD76574ABE3B5CEAAC2F675F5A56B807B2D9FFEDC975C7CFC6C697A18ED7F3D76C164FE108255F43971A3CCEE8FDC5E95F38B6ED8F8B150E17A7780E2D5CFD9A4D35BC4E2B3C3F4F286DC9DD0A8A53A22E643AD29753AAAB58E4C268A4145B1958050895F7FF5EB300FD0435824024F6DA4C38039A621D8E553493D964479DB2C1647C5123A9ED27955117CB966D41BAB3FA2F6AE1CE0E9787E3C815B1E3A3E3002B0BC54A89D66A3B532E8152BB0FD681D134374B4F2197F0B451E4C68C589E1F213D42CB62FC749D0883D9A68B39B93A1582F957AC989E5664266BB53BB8A07C84F662D5E3B4D4B277840A98B37F8A2CDF892085AF77A0AD370B2A4649F2381B7136AEB189421C6C801DC4F20273922A57C76DB4DB487DFC33DA2AC490C77E8ABA4AC719E6F0428A37ADBBE04F776199ACE29C1BC3B8A1F8E0D049628FDA016735559589D660FB23421D29745528E160F60B5D1923E685D0E04BE9DAC15C90BCAC4F4A7FD5CE52950734F2A849CAAB083DD18324EE82D1679146E60C290A97E2C94FBFEEDD88DE9EBEB346DF9E11AE14F4540A84F98B210E5366A03A82128986543C48FC3867431B2531AF99B379CE7E8D3105C574B0D4974295E98EFA2C01AC31C80CB1654BCEFA8467A55BC7B55ADB92DC1BE438006E5392ED521B5817558DE5E38172D023E3236EEAE34037E92EA61D6DA463212E012E603709D65EBE8062644A17B1A00FF5DE6E42FD4B3812DACC8C85754616A5539AB60FEF0F9170413E94D3052CBA3A7B9FCF46F318D30DD88DD988C9C16F5BB8823538A8DBC4830B00E7CE5346277E4DAD464128025955E7E5FD184C40EEC184B6143FC4720DA45C7DE3ED4849D6ABC89B1C01D6761660EA595B65E7F70457A32A4D63CCC6FC9736ABDDB9AE9FC8FB90388DAB7BD2189B38488B17DA76B96DAB6871475F59FC36BD53076293EBF9970A1081BA84E44A3A109F6B7231E64C1C54BF9AABD2320185DC054672B2F8F52172CD262F14CCA3237542F421A2413DF5E371DD4F1297E01D81E392A6C4F3BBABAA3091B2F10DB1C4A2C12B0DDDC279F7AD45992225ACA55ADA7CB6370B07B0CD5B935B8DF18BFFA2567EBF77658772D043318B6BA159DBD3AA48C7A509A1F887A05118CBE1470599C2683D9C00DAA5480A05FFDDF7612E6D01BDDAB3B | 389 | 20181008224318 2 6 100 8191 2 D72A51FC8A019CA61D28C85021CE881FBDCA1D9E2773A50343C390408ABF52C024F0268B5D4F74AA0722F8FA78F966B7AE411C57015CC9E0DB7E56B27A1D078D951747F90F8F663552B12F9BE26809481BD6D62C8EE018E2944DCF0EC7D31FFE3F7DD2F11F3C8311F1C2E2038613E541F53BA05FD92A540D11BB3267E80CCC5DEC74FD67AE473FAD56EFE2CF04457BB7B3121F93AC8F00A5DBE46E460B9B97823F937CF18722D4EE6373EF369D26A7602491493497C1EFDA3F7509772853CF84CD64A06A54FE32817B39B98CE3CE4477616CF232B04D0B2098D5A4E575939C63B26B72BE87B2BEF58F2F6DB4B2A0E00634E02637DF471D6519C22BA9494F225CA01A1A96886C6F02CE0D11EDE3370180E6E6F5CA54B44A8B66BF16ECD52193B7483700AA4051AF775F80818F3331AD80BB25A0FC8775B7821C32EAFDBEF75B3BFCB2F1A4BBDF5340B20AC9E185B0770CE6AAB120CFC4C8C88CA381946F48C0478DC07E5CF3CFB805A1BA8DB905A6D2ABFCFD765990CA4699D9F9B6922FECA4FF861362B4525FF0934E679109AB8F00909945FE897E927380F72416231AAE1A717D47BD129D5549F60C2EA377744B8807AA2432D1925D02C4C205715231DFAD86AC6B5253DE58E3E3F65484A0014CC1EFFBABC6EE912A925C08C8BB68E5FD7A13AED0116863EFA7E69A33D28A1FA853B7E0B84A5F78EFC44CDC39C4148C4B1B3D17E7371E51F96CFAAEBE15D67E82B590B9BB0567BC161AFF012F7571E514BCA7157A8C1521BD7147E83EE57721A77895722390D9C1B7C3BEEEF316E313F5A2DFBA0A5E3509F5F2CEB90C07E1177D3C8AA6CD56F5C5C614656D155350AAFD556890247AE6EDEE2236583A6DA347679C69A9B518FA9BD882F5B9850762C987F727CFEE68421A2D4F363EC45EDABAD574CC4C5AB7654F1C7E0CD84E708CD7C3ED66F369EC1E0E193346FE4747709F6A6DC969E3D2394758E807F4370E2C5A64B5190C5E9D3983CF5778076667B3E41AA28A868B9EA72C45A9234A2C92F0627512AC815CDC1418C676E66B474C071C65DF4EB7AA109ED189B30F49C9A7310CDD5504A0155E5A37FB41548B78049F3FF57EF682D04EFF6B43E5390B07019C555CB55D477552EC778C5BBF00830D1D2B233CB9B5C5A1817F96F395A527458625740A6B2FEFDF160F003D72086FAD44EA24CC669E710A965052D997E63144FD5F32271D0CF75D24DCCF5F4A8E7FD0381E03F0E9DB6F63BA5A59790788D48161E0C292436F79120C9057EBC7B1CA430E5D060836CEE57945DF5557EE2036588A902A1BD163F4DA436602B4BEF61A20D52B15877BFF9973366F242A6D2564BF32E2251C0E07DB2C98A31E82B63F6513FD4CC37D040653E3A68C6B2DB43B569FB070120ADEE89042BF0AC0E9103164E5F8BC57847A1F109ABF35E6E5DE0258C211241066AB |
390 | 20180501204003 2 6 100 8191 5 FAEE1044985A5E9005F621D69401F45F006C4AC70C849E5C17F3D28A22FE2C86DEF3780E73C15BC778C65638702E1DF6193E19C79BC8A9CEC1D64759E6E8E1B3754AAD1F82819BDB1F1E224F7D7BFF62061D89F6AE8D8EAF444A543333A4E71A4EBEE16AA9FEAE434FD965B90E6B57A198C12619CC31EF4F2BA3ACEA4C0D31EDD7BD715FE76FCD9282221F27F6CFD678ABC0458E4EDFBB72FB23333A3137C1C9AEB0AE4E5D98148527A5670311C0181861C1305901FF9704C64F88B75AD76574ABE3B5CEAAC2F675F5A56B807B2D9FFEDC975C7CFC6C697A18ED7F3D76C164FE108255F43971A3CCEE8FDC5E95F38B6ED8F8B150E17A7780E2D5CFD9A4D35BC4E2B3C3F4F286DC9DD0A8A53A22E643AD29753AAAB58E4C268A4145B1958050895F7FF5EB300FD0435824024F6DA4C38039A621D8E553493D964479DB2C1647C5123A9ED27955117CB966D41BAB3FA2F6AE1CE0E9787E3C815B1E3A3E3002B0BC54A89D66A3B532E8152BB0FD681D134374B4F2197F0B451E4C68C589E1F213D42CB62FC749D0883D9A68B39B93A1582F957AC989E5664266BB53BB8A07C84F662D5E3B4D4B277840A98B37F8A2CDF892085AF77A0AD370B2A4649F2381B7136AEB189421C6C801DC4F20273922A57C76DB4DB487DFC33DA2AC490C77E8ABA4AC719E6F0428A37ADBBE04F776199ACE29C1BC3B8A1F8E0D049628FDA016735559589D660FB23421D29745528E160F60B5D1923E685D0E04BE9DAC15C90BCAC4F4A7FD5CE52950734F2A849CAAB083DD18324EE82D1679146E60C290A97E2C94FBFEEDD88DE9EBEB346DF9E11AE14F4540A84F98B210E5366A03A82128986543C48FC3867431B2531AF99B379CE7E8D3105C574B0D4974295E98EFA2C01AC31C80CB1654BCEFA8467A55BC7B55ADB92DC1BE438006E5392ED521B5817558DE5E38172D023E3236EEAE34037E92EA61D6DA463212E012E603709D65EBE8062644A17B1A00FF5DE6E42FD4B3812DACC8C85754616A5539AB60FEF0F9170413E94D3052CBA3A7B9FCF46F318D30DD88DD988C9C16F5BB8823538A8DBC4830B00E7CE5346277E4DAD464128025955E7E5FD184C40EEC184B6143FC4720DA45C7DE3ED4849D6ABC89B1C01D6761660EA595B65E7F70457A32A4D63CCC6FC9736ABDDB9AE9FC8FB90388DAB7BD2189B38488B17DA76B96DAB6871475F59FC36BD53076293EBF9970A1081BA84E44A3A109F6B7231E64C1C54BF9AABD2320185DC054672B2F8F52172CD262F14CCA3237542F421A2413DF5E371DD4F1297E01D81E392A6C4F3BBABAA3091B2F10DB1C4A2C12B0DDDC279F7AD45992225ACA55ADA7CB6370B07B0CD5B935B8DF18BFFA2567EBF77658772D043318B6BA159DBD3AA48C7A509A1F887A05118CBE1470599C2683D9C00DAA5480A05FFDDF7612E6D01C18942F | 390 | 20181009003245 2 6 100 8191 2 D72A51FC8A019CA61D28C85021CE881FBDCA1D9E2773A50343C390408ABF52C024F0268B5D4F74AA0722F8FA78F966B7AE411C57015CC9E0DB7E56B27A1D078D951747F90F8F663552B12F9BE26809481BD6D62C8EE018E2944DCF0EC7D31FFE3F7DD2F11F3C8311F1C2E2038613E541F53BA05FD92A540D11BB3267E80CCC5DEC74FD67AE473FAD56EFE2CF04457BB7B3121F93AC8F00A5DBE46E460B9B97823F937CF18722D4EE6373EF369D26A7602491493497C1EFDA3F7509772853CF84CD64A06A54FE32817B39B98CE3CE4477616CF232B04D0B2098D5A4E575939C63B26B72BE87B2BEF58F2F6DB4B2A0E00634E02637DF471D6519C22BA9494F225CA01A1A96886C6F02CE0D11EDE3370180E6E6F5CA54B44A8B66BF16ECD52193B7483700AA4051AF775F80818F3331AD80BB25A0FC8775B7821C32EAFDBEF75B3BFCB2F1A4BBDF5340B20AC9E185B0770CE6AAB120CFC4C8C88CA381946F48C0478DC07E5CF3CFB805A1BA8DB905A6D2ABFCFD765990CA4699D9F9B6922FECA4FF861362B4525FF0934E679109AB8F00909945FE897E927380F72416231AAE1A717D47BD129D5549F60C2EA377744B8807AA2432D1925D02C4C205715231DFAD86AC6B5253DE58E3E3F65484A0014CC1EFFBABC6EE912A925C08C8BB68E5FD7A13AED0116863EFA7E69A33D28A1FA853B7E0B84A5F78EFC44CDC39C4148C4B1B3D17E7371E51F96CFAAEBE15D67E82B590B9BB0567BC161AFF012F7571E514BCA7157A8C1521BD7147E83EE57721A77895722390D9C1B7C3BEEEF316E313F5A2DFBA0A5E3509F5F2CEB90C07E1177D3C8AA6CD56F5C5C614656D155350AAFD556890247AE6EDEE2236583A6DA347679C69A9B518FA9BD882F5B9850762C987F727CFEE68421A2D4F363EC45EDABAD574CC4C5AB7654F1C7E0CD84E708CD7C3ED66F369EC1E0E193346FE4747709F6A6DC969E3D2394758E807F4370E2C5A64B5190C5E9D3983CF5778076667B3E41AA28A868B9EA72C45A9234A2C92F0627512AC815CDC1418C676E66B474C071C65DF4EB7AA109ED189B30F49C9A7310CDD5504A0155E5A37FB41548B78049F3FF57EF682D04EFF6B43E5390B07019C555CB55D477552EC778C5BBF00830D1D2B233CB9B5C5A1817F96F395A527458625740A6B2FEFDF160F003D72086FAD44EA24CC669E710A965052D997E63144FD5F32271D0CF75D24DCCF5F4A8E7FD0381E03F0E9DB6F63BA5A59790788D48161E0C292436F79120C9057EBC7B1CA430E5D060836CEE57945DF5557EE2036588A902A1BD163F4DA436602B4BEF61A20D52B15877BFF9973366F242A6D2564BF32E2251C0E07DB2C98A31E82B63F6513FD4CC37D040653E3A68C6B2DB43B569FB070120ADEE89042BF0AC0E9103164E5F8BC57847A1F109ABF35E6E5DE0258C211254A0343 |
391 | 20180502033416 2 6 100 8191 2 FAEE1044985A5E9005F621D69401F45F006C4AC70C849E5C17F3D28A22FE2C86DEF3780E73C15BC778C65638702E1DF6193E19C79BC8A9CEC1D64759E6E8E1B3754AAD1F82819BDB1F1E224F7D7BFF62061D89F6AE8D8EAF444A543333A4E71A4EBEE16AA9FEAE434FD965B90E6B57A198C12619CC31EF4F2BA3ACEA4C0D31EDD7BD715FE76FCD9282221F27F6CFD678ABC0458E4EDFBB72FB23333A3137C1C9AEB0AE4E5D98148527A5670311C0181861C1305901FF9704C64F88B75AD76574ABE3B5CEAAC2F675F5A56B807B2D9FFEDC975C7CFC6C697A18ED7F3D76C164FE108255F43971A3CCEE8FDC5E95F38B6ED8F8B150E17A7780E2D5CFD9A4D35BC4E2B3C3F4F286DC9DD0A8A53A22E643AD29753AAAB58E4C268A4145B1958050895F7FF5EB300FD0435824024F6DA4C38039A621D8E553493D964479DB2C1647C5123A9ED27955117CB966D41BAB3FA2F6AE1CE0E9787E3C815B1E3A3E3002B0BC54A89D66A3B532E8152BB0FD681D134374B4F2197F0B451E4C68C589E1F213D42CB62FC749D0883D9A68B39B93A1582F957AC989E5664266BB53BB8A07C84F662D5E3B4D4B277840A98B37F8A2CDF892085AF77A0AD370B2A4649F2381B7136AEB189421C6C801DC4F20273922A57C76DB4DB487DFC33DA2AC490C77E8ABA4AC719E6F0428A37ADBBE04F776199ACE29C1BC3B8A1F8E0D049628FDA016735559589D660FB23421D29745528E160F60B5D1923E685D0E04BE9DAC15C90BCAC4F4A7FD5CE52950734F2A849CAAB083DD18324EE82D1679146E60C290A97E2C94FBFEEDD88DE9EBEB346DF9E11AE14F4540A84F98B210E5366A03A82128986543C48FC3867431B2531AF99B379CE7E8D3105C574B0D4974295E98EFA2C01AC31C80CB1654BCEFA8467A55BC7B55ADB92DC1BE438006E5392ED521B5817558DE5E38172D023E3236EEAE34037E92EA61D6DA463212E012E603709D65EBE8062644A17B1A00FF5DE6E42FD4B3812DACC8C85754616A5539AB60FEF0F9170413E94D3052CBA3A7B9FCF46F318D30DD88DD988C9C16F5BB8823538A8DBC4830B00E7CE5346277E4DAD464128025955E7E5FD184C40EEC184B6143FC4720DA45C7DE3ED4849D6ABC89B1C01D6761660EA595B65E7F70457A32A4D63CCC6FC9736ABDDB9AE9FC8FB90388DAB7BD2189B38488B17DA76B96DAB6871475F59FC36BD53076293EBF9970A1081BA84E44A3A109F6B7231E64C1C54BF9AABD2320185DC054672B2F8F52172CD262F14CCA3237542F421A2413DF5E371DD4F1297E01D81E392A6C4F3BBABAA3091B2F10DB1C4A2C12B0DDDC279F7AD45992225ACA55ADA7CB6370B07B0CD5B935B8DF18BFFA2567EBF77658772D043318B6BA159DBD3AA48C7A509A1F887A05118CBE1470599C2683D9C00DAA5480A05FFDDF7612E6D02024C2DB | 391 | 20181009070543 2 6 100 8191 2 D72A51FC8A019CA61D28C85021CE881FBDCA1D9E2773A50343C390408ABF52C024F0268B5D4F74AA0722F8FA78F966B7AE411C57015CC9E0DB7E56B27A1D078D951747F90F8F663552B12F9BE26809481BD6D62C8EE018E2944DCF0EC7D31FFE3F7DD2F11F3C8311F1C2E2038613E541F53BA05FD92A540D11BB3267E80CCC5DEC74FD67AE473FAD56EFE2CF04457BB7B3121F93AC8F00A5DBE46E460B9B97823F937CF18722D4EE6373EF369D26A7602491493497C1EFDA3F7509772853CF84CD64A06A54FE32817B39B98CE3CE4477616CF232B04D0B2098D5A4E575939C63B26B72BE87B2BEF58F2F6DB4B2A0E00634E02637DF471D6519C22BA9494F225CA01A1A96886C6F02CE0D11EDE3370180E6E6F5CA54B44A8B66BF16ECD52193B7483700AA4051AF775F80818F3331AD80BB25A0FC8775B7821C32EAFDBEF75B3BFCB2F1A4BBDF5340B20AC9E185B0770CE6AAB120CFC4C8C88CA381946F48C0478DC07E5CF3CFB805A1BA8DB905A6D2ABFCFD765990CA4699D9F9B6922FECA4FF861362B4525FF0934E679109AB8F00909945FE897E927380F72416231AAE1A717D47BD129D5549F60C2EA377744B8807AA2432D1925D02C4C205715231DFAD86AC6B5253DE58E3E3F65484A0014CC1EFFBABC6EE912A925C08C8BB68E5FD7A13AED0116863EFA7E69A33D28A1FA853B7E0B84A5F78EFC44CDC39C4148C4B1B3D17E7371E51F96CFAAEBE15D67E82B590B9BB0567BC161AFF012F7571E514BCA7157A8C1521BD7147E83EE57721A77895722390D9C1B7C3BEEEF316E313F5A2DFBA0A5E3509F5F2CEB90C07E1177D3C8AA6CD56F5C5C614656D155350AAFD556890247AE6EDEE2236583A6DA347679C69A9B518FA9BD882F5B9850762C987F727CFEE68421A2D4F363EC45EDABAD574CC4C5AB7654F1C7E0CD84E708CD7C3ED66F369EC1E0E193346FE4747709F6A6DC969E3D2394758E807F4370E2C5A64B5190C5E9D3983CF5778076667B3E41AA28A868B9EA72C45A9234A2C92F0627512AC815CDC1418C676E66B474C071C65DF4EB7AA109ED189B30F49C9A7310CDD5504A0155E5A37FB41548B78049F3FF57EF682D04EFF6B43E5390B07019C555CB55D477552EC778C5BBF00830D1D2B233CB9B5C5A1817F96F395A527458625740A6B2FEFDF160F003D72086FAD44EA24CC669E710A965052D997E63144FD5F32271D0CF75D24DCCF5F4A8E7FD0381E03F0E9DB6F63BA5A59790788D48161E0C292436F79120C9057EBC7B1CA430E5D060836CEE57945DF5557EE2036588A902A1BD163F4DA436602B4BEF61A20D52B15877BFF9973366F242A6D2564BF32E2251C0E07DB2C98A31E82B63F6513FD4CC37D040653E3A68C6B2DB43B569FB070120ADEE89042BF0AC0E9103164E5F8BC57847A1F109ABF35E6E5DE0258C21129CA56FB |
392 | 20180502214537 2 6 100 8191 2 E3FCBDCFD41A409C58BE083B6485A2D67E20931B1F469774BAE0F1AB2898B800032581B1C4FC71FE136087937A885AFB6FC9E582DD97B8DE3AD2AF861419D5F06278316DFA78BAE7EF099889F0E99575C7812E7240B67623E7877737013A7D5DB3638040083400E8F27600BAC0650D24220CA1B3C05FB7DD70469A201DBFF1308ECA1C7152A6016BB89BFB6C625715EE91A92EA1848F0B2491AA92187468D9E8442679D7F5F6B64BC9D5A3D4E9B58C59EEEB65F8D6B70A71099E1B420BC0FD750CB2F333C23C97966BE727A6B6D9AEC8C0EB2436E01770F03840BFEC9228BB6DD46CE27D5739E18429F464FFF6812B0F66A8B0024BE03294900B8D0BC3CA6785F8C418EFE7068B2CD190A54BB9F90E05885A5C85DC069495C2009F79DBFD7774D7D65B9831FDC295CE146F4EB91DC56ABBD0B64BEAF3C340E0BF123A115D12289D44B650FF8461734308F4701CF2C199676DB3B4804FCDBD6B08C5D4875073AD5C575CA0B64597472A5C23EB4277B52B1128F3B1AE363E36A2C2D6EF5FCE00EE1573A40AD5ACDCDADE3E2672979CF68E87530520B2CA2C1110CBE4B631F3ABE83CFFDB7D5ACDD6DCA5916E30B1771FE29C4F60163B62349B66C0EDDCE8502F7C49DD4089EA5AE31FFB220A88C8D232367B52FAB7644F02E7EC10378697213CF0D90DA83A9941C217C559F88DEC6587AD953C95F11C575F0EFA9CC0650955C733910F2F90C78AE367F67B0F496A100E0B018731404D2BAEC7420F8C2B1FB6612AF69ECF369F236DD0BFB0ACBAED4141B2A14591C6475FC5C3D4E9B6229ECF7E288C015D59A35DE67F633DC586609AB3AB85A02B99DDF1B6FA7D54D4B2DDB767CAAB797C9FB29594B80B5BAACF777666D0B35CE6EFD8E46270C4D715B74FEA64FE34FBF4332BB4E8477CA438645C24444417EA5769B507925FB4B8FC59E429F1EC593C397F71087A080B39A192B5147D04D9F30DC237764C810E519B74EE90F047D0829104B6BA1A01F1CC18C85BE79F52084FAD6D7BF3EDA36D63981D8B75676740DB1AA6E06AD0C1F6A3B665D2D9D0E363FCE37B581C682A5F554D820849CEE7066A7DB011EA7D916B4A45212CBBC7A56ADAD33D203B8A1EDA03064A34351916C243E65D45425974C1468A626B773B48962108203F02814F15640149BCC2325C40F2457F0618CAAFDE26162326F2F81E8C727FAFED1B43E3AC8752E9F4EDFF5B58BD316882B555E63278FEB00B61144703C060B6188F3528E176E9B2D5996579048B723EB678CD56FA979004270E9F88F235404C522ED076E9F287097F2F7600A2D4566D2F6EFB600A9854B61CDB4363040D4F30D96BB011EF4BB0E0F21192F72B106B4F38A79FA384978C3C2A9AB94534BE01C83927BC95A9C5E55E618D7C5D77A9FA39664EEF11B2D50F59396DAD7CDC23F17948585BD88342EED639CFC883 | 392 | 20181009111433 2 6 100 8191 2 D72A51FC8A019CA61D28C85021CE881FBDCA1D9E2773A50343C390408ABF52C024F0268B5D4F74AA0722F8FA78F966B7AE411C57015CC9E0DB7E56B27A1D078D951747F90F8F663552B12F9BE26809481BD6D62C8EE018E2944DCF0EC7D31FFE3F7DD2F11F3C8311F1C2E2038613E541F53BA05FD92A540D11BB3267E80CCC5DEC74FD67AE473FAD56EFE2CF04457BB7B3121F93AC8F00A5DBE46E460B9B97823F937CF18722D4EE6373EF369D26A7602491493497C1EFDA3F7509772853CF84CD64A06A54FE32817B39B98CE3CE4477616CF232B04D0B2098D5A4E575939C63B26B72BE87B2BEF58F2F6DB4B2A0E00634E02637DF471D6519C22BA9494F225CA01A1A96886C6F02CE0D11EDE3370180E6E6F5CA54B44A8B66BF16ECD52193B7483700AA4051AF775F80818F3331AD80BB25A0FC8775B7821C32EAFDBEF75B3BFCB2F1A4BBDF5340B20AC9E185B0770CE6AAB120CFC4C8C88CA381946F48C0478DC07E5CF3CFB805A1BA8DB905A6D2ABFCFD765990CA4699D9F9B6922FECA4FF861362B4525FF0934E679109AB8F00909945FE897E927380F72416231AAE1A717D47BD129D5549F60C2EA377744B8807AA2432D1925D02C4C205715231DFAD86AC6B5253DE58E3E3F65484A0014CC1EFFBABC6EE912A925C08C8BB68E5FD7A13AED0116863EFA7E69A33D28A1FA853B7E0B84A5F78EFC44CDC39C4148C4B1B3D17E7371E51F96CFAAEBE15D67E82B590B9BB0567BC161AFF012F7571E514BCA7157A8C1521BD7147E83EE57721A77895722390D9C1B7C3BEEEF316E313F5A2DFBA0A5E3509F5F2CEB90C07E1177D3C8AA6CD56F5C5C614656D155350AAFD556890247AE6EDEE2236583A6DA347679C69A9B518FA9BD882F5B9850762C987F727CFEE68421A2D4F363EC45EDABAD574CC4C5AB7654F1C7E0CD84E708CD7C3ED66F369EC1E0E193346FE4747709F6A6DC969E3D2394758E807F4370E2C5A64B5190C5E9D3983CF5778076667B3E41AA28A868B9EA72C45A9234A2C92F0627512AC815CDC1418C676E66B474C071C65DF4EB7AA109ED189B30F49C9A7310CDD5504A0155E5A37FB41548B78049F3FF57EF682D04EFF6B43E5390B07019C555CB55D477552EC778C5BBF00830D1D2B233CB9B5C5A1817F96F395A527458625740A6B2FEFDF160F003D72086FAD44EA24CC669E710A965052D997E63144FD5F32271D0CF75D24DCCF5F4A8E7FD0381E03F0E9DB6F63BA5A59790788D48161E0C292436F79120C9057EBC7B1CA430E5D060836CEE57945DF5557EE2036588A902A1BD163F4DA436602B4BEF61A20D52B15877BFF9973366F242A6D2564BF32E2251C0E07DB2C98A31E82B63F6513FD4CC37D040653E3A68C6B2DB43B569FB070120ADEE89042BF0AC0E9103164E5F8BC57847A1F109ABF35E6E5DE0258C2112C8E0D93 |
393 | 20180503020255 2 6 100 8191 2 E3FCBDCFD41A409C58BE083B6485A2D67E20931B1F469774BAE0F1AB2898B800032581B1C4FC71FE136087937A885AFB6FC9E582DD97B8DE3AD2AF861419D5F06278316DFA78BAE7EF099889F0E99575C7812E7240B67623E7877737013A7D5DB3638040083400E8F27600BAC0650D24220CA1B3C05FB7DD70469A201DBFF1308ECA1C7152A6016BB89BFB6C625715EE91A92EA1848F0B2491AA92187468D9E8442679D7F5F6B64BC9D5A3D4E9B58C59EEEB65F8D6B70A71099E1B420BC0FD750CB2F333C23C97966BE727A6B6D9AEC8C0EB2436E01770F03840BFEC9228BB6DD46CE27D5739E18429F464FFF6812B0F66A8B0024BE03294900B8D0BC3CA6785F8C418EFE7068B2CD190A54BB9F90E05885A5C85DC069495C2009F79DBFD7774D7D65B9831FDC295CE146F4EB91DC56ABBD0B64BEAF3C340E0BF123A115D12289D44B650FF8461734308F4701CF2C199676DB3B4804FCDBD6B08C5D4875073AD5C575CA0B64597472A5C23EB4277B52B1128F3B1AE363E36A2C2D6EF5FCE00EE1573A40AD5ACDCDADE3E2672979CF68E87530520B2CA2C1110CBE4B631F3ABE83CFFDB7D5ACDD6DCA5916E30B1771FE29C4F60163B62349B66C0EDDCE8502F7C49DD4089EA5AE31FFB220A88C8D232367B52FAB7644F02E7EC10378697213CF0D90DA83A9941C217C559F88DEC6587AD953C95F11C575F0EFA9CC0650955C733910F2F90C78AE367F67B0F496A100E0B018731404D2BAEC7420F8C2B1FB6612AF69ECF369F236DD0BFB0ACBAED4141B2A14591C6475FC5C3D4E9B6229ECF7E288C015D59A35DE67F633DC586609AB3AB85A02B99DDF1B6FA7D54D4B2DDB767CAAB797C9FB29594B80B5BAACF777666D0B35CE6EFD8E46270C4D715B74FEA64FE34FBF4332BB4E8477CA438645C24444417EA5769B507925FB4B8FC59E429F1EC593C397F71087A080B39A192B5147D04D9F30DC237764C810E519B74EE90F047D0829104B6BA1A01F1CC18C85BE79F52084FAD6D7BF3EDA36D63981D8B75676740DB1AA6E06AD0C1F6A3B665D2D9D0E363FCE37B581C682A5F554D820849CEE7066A7DB011EA7D916B4A45212CBBC7A56ADAD33D203B8A1EDA03064A34351916C243E65D45425974C1468A626B773B48962108203F02814F15640149BCC2325C40F2457F0618CAAFDE26162326F2F81E8C727FAFED1B43E3AC8752E9F4EDFF5B58BD316882B555E63278FEB00B61144703C060B6188F3528E176E9B2D5996579048B723EB678CD56FA979004270E9F88F235404C522ED076E9F287097F2F7600A2D4566D2F6EFB600A9854B61CDB4363040D4F30D96BB011EF4BB0E0F21192F72B106B4F38A79FA384978C3C2A9AB94534BE01C83927BC95A9C5E55E618D7C5D77A9FA39664EEF11B2D50F59396DAD7CDC23F17948585BD88342EED63CD06DCB | 393 | 20181009152706 2 6 100 8191 5 D72A51FC8A019CA61D28C85021CE881FBDCA1D9E2773A50343C390408ABF52C024F0268B5D4F74AA0722F8FA78F966B7AE411C57015CC9E0DB7E56B27A1D078D951747F90F8F663552B12F9BE26809481BD6D62C8EE018E2944DCF0EC7D31FFE3F7DD2F11F3C8311F1C2E2038613E541F53BA05FD92A540D11BB3267E80CCC5DEC74FD67AE473FAD56EFE2CF04457BB7B3121F93AC8F00A5DBE46E460B9B97823F937CF18722D4EE6373EF369D26A7602491493497C1EFDA3F7509772853CF84CD64A06A54FE32817B39B98CE3CE4477616CF232B04D0B2098D5A4E575939C63B26B72BE87B2BEF58F2F6DB4B2A0E00634E02637DF471D6519C22BA9494F225CA01A1A96886C6F02CE0D11EDE3370180E6E6F5CA54B44A8B66BF16ECD52193B7483700AA4051AF775F80818F3331AD80BB25A0FC8775B7821C32EAFDBEF75B3BFCB2F1A4BBDF5340B20AC9E185B0770CE6AAB120CFC4C8C88CA381946F48C0478DC07E5CF3CFB805A1BA8DB905A6D2ABFCFD765990CA4699D9F9B6922FECA4FF861362B4525FF0934E679109AB8F00909945FE897E927380F72416231AAE1A717D47BD129D5549F60C2EA377744B8807AA2432D1925D02C4C205715231DFAD86AC6B5253DE58E3E3F65484A0014CC1EFFBABC6EE912A925C08C8BB68E5FD7A13AED0116863EFA7E69A33D28A1FA853B7E0B84A5F78EFC44CDC39C4148C4B1B3D17E7371E51F96CFAAEBE15D67E82B590B9BB0567BC161AFF012F7571E514BCA7157A8C1521BD7147E83EE57721A77895722390D9C1B7C3BEEEF316E313F5A2DFBA0A5E3509F5F2CEB90C07E1177D3C8AA6CD56F5C5C614656D155350AAFD556890247AE6EDEE2236583A6DA347679C69A9B518FA9BD882F5B9850762C987F727CFEE68421A2D4F363EC45EDABAD574CC4C5AB7654F1C7E0CD84E708CD7C3ED66F369EC1E0E193346FE4747709F6A6DC969E3D2394758E807F4370E2C5A64B5190C5E9D3983CF5778076667B3E41AA28A868B9EA72C45A9234A2C92F0627512AC815CDC1418C676E66B474C071C65DF4EB7AA109ED189B30F49C9A7310CDD5504A0155E5A37FB41548B78049F3FF57EF682D04EFF6B43E5390B07019C555CB55D477552EC778C5BBF00830D1D2B233CB9B5C5A1817F96F395A527458625740A6B2FEFDF160F003D72086FAD44EA24CC669E710A965052D997E63144FD5F32271D0CF75D24DCCF5F4A8E7FD0381E03F0E9DB6F63BA5A59790788D48161E0C292436F79120C9057EBC7B1CA430E5D060836CEE57945DF5557EE2036588A902A1BD163F4DA436602B4BEF61A20D52B15877BFF9973366F242A6D2564BF32E2251C0E07DB2C98A31E82B63F6513FD4CC37D040653E3A68C6B2DB43B569FB070120ADEE89042BF0AC0E9103164E5F8BC57847A1F109ABF35E6E5DE0258C2112F6601C7 |
394 | 20180503022319 2 6 100 8191 5 E3FCBDCFD41A409C58BE083B6485A2D67E20931B1F469774BAE0F1AB2898B800032581B1C4FC71FE136087937A885AFB6FC9E582DD97B8DE3AD2AF861419D5F06278316DFA78BAE7EF099889F0E99575C7812E7240B67623E7877737013A7D5DB3638040083400E8F27600BAC0650D24220CA1B3C05FB7DD70469A201DBFF1308ECA1C7152A6016BB89BFB6C625715EE91A92EA1848F0B2491AA92187468D9E8442679D7F5F6B64BC9D5A3D4E9B58C59EEEB65F8D6B70A71099E1B420BC0FD750CB2F333C23C97966BE727A6B6D9AEC8C0EB2436E01770F03840BFEC9228BB6DD46CE27D5739E18429F464FFF6812B0F66A8B0024BE03294900B8D0BC3CA6785F8C418EFE7068B2CD190A54BB9F90E05885A5C85DC069495C2009F79DBFD7774D7D65B9831FDC295CE146F4EB91DC56ABBD0B64BEAF3C340E0BF123A115D12289D44B650FF8461734308F4701CF2C199676DB3B4804FCDBD6B08C5D4875073AD5C575CA0B64597472A5C23EB4277B52B1128F3B1AE363E36A2C2D6EF5FCE00EE1573A40AD5ACDCDADE3E2672979CF68E87530520B2CA2C1110CBE4B631F3ABE83CFFDB7D5ACDD6DCA5916E30B1771FE29C4F60163B62349B66C0EDDCE8502F7C49DD4089EA5AE31FFB220A88C8D232367B52FAB7644F02E7EC10378697213CF0D90DA83A9941C217C559F88DEC6587AD953C95F11C575F0EFA9CC0650955C733910F2F90C78AE367F67B0F496A100E0B018731404D2BAEC7420F8C2B1FB6612AF69ECF369F236DD0BFB0ACBAED4141B2A14591C6475FC5C3D4E9B6229ECF7E288C015D59A35DE67F633DC586609AB3AB85A02B99DDF1B6FA7D54D4B2DDB767CAAB797C9FB29594B80B5BAACF777666D0B35CE6EFD8E46270C4D715B74FEA64FE34FBF4332BB4E8477CA438645C24444417EA5769B507925FB4B8FC59E429F1EC593C397F71087A080B39A192B5147D04D9F30DC237764C810E519B74EE90F047D0829104B6BA1A01F1CC18C85BE79F52084FAD6D7BF3EDA36D63981D8B75676740DB1AA6E06AD0C1F6A3B665D2D9D0E363FCE37B581C682A5F554D820849CEE7066A7DB011EA7D916B4A45212CBBC7A56ADAD33D203B8A1EDA03064A34351916C243E65D45425974C1468A626B773B48962108203F02814F15640149BCC2325C40F2457F0618CAAFDE26162326F2F81E8C727FAFED1B43E3AC8752E9F4EDFF5B58BD316882B555E63278FEB00B61144703C060B6188F3528E176E9B2D5996579048B723EB678CD56FA979004270E9F88F235404C522ED076E9F287097F2F7600A2D4566D2F6EFB600A9854B61CDB4363040D4F30D96BB011EF4BB0E0F21192F72B106B4F38A79FA384978C3C2A9AB94534BE01C83927BC95A9C5E55E618D7C5D77A9FA39664EEF11B2D50F59396DAD7CDC23F17948585BD88342EED63D0368DF | 394 | 20181009164722 2 6 100 8191 2 D72A51FC8A019CA61D28C85021CE881FBDCA1D9E2773A50343C390408ABF52C024F0268B5D4F74AA0722F8FA78F966B7AE411C57015CC9E0DB7E56B27A1D078D951747F90F8F663552B12F9BE26809481BD6D62C8EE018E2944DCF0EC7D31FFE3F7DD2F11F3C8311F1C2E2038613E541F53BA05FD92A540D11BB3267E80CCC5DEC74FD67AE473FAD56EFE2CF04457BB7B3121F93AC8F00A5DBE46E460B9B97823F937CF18722D4EE6373EF369D26A7602491493497C1EFDA3F7509772853CF84CD64A06A54FE32817B39B98CE3CE4477616CF232B04D0B2098D5A4E575939C63B26B72BE87B2BEF58F2F6DB4B2A0E00634E02637DF471D6519C22BA9494F225CA01A1A96886C6F02CE0D11EDE3370180E6E6F5CA54B44A8B66BF16ECD52193B7483700AA4051AF775F80818F3331AD80BB25A0FC8775B7821C32EAFDBEF75B3BFCB2F1A4BBDF5340B20AC9E185B0770CE6AAB120CFC4C8C88CA381946F48C0478DC07E5CF3CFB805A1BA8DB905A6D2ABFCFD765990CA4699D9F9B6922FECA4FF861362B4525FF0934E679109AB8F00909945FE897E927380F72416231AAE1A717D47BD129D5549F60C2EA377744B8807AA2432D1925D02C4C205715231DFAD86AC6B5253DE58E3E3F65484A0014CC1EFFBABC6EE912A925C08C8BB68E5FD7A13AED0116863EFA7E69A33D28A1FA853B7E0B84A5F78EFC44CDC39C4148C4B1B3D17E7371E51F96CFAAEBE15D67E82B590B9BB0567BC161AFF012F7571E514BCA7157A8C1521BD7147E83EE57721A77895722390D9C1B7C3BEEEF316E313F5A2DFBA0A5E3509F5F2CEB90C07E1177D3C8AA6CD56F5C5C614656D155350AAFD556890247AE6EDEE2236583A6DA347679C69A9B518FA9BD882F5B9850762C987F727CFEE68421A2D4F363EC45EDABAD574CC4C5AB7654F1C7E0CD84E708CD7C3ED66F369EC1E0E193346FE4747709F6A6DC969E3D2394758E807F4370E2C5A64B5190C5E9D3983CF5778076667B3E41AA28A868B9EA72C45A9234A2C92F0627512AC815CDC1418C676E66B474C071C65DF4EB7AA109ED189B30F49C9A7310CDD5504A0155E5A37FB41548B78049F3FF57EF682D04EFF6B43E5390B07019C555CB55D477552EC778C5BBF00830D1D2B233CB9B5C5A1817F96F395A527458625740A6B2FEFDF160F003D72086FAD44EA24CC669E710A965052D997E63144FD5F32271D0CF75D24DCCF5F4A8E7FD0381E03F0E9DB6F63BA5A59790788D48161E0C292436F79120C9057EBC7B1CA430E5D060836CEE57945DF5557EE2036588A902A1BD163F4DA436602B4BEF61A20D52B15877BFF9973366F242A6D2564BF32E2251C0E07DB2C98A31E82B63F6513FD4CC37D040653E3A68C6B2DB43B569FB070120ADEE89042BF0AC0E9103164E5F8BC57847A1F109ABF35E6E5DE0258C2113048398B |
395 | 20180503125648 2 6 100 8191 5 E3FCBDCFD41A409C58BE083B6485A2D67E20931B1F469774BAE0F1AB2898B800032581B1C4FC71FE136087937A885AFB6FC9E582DD97B8DE3AD2AF861419D5F06278316DFA78BAE7EF099889F0E99575C7812E7240B67623E7877737013A7D5DB3638040083400E8F27600BAC0650D24220CA1B3C05FB7DD70469A201DBFF1308ECA1C7152A6016BB89BFB6C625715EE91A92EA1848F0B2491AA92187468D9E8442679D7F5F6B64BC9D5A3D4E9B58C59EEEB65F8D6B70A71099E1B420BC0FD750CB2F333C23C97966BE727A6B6D9AEC8C0EB2436E01770F03840BFEC9228BB6DD46CE27D5739E18429F464FFF6812B0F66A8B0024BE03294900B8D0BC3CA6785F8C418EFE7068B2CD190A54BB9F90E05885A5C85DC069495C2009F79DBFD7774D7D65B9831FDC295CE146F4EB91DC56ABBD0B64BEAF3C340E0BF123A115D12289D44B650FF8461734308F4701CF2C199676DB3B4804FCDBD6B08C5D4875073AD5C575CA0B64597472A5C23EB4277B52B1128F3B1AE363E36A2C2D6EF5FCE00EE1573A40AD5ACDCDADE3E2672979CF68E87530520B2CA2C1110CBE4B631F3ABE83CFFDB7D5ACDD6DCA5916E30B1771FE29C4F60163B62349B66C0EDDCE8502F7C49DD4089EA5AE31FFB220A88C8D232367B52FAB7644F02E7EC10378697213CF0D90DA83A9941C217C559F88DEC6587AD953C95F11C575F0EFA9CC0650955C733910F2F90C78AE367F67B0F496A100E0B018731404D2BAEC7420F8C2B1FB6612AF69ECF369F236DD0BFB0ACBAED4141B2A14591C6475FC5C3D4E9B6229ECF7E288C015D59A35DE67F633DC586609AB3AB85A02B99DDF1B6FA7D54D4B2DDB767CAAB797C9FB29594B80B5BAACF777666D0B35CE6EFD8E46270C4D715B74FEA64FE34FBF4332BB4E8477CA438645C24444417EA5769B507925FB4B8FC59E429F1EC593C397F71087A080B39A192B5147D04D9F30DC237764C810E519B74EE90F047D0829104B6BA1A01F1CC18C85BE79F52084FAD6D7BF3EDA36D63981D8B75676740DB1AA6E06AD0C1F6A3B665D2D9D0E363FCE37B581C682A5F554D820849CEE7066A7DB011EA7D916B4A45212CBBC7A56ADAD33D203B8A1EDA03064A34351916C243E65D45425974C1468A626B773B48962108203F02814F15640149BCC2325C40F2457F0618CAAFDE26162326F2F81E8C727FAFED1B43E3AC8752E9F4EDFF5B58BD316882B555E63278FEB00B61144703C060B6188F3528E176E9B2D5996579048B723EB678CD56FA979004270E9F88F235404C522ED076E9F287097F2F7600A2D4566D2F6EFB600A9854B61CDB4363040D4F30D96BB011EF4BB0E0F21192F72B106B4F38A79FA384978C3C2A9AB94534BE01C83927BC95A9C5E55E618D7C5D77A9FA39664EEF11B2D50F59396DAD7CDC23F17948585BD88342EED6446836FF | 395 | 20181009203858 2 6 100 8191 5 D72A51FC8A019CA61D28C85021CE881FBDCA1D9E2773A50343C390408ABF52C024F0268B5D4F74AA0722F8FA78F966B7AE411C57015CC9E0DB7E56B27A1D078D951747F90F8F663552B12F9BE26809481BD6D62C8EE018E2944DCF0EC7D31FFE3F7DD2F11F3C8311F1C2E2038613E541F53BA05FD92A540D11BB3267E80CCC5DEC74FD67AE473FAD56EFE2CF04457BB7B3121F93AC8F00A5DBE46E460B9B97823F937CF18722D4EE6373EF369D26A7602491493497C1EFDA3F7509772853CF84CD64A06A54FE32817B39B98CE3CE4477616CF232B04D0B2098D5A4E575939C63B26B72BE87B2BEF58F2F6DB4B2A0E00634E02637DF471D6519C22BA9494F225CA01A1A96886C6F02CE0D11EDE3370180E6E6F5CA54B44A8B66BF16ECD52193B7483700AA4051AF775F80818F3331AD80BB25A0FC8775B7821C32EAFDBEF75B3BFCB2F1A4BBDF5340B20AC9E185B0770CE6AAB120CFC4C8C88CA381946F48C0478DC07E5CF3CFB805A1BA8DB905A6D2ABFCFD765990CA4699D9F9B6922FECA4FF861362B4525FF0934E679109AB8F00909945FE897E927380F72416231AAE1A717D47BD129D5549F60C2EA377744B8807AA2432D1925D02C4C205715231DFAD86AC6B5253DE58E3E3F65484A0014CC1EFFBABC6EE912A925C08C8BB68E5FD7A13AED0116863EFA7E69A33D28A1FA853B7E0B84A5F78EFC44CDC39C4148C4B1B3D17E7371E51F96CFAAEBE15D67E82B590B9BB0567BC161AFF012F7571E514BCA7157A8C1521BD7147E83EE57721A77895722390D9C1B7C3BEEEF316E313F5A2DFBA0A5E3509F5F2CEB90C07E1177D3C8AA6CD56F5C5C614656D155350AAFD556890247AE6EDEE2236583A6DA347679C69A9B518FA9BD882F5B9850762C987F727CFEE68421A2D4F363EC45EDABAD574CC4C5AB7654F1C7E0CD84E708CD7C3ED66F369EC1E0E193346FE4747709F6A6DC969E3D2394758E807F4370E2C5A64B5190C5E9D3983CF5778076667B3E41AA28A868B9EA72C45A9234A2C92F0627512AC815CDC1418C676E66B474C071C65DF4EB7AA109ED189B30F49C9A7310CDD5504A0155E5A37FB41548B78049F3FF57EF682D04EFF6B43E5390B07019C555CB55D477552EC778C5BBF00830D1D2B233CB9B5C5A1817F96F395A527458625740A6B2FEFDF160F003D72086FAD44EA24CC669E710A965052D997E63144FD5F32271D0CF75D24DCCF5F4A8E7FD0381E03F0E9DB6F63BA5A59790788D48161E0C292436F79120C9057EBC7B1CA430E5D060836CEE57945DF5557EE2036588A902A1BD163F4DA436602B4BEF61A20D52B15877BFF9973366F242A6D2564BF32E2251C0E07DB2C98A31E82B63F6513FD4CC37D040653E3A68C6B2DB43B569FB070120ADEE89042BF0AC0E9103164E5F8BC57847A1F109ABF35E6E5DE0258C21132D1168F |
396 | 20180503155809 2 6 100 8191 5 E3FCBDCFD41A409C58BE083B6485A2D67E20931B1F469774BAE0F1AB2898B800032581B1C4FC71FE136087937A885AFB6FC9E582DD97B8DE3AD2AF861419D5F06278316DFA78BAE7EF099889F0E99575C7812E7240B67623E7877737013A7D5DB3638040083400E8F27600BAC0650D24220CA1B3C05FB7DD70469A201DBFF1308ECA1C7152A6016BB89BFB6C625715EE91A92EA1848F0B2491AA92187468D9E8442679D7F5F6B64BC9D5A3D4E9B58C59EEEB65F8D6B70A71099E1B420BC0FD750CB2F333C23C97966BE727A6B6D9AEC8C0EB2436E01770F03840BFEC9228BB6DD46CE27D5739E18429F464FFF6812B0F66A8B0024BE03294900B8D0BC3CA6785F8C418EFE7068B2CD190A54BB9F90E05885A5C85DC069495C2009F79DBFD7774D7D65B9831FDC295CE146F4EB91DC56ABBD0B64BEAF3C340E0BF123A115D12289D44B650FF8461734308F4701CF2C199676DB3B4804FCDBD6B08C5D4875073AD5C575CA0B64597472A5C23EB4277B52B1128F3B1AE363E36A2C2D6EF5FCE00EE1573A40AD5ACDCDADE3E2672979CF68E87530520B2CA2C1110CBE4B631F3ABE83CFFDB7D5ACDD6DCA5916E30B1771FE29C4F60163B62349B66C0EDDCE8502F7C49DD4089EA5AE31FFB220A88C8D232367B52FAB7644F02E7EC10378697213CF0D90DA83A9941C217C559F88DEC6587AD953C95F11C575F0EFA9CC0650955C733910F2F90C78AE367F67B0F496A100E0B018731404D2BAEC7420F8C2B1FB6612AF69ECF369F236DD0BFB0ACBAED4141B2A14591C6475FC5C3D4E9B6229ECF7E288C015D59A35DE67F633DC586609AB3AB85A02B99DDF1B6FA7D54D4B2DDB767CAAB797C9FB29594B80B5BAACF777666D0B35CE6EFD8E46270C4D715B74FEA64FE34FBF4332BB4E8477CA438645C24444417EA5769B507925FB4B8FC59E429F1EC593C397F71087A080B39A192B5147D04D9F30DC237764C810E519B74EE90F047D0829104B6BA1A01F1CC18C85BE79F52084FAD6D7BF3EDA36D63981D8B75676740DB1AA6E06AD0C1F6A3B665D2D9D0E363FCE37B581C682A5F554D820849CEE7066A7DB011EA7D916B4A45212CBBC7A56ADAD33D203B8A1EDA03064A34351916C243E65D45425974C1468A626B773B48962108203F02814F15640149BCC2325C40F2457F0618CAAFDE26162326F2F81E8C727FAFED1B43E3AC8752E9F4EDFF5B58BD316882B555E63278FEB00B61144703C060B6188F3528E176E9B2D5996579048B723EB678CD56FA979004270E9F88F235404C522ED076E9F287097F2F7600A2D4566D2F6EFB600A9854B61CDB4363040D4F30D96BB011EF4BB0E0F21192F72B106B4F38A79FA384978C3C2A9AB94534BE01C83927BC95A9C5E55E618D7C5D77A9FA39664EEF11B2D50F59396DAD7CDC23F17948585BD88342EED64679B30F | 396 | 20181010040332 2 6 100 8191 2 D72A51FC8A019CA61D28C85021CE881FBDCA1D9E2773A50343C390408ABF52C024F0268B5D4F74AA0722F8FA78F966B7AE411C57015CC9E0DB7E56B27A1D078D951747F90F8F663552B12F9BE26809481BD6D62C8EE018E2944DCF0EC7D31FFE3F7DD2F11F3C8311F1C2E2038613E541F53BA05FD92A540D11BB3267E80CCC5DEC74FD67AE473FAD56EFE2CF04457BB7B3121F93AC8F00A5DBE46E460B9B97823F937CF18722D4EE6373EF369D26A7602491493497C1EFDA3F7509772853CF84CD64A06A54FE32817B39B98CE3CE4477616CF232B04D0B2098D5A4E575939C63B26B72BE87B2BEF58F2F6DB4B2A0E00634E02637DF471D6519C22BA9494F225CA01A1A96886C6F02CE0D11EDE3370180E6E6F5CA54B44A8B66BF16ECD52193B7483700AA4051AF775F80818F3331AD80BB25A0FC8775B7821C32EAFDBEF75B3BFCB2F1A4BBDF5340B20AC9E185B0770CE6AAB120CFC4C8C88CA381946F48C0478DC07E5CF3CFB805A1BA8DB905A6D2ABFCFD765990CA4699D9F9B6922FECA4FF861362B4525FF0934E679109AB8F00909945FE897E927380F72416231AAE1A717D47BD129D5549F60C2EA377744B8807AA2432D1925D02C4C205715231DFAD86AC6B5253DE58E3E3F65484A0014CC1EFFBABC6EE912A925C08C8BB68E5FD7A13AED0116863EFA7E69A33D28A1FA853B7E0B84A5F78EFC44CDC39C4148C4B1B3D17E7371E51F96CFAAEBE15D67E82B590B9BB0567BC161AFF012F7571E514BCA7157A8C1521BD7147E83EE57721A77895722390D9C1B7C3BEEEF316E313F5A2DFBA0A5E3509F5F2CEB90C07E1177D3C8AA6CD56F5C5C614656D155350AAFD556890247AE6EDEE2236583A6DA347679C69A9B518FA9BD882F5B9850762C987F727CFEE68421A2D4F363EC45EDABAD574CC4C5AB7654F1C7E0CD84E708CD7C3ED66F369EC1E0E193346FE4747709F6A6DC969E3D2394758E807F4370E2C5A64B5190C5E9D3983CF5778076667B3E41AA28A868B9EA72C45A9234A2C92F0627512AC815CDC1418C676E66B474C071C65DF4EB7AA109ED189B30F49C9A7310CDD5504A0155E5A37FB41548B78049F3FF57EF682D04EFF6B43E5390B07019C555CB55D477552EC778C5BBF00830D1D2B233CB9B5C5A1817F96F395A527458625740A6B2FEFDF160F003D72086FAD44EA24CC669E710A965052D997E63144FD5F32271D0CF75D24DCCF5F4A8E7FD0381E03F0E9DB6F63BA5A59790788D48161E0C292436F79120C9057EBC7B1CA430E5D060836CEE57945DF5557EE2036588A902A1BD163F4DA436602B4BEF61A20D52B15877BFF9973366F242A6D2564BF32E2251C0E07DB2C98A31E82B63F6513FD4CC37D040653E3A68C6B2DB43B569FB070120ADEE89042BF0AC0E9103164E5F8BC57847A1F109ABF35E6E5DE0258C21137C65BFB |
397 | 20180503191156 2 6 100 8191 5 E3FCBDCFD41A409C58BE083B6485A2D67E20931B1F469774BAE0F1AB2898B800032581B1C4FC71FE136087937A885AFB6FC9E582DD97B8DE3AD2AF861419D5F06278316DFA78BAE7EF099889F0E99575C7812E7240B67623E7877737013A7D5DB3638040083400E8F27600BAC0650D24220CA1B3C05FB7DD70469A201DBFF1308ECA1C7152A6016BB89BFB6C625715EE91A92EA1848F0B2491AA92187468D9E8442679D7F5F6B64BC9D5A3D4E9B58C59EEEB65F8D6B70A71099E1B420BC0FD750CB2F333C23C97966BE727A6B6D9AEC8C0EB2436E01770F03840BFEC9228BB6DD46CE27D5739E18429F464FFF6812B0F66A8B0024BE03294900B8D0BC3CA6785F8C418EFE7068B2CD190A54BB9F90E05885A5C85DC069495C2009F79DBFD7774D7D65B9831FDC295CE146F4EB91DC56ABBD0B64BEAF3C340E0BF123A115D12289D44B650FF8461734308F4701CF2C199676DB3B4804FCDBD6B08C5D4875073AD5C575CA0B64597472A5C23EB4277B52B1128F3B1AE363E36A2C2D6EF5FCE00EE1573A40AD5ACDCDADE3E2672979CF68E87530520B2CA2C1110CBE4B631F3ABE83CFFDB7D5ACDD6DCA5916E30B1771FE29C4F60163B62349B66C0EDDCE8502F7C49DD4089EA5AE31FFB220A88C8D232367B52FAB7644F02E7EC10378697213CF0D90DA83A9941C217C559F88DEC6587AD953C95F11C575F0EFA9CC0650955C733910F2F90C78AE367F67B0F496A100E0B018731404D2BAEC7420F8C2B1FB6612AF69ECF369F236DD0BFB0ACBAED4141B2A14591C6475FC5C3D4E9B6229ECF7E288C015D59A35DE67F633DC586609AB3AB85A02B99DDF1B6FA7D54D4B2DDB767CAAB797C9FB29594B80B5BAACF777666D0B35CE6EFD8E46270C4D715B74FEA64FE34FBF4332BB4E8477CA438645C24444417EA5769B507925FB4B8FC59E429F1EC593C397F71087A080B39A192B5147D04D9F30DC237764C810E519B74EE90F047D0829104B6BA1A01F1CC18C85BE79F52084FAD6D7BF3EDA36D63981D8B75676740DB1AA6E06AD0C1F6A3B665D2D9D0E363FCE37B581C682A5F554D820849CEE7066A7DB011EA7D916B4A45212CBBC7A56ADAD33D203B8A1EDA03064A34351916C243E65D45425974C1468A626B773B48962108203F02814F15640149BCC2325C40F2457F0618CAAFDE26162326F2F81E8C727FAFED1B43E3AC8752E9F4EDFF5B58BD316882B555E63278FEB00B61144703C060B6188F3528E176E9B2D5996579048B723EB678CD56FA979004270E9F88F235404C522ED076E9F287097F2F7600A2D4566D2F6EFB600A9854B61CDB4363040D4F30D96BB011EF4BB0E0F21192F72B106B4F38A79FA384978C3C2A9AB94534BE01C83927BC95A9C5E55E618D7C5D77A9FA39664EEF11B2D50F59396DAD7CDC23F17948585BD88342EED648AEA87F | 397 | 20181011070638 2 6 100 8191 5 D72A51FC8A019CA61D28C85021CE881FBDCA1D9E2773A50343C390408ABF52C024F0268B5D4F74AA0722F8FA78F966B7AE411C57015CC9E0DB7E56B27A1D078D951747F90F8F663552B12F9BE26809481BD6D62C8EE018E2944DCF0EC7D31FFE3F7DD2F11F3C8311F1C2E2038613E541F53BA05FD92A540D11BB3267E80CCC5DEC74FD67AE473FAD56EFE2CF04457BB7B3121F93AC8F00A5DBE46E460B9B97823F937CF18722D4EE6373EF369D26A7602491493497C1EFDA3F7509772853CF84CD64A06A54FE32817B39B98CE3CE4477616CF232B04D0B2098D5A4E575939C63B26B72BE87B2BEF58F2F6DB4B2A0E00634E02637DF471D6519C22BA9494F225CA01A1A96886C6F02CE0D11EDE3370180E6E6F5CA54B44A8B66BF16ECD52193B7483700AA4051AF775F80818F3331AD80BB25A0FC8775B7821C32EAFDBEF75B3BFCB2F1A4BBDF5340B20AC9E185B0770CE6AAB120CFC4C8C88CA381946F48C0478DC07E5CF3CFB805A1BA8DB905A6D2ABFCFD765990CA4699D9F9B6922FECA4FF861362B4525FF0934E679109AB8F00909945FE897E927380F72416231AAE1A717D47BD129D5549F60C2EA377744B8807AA2432D1925D02C4C205715231DFAD86AC6B5253DE58E3E3F65484A0014CC1EFFBABC6EE912A925C08C8BB68E5FD7A13AED0116863EFA7E69A33D28A1FA853B7E0B84A5F78EFC44CDC39C4148C4B1B3D17E7371E51F96CFAAEBE15D67E82B590B9BB0567BC161AFF012F7571E514BCA7157A8C1521BD7147E83EE57721A77895722390D9C1B7C3BEEEF316E313F5A2DFBA0A5E3509F5F2CEB90C07E1177D3C8AA6CD56F5C5C614656D155350AAFD556890247AE6EDEE2236583A6DA347679C69A9B518FA9BD882F5B9850762C987F727CFEE68421A2D4F363EC45EDABAD574CC4C5AB7654F1C7E0CD84E708CD7C3ED66F369EC1E0E193346FE4747709F6A6DC969E3D2394758E807F4370E2C5A64B5190C5E9D3983CF5778076667B3E41AA28A868B9EA72C45A9234A2C92F0627512AC815CDC1418C676E66B474C071C65DF4EB7AA109ED189B30F49C9A7310CDD5504A0155E5A37FB41548B78049F3FF57EF682D04EFF6B43E5390B07019C555CB55D477552EC778C5BBF00830D1D2B233CB9B5C5A1817F96F395A527458625740A6B2FEFDF160F003D72086FAD44EA24CC669E710A965052D997E63144FD5F32271D0CF75D24DCCF5F4A8E7FD0381E03F0E9DB6F63BA5A59790788D48161E0C292436F79120C9057EBC7B1CA430E5D060836CEE57945DF5557EE2036588A902A1BD163F4DA436602B4BEF61A20D52B15877BFF9973366F242A6D2564BF32E2251C0E07DB2C98A31E82B63F6513FD4CC37D040653E3A68C6B2DB43B569FB070120ADEE89042BF0AC0E9103164E5F8BC57847A1F109ABF35E6E5DE0258C21149914247 |
398 | 20180504050354 2 6 100 8191 5 E3FCBDCFD41A409C58BE083B6485A2D67E20931B1F469774BAE0F1AB2898B800032581B1C4FC71FE136087937A885AFB6FC9E582DD97B8DE3AD2AF861419D5F06278316DFA78BAE7EF099889F0E99575C7812E7240B67623E7877737013A7D5DB3638040083400E8F27600BAC0650D24220CA1B3C05FB7DD70469A201DBFF1308ECA1C7152A6016BB89BFB6C625715EE91A92EA1848F0B2491AA92187468D9E8442679D7F5F6B64BC9D5A3D4E9B58C59EEEB65F8D6B70A71099E1B420BC0FD750CB2F333C23C97966BE727A6B6D9AEC8C0EB2436E01770F03840BFEC9228BB6DD46CE27D5739E18429F464FFF6812B0F66A8B0024BE03294900B8D0BC3CA6785F8C418EFE7068B2CD190A54BB9F90E05885A5C85DC069495C2009F79DBFD7774D7D65B9831FDC295CE146F4EB91DC56ABBD0B64BEAF3C340E0BF123A115D12289D44B650FF8461734308F4701CF2C199676DB3B4804FCDBD6B08C5D4875073AD5C575CA0B64597472A5C23EB4277B52B1128F3B1AE363E36A2C2D6EF5FCE00EE1573A40AD5ACDCDADE3E2672979CF68E87530520B2CA2C1110CBE4B631F3ABE83CFFDB7D5ACDD6DCA5916E30B1771FE29C4F60163B62349B66C0EDDCE8502F7C49DD4089EA5AE31FFB220A88C8D232367B52FAB7644F02E7EC10378697213CF0D90DA83A9941C217C559F88DEC6587AD953C95F11C575F0EFA9CC0650955C733910F2F90C78AE367F67B0F496A100E0B018731404D2BAEC7420F8C2B1FB6612AF69ECF369F236DD0BFB0ACBAED4141B2A14591C6475FC5C3D4E9B6229ECF7E288C015D59A35DE67F633DC586609AB3AB85A02B99DDF1B6FA7D54D4B2DDB767CAAB797C9FB29594B80B5BAACF777666D0B35CE6EFD8E46270C4D715B74FEA64FE34FBF4332BB4E8477CA438645C24444417EA5769B507925FB4B8FC59E429F1EC593C397F71087A080B39A192B5147D04D9F30DC237764C810E519B74EE90F047D0829104B6BA1A01F1CC18C85BE79F52084FAD6D7BF3EDA36D63981D8B75676740DB1AA6E06AD0C1F6A3B665D2D9D0E363FCE37B581C682A5F554D820849CEE7066A7DB011EA7D916B4A45212CBBC7A56ADAD33D203B8A1EDA03064A34351916C243E65D45425974C1468A626B773B48962108203F02814F15640149BCC2325C40F2457F0618CAAFDE26162326F2F81E8C727FAFED1B43E3AC8752E9F4EDFF5B58BD316882B555E63278FEB00B61144703C060B6188F3528E176E9B2D5996579048B723EB678CD56FA979004270E9F88F235404C522ED076E9F287097F2F7600A2D4566D2F6EFB600A9854B61CDB4363040D4F30D96BB011EF4BB0E0F21192F72B106B4F38A79FA384978C3C2A9AB94534BE01C83927BC95A9C5E55E618D7C5D77A9FA39664EEF11B2D50F59396DAD7CDC23F17948585BD88342EED64F75441F | 398 | 20181011150252 2 6 100 8191 2 D72A51FC8A019CA61D28C85021CE881FBDCA1D9E2773A50343C390408ABF52C024F0268B5D4F74AA0722F8FA78F966B7AE411C57015CC9E0DB7E56B27A1D078D951747F90F8F663552B12F9BE26809481BD6D62C8EE018E2944DCF0EC7D31FFE3F7DD2F11F3C8311F1C2E2038613E541F53BA05FD92A540D11BB3267E80CCC5DEC74FD67AE473FAD56EFE2CF04457BB7B3121F93AC8F00A5DBE46E460B9B97823F937CF18722D4EE6373EF369D26A7602491493497C1EFDA3F7509772853CF84CD64A06A54FE32817B39B98CE3CE4477616CF232B04D0B2098D5A4E575939C63B26B72BE87B2BEF58F2F6DB4B2A0E00634E02637DF471D6519C22BA9494F225CA01A1A96886C6F02CE0D11EDE3370180E6E6F5CA54B44A8B66BF16ECD52193B7483700AA4051AF775F80818F3331AD80BB25A0FC8775B7821C32EAFDBEF75B3BFCB2F1A4BBDF5340B20AC9E185B0770CE6AAB120CFC4C8C88CA381946F48C0478DC07E5CF3CFB805A1BA8DB905A6D2ABFCFD765990CA4699D9F9B6922FECA4FF861362B4525FF0934E679109AB8F00909945FE897E927380F72416231AAE1A717D47BD129D5549F60C2EA377744B8807AA2432D1925D02C4C205715231DFAD86AC6B5253DE58E3E3F65484A0014CC1EFFBABC6EE912A925C08C8BB68E5FD7A13AED0116863EFA7E69A33D28A1FA853B7E0B84A5F78EFC44CDC39C4148C4B1B3D17E7371E51F96CFAAEBE15D67E82B590B9BB0567BC161AFF012F7571E514BCA7157A8C1521BD7147E83EE57721A77895722390D9C1B7C3BEEEF316E313F5A2DFBA0A5E3509F5F2CEB90C07E1177D3C8AA6CD56F5C5C614656D155350AAFD556890247AE6EDEE2236583A6DA347679C69A9B518FA9BD882F5B9850762C987F727CFEE68421A2D4F363EC45EDABAD574CC4C5AB7654F1C7E0CD84E708CD7C3ED66F369EC1E0E193346FE4747709F6A6DC969E3D2394758E807F4370E2C5A64B5190C5E9D3983CF5778076667B3E41AA28A868B9EA72C45A9234A2C92F0627512AC815CDC1418C676E66B474C071C65DF4EB7AA109ED189B30F49C9A7310CDD5504A0155E5A37FB41548B78049F3FF57EF682D04EFF6B43E5390B07019C555CB55D477552EC778C5BBF00830D1D2B233CB9B5C5A1817F96F395A527458625740A6B2FEFDF160F003D72086FAD44EA24CC669E710A965052D997E63144FD5F32271D0CF75D24DCCF5F4A8E7FD0381E03F0E9DB6F63BA5A59790788D48161E0C292436F79120C9057EBC7B1CA430E5D060836CEE57945DF5557EE2036588A902A1BD163F4DA436602B4BEF61A20D52B15877BFF9973366F242A6D2564BF32E2251C0E07DB2C98A31E82B63F6513FD4CC37D040653E3A68C6B2DB43B569FB070120ADEE89042BF0AC0E9103164E5F8BC57847A1F109ABF35E6E5DE0258C2114EAE7D3B |
399 | 20180504071143 2 6 100 8191 2 E3FCBDCFD41A409C58BE083B6485A2D67E20931B1F469774BAE0F1AB2898B800032581B1C4FC71FE136087937A885AFB6FC9E582DD97B8DE3AD2AF861419D5F06278316DFA78BAE7EF099889F0E99575C7812E7240B67623E7877737013A7D5DB3638040083400E8F27600BAC0650D24220CA1B3C05FB7DD70469A201DBFF1308ECA1C7152A6016BB89BFB6C625715EE91A92EA1848F0B2491AA92187468D9E8442679D7F5F6B64BC9D5A3D4E9B58C59EEEB65F8D6B70A71099E1B420BC0FD750CB2F333C23C97966BE727A6B6D9AEC8C0EB2436E01770F03840BFEC9228BB6DD46CE27D5739E18429F464FFF6812B0F66A8B0024BE03294900B8D0BC3CA6785F8C418EFE7068B2CD190A54BB9F90E05885A5C85DC069495C2009F79DBFD7774D7D65B9831FDC295CE146F4EB91DC56ABBD0B64BEAF3C340E0BF123A115D12289D44B650FF8461734308F4701CF2C199676DB3B4804FCDBD6B08C5D4875073AD5C575CA0B64597472A5C23EB4277B52B1128F3B1AE363E36A2C2D6EF5FCE00EE1573A40AD5ACDCDADE3E2672979CF68E87530520B2CA2C1110CBE4B631F3ABE83CFFDB7D5ACDD6DCA5916E30B1771FE29C4F60163B62349B66C0EDDCE8502F7C49DD4089EA5AE31FFB220A88C8D232367B52FAB7644F02E7EC10378697213CF0D90DA83A9941C217C559F88DEC6587AD953C95F11C575F0EFA9CC0650955C733910F2F90C78AE367F67B0F496A100E0B018731404D2BAEC7420F8C2B1FB6612AF69ECF369F236DD0BFB0ACBAED4141B2A14591C6475FC5C3D4E9B6229ECF7E288C015D59A35DE67F633DC586609AB3AB85A02B99DDF1B6FA7D54D4B2DDB767CAAB797C9FB29594B80B5BAACF777666D0B35CE6EFD8E46270C4D715B74FEA64FE34FBF4332BB4E8477CA438645C24444417EA5769B507925FB4B8FC59E429F1EC593C397F71087A080B39A192B5147D04D9F30DC237764C810E519B74EE90F047D0829104B6BA1A01F1CC18C85BE79F52084FAD6D7BF3EDA36D63981D8B75676740DB1AA6E06AD0C1F6A3B665D2D9D0E363FCE37B581C682A5F554D820849CEE7066A7DB011EA7D916B4A45212CBBC7A56ADAD33D203B8A1EDA03064A34351916C243E65D45425974C1468A626B773B48962108203F02814F15640149BCC2325C40F2457F0618CAAFDE26162326F2F81E8C727FAFED1B43E3AC8752E9F4EDFF5B58BD316882B555E63278FEB00B61144703C060B6188F3528E176E9B2D5996579048B723EB678CD56FA979004270E9F88F235404C522ED076E9F287097F2F7600A2D4566D2F6EFB600A9854B61CDB4363040D4F30D96BB011EF4BB0E0F21192F72B106B4F38A79FA384978C3C2A9AB94534BE01C83927BC95A9C5E55E618D7C5D77A9FA39664EEF11B2D50F59396DAD7CDC23F17948585BD88342EED650DC49F3 | 399 | 20181011153554 2 6 100 8191 2 D72A51FC8A019CA61D28C85021CE881FBDCA1D9E2773A50343C390408ABF52C024F0268B5D4F74AA0722F8FA78F966B7AE411C57015CC9E0DB7E56B27A1D078D951747F90F8F663552B12F9BE26809481BD6D62C8EE018E2944DCF0EC7D31FFE3F7DD2F11F3C8311F1C2E2038613E541F53BA05FD92A540D11BB3267E80CCC5DEC74FD67AE473FAD56EFE2CF04457BB7B3121F93AC8F00A5DBE46E460B9B97823F937CF18722D4EE6373EF369D26A7602491493497C1EFDA3F7509772853CF84CD64A06A54FE32817B39B98CE3CE4477616CF232B04D0B2098D5A4E575939C63B26B72BE87B2BEF58F2F6DB4B2A0E00634E02637DF471D6519C22BA9494F225CA01A1A96886C6F02CE0D11EDE3370180E6E6F5CA54B44A8B66BF16ECD52193B7483700AA4051AF775F80818F3331AD80BB25A0FC8775B7821C32EAFDBEF75B3BFCB2F1A4BBDF5340B20AC9E185B0770CE6AAB120CFC4C8C88CA381946F48C0478DC07E5CF3CFB805A1BA8DB905A6D2ABFCFD765990CA4699D9F9B6922FECA4FF861362B4525FF0934E679109AB8F00909945FE897E927380F72416231AAE1A717D47BD129D5549F60C2EA377744B8807AA2432D1925D02C4C205715231DFAD86AC6B5253DE58E3E3F65484A0014CC1EFFBABC6EE912A925C08C8BB68E5FD7A13AED0116863EFA7E69A33D28A1FA853B7E0B84A5F78EFC44CDC39C4148C4B1B3D17E7371E51F96CFAAEBE15D67E82B590B9BB0567BC161AFF012F7571E514BCA7157A8C1521BD7147E83EE57721A77895722390D9C1B7C3BEEEF316E313F5A2DFBA0A5E3509F5F2CEB90C07E1177D3C8AA6CD56F5C5C614656D155350AAFD556890247AE6EDEE2236583A6DA347679C69A9B518FA9BD882F5B9850762C987F727CFEE68421A2D4F363EC45EDABAD574CC4C5AB7654F1C7E0CD84E708CD7C3ED66F369EC1E0E193346FE4747709F6A6DC969E3D2394758E807F4370E2C5A64B5190C5E9D3983CF5778076667B3E41AA28A868B9EA72C45A9234A2C92F0627512AC815CDC1418C676E66B474C071C65DF4EB7AA109ED189B30F49C9A7310CDD5504A0155E5A37FB41548B78049F3FF57EF682D04EFF6B43E5390B07019C555CB55D477552EC778C5BBF00830D1D2B233CB9B5C5A1817F96F395A527458625740A6B2FEFDF160F003D72086FAD44EA24CC669E710A965052D997E63144FD5F32271D0CF75D24DCCF5F4A8E7FD0381E03F0E9DB6F63BA5A59790788D48161E0C292436F79120C9057EBC7B1CA430E5D060836CEE57945DF5557EE2036588A902A1BD163F4DA436602B4BEF61A20D52B15877BFF9973366F242A6D2564BF32E2251C0E07DB2C98A31E82B63F6513FD4CC37D040653E3A68C6B2DB43B569FB070120ADEE89042BF0AC0E9103164E5F8BC57847A1F109ABF35E6E5DE0258C2114EFEE58B |
400 | 20180504084722 2 6 100 8191 2 E3FCBDCFD41A409C58BE083B6485A2D67E20931B1F469774BAE0F1AB2898B800032581B1C4FC71FE136087937A885AFB6FC9E582DD97B8DE3AD2AF861419D5F06278316DFA78BAE7EF099889F0E99575C7812E7240B67623E7877737013A7D5DB3638040083400E8F27600BAC0650D24220CA1B3C05FB7DD70469A201DBFF1308ECA1C7152A6016BB89BFB6C625715EE91A92EA1848F0B2491AA92187468D9E8442679D7F5F6B64BC9D5A3D4E9B58C59EEEB65F8D6B70A71099E1B420BC0FD750CB2F333C23C97966BE727A6B6D9AEC8C0EB2436E01770F03840BFEC9228BB6DD46CE27D5739E18429F464FFF6812B0F66A8B0024BE03294900B8D0BC3CA6785F8C418EFE7068B2CD190A54BB9F90E05885A5C85DC069495C2009F79DBFD7774D7D65B9831FDC295CE146F4EB91DC56ABBD0B64BEAF3C340E0BF123A115D12289D44B650FF8461734308F4701CF2C199676DB3B4804FCDBD6B08C5D4875073AD5C575CA0B64597472A5C23EB4277B52B1128F3B1AE363E36A2C2D6EF5FCE00EE1573A40AD5ACDCDADE3E2672979CF68E87530520B2CA2C1110CBE4B631F3ABE83CFFDB7D5ACDD6DCA5916E30B1771FE29C4F60163B62349B66C0EDDCE8502F7C49DD4089EA5AE31FFB220A88C8D232367B52FAB7644F02E7EC10378697213CF0D90DA83A9941C217C559F88DEC6587AD953C95F11C575F0EFA9CC0650955C733910F2F90C78AE367F67B0F496A100E0B018731404D2BAEC7420F8C2B1FB6612AF69ECF369F236DD0BFB0ACBAED4141B2A14591C6475FC5C3D4E9B6229ECF7E288C015D59A35DE67F633DC586609AB3AB85A02B99DDF1B6FA7D54D4B2DDB767CAAB797C9FB29594B80B5BAACF777666D0B35CE6EFD8E46270C4D715B74FEA64FE34FBF4332BB4E8477CA438645C24444417EA5769B507925FB4B8FC59E429F1EC593C397F71087A080B39A192B5147D04D9F30DC237764C810E519B74EE90F047D0829104B6BA1A01F1CC18C85BE79F52084FAD6D7BF3EDA36D63981D8B75676740DB1AA6E06AD0C1F6A3B665D2D9D0E363FCE37B581C682A5F554D820849CEE7066A7DB011EA7D916B4A45212CBBC7A56ADAD33D203B8A1EDA03064A34351916C243E65D45425974C1468A626B773B48962108203F02814F15640149BCC2325C40F2457F0618CAAFDE26162326F2F81E8C727FAFED1B43E3AC8752E9F4EDFF5B58BD316882B555E63278FEB00B61144703C060B6188F3528E176E9B2D5996579048B723EB678CD56FA979004270E9F88F235404C522ED076E9F287097F2F7600A2D4566D2F6EFB600A9854B61CDB4363040D4F30D96BB011EF4BB0E0F21192F72B106B4F38A79FA384978C3C2A9AB94534BE01C83927BC95A9C5E55E618D7C5D77A9FA39664EEF11B2D50F59396DAD7CDC23F17948585BD88342EED651F00D33 | 400 | 20181011234311 2 6 100 8191 5 D72A51FC8A019CA61D28C85021CE881FBDCA1D9E2773A50343C390408ABF52C024F0268B5D4F74AA0722F8FA78F966B7AE411C57015CC9E0DB7E56B27A1D078D951747F90F8F663552B12F9BE26809481BD6D62C8EE018E2944DCF0EC7D31FFE3F7DD2F11F3C8311F1C2E2038613E541F53BA05FD92A540D11BB3267E80CCC5DEC74FD67AE473FAD56EFE2CF04457BB7B3121F93AC8F00A5DBE46E460B9B97823F937CF18722D4EE6373EF369D26A7602491493497C1EFDA3F7509772853CF84CD64A06A54FE32817B39B98CE3CE4477616CF232B04D0B2098D5A4E575939C63B26B72BE87B2BEF58F2F6DB4B2A0E00634E02637DF471D6519C22BA9494F225CA01A1A96886C6F02CE0D11EDE3370180E6E6F5CA54B44A8B66BF16ECD52193B7483700AA4051AF775F80818F3331AD80BB25A0FC8775B7821C32EAFDBEF75B3BFCB2F1A4BBDF5340B20AC9E185B0770CE6AAB120CFC4C8C88CA381946F48C0478DC07E5CF3CFB805A1BA8DB905A6D2ABFCFD765990CA4699D9F9B6922FECA4FF861362B4525FF0934E679109AB8F00909945FE897E927380F72416231AAE1A717D47BD129D5549F60C2EA377744B8807AA2432D1925D02C4C205715231DFAD86AC6B5253DE58E3E3F65484A0014CC1EFFBABC6EE912A925C08C8BB68E5FD7A13AED0116863EFA7E69A33D28A1FA853B7E0B84A5F78EFC44CDC39C4148C4B1B3D17E7371E51F96CFAAEBE15D67E82B590B9BB0567BC161AFF012F7571E514BCA7157A8C1521BD7147E83EE57721A77895722390D9C1B7C3BEEEF316E313F5A2DFBA0A5E3509F5F2CEB90C07E1177D3C8AA6CD56F5C5C614656D155350AAFD556890247AE6EDEE2236583A6DA347679C69A9B518FA9BD882F5B9850762C987F727CFEE68421A2D4F363EC45EDABAD574CC4C5AB7654F1C7E0CD84E708CD7C3ED66F369EC1E0E193346FE4747709F6A6DC969E3D2394758E807F4370E2C5A64B5190C5E9D3983CF5778076667B3E41AA28A868B9EA72C45A9234A2C92F0627512AC815CDC1418C676E66B474C071C65DF4EB7AA109ED189B30F49C9A7310CDD5504A0155E5A37FB41548B78049F3FF57EF682D04EFF6B43E5390B07019C555CB55D477552EC778C5BBF00830D1D2B233CB9B5C5A1817F96F395A527458625740A6B2FEFDF160F003D72086FAD44EA24CC669E710A965052D997E63144FD5F32271D0CF75D24DCCF5F4A8E7FD0381E03F0E9DB6F63BA5A59790788D48161E0C292436F79120C9057EBC7B1CA430E5D060836CEE57945DF5557EE2036588A902A1BD163F4DA436602B4BEF61A20D52B15877BFF9973366F242A6D2564BF32E2251C0E07DB2C98A31E82B63F6513FD4CC37D040653E3A68C6B2DB43B569FB070120ADEE89042BF0AC0E9103164E5F8BC57847A1F109ABF35E6E5DE0258C211542C97AF |
401 | 20180504103430 2 6 100 8191 5 E3FCBDCFD41A409C58BE083B6485A2D67E20931B1F469774BAE0F1AB2898B800032581B1C4FC71FE136087937A885AFB6FC9E582DD97B8DE3AD2AF861419D5F06278316DFA78BAE7EF099889F0E99575C7812E7240B67623E7877737013A7D5DB3638040083400E8F27600BAC0650D24220CA1B3C05FB7DD70469A201DBFF1308ECA1C7152A6016BB89BFB6C625715EE91A92EA1848F0B2491AA92187468D9E8442679D7F5F6B64BC9D5A3D4E9B58C59EEEB65F8D6B70A71099E1B420BC0FD750CB2F333C23C97966BE727A6B6D9AEC8C0EB2436E01770F03840BFEC9228BB6DD46CE27D5739E18429F464FFF6812B0F66A8B0024BE03294900B8D0BC3CA6785F8C418EFE7068B2CD190A54BB9F90E05885A5C85DC069495C2009F79DBFD7774D7D65B9831FDC295CE146F4EB91DC56ABBD0B64BEAF3C340E0BF123A115D12289D44B650FF8461734308F4701CF2C199676DB3B4804FCDBD6B08C5D4875073AD5C575CA0B64597472A5C23EB4277B52B1128F3B1AE363E36A2C2D6EF5FCE00EE1573A40AD5ACDCDADE3E2672979CF68E87530520B2CA2C1110CBE4B631F3ABE83CFFDB7D5ACDD6DCA5916E30B1771FE29C4F60163B62349B66C0EDDCE8502F7C49DD4089EA5AE31FFB220A88C8D232367B52FAB7644F02E7EC10378697213CF0D90DA83A9941C217C559F88DEC6587AD953C95F11C575F0EFA9CC0650955C733910F2F90C78AE367F67B0F496A100E0B018731404D2BAEC7420F8C2B1FB6612AF69ECF369F236DD0BFB0ACBAED4141B2A14591C6475FC5C3D4E9B6229ECF7E288C015D59A35DE67F633DC586609AB3AB85A02B99DDF1B6FA7D54D4B2DDB767CAAB797C9FB29594B80B5BAACF777666D0B35CE6EFD8E46270C4D715B74FEA64FE34FBF4332BB4E8477CA438645C24444417EA5769B507925FB4B8FC59E429F1EC593C397F71087A080B39A192B5147D04D9F30DC237764C810E519B74EE90F047D0829104B6BA1A01F1CC18C85BE79F52084FAD6D7BF3EDA36D63981D8B75676740DB1AA6E06AD0C1F6A3B665D2D9D0E363FCE37B581C682A5F554D820849CEE7066A7DB011EA7D916B4A45212CBBC7A56ADAD33D203B8A1EDA03064A34351916C243E65D45425974C1468A626B773B48962108203F02814F15640149BCC2325C40F2457F0618CAAFDE26162326F2F81E8C727FAFED1B43E3AC8752E9F4EDFF5B58BD316882B555E63278FEB00B61144703C060B6188F3528E176E9B2D5996579048B723EB678CD56FA979004270E9F88F235404C522ED076E9F287097F2F7600A2D4566D2F6EFB600A9854B61CDB4363040D4F30D96BB011EF4BB0E0F21192F72B106B4F38A79FA384978C3C2A9AB94534BE01C83927BC95A9C5E55E618D7C5D77A9FA39664EEF11B2D50F59396DAD7CDC23F17948585BD88342EED65316D0B7 | 401 | 20181012043844 2 6 100 8191 5 D72A51FC8A019CA61D28C85021CE881FBDCA1D9E2773A50343C390408ABF52C024F0268B5D4F74AA0722F8FA78F966B7AE411C57015CC9E0DB7E56B27A1D078D951747F90F8F663552B12F9BE26809481BD6D62C8EE018E2944DCF0EC7D31FFE3F7DD2F11F3C8311F1C2E2038613E541F53BA05FD92A540D11BB3267E80CCC5DEC74FD67AE473FAD56EFE2CF04457BB7B3121F93AC8F00A5DBE46E460B9B97823F937CF18722D4EE6373EF369D26A7602491493497C1EFDA3F7509772853CF84CD64A06A54FE32817B39B98CE3CE4477616CF232B04D0B2098D5A4E575939C63B26B72BE87B2BEF58F2F6DB4B2A0E00634E02637DF471D6519C22BA9494F225CA01A1A96886C6F02CE0D11EDE3370180E6E6F5CA54B44A8B66BF16ECD52193B7483700AA4051AF775F80818F3331AD80BB25A0FC8775B7821C32EAFDBEF75B3BFCB2F1A4BBDF5340B20AC9E185B0770CE6AAB120CFC4C8C88CA381946F48C0478DC07E5CF3CFB805A1BA8DB905A6D2ABFCFD765990CA4699D9F9B6922FECA4FF861362B4525FF0934E679109AB8F00909945FE897E927380F72416231AAE1A717D47BD129D5549F60C2EA377744B8807AA2432D1925D02C4C205715231DFAD86AC6B5253DE58E3E3F65484A0014CC1EFFBABC6EE912A925C08C8BB68E5FD7A13AED0116863EFA7E69A33D28A1FA853B7E0B84A5F78EFC44CDC39C4148C4B1B3D17E7371E51F96CFAAEBE15D67E82B590B9BB0567BC161AFF012F7571E514BCA7157A8C1521BD7147E83EE57721A77895722390D9C1B7C3BEEEF316E313F5A2DFBA0A5E3509F5F2CEB90C07E1177D3C8AA6CD56F5C5C614656D155350AAFD556890247AE6EDEE2236583A6DA347679C69A9B518FA9BD882F5B9850762C987F727CFEE68421A2D4F363EC45EDABAD574CC4C5AB7654F1C7E0CD84E708CD7C3ED66F369EC1E0E193346FE4747709F6A6DC969E3D2394758E807F4370E2C5A64B5190C5E9D3983CF5778076667B3E41AA28A868B9EA72C45A9234A2C92F0627512AC815CDC1418C676E66B474C071C65DF4EB7AA109ED189B30F49C9A7310CDD5504A0155E5A37FB41548B78049F3FF57EF682D04EFF6B43E5390B07019C555CB55D477552EC778C5BBF00830D1D2B233CB9B5C5A1817F96F395A527458625740A6B2FEFDF160F003D72086FAD44EA24CC669E710A965052D997E63144FD5F32271D0CF75D24DCCF5F4A8E7FD0381E03F0E9DB6F63BA5A59790788D48161E0C292436F79120C9057EBC7B1CA430E5D060836CEE57945DF5557EE2036588A902A1BD163F4DA436602B4BEF61A20D52B15877BFF9973366F242A6D2564BF32E2251C0E07DB2C98A31E82B63F6513FD4CC37D040653E3A68C6B2DB43B569FB070120ADEE89042BF0AC0E9103164E5F8BC57847A1F109ABF35E6E5DE0258C21157397D47 |
402 | 20180504105453 2 6 100 8191 2 E3FCBDCFD41A409C58BE083B6485A2D67E20931B1F469774BAE0F1AB2898B800032581B1C4FC71FE136087937A885AFB6FC9E582DD97B8DE3AD2AF861419D5F06278316DFA78BAE7EF099889F0E99575C7812E7240B67623E7877737013A7D5DB3638040083400E8F27600BAC0650D24220CA1B3C05FB7DD70469A201DBFF1308ECA1C7152A6016BB89BFB6C625715EE91A92EA1848F0B2491AA92187468D9E8442679D7F5F6B64BC9D5A3D4E9B58C59EEEB65F8D6B70A71099E1B420BC0FD750CB2F333C23C97966BE727A6B6D9AEC8C0EB2436E01770F03840BFEC9228BB6DD46CE27D5739E18429F464FFF6812B0F66A8B0024BE03294900B8D0BC3CA6785F8C418EFE7068B2CD190A54BB9F90E05885A5C85DC069495C2009F79DBFD7774D7D65B9831FDC295CE146F4EB91DC56ABBD0B64BEAF3C340E0BF123A115D12289D44B650FF8461734308F4701CF2C199676DB3B4804FCDBD6B08C5D4875073AD5C575CA0B64597472A5C23EB4277B52B1128F3B1AE363E36A2C2D6EF5FCE00EE1573A40AD5ACDCDADE3E2672979CF68E87530520B2CA2C1110CBE4B631F3ABE83CFFDB7D5ACDD6DCA5916E30B1771FE29C4F60163B62349B66C0EDDCE8502F7C49DD4089EA5AE31FFB220A88C8D232367B52FAB7644F02E7EC10378697213CF0D90DA83A9941C217C559F88DEC6587AD953C95F11C575F0EFA9CC0650955C733910F2F90C78AE367F67B0F496A100E0B018731404D2BAEC7420F8C2B1FB6612AF69ECF369F236DD0BFB0ACBAED4141B2A14591C6475FC5C3D4E9B6229ECF7E288C015D59A35DE67F633DC586609AB3AB85A02B99DDF1B6FA7D54D4B2DDB767CAAB797C9FB29594B80B5BAACF777666D0B35CE6EFD8E46270C4D715B74FEA64FE34FBF4332BB4E8477CA438645C24444417EA5769B507925FB4B8FC59E429F1EC593C397F71087A080B39A192B5147D04D9F30DC237764C810E519B74EE90F047D0829104B6BA1A01F1CC18C85BE79F52084FAD6D7BF3EDA36D63981D8B75676740DB1AA6E06AD0C1F6A3B665D2D9D0E363FCE37B581C682A5F554D820849CEE7066A7DB011EA7D916B4A45212CBBC7A56ADAD33D203B8A1EDA03064A34351916C243E65D45425974C1468A626B773B48962108203F02814F15640149BCC2325C40F2457F0618CAAFDE26162326F2F81E8C727FAFED1B43E3AC8752E9F4EDFF5B58BD316882B555E63278FEB00B61144703C060B6188F3528E176E9B2D5996579048B723EB678CD56FA979004270E9F88F235404C522ED076E9F287097F2F7600A2D4566D2F6EFB600A9854B61CDB4363040D4F30D96BB011EF4BB0E0F21192F72B106B4F38A79FA384978C3C2A9AB94534BE01C83927BC95A9C5E55E618D7C5D77A9FA39664EEF11B2D50F59396DAD7CDC23F17948585BD88342EED65348CDBB | 402 | 20181012060434 2 6 100 8191 2 D72A51FC8A019CA61D28C85021CE881FBDCA1D9E2773A50343C390408ABF52C024F0268B5D4F74AA0722F8FA78F966B7AE411C57015CC9E0DB7E56B27A1D078D951747F90F8F663552B12F9BE26809481BD6D62C8EE018E2944DCF0EC7D31FFE3F7DD2F11F3C8311F1C2E2038613E541F53BA05FD92A540D11BB3267E80CCC5DEC74FD67AE473FAD56EFE2CF04457BB7B3121F93AC8F00A5DBE46E460B9B97823F937CF18722D4EE6373EF369D26A7602491493497C1EFDA3F7509772853CF84CD64A06A54FE32817B39B98CE3CE4477616CF232B04D0B2098D5A4E575939C63B26B72BE87B2BEF58F2F6DB4B2A0E00634E02637DF471D6519C22BA9494F225CA01A1A96886C6F02CE0D11EDE3370180E6E6F5CA54B44A8B66BF16ECD52193B7483700AA4051AF775F80818F3331AD80BB25A0FC8775B7821C32EAFDBEF75B3BFCB2F1A4BBDF5340B20AC9E185B0770CE6AAB120CFC4C8C88CA381946F48C0478DC07E5CF3CFB805A1BA8DB905A6D2ABFCFD765990CA4699D9F9B6922FECA4FF861362B4525FF0934E679109AB8F00909945FE897E927380F72416231AAE1A717D47BD129D5549F60C2EA377744B8807AA2432D1925D02C4C205715231DFAD86AC6B5253DE58E3E3F65484A0014CC1EFFBABC6EE912A925C08C8BB68E5FD7A13AED0116863EFA7E69A33D28A1FA853B7E0B84A5F78EFC44CDC39C4148C4B1B3D17E7371E51F96CFAAEBE15D67E82B590B9BB0567BC161AFF012F7571E514BCA7157A8C1521BD7147E83EE57721A77895722390D9C1B7C3BEEEF316E313F5A2DFBA0A5E3509F5F2CEB90C07E1177D3C8AA6CD56F5C5C614656D155350AAFD556890247AE6EDEE2236583A6DA347679C69A9B518FA9BD882F5B9850762C987F727CFEE68421A2D4F363EC45EDABAD574CC4C5AB7654F1C7E0CD84E708CD7C3ED66F369EC1E0E193346FE4747709F6A6DC969E3D2394758E807F4370E2C5A64B5190C5E9D3983CF5778076667B3E41AA28A868B9EA72C45A9234A2C92F0627512AC815CDC1418C676E66B474C071C65DF4EB7AA109ED189B30F49C9A7310CDD5504A0155E5A37FB41548B78049F3FF57EF682D04EFF6B43E5390B07019C555CB55D477552EC778C5BBF00830D1D2B233CB9B5C5A1817F96F395A527458625740A6B2FEFDF160F003D72086FAD44EA24CC669E710A965052D997E63144FD5F32271D0CF75D24DCCF5F4A8E7FD0381E03F0E9DB6F63BA5A59790788D48161E0C292436F79120C9057EBC7B1CA430E5D060836CEE57945DF5557EE2036588A902A1BD163F4DA436602B4BEF61A20D52B15877BFF9973366F242A6D2564BF32E2251C0E07DB2C98A31E82B63F6513FD4CC37D040653E3A68C6B2DB43B569FB070120ADEE89042BF0AC0E9103164E5F8BC57847A1F109ABF35E6E5DE0258C2115803DB63 |
403 | 20180504234946 2 6 100 8191 5 E3FCBDCFD41A409C58BE083B6485A2D67E20931B1F469774BAE0F1AB2898B800032581B1C4FC71FE136087937A885AFB6FC9E582DD97B8DE3AD2AF861419D5F06278316DFA78BAE7EF099889F0E99575C7812E7240B67623E7877737013A7D5DB3638040083400E8F27600BAC0650D24220CA1B3C05FB7DD70469A201DBFF1308ECA1C7152A6016BB89BFB6C625715EE91A92EA1848F0B2491AA92187468D9E8442679D7F5F6B64BC9D5A3D4E9B58C59EEEB65F8D6B70A71099E1B420BC0FD750CB2F333C23C97966BE727A6B6D9AEC8C0EB2436E01770F03840BFEC9228BB6DD46CE27D5739E18429F464FFF6812B0F66A8B0024BE03294900B8D0BC3CA6785F8C418EFE7068B2CD190A54BB9F90E05885A5C85DC069495C2009F79DBFD7774D7D65B9831FDC295CE146F4EB91DC56ABBD0B64BEAF3C340E0BF123A115D12289D44B650FF8461734308F4701CF2C199676DB3B4804FCDBD6B08C5D4875073AD5C575CA0B64597472A5C23EB4277B52B1128F3B1AE363E36A2C2D6EF5FCE00EE1573A40AD5ACDCDADE3E2672979CF68E87530520B2CA2C1110CBE4B631F3ABE83CFFDB7D5ACDD6DCA5916E30B1771FE29C4F60163B62349B66C0EDDCE8502F7C49DD4089EA5AE31FFB220A88C8D232367B52FAB7644F02E7EC10378697213CF0D90DA83A9941C217C559F88DEC6587AD953C95F11C575F0EFA9CC0650955C733910F2F90C78AE367F67B0F496A100E0B018731404D2BAEC7420F8C2B1FB6612AF69ECF369F236DD0BFB0ACBAED4141B2A14591C6475FC5C3D4E9B6229ECF7E288C015D59A35DE67F633DC586609AB3AB85A02B99DDF1B6FA7D54D4B2DDB767CAAB797C9FB29594B80B5BAACF777666D0B35CE6EFD8E46270C4D715B74FEA64FE34FBF4332BB4E8477CA438645C24444417EA5769B507925FB4B8FC59E429F1EC593C397F71087A080B39A192B5147D04D9F30DC237764C810E519B74EE90F047D0829104B6BA1A01F1CC18C85BE79F52084FAD6D7BF3EDA36D63981D8B75676740DB1AA6E06AD0C1F6A3B665D2D9D0E363FCE37B581C682A5F554D820849CEE7066A7DB011EA7D916B4A45212CBBC7A56ADAD33D203B8A1EDA03064A34351916C243E65D45425974C1468A626B773B48962108203F02814F15640149BCC2325C40F2457F0618CAAFDE26162326F2F81E8C727FAFED1B43E3AC8752E9F4EDFF5B58BD316882B555E63278FEB00B61144703C060B6188F3528E176E9B2D5996579048B723EB678CD56FA979004270E9F88F235404C522ED076E9F287097F2F7600A2D4566D2F6EFB600A9854B61CDB4363040D4F30D96BB011EF4BB0E0F21192F72B106B4F38A79FA384978C3C2A9AB94534BE01C83927BC95A9C5E55E618D7C5D77A9FA39664EEF11B2D50F59396DAD7CDC23F17948585BD88342EED65BF5CBBF | 403 | 20181012142459 2 6 100 8191 5 D72A51FC8A019CA61D28C85021CE881FBDCA1D9E2773A50343C390408ABF52C024F0268B5D4F74AA0722F8FA78F966B7AE411C57015CC9E0DB7E56B27A1D078D951747F90F8F663552B12F9BE26809481BD6D62C8EE018E2944DCF0EC7D31FFE3F7DD2F11F3C8311F1C2E2038613E541F53BA05FD92A540D11BB3267E80CCC5DEC74FD67AE473FAD56EFE2CF04457BB7B3121F93AC8F00A5DBE46E460B9B97823F937CF18722D4EE6373EF369D26A7602491493497C1EFDA3F7509772853CF84CD64A06A54FE32817B39B98CE3CE4477616CF232B04D0B2098D5A4E575939C63B26B72BE87B2BEF58F2F6DB4B2A0E00634E02637DF471D6519C22BA9494F225CA01A1A96886C6F02CE0D11EDE3370180E6E6F5CA54B44A8B66BF16ECD52193B7483700AA4051AF775F80818F3331AD80BB25A0FC8775B7821C32EAFDBEF75B3BFCB2F1A4BBDF5340B20AC9E185B0770CE6AAB120CFC4C8C88CA381946F48C0478DC07E5CF3CFB805A1BA8DB905A6D2ABFCFD765990CA4699D9F9B6922FECA4FF861362B4525FF0934E679109AB8F00909945FE897E927380F72416231AAE1A717D47BD129D5549F60C2EA377744B8807AA2432D1925D02C4C205715231DFAD86AC6B5253DE58E3E3F65484A0014CC1EFFBABC6EE912A925C08C8BB68E5FD7A13AED0116863EFA7E69A33D28A1FA853B7E0B84A5F78EFC44CDC39C4148C4B1B3D17E7371E51F96CFAAEBE15D67E82B590B9BB0567BC161AFF012F7571E514BCA7157A8C1521BD7147E83EE57721A77895722390D9C1B7C3BEEEF316E313F5A2DFBA0A5E3509F5F2CEB90C07E1177D3C8AA6CD56F5C5C614656D155350AAFD556890247AE6EDEE2236583A6DA347679C69A9B518FA9BD882F5B9850762C987F727CFEE68421A2D4F363EC45EDABAD574CC4C5AB7654F1C7E0CD84E708CD7C3ED66F369EC1E0E193346FE4747709F6A6DC969E3D2394758E807F4370E2C5A64B5190C5E9D3983CF5778076667B3E41AA28A868B9EA72C45A9234A2C92F0627512AC815CDC1418C676E66B474C071C65DF4EB7AA109ED189B30F49C9A7310CDD5504A0155E5A37FB41548B78049F3FF57EF682D04EFF6B43E5390B07019C555CB55D477552EC778C5BBF00830D1D2B233CB9B5C5A1817F96F395A527458625740A6B2FEFDF160F003D72086FAD44EA24CC669E710A965052D997E63144FD5F32271D0CF75D24DCCF5F4A8E7FD0381E03F0E9DB6F63BA5A59790788D48161E0C292436F79120C9057EBC7B1CA430E5D060836CEE57945DF5557EE2036588A902A1BD163F4DA436602B4BEF61A20D52B15877BFF9973366F242A6D2564BF32E2251C0E07DB2C98A31E82B63F6513FD4CC37D040653E3A68C6B2DB43B569FB070120ADEE89042BF0AC0E9103164E5F8BC57847A1F109ABF35E6E5DE0258C2115CF3077F |
404 | 20180505042813 2 6 100 8191 5 E3FCBDCFD41A409C58BE083B6485A2D67E20931B1F469774BAE0F1AB2898B800032581B1C4FC71FE136087937A885AFB6FC9E582DD97B8DE3AD2AF861419D5F06278316DFA78BAE7EF099889F0E99575C7812E7240B67623E7877737013A7D5DB3638040083400E8F27600BAC0650D24220CA1B3C05FB7DD70469A201DBFF1308ECA1C7152A6016BB89BFB6C625715EE91A92EA1848F0B2491AA92187468D9E8442679D7F5F6B64BC9D5A3D4E9B58C59EEEB65F8D6B70A71099E1B420BC0FD750CB2F333C23C97966BE727A6B6D9AEC8C0EB2436E01770F03840BFEC9228BB6DD46CE27D5739E18429F464FFF6812B0F66A8B0024BE03294900B8D0BC3CA6785F8C418EFE7068B2CD190A54BB9F90E05885A5C85DC069495C2009F79DBFD7774D7D65B9831FDC295CE146F4EB91DC56ABBD0B64BEAF3C340E0BF123A115D12289D44B650FF8461734308F4701CF2C199676DB3B4804FCDBD6B08C5D4875073AD5C575CA0B64597472A5C23EB4277B52B1128F3B1AE363E36A2C2D6EF5FCE00EE1573A40AD5ACDCDADE3E2672979CF68E87530520B2CA2C1110CBE4B631F3ABE83CFFDB7D5ACDD6DCA5916E30B1771FE29C4F60163B62349B66C0EDDCE8502F7C49DD4089EA5AE31FFB220A88C8D232367B52FAB7644F02E7EC10378697213CF0D90DA83A9941C217C559F88DEC6587AD953C95F11C575F0EFA9CC0650955C733910F2F90C78AE367F67B0F496A100E0B018731404D2BAEC7420F8C2B1FB6612AF69ECF369F236DD0BFB0ACBAED4141B2A14591C6475FC5C3D4E9B6229ECF7E288C015D59A35DE67F633DC586609AB3AB85A02B99DDF1B6FA7D54D4B2DDB767CAAB797C9FB29594B80B5BAACF777666D0B35CE6EFD8E46270C4D715B74FEA64FE34FBF4332BB4E8477CA438645C24444417EA5769B507925FB4B8FC59E429F1EC593C397F71087A080B39A192B5147D04D9F30DC237764C810E519B74EE90F047D0829104B6BA1A01F1CC18C85BE79F52084FAD6D7BF3EDA36D63981D8B75676740DB1AA6E06AD0C1F6A3B665D2D9D0E363FCE37B581C682A5F554D820849CEE7066A7DB011EA7D916B4A45212CBBC7A56ADAD33D203B8A1EDA03064A34351916C243E65D45425974C1468A626B773B48962108203F02814F15640149BCC2325C40F2457F0618CAAFDE26162326F2F81E8C727FAFED1B43E3AC8752E9F4EDFF5B58BD316882B555E63278FEB00B61144703C060B6188F3528E176E9B2D5996579048B723EB678CD56FA979004270E9F88F235404C522ED076E9F287097F2F7600A2D4566D2F6EFB600A9854B61CDB4363040D4F30D96BB011EF4BB0E0F21192F72B106B4F38A79FA384978C3C2A9AB94534BE01C83927BC95A9C5E55E618D7C5D77A9FA39664EEF11B2D50F59396DAD7CDC23F17948585BD88342EED65F0A04E7 | 404 | 20181012162028 2 6 100 8191 2 D72A51FC8A019CA61D28C85021CE881FBDCA1D9E2773A50343C390408ABF52C024F0268B5D4F74AA0722F8FA78F966B7AE411C57015CC9E0DB7E56B27A1D078D951747F90F8F663552B12F9BE26809481BD6D62C8EE018E2944DCF0EC7D31FFE3F7DD2F11F3C8311F1C2E2038613E541F53BA05FD92A540D11BB3267E80CCC5DEC74FD67AE473FAD56EFE2CF04457BB7B3121F93AC8F00A5DBE46E460B9B97823F937CF18722D4EE6373EF369D26A7602491493497C1EFDA3F7509772853CF84CD64A06A54FE32817B39B98CE3CE4477616CF232B04D0B2098D5A4E575939C63B26B72BE87B2BEF58F2F6DB4B2A0E00634E02637DF471D6519C22BA9494F225CA01A1A96886C6F02CE0D11EDE3370180E6E6F5CA54B44A8B66BF16ECD52193B7483700AA4051AF775F80818F3331AD80BB25A0FC8775B7821C32EAFDBEF75B3BFCB2F1A4BBDF5340B20AC9E185B0770CE6AAB120CFC4C8C88CA381946F48C0478DC07E5CF3CFB805A1BA8DB905A6D2ABFCFD765990CA4699D9F9B6922FECA4FF861362B4525FF0934E679109AB8F00909945FE897E927380F72416231AAE1A717D47BD129D5549F60C2EA377744B8807AA2432D1925D02C4C205715231DFAD86AC6B5253DE58E3E3F65484A0014CC1EFFBABC6EE912A925C08C8BB68E5FD7A13AED0116863EFA7E69A33D28A1FA853B7E0B84A5F78EFC44CDC39C4148C4B1B3D17E7371E51F96CFAAEBE15D67E82B590B9BB0567BC161AFF012F7571E514BCA7157A8C1521BD7147E83EE57721A77895722390D9C1B7C3BEEEF316E313F5A2DFBA0A5E3509F5F2CEB90C07E1177D3C8AA6CD56F5C5C614656D155350AAFD556890247AE6EDEE2236583A6DA347679C69A9B518FA9BD882F5B9850762C987F727CFEE68421A2D4F363EC45EDABAD574CC4C5AB7654F1C7E0CD84E708CD7C3ED66F369EC1E0E193346FE4747709F6A6DC969E3D2394758E807F4370E2C5A64B5190C5E9D3983CF5778076667B3E41AA28A868B9EA72C45A9234A2C92F0627512AC815CDC1418C676E66B474C071C65DF4EB7AA109ED189B30F49C9A7310CDD5504A0155E5A37FB41548B78049F3FF57EF682D04EFF6B43E5390B07019C555CB55D477552EC778C5BBF00830D1D2B233CB9B5C5A1817F96F395A527458625740A6B2FEFDF160F003D72086FAD44EA24CC669E710A965052D997E63144FD5F32271D0CF75D24DCCF5F4A8E7FD0381E03F0E9DB6F63BA5A59790788D48161E0C292436F79120C9057EBC7B1CA430E5D060836CEE57945DF5557EE2036588A902A1BD163F4DA436602B4BEF61A20D52B15877BFF9973366F242A6D2564BF32E2251C0E07DB2C98A31E82B63F6513FD4CC37D040653E3A68C6B2DB43B569FB070120ADEE89042BF0AC0E9103164E5F8BC57847A1F109ABF35E6E5DE0258C2115E1C6FCB |
405 | 20180505043446 2 6 100 8191 5 E3FCBDCFD41A409C58BE083B6485A2D67E20931B1F469774BAE0F1AB2898B800032581B1C4FC71FE136087937A885AFB6FC9E582DD97B8DE3AD2AF861419D5F06278316DFA78BAE7EF099889F0E99575C7812E7240B67623E7877737013A7D5DB3638040083400E8F27600BAC0650D24220CA1B3C05FB7DD70469A201DBFF1308ECA1C7152A6016BB89BFB6C625715EE91A92EA1848F0B2491AA92187468D9E8442679D7F5F6B64BC9D5A3D4E9B58C59EEEB65F8D6B70A71099E1B420BC0FD750CB2F333C23C97966BE727A6B6D9AEC8C0EB2436E01770F03840BFEC9228BB6DD46CE27D5739E18429F464FFF6812B0F66A8B0024BE03294900B8D0BC3CA6785F8C418EFE7068B2CD190A54BB9F90E05885A5C85DC069495C2009F79DBFD7774D7D65B9831FDC295CE146F4EB91DC56ABBD0B64BEAF3C340E0BF123A115D12289D44B650FF8461734308F4701CF2C199676DB3B4804FCDBD6B08C5D4875073AD5C575CA0B64597472A5C23EB4277B52B1128F3B1AE363E36A2C2D6EF5FCE00EE1573A40AD5ACDCDADE3E2672979CF68E87530520B2CA2C1110CBE4B631F3ABE83CFFDB7D5ACDD6DCA5916E30B1771FE29C4F60163B62349B66C0EDDCE8502F7C49DD4089EA5AE31FFB220A88C8D232367B52FAB7644F02E7EC10378697213CF0D90DA83A9941C217C559F88DEC6587AD953C95F11C575F0EFA9CC0650955C733910F2F90C78AE367F67B0F496A100E0B018731404D2BAEC7420F8C2B1FB6612AF69ECF369F236DD0BFB0ACBAED4141B2A14591C6475FC5C3D4E9B6229ECF7E288C015D59A35DE67F633DC586609AB3AB85A02B99DDF1B6FA7D54D4B2DDB767CAAB797C9FB29594B80B5BAACF777666D0B35CE6EFD8E46270C4D715B74FEA64FE34FBF4332BB4E8477CA438645C24444417EA5769B507925FB4B8FC59E429F1EC593C397F71087A080B39A192B5147D04D9F30DC237764C810E519B74EE90F047D0829104B6BA1A01F1CC18C85BE79F52084FAD6D7BF3EDA36D63981D8B75676740DB1AA6E06AD0C1F6A3B665D2D9D0E363FCE37B581C682A5F554D820849CEE7066A7DB011EA7D916B4A45212CBBC7A56ADAD33D203B8A1EDA03064A34351916C243E65D45425974C1468A626B773B48962108203F02814F15640149BCC2325C40F2457F0618CAAFDE26162326F2F81E8C727FAFED1B43E3AC8752E9F4EDFF5B58BD316882B555E63278FEB00B61144703C060B6188F3528E176E9B2D5996579048B723EB678CD56FA979004270E9F88F235404C522ED076E9F287097F2F7600A2D4566D2F6EFB600A9854B61CDB4363040D4F30D96BB011EF4BB0E0F21192F72B106B4F38A79FA384978C3C2A9AB94534BE01C83927BC95A9C5E55E618D7C5D77A9FA39664EEF11B2D50F59396DAD7CDC23F17948585BD88342EED65F133337 | 405 | 20181012182332 2 6 100 8191 5 D72A51FC8A019CA61D28C85021CE881FBDCA1D9E2773A50343C390408ABF52C024F0268B5D4F74AA0722F8FA78F966B7AE411C57015CC9E0DB7E56B27A1D078D951747F90F8F663552B12F9BE26809481BD6D62C8EE018E2944DCF0EC7D31FFE3F7DD2F11F3C8311F1C2E2038613E541F53BA05FD92A540D11BB3267E80CCC5DEC74FD67AE473FAD56EFE2CF04457BB7B3121F93AC8F00A5DBE46E460B9B97823F937CF18722D4EE6373EF369D26A7602491493497C1EFDA3F7509772853CF84CD64A06A54FE32817B39B98CE3CE4477616CF232B04D0B2098D5A4E575939C63B26B72BE87B2BEF58F2F6DB4B2A0E00634E02637DF471D6519C22BA9494F225CA01A1A96886C6F02CE0D11EDE3370180E6E6F5CA54B44A8B66BF16ECD52193B7483700AA4051AF775F80818F3331AD80BB25A0FC8775B7821C32EAFDBEF75B3BFCB2F1A4BBDF5340B20AC9E185B0770CE6AAB120CFC4C8C88CA381946F48C0478DC07E5CF3CFB805A1BA8DB905A6D2ABFCFD765990CA4699D9F9B6922FECA4FF861362B4525FF0934E679109AB8F00909945FE897E927380F72416231AAE1A717D47BD129D5549F60C2EA377744B8807AA2432D1925D02C4C205715231DFAD86AC6B5253DE58E3E3F65484A0014CC1EFFBABC6EE912A925C08C8BB68E5FD7A13AED0116863EFA7E69A33D28A1FA853B7E0B84A5F78EFC44CDC39C4148C4B1B3D17E7371E51F96CFAAEBE15D67E82B590B9BB0567BC161AFF012F7571E514BCA7157A8C1521BD7147E83EE57721A77895722390D9C1B7C3BEEEF316E313F5A2DFBA0A5E3509F5F2CEB90C07E1177D3C8AA6CD56F5C5C614656D155350AAFD556890247AE6EDEE2236583A6DA347679C69A9B518FA9BD882F5B9850762C987F727CFEE68421A2D4F363EC45EDABAD574CC4C5AB7654F1C7E0CD84E708CD7C3ED66F369EC1E0E193346FE4747709F6A6DC969E3D2394758E807F4370E2C5A64B5190C5E9D3983CF5778076667B3E41AA28A868B9EA72C45A9234A2C92F0627512AC815CDC1418C676E66B474C071C65DF4EB7AA109ED189B30F49C9A7310CDD5504A0155E5A37FB41548B78049F3FF57EF682D04EFF6B43E5390B07019C555CB55D477552EC778C5BBF00830D1D2B233CB9B5C5A1817F96F395A527458625740A6B2FEFDF160F003D72086FAD44EA24CC669E710A965052D997E63144FD5F32271D0CF75D24DCCF5F4A8E7FD0381E03F0E9DB6F63BA5A59790788D48161E0C292436F79120C9057EBC7B1CA430E5D060836CEE57945DF5557EE2036588A902A1BD163F4DA436602B4BEF61A20D52B15877BFF9973366F242A6D2564BF32E2251C0E07DB2C98A31E82B63F6513FD4CC37D040653E3A68C6B2DB43B569FB070120ADEE89042BF0AC0E9103164E5F8BC57847A1F109ABF35E6E5DE0258C2115F5E2D97 |
406 | 20180505082348 2 6 100 8191 2 E3FCBDCFD41A409C58BE083B6485A2D67E20931B1F469774BAE0F1AB2898B800032581B1C4FC71FE136087937A885AFB6FC9E582DD97B8DE3AD2AF861419D5F06278316DFA78BAE7EF099889F0E99575C7812E7240B67623E7877737013A7D5DB3638040083400E8F27600BAC0650D24220CA1B3C05FB7DD70469A201DBFF1308ECA1C7152A6016BB89BFB6C625715EE91A92EA1848F0B2491AA92187468D9E8442679D7F5F6B64BC9D5A3D4E9B58C59EEEB65F8D6B70A71099E1B420BC0FD750CB2F333C23C97966BE727A6B6D9AEC8C0EB2436E01770F03840BFEC9228BB6DD46CE27D5739E18429F464FFF6812B0F66A8B0024BE03294900B8D0BC3CA6785F8C418EFE7068B2CD190A54BB9F90E05885A5C85DC069495C2009F79DBFD7774D7D65B9831FDC295CE146F4EB91DC56ABBD0B64BEAF3C340E0BF123A115D12289D44B650FF8461734308F4701CF2C199676DB3B4804FCDBD6B08C5D4875073AD5C575CA0B64597472A5C23EB4277B52B1128F3B1AE363E36A2C2D6EF5FCE00EE1573A40AD5ACDCDADE3E2672979CF68E87530520B2CA2C1110CBE4B631F3ABE83CFFDB7D5ACDD6DCA5916E30B1771FE29C4F60163B62349B66C0EDDCE8502F7C49DD4089EA5AE31FFB220A88C8D232367B52FAB7644F02E7EC10378697213CF0D90DA83A9941C217C559F88DEC6587AD953C95F11C575F0EFA9CC0650955C733910F2F90C78AE367F67B0F496A100E0B018731404D2BAEC7420F8C2B1FB6612AF69ECF369F236DD0BFB0ACBAED4141B2A14591C6475FC5C3D4E9B6229ECF7E288C015D59A35DE67F633DC586609AB3AB85A02B99DDF1B6FA7D54D4B2DDB767CAAB797C9FB29594B80B5BAACF777666D0B35CE6EFD8E46270C4D715B74FEA64FE34FBF4332BB4E8477CA438645C24444417EA5769B507925FB4B8FC59E429F1EC593C397F71087A080B39A192B5147D04D9F30DC237764C810E519B74EE90F047D0829104B6BA1A01F1CC18C85BE79F52084FAD6D7BF3EDA36D63981D8B75676740DB1AA6E06AD0C1F6A3B665D2D9D0E363FCE37B581C682A5F554D820849CEE7066A7DB011EA7D916B4A45212CBBC7A56ADAD33D203B8A1EDA03064A34351916C243E65D45425974C1468A626B773B48962108203F02814F15640149BCC2325C40F2457F0618CAAFDE26162326F2F81E8C727FAFED1B43E3AC8752E9F4EDFF5B58BD316882B555E63278FEB00B61144703C060B6188F3528E176E9B2D5996579048B723EB678CD56FA979004270E9F88F235404C522ED076E9F287097F2F7600A2D4566D2F6EFB600A9854B61CDB4363040D4F30D96BB011EF4BB0E0F21192F72B106B4F38A79FA384978C3C2A9AB94534BE01C83927BC95A9C5E55E618D7C5D77A9FA39664EEF11B2D50F59396DAD7CDC23F17948585BD88342EED6618FACC3 | 406 | 20181012182843 2 6 100 8191 2 D72A51FC8A019CA61D28C85021CE881FBDCA1D9E2773A50343C390408ABF52C024F0268B5D4F74AA0722F8FA78F966B7AE411C57015CC9E0DB7E56B27A1D078D951747F90F8F663552B12F9BE26809481BD6D62C8EE018E2944DCF0EC7D31FFE3F7DD2F11F3C8311F1C2E2038613E541F53BA05FD92A540D11BB3267E80CCC5DEC74FD67AE473FAD56EFE2CF04457BB7B3121F93AC8F00A5DBE46E460B9B97823F937CF18722D4EE6373EF369D26A7602491493497C1EFDA3F7509772853CF84CD64A06A54FE32817B39B98CE3CE4477616CF232B04D0B2098D5A4E575939C63B26B72BE87B2BEF58F2F6DB4B2A0E00634E02637DF471D6519C22BA9494F225CA01A1A96886C6F02CE0D11EDE3370180E6E6F5CA54B44A8B66BF16ECD52193B7483700AA4051AF775F80818F3331AD80BB25A0FC8775B7821C32EAFDBEF75B3BFCB2F1A4BBDF5340B20AC9E185B0770CE6AAB120CFC4C8C88CA381946F48C0478DC07E5CF3CFB805A1BA8DB905A6D2ABFCFD765990CA4699D9F9B6922FECA4FF861362B4525FF0934E679109AB8F00909945FE897E927380F72416231AAE1A717D47BD129D5549F60C2EA377744B8807AA2432D1925D02C4C205715231DFAD86AC6B5253DE58E3E3F65484A0014CC1EFFBABC6EE912A925C08C8BB68E5FD7A13AED0116863EFA7E69A33D28A1FA853B7E0B84A5F78EFC44CDC39C4148C4B1B3D17E7371E51F96CFAAEBE15D67E82B590B9BB0567BC161AFF012F7571E514BCA7157A8C1521BD7147E83EE57721A77895722390D9C1B7C3BEEEF316E313F5A2DFBA0A5E3509F5F2CEB90C07E1177D3C8AA6CD56F5C5C614656D155350AAFD556890247AE6EDEE2236583A6DA347679C69A9B518FA9BD882F5B9850762C987F727CFEE68421A2D4F363EC45EDABAD574CC4C5AB7654F1C7E0CD84E708CD7C3ED66F369EC1E0E193346FE4747709F6A6DC969E3D2394758E807F4370E2C5A64B5190C5E9D3983CF5778076667B3E41AA28A868B9EA72C45A9234A2C92F0627512AC815CDC1418C676E66B474C071C65DF4EB7AA109ED189B30F49C9A7310CDD5504A0155E5A37FB41548B78049F3FF57EF682D04EFF6B43E5390B07019C555CB55D477552EC778C5BBF00830D1D2B233CB9B5C5A1817F96F395A527458625740A6B2FEFDF160F003D72086FAD44EA24CC669E710A965052D997E63144FD5F32271D0CF75D24DCCF5F4A8E7FD0381E03F0E9DB6F63BA5A59790788D48161E0C292436F79120C9057EBC7B1CA430E5D060836CEE57945DF5557EE2036588A902A1BD163F4DA436602B4BEF61A20D52B15877BFF9973366F242A6D2564BF32E2251C0E07DB2C98A31E82B63F6513FD4CC37D040653E3A68C6B2DB43B569FB070120ADEE89042BF0AC0E9103164E5F8BC57847A1F109ABF35E6E5DE0258C2115F623A23 |
407 | 20180505142452 2 6 100 8191 2 E3FCBDCFD41A409C58BE083B6485A2D67E20931B1F469774BAE0F1AB2898B800032581B1C4FC71FE136087937A885AFB6FC9E582DD97B8DE3AD2AF861419D5F06278316DFA78BAE7EF099889F0E99575C7812E7240B67623E7877737013A7D5DB3638040083400E8F27600BAC0650D24220CA1B3C05FB7DD70469A201DBFF1308ECA1C7152A6016BB89BFB6C625715EE91A92EA1848F0B2491AA92187468D9E8442679D7F5F6B64BC9D5A3D4E9B58C59EEEB65F8D6B70A71099E1B420BC0FD750CB2F333C23C97966BE727A6B6D9AEC8C0EB2436E01770F03840BFEC9228BB6DD46CE27D5739E18429F464FFF6812B0F66A8B0024BE03294900B8D0BC3CA6785F8C418EFE7068B2CD190A54BB9F90E05885A5C85DC069495C2009F79DBFD7774D7D65B9831FDC295CE146F4EB91DC56ABBD0B64BEAF3C340E0BF123A115D12289D44B650FF8461734308F4701CF2C199676DB3B4804FCDBD6B08C5D4875073AD5C575CA0B64597472A5C23EB4277B52B1128F3B1AE363E36A2C2D6EF5FCE00EE1573A40AD5ACDCDADE3E2672979CF68E87530520B2CA2C1110CBE4B631F3ABE83CFFDB7D5ACDD6DCA5916E30B1771FE29C4F60163B62349B66C0EDDCE8502F7C49DD4089EA5AE31FFB220A88C8D232367B52FAB7644F02E7EC10378697213CF0D90DA83A9941C217C559F88DEC6587AD953C95F11C575F0EFA9CC0650955C733910F2F90C78AE367F67B0F496A100E0B018731404D2BAEC7420F8C2B1FB6612AF69ECF369F236DD0BFB0ACBAED4141B2A14591C6475FC5C3D4E9B6229ECF7E288C015D59A35DE67F633DC586609AB3AB85A02B99DDF1B6FA7D54D4B2DDB767CAAB797C9FB29594B80B5BAACF777666D0B35CE6EFD8E46270C4D715B74FEA64FE34FBF4332BB4E8477CA438645C24444417EA5769B507925FB4B8FC59E429F1EC593C397F71087A080B39A192B5147D04D9F30DC237764C810E519B74EE90F047D0829104B6BA1A01F1CC18C85BE79F52084FAD6D7BF3EDA36D63981D8B75676740DB1AA6E06AD0C1F6A3B665D2D9D0E363FCE37B581C682A5F554D820849CEE7066A7DB011EA7D916B4A45212CBBC7A56ADAD33D203B8A1EDA03064A34351916C243E65D45425974C1468A626B773B48962108203F02814F15640149BCC2325C40F2457F0618CAAFDE26162326F2F81E8C727FAFED1B43E3AC8752E9F4EDFF5B58BD316882B555E63278FEB00B61144703C060B6188F3528E176E9B2D5996579048B723EB678CD56FA979004270E9F88F235404C522ED076E9F287097F2F7600A2D4566D2F6EFB600A9854B61CDB4363040D4F30D96BB011EF4BB0E0F21192F72B106B4F38A79FA384978C3C2A9AB94534BE01C83927BC95A9C5E55E618D7C5D77A9FA39664EEF11B2D50F59396DAD7CDC23F17948585BD88342EED665916E9B | 407 | 20181012201834 2 6 100 8191 2 D72A51FC8A019CA61D28C85021CE881FBDCA1D9E2773A50343C390408ABF52C024F0268B5D4F74AA0722F8FA78F966B7AE411C57015CC9E0DB7E56B27A1D078D951747F90F8F663552B12F9BE26809481BD6D62C8EE018E2944DCF0EC7D31FFE3F7DD2F11F3C8311F1C2E2038613E541F53BA05FD92A540D11BB3267E80CCC5DEC74FD67AE473FAD56EFE2CF04457BB7B3121F93AC8F00A5DBE46E460B9B97823F937CF18722D4EE6373EF369D26A7602491493497C1EFDA3F7509772853CF84CD64A06A54FE32817B39B98CE3CE4477616CF232B04D0B2098D5A4E575939C63B26B72BE87B2BEF58F2F6DB4B2A0E00634E02637DF471D6519C22BA9494F225CA01A1A96886C6F02CE0D11EDE3370180E6E6F5CA54B44A8B66BF16ECD52193B7483700AA4051AF775F80818F3331AD80BB25A0FC8775B7821C32EAFDBEF75B3BFCB2F1A4BBDF5340B20AC9E185B0770CE6AAB120CFC4C8C88CA381946F48C0478DC07E5CF3CFB805A1BA8DB905A6D2ABFCFD765990CA4699D9F9B6922FECA4FF861362B4525FF0934E679109AB8F00909945FE897E927380F72416231AAE1A717D47BD129D5549F60C2EA377744B8807AA2432D1925D02C4C205715231DFAD86AC6B5253DE58E3E3F65484A0014CC1EFFBABC6EE912A925C08C8BB68E5FD7A13AED0116863EFA7E69A33D28A1FA853B7E0B84A5F78EFC44CDC39C4148C4B1B3D17E7371E51F96CFAAEBE15D67E82B590B9BB0567BC161AFF012F7571E514BCA7157A8C1521BD7147E83EE57721A77895722390D9C1B7C3BEEEF316E313F5A2DFBA0A5E3509F5F2CEB90C07E1177D3C8AA6CD56F5C5C614656D155350AAFD556890247AE6EDEE2236583A6DA347679C69A9B518FA9BD882F5B9850762C987F727CFEE68421A2D4F363EC45EDABAD574CC4C5AB7654F1C7E0CD84E708CD7C3ED66F369EC1E0E193346FE4747709F6A6DC969E3D2394758E807F4370E2C5A64B5190C5E9D3983CF5778076667B3E41AA28A868B9EA72C45A9234A2C92F0627512AC815CDC1418C676E66B474C071C65DF4EB7AA109ED189B30F49C9A7310CDD5504A0155E5A37FB41548B78049F3FF57EF682D04EFF6B43E5390B07019C555CB55D477552EC778C5BBF00830D1D2B233CB9B5C5A1817F96F395A527458625740A6B2FEFDF160F003D72086FAD44EA24CC669E710A965052D997E63144FD5F32271D0CF75D24DCCF5F4A8E7FD0381E03F0E9DB6F63BA5A59790788D48161E0C292436F79120C9057EBC7B1CA430E5D060836CEE57945DF5557EE2036588A902A1BD163F4DA436602B4BEF61A20D52B15877BFF9973366F242A6D2564BF32E2251C0E07DB2C98A31E82B63F6513FD4CC37D040653E3A68C6B2DB43B569FB070120ADEE89042BF0AC0E9103164E5F8BC57847A1F109ABF35E6E5DE0258C211608810CB |
408 | 20180505191845 2 6 100 8191 2 E3FCBDCFD41A409C58BE083B6485A2D67E20931B1F469774BAE0F1AB2898B800032581B1C4FC71FE136087937A885AFB6FC9E582DD97B8DE3AD2AF861419D5F06278316DFA78BAE7EF099889F0E99575C7812E7240B67623E7877737013A7D5DB3638040083400E8F27600BAC0650D24220CA1B3C05FB7DD70469A201DBFF1308ECA1C7152A6016BB89BFB6C625715EE91A92EA1848F0B2491AA92187468D9E8442679D7F5F6B64BC9D5A3D4E9B58C59EEEB65F8D6B70A71099E1B420BC0FD750CB2F333C23C97966BE727A6B6D9AEC8C0EB2436E01770F03840BFEC9228BB6DD46CE27D5739E18429F464FFF6812B0F66A8B0024BE03294900B8D0BC3CA6785F8C418EFE7068B2CD190A54BB9F90E05885A5C85DC069495C2009F79DBFD7774D7D65B9831FDC295CE146F4EB91DC56ABBD0B64BEAF3C340E0BF123A115D12289D44B650FF8461734308F4701CF2C199676DB3B4804FCDBD6B08C5D4875073AD5C575CA0B64597472A5C23EB4277B52B1128F3B1AE363E36A2C2D6EF5FCE00EE1573A40AD5ACDCDADE3E2672979CF68E87530520B2CA2C1110CBE4B631F3ABE83CFFDB7D5ACDD6DCA5916E30B1771FE29C4F60163B62349B66C0EDDCE8502F7C49DD4089EA5AE31FFB220A88C8D232367B52FAB7644F02E7EC10378697213CF0D90DA83A9941C217C559F88DEC6587AD953C95F11C575F0EFA9CC0650955C733910F2F90C78AE367F67B0F496A100E0B018731404D2BAEC7420F8C2B1FB6612AF69ECF369F236DD0BFB0ACBAED4141B2A14591C6475FC5C3D4E9B6229ECF7E288C015D59A35DE67F633DC586609AB3AB85A02B99DDF1B6FA7D54D4B2DDB767CAAB797C9FB29594B80B5BAACF777666D0B35CE6EFD8E46270C4D715B74FEA64FE34FBF4332BB4E8477CA438645C24444417EA5769B507925FB4B8FC59E429F1EC593C397F71087A080B39A192B5147D04D9F30DC237764C810E519B74EE90F047D0829104B6BA1A01F1CC18C85BE79F52084FAD6D7BF3EDA36D63981D8B75676740DB1AA6E06AD0C1F6A3B665D2D9D0E363FCE37B581C682A5F554D820849CEE7066A7DB011EA7D916B4A45212CBBC7A56ADAD33D203B8A1EDA03064A34351916C243E65D45425974C1468A626B773B48962108203F02814F15640149BCC2325C40F2457F0618CAAFDE26162326F2F81E8C727FAFED1B43E3AC8752E9F4EDFF5B58BD316882B555E63278FEB00B61144703C060B6188F3528E176E9B2D5996579048B723EB678CD56FA979004270E9F88F235404C522ED076E9F287097F2F7600A2D4566D2F6EFB600A9854B61CDB4363040D4F30D96BB011EF4BB0E0F21192F72B106B4F38A79FA384978C3C2A9AB94534BE01C83927BC95A9C5E55E618D7C5D77A9FA39664EEF11B2D50F59396DAD7CDC23F17948585BD88342EED668B9BE0B | 408 | 20181012223139 2 6 100 8191 2 D72A51FC8A019CA61D28C85021CE881FBDCA1D9E2773A50343C390408ABF52C024F0268B5D4F74AA0722F8FA78F966B7AE411C57015CC9E0DB7E56B27A1D078D951747F90F8F663552B12F9BE26809481BD6D62C8EE018E2944DCF0EC7D31FFE3F7DD2F11F3C8311F1C2E2038613E541F53BA05FD92A540D11BB3267E80CCC5DEC74FD67AE473FAD56EFE2CF04457BB7B3121F93AC8F00A5DBE46E460B9B97823F937CF18722D4EE6373EF369D26A7602491493497C1EFDA3F7509772853CF84CD64A06A54FE32817B39B98CE3CE4477616CF232B04D0B2098D5A4E575939C63B26B72BE87B2BEF58F2F6DB4B2A0E00634E02637DF471D6519C22BA9494F225CA01A1A96886C6F02CE0D11EDE3370180E6E6F5CA54B44A8B66BF16ECD52193B7483700AA4051AF775F80818F3331AD80BB25A0FC8775B7821C32EAFDBEF75B3BFCB2F1A4BBDF5340B20AC9E185B0770CE6AAB120CFC4C8C88CA381946F48C0478DC07E5CF3CFB805A1BA8DB905A6D2ABFCFD765990CA4699D9F9B6922FECA4FF861362B4525FF0934E679109AB8F00909945FE897E927380F72416231AAE1A717D47BD129D5549F60C2EA377744B8807AA2432D1925D02C4C205715231DFAD86AC6B5253DE58E3E3F65484A0014CC1EFFBABC6EE912A925C08C8BB68E5FD7A13AED0116863EFA7E69A33D28A1FA853B7E0B84A5F78EFC44CDC39C4148C4B1B3D17E7371E51F96CFAAEBE15D67E82B590B9BB0567BC161AFF012F7571E514BCA7157A8C1521BD7147E83EE57721A77895722390D9C1B7C3BEEEF316E313F5A2DFBA0A5E3509F5F2CEB90C07E1177D3C8AA6CD56F5C5C614656D155350AAFD556890247AE6EDEE2236583A6DA347679C69A9B518FA9BD882F5B9850762C987F727CFEE68421A2D4F363EC45EDABAD574CC4C5AB7654F1C7E0CD84E708CD7C3ED66F369EC1E0E193346FE4747709F6A6DC969E3D2394758E807F4370E2C5A64B5190C5E9D3983CF5778076667B3E41AA28A868B9EA72C45A9234A2C92F0627512AC815CDC1418C676E66B474C071C65DF4EB7AA109ED189B30F49C9A7310CDD5504A0155E5A37FB41548B78049F3FF57EF682D04EFF6B43E5390B07019C555CB55D477552EC778C5BBF00830D1D2B233CB9B5C5A1817F96F395A527458625740A6B2FEFDF160F003D72086FAD44EA24CC669E710A965052D997E63144FD5F32271D0CF75D24DCCF5F4A8E7FD0381E03F0E9DB6F63BA5A59790788D48161E0C292436F79120C9057EBC7B1CA430E5D060836CEE57945DF5557EE2036588A902A1BD163F4DA436602B4BEF61A20D52B15877BFF9973366F242A6D2564BF32E2251C0E07DB2C98A31E82B63F6513FD4CC37D040653E3A68C6B2DB43B569FB070120ADEE89042BF0AC0E9103164E5F8BC57847A1F109ABF35E6E5DE0258C21161EAF243 |
409 | 20180506011717 2 6 100 8191 5 E3FCBDCFD41A409C58BE083B6485A2D67E20931B1F469774BAE0F1AB2898B800032581B1C4FC71FE136087937A885AFB6FC9E582DD97B8DE3AD2AF861419D5F06278316DFA78BAE7EF099889F0E99575C7812E7240B67623E7877737013A7D5DB3638040083400E8F27600BAC0650D24220CA1B3C05FB7DD70469A201DBFF1308ECA1C7152A6016BB89BFB6C625715EE91A92EA1848F0B2491AA92187468D9E8442679D7F5F6B64BC9D5A3D4E9B58C59EEEB65F8D6B70A71099E1B420BC0FD750CB2F333C23C97966BE727A6B6D9AEC8C0EB2436E01770F03840BFEC9228BB6DD46CE27D5739E18429F464FFF6812B0F66A8B0024BE03294900B8D0BC3CA6785F8C418EFE7068B2CD190A54BB9F90E05885A5C85DC069495C2009F79DBFD7774D7D65B9831FDC295CE146F4EB91DC56ABBD0B64BEAF3C340E0BF123A115D12289D44B650FF8461734308F4701CF2C199676DB3B4804FCDBD6B08C5D4875073AD5C575CA0B64597472A5C23EB4277B52B1128F3B1AE363E36A2C2D6EF5FCE00EE1573A40AD5ACDCDADE3E2672979CF68E87530520B2CA2C1110CBE4B631F3ABE83CFFDB7D5ACDD6DCA5916E30B1771FE29C4F60163B62349B66C0EDDCE8502F7C49DD4089EA5AE31FFB220A88C8D232367B52FAB7644F02E7EC10378697213CF0D90DA83A9941C217C559F88DEC6587AD953C95F11C575F0EFA9CC0650955C733910F2F90C78AE367F67B0F496A100E0B018731404D2BAEC7420F8C2B1FB6612AF69ECF369F236DD0BFB0ACBAED4141B2A14591C6475FC5C3D4E9B6229ECF7E288C015D59A35DE67F633DC586609AB3AB85A02B99DDF1B6FA7D54D4B2DDB767CAAB797C9FB29594B80B5BAACF777666D0B35CE6EFD8E46270C4D715B74FEA64FE34FBF4332BB4E8477CA438645C24444417EA5769B507925FB4B8FC59E429F1EC593C397F71087A080B39A192B5147D04D9F30DC237764C810E519B74EE90F047D0829104B6BA1A01F1CC18C85BE79F52084FAD6D7BF3EDA36D63981D8B75676740DB1AA6E06AD0C1F6A3B665D2D9D0E363FCE37B581C682A5F554D820849CEE7066A7DB011EA7D916B4A45212CBBC7A56ADAD33D203B8A1EDA03064A34351916C243E65D45425974C1468A626B773B48962108203F02814F15640149BCC2325C40F2457F0618CAAFDE26162326F2F81E8C727FAFED1B43E3AC8752E9F4EDFF5B58BD316882B555E63278FEB00B61144703C060B6188F3528E176E9B2D5996579048B723EB678CD56FA979004270E9F88F235404C522ED076E9F287097F2F7600A2D4566D2F6EFB600A9854B61CDB4363040D4F30D96BB011EF4BB0E0F21192F72B106B4F38A79FA384978C3C2A9AB94534BE01C83927BC95A9C5E55E618D7C5D77A9FA39664EEF11B2D50F59396DAD7CDC23F17948585BD88342EED66CA10377 | 409 | 20181013114842 2 6 100 8191 2 D72A51FC8A019CA61D28C85021CE881FBDCA1D9E2773A50343C390408ABF52C024F0268B5D4F74AA0722F8FA78F966B7AE411C57015CC9E0DB7E56B27A1D078D951747F90F8F663552B12F9BE26809481BD6D62C8EE018E2944DCF0EC7D31FFE3F7DD2F11F3C8311F1C2E2038613E541F53BA05FD92A540D11BB3267E80CCC5DEC74FD67AE473FAD56EFE2CF04457BB7B3121F93AC8F00A5DBE46E460B9B97823F937CF18722D4EE6373EF369D26A7602491493497C1EFDA3F7509772853CF84CD64A06A54FE32817B39B98CE3CE4477616CF232B04D0B2098D5A4E575939C63B26B72BE87B2BEF58F2F6DB4B2A0E00634E02637DF471D6519C22BA9494F225CA01A1A96886C6F02CE0D11EDE3370180E6E6F5CA54B44A8B66BF16ECD52193B7483700AA4051AF775F80818F3331AD80BB25A0FC8775B7821C32EAFDBEF75B3BFCB2F1A4BBDF5340B20AC9E185B0770CE6AAB120CFC4C8C88CA381946F48C0478DC07E5CF3CFB805A1BA8DB905A6D2ABFCFD765990CA4699D9F9B6922FECA4FF861362B4525FF0934E679109AB8F00909945FE897E927380F72416231AAE1A717D47BD129D5549F60C2EA377744B8807AA2432D1925D02C4C205715231DFAD86AC6B5253DE58E3E3F65484A0014CC1EFFBABC6EE912A925C08C8BB68E5FD7A13AED0116863EFA7E69A33D28A1FA853B7E0B84A5F78EFC44CDC39C4148C4B1B3D17E7371E51F96CFAAEBE15D67E82B590B9BB0567BC161AFF012F7571E514BCA7157A8C1521BD7147E83EE57721A77895722390D9C1B7C3BEEEF316E313F5A2DFBA0A5E3509F5F2CEB90C07E1177D3C8AA6CD56F5C5C614656D155350AAFD556890247AE6EDEE2236583A6DA347679C69A9B518FA9BD882F5B9850762C987F727CFEE68421A2D4F363EC45EDABAD574CC4C5AB7654F1C7E0CD84E708CD7C3ED66F369EC1E0E193346FE4747709F6A6DC969E3D2394758E807F4370E2C5A64B5190C5E9D3983CF5778076667B3E41AA28A868B9EA72C45A9234A2C92F0627512AC815CDC1418C676E66B474C071C65DF4EB7AA109ED189B30F49C9A7310CDD5504A0155E5A37FB41548B78049F3FF57EF682D04EFF6B43E5390B07019C555CB55D477552EC778C5BBF00830D1D2B233CB9B5C5A1817F96F395A527458625740A6B2FEFDF160F003D72086FAD44EA24CC669E710A965052D997E63144FD5F32271D0CF75D24DCCF5F4A8E7FD0381E03F0E9DB6F63BA5A59790788D48161E0C292436F79120C9057EBC7B1CA430E5D060836CEE57945DF5557EE2036588A902A1BD163F4DA436602B4BEF61A20D52B15877BFF9973366F242A6D2564BF32E2251C0E07DB2C98A31E82B63F6513FD4CC37D040653E3A68C6B2DB43B569FB070120ADEE89042BF0AC0E9103164E5F8BC57847A1F109ABF35E6E5DE0258C2116A336C63 |
410 | 20180506064643 2 6 100 8191 2 E3FCBDCFD41A409C58BE083B6485A2D67E20931B1F469774BAE0F1AB2898B800032581B1C4FC71FE136087937A885AFB6FC9E582DD97B8DE3AD2AF861419D5F06278316DFA78BAE7EF099889F0E99575C7812E7240B67623E7877737013A7D5DB3638040083400E8F27600BAC0650D24220CA1B3C05FB7DD70469A201DBFF1308ECA1C7152A6016BB89BFB6C625715EE91A92EA1848F0B2491AA92187468D9E8442679D7F5F6B64BC9D5A3D4E9B58C59EEEB65F8D6B70A71099E1B420BC0FD750CB2F333C23C97966BE727A6B6D9AEC8C0EB2436E01770F03840BFEC9228BB6DD46CE27D5739E18429F464FFF6812B0F66A8B0024BE03294900B8D0BC3CA6785F8C418EFE7068B2CD190A54BB9F90E05885A5C85DC069495C2009F79DBFD7774D7D65B9831FDC295CE146F4EB91DC56ABBD0B64BEAF3C340E0BF123A115D12289D44B650FF8461734308F4701CF2C199676DB3B4804FCDBD6B08C5D4875073AD5C575CA0B64597472A5C23EB4277B52B1128F3B1AE363E36A2C2D6EF5FCE00EE1573A40AD5ACDCDADE3E2672979CF68E87530520B2CA2C1110CBE4B631F3ABE83CFFDB7D5ACDD6DCA5916E30B1771FE29C4F60163B62349B66C0EDDCE8502F7C49DD4089EA5AE31FFB220A88C8D232367B52FAB7644F02E7EC10378697213CF0D90DA83A9941C217C559F88DEC6587AD953C95F11C575F0EFA9CC0650955C733910F2F90C78AE367F67B0F496A100E0B018731404D2BAEC7420F8C2B1FB6612AF69ECF369F236DD0BFB0ACBAED4141B2A14591C6475FC5C3D4E9B6229ECF7E288C015D59A35DE67F633DC586609AB3AB85A02B99DDF1B6FA7D54D4B2DDB767CAAB797C9FB29594B80B5BAACF777666D0B35CE6EFD8E46270C4D715B74FEA64FE34FBF4332BB4E8477CA438645C24444417EA5769B507925FB4B8FC59E429F1EC593C397F71087A080B39A192B5147D04D9F30DC237764C810E519B74EE90F047D0829104B6BA1A01F1CC18C85BE79F52084FAD6D7BF3EDA36D63981D8B75676740DB1AA6E06AD0C1F6A3B665D2D9D0E363FCE37B581C682A5F554D820849CEE7066A7DB011EA7D916B4A45212CBBC7A56ADAD33D203B8A1EDA03064A34351916C243E65D45425974C1468A626B773B48962108203F02814F15640149BCC2325C40F2457F0618CAAFDE26162326F2F81E8C727FAFED1B43E3AC8752E9F4EDFF5B58BD316882B555E63278FEB00B61144703C060B6188F3528E176E9B2D5996579048B723EB678CD56FA979004270E9F88F235404C522ED076E9F287097F2F7600A2D4566D2F6EFB600A9854B61CDB4363040D4F30D96BB011EF4BB0E0F21192F72B106B4F38A79FA384978C3C2A9AB94534BE01C83927BC95A9C5E55E618D7C5D77A9FA39664EEF11B2D50F59396DAD7CDC23F17948585BD88342EED67028E243 | 410 | 20181013221122 2 6 100 8191 5 D72A51FC8A019CA61D28C85021CE881FBDCA1D9E2773A50343C390408ABF52C024F0268B5D4F74AA0722F8FA78F966B7AE411C57015CC9E0DB7E56B27A1D078D951747F90F8F663552B12F9BE26809481BD6D62C8EE018E2944DCF0EC7D31FFE3F7DD2F11F3C8311F1C2E2038613E541F53BA05FD92A540D11BB3267E80CCC5DEC74FD67AE473FAD56EFE2CF04457BB7B3121F93AC8F00A5DBE46E460B9B97823F937CF18722D4EE6373EF369D26A7602491493497C1EFDA3F7509772853CF84CD64A06A54FE32817B39B98CE3CE4477616CF232B04D0B2098D5A4E575939C63B26B72BE87B2BEF58F2F6DB4B2A0E00634E02637DF471D6519C22BA9494F225CA01A1A96886C6F02CE0D11EDE3370180E6E6F5CA54B44A8B66BF16ECD52193B7483700AA4051AF775F80818F3331AD80BB25A0FC8775B7821C32EAFDBEF75B3BFCB2F1A4BBDF5340B20AC9E185B0770CE6AAB120CFC4C8C88CA381946F48C0478DC07E5CF3CFB805A1BA8DB905A6D2ABFCFD765990CA4699D9F9B6922FECA4FF861362B4525FF0934E679109AB8F00909945FE897E927380F72416231AAE1A717D47BD129D5549F60C2EA377744B8807AA2432D1925D02C4C205715231DFAD86AC6B5253DE58E3E3F65484A0014CC1EFFBABC6EE912A925C08C8BB68E5FD7A13AED0116863EFA7E69A33D28A1FA853B7E0B84A5F78EFC44CDC39C4148C4B1B3D17E7371E51F96CFAAEBE15D67E82B590B9BB0567BC161AFF012F7571E514BCA7157A8C1521BD7147E83EE57721A77895722390D9C1B7C3BEEEF316E313F5A2DFBA0A5E3509F5F2CEB90C07E1177D3C8AA6CD56F5C5C614656D155350AAFD556890247AE6EDEE2236583A6DA347679C69A9B518FA9BD882F5B9850762C987F727CFEE68421A2D4F363EC45EDABAD574CC4C5AB7654F1C7E0CD84E708CD7C3ED66F369EC1E0E193346FE4747709F6A6DC969E3D2394758E807F4370E2C5A64B5190C5E9D3983CF5778076667B3E41AA28A868B9EA72C45A9234A2C92F0627512AC815CDC1418C676E66B474C071C65DF4EB7AA109ED189B30F49C9A7310CDD5504A0155E5A37FB41548B78049F3FF57EF682D04EFF6B43E5390B07019C555CB55D477552EC778C5BBF00830D1D2B233CB9B5C5A1817F96F395A527458625740A6B2FEFDF160F003D72086FAD44EA24CC669E710A965052D997E63144FD5F32271D0CF75D24DCCF5F4A8E7FD0381E03F0E9DB6F63BA5A59790788D48161E0C292436F79120C9057EBC7B1CA430E5D060836CEE57945DF5557EE2036588A902A1BD163F4DA436602B4BEF61A20D52B15877BFF9973366F242A6D2564BF32E2251C0E07DB2C98A31E82B63F6513FD4CC37D040653E3A68C6B2DB43B569FB070120ADEE89042BF0AC0E9103164E5F8BC57847A1F109ABF35E6E5DE0258C21170A23417 |
411 | 20180506091931 2 6 100 8191 5 E3FCBDCFD41A409C58BE083B6485A2D67E20931B1F469774BAE0F1AB2898B800032581B1C4FC71FE136087937A885AFB6FC9E582DD97B8DE3AD2AF861419D5F06278316DFA78BAE7EF099889F0E99575C7812E7240B67623E7877737013A7D5DB3638040083400E8F27600BAC0650D24220CA1B3C05FB7DD70469A201DBFF1308ECA1C7152A6016BB89BFB6C625715EE91A92EA1848F0B2491AA92187468D9E8442679D7F5F6B64BC9D5A3D4E9B58C59EEEB65F8D6B70A71099E1B420BC0FD750CB2F333C23C97966BE727A6B6D9AEC8C0EB2436E01770F03840BFEC9228BB6DD46CE27D5739E18429F464FFF6812B0F66A8B0024BE03294900B8D0BC3CA6785F8C418EFE7068B2CD190A54BB9F90E05885A5C85DC069495C2009F79DBFD7774D7D65B9831FDC295CE146F4EB91DC56ABBD0B64BEAF3C340E0BF123A115D12289D44B650FF8461734308F4701CF2C199676DB3B4804FCDBD6B08C5D4875073AD5C575CA0B64597472A5C23EB4277B52B1128F3B1AE363E36A2C2D6EF5FCE00EE1573A40AD5ACDCDADE3E2672979CF68E87530520B2CA2C1110CBE4B631F3ABE83CFFDB7D5ACDD6DCA5916E30B1771FE29C4F60163B62349B66C0EDDCE8502F7C49DD4089EA5AE31FFB220A88C8D232367B52FAB7644F02E7EC10378697213CF0D90DA83A9941C217C559F88DEC6587AD953C95F11C575F0EFA9CC0650955C733910F2F90C78AE367F67B0F496A100E0B018731404D2BAEC7420F8C2B1FB6612AF69ECF369F236DD0BFB0ACBAED4141B2A14591C6475FC5C3D4E9B6229ECF7E288C015D59A35DE67F633DC586609AB3AB85A02B99DDF1B6FA7D54D4B2DDB767CAAB797C9FB29594B80B5BAACF777666D0B35CE6EFD8E46270C4D715B74FEA64FE34FBF4332BB4E8477CA438645C24444417EA5769B507925FB4B8FC59E429F1EC593C397F71087A080B39A192B5147D04D9F30DC237764C810E519B74EE90F047D0829104B6BA1A01F1CC18C85BE79F52084FAD6D7BF3EDA36D63981D8B75676740DB1AA6E06AD0C1F6A3B665D2D9D0E363FCE37B581C682A5F554D820849CEE7066A7DB011EA7D916B4A45212CBBC7A56ADAD33D203B8A1EDA03064A34351916C243E65D45425974C1468A626B773B48962108203F02814F15640149BCC2325C40F2457F0618CAAFDE26162326F2F81E8C727FAFED1B43E3AC8752E9F4EDFF5B58BD316882B555E63278FEB00B61144703C060B6188F3528E176E9B2D5996579048B723EB678CD56FA979004270E9F88F235404C522ED076E9F287097F2F7600A2D4566D2F6EFB600A9854B61CDB4363040D4F30D96BB011EF4BB0E0F21192F72B106B4F38A79FA384978C3C2A9AB94534BE01C83927BC95A9C5E55E618D7C5D77A9FA39664EEF11B2D50F59396DAD7CDC23F17948585BD88342EED671CB9597 | 411 | 20181013221710 2 6 100 8191 5 D72A51FC8A019CA61D28C85021CE881FBDCA1D9E2773A50343C390408ABF52C024F0268B5D4F74AA0722F8FA78F966B7AE411C57015CC9E0DB7E56B27A1D078D951747F90F8F663552B12F9BE26809481BD6D62C8EE018E2944DCF0EC7D31FFE3F7DD2F11F3C8311F1C2E2038613E541F53BA05FD92A540D11BB3267E80CCC5DEC74FD67AE473FAD56EFE2CF04457BB7B3121F93AC8F00A5DBE46E460B9B97823F937CF18722D4EE6373EF369D26A7602491493497C1EFDA3F7509772853CF84CD64A06A54FE32817B39B98CE3CE4477616CF232B04D0B2098D5A4E575939C63B26B72BE87B2BEF58F2F6DB4B2A0E00634E02637DF471D6519C22BA9494F225CA01A1A96886C6F02CE0D11EDE3370180E6E6F5CA54B44A8B66BF16ECD52193B7483700AA4051AF775F80818F3331AD80BB25A0FC8775B7821C32EAFDBEF75B3BFCB2F1A4BBDF5340B20AC9E185B0770CE6AAB120CFC4C8C88CA381946F48C0478DC07E5CF3CFB805A1BA8DB905A6D2ABFCFD765990CA4699D9F9B6922FECA4FF861362B4525FF0934E679109AB8F00909945FE897E927380F72416231AAE1A717D47BD129D5549F60C2EA377744B8807AA2432D1925D02C4C205715231DFAD86AC6B5253DE58E3E3F65484A0014CC1EFFBABC6EE912A925C08C8BB68E5FD7A13AED0116863EFA7E69A33D28A1FA853B7E0B84A5F78EFC44CDC39C4148C4B1B3D17E7371E51F96CFAAEBE15D67E82B590B9BB0567BC161AFF012F7571E514BCA7157A8C1521BD7147E83EE57721A77895722390D9C1B7C3BEEEF316E313F5A2DFBA0A5E3509F5F2CEB90C07E1177D3C8AA6CD56F5C5C614656D155350AAFD556890247AE6EDEE2236583A6DA347679C69A9B518FA9BD882F5B9850762C987F727CFEE68421A2D4F363EC45EDABAD574CC4C5AB7654F1C7E0CD84E708CD7C3ED66F369EC1E0E193346FE4747709F6A6DC969E3D2394758E807F4370E2C5A64B5190C5E9D3983CF5778076667B3E41AA28A868B9EA72C45A9234A2C92F0627512AC815CDC1418C676E66B474C071C65DF4EB7AA109ED189B30F49C9A7310CDD5504A0155E5A37FB41548B78049F3FF57EF682D04EFF6B43E5390B07019C555CB55D477552EC778C5BBF00830D1D2B233CB9B5C5A1817F96F395A527458625740A6B2FEFDF160F003D72086FAD44EA24CC669E710A965052D997E63144FD5F32271D0CF75D24DCCF5F4A8E7FD0381E03F0E9DB6F63BA5A59790788D48161E0C292436F79120C9057EBC7B1CA430E5D060836CEE57945DF5557EE2036588A902A1BD163F4DA436602B4BEF61A20D52B15877BFF9973366F242A6D2564BF32E2251C0E07DB2C98A31E82B63F6513FD4CC37D040653E3A68C6B2DB43B569FB070120ADEE89042BF0AC0E9103164E5F8BC57847A1F109ABF35E6E5DE0258C21170A81107 |
412 | 20180506094237 2 6 100 8191 2 E3FCBDCFD41A409C58BE083B6485A2D67E20931B1F469774BAE0F1AB2898B800032581B1C4FC71FE136087937A885AFB6FC9E582DD97B8DE3AD2AF861419D5F06278316DFA78BAE7EF099889F0E99575C7812E7240B67623E7877737013A7D5DB3638040083400E8F27600BAC0650D24220CA1B3C05FB7DD70469A201DBFF1308ECA1C7152A6016BB89BFB6C625715EE91A92EA1848F0B2491AA92187468D9E8442679D7F5F6B64BC9D5A3D4E9B58C59EEEB65F8D6B70A71099E1B420BC0FD750CB2F333C23C97966BE727A6B6D9AEC8C0EB2436E01770F03840BFEC9228BB6DD46CE27D5739E18429F464FFF6812B0F66A8B0024BE03294900B8D0BC3CA6785F8C418EFE7068B2CD190A54BB9F90E05885A5C85DC069495C2009F79DBFD7774D7D65B9831FDC295CE146F4EB91DC56ABBD0B64BEAF3C340E0BF123A115D12289D44B650FF8461734308F4701CF2C199676DB3B4804FCDBD6B08C5D4875073AD5C575CA0B64597472A5C23EB4277B52B1128F3B1AE363E36A2C2D6EF5FCE00EE1573A40AD5ACDCDADE3E2672979CF68E87530520B2CA2C1110CBE4B631F3ABE83CFFDB7D5ACDD6DCA5916E30B1771FE29C4F60163B62349B66C0EDDCE8502F7C49DD4089EA5AE31FFB220A88C8D232367B52FAB7644F02E7EC10378697213CF0D90DA83A9941C217C559F88DEC6587AD953C95F11C575F0EFA9CC0650955C733910F2F90C78AE367F67B0F496A100E0B018731404D2BAEC7420F8C2B1FB6612AF69ECF369F236DD0BFB0ACBAED4141B2A14591C6475FC5C3D4E9B6229ECF7E288C015D59A35DE67F633DC586609AB3AB85A02B99DDF1B6FA7D54D4B2DDB767CAAB797C9FB29594B80B5BAACF777666D0B35CE6EFD8E46270C4D715B74FEA64FE34FBF4332BB4E8477CA438645C24444417EA5769B507925FB4B8FC59E429F1EC593C397F71087A080B39A192B5147D04D9F30DC237764C810E519B74EE90F047D0829104B6BA1A01F1CC18C85BE79F52084FAD6D7BF3EDA36D63981D8B75676740DB1AA6E06AD0C1F6A3B665D2D9D0E363FCE37B581C682A5F554D820849CEE7066A7DB011EA7D916B4A45212CBBC7A56ADAD33D203B8A1EDA03064A34351916C243E65D45425974C1468A626B773B48962108203F02814F15640149BCC2325C40F2457F0618CAAFDE26162326F2F81E8C727FAFED1B43E3AC8752E9F4EDFF5B58BD316882B555E63278FEB00B61144703C060B6188F3528E176E9B2D5996579048B723EB678CD56FA979004270E9F88F235404C522ED076E9F287097F2F7600A2D4566D2F6EFB600A9854B61CDB4363040D4F30D96BB011EF4BB0E0F21192F72B106B4F38A79FA384978C3C2A9AB94534BE01C83927BC95A9C5E55E618D7C5D77A9FA39664EEF11B2D50F59396DAD7CDC23F17948585BD88342EED67201565B | 412 | 20181014032132 2 6 100 8191 2 D72A51FC8A019CA61D28C85021CE881FBDCA1D9E2773A50343C390408ABF52C024F0268B5D4F74AA0722F8FA78F966B7AE411C57015CC9E0DB7E56B27A1D078D951747F90F8F663552B12F9BE26809481BD6D62C8EE018E2944DCF0EC7D31FFE3F7DD2F11F3C8311F1C2E2038613E541F53BA05FD92A540D11BB3267E80CCC5DEC74FD67AE473FAD56EFE2CF04457BB7B3121F93AC8F00A5DBE46E460B9B97823F937CF18722D4EE6373EF369D26A7602491493497C1EFDA3F7509772853CF84CD64A06A54FE32817B39B98CE3CE4477616CF232B04D0B2098D5A4E575939C63B26B72BE87B2BEF58F2F6DB4B2A0E00634E02637DF471D6519C22BA9494F225CA01A1A96886C6F02CE0D11EDE3370180E6E6F5CA54B44A8B66BF16ECD52193B7483700AA4051AF775F80818F3331AD80BB25A0FC8775B7821C32EAFDBEF75B3BFCB2F1A4BBDF5340B20AC9E185B0770CE6AAB120CFC4C8C88CA381946F48C0478DC07E5CF3CFB805A1BA8DB905A6D2ABFCFD765990CA4699D9F9B6922FECA4FF861362B4525FF0934E679109AB8F00909945FE897E927380F72416231AAE1A717D47BD129D5549F60C2EA377744B8807AA2432D1925D02C4C205715231DFAD86AC6B5253DE58E3E3F65484A0014CC1EFFBABC6EE912A925C08C8BB68E5FD7A13AED0116863EFA7E69A33D28A1FA853B7E0B84A5F78EFC44CDC39C4148C4B1B3D17E7371E51F96CFAAEBE15D67E82B590B9BB0567BC161AFF012F7571E514BCA7157A8C1521BD7147E83EE57721A77895722390D9C1B7C3BEEEF316E313F5A2DFBA0A5E3509F5F2CEB90C07E1177D3C8AA6CD56F5C5C614656D155350AAFD556890247AE6EDEE2236583A6DA347679C69A9B518FA9BD882F5B9850762C987F727CFEE68421A2D4F363EC45EDABAD574CC4C5AB7654F1C7E0CD84E708CD7C3ED66F369EC1E0E193346FE4747709F6A6DC969E3D2394758E807F4370E2C5A64B5190C5E9D3983CF5778076667B3E41AA28A868B9EA72C45A9234A2C92F0627512AC815CDC1418C676E66B474C071C65DF4EB7AA109ED189B30F49C9A7310CDD5504A0155E5A37FB41548B78049F3FF57EF682D04EFF6B43E5390B07019C555CB55D477552EC778C5BBF00830D1D2B233CB9B5C5A1817F96F395A527458625740A6B2FEFDF160F003D72086FAD44EA24CC669E710A965052D997E63144FD5F32271D0CF75D24DCCF5F4A8E7FD0381E03F0E9DB6F63BA5A59790788D48161E0C292436F79120C9057EBC7B1CA430E5D060836CEE57945DF5557EE2036588A902A1BD163F4DA436602B4BEF61A20D52B15877BFF9973366F242A6D2564BF32E2251C0E07DB2C98A31E82B63F6513FD4CC37D040653E3A68C6B2DB43B569FB070120ADEE89042BF0AC0E9103164E5F8BC57847A1F109ABF35E6E5DE0258C21173C1D793 |
413 | 20180506200807 2 6 100 8191 2 E3FCBDCFD41A409C58BE083B6485A2D67E20931B1F469774BAE0F1AB2898B800032581B1C4FC71FE136087937A885AFB6FC9E582DD97B8DE3AD2AF861419D5F06278316DFA78BAE7EF099889F0E99575C7812E7240B67623E7877737013A7D5DB3638040083400E8F27600BAC0650D24220CA1B3C05FB7DD70469A201DBFF1308ECA1C7152A6016BB89BFB6C625715EE91A92EA1848F0B2491AA92187468D9E8442679D7F5F6B64BC9D5A3D4E9B58C59EEEB65F8D6B70A71099E1B420BC0FD750CB2F333C23C97966BE727A6B6D9AEC8C0EB2436E01770F03840BFEC9228BB6DD46CE27D5739E18429F464FFF6812B0F66A8B0024BE03294900B8D0BC3CA6785F8C418EFE7068B2CD190A54BB9F90E05885A5C85DC069495C2009F79DBFD7774D7D65B9831FDC295CE146F4EB91DC56ABBD0B64BEAF3C340E0BF123A115D12289D44B650FF8461734308F4701CF2C199676DB3B4804FCDBD6B08C5D4875073AD5C575CA0B64597472A5C23EB4277B52B1128F3B1AE363E36A2C2D6EF5FCE00EE1573A40AD5ACDCDADE3E2672979CF68E87530520B2CA2C1110CBE4B631F3ABE83CFFDB7D5ACDD6DCA5916E30B1771FE29C4F60163B62349B66C0EDDCE8502F7C49DD4089EA5AE31FFB220A88C8D232367B52FAB7644F02E7EC10378697213CF0D90DA83A9941C217C559F88DEC6587AD953C95F11C575F0EFA9CC0650955C733910F2F90C78AE367F67B0F496A100E0B018731404D2BAEC7420F8C2B1FB6612AF69ECF369F236DD0BFB0ACBAED4141B2A14591C6475FC5C3D4E9B6229ECF7E288C015D59A35DE67F633DC586609AB3AB85A02B99DDF1B6FA7D54D4B2DDB767CAAB797C9FB29594B80B5BAACF777666D0B35CE6EFD8E46270C4D715B74FEA64FE34FBF4332BB4E8477CA438645C24444417EA5769B507925FB4B8FC59E429F1EC593C397F71087A080B39A192B5147D04D9F30DC237764C810E519B74EE90F047D0829104B6BA1A01F1CC18C85BE79F52084FAD6D7BF3EDA36D63981D8B75676740DB1AA6E06AD0C1F6A3B665D2D9D0E363FCE37B581C682A5F554D820849CEE7066A7DB011EA7D916B4A45212CBBC7A56ADAD33D203B8A1EDA03064A34351916C243E65D45425974C1468A626B773B48962108203F02814F15640149BCC2325C40F2457F0618CAAFDE26162326F2F81E8C727FAFED1B43E3AC8752E9F4EDFF5B58BD316882B555E63278FEB00B61144703C060B6188F3528E176E9B2D5996579048B723EB678CD56FA979004270E9F88F235404C522ED076E9F287097F2F7600A2D4566D2F6EFB600A9854B61CDB4363040D4F30D96BB011EF4BB0E0F21192F72B106B4F38A79FA384978C3C2A9AB94534BE01C83927BC95A9C5E55E618D7C5D77A9FA39664EEF11B2D50F59396DAD7CDC23F17948585BD88342EED678BDEA8B | 413 | 20181014035731 2 6 100 8191 5 D72A51FC8A019CA61D28C85021CE881FBDCA1D9E2773A50343C390408ABF52C024F0268B5D4F74AA0722F8FA78F966B7AE411C57015CC9E0DB7E56B27A1D078D951747F90F8F663552B12F9BE26809481BD6D62C8EE018E2944DCF0EC7D31FFE3F7DD2F11F3C8311F1C2E2038613E541F53BA05FD92A540D11BB3267E80CCC5DEC74FD67AE473FAD56EFE2CF04457BB7B3121F93AC8F00A5DBE46E460B9B97823F937CF18722D4EE6373EF369D26A7602491493497C1EFDA3F7509772853CF84CD64A06A54FE32817B39B98CE3CE4477616CF232B04D0B2098D5A4E575939C63B26B72BE87B2BEF58F2F6DB4B2A0E00634E02637DF471D6519C22BA9494F225CA01A1A96886C6F02CE0D11EDE3370180E6E6F5CA54B44A8B66BF16ECD52193B7483700AA4051AF775F80818F3331AD80BB25A0FC8775B7821C32EAFDBEF75B3BFCB2F1A4BBDF5340B20AC9E185B0770CE6AAB120CFC4C8C88CA381946F48C0478DC07E5CF3CFB805A1BA8DB905A6D2ABFCFD765990CA4699D9F9B6922FECA4FF861362B4525FF0934E679109AB8F00909945FE897E927380F72416231AAE1A717D47BD129D5549F60C2EA377744B8807AA2432D1925D02C4C205715231DFAD86AC6B5253DE58E3E3F65484A0014CC1EFFBABC6EE912A925C08C8BB68E5FD7A13AED0116863EFA7E69A33D28A1FA853B7E0B84A5F78EFC44CDC39C4148C4B1B3D17E7371E51F96CFAAEBE15D67E82B590B9BB0567BC161AFF012F7571E514BCA7157A8C1521BD7147E83EE57721A77895722390D9C1B7C3BEEEF316E313F5A2DFBA0A5E3509F5F2CEB90C07E1177D3C8AA6CD56F5C5C614656D155350AAFD556890247AE6EDEE2236583A6DA347679C69A9B518FA9BD882F5B9850762C987F727CFEE68421A2D4F363EC45EDABAD574CC4C5AB7654F1C7E0CD84E708CD7C3ED66F369EC1E0E193346FE4747709F6A6DC969E3D2394758E807F4370E2C5A64B5190C5E9D3983CF5778076667B3E41AA28A868B9EA72C45A9234A2C92F0627512AC815CDC1418C676E66B474C071C65DF4EB7AA109ED189B30F49C9A7310CDD5504A0155E5A37FB41548B78049F3FF57EF682D04EFF6B43E5390B07019C555CB55D477552EC778C5BBF00830D1D2B233CB9B5C5A1817F96F395A527458625740A6B2FEFDF160F003D72086FAD44EA24CC669E710A965052D997E63144FD5F32271D0CF75D24DCCF5F4A8E7FD0381E03F0E9DB6F63BA5A59790788D48161E0C292436F79120C9057EBC7B1CA430E5D060836CEE57945DF5557EE2036588A902A1BD163F4DA436602B4BEF61A20D52B15877BFF9973366F242A6D2564BF32E2251C0E07DB2C98A31E82B63F6513FD4CC37D040653E3A68C6B2DB43B569FB070120ADEE89042BF0AC0E9103164E5F8BC57847A1F109ABF35E6E5DE0258C2117416EF17 |
414 | 20180507012051 2 6 100 8191 2 E3FCBDCFD41A409C58BE083B6485A2D67E20931B1F469774BAE0F1AB2898B800032581B1C4FC71FE136087937A885AFB6FC9E582DD97B8DE3AD2AF861419D5F06278316DFA78BAE7EF099889F0E99575C7812E7240B67623E7877737013A7D5DB3638040083400E8F27600BAC0650D24220CA1B3C05FB7DD70469A201DBFF1308ECA1C7152A6016BB89BFB6C625715EE91A92EA1848F0B2491AA92187468D9E8442679D7F5F6B64BC9D5A3D4E9B58C59EEEB65F8D6B70A71099E1B420BC0FD750CB2F333C23C97966BE727A6B6D9AEC8C0EB2436E01770F03840BFEC9228BB6DD46CE27D5739E18429F464FFF6812B0F66A8B0024BE03294900B8D0BC3CA6785F8C418EFE7068B2CD190A54BB9F90E05885A5C85DC069495C2009F79DBFD7774D7D65B9831FDC295CE146F4EB91DC56ABBD0B64BEAF3C340E0BF123A115D12289D44B650FF8461734308F4701CF2C199676DB3B4804FCDBD6B08C5D4875073AD5C575CA0B64597472A5C23EB4277B52B1128F3B1AE363E36A2C2D6EF5FCE00EE1573A40AD5ACDCDADE3E2672979CF68E87530520B2CA2C1110CBE4B631F3ABE83CFFDB7D5ACDD6DCA5916E30B1771FE29C4F60163B62349B66C0EDDCE8502F7C49DD4089EA5AE31FFB220A88C8D232367B52FAB7644F02E7EC10378697213CF0D90DA83A9941C217C559F88DEC6587AD953C95F11C575F0EFA9CC0650955C733910F2F90C78AE367F67B0F496A100E0B018731404D2BAEC7420F8C2B1FB6612AF69ECF369F236DD0BFB0ACBAED4141B2A14591C6475FC5C3D4E9B6229ECF7E288C015D59A35DE67F633DC586609AB3AB85A02B99DDF1B6FA7D54D4B2DDB767CAAB797C9FB29594B80B5BAACF777666D0B35CE6EFD8E46270C4D715B74FEA64FE34FBF4332BB4E8477CA438645C24444417EA5769B507925FB4B8FC59E429F1EC593C397F71087A080B39A192B5147D04D9F30DC237764C810E519B74EE90F047D0829104B6BA1A01F1CC18C85BE79F52084FAD6D7BF3EDA36D63981D8B75676740DB1AA6E06AD0C1F6A3B665D2D9D0E363FCE37B581C682A5F554D820849CEE7066A7DB011EA7D916B4A45212CBBC7A56ADAD33D203B8A1EDA03064A34351916C243E65D45425974C1468A626B773B48962108203F02814F15640149BCC2325C40F2457F0618CAAFDE26162326F2F81E8C727FAFED1B43E3AC8752E9F4EDFF5B58BD316882B555E63278FEB00B61144703C060B6188F3528E176E9B2D5996579048B723EB678CD56FA979004270E9F88F235404C522ED076E9F287097F2F7600A2D4566D2F6EFB600A9854B61CDB4363040D4F30D96BB011EF4BB0E0F21192F72B106B4F38A79FA384978C3C2A9AB94534BE01C83927BC95A9C5E55E618D7C5D77A9FA39664EEF11B2D50F59396DAD7CDC23F17948585BD88342EED67C15F093 | 414 | 20181014044029 2 6 100 8191 2 D72A51FC8A019CA61D28C85021CE881FBDCA1D9E2773A50343C390408ABF52C024F0268B5D4F74AA0722F8FA78F966B7AE411C57015CC9E0DB7E56B27A1D078D951747F90F8F663552B12F9BE26809481BD6D62C8EE018E2944DCF0EC7D31FFE3F7DD2F11F3C8311F1C2E2038613E541F53BA05FD92A540D11BB3267E80CCC5DEC74FD67AE473FAD56EFE2CF04457BB7B3121F93AC8F00A5DBE46E460B9B97823F937CF18722D4EE6373EF369D26A7602491493497C1EFDA3F7509772853CF84CD64A06A54FE32817B39B98CE3CE4477616CF232B04D0B2098D5A4E575939C63B26B72BE87B2BEF58F2F6DB4B2A0E00634E02637DF471D6519C22BA9494F225CA01A1A96886C6F02CE0D11EDE3370180E6E6F5CA54B44A8B66BF16ECD52193B7483700AA4051AF775F80818F3331AD80BB25A0FC8775B7821C32EAFDBEF75B3BFCB2F1A4BBDF5340B20AC9E185B0770CE6AAB120CFC4C8C88CA381946F48C0478DC07E5CF3CFB805A1BA8DB905A6D2ABFCFD765990CA4699D9F9B6922FECA4FF861362B4525FF0934E679109AB8F00909945FE897E927380F72416231AAE1A717D47BD129D5549F60C2EA377744B8807AA2432D1925D02C4C205715231DFAD86AC6B5253DE58E3E3F65484A0014CC1EFFBABC6EE912A925C08C8BB68E5FD7A13AED0116863EFA7E69A33D28A1FA853B7E0B84A5F78EFC44CDC39C4148C4B1B3D17E7371E51F96CFAAEBE15D67E82B590B9BB0567BC161AFF012F7571E514BCA7157A8C1521BD7147E83EE57721A77895722390D9C1B7C3BEEEF316E313F5A2DFBA0A5E3509F5F2CEB90C07E1177D3C8AA6CD56F5C5C614656D155350AAFD556890247AE6EDEE2236583A6DA347679C69A9B518FA9BD882F5B9850762C987F727CFEE68421A2D4F363EC45EDABAD574CC4C5AB7654F1C7E0CD84E708CD7C3ED66F369EC1E0E193346FE4747709F6A6DC969E3D2394758E807F4370E2C5A64B5190C5E9D3983CF5778076667B3E41AA28A868B9EA72C45A9234A2C92F0627512AC815CDC1418C676E66B474C071C65DF4EB7AA109ED189B30F49C9A7310CDD5504A0155E5A37FB41548B78049F3FF57EF682D04EFF6B43E5390B07019C555CB55D477552EC778C5BBF00830D1D2B233CB9B5C5A1817F96F395A527458625740A6B2FEFDF160F003D72086FAD44EA24CC669E710A965052D997E63144FD5F32271D0CF75D24DCCF5F4A8E7FD0381E03F0E9DB6F63BA5A59790788D48161E0C292436F79120C9057EBC7B1CA430E5D060836CEE57945DF5557EE2036588A902A1BD163F4DA436602B4BEF61A20D52B15877BFF9973366F242A6D2564BF32E2251C0E07DB2C98A31E82B63F6513FD4CC37D040653E3A68C6B2DB43B569FB070120ADEE89042BF0AC0E9103164E5F8BC57847A1F109ABF35E6E5DE0258C211747D7B4B |
415 | 20180507102714 2 6 100 8191 5 E3FCBDCFD41A409C58BE083B6485A2D67E20931B1F469774BAE0F1AB2898B800032581B1C4FC71FE136087937A885AFB6FC9E582DD97B8DE3AD2AF861419D5F06278316DFA78BAE7EF099889F0E99575C7812E7240B67623E7877737013A7D5DB3638040083400E8F27600BAC0650D24220CA1B3C05FB7DD70469A201DBFF1308ECA1C7152A6016BB89BFB6C625715EE91A92EA1848F0B2491AA92187468D9E8442679D7F5F6B64BC9D5A3D4E9B58C59EEEB65F8D6B70A71099E1B420BC0FD750CB2F333C23C97966BE727A6B6D9AEC8C0EB2436E01770F03840BFEC9228BB6DD46CE27D5739E18429F464FFF6812B0F66A8B0024BE03294900B8D0BC3CA6785F8C418EFE7068B2CD190A54BB9F90E05885A5C85DC069495C2009F79DBFD7774D7D65B9831FDC295CE146F4EB91DC56ABBD0B64BEAF3C340E0BF123A115D12289D44B650FF8461734308F4701CF2C199676DB3B4804FCDBD6B08C5D4875073AD5C575CA0B64597472A5C23EB4277B52B1128F3B1AE363E36A2C2D6EF5FCE00EE1573A40AD5ACDCDADE3E2672979CF68E87530520B2CA2C1110CBE4B631F3ABE83CFFDB7D5ACDD6DCA5916E30B1771FE29C4F60163B62349B66C0EDDCE8502F7C49DD4089EA5AE31FFB220A88C8D232367B52FAB7644F02E7EC10378697213CF0D90DA83A9941C217C559F88DEC6587AD953C95F11C575F0EFA9CC0650955C733910F2F90C78AE367F67B0F496A100E0B018731404D2BAEC7420F8C2B1FB6612AF69ECF369F236DD0BFB0ACBAED4141B2A14591C6475FC5C3D4E9B6229ECF7E288C015D59A35DE67F633DC586609AB3AB85A02B99DDF1B6FA7D54D4B2DDB767CAAB797C9FB29594B80B5BAACF777666D0B35CE6EFD8E46270C4D715B74FEA64FE34FBF4332BB4E8477CA438645C24444417EA5769B507925FB4B8FC59E429F1EC593C397F71087A080B39A192B5147D04D9F30DC237764C810E519B74EE90F047D0829104B6BA1A01F1CC18C85BE79F52084FAD6D7BF3EDA36D63981D8B75676740DB1AA6E06AD0C1F6A3B665D2D9D0E363FCE37B581C682A5F554D820849CEE7066A7DB011EA7D916B4A45212CBBC7A56ADAD33D203B8A1EDA03064A34351916C243E65D45425974C1468A626B773B48962108203F02814F15640149BCC2325C40F2457F0618CAAFDE26162326F2F81E8C727FAFED1B43E3AC8752E9F4EDFF5B58BD316882B555E63278FEB00B61144703C060B6188F3528E176E9B2D5996579048B723EB678CD56FA979004270E9F88F235404C522ED076E9F287097F2F7600A2D4566D2F6EFB600A9854B61CDB4363040D4F30D96BB011EF4BB0E0F21192F72B106B4F38A79FA384978C3C2A9AB94534BE01C83927BC95A9C5E55E618D7C5D77A9FA39664EEF11B2D50F59396DAD7CDC23F17948585BD88342EED681E510A7 | 415 | 20181014092738 2 6 100 8191 5 D72A51FC8A019CA61D28C85021CE881FBDCA1D9E2773A50343C390408ABF52C024F0268B5D4F74AA0722F8FA78F966B7AE411C57015CC9E0DB7E56B27A1D078D951747F90F8F663552B12F9BE26809481BD6D62C8EE018E2944DCF0EC7D31FFE3F7DD2F11F3C8311F1C2E2038613E541F53BA05FD92A540D11BB3267E80CCC5DEC74FD67AE473FAD56EFE2CF04457BB7B3121F93AC8F00A5DBE46E460B9B97823F937CF18722D4EE6373EF369D26A7602491493497C1EFDA3F7509772853CF84CD64A06A54FE32817B39B98CE3CE4477616CF232B04D0B2098D5A4E575939C63B26B72BE87B2BEF58F2F6DB4B2A0E00634E02637DF471D6519C22BA9494F225CA01A1A96886C6F02CE0D11EDE3370180E6E6F5CA54B44A8B66BF16ECD52193B7483700AA4051AF775F80818F3331AD80BB25A0FC8775B7821C32EAFDBEF75B3BFCB2F1A4BBDF5340B20AC9E185B0770CE6AAB120CFC4C8C88CA381946F48C0478DC07E5CF3CFB805A1BA8DB905A6D2ABFCFD765990CA4699D9F9B6922FECA4FF861362B4525FF0934E679109AB8F00909945FE897E927380F72416231AAE1A717D47BD129D5549F60C2EA377744B8807AA2432D1925D02C4C205715231DFAD86AC6B5253DE58E3E3F65484A0014CC1EFFBABC6EE912A925C08C8BB68E5FD7A13AED0116863EFA7E69A33D28A1FA853B7E0B84A5F78EFC44CDC39C4148C4B1B3D17E7371E51F96CFAAEBE15D67E82B590B9BB0567BC161AFF012F7571E514BCA7157A8C1521BD7147E83EE57721A77895722390D9C1B7C3BEEEF316E313F5A2DFBA0A5E3509F5F2CEB90C07E1177D3C8AA6CD56F5C5C614656D155350AAFD556890247AE6EDEE2236583A6DA347679C69A9B518FA9BD882F5B9850762C987F727CFEE68421A2D4F363EC45EDABAD574CC4C5AB7654F1C7E0CD84E708CD7C3ED66F369EC1E0E193346FE4747709F6A6DC969E3D2394758E807F4370E2C5A64B5190C5E9D3983CF5778076667B3E41AA28A868B9EA72C45A9234A2C92F0627512AC815CDC1418C676E66B474C071C65DF4EB7AA109ED189B30F49C9A7310CDD5504A0155E5A37FB41548B78049F3FF57EF682D04EFF6B43E5390B07019C555CB55D477552EC778C5BBF00830D1D2B233CB9B5C5A1817F96F395A527458625740A6B2FEFDF160F003D72086FAD44EA24CC669E710A965052D997E63144FD5F32271D0CF75D24DCCF5F4A8E7FD0381E03F0E9DB6F63BA5A59790788D48161E0C292436F79120C9057EBC7B1CA430E5D060836CEE57945DF5557EE2036588A902A1BD163F4DA436602B4BEF61A20D52B15877BFF9973366F242A6D2564BF32E2251C0E07DB2C98A31E82B63F6513FD4CC37D040653E3A68C6B2DB43B569FB070120ADEE89042BF0AC0E9103164E5F8BC57847A1F109ABF35E6E5DE0258C2117764D6CF |
416 | 20180507105523 2 6 100 8191 2 E3FCBDCFD41A409C58BE083B6485A2D67E20931B1F469774BAE0F1AB2898B800032581B1C4FC71FE136087937A885AFB6FC9E582DD97B8DE3AD2AF861419D5F06278316DFA78BAE7EF099889F0E99575C7812E7240B67623E7877737013A7D5DB3638040083400E8F27600BAC0650D24220CA1B3C05FB7DD70469A201DBFF1308ECA1C7152A6016BB89BFB6C625715EE91A92EA1848F0B2491AA92187468D9E8442679D7F5F6B64BC9D5A3D4E9B58C59EEEB65F8D6B70A71099E1B420BC0FD750CB2F333C23C97966BE727A6B6D9AEC8C0EB2436E01770F03840BFEC9228BB6DD46CE27D5739E18429F464FFF6812B0F66A8B0024BE03294900B8D0BC3CA6785F8C418EFE7068B2CD190A54BB9F90E05885A5C85DC069495C2009F79DBFD7774D7D65B9831FDC295CE146F4EB91DC56ABBD0B64BEAF3C340E0BF123A115D12289D44B650FF8461734308F4701CF2C199676DB3B4804FCDBD6B08C5D4875073AD5C575CA0B64597472A5C23EB4277B52B1128F3B1AE363E36A2C2D6EF5FCE00EE1573A40AD5ACDCDADE3E2672979CF68E87530520B2CA2C1110CBE4B631F3ABE83CFFDB7D5ACDD6DCA5916E30B1771FE29C4F60163B62349B66C0EDDCE8502F7C49DD4089EA5AE31FFB220A88C8D232367B52FAB7644F02E7EC10378697213CF0D90DA83A9941C217C559F88DEC6587AD953C95F11C575F0EFA9CC0650955C733910F2F90C78AE367F67B0F496A100E0B018731404D2BAEC7420F8C2B1FB6612AF69ECF369F236DD0BFB0ACBAED4141B2A14591C6475FC5C3D4E9B6229ECF7E288C015D59A35DE67F633DC586609AB3AB85A02B99DDF1B6FA7D54D4B2DDB767CAAB797C9FB29594B80B5BAACF777666D0B35CE6EFD8E46270C4D715B74FEA64FE34FBF4332BB4E8477CA438645C24444417EA5769B507925FB4B8FC59E429F1EC593C397F71087A080B39A192B5147D04D9F30DC237764C810E519B74EE90F047D0829104B6BA1A01F1CC18C85BE79F52084FAD6D7BF3EDA36D63981D8B75676740DB1AA6E06AD0C1F6A3B665D2D9D0E363FCE37B581C682A5F554D820849CEE7066A7DB011EA7D916B4A45212CBBC7A56ADAD33D203B8A1EDA03064A34351916C243E65D45425974C1468A626B773B48962108203F02814F15640149BCC2325C40F2457F0618CAAFDE26162326F2F81E8C727FAFED1B43E3AC8752E9F4EDFF5B58BD316882B555E63278FEB00B61144703C060B6188F3528E176E9B2D5996579048B723EB678CD56FA979004270E9F88F235404C522ED076E9F287097F2F7600A2D4566D2F6EFB600A9854B61CDB4363040D4F30D96BB011EF4BB0E0F21192F72B106B4F38A79FA384978C3C2A9AB94534BE01C83927BC95A9C5E55E618D7C5D77A9FA39664EEF11B2D50F59396DAD7CDC23F17948585BD88342EED6822806B3 | 416 | 20181014125735 2 6 100 8191 5 D72A51FC8A019CA61D28C85021CE881FBDCA1D9E2773A50343C390408ABF52C024F0268B5D4F74AA0722F8FA78F966B7AE411C57015CC9E0DB7E56B27A1D078D951747F90F8F663552B12F9BE26809481BD6D62C8EE018E2944DCF0EC7D31FFE3F7DD2F11F3C8311F1C2E2038613E541F53BA05FD92A540D11BB3267E80CCC5DEC74FD67AE473FAD56EFE2CF04457BB7B3121F93AC8F00A5DBE46E460B9B97823F937CF18722D4EE6373EF369D26A7602491493497C1EFDA3F7509772853CF84CD64A06A54FE32817B39B98CE3CE4477616CF232B04D0B2098D5A4E575939C63B26B72BE87B2BEF58F2F6DB4B2A0E00634E02637DF471D6519C22BA9494F225CA01A1A96886C6F02CE0D11EDE3370180E6E6F5CA54B44A8B66BF16ECD52193B7483700AA4051AF775F80818F3331AD80BB25A0FC8775B7821C32EAFDBEF75B3BFCB2F1A4BBDF5340B20AC9E185B0770CE6AAB120CFC4C8C88CA381946F48C0478DC07E5CF3CFB805A1BA8DB905A6D2ABFCFD765990CA4699D9F9B6922FECA4FF861362B4525FF0934E679109AB8F00909945FE897E927380F72416231AAE1A717D47BD129D5549F60C2EA377744B8807AA2432D1925D02C4C205715231DFAD86AC6B5253DE58E3E3F65484A0014CC1EFFBABC6EE912A925C08C8BB68E5FD7A13AED0116863EFA7E69A33D28A1FA853B7E0B84A5F78EFC44CDC39C4148C4B1B3D17E7371E51F96CFAAEBE15D67E82B590B9BB0567BC161AFF012F7571E514BCA7157A8C1521BD7147E83EE57721A77895722390D9C1B7C3BEEEF316E313F5A2DFBA0A5E3509F5F2CEB90C07E1177D3C8AA6CD56F5C5C614656D155350AAFD556890247AE6EDEE2236583A6DA347679C69A9B518FA9BD882F5B9850762C987F727CFEE68421A2D4F363EC45EDABAD574CC4C5AB7654F1C7E0CD84E708CD7C3ED66F369EC1E0E193346FE4747709F6A6DC969E3D2394758E807F4370E2C5A64B5190C5E9D3983CF5778076667B3E41AA28A868B9EA72C45A9234A2C92F0627512AC815CDC1418C676E66B474C071C65DF4EB7AA109ED189B30F49C9A7310CDD5504A0155E5A37FB41548B78049F3FF57EF682D04EFF6B43E5390B07019C555CB55D477552EC778C5BBF00830D1D2B233CB9B5C5A1817F96F395A527458625740A6B2FEFDF160F003D72086FAD44EA24CC669E710A965052D997E63144FD5F32271D0CF75D24DCCF5F4A8E7FD0381E03F0E9DB6F63BA5A59790788D48161E0C292436F79120C9057EBC7B1CA430E5D060836CEE57945DF5557EE2036588A902A1BD163F4DA436602B4BEF61A20D52B15877BFF9973366F242A6D2564BF32E2251C0E07DB2C98A31E82B63F6513FD4CC37D040653E3A68C6B2DB43B569FB070120ADEE89042BF0AC0E9103164E5F8BC57847A1F109ABF35E6E5DE0258C21179863787 |
417 | 20180507204038 2 6 100 8191 2 E3FCBDCFD41A409C58BE083B6485A2D67E20931B1F469774BAE0F1AB2898B800032581B1C4FC71FE136087937A885AFB6FC9E582DD97B8DE3AD2AF861419D5F06278316DFA78BAE7EF099889F0E99575C7812E7240B67623E7877737013A7D5DB3638040083400E8F27600BAC0650D24220CA1B3C05FB7DD70469A201DBFF1308ECA1C7152A6016BB89BFB6C625715EE91A92EA1848F0B2491AA92187468D9E8442679D7F5F6B64BC9D5A3D4E9B58C59EEEB65F8D6B70A71099E1B420BC0FD750CB2F333C23C97966BE727A6B6D9AEC8C0EB2436E01770F03840BFEC9228BB6DD46CE27D5739E18429F464FFF6812B0F66A8B0024BE03294900B8D0BC3CA6785F8C418EFE7068B2CD190A54BB9F90E05885A5C85DC069495C2009F79DBFD7774D7D65B9831FDC295CE146F4EB91DC56ABBD0B64BEAF3C340E0BF123A115D12289D44B650FF8461734308F4701CF2C199676DB3B4804FCDBD6B08C5D4875073AD5C575CA0B64597472A5C23EB4277B52B1128F3B1AE363E36A2C2D6EF5FCE00EE1573A40AD5ACDCDADE3E2672979CF68E87530520B2CA2C1110CBE4B631F3ABE83CFFDB7D5ACDD6DCA5916E30B1771FE29C4F60163B62349B66C0EDDCE8502F7C49DD4089EA5AE31FFB220A88C8D232367B52FAB7644F02E7EC10378697213CF0D90DA83A9941C217C559F88DEC6587AD953C95F11C575F0EFA9CC0650955C733910F2F90C78AE367F67B0F496A100E0B018731404D2BAEC7420F8C2B1FB6612AF69ECF369F236DD0BFB0ACBAED4141B2A14591C6475FC5C3D4E9B6229ECF7E288C015D59A35DE67F633DC586609AB3AB85A02B99DDF1B6FA7D54D4B2DDB767CAAB797C9FB29594B80B5BAACF777666D0B35CE6EFD8E46270C4D715B74FEA64FE34FBF4332BB4E8477CA438645C24444417EA5769B507925FB4B8FC59E429F1EC593C397F71087A080B39A192B5147D04D9F30DC237764C810E519B74EE90F047D0829104B6BA1A01F1CC18C85BE79F52084FAD6D7BF3EDA36D63981D8B75676740DB1AA6E06AD0C1F6A3B665D2D9D0E363FCE37B581C682A5F554D820849CEE7066A7DB011EA7D916B4A45212CBBC7A56ADAD33D203B8A1EDA03064A34351916C243E65D45425974C1468A626B773B48962108203F02814F15640149BCC2325C40F2457F0618CAAFDE26162326F2F81E8C727FAFED1B43E3AC8752E9F4EDFF5B58BD316882B555E63278FEB00B61144703C060B6188F3528E176E9B2D5996579048B723EB678CD56FA979004270E9F88F235404C522ED076E9F287097F2F7600A2D4566D2F6EFB600A9854B61CDB4363040D4F30D96BB011EF4BB0E0F21192F72B106B4F38A79FA384978C3C2A9AB94534BE01C83927BC95A9C5E55E618D7C5D77A9FA39664EEF11B2D50F59396DAD7CDC23F17948585BD88342EED6885CE023 | 417 | 20181014151837 2 6 100 8191 5 D72A51FC8A019CA61D28C85021CE881FBDCA1D9E2773A50343C390408ABF52C024F0268B5D4F74AA0722F8FA78F966B7AE411C57015CC9E0DB7E56B27A1D078D951747F90F8F663552B12F9BE26809481BD6D62C8EE018E2944DCF0EC7D31FFE3F7DD2F11F3C8311F1C2E2038613E541F53BA05FD92A540D11BB3267E80CCC5DEC74FD67AE473FAD56EFE2CF04457BB7B3121F93AC8F00A5DBE46E460B9B97823F937CF18722D4EE6373EF369D26A7602491493497C1EFDA3F7509772853CF84CD64A06A54FE32817B39B98CE3CE4477616CF232B04D0B2098D5A4E575939C63B26B72BE87B2BEF58F2F6DB4B2A0E00634E02637DF471D6519C22BA9494F225CA01A1A96886C6F02CE0D11EDE3370180E6E6F5CA54B44A8B66BF16ECD52193B7483700AA4051AF775F80818F3331AD80BB25A0FC8775B7821C32EAFDBEF75B3BFCB2F1A4BBDF5340B20AC9E185B0770CE6AAB120CFC4C8C88CA381946F48C0478DC07E5CF3CFB805A1BA8DB905A6D2ABFCFD765990CA4699D9F9B6922FECA4FF861362B4525FF0934E679109AB8F00909945FE897E927380F72416231AAE1A717D47BD129D5549F60C2EA377744B8807AA2432D1925D02C4C205715231DFAD86AC6B5253DE58E3E3F65484A0014CC1EFFBABC6EE912A925C08C8BB68E5FD7A13AED0116863EFA7E69A33D28A1FA853B7E0B84A5F78EFC44CDC39C4148C4B1B3D17E7371E51F96CFAAEBE15D67E82B590B9BB0567BC161AFF012F7571E514BCA7157A8C1521BD7147E83EE57721A77895722390D9C1B7C3BEEEF316E313F5A2DFBA0A5E3509F5F2CEB90C07E1177D3C8AA6CD56F5C5C614656D155350AAFD556890247AE6EDEE2236583A6DA347679C69A9B518FA9BD882F5B9850762C987F727CFEE68421A2D4F363EC45EDABAD574CC4C5AB7654F1C7E0CD84E708CD7C3ED66F369EC1E0E193346FE4747709F6A6DC969E3D2394758E807F4370E2C5A64B5190C5E9D3983CF5778076667B3E41AA28A868B9EA72C45A9234A2C92F0627512AC815CDC1418C676E66B474C071C65DF4EB7AA109ED189B30F49C9A7310CDD5504A0155E5A37FB41548B78049F3FF57EF682D04EFF6B43E5390B07019C555CB55D477552EC778C5BBF00830D1D2B233CB9B5C5A1817F96F395A527458625740A6B2FEFDF160F003D72086FAD44EA24CC669E710A965052D997E63144FD5F32271D0CF75D24DCCF5F4A8E7FD0381E03F0E9DB6F63BA5A59790788D48161E0C292436F79120C9057EBC7B1CA430E5D060836CEE57945DF5557EE2036588A902A1BD163F4DA436602B4BEF61A20D52B15877BFF9973366F242A6D2564BF32E2251C0E07DB2C98A31E82B63F6513FD4CC37D040653E3A68C6B2DB43B569FB070120ADEE89042BF0AC0E9103164E5F8BC57847A1F109ABF35E6E5DE0258C2117AE70AF7 |
418 | 20180508025258 2 6 100 8191 5 E3FCBDCFD41A409C58BE083B6485A2D67E20931B1F469774BAE0F1AB2898B800032581B1C4FC71FE136087937A885AFB6FC9E582DD97B8DE3AD2AF861419D5F06278316DFA78BAE7EF099889F0E99575C7812E7240B67623E7877737013A7D5DB3638040083400E8F27600BAC0650D24220CA1B3C05FB7DD70469A201DBFF1308ECA1C7152A6016BB89BFB6C625715EE91A92EA1848F0B2491AA92187468D9E8442679D7F5F6B64BC9D5A3D4E9B58C59EEEB65F8D6B70A71099E1B420BC0FD750CB2F333C23C97966BE727A6B6D9AEC8C0EB2436E01770F03840BFEC9228BB6DD46CE27D5739E18429F464FFF6812B0F66A8B0024BE03294900B8D0BC3CA6785F8C418EFE7068B2CD190A54BB9F90E05885A5C85DC069495C2009F79DBFD7774D7D65B9831FDC295CE146F4EB91DC56ABBD0B64BEAF3C340E0BF123A115D12289D44B650FF8461734308F4701CF2C199676DB3B4804FCDBD6B08C5D4875073AD5C575CA0B64597472A5C23EB4277B52B1128F3B1AE363E36A2C2D6EF5FCE00EE1573A40AD5ACDCDADE3E2672979CF68E87530520B2CA2C1110CBE4B631F3ABE83CFFDB7D5ACDD6DCA5916E30B1771FE29C4F60163B62349B66C0EDDCE8502F7C49DD4089EA5AE31FFB220A88C8D232367B52FAB7644F02E7EC10378697213CF0D90DA83A9941C217C559F88DEC6587AD953C95F11C575F0EFA9CC0650955C733910F2F90C78AE367F67B0F496A100E0B018731404D2BAEC7420F8C2B1FB6612AF69ECF369F236DD0BFB0ACBAED4141B2A14591C6475FC5C3D4E9B6229ECF7E288C015D59A35DE67F633DC586609AB3AB85A02B99DDF1B6FA7D54D4B2DDB767CAAB797C9FB29594B80B5BAACF777666D0B35CE6EFD8E46270C4D715B74FEA64FE34FBF4332BB4E8477CA438645C24444417EA5769B507925FB4B8FC59E429F1EC593C397F71087A080B39A192B5147D04D9F30DC237764C810E519B74EE90F047D0829104B6BA1A01F1CC18C85BE79F52084FAD6D7BF3EDA36D63981D8B75676740DB1AA6E06AD0C1F6A3B665D2D9D0E363FCE37B581C682A5F554D820849CEE7066A7DB011EA7D916B4A45212CBBC7A56ADAD33D203B8A1EDA03064A34351916C243E65D45425974C1468A626B773B48962108203F02814F15640149BCC2325C40F2457F0618CAAFDE26162326F2F81E8C727FAFED1B43E3AC8752E9F4EDFF5B58BD316882B555E63278FEB00B61144703C060B6188F3528E176E9B2D5996579048B723EB678CD56FA979004270E9F88F235404C522ED076E9F287097F2F7600A2D4566D2F6EFB600A9854B61CDB4363040D4F30D96BB011EF4BB0E0F21192F72B106B4F38A79FA384978C3C2A9AB94534BE01C83927BC95A9C5E55E618D7C5D77A9FA39664EEF11B2D50F59396DAD7CDC23F17948585BD88342EED68C4A13A7 | 418 | 20181014175821 2 6 100 8191 5 D72A51FC8A019CA61D28C85021CE881FBDCA1D9E2773A50343C390408ABF52C024F0268B5D4F74AA0722F8FA78F966B7AE411C57015CC9E0DB7E56B27A1D078D951747F90F8F663552B12F9BE26809481BD6D62C8EE018E2944DCF0EC7D31FFE3F7DD2F11F3C8311F1C2E2038613E541F53BA05FD92A540D11BB3267E80CCC5DEC74FD67AE473FAD56EFE2CF04457BB7B3121F93AC8F00A5DBE46E460B9B97823F937CF18722D4EE6373EF369D26A7602491493497C1EFDA3F7509772853CF84CD64A06A54FE32817B39B98CE3CE4477616CF232B04D0B2098D5A4E575939C63B26B72BE87B2BEF58F2F6DB4B2A0E00634E02637DF471D6519C22BA9494F225CA01A1A96886C6F02CE0D11EDE3370180E6E6F5CA54B44A8B66BF16ECD52193B7483700AA4051AF775F80818F3331AD80BB25A0FC8775B7821C32EAFDBEF75B3BFCB2F1A4BBDF5340B20AC9E185B0770CE6AAB120CFC4C8C88CA381946F48C0478DC07E5CF3CFB805A1BA8DB905A6D2ABFCFD765990CA4699D9F9B6922FECA4FF861362B4525FF0934E679109AB8F00909945FE897E927380F72416231AAE1A717D47BD129D5549F60C2EA377744B8807AA2432D1925D02C4C205715231DFAD86AC6B5253DE58E3E3F65484A0014CC1EFFBABC6EE912A925C08C8BB68E5FD7A13AED0116863EFA7E69A33D28A1FA853B7E0B84A5F78EFC44CDC39C4148C4B1B3D17E7371E51F96CFAAEBE15D67E82B590B9BB0567BC161AFF012F7571E514BCA7157A8C1521BD7147E83EE57721A77895722390D9C1B7C3BEEEF316E313F5A2DFBA0A5E3509F5F2CEB90C07E1177D3C8AA6CD56F5C5C614656D155350AAFD556890247AE6EDEE2236583A6DA347679C69A9B518FA9BD882F5B9850762C987F727CFEE68421A2D4F363EC45EDABAD574CC4C5AB7654F1C7E0CD84E708CD7C3ED66F369EC1E0E193346FE4747709F6A6DC969E3D2394758E807F4370E2C5A64B5190C5E9D3983CF5778076667B3E41AA28A868B9EA72C45A9234A2C92F0627512AC815CDC1418C676E66B474C071C65DF4EB7AA109ED189B30F49C9A7310CDD5504A0155E5A37FB41548B78049F3FF57EF682D04EFF6B43E5390B07019C555CB55D477552EC778C5BBF00830D1D2B233CB9B5C5A1817F96F395A527458625740A6B2FEFDF160F003D72086FAD44EA24CC669E710A965052D997E63144FD5F32271D0CF75D24DCCF5F4A8E7FD0381E03F0E9DB6F63BA5A59790788D48161E0C292436F79120C9057EBC7B1CA430E5D060836CEE57945DF5557EE2036588A902A1BD163F4DA436602B4BEF61A20D52B15877BFF9973366F242A6D2564BF32E2251C0E07DB2C98A31E82B63F6513FD4CC37D040653E3A68C6B2DB43B569FB070120ADEE89042BF0AC0E9103164E5F8BC57847A1F109ABF35E6E5DE0258C2117C7CCCA7 |
419 | 20180508064503 2 6 100 8191 5 E3FCBDCFD41A409C58BE083B6485A2D67E20931B1F469774BAE0F1AB2898B800032581B1C4FC71FE136087937A885AFB6FC9E582DD97B8DE3AD2AF861419D5F06278316DFA78BAE7EF099889F0E99575C7812E7240B67623E7877737013A7D5DB3638040083400E8F27600BAC0650D24220CA1B3C05FB7DD70469A201DBFF1308ECA1C7152A6016BB89BFB6C625715EE91A92EA1848F0B2491AA92187468D9E8442679D7F5F6B64BC9D5A3D4E9B58C59EEEB65F8D6B70A71099E1B420BC0FD750CB2F333C23C97966BE727A6B6D9AEC8C0EB2436E01770F03840BFEC9228BB6DD46CE27D5739E18429F464FFF6812B0F66A8B0024BE03294900B8D0BC3CA6785F8C418EFE7068B2CD190A54BB9F90E05885A5C85DC069495C2009F79DBFD7774D7D65B9831FDC295CE146F4EB91DC56ABBD0B64BEAF3C340E0BF123A115D12289D44B650FF8461734308F4701CF2C199676DB3B4804FCDBD6B08C5D4875073AD5C575CA0B64597472A5C23EB4277B52B1128F3B1AE363E36A2C2D6EF5FCE00EE1573A40AD5ACDCDADE3E2672979CF68E87530520B2CA2C1110CBE4B631F3ABE83CFFDB7D5ACDD6DCA5916E30B1771FE29C4F60163B62349B66C0EDDCE8502F7C49DD4089EA5AE31FFB220A88C8D232367B52FAB7644F02E7EC10378697213CF0D90DA83A9941C217C559F88DEC6587AD953C95F11C575F0EFA9CC0650955C733910F2F90C78AE367F67B0F496A100E0B018731404D2BAEC7420F8C2B1FB6612AF69ECF369F236DD0BFB0ACBAED4141B2A14591C6475FC5C3D4E9B6229ECF7E288C015D59A35DE67F633DC586609AB3AB85A02B99DDF1B6FA7D54D4B2DDB767CAAB797C9FB29594B80B5BAACF777666D0B35CE6EFD8E46270C4D715B74FEA64FE34FBF4332BB4E8477CA438645C24444417EA5769B507925FB4B8FC59E429F1EC593C397F71087A080B39A192B5147D04D9F30DC237764C810E519B74EE90F047D0829104B6BA1A01F1CC18C85BE79F52084FAD6D7BF3EDA36D63981D8B75676740DB1AA6E06AD0C1F6A3B665D2D9D0E363FCE37B581C682A5F554D820849CEE7066A7DB011EA7D916B4A45212CBBC7A56ADAD33D203B8A1EDA03064A34351916C243E65D45425974C1468A626B773B48962108203F02814F15640149BCC2325C40F2457F0618CAAFDE26162326F2F81E8C727FAFED1B43E3AC8752E9F4EDFF5B58BD316882B555E63278FEB00B61144703C060B6188F3528E176E9B2D5996579048B723EB678CD56FA979004270E9F88F235404C522ED076E9F287097F2F7600A2D4566D2F6EFB600A9854B61CDB4363040D4F30D96BB011EF4BB0E0F21192F72B106B4F38A79FA384978C3C2A9AB94534BE01C83927BC95A9C5E55E618D7C5D77A9FA39664EEF11B2D50F59396DAD7CDC23F17948585BD88342EED68EAB2CC7 | 419 | 20181014225732 2 6 100 8191 2 D72A51FC8A019CA61D28C85021CE881FBDCA1D9E2773A50343C390408ABF52C024F0268B5D4F74AA0722F8FA78F966B7AE411C57015CC9E0DB7E56B27A1D078D951747F90F8F663552B12F9BE26809481BD6D62C8EE018E2944DCF0EC7D31FFE3F7DD2F11F3C8311F1C2E2038613E541F53BA05FD92A540D11BB3267E80CCC5DEC74FD67AE473FAD56EFE2CF04457BB7B3121F93AC8F00A5DBE46E460B9B97823F937CF18722D4EE6373EF369D26A7602491493497C1EFDA3F7509772853CF84CD64A06A54FE32817B39B98CE3CE4477616CF232B04D0B2098D5A4E575939C63B26B72BE87B2BEF58F2F6DB4B2A0E00634E02637DF471D6519C22BA9494F225CA01A1A96886C6F02CE0D11EDE3370180E6E6F5CA54B44A8B66BF16ECD52193B7483700AA4051AF775F80818F3331AD80BB25A0FC8775B7821C32EAFDBEF75B3BFCB2F1A4BBDF5340B20AC9E185B0770CE6AAB120CFC4C8C88CA381946F48C0478DC07E5CF3CFB805A1BA8DB905A6D2ABFCFD765990CA4699D9F9B6922FECA4FF861362B4525FF0934E679109AB8F00909945FE897E927380F72416231AAE1A717D47BD129D5549F60C2EA377744B8807AA2432D1925D02C4C205715231DFAD86AC6B5253DE58E3E3F65484A0014CC1EFFBABC6EE912A925C08C8BB68E5FD7A13AED0116863EFA7E69A33D28A1FA853B7E0B84A5F78EFC44CDC39C4148C4B1B3D17E7371E51F96CFAAEBE15D67E82B590B9BB0567BC161AFF012F7571E514BCA7157A8C1521BD7147E83EE57721A77895722390D9C1B7C3BEEEF316E313F5A2DFBA0A5E3509F5F2CEB90C07E1177D3C8AA6CD56F5C5C614656D155350AAFD556890247AE6EDEE2236583A6DA347679C69A9B518FA9BD882F5B9850762C987F727CFEE68421A2D4F363EC45EDABAD574CC4C5AB7654F1C7E0CD84E708CD7C3ED66F369EC1E0E193346FE4747709F6A6DC969E3D2394758E807F4370E2C5A64B5190C5E9D3983CF5778076667B3E41AA28A868B9EA72C45A9234A2C92F0627512AC815CDC1418C676E66B474C071C65DF4EB7AA109ED189B30F49C9A7310CDD5504A0155E5A37FB41548B78049F3FF57EF682D04EFF6B43E5390B07019C555CB55D477552EC778C5BBF00830D1D2B233CB9B5C5A1817F96F395A527458625740A6B2FEFDF160F003D72086FAD44EA24CC669E710A965052D997E63144FD5F32271D0CF75D24DCCF5F4A8E7FD0381E03F0E9DB6F63BA5A59790788D48161E0C292436F79120C9057EBC7B1CA430E5D060836CEE57945DF5557EE2036588A902A1BD163F4DA436602B4BEF61A20D52B15877BFF9973366F242A6D2564BF32E2251C0E07DB2C98A31E82B63F6513FD4CC37D040653E3A68C6B2DB43B569FB070120ADEE89042BF0AC0E9103164E5F8BC57847A1F109ABF35E6E5DE0258C2117F8262DB |
420 | 20180508094511 2 6 100 8191 2 E3FCBDCFD41A409C58BE083B6485A2D67E20931B1F469774BAE0F1AB2898B800032581B1C4FC71FE136087937A885AFB6FC9E582DD97B8DE3AD2AF861419D5F06278316DFA78BAE7EF099889F0E99575C7812E7240B67623E7877737013A7D5DB3638040083400E8F27600BAC0650D24220CA1B3C05FB7DD70469A201DBFF1308ECA1C7152A6016BB89BFB6C625715EE91A92EA1848F0B2491AA92187468D9E8442679D7F5F6B64BC9D5A3D4E9B58C59EEEB65F8D6B70A71099E1B420BC0FD750CB2F333C23C97966BE727A6B6D9AEC8C0EB2436E01770F03840BFEC9228BB6DD46CE27D5739E18429F464FFF6812B0F66A8B0024BE03294900B8D0BC3CA6785F8C418EFE7068B2CD190A54BB9F90E05885A5C85DC069495C2009F79DBFD7774D7D65B9831FDC295CE146F4EB91DC56ABBD0B64BEAF3C340E0BF123A115D12289D44B650FF8461734308F4701CF2C199676DB3B4804FCDBD6B08C5D4875073AD5C575CA0B64597472A5C23EB4277B52B1128F3B1AE363E36A2C2D6EF5FCE00EE1573A40AD5ACDCDADE3E2672979CF68E87530520B2CA2C1110CBE4B631F3ABE83CFFDB7D5ACDD6DCA5916E30B1771FE29C4F60163B62349B66C0EDDCE8502F7C49DD4089EA5AE31FFB220A88C8D232367B52FAB7644F02E7EC10378697213CF0D90DA83A9941C217C559F88DEC6587AD953C95F11C575F0EFA9CC0650955C733910F2F90C78AE367F67B0F496A100E0B018731404D2BAEC7420F8C2B1FB6612AF69ECF369F236DD0BFB0ACBAED4141B2A14591C6475FC5C3D4E9B6229ECF7E288C015D59A35DE67F633DC586609AB3AB85A02B99DDF1B6FA7D54D4B2DDB767CAAB797C9FB29594B80B5BAACF777666D0B35CE6EFD8E46270C4D715B74FEA64FE34FBF4332BB4E8477CA438645C24444417EA5769B507925FB4B8FC59E429F1EC593C397F71087A080B39A192B5147D04D9F30DC237764C810E519B74EE90F047D0829104B6BA1A01F1CC18C85BE79F52084FAD6D7BF3EDA36D63981D8B75676740DB1AA6E06AD0C1F6A3B665D2D9D0E363FCE37B581C682A5F554D820849CEE7066A7DB011EA7D916B4A45212CBBC7A56ADAD33D203B8A1EDA03064A34351916C243E65D45425974C1468A626B773B48962108203F02814F15640149BCC2325C40F2457F0618CAAFDE26162326F2F81E8C727FAFED1B43E3AC8752E9F4EDFF5B58BD316882B555E63278FEB00B61144703C060B6188F3528E176E9B2D5996579048B723EB678CD56FA979004270E9F88F235404C522ED076E9F287097F2F7600A2D4566D2F6EFB600A9854B61CDB4363040D4F30D96BB011EF4BB0E0F21192F72B106B4F38A79FA384978C3C2A9AB94534BE01C83927BC95A9C5E55E618D7C5D77A9FA39664EEF11B2D50F59396DAD7CDC23F17948585BD88342EED69078137B | 420 | 20181014233346 2 6 100 8191 2 D72A51FC8A019CA61D28C85021CE881FBDCA1D9E2773A50343C390408ABF52C024F0268B5D4F74AA0722F8FA78F966B7AE411C57015CC9E0DB7E56B27A1D078D951747F90F8F663552B12F9BE26809481BD6D62C8EE018E2944DCF0EC7D31FFE3F7DD2F11F3C8311F1C2E2038613E541F53BA05FD92A540D11BB3267E80CCC5DEC74FD67AE473FAD56EFE2CF04457BB7B3121F93AC8F00A5DBE46E460B9B97823F937CF18722D4EE6373EF369D26A7602491493497C1EFDA3F7509772853CF84CD64A06A54FE32817B39B98CE3CE4477616CF232B04D0B2098D5A4E575939C63B26B72BE87B2BEF58F2F6DB4B2A0E00634E02637DF471D6519C22BA9494F225CA01A1A96886C6F02CE0D11EDE3370180E6E6F5CA54B44A8B66BF16ECD52193B7483700AA4051AF775F80818F3331AD80BB25A0FC8775B7821C32EAFDBEF75B3BFCB2F1A4BBDF5340B20AC9E185B0770CE6AAB120CFC4C8C88CA381946F48C0478DC07E5CF3CFB805A1BA8DB905A6D2ABFCFD765990CA4699D9F9B6922FECA4FF861362B4525FF0934E679109AB8F00909945FE897E927380F72416231AAE1A717D47BD129D5549F60C2EA377744B8807AA2432D1925D02C4C205715231DFAD86AC6B5253DE58E3E3F65484A0014CC1EFFBABC6EE912A925C08C8BB68E5FD7A13AED0116863EFA7E69A33D28A1FA853B7E0B84A5F78EFC44CDC39C4148C4B1B3D17E7371E51F96CFAAEBE15D67E82B590B9BB0567BC161AFF012F7571E514BCA7157A8C1521BD7147E83EE57721A77895722390D9C1B7C3BEEEF316E313F5A2DFBA0A5E3509F5F2CEB90C07E1177D3C8AA6CD56F5C5C614656D155350AAFD556890247AE6EDEE2236583A6DA347679C69A9B518FA9BD882F5B9850762C987F727CFEE68421A2D4F363EC45EDABAD574CC4C5AB7654F1C7E0CD84E708CD7C3ED66F369EC1E0E193346FE4747709F6A6DC969E3D2394758E807F4370E2C5A64B5190C5E9D3983CF5778076667B3E41AA28A868B9EA72C45A9234A2C92F0627512AC815CDC1418C676E66B474C071C65DF4EB7AA109ED189B30F49C9A7310CDD5504A0155E5A37FB41548B78049F3FF57EF682D04EFF6B43E5390B07019C555CB55D477552EC778C5BBF00830D1D2B233CB9B5C5A1817F96F395A527458625740A6B2FEFDF160F003D72086FAD44EA24CC669E710A965052D997E63144FD5F32271D0CF75D24DCCF5F4A8E7FD0381E03F0E9DB6F63BA5A59790788D48161E0C292436F79120C9057EBC7B1CA430E5D060836CEE57945DF5557EE2036588A902A1BD163F4DA436602B4BEF61A20D52B15877BFF9973366F242A6D2564BF32E2251C0E07DB2C98A31E82B63F6513FD4CC37D040653E3A68C6B2DB43B569FB070120ADEE89042BF0AC0E9103164E5F8BC57847A1F109ABF35E6E5DE0258C2117FD8EA63 |
421 | 20180509200633 2 6 100 8191 5 E3FCBDCFD41A409C58BE083B6485A2D67E20931B1F469774BAE0F1AB2898B800032581B1C4FC71FE136087937A885AFB6FC9E582DD97B8DE3AD2AF861419D5F06278316DFA78BAE7EF099889F0E99575C7812E7240B67623E7877737013A7D5DB3638040083400E8F27600BAC0650D24220CA1B3C05FB7DD70469A201DBFF1308ECA1C7152A6016BB89BFB6C625715EE91A92EA1848F0B2491AA92187468D9E8442679D7F5F6B64BC9D5A3D4E9B58C59EEEB65F8D6B70A71099E1B420BC0FD750CB2F333C23C97966BE727A6B6D9AEC8C0EB2436E01770F03840BFEC9228BB6DD46CE27D5739E18429F464FFF6812B0F66A8B0024BE03294900B8D0BC3CA6785F8C418EFE7068B2CD190A54BB9F90E05885A5C85DC069495C2009F79DBFD7774D7D65B9831FDC295CE146F4EB91DC56ABBD0B64BEAF3C340E0BF123A115D12289D44B650FF8461734308F4701CF2C199676DB3B4804FCDBD6B08C5D4875073AD5C575CA0B64597472A5C23EB4277B52B1128F3B1AE363E36A2C2D6EF5FCE00EE1573A40AD5ACDCDADE3E2672979CF68E87530520B2CA2C1110CBE4B631F3ABE83CFFDB7D5ACDD6DCA5916E30B1771FE29C4F60163B62349B66C0EDDCE8502F7C49DD4089EA5AE31FFB220A88C8D232367B52FAB7644F02E7EC10378697213CF0D90DA83A9941C217C559F88DEC6587AD953C95F11C575F0EFA9CC0650955C733910F2F90C78AE367F67B0F496A100E0B018731404D2BAEC7420F8C2B1FB6612AF69ECF369F236DD0BFB0ACBAED4141B2A14591C6475FC5C3D4E9B6229ECF7E288C015D59A35DE67F633DC586609AB3AB85A02B99DDF1B6FA7D54D4B2DDB767CAAB797C9FB29594B80B5BAACF777666D0B35CE6EFD8E46270C4D715B74FEA64FE34FBF4332BB4E8477CA438645C24444417EA5769B507925FB4B8FC59E429F1EC593C397F71087A080B39A192B5147D04D9F30DC237764C810E519B74EE90F047D0829104B6BA1A01F1CC18C85BE79F52084FAD6D7BF3EDA36D63981D8B75676740DB1AA6E06AD0C1F6A3B665D2D9D0E363FCE37B581C682A5F554D820849CEE7066A7DB011EA7D916B4A45212CBBC7A56ADAD33D203B8A1EDA03064A34351916C243E65D45425974C1468A626B773B48962108203F02814F15640149BCC2325C40F2457F0618CAAFDE26162326F2F81E8C727FAFED1B43E3AC8752E9F4EDFF5B58BD316882B555E63278FEB00B61144703C060B6188F3528E176E9B2D5996579048B723EB678CD56FA979004270E9F88F235404C522ED076E9F287097F2F7600A2D4566D2F6EFB600A9854B61CDB4363040D4F30D96BB011EF4BB0E0F21192F72B106B4F38A79FA384978C3C2A9AB94534BE01C83927BC95A9C5E55E618D7C5D77A9FA39664EEF11B2D50F59396DAD7CDC23F17948585BD88342EED6A5AB6E77 | 421 | 20181015001106 2 6 100 8191 2 D72A51FC8A019CA61D28C85021CE881FBDCA1D9E2773A50343C390408ABF52C024F0268B5D4F74AA0722F8FA78F966B7AE411C57015CC9E0DB7E56B27A1D078D951747F90F8F663552B12F9BE26809481BD6D62C8EE018E2944DCF0EC7D31FFE3F7DD2F11F3C8311F1C2E2038613E541F53BA05FD92A540D11BB3267E80CCC5DEC74FD67AE473FAD56EFE2CF04457BB7B3121F93AC8F00A5DBE46E460B9B97823F937CF18722D4EE6373EF369D26A7602491493497C1EFDA3F7509772853CF84CD64A06A54FE32817B39B98CE3CE4477616CF232B04D0B2098D5A4E575939C63B26B72BE87B2BEF58F2F6DB4B2A0E00634E02637DF471D6519C22BA9494F225CA01A1A96886C6F02CE0D11EDE3370180E6E6F5CA54B44A8B66BF16ECD52193B7483700AA4051AF775F80818F3331AD80BB25A0FC8775B7821C32EAFDBEF75B3BFCB2F1A4BBDF5340B20AC9E185B0770CE6AAB120CFC4C8C88CA381946F48C0478DC07E5CF3CFB805A1BA8DB905A6D2ABFCFD765990CA4699D9F9B6922FECA4FF861362B4525FF0934E679109AB8F00909945FE897E927380F72416231AAE1A717D47BD129D5549F60C2EA377744B8807AA2432D1925D02C4C205715231DFAD86AC6B5253DE58E3E3F65484A0014CC1EFFBABC6EE912A925C08C8BB68E5FD7A13AED0116863EFA7E69A33D28A1FA853B7E0B84A5F78EFC44CDC39C4148C4B1B3D17E7371E51F96CFAAEBE15D67E82B590B9BB0567BC161AFF012F7571E514BCA7157A8C1521BD7147E83EE57721A77895722390D9C1B7C3BEEEF316E313F5A2DFBA0A5E3509F5F2CEB90C07E1177D3C8AA6CD56F5C5C614656D155350AAFD556890247AE6EDEE2236583A6DA347679C69A9B518FA9BD882F5B9850762C987F727CFEE68421A2D4F363EC45EDABAD574CC4C5AB7654F1C7E0CD84E708CD7C3ED66F369EC1E0E193346FE4747709F6A6DC969E3D2394758E807F4370E2C5A64B5190C5E9D3983CF5778076667B3E41AA28A868B9EA72C45A9234A2C92F0627512AC815CDC1418C676E66B474C071C65DF4EB7AA109ED189B30F49C9A7310CDD5504A0155E5A37FB41548B78049F3FF57EF682D04EFF6B43E5390B07019C555CB55D477552EC778C5BBF00830D1D2B233CB9B5C5A1817F96F395A527458625740A6B2FEFDF160F003D72086FAD44EA24CC669E710A965052D997E63144FD5F32271D0CF75D24DCCF5F4A8E7FD0381E03F0E9DB6F63BA5A59790788D48161E0C292436F79120C9057EBC7B1CA430E5D060836CEE57945DF5557EE2036588A902A1BD163F4DA436602B4BEF61A20D52B15877BFF9973366F242A6D2564BF32E2251C0E07DB2C98A31E82B63F6513FD4CC37D040653E3A68C6B2DB43B569FB070120ADEE89042BF0AC0E9103164E5F8BC57847A1F109ABF35E6E5DE0258C211803251C3 |
422 | 20180509233450 2 6 100 8191 5 E3FCBDCFD41A409C58BE083B6485A2D67E20931B1F469774BAE0F1AB2898B800032581B1C4FC71FE136087937A885AFB6FC9E582DD97B8DE3AD2AF861419D5F06278316DFA78BAE7EF099889F0E99575C7812E7240B67623E7877737013A7D5DB3638040083400E8F27600BAC0650D24220CA1B3C05FB7DD70469A201DBFF1308ECA1C7152A6016BB89BFB6C625715EE91A92EA1848F0B2491AA92187468D9E8442679D7F5F6B64BC9D5A3D4E9B58C59EEEB65F8D6B70A71099E1B420BC0FD750CB2F333C23C97966BE727A6B6D9AEC8C0EB2436E01770F03840BFEC9228BB6DD46CE27D5739E18429F464FFF6812B0F66A8B0024BE03294900B8D0BC3CA6785F8C418EFE7068B2CD190A54BB9F90E05885A5C85DC069495C2009F79DBFD7774D7D65B9831FDC295CE146F4EB91DC56ABBD0B64BEAF3C340E0BF123A115D12289D44B650FF8461734308F4701CF2C199676DB3B4804FCDBD6B08C5D4875073AD5C575CA0B64597472A5C23EB4277B52B1128F3B1AE363E36A2C2D6EF5FCE00EE1573A40AD5ACDCDADE3E2672979CF68E87530520B2CA2C1110CBE4B631F3ABE83CFFDB7D5ACDD6DCA5916E30B1771FE29C4F60163B62349B66C0EDDCE8502F7C49DD4089EA5AE31FFB220A88C8D232367B52FAB7644F02E7EC10378697213CF0D90DA83A9941C217C559F88DEC6587AD953C95F11C575F0EFA9CC0650955C733910F2F90C78AE367F67B0F496A100E0B018731404D2BAEC7420F8C2B1FB6612AF69ECF369F236DD0BFB0ACBAED4141B2A14591C6475FC5C3D4E9B6229ECF7E288C015D59A35DE67F633DC586609AB3AB85A02B99DDF1B6FA7D54D4B2DDB767CAAB797C9FB29594B80B5BAACF777666D0B35CE6EFD8E46270C4D715B74FEA64FE34FBF4332BB4E8477CA438645C24444417EA5769B507925FB4B8FC59E429F1EC593C397F71087A080B39A192B5147D04D9F30DC237764C810E519B74EE90F047D0829104B6BA1A01F1CC18C85BE79F52084FAD6D7BF3EDA36D63981D8B75676740DB1AA6E06AD0C1F6A3B665D2D9D0E363FCE37B581C682A5F554D820849CEE7066A7DB011EA7D916B4A45212CBBC7A56ADAD33D203B8A1EDA03064A34351916C243E65D45425974C1468A626B773B48962108203F02814F15640149BCC2325C40F2457F0618CAAFDE26162326F2F81E8C727FAFED1B43E3AC8752E9F4EDFF5B58BD316882B555E63278FEB00B61144703C060B6188F3528E176E9B2D5996579048B723EB678CD56FA979004270E9F88F235404C522ED076E9F287097F2F7600A2D4566D2F6EFB600A9854B61CDB4363040D4F30D96BB011EF4BB0E0F21192F72B106B4F38A79FA384978C3C2A9AB94534BE01C83927BC95A9C5E55E618D7C5D77A9FA39664EEF11B2D50F59396DAD7CDC23F17948585BD88342EED6A7C34C7F | 422 | 20181015101051 2 6 100 8191 2 D72A51FC8A019CA61D28C85021CE881FBDCA1D9E2773A50343C390408ABF52C024F0268B5D4F74AA0722F8FA78F966B7AE411C57015CC9E0DB7E56B27A1D078D951747F90F8F663552B12F9BE26809481BD6D62C8EE018E2944DCF0EC7D31FFE3F7DD2F11F3C8311F1C2E2038613E541F53BA05FD92A540D11BB3267E80CCC5DEC74FD67AE473FAD56EFE2CF04457BB7B3121F93AC8F00A5DBE46E460B9B97823F937CF18722D4EE6373EF369D26A7602491493497C1EFDA3F7509772853CF84CD64A06A54FE32817B39B98CE3CE4477616CF232B04D0B2098D5A4E575939C63B26B72BE87B2BEF58F2F6DB4B2A0E00634E02637DF471D6519C22BA9494F225CA01A1A96886C6F02CE0D11EDE3370180E6E6F5CA54B44A8B66BF16ECD52193B7483700AA4051AF775F80818F3331AD80BB25A0FC8775B7821C32EAFDBEF75B3BFCB2F1A4BBDF5340B20AC9E185B0770CE6AAB120CFC4C8C88CA381946F48C0478DC07E5CF3CFB805A1BA8DB905A6D2ABFCFD765990CA4699D9F9B6922FECA4FF861362B4525FF0934E679109AB8F00909945FE897E927380F72416231AAE1A717D47BD129D5549F60C2EA377744B8807AA2432D1925D02C4C205715231DFAD86AC6B5253DE58E3E3F65484A0014CC1EFFBABC6EE912A925C08C8BB68E5FD7A13AED0116863EFA7E69A33D28A1FA853B7E0B84A5F78EFC44CDC39C4148C4B1B3D17E7371E51F96CFAAEBE15D67E82B590B9BB0567BC161AFF012F7571E514BCA7157A8C1521BD7147E83EE57721A77895722390D9C1B7C3BEEEF316E313F5A2DFBA0A5E3509F5F2CEB90C07E1177D3C8AA6CD56F5C5C614656D155350AAFD556890247AE6EDEE2236583A6DA347679C69A9B518FA9BD882F5B9850762C987F727CFEE68421A2D4F363EC45EDABAD574CC4C5AB7654F1C7E0CD84E708CD7C3ED66F369EC1E0E193346FE4747709F6A6DC969E3D2394758E807F4370E2C5A64B5190C5E9D3983CF5778076667B3E41AA28A868B9EA72C45A9234A2C92F0627512AC815CDC1418C676E66B474C071C65DF4EB7AA109ED189B30F49C9A7310CDD5504A0155E5A37FB41548B78049F3FF57EF682D04EFF6B43E5390B07019C555CB55D477552EC778C5BBF00830D1D2B233CB9B5C5A1817F96F395A527458625740A6B2FEFDF160F003D72086FAD44EA24CC669E710A965052D997E63144FD5F32271D0CF75D24DCCF5F4A8E7FD0381E03F0E9DB6F63BA5A59790788D48161E0C292436F79120C9057EBC7B1CA430E5D060836CEE57945DF5557EE2036588A902A1BD163F4DA436602B4BEF61A20D52B15877BFF9973366F242A6D2564BF32E2251C0E07DB2C98A31E82B63F6513FD4CC37D040653E3A68C6B2DB43B569FB070120ADEE89042BF0AC0E9103164E5F8BC57847A1F109ABF35E6E5DE0258C21185F9BDF3 |
423 | 20180510003712 2 6 100 8191 5 E3FCBDCFD41A409C58BE083B6485A2D67E20931B1F469774BAE0F1AB2898B800032581B1C4FC71FE136087937A885AFB6FC9E582DD97B8DE3AD2AF861419D5F06278316DFA78BAE7EF099889F0E99575C7812E7240B67623E7877737013A7D5DB3638040083400E8F27600BAC0650D24220CA1B3C05FB7DD70469A201DBFF1308ECA1C7152A6016BB89BFB6C625715EE91A92EA1848F0B2491AA92187468D9E8442679D7F5F6B64BC9D5A3D4E9B58C59EEEB65F8D6B70A71099E1B420BC0FD750CB2F333C23C97966BE727A6B6D9AEC8C0EB2436E01770F03840BFEC9228BB6DD46CE27D5739E18429F464FFF6812B0F66A8B0024BE03294900B8D0BC3CA6785F8C418EFE7068B2CD190A54BB9F90E05885A5C85DC069495C2009F79DBFD7774D7D65B9831FDC295CE146F4EB91DC56ABBD0B64BEAF3C340E0BF123A115D12289D44B650FF8461734308F4701CF2C199676DB3B4804FCDBD6B08C5D4875073AD5C575CA0B64597472A5C23EB4277B52B1128F3B1AE363E36A2C2D6EF5FCE00EE1573A40AD5ACDCDADE3E2672979CF68E87530520B2CA2C1110CBE4B631F3ABE83CFFDB7D5ACDD6DCA5916E30B1771FE29C4F60163B62349B66C0EDDCE8502F7C49DD4089EA5AE31FFB220A88C8D232367B52FAB7644F02E7EC10378697213CF0D90DA83A9941C217C559F88DEC6587AD953C95F11C575F0EFA9CC0650955C733910F2F90C78AE367F67B0F496A100E0B018731404D2BAEC7420F8C2B1FB6612AF69ECF369F236DD0BFB0ACBAED4141B2A14591C6475FC5C3D4E9B6229ECF7E288C015D59A35DE67F633DC586609AB3AB85A02B99DDF1B6FA7D54D4B2DDB767CAAB797C9FB29594B80B5BAACF777666D0B35CE6EFD8E46270C4D715B74FEA64FE34FBF4332BB4E8477CA438645C24444417EA5769B507925FB4B8FC59E429F1EC593C397F71087A080B39A192B5147D04D9F30DC237764C810E519B74EE90F047D0829104B6BA1A01F1CC18C85BE79F52084FAD6D7BF3EDA36D63981D8B75676740DB1AA6E06AD0C1F6A3B665D2D9D0E363FCE37B581C682A5F554D820849CEE7066A7DB011EA7D916B4A45212CBBC7A56ADAD33D203B8A1EDA03064A34351916C243E65D45425974C1468A626B773B48962108203F02814F15640149BCC2325C40F2457F0618CAAFDE26162326F2F81E8C727FAFED1B43E3AC8752E9F4EDFF5B58BD316882B555E63278FEB00B61144703C060B6188F3528E176E9B2D5996579048B723EB678CD56FA979004270E9F88F235404C522ED076E9F287097F2F7600A2D4566D2F6EFB600A9854B61CDB4363040D4F30D96BB011EF4BB0E0F21192F72B106B4F38A79FA384978C3C2A9AB94534BE01C83927BC95A9C5E55E618D7C5D77A9FA39664EEF11B2D50F59396DAD7CDC23F17948585BD88342EED6A85E2007 | 423 | 20181016055751 2 6 100 8191 5 D72A51FC8A019CA61D28C85021CE881FBDCA1D9E2773A50343C390408ABF52C024F0268B5D4F74AA0722F8FA78F966B7AE411C57015CC9E0DB7E56B27A1D078D951747F90F8F663552B12F9BE26809481BD6D62C8EE018E2944DCF0EC7D31FFE3F7DD2F11F3C8311F1C2E2038613E541F53BA05FD92A540D11BB3267E80CCC5DEC74FD67AE473FAD56EFE2CF04457BB7B3121F93AC8F00A5DBE46E460B9B97823F937CF18722D4EE6373EF369D26A7602491493497C1EFDA3F7509772853CF84CD64A06A54FE32817B39B98CE3CE4477616CF232B04D0B2098D5A4E575939C63B26B72BE87B2BEF58F2F6DB4B2A0E00634E02637DF471D6519C22BA9494F225CA01A1A96886C6F02CE0D11EDE3370180E6E6F5CA54B44A8B66BF16ECD52193B7483700AA4051AF775F80818F3331AD80BB25A0FC8775B7821C32EAFDBEF75B3BFCB2F1A4BBDF5340B20AC9E185B0770CE6AAB120CFC4C8C88CA381946F48C0478DC07E5CF3CFB805A1BA8DB905A6D2ABFCFD765990CA4699D9F9B6922FECA4FF861362B4525FF0934E679109AB8F00909945FE897E927380F72416231AAE1A717D47BD129D5549F60C2EA377744B8807AA2432D1925D02C4C205715231DFAD86AC6B5253DE58E3E3F65484A0014CC1EFFBABC6EE912A925C08C8BB68E5FD7A13AED0116863EFA7E69A33D28A1FA853B7E0B84A5F78EFC44CDC39C4148C4B1B3D17E7371E51F96CFAAEBE15D67E82B590B9BB0567BC161AFF012F7571E514BCA7157A8C1521BD7147E83EE57721A77895722390D9C1B7C3BEEEF316E313F5A2DFBA0A5E3509F5F2CEB90C07E1177D3C8AA6CD56F5C5C614656D155350AAFD556890247AE6EDEE2236583A6DA347679C69A9B518FA9BD882F5B9850762C987F727CFEE68421A2D4F363EC45EDABAD574CC4C5AB7654F1C7E0CD84E708CD7C3ED66F369EC1E0E193346FE4747709F6A6DC969E3D2394758E807F4370E2C5A64B5190C5E9D3983CF5778076667B3E41AA28A868B9EA72C45A9234A2C92F0627512AC815CDC1418C676E66B474C071C65DF4EB7AA109ED189B30F49C9A7310CDD5504A0155E5A37FB41548B78049F3FF57EF682D04EFF6B43E5390B07019C555CB55D477552EC778C5BBF00830D1D2B233CB9B5C5A1817F96F395A527458625740A6B2FEFDF160F003D72086FAD44EA24CC669E710A965052D997E63144FD5F32271D0CF75D24DCCF5F4A8E7FD0381E03F0E9DB6F63BA5A59790788D48161E0C292436F79120C9057EBC7B1CA430E5D060836CEE57945DF5557EE2036588A902A1BD163F4DA436602B4BEF61A20D52B15877BFF9973366F242A6D2564BF32E2251C0E07DB2C98A31E82B63F6513FD4CC37D040653E3A68C6B2DB43B569FB070120ADEE89042BF0AC0E9103164E5F8BC57847A1F109ABF35E6E5DE0258C211914B6C57 |
424 | 20180510011010 2 6 100 8191 2 E3FCBDCFD41A409C58BE083B6485A2D67E20931B1F469774BAE0F1AB2898B800032581B1C4FC71FE136087937A885AFB6FC9E582DD97B8DE3AD2AF861419D5F06278316DFA78BAE7EF099889F0E99575C7812E7240B67623E7877737013A7D5DB3638040083400E8F27600BAC0650D24220CA1B3C05FB7DD70469A201DBFF1308ECA1C7152A6016BB89BFB6C625715EE91A92EA1848F0B2491AA92187468D9E8442679D7F5F6B64BC9D5A3D4E9B58C59EEEB65F8D6B70A71099E1B420BC0FD750CB2F333C23C97966BE727A6B6D9AEC8C0EB2436E01770F03840BFEC9228BB6DD46CE27D5739E18429F464FFF6812B0F66A8B0024BE03294900B8D0BC3CA6785F8C418EFE7068B2CD190A54BB9F90E05885A5C85DC069495C2009F79DBFD7774D7D65B9831FDC295CE146F4EB91DC56ABBD0B64BEAF3C340E0BF123A115D12289D44B650FF8461734308F4701CF2C199676DB3B4804FCDBD6B08C5D4875073AD5C575CA0B64597472A5C23EB4277B52B1128F3B1AE363E36A2C2D6EF5FCE00EE1573A40AD5ACDCDADE3E2672979CF68E87530520B2CA2C1110CBE4B631F3ABE83CFFDB7D5ACDD6DCA5916E30B1771FE29C4F60163B62349B66C0EDDCE8502F7C49DD4089EA5AE31FFB220A88C8D232367B52FAB7644F02E7EC10378697213CF0D90DA83A9941C217C559F88DEC6587AD953C95F11C575F0EFA9CC0650955C733910F2F90C78AE367F67B0F496A100E0B018731404D2BAEC7420F8C2B1FB6612AF69ECF369F236DD0BFB0ACBAED4141B2A14591C6475FC5C3D4E9B6229ECF7E288C015D59A35DE67F633DC586609AB3AB85A02B99DDF1B6FA7D54D4B2DDB767CAAB797C9FB29594B80B5BAACF777666D0B35CE6EFD8E46270C4D715B74FEA64FE34FBF4332BB4E8477CA438645C24444417EA5769B507925FB4B8FC59E429F1EC593C397F71087A080B39A192B5147D04D9F30DC237764C810E519B74EE90F047D0829104B6BA1A01F1CC18C85BE79F52084FAD6D7BF3EDA36D63981D8B75676740DB1AA6E06AD0C1F6A3B665D2D9D0E363FCE37B581C682A5F554D820849CEE7066A7DB011EA7D916B4A45212CBBC7A56ADAD33D203B8A1EDA03064A34351916C243E65D45425974C1468A626B773B48962108203F02814F15640149BCC2325C40F2457F0618CAAFDE26162326F2F81E8C727FAFED1B43E3AC8752E9F4EDFF5B58BD316882B555E63278FEB00B61144703C060B6188F3528E176E9B2D5996579048B723EB678CD56FA979004270E9F88F235404C522ED076E9F287097F2F7600A2D4566D2F6EFB600A9854B61CDB4363040D4F30D96BB011EF4BB0E0F21192F72B106B4F38A79FA384978C3C2A9AB94534BE01C83927BC95A9C5E55E618D7C5D77A9FA39664EEF11B2D50F59396DAD7CDC23F17948585BD88342EED6A8ABBDA3 | 424 | 20181016115955 2 6 100 8191 5 EA2361A4ABC2DDA42ADD74B38CE837D05B00192233F16571DAB16B15049BA7606BA9A6DC1588738A9949D68815E7F9DB7FEB2C81C1284F976E38376817186BB7725E05B3DA281A887F71DADA27911625597D376826592E156211FF30844F8A1C47DF9320AE8E9C9171181EE3F7D5EB1B56F79D7DCC39FC5C20A23EF716809E2035466B7E7A43DF588D73637DC89192E5EC392C917AD498C66E229EDBEFAEBD449773973E04F812B55466A3F2E321FA8A3AD1B6AF8A95178F4EF001004EAA4D83EC362F1B966137C811AE2B52B5815ED28F7CEB16DE55E7C64E5D34BE122EED25B5E9DAC04AE9EBB4C0EEBA6D447B435262EDF18CD616E396C80DCAF8547DED8A9817BB70FEDEA734E5A7005F8C7C2CB53366827824E2666DE1F1AC109A41576BC37B3BD1536D79CAB6F6BD7A2D9863EF0F6FEA547A990EF5DF931632F203682D34462025E053CEE1D25EEB0508CBE0A50F7D687A5AE6038F3BE219992B7796E1181D06AA9072D5419E50046F40D5985CB8EBE8C5232EE75AB3C03F113C5EC4669C072D5C514EFA0778062DDD9FF90BB75DDBA4AE2E2100559A35273D202E93B17FFABBC976DB516DA4FC9433322FE6517E5B39021A4564AFB6E1A15B1EB5981B952A8161C688C461CD1CC8E67882CAAFD6FDFA2BA7EBFC40D16D39F4DA16879D230375833741E1B3C49D1630E10C5E6CD1C11AEB2C356C3A0A4EAD805B9330199AC8BC1BB1ECF2E3F84839B5A444FB06959505AF97019C695D6A14990A1E2C678A6EC187C90F6989DA0E977767F2110D8C9289C6E85CC87C7141B11B284A4DCE2ACA6414F5AEB560E11E44699973E4BC4B28526C2D1C68B81A51ACC9E490B6F28129100FC3888C85ABB9E0B3808F00753F76C908E8E71B08EDD87C9359F716324183EE3D89389839F0E741246400D1BEC8F5592F4D66ED0205A90F6A153D3D0751662BB95FA3CBF1543D35E2B9E02497FA24173FC8387B36EE320007E4DC8D3400DC69D361FE071D1C015F87F4FD8E942E5D92D7197279F02513839ABC5D11098DF80A4D3817B7AFC4F7A93BA8469D89DB503284B6D2B7E90F2B52ED2E6F65F0E90A3D13564725FF563772C5356E2C50AFED4301BBE029DEFB252B1598847FAB4136B69110942DE842A9186D391E8CB2AD210B1D9B9473676222F6EA1F445E24290B6F1845243B33250224C0F316E18C52180220C2549D093D9F3974980F95DA8F1A49E36D142A3957A1F7DE6E492578544D17C856BEEC0F40FAFBFB8140945D6B13AB23BE8D1ABDC3E4A92E051CD180C5F2FE288C96F831DD5F34CA679E618D160B21F1697870F8F3B3A7318D0A558C4EADF16D0A76079D148F7404AC163852513ECE66374A9F5A8BC4C87F36CB2AE52ADBC034DEAE51FD60DC071284F8CAC9346E6D60F97D6CFE41C605B2C4D8D0C8BA41DB0DB3A2BD01B037D8CA20E92F77 |
425 | 20180510075358 2 6 100 8191 2 E3FCBDCFD41A409C58BE083B6485A2D67E20931B1F469774BAE0F1AB2898B800032581B1C4FC71FE136087937A885AFB6FC9E582DD97B8DE3AD2AF861419D5F06278316DFA78BAE7EF099889F0E99575C7812E7240B67623E7877737013A7D5DB3638040083400E8F27600BAC0650D24220CA1B3C05FB7DD70469A201DBFF1308ECA1C7152A6016BB89BFB6C625715EE91A92EA1848F0B2491AA92187468D9E8442679D7F5F6B64BC9D5A3D4E9B58C59EEEB65F8D6B70A71099E1B420BC0FD750CB2F333C23C97966BE727A6B6D9AEC8C0EB2436E01770F03840BFEC9228BB6DD46CE27D5739E18429F464FFF6812B0F66A8B0024BE03294900B8D0BC3CA6785F8C418EFE7068B2CD190A54BB9F90E05885A5C85DC069495C2009F79DBFD7774D7D65B9831FDC295CE146F4EB91DC56ABBD0B64BEAF3C340E0BF123A115D12289D44B650FF8461734308F4701CF2C199676DB3B4804FCDBD6B08C5D4875073AD5C575CA0B64597472A5C23EB4277B52B1128F3B1AE363E36A2C2D6EF5FCE00EE1573A40AD5ACDCDADE3E2672979CF68E87530520B2CA2C1110CBE4B631F3ABE83CFFDB7D5ACDD6DCA5916E30B1771FE29C4F60163B62349B66C0EDDCE8502F7C49DD4089EA5AE31FFB220A88C8D232367B52FAB7644F02E7EC10378697213CF0D90DA83A9941C217C559F88DEC6587AD953C95F11C575F0EFA9CC0650955C733910F2F90C78AE367F67B0F496A100E0B018731404D2BAEC7420F8C2B1FB6612AF69ECF369F236DD0BFB0ACBAED4141B2A14591C6475FC5C3D4E9B6229ECF7E288C015D59A35DE67F633DC586609AB3AB85A02B99DDF1B6FA7D54D4B2DDB767CAAB797C9FB29594B80B5BAACF777666D0B35CE6EFD8E46270C4D715B74FEA64FE34FBF4332BB4E8477CA438645C24444417EA5769B507925FB4B8FC59E429F1EC593C397F71087A080B39A192B5147D04D9F30DC237764C810E519B74EE90F047D0829104B6BA1A01F1CC18C85BE79F52084FAD6D7BF3EDA36D63981D8B75676740DB1AA6E06AD0C1F6A3B665D2D9D0E363FCE37B581C682A5F554D820849CEE7066A7DB011EA7D916B4A45212CBBC7A56ADAD33D203B8A1EDA03064A34351916C243E65D45425974C1468A626B773B48962108203F02814F15640149BCC2325C40F2457F0618CAAFDE26162326F2F81E8C727FAFED1B43E3AC8752E9F4EDFF5B58BD316882B555E63278FEB00B61144703C060B6188F3528E176E9B2D5996579048B723EB678CD56FA979004270E9F88F235404C522ED076E9F287097F2F7600A2D4566D2F6EFB600A9854B61CDB4363040D4F30D96BB011EF4BB0E0F21192F72B106B4F38A79FA384978C3C2A9AB94534BE01C83927BC95A9C5E55E618D7C5D77A9FA39664EEF11B2D50F59396DAD7CDC23F17948585BD88342EED6AC65344B | 425 | 20181017081453 2 6 100 8191 2 EA2361A4ABC2DDA42ADD74B38CE837D05B00192233F16571DAB16B15049BA7606BA9A6DC1588738A9949D68815E7F9DB7FEB2C81C1284F976E38376817186BB7725E05B3DA281A887F71DADA27911625597D376826592E156211FF30844F8A1C47DF9320AE8E9C9171181EE3F7D5EB1B56F79D7DCC39FC5C20A23EF716809E2035466B7E7A43DF588D73637DC89192E5EC392C917AD498C66E229EDBEFAEBD449773973E04F812B55466A3F2E321FA8A3AD1B6AF8A95178F4EF001004EAA4D83EC362F1B966137C811AE2B52B5815ED28F7CEB16DE55E7C64E5D34BE122EED25B5E9DAC04AE9EBB4C0EEBA6D447B435262EDF18CD616E396C80DCAF8547DED8A9817BB70FEDEA734E5A7005F8C7C2CB53366827824E2666DE1F1AC109A41576BC37B3BD1536D79CAB6F6BD7A2D9863EF0F6FEA547A990EF5DF931632F203682D34462025E053CEE1D25EEB0508CBE0A50F7D687A5AE6038F3BE219992B7796E1181D06AA9072D5419E50046F40D5985CB8EBE8C5232EE75AB3C03F113C5EC4669C072D5C514EFA0778062DDD9FF90BB75DDBA4AE2E2100559A35273D202E93B17FFABBC976DB516DA4FC9433322FE6517E5B39021A4564AFB6E1A15B1EB5981B952A8161C688C461CD1CC8E67882CAAFD6FDFA2BA7EBFC40D16D39F4DA16879D230375833741E1B3C49D1630E10C5E6CD1C11AEB2C356C3A0A4EAD805B9330199AC8BC1BB1ECF2E3F84839B5A444FB06959505AF97019C695D6A14990A1E2C678A6EC187C90F6989DA0E977767F2110D8C9289C6E85CC87C7141B11B284A4DCE2ACA6414F5AEB560E11E44699973E4BC4B28526C2D1C68B81A51ACC9E490B6F28129100FC3888C85ABB9E0B3808F00753F76C908E8E71B08EDD87C9359F716324183EE3D89389839F0E741246400D1BEC8F5592F4D66ED0205A90F6A153D3D0751662BB95FA3CBF1543D35E2B9E02497FA24173FC8387B36EE320007E4DC8D3400DC69D361FE071D1C015F87F4FD8E942E5D92D7197279F02513839ABC5D11098DF80A4D3817B7AFC4F7A93BA8469D89DB503284B6D2B7E90F2B52ED2E6F65F0E90A3D13564725FF563772C5356E2C50AFED4301BBE029DEFB252B1598847FAB4136B69110942DE842A9186D391E8CB2AD210B1D9B9473676222F6EA1F445E24290B6F1845243B33250224C0F316E18C52180220C2549D093D9F3974980F95DA8F1A49E36D142A3957A1F7DE6E492578544D17C856BEEC0F40FAFBFB8140945D6B13AB23BE8D1ABDC3E4A92E051CD180C5F2FE288C96F831DD5F34CA679E618D160B21F1697870F8F3B3A7318D0A558C4EADF16D0A76079D148F7404AC163852513ECE66374A9F5A8BC4C87F36CB2AE52ADBC034DEAE51FD60DC071284F8CAC9346E6D60F97D6CFE41C605B2C4D8D0C8BA41DB0DB3A2BD01B037D8CA2E7C1F6B |
426 | 20180510102028 2 6 100 8191 2 E3FCBDCFD41A409C58BE083B6485A2D67E20931B1F469774BAE0F1AB2898B800032581B1C4FC71FE136087937A885AFB6FC9E582DD97B8DE3AD2AF861419D5F06278316DFA78BAE7EF099889F0E99575C7812E7240B67623E7877737013A7D5DB3638040083400E8F27600BAC0650D24220CA1B3C05FB7DD70469A201DBFF1308ECA1C7152A6016BB89BFB6C625715EE91A92EA1848F0B2491AA92187468D9E8442679D7F5F6B64BC9D5A3D4E9B58C59EEEB65F8D6B70A71099E1B420BC0FD750CB2F333C23C97966BE727A6B6D9AEC8C0EB2436E01770F03840BFEC9228BB6DD46CE27D5739E18429F464FFF6812B0F66A8B0024BE03294900B8D0BC3CA6785F8C418EFE7068B2CD190A54BB9F90E05885A5C85DC069495C2009F79DBFD7774D7D65B9831FDC295CE146F4EB91DC56ABBD0B64BEAF3C340E0BF123A115D12289D44B650FF8461734308F4701CF2C199676DB3B4804FCDBD6B08C5D4875073AD5C575CA0B64597472A5C23EB4277B52B1128F3B1AE363E36A2C2D6EF5FCE00EE1573A40AD5ACDCDADE3E2672979CF68E87530520B2CA2C1110CBE4B631F3ABE83CFFDB7D5ACDD6DCA5916E30B1771FE29C4F60163B62349B66C0EDDCE8502F7C49DD4089EA5AE31FFB220A88C8D232367B52FAB7644F02E7EC10378697213CF0D90DA83A9941C217C559F88DEC6587AD953C95F11C575F0EFA9CC0650955C733910F2F90C78AE367F67B0F496A100E0B018731404D2BAEC7420F8C2B1FB6612AF69ECF369F236DD0BFB0ACBAED4141B2A14591C6475FC5C3D4E9B6229ECF7E288C015D59A35DE67F633DC586609AB3AB85A02B99DDF1B6FA7D54D4B2DDB767CAAB797C9FB29594B80B5BAACF777666D0B35CE6EFD8E46270C4D715B74FEA64FE34FBF4332BB4E8477CA438645C24444417EA5769B507925FB4B8FC59E429F1EC593C397F71087A080B39A192B5147D04D9F30DC237764C810E519B74EE90F047D0829104B6BA1A01F1CC18C85BE79F52084FAD6D7BF3EDA36D63981D8B75676740DB1AA6E06AD0C1F6A3B665D2D9D0E363FCE37B581C682A5F554D820849CEE7066A7DB011EA7D916B4A45212CBBC7A56ADAD33D203B8A1EDA03064A34351916C243E65D45425974C1468A626B773B48962108203F02814F15640149BCC2325C40F2457F0618CAAFDE26162326F2F81E8C727FAFED1B43E3AC8752E9F4EDFF5B58BD316882B555E63278FEB00B61144703C060B6188F3528E176E9B2D5996579048B723EB678CD56FA979004270E9F88F235404C522ED076E9F287097F2F7600A2D4566D2F6EFB600A9854B61CDB4363040D4F30D96BB011EF4BB0E0F21192F72B106B4F38A79FA384978C3C2A9AB94534BE01C83927BC95A9C5E55E618D7C5D77A9FA39664EEF11B2D50F59396DAD7CDC23F17948585BD88342EED6ADD74BF3 | 426 | 20181017142420 2 6 100 8191 5 EA2361A4ABC2DDA42ADD74B38CE837D05B00192233F16571DAB16B15049BA7606BA9A6DC1588738A9949D68815E7F9DB7FEB2C81C1284F976E38376817186BB7725E05B3DA281A887F71DADA27911625597D376826592E156211FF30844F8A1C47DF9320AE8E9C9171181EE3F7D5EB1B56F79D7DCC39FC5C20A23EF716809E2035466B7E7A43DF588D73637DC89192E5EC392C917AD498C66E229EDBEFAEBD449773973E04F812B55466A3F2E321FA8A3AD1B6AF8A95178F4EF001004EAA4D83EC362F1B966137C811AE2B52B5815ED28F7CEB16DE55E7C64E5D34BE122EED25B5E9DAC04AE9EBB4C0EEBA6D447B435262EDF18CD616E396C80DCAF8547DED8A9817BB70FEDEA734E5A7005F8C7C2CB53366827824E2666DE1F1AC109A41576BC37B3BD1536D79CAB6F6BD7A2D9863EF0F6FEA547A990EF5DF931632F203682D34462025E053CEE1D25EEB0508CBE0A50F7D687A5AE6038F3BE219992B7796E1181D06AA9072D5419E50046F40D5985CB8EBE8C5232EE75AB3C03F113C5EC4669C072D5C514EFA0778062DDD9FF90BB75DDBA4AE2E2100559A35273D202E93B17FFABBC976DB516DA4FC9433322FE6517E5B39021A4564AFB6E1A15B1EB5981B952A8161C688C461CD1CC8E67882CAAFD6FDFA2BA7EBFC40D16D39F4DA16879D230375833741E1B3C49D1630E10C5E6CD1C11AEB2C356C3A0A4EAD805B9330199AC8BC1BB1ECF2E3F84839B5A444FB06959505AF97019C695D6A14990A1E2C678A6EC187C90F6989DA0E977767F2110D8C9289C6E85CC87C7141B11B284A4DCE2ACA6414F5AEB560E11E44699973E4BC4B28526C2D1C68B81A51ACC9E490B6F28129100FC3888C85ABB9E0B3808F00753F76C908E8E71B08EDD87C9359F716324183EE3D89389839F0E741246400D1BEC8F5592F4D66ED0205A90F6A153D3D0751662BB95FA3CBF1543D35E2B9E02497FA24173FC8387B36EE320007E4DC8D3400DC69D361FE071D1C015F87F4FD8E942E5D92D7197279F02513839ABC5D11098DF80A4D3817B7AFC4F7A93BA8469D89DB503284B6D2B7E90F2B52ED2E6F65F0E90A3D13564725FF563772C5356E2C50AFED4301BBE029DEFB252B1598847FAB4136B69110942DE842A9186D391E8CB2AD210B1D9B9473676222F6EA1F445E24290B6F1845243B33250224C0F316E18C52180220C2549D093D9F3974980F95DA8F1A49E36D142A3957A1F7DE6E492578544D17C856BEEC0F40FAFBFB8140945D6B13AB23BE8D1ABDC3E4A92E051CD180C5F2FE288C96F831DD5F34CA679E618D160B21F1697870F8F3B3A7318D0A558C4EADF16D0A76079D148F7404AC163852513ECE66374A9F5A8BC4C87F36CB2AE52ADBC034DEAE51FD60DC071284F8CAC9346E6D60F97D6CFE41C605B2C4D8D0C8BA41DB0DB3A2BD01B037D8CA32237C3F |
427 | 20180510111207 2 6 100 8191 2 E3FCBDCFD41A409C58BE083B6485A2D67E20931B1F469774BAE0F1AB2898B800032581B1C4FC71FE136087937A885AFB6FC9E582DD97B8DE3AD2AF861419D5F06278316DFA78BAE7EF099889F0E99575C7812E7240B67623E7877737013A7D5DB3638040083400E8F27600BAC0650D24220CA1B3C05FB7DD70469A201DBFF1308ECA1C7152A6016BB89BFB6C625715EE91A92EA1848F0B2491AA92187468D9E8442679D7F5F6B64BC9D5A3D4E9B58C59EEEB65F8D6B70A71099E1B420BC0FD750CB2F333C23C97966BE727A6B6D9AEC8C0EB2436E01770F03840BFEC9228BB6DD46CE27D5739E18429F464FFF6812B0F66A8B0024BE03294900B8D0BC3CA6785F8C418EFE7068B2CD190A54BB9F90E05885A5C85DC069495C2009F79DBFD7774D7D65B9831FDC295CE146F4EB91DC56ABBD0B64BEAF3C340E0BF123A115D12289D44B650FF8461734308F4701CF2C199676DB3B4804FCDBD6B08C5D4875073AD5C575CA0B64597472A5C23EB4277B52B1128F3B1AE363E36A2C2D6EF5FCE00EE1573A40AD5ACDCDADE3E2672979CF68E87530520B2CA2C1110CBE4B631F3ABE83CFFDB7D5ACDD6DCA5916E30B1771FE29C4F60163B62349B66C0EDDCE8502F7C49DD4089EA5AE31FFB220A88C8D232367B52FAB7644F02E7EC10378697213CF0D90DA83A9941C217C559F88DEC6587AD953C95F11C575F0EFA9CC0650955C733910F2F90C78AE367F67B0F496A100E0B018731404D2BAEC7420F8C2B1FB6612AF69ECF369F236DD0BFB0ACBAED4141B2A14591C6475FC5C3D4E9B6229ECF7E288C015D59A35DE67F633DC586609AB3AB85A02B99DDF1B6FA7D54D4B2DDB767CAAB797C9FB29594B80B5BAACF777666D0B35CE6EFD8E46270C4D715B74FEA64FE34FBF4332BB4E8477CA438645C24444417EA5769B507925FB4B8FC59E429F1EC593C397F71087A080B39A192B5147D04D9F30DC237764C810E519B74EE90F047D0829104B6BA1A01F1CC18C85BE79F52084FAD6D7BF3EDA36D63981D8B75676740DB1AA6E06AD0C1F6A3B665D2D9D0E363FCE37B581C682A5F554D820849CEE7066A7DB011EA7D916B4A45212CBBC7A56ADAD33D203B8A1EDA03064A34351916C243E65D45425974C1468A626B773B48962108203F02814F15640149BCC2325C40F2457F0618CAAFDE26162326F2F81E8C727FAFED1B43E3AC8752E9F4EDFF5B58BD316882B555E63278FEB00B61144703C060B6188F3528E176E9B2D5996579048B723EB678CD56FA979004270E9F88F235404C522ED076E9F287097F2F7600A2D4566D2F6EFB600A9854B61CDB4363040D4F30D96BB011EF4BB0E0F21192F72B106B4F38A79FA384978C3C2A9AB94534BE01C83927BC95A9C5E55E618D7C5D77A9FA39664EEF11B2D50F59396DAD7CDC23F17948585BD88342EED6AE56234B | 427 | 20181017185818 2 6 100 8191 2 EA2361A4ABC2DDA42ADD74B38CE837D05B00192233F16571DAB16B15049BA7606BA9A6DC1588738A9949D68815E7F9DB7FEB2C81C1284F976E38376817186BB7725E05B3DA281A887F71DADA27911625597D376826592E156211FF30844F8A1C47DF9320AE8E9C9171181EE3F7D5EB1B56F79D7DCC39FC5C20A23EF716809E2035466B7E7A43DF588D73637DC89192E5EC392C917AD498C66E229EDBEFAEBD449773973E04F812B55466A3F2E321FA8A3AD1B6AF8A95178F4EF001004EAA4D83EC362F1B966137C811AE2B52B5815ED28F7CEB16DE55E7C64E5D34BE122EED25B5E9DAC04AE9EBB4C0EEBA6D447B435262EDF18CD616E396C80DCAF8547DED8A9817BB70FEDEA734E5A7005F8C7C2CB53366827824E2666DE1F1AC109A41576BC37B3BD1536D79CAB6F6BD7A2D9863EF0F6FEA547A990EF5DF931632F203682D34462025E053CEE1D25EEB0508CBE0A50F7D687A5AE6038F3BE219992B7796E1181D06AA9072D5419E50046F40D5985CB8EBE8C5232EE75AB3C03F113C5EC4669C072D5C514EFA0778062DDD9FF90BB75DDBA4AE2E2100559A35273D202E93B17FFABBC976DB516DA4FC9433322FE6517E5B39021A4564AFB6E1A15B1EB5981B952A8161C688C461CD1CC8E67882CAAFD6FDFA2BA7EBFC40D16D39F4DA16879D230375833741E1B3C49D1630E10C5E6CD1C11AEB2C356C3A0A4EAD805B9330199AC8BC1BB1ECF2E3F84839B5A444FB06959505AF97019C695D6A14990A1E2C678A6EC187C90F6989DA0E977767F2110D8C9289C6E85CC87C7141B11B284A4DCE2ACA6414F5AEB560E11E44699973E4BC4B28526C2D1C68B81A51ACC9E490B6F28129100FC3888C85ABB9E0B3808F00753F76C908E8E71B08EDD87C9359F716324183EE3D89389839F0E741246400D1BEC8F5592F4D66ED0205A90F6A153D3D0751662BB95FA3CBF1543D35E2B9E02497FA24173FC8387B36EE320007E4DC8D3400DC69D361FE071D1C015F87F4FD8E942E5D92D7197279F02513839ABC5D11098DF80A4D3817B7AFC4F7A93BA8469D89DB503284B6D2B7E90F2B52ED2E6F65F0E90A3D13564725FF563772C5356E2C50AFED4301BBE029DEFB252B1598847FAB4136B69110942DE842A9186D391E8CB2AD210B1D9B9473676222F6EA1F445E24290B6F1845243B33250224C0F316E18C52180220C2549D093D9F3974980F95DA8F1A49E36D142A3957A1F7DE6E492578544D17C856BEEC0F40FAFBFB8140945D6B13AB23BE8D1ABDC3E4A92E051CD180C5F2FE288C96F831DD5F34CA679E618D160B21F1697870F8F3B3A7318D0A558C4EADF16D0A76079D148F7404AC163852513ECE66374A9F5A8BC4C87F36CB2AE52ADBC034DEAE51FD60DC071284F8CAC9346E6D60F97D6CFE41C605B2C4D8D0C8BA41DB0DB3A2BD01B037D8CA353F763B |
428 | 20180510122304 2 6 100 8191 5 E3FCBDCFD41A409C58BE083B6485A2D67E20931B1F469774BAE0F1AB2898B800032581B1C4FC71FE136087937A885AFB6FC9E582DD97B8DE3AD2AF861419D5F06278316DFA78BAE7EF099889F0E99575C7812E7240B67623E7877737013A7D5DB3638040083400E8F27600BAC0650D24220CA1B3C05FB7DD70469A201DBFF1308ECA1C7152A6016BB89BFB6C625715EE91A92EA1848F0B2491AA92187468D9E8442679D7F5F6B64BC9D5A3D4E9B58C59EEEB65F8D6B70A71099E1B420BC0FD750CB2F333C23C97966BE727A6B6D9AEC8C0EB2436E01770F03840BFEC9228BB6DD46CE27D5739E18429F464FFF6812B0F66A8B0024BE03294900B8D0BC3CA6785F8C418EFE7068B2CD190A54BB9F90E05885A5C85DC069495C2009F79DBFD7774D7D65B9831FDC295CE146F4EB91DC56ABBD0B64BEAF3C340E0BF123A115D12289D44B650FF8461734308F4701CF2C199676DB3B4804FCDBD6B08C5D4875073AD5C575CA0B64597472A5C23EB4277B52B1128F3B1AE363E36A2C2D6EF5FCE00EE1573A40AD5ACDCDADE3E2672979CF68E87530520B2CA2C1110CBE4B631F3ABE83CFFDB7D5ACDD6DCA5916E30B1771FE29C4F60163B62349B66C0EDDCE8502F7C49DD4089EA5AE31FFB220A88C8D232367B52FAB7644F02E7EC10378697213CF0D90DA83A9941C217C559F88DEC6587AD953C95F11C575F0EFA9CC0650955C733910F2F90C78AE367F67B0F496A100E0B018731404D2BAEC7420F8C2B1FB6612AF69ECF369F236DD0BFB0ACBAED4141B2A14591C6475FC5C3D4E9B6229ECF7E288C015D59A35DE67F633DC586609AB3AB85A02B99DDF1B6FA7D54D4B2DDB767CAAB797C9FB29594B80B5BAACF777666D0B35CE6EFD8E46270C4D715B74FEA64FE34FBF4332BB4E8477CA438645C24444417EA5769B507925FB4B8FC59E429F1EC593C397F71087A080B39A192B5147D04D9F30DC237764C810E519B74EE90F047D0829104B6BA1A01F1CC18C85BE79F52084FAD6D7BF3EDA36D63981D8B75676740DB1AA6E06AD0C1F6A3B665D2D9D0E363FCE37B581C682A5F554D820849CEE7066A7DB011EA7D916B4A45212CBBC7A56ADAD33D203B8A1EDA03064A34351916C243E65D45425974C1468A626B773B48962108203F02814F15640149BCC2325C40F2457F0618CAAFDE26162326F2F81E8C727FAFED1B43E3AC8752E9F4EDFF5B58BD316882B555E63278FEB00B61144703C060B6188F3528E176E9B2D5996579048B723EB678CD56FA979004270E9F88F235404C522ED076E9F287097F2F7600A2D4566D2F6EFB600A9854B61CDB4363040D4F30D96BB011EF4BB0E0F21192F72B106B4F38A79FA384978C3C2A9AB94534BE01C83927BC95A9C5E55E618D7C5D77A9FA39664EEF11B2D50F59396DAD7CDC23F17948585BD88342EED6AF06789F | 428 | 20181017191239 2 6 100 8191 2 EA2361A4ABC2DDA42ADD74B38CE837D05B00192233F16571DAB16B15049BA7606BA9A6DC1588738A9949D68815E7F9DB7FEB2C81C1284F976E38376817186BB7725E05B3DA281A887F71DADA27911625597D376826592E156211FF30844F8A1C47DF9320AE8E9C9171181EE3F7D5EB1B56F79D7DCC39FC5C20A23EF716809E2035466B7E7A43DF588D73637DC89192E5EC392C917AD498C66E229EDBEFAEBD449773973E04F812B55466A3F2E321FA8A3AD1B6AF8A95178F4EF001004EAA4D83EC362F1B966137C811AE2B52B5815ED28F7CEB16DE55E7C64E5D34BE122EED25B5E9DAC04AE9EBB4C0EEBA6D447B435262EDF18CD616E396C80DCAF8547DED8A9817BB70FEDEA734E5A7005F8C7C2CB53366827824E2666DE1F1AC109A41576BC37B3BD1536D79CAB6F6BD7A2D9863EF0F6FEA547A990EF5DF931632F203682D34462025E053CEE1D25EEB0508CBE0A50F7D687A5AE6038F3BE219992B7796E1181D06AA9072D5419E50046F40D5985CB8EBE8C5232EE75AB3C03F113C5EC4669C072D5C514EFA0778062DDD9FF90BB75DDBA4AE2E2100559A35273D202E93B17FFABBC976DB516DA4FC9433322FE6517E5B39021A4564AFB6E1A15B1EB5981B952A8161C688C461CD1CC8E67882CAAFD6FDFA2BA7EBFC40D16D39F4DA16879D230375833741E1B3C49D1630E10C5E6CD1C11AEB2C356C3A0A4EAD805B9330199AC8BC1BB1ECF2E3F84839B5A444FB06959505AF97019C695D6A14990A1E2C678A6EC187C90F6989DA0E977767F2110D8C9289C6E85CC87C7141B11B284A4DCE2ACA6414F5AEB560E11E44699973E4BC4B28526C2D1C68B81A51ACC9E490B6F28129100FC3888C85ABB9E0B3808F00753F76C908E8E71B08EDD87C9359F716324183EE3D89389839F0E741246400D1BEC8F5592F4D66ED0205A90F6A153D3D0751662BB95FA3CBF1543D35E2B9E02497FA24173FC8387B36EE320007E4DC8D3400DC69D361FE071D1C015F87F4FD8E942E5D92D7197279F02513839ABC5D11098DF80A4D3817B7AFC4F7A93BA8469D89DB503284B6D2B7E90F2B52ED2E6F65F0E90A3D13564725FF563772C5356E2C50AFED4301BBE029DEFB252B1598847FAB4136B69110942DE842A9186D391E8CB2AD210B1D9B9473676222F6EA1F445E24290B6F1845243B33250224C0F316E18C52180220C2549D093D9F3974980F95DA8F1A49E36D142A3957A1F7DE6E492578544D17C856BEEC0F40FAFBFB8140945D6B13AB23BE8D1ABDC3E4A92E051CD180C5F2FE288C96F831DD5F34CA679E618D160B21F1697870F8F3B3A7318D0A558C4EADF16D0A76079D148F7404AC163852513ECE66374A9F5A8BC4C87F36CB2AE52ADBC034DEAE51FD60DC071284F8CAC9346E6D60F97D6CFE41C605B2C4D8D0C8BA41DB0DB3A2BD01B037D8CA355F350B |
429 | 20181018142458 2 6 100 8191 5 EA2361A4ABC2DDA42ADD74B38CE837D05B00192233F16571DAB16B15049BA7606BA9A6DC1588738A9949D68815E7F9DB7FEB2C81C1284F976E38376817186BB7725E05B3DA281A887F71DADA27911625597D376826592E156211FF30844F8A1C47DF9320AE8E9C9171181EE3F7D5EB1B56F79D7DCC39FC5C20A23EF716809E2035466B7E7A43DF588D73637DC89192E5EC392C917AD498C66E229EDBEFAEBD449773973E04F812B55466A3F2E321FA8A3AD1B6AF8A95178F4EF001004EAA4D83EC362F1B966137C811AE2B52B5815ED28F7CEB16DE55E7C64E5D34BE122EED25B5E9DAC04AE9EBB4C0EEBA6D447B435262EDF18CD616E396C80DCAF8547DED8A9817BB70FEDEA734E5A7005F8C7C2CB53366827824E2666DE1F1AC109A41576BC37B3BD1536D79CAB6F6BD7A2D9863EF0F6FEA547A990EF5DF931632F203682D34462025E053CEE1D25EEB0508CBE0A50F7D687A5AE6038F3BE219992B7796E1181D06AA9072D5419E50046F40D5985CB8EBE8C5232EE75AB3C03F113C5EC4669C072D5C514EFA0778062DDD9FF90BB75DDBA4AE2E2100559A35273D202E93B17FFABBC976DB516DA4FC9433322FE6517E5B39021A4564AFB6E1A15B1EB5981B952A8161C688C461CD1CC8E67882CAAFD6FDFA2BA7EBFC40D16D39F4DA16879D230375833741E1B3C49D1630E10C5E6CD1C11AEB2C356C3A0A4EAD805B9330199AC8BC1BB1ECF2E3F84839B5A444FB06959505AF97019C695D6A14990A1E2C678A6EC187C90F6989DA0E977767F2110D8C9289C6E85CC87C7141B11B284A4DCE2ACA6414F5AEB560E11E44699973E4BC4B28526C2D1C68B81A51ACC9E490B6F28129100FC3888C85ABB9E0B3808F00753F76C908E8E71B08EDD87C9359F716324183EE3D89389839F0E741246400D1BEC8F5592F4D66ED0205A90F6A153D3D0751662BB95FA3CBF1543D35E2B9E02497FA24173FC8387B36EE320007E4DC8D3400DC69D361FE071D1C015F87F4FD8E942E5D92D7197279F02513839ABC5D11098DF80A4D3817B7AFC4F7A93BA8469D89DB503284B6D2B7E90F2B52ED2E6F65F0E90A3D13564725FF563772C5356E2C50AFED4301BBE029DEFB252B1598847FAB4136B69110942DE842A9186D391E8CB2AD210B1D9B9473676222F6EA1F445E24290B6F1845243B33250224C0F316E18C52180220C2549D093D9F3974980F95DA8F1A49E36D142A3957A1F7DE6E492578544D17C856BEEC0F40FAFBFB8140945D6B13AB23BE8D1ABDC3E4A92E051CD180C5F2FE288C96F831DD5F34CA679E618D160B21F1697870F8F3B3A7318D0A558C4EADF16D0A76079D148F7404AC163852513ECE66374A9F5A8BC4C87F36CB2AE52ADBC034DEAE51FD60DC071284F8CAC9346E6D60F97D6CFE41C605B2C4D8D0C8BA41DB0DB3A2BD01B037D8CA4281917F | ||
430 | 20181018172424 2 6 100 8191 2 EA2361A4ABC2DDA42ADD74B38CE837D05B00192233F16571DAB16B15049BA7606BA9A6DC1588738A9949D68815E7F9DB7FEB2C81C1284F976E38376817186BB7725E05B3DA281A887F71DADA27911625597D376826592E156211FF30844F8A1C47DF9320AE8E9C9171181EE3F7D5EB1B56F79D7DCC39FC5C20A23EF716809E2035466B7E7A43DF588D73637DC89192E5EC392C917AD498C66E229EDBEFAEBD449773973E04F812B55466A3F2E321FA8A3AD1B6AF8A95178F4EF001004EAA4D83EC362F1B966137C811AE2B52B5815ED28F7CEB16DE55E7C64E5D34BE122EED25B5E9DAC04AE9EBB4C0EEBA6D447B435262EDF18CD616E396C80DCAF8547DED8A9817BB70FEDEA734E5A7005F8C7C2CB53366827824E2666DE1F1AC109A41576BC37B3BD1536D79CAB6F6BD7A2D9863EF0F6FEA547A990EF5DF931632F203682D34462025E053CEE1D25EEB0508CBE0A50F7D687A5AE6038F3BE219992B7796E1181D06AA9072D5419E50046F40D5985CB8EBE8C5232EE75AB3C03F113C5EC4669C072D5C514EFA0778062DDD9FF90BB75DDBA4AE2E2100559A35273D202E93B17FFABBC976DB516DA4FC9433322FE6517E5B39021A4564AFB6E1A15B1EB5981B952A8161C688C461CD1CC8E67882CAAFD6FDFA2BA7EBFC40D16D39F4DA16879D230375833741E1B3C49D1630E10C5E6CD1C11AEB2C356C3A0A4EAD805B9330199AC8BC1BB1ECF2E3F84839B5A444FB06959505AF97019C695D6A14990A1E2C678A6EC187C90F6989DA0E977767F2110D8C9289C6E85CC87C7141B11B284A4DCE2ACA6414F5AEB560E11E44699973E4BC4B28526C2D1C68B81A51ACC9E490B6F28129100FC3888C85ABB9E0B3808F00753F76C908E8E71B08EDD87C9359F716324183EE3D89389839F0E741246400D1BEC8F5592F4D66ED0205A90F6A153D3D0751662BB95FA3CBF1543D35E2B9E02497FA24173FC8387B36EE320007E4DC8D3400DC69D361FE071D1C015F87F4FD8E942E5D92D7197279F02513839ABC5D11098DF80A4D3817B7AFC4F7A93BA8469D89DB503284B6D2B7E90F2B52ED2E6F65F0E90A3D13564725FF563772C5356E2C50AFED4301BBE029DEFB252B1598847FAB4136B69110942DE842A9186D391E8CB2AD210B1D9B9473676222F6EA1F445E24290B6F1845243B33250224C0F316E18C52180220C2549D093D9F3974980F95DA8F1A49E36D142A3957A1F7DE6E492578544D17C856BEEC0F40FAFBFB8140945D6B13AB23BE8D1ABDC3E4A92E051CD180C5F2FE288C96F831DD5F34CA679E618D160B21F1697870F8F3B3A7318D0A558C4EADF16D0A76079D148F7404AC163852513ECE66374A9F5A8BC4C87F36CB2AE52ADBC034DEAE51FD60DC071284F8CAC9346E6D60F97D6CFE41C605B2C4D8D0C8BA41DB0DB3A2BD01B037D8CA44764C13 | ||
431 | 20181019021923 2 6 100 8191 2 EA2361A4ABC2DDA42ADD74B38CE837D05B00192233F16571DAB16B15049BA7606BA9A6DC1588738A9949D68815E7F9DB7FEB2C81C1284F976E38376817186BB7725E05B3DA281A887F71DADA27911625597D376826592E156211FF30844F8A1C47DF9320AE8E9C9171181EE3F7D5EB1B56F79D7DCC39FC5C20A23EF716809E2035466B7E7A43DF588D73637DC89192E5EC392C917AD498C66E229EDBEFAEBD449773973E04F812B55466A3F2E321FA8A3AD1B6AF8A95178F4EF001004EAA4D83EC362F1B966137C811AE2B52B5815ED28F7CEB16DE55E7C64E5D34BE122EED25B5E9DAC04AE9EBB4C0EEBA6D447B435262EDF18CD616E396C80DCAF8547DED8A9817BB70FEDEA734E5A7005F8C7C2CB53366827824E2666DE1F1AC109A41576BC37B3BD1536D79CAB6F6BD7A2D9863EF0F6FEA547A990EF5DF931632F203682D34462025E053CEE1D25EEB0508CBE0A50F7D687A5AE6038F3BE219992B7796E1181D06AA9072D5419E50046F40D5985CB8EBE8C5232EE75AB3C03F113C5EC4669C072D5C514EFA0778062DDD9FF90BB75DDBA4AE2E2100559A35273D202E93B17FFABBC976DB516DA4FC9433322FE6517E5B39021A4564AFB6E1A15B1EB5981B952A8161C688C461CD1CC8E67882CAAFD6FDFA2BA7EBFC40D16D39F4DA16879D230375833741E1B3C49D1630E10C5E6CD1C11AEB2C356C3A0A4EAD805B9330199AC8BC1BB1ECF2E3F84839B5A444FB06959505AF97019C695D6A14990A1E2C678A6EC187C90F6989DA0E977767F2110D8C9289C6E85CC87C7141B11B284A4DCE2ACA6414F5AEB560E11E44699973E4BC4B28526C2D1C68B81A51ACC9E490B6F28129100FC3888C85ABB9E0B3808F00753F76C908E8E71B08EDD87C9359F716324183EE3D89389839F0E741246400D1BEC8F5592F4D66ED0205A90F6A153D3D0751662BB95FA3CBF1543D35E2B9E02497FA24173FC8387B36EE320007E4DC8D3400DC69D361FE071D1C015F87F4FD8E942E5D92D7197279F02513839ABC5D11098DF80A4D3817B7AFC4F7A93BA8469D89DB503284B6D2B7E90F2B52ED2E6F65F0E90A3D13564725FF563772C5356E2C50AFED4301BBE029DEFB252B1598847FAB4136B69110942DE842A9186D391E8CB2AD210B1D9B9473676222F6EA1F445E24290B6F1845243B33250224C0F316E18C52180220C2549D093D9F3974980F95DA8F1A49E36D142A3957A1F7DE6E492578544D17C856BEEC0F40FAFBFB8140945D6B13AB23BE8D1ABDC3E4A92E051CD180C5F2FE288C96F831DD5F34CA679E618D160B21F1697870F8F3B3A7318D0A558C4EADF16D0A76079D148F7404AC163852513ECE66374A9F5A8BC4C87F36CB2AE52ADBC034DEAE51FD60DC071284F8CAC9346E6D60F97D6CFE41C605B2C4D8D0C8BA41DB0DB3A2BD01B037D8CA4A5411D3 | ||
432 | 20181019034359 2 6 100 8191 2 EA2361A4ABC2DDA42ADD74B38CE837D05B00192233F16571DAB16B15049BA7606BA9A6DC1588738A9949D68815E7F9DB7FEB2C81C1284F976E38376817186BB7725E05B3DA281A887F71DADA27911625597D376826592E156211FF30844F8A1C47DF9320AE8E9C9171181EE3F7D5EB1B56F79D7DCC39FC5C20A23EF716809E2035466B7E7A43DF588D73637DC89192E5EC392C917AD498C66E229EDBEFAEBD449773973E04F812B55466A3F2E321FA8A3AD1B6AF8A95178F4EF001004EAA4D83EC362F1B966137C811AE2B52B5815ED28F7CEB16DE55E7C64E5D34BE122EED25B5E9DAC04AE9EBB4C0EEBA6D447B435262EDF18CD616E396C80DCAF8547DED8A9817BB70FEDEA734E5A7005F8C7C2CB53366827824E2666DE1F1AC109A41576BC37B3BD1536D79CAB6F6BD7A2D9863EF0F6FEA547A990EF5DF931632F203682D34462025E053CEE1D25EEB0508CBE0A50F7D687A5AE6038F3BE219992B7796E1181D06AA9072D5419E50046F40D5985CB8EBE8C5232EE75AB3C03F113C5EC4669C072D5C514EFA0778062DDD9FF90BB75DDBA4AE2E2100559A35273D202E93B17FFABBC976DB516DA4FC9433322FE6517E5B39021A4564AFB6E1A15B1EB5981B952A8161C688C461CD1CC8E67882CAAFD6FDFA2BA7EBFC40D16D39F4DA16879D230375833741E1B3C49D1630E10C5E6CD1C11AEB2C356C3A0A4EAD805B9330199AC8BC1BB1ECF2E3F84839B5A444FB06959505AF97019C695D6A14990A1E2C678A6EC187C90F6989DA0E977767F2110D8C9289C6E85CC87C7141B11B284A4DCE2ACA6414F5AEB560E11E44699973E4BC4B28526C2D1C68B81A51ACC9E490B6F28129100FC3888C85ABB9E0B3808F00753F76C908E8E71B08EDD87C9359F716324183EE3D89389839F0E741246400D1BEC8F5592F4D66ED0205A90F6A153D3D0751662BB95FA3CBF1543D35E2B9E02497FA24173FC8387B36EE320007E4DC8D3400DC69D361FE071D1C015F87F4FD8E942E5D92D7197279F02513839ABC5D11098DF80A4D3817B7AFC4F7A93BA8469D89DB503284B6D2B7E90F2B52ED2E6F65F0E90A3D13564725FF563772C5356E2C50AFED4301BBE029DEFB252B1598847FAB4136B69110942DE842A9186D391E8CB2AD210B1D9B9473676222F6EA1F445E24290B6F1845243B33250224C0F316E18C52180220C2549D093D9F3974980F95DA8F1A49E36D142A3957A1F7DE6E492578544D17C856BEEC0F40FAFBFB8140945D6B13AB23BE8D1ABDC3E4A92E051CD180C5F2FE288C96F831DD5F34CA679E618D160B21F1697870F8F3B3A7318D0A558C4EADF16D0A76079D148F7404AC163852513ECE66374A9F5A8BC4C87F36CB2AE52ADBC034DEAE51FD60DC071284F8CAC9346E6D60F97D6CFE41C605B2C4D8D0C8BA41DB0DB3A2BD01B037D8CA4B386FC3 | ||
433 | 20181019143855 2 6 100 8191 5 EA2361A4ABC2DDA42ADD74B38CE837D05B00192233F16571DAB16B15049BA7606BA9A6DC1588738A9949D68815E7F9DB7FEB2C81C1284F976E38376817186BB7725E05B3DA281A887F71DADA27911625597D376826592E156211FF30844F8A1C47DF9320AE8E9C9171181EE3F7D5EB1B56F79D7DCC39FC5C20A23EF716809E2035466B7E7A43DF588D73637DC89192E5EC392C917AD498C66E229EDBEFAEBD449773973E04F812B55466A3F2E321FA8A3AD1B6AF8A95178F4EF001004EAA4D83EC362F1B966137C811AE2B52B5815ED28F7CEB16DE55E7C64E5D34BE122EED25B5E9DAC04AE9EBB4C0EEBA6D447B435262EDF18CD616E396C80DCAF8547DED8A9817BB70FEDEA734E5A7005F8C7C2CB53366827824E2666DE1F1AC109A41576BC37B3BD1536D79CAB6F6BD7A2D9863EF0F6FEA547A990EF5DF931632F203682D34462025E053CEE1D25EEB0508CBE0A50F7D687A5AE6038F3BE219992B7796E1181D06AA9072D5419E50046F40D5985CB8EBE8C5232EE75AB3C03F113C5EC4669C072D5C514EFA0778062DDD9FF90BB75DDBA4AE2E2100559A35273D202E93B17FFABBC976DB516DA4FC9433322FE6517E5B39021A4564AFB6E1A15B1EB5981B952A8161C688C461CD1CC8E67882CAAFD6FDFA2BA7EBFC40D16D39F4DA16879D230375833741E1B3C49D1630E10C5E6CD1C11AEB2C356C3A0A4EAD805B9330199AC8BC1BB1ECF2E3F84839B5A444FB06959505AF97019C695D6A14990A1E2C678A6EC187C90F6989DA0E977767F2110D8C9289C6E85CC87C7141B11B284A4DCE2ACA6414F5AEB560E11E44699973E4BC4B28526C2D1C68B81A51ACC9E490B6F28129100FC3888C85ABB9E0B3808F00753F76C908E8E71B08EDD87C9359F716324183EE3D89389839F0E741246400D1BEC8F5592F4D66ED0205A90F6A153D3D0751662BB95FA3CBF1543D35E2B9E02497FA24173FC8387B36EE320007E4DC8D3400DC69D361FE071D1C015F87F4FD8E942E5D92D7197279F02513839ABC5D11098DF80A4D3817B7AFC4F7A93BA8469D89DB503284B6D2B7E90F2B52ED2E6F65F0E90A3D13564725FF563772C5356E2C50AFED4301BBE029DEFB252B1598847FAB4136B69110942DE842A9186D391E8CB2AD210B1D9B9473676222F6EA1F445E24290B6F1845243B33250224C0F316E18C52180220C2549D093D9F3974980F95DA8F1A49E36D142A3957A1F7DE6E492578544D17C856BEEC0F40FAFBFB8140945D6B13AB23BE8D1ABDC3E4A92E051CD180C5F2FE288C96F831DD5F34CA679E618D160B21F1697870F8F3B3A7318D0A558C4EADF16D0A76079D148F7404AC163852513ECE66374A9F5A8BC4C87F36CB2AE52ADBC034DEAE51FD60DC071284F8CAC9346E6D60F97D6CFE41C605B2C4D8D0C8BA41DB0DB3A2BD01B037D8CA5262DD0F | ||
434 | 20181019175117 2 6 100 8191 2 EA2361A4ABC2DDA42ADD74B38CE837D05B00192233F16571DAB16B15049BA7606BA9A6DC1588738A9949D68815E7F9DB7FEB2C81C1284F976E38376817186BB7725E05B3DA281A887F71DADA27911625597D376826592E156211FF30844F8A1C47DF9320AE8E9C9171181EE3F7D5EB1B56F79D7DCC39FC5C20A23EF716809E2035466B7E7A43DF588D73637DC89192E5EC392C917AD498C66E229EDBEFAEBD449773973E04F812B55466A3F2E321FA8A3AD1B6AF8A95178F4EF001004EAA4D83EC362F1B966137C811AE2B52B5815ED28F7CEB16DE55E7C64E5D34BE122EED25B5E9DAC04AE9EBB4C0EEBA6D447B435262EDF18CD616E396C80DCAF8547DED8A9817BB70FEDEA734E5A7005F8C7C2CB53366827824E2666DE1F1AC109A41576BC37B3BD1536D79CAB6F6BD7A2D9863EF0F6FEA547A990EF5DF931632F203682D34462025E053CEE1D25EEB0508CBE0A50F7D687A5AE6038F3BE219992B7796E1181D06AA9072D5419E50046F40D5985CB8EBE8C5232EE75AB3C03F113C5EC4669C072D5C514EFA0778062DDD9FF90BB75DDBA4AE2E2100559A35273D202E93B17FFABBC976DB516DA4FC9433322FE6517E5B39021A4564AFB6E1A15B1EB5981B952A8161C688C461CD1CC8E67882CAAFD6FDFA2BA7EBFC40D16D39F4DA16879D230375833741E1B3C49D1630E10C5E6CD1C11AEB2C356C3A0A4EAD805B9330199AC8BC1BB1ECF2E3F84839B5A444FB06959505AF97019C695D6A14990A1E2C678A6EC187C90F6989DA0E977767F2110D8C9289C6E85CC87C7141B11B284A4DCE2ACA6414F5AEB560E11E44699973E4BC4B28526C2D1C68B81A51ACC9E490B6F28129100FC3888C85ABB9E0B3808F00753F76C908E8E71B08EDD87C9359F716324183EE3D89389839F0E741246400D1BEC8F5592F4D66ED0205A90F6A153D3D0751662BB95FA3CBF1543D35E2B9E02497FA24173FC8387B36EE320007E4DC8D3400DC69D361FE071D1C015F87F4FD8E942E5D92D7197279F02513839ABC5D11098DF80A4D3817B7AFC4F7A93BA8469D89DB503284B6D2B7E90F2B52ED2E6F65F0E90A3D13564725FF563772C5356E2C50AFED4301BBE029DEFB252B1598847FAB4136B69110942DE842A9186D391E8CB2AD210B1D9B9473676222F6EA1F445E24290B6F1845243B33250224C0F316E18C52180220C2549D093D9F3974980F95DA8F1A49E36D142A3957A1F7DE6E492578544D17C856BEEC0F40FAFBFB8140945D6B13AB23BE8D1ABDC3E4A92E051CD180C5F2FE288C96F831DD5F34CA679E618D160B21F1697870F8F3B3A7318D0A558C4EADF16D0A76079D148F7404AC163852513ECE66374A9F5A8BC4C87F36CB2AE52ADBC034DEAE51FD60DC071284F8CAC9346E6D60F97D6CFE41C605B2C4D8D0C8BA41DB0DB3A2BD01B037D8CA547B23C3 | ||
435 | 20181019180938 2 6 100 8191 2 EA2361A4ABC2DDA42ADD74B38CE837D05B00192233F16571DAB16B15049BA7606BA9A6DC1588738A9949D68815E7F9DB7FEB2C81C1284F976E38376817186BB7725E05B3DA281A887F71DADA27911625597D376826592E156211FF30844F8A1C47DF9320AE8E9C9171181EE3F7D5EB1B56F79D7DCC39FC5C20A23EF716809E2035466B7E7A43DF588D73637DC89192E5EC392C917AD498C66E229EDBEFAEBD449773973E04F812B55466A3F2E321FA8A3AD1B6AF8A95178F4EF001004EAA4D83EC362F1B966137C811AE2B52B5815ED28F7CEB16DE55E7C64E5D34BE122EED25B5E9DAC04AE9EBB4C0EEBA6D447B435262EDF18CD616E396C80DCAF8547DED8A9817BB70FEDEA734E5A7005F8C7C2CB53366827824E2666DE1F1AC109A41576BC37B3BD1536D79CAB6F6BD7A2D9863EF0F6FEA547A990EF5DF931632F203682D34462025E053CEE1D25EEB0508CBE0A50F7D687A5AE6038F3BE219992B7796E1181D06AA9072D5419E50046F40D5985CB8EBE8C5232EE75AB3C03F113C5EC4669C072D5C514EFA0778062DDD9FF90BB75DDBA4AE2E2100559A35273D202E93B17FFABBC976DB516DA4FC9433322FE6517E5B39021A4564AFB6E1A15B1EB5981B952A8161C688C461CD1CC8E67882CAAFD6FDFA2BA7EBFC40D16D39F4DA16879D230375833741E1B3C49D1630E10C5E6CD1C11AEB2C356C3A0A4EAD805B9330199AC8BC1BB1ECF2E3F84839B5A444FB06959505AF97019C695D6A14990A1E2C678A6EC187C90F6989DA0E977767F2110D8C9289C6E85CC87C7141B11B284A4DCE2ACA6414F5AEB560E11E44699973E4BC4B28526C2D1C68B81A51ACC9E490B6F28129100FC3888C85ABB9E0B3808F00753F76C908E8E71B08EDD87C9359F716324183EE3D89389839F0E741246400D1BEC8F5592F4D66ED0205A90F6A153D3D0751662BB95FA3CBF1543D35E2B9E02497FA24173FC8387B36EE320007E4DC8D3400DC69D361FE071D1C015F87F4FD8E942E5D92D7197279F02513839ABC5D11098DF80A4D3817B7AFC4F7A93BA8469D89DB503284B6D2B7E90F2B52ED2E6F65F0E90A3D13564725FF563772C5356E2C50AFED4301BBE029DEFB252B1598847FAB4136B69110942DE842A9186D391E8CB2AD210B1D9B9473676222F6EA1F445E24290B6F1845243B33250224C0F316E18C52180220C2549D093D9F3974980F95DA8F1A49E36D142A3957A1F7DE6E492578544D17C856BEEC0F40FAFBFB8140945D6B13AB23BE8D1ABDC3E4A92E051CD180C5F2FE288C96F831DD5F34CA679E618D160B21F1697870F8F3B3A7318D0A558C4EADF16D0A76079D148F7404AC163852513ECE66374A9F5A8BC4C87F36CB2AE52ADBC034DEAE51FD60DC071284F8CAC9346E6D60F97D6CFE41C605B2C4D8D0C8BA41DB0DB3A2BD01B037D8CA54A6C53B | ||
436 | 20181019200034 2 6 100 8191 5 EA2361A4ABC2DDA42ADD74B38CE837D05B00192233F16571DAB16B15049BA7606BA9A6DC1588738A9949D68815E7F9DB7FEB2C81C1284F976E38376817186BB7725E05B3DA281A887F71DADA27911625597D376826592E156211FF30844F8A1C47DF9320AE8E9C9171181EE3F7D5EB1B56F79D7DCC39FC5C20A23EF716809E2035466B7E7A43DF588D73637DC89192E5EC392C917AD498C66E229EDBEFAEBD449773973E04F812B55466A3F2E321FA8A3AD1B6AF8A95178F4EF001004EAA4D83EC362F1B966137C811AE2B52B5815ED28F7CEB16DE55E7C64E5D34BE122EED25B5E9DAC04AE9EBB4C0EEBA6D447B435262EDF18CD616E396C80DCAF8547DED8A9817BB70FEDEA734E5A7005F8C7C2CB53366827824E2666DE1F1AC109A41576BC37B3BD1536D79CAB6F6BD7A2D9863EF0F6FEA547A990EF5DF931632F203682D34462025E053CEE1D25EEB0508CBE0A50F7D687A5AE6038F3BE219992B7796E1181D06AA9072D5419E50046F40D5985CB8EBE8C5232EE75AB3C03F113C5EC4669C072D5C514EFA0778062DDD9FF90BB75DDBA4AE2E2100559A35273D202E93B17FFABBC976DB516DA4FC9433322FE6517E5B39021A4564AFB6E1A15B1EB5981B952A8161C688C461CD1CC8E67882CAAFD6FDFA2BA7EBFC40D16D39F4DA16879D230375833741E1B3C49D1630E10C5E6CD1C11AEB2C356C3A0A4EAD805B9330199AC8BC1BB1ECF2E3F84839B5A444FB06959505AF97019C695D6A14990A1E2C678A6EC187C90F6989DA0E977767F2110D8C9289C6E85CC87C7141B11B284A4DCE2ACA6414F5AEB560E11E44699973E4BC4B28526C2D1C68B81A51ACC9E490B6F28129100FC3888C85ABB9E0B3808F00753F76C908E8E71B08EDD87C9359F716324183EE3D89389839F0E741246400D1BEC8F5592F4D66ED0205A90F6A153D3D0751662BB95FA3CBF1543D35E2B9E02497FA24173FC8387B36EE320007E4DC8D3400DC69D361FE071D1C015F87F4FD8E942E5D92D7197279F02513839ABC5D11098DF80A4D3817B7AFC4F7A93BA8469D89DB503284B6D2B7E90F2B52ED2E6F65F0E90A3D13564725FF563772C5356E2C50AFED4301BBE029DEFB252B1598847FAB4136B69110942DE842A9186D391E8CB2AD210B1D9B9473676222F6EA1F445E24290B6F1845243B33250224C0F316E18C52180220C2549D093D9F3974980F95DA8F1A49E36D142A3957A1F7DE6E492578544D17C856BEEC0F40FAFBFB8140945D6B13AB23BE8D1ABDC3E4A92E051CD180C5F2FE288C96F831DD5F34CA679E618D160B21F1697870F8F3B3A7318D0A558C4EADF16D0A76079D148F7404AC163852513ECE66374A9F5A8BC4C87F36CB2AE52ADBC034DEAE51FD60DC071284F8CAC9346E6D60F97D6CFE41C605B2C4D8D0C8BA41DB0DB3A2BD01B037D8CA55D16287 | ||
437 | 20181020003801 2 6 100 8191 2 EA2361A4ABC2DDA42ADD74B38CE837D05B00192233F16571DAB16B15049BA7606BA9A6DC1588738A9949D68815E7F9DB7FEB2C81C1284F976E38376817186BB7725E05B3DA281A887F71DADA27911625597D376826592E156211FF30844F8A1C47DF9320AE8E9C9171181EE3F7D5EB1B56F79D7DCC39FC5C20A23EF716809E2035466B7E7A43DF588D73637DC89192E5EC392C917AD498C66E229EDBEFAEBD449773973E04F812B55466A3F2E321FA8A3AD1B6AF8A95178F4EF001004EAA4D83EC362F1B966137C811AE2B52B5815ED28F7CEB16DE55E7C64E5D34BE122EED25B5E9DAC04AE9EBB4C0EEBA6D447B435262EDF18CD616E396C80DCAF8547DED8A9817BB70FEDEA734E5A7005F8C7C2CB53366827824E2666DE1F1AC109A41576BC37B3BD1536D79CAB6F6BD7A2D9863EF0F6FEA547A990EF5DF931632F203682D34462025E053CEE1D25EEB0508CBE0A50F7D687A5AE6038F3BE219992B7796E1181D06AA9072D5419E50046F40D5985CB8EBE8C5232EE75AB3C03F113C5EC4669C072D5C514EFA0778062DDD9FF90BB75DDBA4AE2E2100559A35273D202E93B17FFABBC976DB516DA4FC9433322FE6517E5B39021A4564AFB6E1A15B1EB5981B952A8161C688C461CD1CC8E67882CAAFD6FDFA2BA7EBFC40D16D39F4DA16879D230375833741E1B3C49D1630E10C5E6CD1C11AEB2C356C3A0A4EAD805B9330199AC8BC1BB1ECF2E3F84839B5A444FB06959505AF97019C695D6A14990A1E2C678A6EC187C90F6989DA0E977767F2110D8C9289C6E85CC87C7141B11B284A4DCE2ACA6414F5AEB560E11E44699973E4BC4B28526C2D1C68B81A51ACC9E490B6F28129100FC3888C85ABB9E0B3808F00753F76C908E8E71B08EDD87C9359F716324183EE3D89389839F0E741246400D1BEC8F5592F4D66ED0205A90F6A153D3D0751662BB95FA3CBF1543D35E2B9E02497FA24173FC8387B36EE320007E4DC8D3400DC69D361FE071D1C015F87F4FD8E942E5D92D7197279F02513839ABC5D11098DF80A4D3817B7AFC4F7A93BA8469D89DB503284B6D2B7E90F2B52ED2E6F65F0E90A3D13564725FF563772C5356E2C50AFED4301BBE029DEFB252B1598847FAB4136B69110942DE842A9186D391E8CB2AD210B1D9B9473676222F6EA1F445E24290B6F1845243B33250224C0F316E18C52180220C2549D093D9F3974980F95DA8F1A49E36D142A3957A1F7DE6E492578544D17C856BEEC0F40FAFBFB8140945D6B13AB23BE8D1ABDC3E4A92E051CD180C5F2FE288C96F831DD5F34CA679E618D160B21F1697870F8F3B3A7318D0A558C4EADF16D0A76079D148F7404AC163852513ECE66374A9F5A8BC4C87F36CB2AE52ADBC034DEAE51FD60DC071284F8CAC9346E6D60F97D6CFE41C605B2C4D8D0C8BA41DB0DB3A2BD01B037D8CA58CB384B | ||
438 | 20181020112657 2 6 100 8191 2 EA2361A4ABC2DDA42ADD74B38CE837D05B00192233F16571DAB16B15049BA7606BA9A6DC1588738A9949D68815E7F9DB7FEB2C81C1284F976E38376817186BB7725E05B3DA281A887F71DADA27911625597D376826592E156211FF30844F8A1C47DF9320AE8E9C9171181EE3F7D5EB1B56F79D7DCC39FC5C20A23EF716809E2035466B7E7A43DF588D73637DC89192E5EC392C917AD498C66E229EDBEFAEBD449773973E04F812B55466A3F2E321FA8A3AD1B6AF8A95178F4EF001004EAA4D83EC362F1B966137C811AE2B52B5815ED28F7CEB16DE55E7C64E5D34BE122EED25B5E9DAC04AE9EBB4C0EEBA6D447B435262EDF18CD616E396C80DCAF8547DED8A9817BB70FEDEA734E5A7005F8C7C2CB53366827824E2666DE1F1AC109A41576BC37B3BD1536D79CAB6F6BD7A2D9863EF0F6FEA547A990EF5DF931632F203682D34462025E053CEE1D25EEB0508CBE0A50F7D687A5AE6038F3BE219992B7796E1181D06AA9072D5419E50046F40D5985CB8EBE8C5232EE75AB3C03F113C5EC4669C072D5C514EFA0778062DDD9FF90BB75DDBA4AE2E2100559A35273D202E93B17FFABBC976DB516DA4FC9433322FE6517E5B39021A4564AFB6E1A15B1EB5981B952A8161C688C461CD1CC8E67882CAAFD6FDFA2BA7EBFC40D16D39F4DA16879D230375833741E1B3C49D1630E10C5E6CD1C11AEB2C356C3A0A4EAD805B9330199AC8BC1BB1ECF2E3F84839B5A444FB06959505AF97019C695D6A14990A1E2C678A6EC187C90F6989DA0E977767F2110D8C9289C6E85CC87C7141B11B284A4DCE2ACA6414F5AEB560E11E44699973E4BC4B28526C2D1C68B81A51ACC9E490B6F28129100FC3888C85ABB9E0B3808F00753F76C908E8E71B08EDD87C9359F716324183EE3D89389839F0E741246400D1BEC8F5592F4D66ED0205A90F6A153D3D0751662BB95FA3CBF1543D35E2B9E02497FA24173FC8387B36EE320007E4DC8D3400DC69D361FE071D1C015F87F4FD8E942E5D92D7197279F02513839ABC5D11098DF80A4D3817B7AFC4F7A93BA8469D89DB503284B6D2B7E90F2B52ED2E6F65F0E90A3D13564725FF563772C5356E2C50AFED4301BBE029DEFB252B1598847FAB4136B69110942DE842A9186D391E8CB2AD210B1D9B9473676222F6EA1F445E24290B6F1845243B33250224C0F316E18C52180220C2549D093D9F3974980F95DA8F1A49E36D142A3957A1F7DE6E492578544D17C856BEEC0F40FAFBFB8140945D6B13AB23BE8D1ABDC3E4A92E051CD180C5F2FE288C96F831DD5F34CA679E618D160B21F1697870F8F3B3A7318D0A558C4EADF16D0A76079D148F7404AC163852513ECE66374A9F5A8BC4C87F36CB2AE52ADBC034DEAE51FD60DC071284F8CAC9346E6D60F97D6CFE41C605B2C4D8D0C8BA41DB0DB3A2BD01B037D8CA5F85360B | ||
439 | 20181020201319 2 6 100 8191 2 EA2361A4ABC2DDA42ADD74B38CE837D05B00192233F16571DAB16B15049BA7606BA9A6DC1588738A9949D68815E7F9DB7FEB2C81C1284F976E38376817186BB7725E05B3DA281A887F71DADA27911625597D376826592E156211FF30844F8A1C47DF9320AE8E9C9171181EE3F7D5EB1B56F79D7DCC39FC5C20A23EF716809E2035466B7E7A43DF588D73637DC89192E5EC392C917AD498C66E229EDBEFAEBD449773973E04F812B55466A3F2E321FA8A3AD1B6AF8A95178F4EF001004EAA4D83EC362F1B966137C811AE2B52B5815ED28F7CEB16DE55E7C64E5D34BE122EED25B5E9DAC04AE9EBB4C0EEBA6D447B435262EDF18CD616E396C80DCAF8547DED8A9817BB70FEDEA734E5A7005F8C7C2CB53366827824E2666DE1F1AC109A41576BC37B3BD1536D79CAB6F6BD7A2D9863EF0F6FEA547A990EF5DF931632F203682D34462025E053CEE1D25EEB0508CBE0A50F7D687A5AE6038F3BE219992B7796E1181D06AA9072D5419E50046F40D5985CB8EBE8C5232EE75AB3C03F113C5EC4669C072D5C514EFA0778062DDD9FF90BB75DDBA4AE2E2100559A35273D202E93B17FFABBC976DB516DA4FC9433322FE6517E5B39021A4564AFB6E1A15B1EB5981B952A8161C688C461CD1CC8E67882CAAFD6FDFA2BA7EBFC40D16D39F4DA16879D230375833741E1B3C49D1630E10C5E6CD1C11AEB2C356C3A0A4EAD805B9330199AC8BC1BB1ECF2E3F84839B5A444FB06959505AF97019C695D6A14990A1E2C678A6EC187C90F6989DA0E977767F2110D8C9289C6E85CC87C7141B11B284A4DCE2ACA6414F5AEB560E11E44699973E4BC4B28526C2D1C68B81A51ACC9E490B6F28129100FC3888C85ABB9E0B3808F00753F76C908E8E71B08EDD87C9359F716324183EE3D89389839F0E741246400D1BEC8F5592F4D66ED0205A90F6A153D3D0751662BB95FA3CBF1543D35E2B9E02497FA24173FC8387B36EE320007E4DC8D3400DC69D361FE071D1C015F87F4FD8E942E5D92D7197279F02513839ABC5D11098DF80A4D3817B7AFC4F7A93BA8469D89DB503284B6D2B7E90F2B52ED2E6F65F0E90A3D13564725FF563772C5356E2C50AFED4301BBE029DEFB252B1598847FAB4136B69110942DE842A9186D391E8CB2AD210B1D9B9473676222F6EA1F445E24290B6F1845243B33250224C0F316E18C52180220C2549D093D9F3974980F95DA8F1A49E36D142A3957A1F7DE6E492578544D17C856BEEC0F40FAFBFB8140945D6B13AB23BE8D1ABDC3E4A92E051CD180C5F2FE288C96F831DD5F34CA679E618D160B21F1697870F8F3B3A7318D0A558C4EADF16D0A76079D148F7404AC163852513ECE66374A9F5A8BC4C87F36CB2AE52ADBC034DEAE51FD60DC071284F8CAC9346E6D60F97D6CFE41C605B2C4D8D0C8BA41DB0DB3A2BD01B037D8CA652B1403 | ||
440 | 20181020203144 2 6 100 8191 5 EA2361A4ABC2DDA42ADD74B38CE837D05B00192233F16571DAB16B15049BA7606BA9A6DC1588738A9949D68815E7F9DB7FEB2C81C1284F976E38376817186BB7725E05B3DA281A887F71DADA27911625597D376826592E156211FF30844F8A1C47DF9320AE8E9C9171181EE3F7D5EB1B56F79D7DCC39FC5C20A23EF716809E2035466B7E7A43DF588D73637DC89192E5EC392C917AD498C66E229EDBEFAEBD449773973E04F812B55466A3F2E321FA8A3AD1B6AF8A95178F4EF001004EAA4D83EC362F1B966137C811AE2B52B5815ED28F7CEB16DE55E7C64E5D34BE122EED25B5E9DAC04AE9EBB4C0EEBA6D447B435262EDF18CD616E396C80DCAF8547DED8A9817BB70FEDEA734E5A7005F8C7C2CB53366827824E2666DE1F1AC109A41576BC37B3BD1536D79CAB6F6BD7A2D9863EF0F6FEA547A990EF5DF931632F203682D34462025E053CEE1D25EEB0508CBE0A50F7D687A5AE6038F3BE219992B7796E1181D06AA9072D5419E50046F40D5985CB8EBE8C5232EE75AB3C03F113C5EC4669C072D5C514EFA0778062DDD9FF90BB75DDBA4AE2E2100559A35273D202E93B17FFABBC976DB516DA4FC9433322FE6517E5B39021A4564AFB6E1A15B1EB5981B952A8161C688C461CD1CC8E67882CAAFD6FDFA2BA7EBFC40D16D39F4DA16879D230375833741E1B3C49D1630E10C5E6CD1C11AEB2C356C3A0A4EAD805B9330199AC8BC1BB1ECF2E3F84839B5A444FB06959505AF97019C695D6A14990A1E2C678A6EC187C90F6989DA0E977767F2110D8C9289C6E85CC87C7141B11B284A4DCE2ACA6414F5AEB560E11E44699973E4BC4B28526C2D1C68B81A51ACC9E490B6F28129100FC3888C85ABB9E0B3808F00753F76C908E8E71B08EDD87C9359F716324183EE3D89389839F0E741246400D1BEC8F5592F4D66ED0205A90F6A153D3D0751662BB95FA3CBF1543D35E2B9E02497FA24173FC8387B36EE320007E4DC8D3400DC69D361FE071D1C015F87F4FD8E942E5D92D7197279F02513839ABC5D11098DF80A4D3817B7AFC4F7A93BA8469D89DB503284B6D2B7E90F2B52ED2E6F65F0E90A3D13564725FF563772C5356E2C50AFED4301BBE029DEFB252B1598847FAB4136B69110942DE842A9186D391E8CB2AD210B1D9B9473676222F6EA1F445E24290B6F1845243B33250224C0F316E18C52180220C2549D093D9F3974980F95DA8F1A49E36D142A3957A1F7DE6E492578544D17C856BEEC0F40FAFBFB8140945D6B13AB23BE8D1ABDC3E4A92E051CD180C5F2FE288C96F831DD5F34CA679E618D160B21F1697870F8F3B3A7318D0A558C4EADF16D0A76079D148F7404AC163852513ECE66374A9F5A8BC4C87F36CB2AE52ADBC034DEAE51FD60DC071284F8CAC9346E6D60F97D6CFE41C605B2C4D8D0C8BA41DB0DB3A2BD01B037D8CA6552017F | ||
441 | 20181021021352 2 6 100 8191 2 EA2361A4ABC2DDA42ADD74B38CE837D05B00192233F16571DAB16B15049BA7606BA9A6DC1588738A9949D68815E7F9DB7FEB2C81C1284F976E38376817186BB7725E05B3DA281A887F71DADA27911625597D376826592E156211FF30844F8A1C47DF9320AE8E9C9171181EE3F7D5EB1B56F79D7DCC39FC5C20A23EF716809E2035466B7E7A43DF588D73637DC89192E5EC392C917AD498C66E229EDBEFAEBD449773973E04F812B55466A3F2E321FA8A3AD1B6AF8A95178F4EF001004EAA4D83EC362F1B966137C811AE2B52B5815ED28F7CEB16DE55E7C64E5D34BE122EED25B5E9DAC04AE9EBB4C0EEBA6D447B435262EDF18CD616E396C80DCAF8547DED8A9817BB70FEDEA734E5A7005F8C7C2CB53366827824E2666DE1F1AC109A41576BC37B3BD1536D79CAB6F6BD7A2D9863EF0F6FEA547A990EF5DF931632F203682D34462025E053CEE1D25EEB0508CBE0A50F7D687A5AE6038F3BE219992B7796E1181D06AA9072D5419E50046F40D5985CB8EBE8C5232EE75AB3C03F113C5EC4669C072D5C514EFA0778062DDD9FF90BB75DDBA4AE2E2100559A35273D202E93B17FFABBC976DB516DA4FC9433322FE6517E5B39021A4564AFB6E1A15B1EB5981B952A8161C688C461CD1CC8E67882CAAFD6FDFA2BA7EBFC40D16D39F4DA16879D230375833741E1B3C49D1630E10C5E6CD1C11AEB2C356C3A0A4EAD805B9330199AC8BC1BB1ECF2E3F84839B5A444FB06959505AF97019C695D6A14990A1E2C678A6EC187C90F6989DA0E977767F2110D8C9289C6E85CC87C7141B11B284A4DCE2ACA6414F5AEB560E11E44699973E4BC4B28526C2D1C68B81A51ACC9E490B6F28129100FC3888C85ABB9E0B3808F00753F76C908E8E71B08EDD87C9359F716324183EE3D89389839F0E741246400D1BEC8F5592F4D66ED0205A90F6A153D3D0751662BB95FA3CBF1543D35E2B9E02497FA24173FC8387B36EE320007E4DC8D3400DC69D361FE071D1C015F87F4FD8E942E5D92D7197279F02513839ABC5D11098DF80A4D3817B7AFC4F7A93BA8469D89DB503284B6D2B7E90F2B52ED2E6F65F0E90A3D13564725FF563772C5356E2C50AFED4301BBE029DEFB252B1598847FAB4136B69110942DE842A9186D391E8CB2AD210B1D9B9473676222F6EA1F445E24290B6F1845243B33250224C0F316E18C52180220C2549D093D9F3974980F95DA8F1A49E36D142A3957A1F7DE6E492578544D17C856BEEC0F40FAFBFB8140945D6B13AB23BE8D1ABDC3E4A92E051CD180C5F2FE288C96F831DD5F34CA679E618D160B21F1697870F8F3B3A7318D0A558C4EADF16D0A76079D148F7404AC163852513ECE66374A9F5A8BC4C87F36CB2AE52ADBC034DEAE51FD60DC071284F8CAC9346E6D60F97D6CFE41C605B2C4D8D0C8BA41DB0DB3A2BD01B037D8CA68F8AE73 | ||
442 | 20181021071146 2 6 100 8191 2 EA2361A4ABC2DDA42ADD74B38CE837D05B00192233F16571DAB16B15049BA7606BA9A6DC1588738A9949D68815E7F9DB7FEB2C81C1284F976E38376817186BB7725E05B3DA281A887F71DADA27911625597D376826592E156211FF30844F8A1C47DF9320AE8E9C9171181EE3F7D5EB1B56F79D7DCC39FC5C20A23EF716809E2035466B7E7A43DF588D73637DC89192E5EC392C917AD498C66E229EDBEFAEBD449773973E04F812B55466A3F2E321FA8A3AD1B6AF8A95178F4EF001004EAA4D83EC362F1B966137C811AE2B52B5815ED28F7CEB16DE55E7C64E5D34BE122EED25B5E9DAC04AE9EBB4C0EEBA6D447B435262EDF18CD616E396C80DCAF8547DED8A9817BB70FEDEA734E5A7005F8C7C2CB53366827824E2666DE1F1AC109A41576BC37B3BD1536D79CAB6F6BD7A2D9863EF0F6FEA547A990EF5DF931632F203682D34462025E053CEE1D25EEB0508CBE0A50F7D687A5AE6038F3BE219992B7796E1181D06AA9072D5419E50046F40D5985CB8EBE8C5232EE75AB3C03F113C5EC4669C072D5C514EFA0778062DDD9FF90BB75DDBA4AE2E2100559A35273D202E93B17FFABBC976DB516DA4FC9433322FE6517E5B39021A4564AFB6E1A15B1EB5981B952A8161C688C461CD1CC8E67882CAAFD6FDFA2BA7EBFC40D16D39F4DA16879D230375833741E1B3C49D1630E10C5E6CD1C11AEB2C356C3A0A4EAD805B9330199AC8BC1BB1ECF2E3F84839B5A444FB06959505AF97019C695D6A14990A1E2C678A6EC187C90F6989DA0E977767F2110D8C9289C6E85CC87C7141B11B284A4DCE2ACA6414F5AEB560E11E44699973E4BC4B28526C2D1C68B81A51ACC9E490B6F28129100FC3888C85ABB9E0B3808F00753F76C908E8E71B08EDD87C9359F716324183EE3D89389839F0E741246400D1BEC8F5592F4D66ED0205A90F6A153D3D0751662BB95FA3CBF1543D35E2B9E02497FA24173FC8387B36EE320007E4DC8D3400DC69D361FE071D1C015F87F4FD8E942E5D92D7197279F02513839ABC5D11098DF80A4D3817B7AFC4F7A93BA8469D89DB503284B6D2B7E90F2B52ED2E6F65F0E90A3D13564725FF563772C5356E2C50AFED4301BBE029DEFB252B1598847FAB4136B69110942DE842A9186D391E8CB2AD210B1D9B9473676222F6EA1F445E24290B6F1845243B33250224C0F316E18C52180220C2549D093D9F3974980F95DA8F1A49E36D142A3957A1F7DE6E492578544D17C856BEEC0F40FAFBFB8140945D6B13AB23BE8D1ABDC3E4A92E051CD180C5F2FE288C96F831DD5F34CA679E618D160B21F1697870F8F3B3A7318D0A558C4EADF16D0A76079D148F7404AC163852513ECE66374A9F5A8BC4C87F36CB2AE52ADBC034DEAE51FD60DC071284F8CAC9346E6D60F97D6CFE41C605B2C4D8D0C8BA41DB0DB3A2BD01B037D8CA6C1C6B53 | ||
443 | 20181021104137 2 6 100 8191 2 EA2361A4ABC2DDA42ADD74B38CE837D05B00192233F16571DAB16B15049BA7606BA9A6DC1588738A9949D68815E7F9DB7FEB2C81C1284F976E38376817186BB7725E05B3DA281A887F71DADA27911625597D376826592E156211FF30844F8A1C47DF9320AE8E9C9171181EE3F7D5EB1B56F79D7DCC39FC5C20A23EF716809E2035466B7E7A43DF588D73637DC89192E5EC392C917AD498C66E229EDBEFAEBD449773973E04F812B55466A3F2E321FA8A3AD1B6AF8A95178F4EF001004EAA4D83EC362F1B966137C811AE2B52B5815ED28F7CEB16DE55E7C64E5D34BE122EED25B5E9DAC04AE9EBB4C0EEBA6D447B435262EDF18CD616E396C80DCAF8547DED8A9817BB70FEDEA734E5A7005F8C7C2CB53366827824E2666DE1F1AC109A41576BC37B3BD1536D79CAB6F6BD7A2D9863EF0F6FEA547A990EF5DF931632F203682D34462025E053CEE1D25EEB0508CBE0A50F7D687A5AE6038F3BE219992B7796E1181D06AA9072D5419E50046F40D5985CB8EBE8C5232EE75AB3C03F113C5EC4669C072D5C514EFA0778062DDD9FF90BB75DDBA4AE2E2100559A35273D202E93B17FFABBC976DB516DA4FC9433322FE6517E5B39021A4564AFB6E1A15B1EB5981B952A8161C688C461CD1CC8E67882CAAFD6FDFA2BA7EBFC40D16D39F4DA16879D230375833741E1B3C49D1630E10C5E6CD1C11AEB2C356C3A0A4EAD805B9330199AC8BC1BB1ECF2E3F84839B5A444FB06959505AF97019C695D6A14990A1E2C678A6EC187C90F6989DA0E977767F2110D8C9289C6E85CC87C7141B11B284A4DCE2ACA6414F5AEB560E11E44699973E4BC4B28526C2D1C68B81A51ACC9E490B6F28129100FC3888C85ABB9E0B3808F00753F76C908E8E71B08EDD87C9359F716324183EE3D89389839F0E741246400D1BEC8F5592F4D66ED0205A90F6A153D3D0751662BB95FA3CBF1543D35E2B9E02497FA24173FC8387B36EE320007E4DC8D3400DC69D361FE071D1C015F87F4FD8E942E5D92D7197279F02513839ABC5D11098DF80A4D3817B7AFC4F7A93BA8469D89DB503284B6D2B7E90F2B52ED2E6F65F0E90A3D13564725FF563772C5356E2C50AFED4301BBE029DEFB252B1598847FAB4136B69110942DE842A9186D391E8CB2AD210B1D9B9473676222F6EA1F445E24290B6F1845243B33250224C0F316E18C52180220C2549D093D9F3974980F95DA8F1A49E36D142A3957A1F7DE6E492578544D17C856BEEC0F40FAFBFB8140945D6B13AB23BE8D1ABDC3E4A92E051CD180C5F2FE288C96F831DD5F34CA679E618D160B21F1697870F8F3B3A7318D0A558C4EADF16D0A76079D148F7404AC163852513ECE66374A9F5A8BC4C87F36CB2AE52ADBC034DEAE51FD60DC071284F8CAC9346E6D60F97D6CFE41C605B2C4D8D0C8BA41DB0DB3A2BD01B037D8CA6E492B5B | ||
444 | 20181021162701 2 6 100 8191 2 EA2361A4ABC2DDA42ADD74B38CE837D05B00192233F16571DAB16B15049BA7606BA9A6DC1588738A9949D68815E7F9DB7FEB2C81C1284F976E38376817186BB7725E05B3DA281A887F71DADA27911625597D376826592E156211FF30844F8A1C47DF9320AE8E9C9171181EE3F7D5EB1B56F79D7DCC39FC5C20A23EF716809E2035466B7E7A43DF588D73637DC89192E5EC392C917AD498C66E229EDBEFAEBD449773973E04F812B55466A3F2E321FA8A3AD1B6AF8A95178F4EF001004EAA4D83EC362F1B966137C811AE2B52B5815ED28F7CEB16DE55E7C64E5D34BE122EED25B5E9DAC04AE9EBB4C0EEBA6D447B435262EDF18CD616E396C80DCAF8547DED8A9817BB70FEDEA734E5A7005F8C7C2CB53366827824E2666DE1F1AC109A41576BC37B3BD1536D79CAB6F6BD7A2D9863EF0F6FEA547A990EF5DF931632F203682D34462025E053CEE1D25EEB0508CBE0A50F7D687A5AE6038F3BE219992B7796E1181D06AA9072D5419E50046F40D5985CB8EBE8C5232EE75AB3C03F113C5EC4669C072D5C514EFA0778062DDD9FF90BB75DDBA4AE2E2100559A35273D202E93B17FFABBC976DB516DA4FC9433322FE6517E5B39021A4564AFB6E1A15B1EB5981B952A8161C688C461CD1CC8E67882CAAFD6FDFA2BA7EBFC40D16D39F4DA16879D230375833741E1B3C49D1630E10C5E6CD1C11AEB2C356C3A0A4EAD805B9330199AC8BC1BB1ECF2E3F84839B5A444FB06959505AF97019C695D6A14990A1E2C678A6EC187C90F6989DA0E977767F2110D8C9289C6E85CC87C7141B11B284A4DCE2ACA6414F5AEB560E11E44699973E4BC4B28526C2D1C68B81A51ACC9E490B6F28129100FC3888C85ABB9E0B3808F00753F76C908E8E71B08EDD87C9359F716324183EE3D89389839F0E741246400D1BEC8F5592F4D66ED0205A90F6A153D3D0751662BB95FA3CBF1543D35E2B9E02497FA24173FC8387B36EE320007E4DC8D3400DC69D361FE071D1C015F87F4FD8E942E5D92D7197279F02513839ABC5D11098DF80A4D3817B7AFC4F7A93BA8469D89DB503284B6D2B7E90F2B52ED2E6F65F0E90A3D13564725FF563772C5356E2C50AFED4301BBE029DEFB252B1598847FAB4136B69110942DE842A9186D391E8CB2AD210B1D9B9473676222F6EA1F445E24290B6F1845243B33250224C0F316E18C52180220C2549D093D9F3974980F95DA8F1A49E36D142A3957A1F7DE6E492578544D17C856BEEC0F40FAFBFB8140945D6B13AB23BE8D1ABDC3E4A92E051CD180C5F2FE288C96F831DD5F34CA679E618D160B21F1697870F8F3B3A7318D0A558C4EADF16D0A76079D148F7404AC163852513ECE66374A9F5A8BC4C87F36CB2AE52ADBC034DEAE51FD60DC071284F8CAC9346E6D60F97D6CFE41C605B2C4D8D0C8BA41DB0DB3A2BD01B037D8CA71E3AEBB | ||
445 | 20181021164042 2 6 100 8191 2 EA2361A4ABC2DDA42ADD74B38CE837D05B00192233F16571DAB16B15049BA7606BA9A6DC1588738A9949D68815E7F9DB7FEB2C81C1284F976E38376817186BB7725E05B3DA281A887F71DADA27911625597D376826592E156211FF30844F8A1C47DF9320AE8E9C9171181EE3F7D5EB1B56F79D7DCC39FC5C20A23EF716809E2035466B7E7A43DF588D73637DC89192E5EC392C917AD498C66E229EDBEFAEBD449773973E04F812B55466A3F2E321FA8A3AD1B6AF8A95178F4EF001004EAA4D83EC362F1B966137C811AE2B52B5815ED28F7CEB16DE55E7C64E5D34BE122EED25B5E9DAC04AE9EBB4C0EEBA6D447B435262EDF18CD616E396C80DCAF8547DED8A9817BB70FEDEA734E5A7005F8C7C2CB53366827824E2666DE1F1AC109A41576BC37B3BD1536D79CAB6F6BD7A2D9863EF0F6FEA547A990EF5DF931632F203682D34462025E053CEE1D25EEB0508CBE0A50F7D687A5AE6038F3BE219992B7796E1181D06AA9072D5419E50046F40D5985CB8EBE8C5232EE75AB3C03F113C5EC4669C072D5C514EFA0778062DDD9FF90BB75DDBA4AE2E2100559A35273D202E93B17FFABBC976DB516DA4FC9433322FE6517E5B39021A4564AFB6E1A15B1EB5981B952A8161C688C461CD1CC8E67882CAAFD6FDFA2BA7EBFC40D16D39F4DA16879D230375833741E1B3C49D1630E10C5E6CD1C11AEB2C356C3A0A4EAD805B9330199AC8BC1BB1ECF2E3F84839B5A444FB06959505AF97019C695D6A14990A1E2C678A6EC187C90F6989DA0E977767F2110D8C9289C6E85CC87C7141B11B284A4DCE2ACA6414F5AEB560E11E44699973E4BC4B28526C2D1C68B81A51ACC9E490B6F28129100FC3888C85ABB9E0B3808F00753F76C908E8E71B08EDD87C9359F716324183EE3D89389839F0E741246400D1BEC8F5592F4D66ED0205A90F6A153D3D0751662BB95FA3CBF1543D35E2B9E02497FA24173FC8387B36EE320007E4DC8D3400DC69D361FE071D1C015F87F4FD8E942E5D92D7197279F02513839ABC5D11098DF80A4D3817B7AFC4F7A93BA8469D89DB503284B6D2B7E90F2B52ED2E6F65F0E90A3D13564725FF563772C5356E2C50AFED4301BBE029DEFB252B1598847FAB4136B69110942DE842A9186D391E8CB2AD210B1D9B9473676222F6EA1F445E24290B6F1845243B33250224C0F316E18C52180220C2549D093D9F3974980F95DA8F1A49E36D142A3957A1F7DE6E492578544D17C856BEEC0F40FAFBFB8140945D6B13AB23BE8D1ABDC3E4A92E051CD180C5F2FE288C96F831DD5F34CA679E618D160B21F1697870F8F3B3A7318D0A558C4EADF16D0A76079D148F7404AC163852513ECE66374A9F5A8BC4C87F36CB2AE52ADBC034DEAE51FD60DC071284F8CAC9346E6D60F97D6CFE41C605B2C4D8D0C8BA41DB0DB3A2BD01B037D8CA71FF6D23 | ||
446 | 20181022114359 2 6 100 8191 5 EA2361A4ABC2DDA42ADD74B38CE837D05B00192233F16571DAB16B15049BA7606BA9A6DC1588738A9949D68815E7F9DB7FEB2C81C1284F976E38376817186BB7725E05B3DA281A887F71DADA27911625597D376826592E156211FF30844F8A1C47DF9320AE8E9C9171181EE3F7D5EB1B56F79D7DCC39FC5C20A23EF716809E2035466B7E7A43DF588D73637DC89192E5EC392C917AD498C66E229EDBEFAEBD449773973E04F812B55466A3F2E321FA8A3AD1B6AF8A95178F4EF001004EAA4D83EC362F1B966137C811AE2B52B5815ED28F7CEB16DE55E7C64E5D34BE122EED25B5E9DAC04AE9EBB4C0EEBA6D447B435262EDF18CD616E396C80DCAF8547DED8A9817BB70FEDEA734E5A7005F8C7C2CB53366827824E2666DE1F1AC109A41576BC37B3BD1536D79CAB6F6BD7A2D9863EF0F6FEA547A990EF5DF931632F203682D34462025E053CEE1D25EEB0508CBE0A50F7D687A5AE6038F3BE219992B7796E1181D06AA9072D5419E50046F40D5985CB8EBE8C5232EE75AB3C03F113C5EC4669C072D5C514EFA0778062DDD9FF90BB75DDBA4AE2E2100559A35273D202E93B17FFABBC976DB516DA4FC9433322FE6517E5B39021A4564AFB6E1A15B1EB5981B952A8161C688C461CD1CC8E67882CAAFD6FDFA2BA7EBFC40D16D39F4DA16879D230375833741E1B3C49D1630E10C5E6CD1C11AEB2C356C3A0A4EAD805B9330199AC8BC1BB1ECF2E3F84839B5A444FB06959505AF97019C695D6A14990A1E2C678A6EC187C90F6989DA0E977767F2110D8C9289C6E85CC87C7141B11B284A4DCE2ACA6414F5AEB560E11E44699973E4BC4B28526C2D1C68B81A51ACC9E490B6F28129100FC3888C85ABB9E0B3808F00753F76C908E8E71B08EDD87C9359F716324183EE3D89389839F0E741246400D1BEC8F5592F4D66ED0205A90F6A153D3D0751662BB95FA3CBF1543D35E2B9E02497FA24173FC8387B36EE320007E4DC8D3400DC69D361FE071D1C015F87F4FD8E942E5D92D7197279F02513839ABC5D11098DF80A4D3817B7AFC4F7A93BA8469D89DB503284B6D2B7E90F2B52ED2E6F65F0E90A3D13564725FF563772C5356E2C50AFED4301BBE029DEFB252B1598847FAB4136B69110942DE842A9186D391E8CB2AD210B1D9B9473676222F6EA1F445E24290B6F1845243B33250224C0F316E18C52180220C2549D093D9F3974980F95DA8F1A49E36D142A3957A1F7DE6E492578544D17C856BEEC0F40FAFBFB8140945D6B13AB23BE8D1ABDC3E4A92E051CD180C5F2FE288C96F831DD5F34CA679E618D160B21F1697870F8F3B3A7318D0A558C4EADF16D0A76079D148F7404AC163852513ECE66374A9F5A8BC4C87F36CB2AE52ADBC034DEAE51FD60DC071284F8CAC9346E6D60F97D6CFE41C605B2C4D8D0C8BA41DB0DB3A2BD01B037D8CA7D41FB5F | ||
447 | 20181023003127 2 6 100 8191 5 EA2361A4ABC2DDA42ADD74B38CE837D05B00192233F16571DAB16B15049BA7606BA9A6DC1588738A9949D68815E7F9DB7FEB2C81C1284F976E38376817186BB7725E05B3DA281A887F71DADA27911625597D376826592E156211FF30844F8A1C47DF9320AE8E9C9171181EE3F7D5EB1B56F79D7DCC39FC5C20A23EF716809E2035466B7E7A43DF588D73637DC89192E5EC392C917AD498C66E229EDBEFAEBD449773973E04F812B55466A3F2E321FA8A3AD1B6AF8A95178F4EF001004EAA4D83EC362F1B966137C811AE2B52B5815ED28F7CEB16DE55E7C64E5D34BE122EED25B5E9DAC04AE9EBB4C0EEBA6D447B435262EDF18CD616E396C80DCAF8547DED8A9817BB70FEDEA734E5A7005F8C7C2CB53366827824E2666DE1F1AC109A41576BC37B3BD1536D79CAB6F6BD7A2D9863EF0F6FEA547A990EF5DF931632F203682D34462025E053CEE1D25EEB0508CBE0A50F7D687A5AE6038F3BE219992B7796E1181D06AA9072D5419E50046F40D5985CB8EBE8C5232EE75AB3C03F113C5EC4669C072D5C514EFA0778062DDD9FF90BB75DDBA4AE2E2100559A35273D202E93B17FFABBC976DB516DA4FC9433322FE6517E5B39021A4564AFB6E1A15B1EB5981B952A8161C688C461CD1CC8E67882CAAFD6FDFA2BA7EBFC40D16D39F4DA16879D230375833741E1B3C49D1630E10C5E6CD1C11AEB2C356C3A0A4EAD805B9330199AC8BC1BB1ECF2E3F84839B5A444FB06959505AF97019C695D6A14990A1E2C678A6EC187C90F6989DA0E977767F2110D8C9289C6E85CC87C7141B11B284A4DCE2ACA6414F5AEB560E11E44699973E4BC4B28526C2D1C68B81A51ACC9E490B6F28129100FC3888C85ABB9E0B3808F00753F76C908E8E71B08EDD87C9359F716324183EE3D89389839F0E741246400D1BEC8F5592F4D66ED0205A90F6A153D3D0751662BB95FA3CBF1543D35E2B9E02497FA24173FC8387B36EE320007E4DC8D3400DC69D361FE071D1C015F87F4FD8E942E5D92D7197279F02513839ABC5D11098DF80A4D3817B7AFC4F7A93BA8469D89DB503284B6D2B7E90F2B52ED2E6F65F0E90A3D13564725FF563772C5356E2C50AFED4301BBE029DEFB252B1598847FAB4136B69110942DE842A9186D391E8CB2AD210B1D9B9473676222F6EA1F445E24290B6F1845243B33250224C0F316E18C52180220C2549D093D9F3974980F95DA8F1A49E36D142A3957A1F7DE6E492578544D17C856BEEC0F40FAFBFB8140945D6B13AB23BE8D1ABDC3E4A92E051CD180C5F2FE288C96F831DD5F34CA679E618D160B21F1697870F8F3B3A7318D0A558C4EADF16D0A76079D148F7404AC163852513ECE66374A9F5A8BC4C87F36CB2AE52ADBC034DEAE51FD60DC071284F8CAC9346E6D60F97D6CFE41C605B2C4D8D0C8BA41DB0DB3A2BD01B037D8CA852BE5A7 | ||
448 | 20181023054524 2 6 100 8191 5 EA2361A4ABC2DDA42ADD74B38CE837D05B00192233F16571DAB16B15049BA7606BA9A6DC1588738A9949D68815E7F9DB7FEB2C81C1284F976E38376817186BB7725E05B3DA281A887F71DADA27911625597D376826592E156211FF30844F8A1C47DF9320AE8E9C9171181EE3F7D5EB1B56F79D7DCC39FC5C20A23EF716809E2035466B7E7A43DF588D73637DC89192E5EC392C917AD498C66E229EDBEFAEBD449773973E04F812B55466A3F2E321FA8A3AD1B6AF8A95178F4EF001004EAA4D83EC362F1B966137C811AE2B52B5815ED28F7CEB16DE55E7C64E5D34BE122EED25B5E9DAC04AE9EBB4C0EEBA6D447B435262EDF18CD616E396C80DCAF8547DED8A9817BB70FEDEA734E5A7005F8C7C2CB53366827824E2666DE1F1AC109A41576BC37B3BD1536D79CAB6F6BD7A2D9863EF0F6FEA547A990EF5DF931632F203682D34462025E053CEE1D25EEB0508CBE0A50F7D687A5AE6038F3BE219992B7796E1181D06AA9072D5419E50046F40D5985CB8EBE8C5232EE75AB3C03F113C5EC4669C072D5C514EFA0778062DDD9FF90BB75DDBA4AE2E2100559A35273D202E93B17FFABBC976DB516DA4FC9433322FE6517E5B39021A4564AFB6E1A15B1EB5981B952A8161C688C461CD1CC8E67882CAAFD6FDFA2BA7EBFC40D16D39F4DA16879D230375833741E1B3C49D1630E10C5E6CD1C11AEB2C356C3A0A4EAD805B9330199AC8BC1BB1ECF2E3F84839B5A444FB06959505AF97019C695D6A14990A1E2C678A6EC187C90F6989DA0E977767F2110D8C9289C6E85CC87C7141B11B284A4DCE2ACA6414F5AEB560E11E44699973E4BC4B28526C2D1C68B81A51ACC9E490B6F28129100FC3888C85ABB9E0B3808F00753F76C908E8E71B08EDD87C9359F716324183EE3D89389839F0E741246400D1BEC8F5592F4D66ED0205A90F6A153D3D0751662BB95FA3CBF1543D35E2B9E02497FA24173FC8387B36EE320007E4DC8D3400DC69D361FE071D1C015F87F4FD8E942E5D92D7197279F02513839ABC5D11098DF80A4D3817B7AFC4F7A93BA8469D89DB503284B6D2B7E90F2B52ED2E6F65F0E90A3D13564725FF563772C5356E2C50AFED4301BBE029DEFB252B1598847FAB4136B69110942DE842A9186D391E8CB2AD210B1D9B9473676222F6EA1F445E24290B6F1845243B33250224C0F316E18C52180220C2549D093D9F3974980F95DA8F1A49E36D142A3957A1F7DE6E492578544D17C856BEEC0F40FAFBFB8140945D6B13AB23BE8D1ABDC3E4A92E051CD180C5F2FE288C96F831DD5F34CA679E618D160B21F1697870F8F3B3A7318D0A558C4EADF16D0A76079D148F7404AC163852513ECE66374A9F5A8BC4C87F36CB2AE52ADBC034DEAE51FD60DC071284F8CAC9346E6D60F97D6CFE41C605B2C4D8D0C8BA41DB0DB3A2BD01B037D8CA88559E07 | ||
449 | 20181023122409 2 6 100 8191 5 EA2361A4ABC2DDA42ADD74B38CE837D05B00192233F16571DAB16B15049BA7606BA9A6DC1588738A9949D68815E7F9DB7FEB2C81C1284F976E38376817186BB7725E05B3DA281A887F71DADA27911625597D376826592E156211FF30844F8A1C47DF9320AE8E9C9171181EE3F7D5EB1B56F79D7DCC39FC5C20A23EF716809E2035466B7E7A43DF588D73637DC89192E5EC392C917AD498C66E229EDBEFAEBD449773973E04F812B55466A3F2E321FA8A3AD1B6AF8A95178F4EF001004EAA4D83EC362F1B966137C811AE2B52B5815ED28F7CEB16DE55E7C64E5D34BE122EED25B5E9DAC04AE9EBB4C0EEBA6D447B435262EDF18CD616E396C80DCAF8547DED8A9817BB70FEDEA734E5A7005F8C7C2CB53366827824E2666DE1F1AC109A41576BC37B3BD1536D79CAB6F6BD7A2D9863EF0F6FEA547A990EF5DF931632F203682D34462025E053CEE1D25EEB0508CBE0A50F7D687A5AE6038F3BE219992B7796E1181D06AA9072D5419E50046F40D5985CB8EBE8C5232EE75AB3C03F113C5EC4669C072D5C514EFA0778062DDD9FF90BB75DDBA4AE2E2100559A35273D202E93B17FFABBC976DB516DA4FC9433322FE6517E5B39021A4564AFB6E1A15B1EB5981B952A8161C688C461CD1CC8E67882CAAFD6FDFA2BA7EBFC40D16D39F4DA16879D230375833741E1B3C49D1630E10C5E6CD1C11AEB2C356C3A0A4EAD805B9330199AC8BC1BB1ECF2E3F84839B5A444FB06959505AF97019C695D6A14990A1E2C678A6EC187C90F6989DA0E977767F2110D8C9289C6E85CC87C7141B11B284A4DCE2ACA6414F5AEB560E11E44699973E4BC4B28526C2D1C68B81A51ACC9E490B6F28129100FC3888C85ABB9E0B3808F00753F76C908E8E71B08EDD87C9359F716324183EE3D89389839F0E741246400D1BEC8F5592F4D66ED0205A90F6A153D3D0751662BB95FA3CBF1543D35E2B9E02497FA24173FC8387B36EE320007E4DC8D3400DC69D361FE071D1C015F87F4FD8E942E5D92D7197279F02513839ABC5D11098DF80A4D3817B7AFC4F7A93BA8469D89DB503284B6D2B7E90F2B52ED2E6F65F0E90A3D13564725FF563772C5356E2C50AFED4301BBE029DEFB252B1598847FAB4136B69110942DE842A9186D391E8CB2AD210B1D9B9473676222F6EA1F445E24290B6F1845243B33250224C0F316E18C52180220C2549D093D9F3974980F95DA8F1A49E36D142A3957A1F7DE6E492578544D17C856BEEC0F40FAFBFB8140945D6B13AB23BE8D1ABDC3E4A92E051CD180C5F2FE288C96F831DD5F34CA679E618D160B21F1697870F8F3B3A7318D0A558C4EADF16D0A76079D148F7404AC163852513ECE66374A9F5A8BC4C87F36CB2AE52ADBC034DEAE51FD60DC071284F8CAC9346E6D60F97D6CFE41C605B2C4D8D0C8BA41DB0DB3A2BD01B037D8CA8C5B7A9F | ||
450 | 20181023161120 2 6 100 8191 5 EA2361A4ABC2DDA42ADD74B38CE837D05B00192233F16571DAB16B15049BA7606BA9A6DC1588738A9949D68815E7F9DB7FEB2C81C1284F976E38376817186BB7725E05B3DA281A887F71DADA27911625597D376826592E156211FF30844F8A1C47DF9320AE8E9C9171181EE3F7D5EB1B56F79D7DCC39FC5C20A23EF716809E2035466B7E7A43DF588D73637DC89192E5EC392C917AD498C66E229EDBEFAEBD449773973E04F812B55466A3F2E321FA8A3AD1B6AF8A95178F4EF001004EAA4D83EC362F1B966137C811AE2B52B5815ED28F7CEB16DE55E7C64E5D34BE122EED25B5E9DAC04AE9EBB4C0EEBA6D447B435262EDF18CD616E396C80DCAF8547DED8A9817BB70FEDEA734E5A7005F8C7C2CB53366827824E2666DE1F1AC109A41576BC37B3BD1536D79CAB6F6BD7A2D9863EF0F6FEA547A990EF5DF931632F203682D34462025E053CEE1D25EEB0508CBE0A50F7D687A5AE6038F3BE219992B7796E1181D06AA9072D5419E50046F40D5985CB8EBE8C5232EE75AB3C03F113C5EC4669C072D5C514EFA0778062DDD9FF90BB75DDBA4AE2E2100559A35273D202E93B17FFABBC976DB516DA4FC9433322FE6517E5B39021A4564AFB6E1A15B1EB5981B952A8161C688C461CD1CC8E67882CAAFD6FDFA2BA7EBFC40D16D39F4DA16879D230375833741E1B3C49D1630E10C5E6CD1C11AEB2C356C3A0A4EAD805B9330199AC8BC1BB1ECF2E3F84839B5A444FB06959505AF97019C695D6A14990A1E2C678A6EC187C90F6989DA0E977767F2110D8C9289C6E85CC87C7141B11B284A4DCE2ACA6414F5AEB560E11E44699973E4BC4B28526C2D1C68B81A51ACC9E490B6F28129100FC3888C85ABB9E0B3808F00753F76C908E8E71B08EDD87C9359F716324183EE3D89389839F0E741246400D1BEC8F5592F4D66ED0205A90F6A153D3D0751662BB95FA3CBF1543D35E2B9E02497FA24173FC8387B36EE320007E4DC8D3400DC69D361FE071D1C015F87F4FD8E942E5D92D7197279F02513839ABC5D11098DF80A4D3817B7AFC4F7A93BA8469D89DB503284B6D2B7E90F2B52ED2E6F65F0E90A3D13564725FF563772C5356E2C50AFED4301BBE029DEFB252B1598847FAB4136B69110942DE842A9186D391E8CB2AD210B1D9B9473676222F6EA1F445E24290B6F1845243B33250224C0F316E18C52180220C2549D093D9F3974980F95DA8F1A49E36D142A3957A1F7DE6E492578544D17C856BEEC0F40FAFBFB8140945D6B13AB23BE8D1ABDC3E4A92E051CD180C5F2FE288C96F831DD5F34CA679E618D160B21F1697870F8F3B3A7318D0A558C4EADF16D0A76079D148F7404AC163852513ECE66374A9F5A8BC4C87F36CB2AE52ADBC034DEAE51FD60DC071284F8CAC9346E6D60F97D6CFE41C605B2C4D8D0C8BA41DB0DB3A2BD01B037D8CA8EA11AB7 | ||
451 | 20181023174619 2 6 100 8191 2 EA2361A4ABC2DDA42ADD74B38CE837D05B00192233F16571DAB16B15049BA7606BA9A6DC1588738A9949D68815E7F9DB7FEB2C81C1284F976E38376817186BB7725E05B3DA281A887F71DADA27911625597D376826592E156211FF30844F8A1C47DF9320AE8E9C9171181EE3F7D5EB1B56F79D7DCC39FC5C20A23EF716809E2035466B7E7A43DF588D73637DC89192E5EC392C917AD498C66E229EDBEFAEBD449773973E04F812B55466A3F2E321FA8A3AD1B6AF8A95178F4EF001004EAA4D83EC362F1B966137C811AE2B52B5815ED28F7CEB16DE55E7C64E5D34BE122EED25B5E9DAC04AE9EBB4C0EEBA6D447B435262EDF18CD616E396C80DCAF8547DED8A9817BB70FEDEA734E5A7005F8C7C2CB53366827824E2666DE1F1AC109A41576BC37B3BD1536D79CAB6F6BD7A2D9863EF0F6FEA547A990EF5DF931632F203682D34462025E053CEE1D25EEB0508CBE0A50F7D687A5AE6038F3BE219992B7796E1181D06AA9072D5419E50046F40D5985CB8EBE8C5232EE75AB3C03F113C5EC4669C072D5C514EFA0778062DDD9FF90BB75DDBA4AE2E2100559A35273D202E93B17FFABBC976DB516DA4FC9433322FE6517E5B39021A4564AFB6E1A15B1EB5981B952A8161C688C461CD1CC8E67882CAAFD6FDFA2BA7EBFC40D16D39F4DA16879D230375833741E1B3C49D1630E10C5E6CD1C11AEB2C356C3A0A4EAD805B9330199AC8BC1BB1ECF2E3F84839B5A444FB06959505AF97019C695D6A14990A1E2C678A6EC187C90F6989DA0E977767F2110D8C9289C6E85CC87C7141B11B284A4DCE2ACA6414F5AEB560E11E44699973E4BC4B28526C2D1C68B81A51ACC9E490B6F28129100FC3888C85ABB9E0B3808F00753F76C908E8E71B08EDD87C9359F716324183EE3D89389839F0E741246400D1BEC8F5592F4D66ED0205A90F6A153D3D0751662BB95FA3CBF1543D35E2B9E02497FA24173FC8387B36EE320007E4DC8D3400DC69D361FE071D1C015F87F4FD8E942E5D92D7197279F02513839ABC5D11098DF80A4D3817B7AFC4F7A93BA8469D89DB503284B6D2B7E90F2B52ED2E6F65F0E90A3D13564725FF563772C5356E2C50AFED4301BBE029DEFB252B1598847FAB4136B69110942DE842A9186D391E8CB2AD210B1D9B9473676222F6EA1F445E24290B6F1845243B33250224C0F316E18C52180220C2549D093D9F3974980F95DA8F1A49E36D142A3957A1F7DE6E492578544D17C856BEEC0F40FAFBFB8140945D6B13AB23BE8D1ABDC3E4A92E051CD180C5F2FE288C96F831DD5F34CA679E618D160B21F1697870F8F3B3A7318D0A558C4EADF16D0A76079D148F7404AC163852513ECE66374A9F5A8BC4C87F36CB2AE52ADBC034DEAE51FD60DC071284F8CAC9346E6D60F97D6CFE41C605B2C4D8D0C8BA41DB0DB3A2BD01B037D8CA8F91F893 | ||
452 | 20181023175924 2 6 100 8191 5 EA2361A4ABC2DDA42ADD74B38CE837D05B00192233F16571DAB16B15049BA7606BA9A6DC1588738A9949D68815E7F9DB7FEB2C81C1284F976E38376817186BB7725E05B3DA281A887F71DADA27911625597D376826592E156211FF30844F8A1C47DF9320AE8E9C9171181EE3F7D5EB1B56F79D7DCC39FC5C20A23EF716809E2035466B7E7A43DF588D73637DC89192E5EC392C917AD498C66E229EDBEFAEBD449773973E04F812B55466A3F2E321FA8A3AD1B6AF8A95178F4EF001004EAA4D83EC362F1B966137C811AE2B52B5815ED28F7CEB16DE55E7C64E5D34BE122EED25B5E9DAC04AE9EBB4C0EEBA6D447B435262EDF18CD616E396C80DCAF8547DED8A9817BB70FEDEA734E5A7005F8C7C2CB53366827824E2666DE1F1AC109A41576BC37B3BD1536D79CAB6F6BD7A2D9863EF0F6FEA547A990EF5DF931632F203682D34462025E053CEE1D25EEB0508CBE0A50F7D687A5AE6038F3BE219992B7796E1181D06AA9072D5419E50046F40D5985CB8EBE8C5232EE75AB3C03F113C5EC4669C072D5C514EFA0778062DDD9FF90BB75DDBA4AE2E2100559A35273D202E93B17FFABBC976DB516DA4FC9433322FE6517E5B39021A4564AFB6E1A15B1EB5981B952A8161C688C461CD1CC8E67882CAAFD6FDFA2BA7EBFC40D16D39F4DA16879D230375833741E1B3C49D1630E10C5E6CD1C11AEB2C356C3A0A4EAD805B9330199AC8BC1BB1ECF2E3F84839B5A444FB06959505AF97019C695D6A14990A1E2C678A6EC187C90F6989DA0E977767F2110D8C9289C6E85CC87C7141B11B284A4DCE2ACA6414F5AEB560E11E44699973E4BC4B28526C2D1C68B81A51ACC9E490B6F28129100FC3888C85ABB9E0B3808F00753F76C908E8E71B08EDD87C9359F716324183EE3D89389839F0E741246400D1BEC8F5592F4D66ED0205A90F6A153D3D0751662BB95FA3CBF1543D35E2B9E02497FA24173FC8387B36EE320007E4DC8D3400DC69D361FE071D1C015F87F4FD8E942E5D92D7197279F02513839ABC5D11098DF80A4D3817B7AFC4F7A93BA8469D89DB503284B6D2B7E90F2B52ED2E6F65F0E90A3D13564725FF563772C5356E2C50AFED4301BBE029DEFB252B1598847FAB4136B69110942DE842A9186D391E8CB2AD210B1D9B9473676222F6EA1F445E24290B6F1845243B33250224C0F316E18C52180220C2549D093D9F3974980F95DA8F1A49E36D142A3957A1F7DE6E492578544D17C856BEEC0F40FAFBFB8140945D6B13AB23BE8D1ABDC3E4A92E051CD180C5F2FE288C96F831DD5F34CA679E618D160B21F1697870F8F3B3A7318D0A558C4EADF16D0A76079D148F7404AC163852513ECE66374A9F5A8BC4C87F36CB2AE52ADBC034DEAE51FD60DC071284F8CAC9346E6D60F97D6CFE41C605B2C4D8D0C8BA41DB0DB3A2BD01B037D8CA8FAACDB7 | ||
@@ -71,4 +71,4 @@ STANDARDS | |||
71 | the Secure Shell (SSH) Transport Layer Protocol, RFC 4419, March 2006, | 71 | the Secure Shell (SSH) Transport Layer Protocol, RFC 4419, March 2006, |
72 | 2006. | 72 | 2006. |
73 | 73 | ||
74 | OpenBSD 6.4 September 26, 2012 OpenBSD 6.4 | 74 | OpenBSD 6.5 September 26, 2012 OpenBSD 6.5 |
@@ -1,4 +1,4 @@ | |||
1 | /* $OpenBSD: moduli.c,v 1.32 2017/12/08 03:45:52 deraadt Exp $ */ | 1 | /* $OpenBSD: moduli.c,v 1.34 2019/01/23 09:49:00 dtucker Exp $ */ |
2 | /* | 2 | /* |
3 | * Copyright 1994 Phil Karn <karn@qualcomm.com> | 3 | * Copyright 1994 Phil Karn <karn@qualcomm.com> |
4 | * Copyright 1996-1998, 2003 William Allen Simpson <wsimpson@greendragon.com> | 4 | * Copyright 1996-1998, 2003 William Allen Simpson <wsimpson@greendragon.com> |
@@ -582,7 +582,7 @@ prime_test(FILE *in, FILE *out, u_int32_t trials, u_int32_t generator_wanted, | |||
582 | u_int32_t generator_known, in_tests, in_tries, in_type, in_size; | 582 | u_int32_t generator_known, in_tests, in_tries, in_type, in_size; |
583 | unsigned long last_processed = 0, end_lineno; | 583 | unsigned long last_processed = 0, end_lineno; |
584 | time_t time_start, time_stop; | 584 | time_t time_start, time_stop; |
585 | int res; | 585 | int res, is_prime; |
586 | 586 | ||
587 | if (trials < TRIAL_MINIMUM) { | 587 | if (trials < TRIAL_MINIMUM) { |
588 | error("Minimum primality trials is %d", TRIAL_MINIMUM); | 588 | error("Minimum primality trials is %d", TRIAL_MINIMUM); |
@@ -716,8 +716,6 @@ prime_test(FILE *in, FILE *out, u_int32_t trials, u_int32_t generator_wanted, | |||
716 | if (generator_known == 0) { | 716 | if (generator_known == 0) { |
717 | if (BN_mod_word(p, 24) == 11) | 717 | if (BN_mod_word(p, 24) == 11) |
718 | generator_known = 2; | 718 | generator_known = 2; |
719 | else if (BN_mod_word(p, 12) == 5) | ||
720 | generator_known = 3; | ||
721 | else { | 719 | else { |
722 | u_int32_t r = BN_mod_word(p, 10); | 720 | u_int32_t r = BN_mod_word(p, 10); |
723 | 721 | ||
@@ -753,7 +751,10 @@ prime_test(FILE *in, FILE *out, u_int32_t trials, u_int32_t generator_wanted, | |||
753 | * that p is also prime. A single pass will weed out the | 751 | * that p is also prime. A single pass will weed out the |
754 | * vast majority of composite q's. | 752 | * vast majority of composite q's. |
755 | */ | 753 | */ |
756 | if (BN_is_prime_ex(q, 1, ctx, NULL) <= 0) { | 754 | is_prime = BN_is_prime_ex(q, 1, ctx, NULL); |
755 | if (is_prime < 0) | ||
756 | fatal("BN_is_prime_ex failed"); | ||
757 | if (is_prime == 0) { | ||
757 | debug("%10u: q failed first possible prime test", | 758 | debug("%10u: q failed first possible prime test", |
758 | count_in); | 759 | count_in); |
759 | continue; | 760 | continue; |
@@ -766,14 +767,20 @@ prime_test(FILE *in, FILE *out, u_int32_t trials, u_int32_t generator_wanted, | |||
766 | * will show up on the first Rabin-Miller iteration so it | 767 | * will show up on the first Rabin-Miller iteration so it |
767 | * doesn't hurt to specify a high iteration count. | 768 | * doesn't hurt to specify a high iteration count. |
768 | */ | 769 | */ |
769 | if (!BN_is_prime_ex(p, trials, ctx, NULL)) { | 770 | is_prime = BN_is_prime_ex(p, trials, ctx, NULL); |
771 | if (is_prime < 0) | ||
772 | fatal("BN_is_prime_ex failed"); | ||
773 | if (is_prime == 0) { | ||
770 | debug("%10u: p is not prime", count_in); | 774 | debug("%10u: p is not prime", count_in); |
771 | continue; | 775 | continue; |
772 | } | 776 | } |
773 | debug("%10u: p is almost certainly prime", count_in); | 777 | debug("%10u: p is almost certainly prime", count_in); |
774 | 778 | ||
775 | /* recheck q more rigorously */ | 779 | /* recheck q more rigorously */ |
776 | if (!BN_is_prime_ex(q, trials - 1, ctx, NULL)) { | 780 | is_prime = BN_is_prime_ex(q, trials - 1, ctx, NULL); |
781 | if (is_prime < 0) | ||
782 | fatal("BN_is_prime_ex failed"); | ||
783 | if (is_prime == 0) { | ||
777 | debug("%10u: q is not prime", count_in); | 784 | debug("%10u: q is not prime", count_in); |
778 | continue; | 785 | continue; |
779 | } | 786 | } |
@@ -1,4 +1,4 @@ | |||
1 | /* $OpenBSD: monitor.c,v 1.186 2018/07/20 03:46:34 djm Exp $ */ | 1 | /* $OpenBSD: monitor.c,v 1.197 2019/01/21 10:38:54 djm Exp $ */ |
2 | /* | 2 | /* |
3 | * Copyright 2002 Niels Provos <provos@citi.umich.edu> | 3 | * Copyright 2002 Niels Provos <provos@citi.umich.edu> |
4 | * Copyright 2002 Markus Friedl <markus@openbsd.org> | 4 | * Copyright 2002 Markus Friedl <markus@openbsd.org> |
@@ -112,48 +112,48 @@ static struct sshbuf *child_state; | |||
112 | 112 | ||
113 | /* Functions on the monitor that answer unprivileged requests */ | 113 | /* Functions on the monitor that answer unprivileged requests */ |
114 | 114 | ||
115 | int mm_answer_moduli(int, struct sshbuf *); | 115 | int mm_answer_moduli(struct ssh *, int, struct sshbuf *); |
116 | int mm_answer_sign(int, struct sshbuf *); | 116 | int mm_answer_sign(struct ssh *, int, struct sshbuf *); |
117 | int mm_answer_pwnamallow(int, struct sshbuf *); | 117 | int mm_answer_pwnamallow(struct ssh *, int, struct sshbuf *); |
118 | int mm_answer_auth2_read_banner(int, struct sshbuf *); | 118 | int mm_answer_auth2_read_banner(struct ssh *, int, struct sshbuf *); |
119 | int mm_answer_authserv(int, struct sshbuf *); | 119 | int mm_answer_authserv(struct ssh *, int, struct sshbuf *); |
120 | int mm_answer_authpassword(int, struct sshbuf *); | 120 | int mm_answer_authpassword(struct ssh *, int, struct sshbuf *); |
121 | int mm_answer_bsdauthquery(int, struct sshbuf *); | 121 | int mm_answer_bsdauthquery(struct ssh *, int, struct sshbuf *); |
122 | int mm_answer_bsdauthrespond(int, struct sshbuf *); | 122 | int mm_answer_bsdauthrespond(struct ssh *, int, struct sshbuf *); |
123 | int mm_answer_keyallowed(int, struct sshbuf *); | 123 | int mm_answer_skeyquery(struct ssh *, int, struct sshbuf *); |
124 | int mm_answer_keyverify(int, struct sshbuf *); | 124 | int mm_answer_skeyrespond(struct ssh *, int, struct sshbuf *); |
125 | int mm_answer_pty(int, struct sshbuf *); | 125 | int mm_answer_keyallowed(struct ssh *, int, struct sshbuf *); |
126 | int mm_answer_pty_cleanup(int, struct sshbuf *); | 126 | int mm_answer_keyverify(struct ssh *, int, struct sshbuf *); |
127 | int mm_answer_term(int, struct sshbuf *); | 127 | int mm_answer_pty(struct ssh *, int, struct sshbuf *); |
128 | int mm_answer_rsa_keyallowed(int, struct sshbuf *); | 128 | int mm_answer_pty_cleanup(struct ssh *, int, struct sshbuf *); |
129 | int mm_answer_rsa_challenge(int, struct sshbuf *); | 129 | int mm_answer_term(struct ssh *, int, struct sshbuf *); |
130 | int mm_answer_rsa_response(int, struct sshbuf *); | 130 | int mm_answer_rsa_keyallowed(struct ssh *, int, struct sshbuf *); |
131 | int mm_answer_sesskey(int, struct sshbuf *); | 131 | int mm_answer_rsa_challenge(struct ssh *, int, struct sshbuf *); |
132 | int mm_answer_sessid(int, struct sshbuf *); | 132 | int mm_answer_rsa_response(struct ssh *, int, struct sshbuf *); |
133 | int mm_answer_sesskey(struct ssh *, int, struct sshbuf *); | ||
134 | int mm_answer_sessid(struct ssh *, int, struct sshbuf *); | ||
133 | 135 | ||
134 | #ifdef USE_PAM | 136 | #ifdef USE_PAM |
135 | int mm_answer_pam_start(int, struct sshbuf *); | 137 | int mm_answer_pam_start(struct ssh *, int, struct sshbuf *); |
136 | int mm_answer_pam_account(int, struct sshbuf *); | 138 | int mm_answer_pam_account(struct ssh *, int, struct sshbuf *); |
137 | int mm_answer_pam_init_ctx(int, struct sshbuf *); | 139 | int mm_answer_pam_init_ctx(struct ssh *, int, struct sshbuf *); |
138 | int mm_answer_pam_query(int, struct sshbuf *); | 140 | int mm_answer_pam_query(struct ssh *, int, struct sshbuf *); |
139 | int mm_answer_pam_respond(int, struct sshbuf *); | 141 | int mm_answer_pam_respond(struct ssh *, int, struct sshbuf *); |
140 | int mm_answer_pam_free_ctx(int, struct sshbuf *); | 142 | int mm_answer_pam_free_ctx(struct ssh *, int, struct sshbuf *); |
141 | #endif | 143 | #endif |
142 | 144 | ||
143 | #ifdef GSSAPI | 145 | #ifdef GSSAPI |
144 | int mm_answer_gss_setup_ctx(int, struct sshbuf *); | 146 | int mm_answer_gss_setup_ctx(struct ssh *, int, struct sshbuf *); |
145 | int mm_answer_gss_accept_ctx(int, struct sshbuf *); | 147 | int mm_answer_gss_accept_ctx(struct ssh *, int, struct sshbuf *); |
146 | int mm_answer_gss_userok(int, struct sshbuf *); | 148 | int mm_answer_gss_userok(struct ssh *, int, struct sshbuf *); |
147 | int mm_answer_gss_checkmic(int, struct sshbuf *); | 149 | int mm_answer_gss_checkmic(struct ssh *, int, struct sshbuf *); |
148 | #endif | 150 | #endif |
149 | 151 | ||
150 | #ifdef SSH_AUDIT_EVENTS | 152 | #ifdef SSH_AUDIT_EVENTS |
151 | int mm_answer_audit_event(int, struct sshbuf *); | 153 | int mm_answer_audit_event(struct ssh *, int, struct sshbuf *); |
152 | int mm_answer_audit_command(int, struct sshbuf *); | 154 | int mm_answer_audit_command(struct ssh *, int, struct sshbuf *); |
153 | #endif | 155 | #endif |
154 | 156 | ||
155 | static int monitor_read_log(struct monitor *); | ||
156 | |||
157 | static Authctxt *authctxt; | 157 | static Authctxt *authctxt; |
158 | 158 | ||
159 | /* local state for key verify */ | 159 | /* local state for key verify */ |
@@ -172,7 +172,7 @@ static pid_t monitor_child_pid; | |||
172 | struct mon_table { | 172 | struct mon_table { |
173 | enum monitor_reqtype type; | 173 | enum monitor_reqtype type; |
174 | int flags; | 174 | int flags; |
175 | int (*f)(int, struct sshbuf *); | 175 | int (*f)(struct ssh *, int, struct sshbuf *); |
176 | }; | 176 | }; |
177 | 177 | ||
178 | #define MON_ISAUTH 0x0004 /* Required for Authentication */ | 178 | #define MON_ISAUTH 0x0004 /* Required for Authentication */ |
@@ -184,6 +184,10 @@ struct mon_table { | |||
184 | 184 | ||
185 | #define MON_PERMIT 0x1000 /* Request is permitted */ | 185 | #define MON_PERMIT 0x1000 /* Request is permitted */ |
186 | 186 | ||
187 | static int monitor_read(struct ssh *, struct monitor *, struct mon_table *, | ||
188 | struct mon_table **); | ||
189 | static int monitor_read_log(struct monitor *); | ||
190 | |||
187 | struct mon_table mon_dispatch_proto20[] = { | 191 | struct mon_table mon_dispatch_proto20[] = { |
188 | #ifdef WITH_OPENSSL | 192 | #ifdef WITH_OPENSSL |
189 | {MONITOR_REQ_MODULI, MON_ONCE, mm_answer_moduli}, | 193 | {MONITOR_REQ_MODULI, MON_ONCE, mm_answer_moduli}, |
@@ -265,9 +269,8 @@ monitor_permit_authentications(int permit) | |||
265 | } | 269 | } |
266 | 270 | ||
267 | void | 271 | void |
268 | monitor_child_preauth(Authctxt *_authctxt, struct monitor *pmonitor) | 272 | monitor_child_preauth(struct ssh *ssh, struct monitor *pmonitor) |
269 | { | 273 | { |
270 | struct ssh *ssh = active_state; /* XXX */ | ||
271 | struct mon_table *ent; | 274 | struct mon_table *ent; |
272 | int authenticated = 0, partial = 0; | 275 | int authenticated = 0, partial = 0; |
273 | 276 | ||
@@ -279,7 +282,7 @@ monitor_child_preauth(Authctxt *_authctxt, struct monitor *pmonitor) | |||
279 | close(pmonitor->m_log_sendfd); | 282 | close(pmonitor->m_log_sendfd); |
280 | pmonitor->m_log_sendfd = pmonitor->m_recvfd = -1; | 283 | pmonitor->m_log_sendfd = pmonitor->m_recvfd = -1; |
281 | 284 | ||
282 | authctxt = _authctxt; | 285 | authctxt = (Authctxt *)ssh->authctxt; |
283 | memset(authctxt, 0, sizeof(*authctxt)); | 286 | memset(authctxt, 0, sizeof(*authctxt)); |
284 | ssh->authctxt = authctxt; | 287 | ssh->authctxt = authctxt; |
285 | 288 | ||
@@ -297,7 +300,8 @@ monitor_child_preauth(Authctxt *_authctxt, struct monitor *pmonitor) | |||
297 | auth_submethod = NULL; | 300 | auth_submethod = NULL; |
298 | auth2_authctxt_reset_info(authctxt); | 301 | auth2_authctxt_reset_info(authctxt); |
299 | 302 | ||
300 | authenticated = (monitor_read(pmonitor, mon_dispatch, &ent) == 1); | 303 | authenticated = (monitor_read(ssh, pmonitor, |
304 | mon_dispatch, &ent) == 1); | ||
301 | 305 | ||
302 | /* Special handling for multiple required authentications */ | 306 | /* Special handling for multiple required authentications */ |
303 | if (options.num_auth_methods != 0) { | 307 | if (options.num_auth_methods != 0) { |
@@ -329,13 +333,13 @@ monitor_child_preauth(Authctxt *_authctxt, struct monitor *pmonitor) | |||
329 | mm_request_receive_expect(pmonitor->m_sendfd, | 333 | mm_request_receive_expect(pmonitor->m_sendfd, |
330 | MONITOR_REQ_PAM_ACCOUNT, m); | 334 | MONITOR_REQ_PAM_ACCOUNT, m); |
331 | authenticated = mm_answer_pam_account( | 335 | authenticated = mm_answer_pam_account( |
332 | pmonitor->m_sendfd, m); | 336 | ssh, pmonitor->m_sendfd, m); |
333 | sshbuf_free(m); | 337 | sshbuf_free(m); |
334 | } | 338 | } |
335 | #endif | 339 | #endif |
336 | } | 340 | } |
337 | if (ent->flags & (MON_AUTHDECIDE|MON_ALOG)) { | 341 | if (ent->flags & (MON_AUTHDECIDE|MON_ALOG)) { |
338 | auth_log(authctxt, authenticated, partial, | 342 | auth_log(ssh, authenticated, partial, |
339 | auth_method, auth_submethod); | 343 | auth_method, auth_submethod); |
340 | if (!partial && !authenticated) | 344 | if (!partial && !authenticated) |
341 | authctxt->failures++; | 345 | authctxt->failures++; |
@@ -356,7 +360,7 @@ monitor_child_preauth(Authctxt *_authctxt, struct monitor *pmonitor) | |||
356 | ssh->authctxt = NULL; | 360 | ssh->authctxt = NULL; |
357 | ssh_packet_set_log_preamble(ssh, "user %s", authctxt->user); | 361 | ssh_packet_set_log_preamble(ssh, "user %s", authctxt->user); |
358 | 362 | ||
359 | mm_get_keystate(pmonitor); | 363 | mm_get_keystate(ssh, pmonitor); |
360 | 364 | ||
361 | /* Drain any buffered messages from the child */ | 365 | /* Drain any buffered messages from the child */ |
362 | while (pmonitor->m_log_recvfd != -1 && monitor_read_log(pmonitor) == 0) | 366 | while (pmonitor->m_log_recvfd != -1 && monitor_read_log(pmonitor) == 0) |
@@ -382,7 +386,7 @@ monitor_child_handler(int sig) | |||
382 | } | 386 | } |
383 | 387 | ||
384 | void | 388 | void |
385 | monitor_child_postauth(struct monitor *pmonitor) | 389 | monitor_child_postauth(struct ssh *ssh, struct monitor *pmonitor) |
386 | { | 390 | { |
387 | close(pmonitor->m_recvfd); | 391 | close(pmonitor->m_recvfd); |
388 | pmonitor->m_recvfd = -1; | 392 | pmonitor->m_recvfd = -1; |
@@ -408,7 +412,7 @@ monitor_child_postauth(struct monitor *pmonitor) | |||
408 | } | 412 | } |
409 | 413 | ||
410 | for (;;) | 414 | for (;;) |
411 | monitor_read(pmonitor, mon_dispatch, NULL); | 415 | monitor_read(ssh, pmonitor, mon_dispatch, NULL); |
412 | } | 416 | } |
413 | 417 | ||
414 | static int | 418 | static int |
@@ -463,8 +467,8 @@ monitor_read_log(struct monitor *pmonitor) | |||
463 | return 0; | 467 | return 0; |
464 | } | 468 | } |
465 | 469 | ||
466 | int | 470 | static int |
467 | monitor_read(struct monitor *pmonitor, struct mon_table *ent, | 471 | monitor_read(struct ssh *ssh, struct monitor *pmonitor, struct mon_table *ent, |
468 | struct mon_table **pent) | 472 | struct mon_table **pent) |
469 | { | 473 | { |
470 | struct sshbuf *m; | 474 | struct sshbuf *m; |
@@ -514,7 +518,7 @@ monitor_read(struct monitor *pmonitor, struct mon_table *ent, | |||
514 | if (!(ent->flags & MON_PERMIT)) | 518 | if (!(ent->flags & MON_PERMIT)) |
515 | fatal("%s: unpermitted request %d", __func__, | 519 | fatal("%s: unpermitted request %d", __func__, |
516 | type); | 520 | type); |
517 | ret = (*ent->f)(pmonitor->m_sendfd, m); | 521 | ret = (*ent->f)(ssh, pmonitor->m_sendfd, m); |
518 | sshbuf_free(m); | 522 | sshbuf_free(m); |
519 | 523 | ||
520 | /* The child may use this request only once, disable it */ | 524 | /* The child may use this request only once, disable it */ |
@@ -565,7 +569,7 @@ monitor_reset_key_state(void) | |||
565 | 569 | ||
566 | #ifdef WITH_OPENSSL | 570 | #ifdef WITH_OPENSSL |
567 | int | 571 | int |
568 | mm_answer_moduli(int sock, struct sshbuf *m) | 572 | mm_answer_moduli(struct ssh *ssh, int sock, struct sshbuf *m) |
569 | { | 573 | { |
570 | DH *dh; | 574 | DH *dh; |
571 | const BIGNUM *dh_p, *dh_g; | 575 | const BIGNUM *dh_p, *dh_g; |
@@ -607,9 +611,8 @@ mm_answer_moduli(int sock, struct sshbuf *m) | |||
607 | #endif | 611 | #endif |
608 | 612 | ||
609 | int | 613 | int |
610 | mm_answer_sign(int sock, struct sshbuf *m) | 614 | mm_answer_sign(struct ssh *ssh, int sock, struct sshbuf *m) |
611 | { | 615 | { |
612 | struct ssh *ssh = active_state; /* XXX */ | ||
613 | extern int auth_sock; /* XXX move to state struct? */ | 616 | extern int auth_sock; /* XXX move to state struct? */ |
614 | struct sshkey *key; | 617 | struct sshkey *key; |
615 | struct sshbuf *sigbuf = NULL; | 618 | struct sshbuf *sigbuf = NULL; |
@@ -710,9 +713,8 @@ mm_answer_sign(int sock, struct sshbuf *m) | |||
710 | /* Retrieves the password entry and also checks if the user is permitted */ | 713 | /* Retrieves the password entry and also checks if the user is permitted */ |
711 | 714 | ||
712 | int | 715 | int |
713 | mm_answer_pwnamallow(int sock, struct sshbuf *m) | 716 | mm_answer_pwnamallow(struct ssh *ssh, int sock, struct sshbuf *m) |
714 | { | 717 | { |
715 | struct ssh *ssh = active_state; /* XXX */ | ||
716 | char *username; | 718 | char *username; |
717 | struct passwd *pwent; | 719 | struct passwd *pwent; |
718 | int r, allowed = 0; | 720 | int r, allowed = 0; |
@@ -726,7 +728,7 @@ mm_answer_pwnamallow(int sock, struct sshbuf *m) | |||
726 | if ((r = sshbuf_get_cstring(m, &username, NULL)) != 0) | 728 | if ((r = sshbuf_get_cstring(m, &username, NULL)) != 0) |
727 | fatal("%s: buffer error: %s", __func__, ssh_err(r)); | 729 | fatal("%s: buffer error: %s", __func__, ssh_err(r)); |
728 | 730 | ||
729 | pwent = getpwnamallow(username); | 731 | pwent = getpwnamallow(ssh, username); |
730 | 732 | ||
731 | authctxt->user = xstrdup(username); | 733 | authctxt->user = xstrdup(username); |
732 | setproctitle("%s [priv]", pwent ? username : "unknown"); | 734 | setproctitle("%s [priv]", pwent ? username : "unknown"); |
@@ -810,7 +812,7 @@ mm_answer_pwnamallow(int sock, struct sshbuf *m) | |||
810 | return (0); | 812 | return (0); |
811 | } | 813 | } |
812 | 814 | ||
813 | int mm_answer_auth2_read_banner(int sock, struct sshbuf *m) | 815 | int mm_answer_auth2_read_banner(struct ssh *ssh, int sock, struct sshbuf *m) |
814 | { | 816 | { |
815 | char *banner; | 817 | char *banner; |
816 | int r; | 818 | int r; |
@@ -826,7 +828,7 @@ int mm_answer_auth2_read_banner(int sock, struct sshbuf *m) | |||
826 | } | 828 | } |
827 | 829 | ||
828 | int | 830 | int |
829 | mm_answer_authserv(int sock, struct sshbuf *m) | 831 | mm_answer_authserv(struct ssh *ssh, int sock, struct sshbuf *m) |
830 | { | 832 | { |
831 | int r; | 833 | int r; |
832 | 834 | ||
@@ -846,10 +848,38 @@ mm_answer_authserv(int sock, struct sshbuf *m) | |||
846 | return (0); | 848 | return (0); |
847 | } | 849 | } |
848 | 850 | ||
851 | /* | ||
852 | * Check that the key type appears in the supplied pattern list, ignoring | ||
853 | * mismatches in the signature algorithm. (Signature algorithm checks are | ||
854 | * performed in the unprivileged authentication code). | ||
855 | * Returns 1 on success, 0 otherwise. | ||
856 | */ | ||
857 | static int | ||
858 | key_base_type_match(const char *method, const struct sshkey *key, | ||
859 | const char *list) | ||
860 | { | ||
861 | char *s, *l, *ol = xstrdup(list); | ||
862 | int found = 0; | ||
863 | |||
864 | l = ol; | ||
865 | for ((s = strsep(&l, ",")); s && *s != '\0'; (s = strsep(&l, ","))) { | ||
866 | if (sshkey_type_from_name(s) == key->type) { | ||
867 | found = 1; | ||
868 | break; | ||
869 | } | ||
870 | } | ||
871 | if (!found) { | ||
872 | error("%s key type %s is not in permitted list %s", method, | ||
873 | sshkey_ssh_name(key), list); | ||
874 | } | ||
875 | |||
876 | free(ol); | ||
877 | return found; | ||
878 | } | ||
879 | |||
849 | int | 880 | int |
850 | mm_answer_authpassword(int sock, struct sshbuf *m) | 881 | mm_answer_authpassword(struct ssh *ssh, int sock, struct sshbuf *m) |
851 | { | 882 | { |
852 | struct ssh *ssh = active_state; /* XXX */ | ||
853 | static int call_count; | 883 | static int call_count; |
854 | char *passwd; | 884 | char *passwd; |
855 | int r, authenticated; | 885 | int r, authenticated; |
@@ -888,7 +918,7 @@ mm_answer_authpassword(int sock, struct sshbuf *m) | |||
888 | 918 | ||
889 | #ifdef BSD_AUTH | 919 | #ifdef BSD_AUTH |
890 | int | 920 | int |
891 | mm_answer_bsdauthquery(int sock, struct sshbuf *m) | 921 | mm_answer_bsdauthquery(struct ssh *ssh, int sock, struct sshbuf *m) |
892 | { | 922 | { |
893 | char *name, *infotxt; | 923 | char *name, *infotxt; |
894 | u_int numprompts, *echo_on, success; | 924 | u_int numprompts, *echo_on, success; |
@@ -922,7 +952,7 @@ mm_answer_bsdauthquery(int sock, struct sshbuf *m) | |||
922 | } | 952 | } |
923 | 953 | ||
924 | int | 954 | int |
925 | mm_answer_bsdauthrespond(int sock, struct sshbuf *m) | 955 | mm_answer_bsdauthrespond(struct ssh *ssh, int sock, struct sshbuf *m) |
926 | { | 956 | { |
927 | char *response; | 957 | char *response; |
928 | int r, authok; | 958 | int r, authok; |
@@ -956,12 +986,12 @@ mm_answer_bsdauthrespond(int sock, struct sshbuf *m) | |||
956 | 986 | ||
957 | #ifdef USE_PAM | 987 | #ifdef USE_PAM |
958 | int | 988 | int |
959 | mm_answer_pam_start(int sock, struct sshbuf *m) | 989 | mm_answer_pam_start(struct ssh *ssh, int sock, struct sshbuf *m) |
960 | { | 990 | { |
961 | if (!options.use_pam) | 991 | if (!options.use_pam) |
962 | fatal("UsePAM not set, but ended up in %s anyway", __func__); | 992 | fatal("UsePAM not set, but ended up in %s anyway", __func__); |
963 | 993 | ||
964 | start_pam(authctxt); | 994 | start_pam(ssh); |
965 | 995 | ||
966 | monitor_permit(mon_dispatch, MONITOR_REQ_PAM_ACCOUNT, 1); | 996 | monitor_permit(mon_dispatch, MONITOR_REQ_PAM_ACCOUNT, 1); |
967 | if (options.kbd_interactive_authentication) | 997 | if (options.kbd_interactive_authentication) |
@@ -971,7 +1001,7 @@ mm_answer_pam_start(int sock, struct sshbuf *m) | |||
971 | } | 1001 | } |
972 | 1002 | ||
973 | int | 1003 | int |
974 | mm_answer_pam_account(int sock, struct sshbuf *m) | 1004 | mm_answer_pam_account(struct ssh *ssh, int sock, struct sshbuf *m) |
975 | { | 1005 | { |
976 | u_int ret; | 1006 | u_int ret; |
977 | int r; | 1007 | int r; |
@@ -994,7 +1024,7 @@ static void *sshpam_ctxt, *sshpam_authok; | |||
994 | extern KbdintDevice sshpam_device; | 1024 | extern KbdintDevice sshpam_device; |
995 | 1025 | ||
996 | int | 1026 | int |
997 | mm_answer_pam_init_ctx(int sock, struct sshbuf *m) | 1027 | mm_answer_pam_init_ctx(struct ssh *ssh, int sock, struct sshbuf *m) |
998 | { | 1028 | { |
999 | u_int ok = 0; | 1029 | u_int ok = 0; |
1000 | int r; | 1030 | int r; |
@@ -1019,7 +1049,7 @@ mm_answer_pam_init_ctx(int sock, struct sshbuf *m) | |||
1019 | } | 1049 | } |
1020 | 1050 | ||
1021 | int | 1051 | int |
1022 | mm_answer_pam_query(int sock, struct sshbuf *m) | 1052 | mm_answer_pam_query(struct ssh *ssh, int sock, struct sshbuf *m) |
1023 | { | 1053 | { |
1024 | char *name = NULL, *info = NULL, **prompts = NULL; | 1054 | char *name = NULL, *info = NULL, **prompts = NULL; |
1025 | u_int i, num = 0, *echo_on = 0; | 1055 | u_int i, num = 0, *echo_on = 0; |
@@ -1060,7 +1090,7 @@ mm_answer_pam_query(int sock, struct sshbuf *m) | |||
1060 | } | 1090 | } |
1061 | 1091 | ||
1062 | int | 1092 | int |
1063 | mm_answer_pam_respond(int sock, struct sshbuf *m) | 1093 | mm_answer_pam_respond(struct ssh *ssh, int sock, struct sshbuf *m) |
1064 | { | 1094 | { |
1065 | char **resp; | 1095 | char **resp; |
1066 | u_int i, num; | 1096 | u_int i, num; |
@@ -1098,7 +1128,7 @@ mm_answer_pam_respond(int sock, struct sshbuf *m) | |||
1098 | } | 1128 | } |
1099 | 1129 | ||
1100 | int | 1130 | int |
1101 | mm_answer_pam_free_ctx(int sock, struct sshbuf *m) | 1131 | mm_answer_pam_free_ctx(struct ssh *ssh, int sock, struct sshbuf *m) |
1102 | { | 1132 | { |
1103 | int r = sshpam_authok != NULL && sshpam_authok == sshpam_ctxt; | 1133 | int r = sshpam_authok != NULL && sshpam_authok == sshpam_ctxt; |
1104 | 1134 | ||
@@ -1118,9 +1148,8 @@ mm_answer_pam_free_ctx(int sock, struct sshbuf *m) | |||
1118 | #endif | 1148 | #endif |
1119 | 1149 | ||
1120 | int | 1150 | int |
1121 | mm_answer_keyallowed(int sock, struct sshbuf *m) | 1151 | mm_answer_keyallowed(struct ssh *ssh, int sock, struct sshbuf *m) |
1122 | { | 1152 | { |
1123 | struct ssh *ssh = active_state; /* XXX */ | ||
1124 | struct sshkey *key = NULL; | 1153 | struct sshkey *key = NULL; |
1125 | char *cuser, *chost; | 1154 | char *cuser, *chost; |
1126 | u_int pubkey_auth_attempt; | 1155 | u_int pubkey_auth_attempt; |
@@ -1151,8 +1180,8 @@ mm_answer_keyallowed(int sock, struct sshbuf *m) | |||
1151 | break; | 1180 | break; |
1152 | if (auth2_key_already_used(authctxt, key)) | 1181 | if (auth2_key_already_used(authctxt, key)) |
1153 | break; | 1182 | break; |
1154 | if (match_pattern_list(sshkey_ssh_name(key), | 1183 | if (!key_base_type_match(auth_method, key, |
1155 | options.pubkey_key_types, 0) != 1) | 1184 | options.pubkey_key_types)) |
1156 | break; | 1185 | break; |
1157 | allowed = user_key_allowed(ssh, authctxt->pw, key, | 1186 | allowed = user_key_allowed(ssh, authctxt->pw, key, |
1158 | pubkey_auth_attempt, &opts); | 1187 | pubkey_auth_attempt, &opts); |
@@ -1163,10 +1192,10 @@ mm_answer_keyallowed(int sock, struct sshbuf *m) | |||
1163 | break; | 1192 | break; |
1164 | if (auth2_key_already_used(authctxt, key)) | 1193 | if (auth2_key_already_used(authctxt, key)) |
1165 | break; | 1194 | break; |
1166 | if (match_pattern_list(sshkey_ssh_name(key), | 1195 | if (!key_base_type_match(auth_method, key, |
1167 | options.hostbased_key_types, 0) != 1) | 1196 | options.hostbased_key_types)) |
1168 | break; | 1197 | break; |
1169 | allowed = hostbased_key_allowed(authctxt->pw, | 1198 | allowed = hostbased_key_allowed(ssh, authctxt->pw, |
1170 | cuser, chost, key); | 1199 | cuser, chost, key); |
1171 | auth2_record_info(authctxt, | 1200 | auth2_record_info(authctxt, |
1172 | "client user \"%.100s\", client host \"%.100s\"", | 1201 | "client user \"%.100s\", client host \"%.100s\"", |
@@ -1198,7 +1227,7 @@ mm_answer_keyallowed(int sock, struct sshbuf *m) | |||
1198 | hostbased_chost = chost; | 1227 | hostbased_chost = chost; |
1199 | } else { | 1228 | } else { |
1200 | /* Log failed attempt */ | 1229 | /* Log failed attempt */ |
1201 | auth_log(authctxt, 0, 0, auth_method, NULL); | 1230 | auth_log(ssh, 0, 0, auth_method, NULL); |
1202 | free(cuser); | 1231 | free(cuser); |
1203 | free(chost); | 1232 | free(chost); |
1204 | } | 1233 | } |
@@ -1355,9 +1384,8 @@ monitor_valid_hostbasedblob(u_char *data, u_int datalen, char *cuser, | |||
1355 | } | 1384 | } |
1356 | 1385 | ||
1357 | int | 1386 | int |
1358 | mm_answer_keyverify(int sock, struct sshbuf *m) | 1387 | mm_answer_keyverify(struct ssh *ssh, int sock, struct sshbuf *m) |
1359 | { | 1388 | { |
1360 | struct ssh *ssh = active_state; /* XXX */ | ||
1361 | struct sshkey *key; | 1389 | struct sshkey *key; |
1362 | u_char *signature, *data, *blob; | 1390 | u_char *signature, *data, *blob; |
1363 | char *sigalg; | 1391 | char *sigalg; |
@@ -1402,7 +1430,7 @@ mm_answer_keyverify(int sock, struct sshbuf *m) | |||
1402 | fatal("%s: bad signature data blob", __func__); | 1430 | fatal("%s: bad signature data blob", __func__); |
1403 | 1431 | ||
1404 | ret = sshkey_verify(key, signature, signaturelen, data, datalen, | 1432 | ret = sshkey_verify(key, signature, signaturelen, data, datalen, |
1405 | sigalg, active_state->compat); | 1433 | sigalg, ssh->compat); |
1406 | debug3("%s: %s %p signature %s", __func__, auth_method, key, | 1434 | debug3("%s: %s %p signature %s", __func__, auth_method, key, |
1407 | (ret == 0) ? "verified" : "unverified"); | 1435 | (ret == 0) ? "verified" : "unverified"); |
1408 | auth2_record_key(authctxt, ret == 0, key); | 1436 | auth2_record_key(authctxt, ret == 0, key); |
@@ -1429,9 +1457,8 @@ mm_answer_keyverify(int sock, struct sshbuf *m) | |||
1429 | } | 1457 | } |
1430 | 1458 | ||
1431 | static void | 1459 | static void |
1432 | mm_record_login(Session *s, struct passwd *pw) | 1460 | mm_record_login(struct ssh *ssh, Session *s, struct passwd *pw) |
1433 | { | 1461 | { |
1434 | struct ssh *ssh = active_state; /* XXX */ | ||
1435 | socklen_t fromlen; | 1462 | socklen_t fromlen; |
1436 | struct sockaddr_storage from; | 1463 | struct sockaddr_storage from; |
1437 | 1464 | ||
@@ -1441,8 +1468,8 @@ mm_record_login(Session *s, struct passwd *pw) | |||
1441 | */ | 1468 | */ |
1442 | memset(&from, 0, sizeof(from)); | 1469 | memset(&from, 0, sizeof(from)); |
1443 | fromlen = sizeof(from); | 1470 | fromlen = sizeof(from); |
1444 | if (packet_connection_is_on_socket()) { | 1471 | if (ssh_packet_connection_is_on_socket(ssh)) { |
1445 | if (getpeername(packet_get_connection_in(), | 1472 | if (getpeername(ssh_packet_get_connection_in(ssh), |
1446 | (struct sockaddr *)&from, &fromlen) < 0) { | 1473 | (struct sockaddr *)&from, &fromlen) < 0) { |
1447 | debug("getpeername: %.100s", strerror(errno)); | 1474 | debug("getpeername: %.100s", strerror(errno)); |
1448 | cleanup_exit(255); | 1475 | cleanup_exit(255); |
@@ -1466,7 +1493,7 @@ mm_session_close(Session *s) | |||
1466 | } | 1493 | } |
1467 | 1494 | ||
1468 | int | 1495 | int |
1469 | mm_answer_pty(int sock, struct sshbuf *m) | 1496 | mm_answer_pty(struct ssh *ssh, int sock, struct sshbuf *m) |
1470 | { | 1497 | { |
1471 | extern struct monitor *pmonitor; | 1498 | extern struct monitor *pmonitor; |
1472 | Session *s; | 1499 | Session *s; |
@@ -1494,7 +1521,7 @@ mm_answer_pty(int sock, struct sshbuf *m) | |||
1494 | if (dup2(s->ttyfd, 0) == -1) | 1521 | if (dup2(s->ttyfd, 0) == -1) |
1495 | fatal("%s: dup2", __func__); | 1522 | fatal("%s: dup2", __func__); |
1496 | 1523 | ||
1497 | mm_record_login(s, authctxt->pw); | 1524 | mm_record_login(ssh, s, authctxt->pw); |
1498 | 1525 | ||
1499 | /* Now we can close the file descriptor again */ | 1526 | /* Now we can close the file descriptor again */ |
1500 | close(0); | 1527 | close(0); |
@@ -1536,7 +1563,7 @@ mm_answer_pty(int sock, struct sshbuf *m) | |||
1536 | } | 1563 | } |
1537 | 1564 | ||
1538 | int | 1565 | int |
1539 | mm_answer_pty_cleanup(int sock, struct sshbuf *m) | 1566 | mm_answer_pty_cleanup(struct ssh *ssh, int sock, struct sshbuf *m) |
1540 | { | 1567 | { |
1541 | Session *s; | 1568 | Session *s; |
1542 | char *tty; | 1569 | char *tty; |
@@ -1554,9 +1581,8 @@ mm_answer_pty_cleanup(int sock, struct sshbuf *m) | |||
1554 | } | 1581 | } |
1555 | 1582 | ||
1556 | int | 1583 | int |
1557 | mm_answer_term(int sock, struct sshbuf *req) | 1584 | mm_answer_term(struct ssh *ssh, int sock, struct sshbuf *req) |
1558 | { | 1585 | { |
1559 | struct ssh *ssh = active_state; /* XXX */ | ||
1560 | extern struct monitor *pmonitor; | 1586 | extern struct monitor *pmonitor; |
1561 | int res, status; | 1587 | int res, status; |
1562 | 1588 | ||
@@ -1583,7 +1609,7 @@ mm_answer_term(int sock, struct sshbuf *req) | |||
1583 | #ifdef SSH_AUDIT_EVENTS | 1609 | #ifdef SSH_AUDIT_EVENTS |
1584 | /* Report that an audit event occurred */ | 1610 | /* Report that an audit event occurred */ |
1585 | int | 1611 | int |
1586 | mm_answer_audit_event(int socket, struct sshbuf *m) | 1612 | mm_answer_audit_event(struct ssh *ssh, int socket, struct sshbuf *m) |
1587 | { | 1613 | { |
1588 | u_int n; | 1614 | u_int n; |
1589 | ssh_audit_event_t event; | 1615 | ssh_audit_event_t event; |
@@ -1602,7 +1628,7 @@ mm_answer_audit_event(int socket, struct sshbuf *m) | |||
1602 | case SSH_LOGIN_ROOT_DENIED: | 1628 | case SSH_LOGIN_ROOT_DENIED: |
1603 | case SSH_CONNECTION_CLOSE: | 1629 | case SSH_CONNECTION_CLOSE: |
1604 | case SSH_INVALID_USER: | 1630 | case SSH_INVALID_USER: |
1605 | audit_event(event); | 1631 | audit_event(ssh, event); |
1606 | break; | 1632 | break; |
1607 | default: | 1633 | default: |
1608 | fatal("Audit event type %d not permitted", event); | 1634 | fatal("Audit event type %d not permitted", event); |
@@ -1612,7 +1638,7 @@ mm_answer_audit_event(int socket, struct sshbuf *m) | |||
1612 | } | 1638 | } |
1613 | 1639 | ||
1614 | int | 1640 | int |
1615 | mm_answer_audit_command(int socket, struct sshbuf *m) | 1641 | mm_answer_audit_command(struct ssh *ssh, int socket, struct sshbuf *m) |
1616 | { | 1642 | { |
1617 | char *cmd; | 1643 | char *cmd; |
1618 | int r; | 1644 | int r; |
@@ -1628,10 +1654,8 @@ mm_answer_audit_command(int socket, struct sshbuf *m) | |||
1628 | #endif /* SSH_AUDIT_EVENTS */ | 1654 | #endif /* SSH_AUDIT_EVENTS */ |
1629 | 1655 | ||
1630 | void | 1656 | void |
1631 | monitor_clear_keystate(struct monitor *pmonitor) | 1657 | monitor_clear_keystate(struct ssh *ssh, struct monitor *pmonitor) |
1632 | { | 1658 | { |
1633 | struct ssh *ssh = active_state; /* XXX */ | ||
1634 | |||
1635 | ssh_clear_newkeys(ssh, MODE_IN); | 1659 | ssh_clear_newkeys(ssh, MODE_IN); |
1636 | ssh_clear_newkeys(ssh, MODE_OUT); | 1660 | ssh_clear_newkeys(ssh, MODE_OUT); |
1637 | sshbuf_free(child_state); | 1661 | sshbuf_free(child_state); |
@@ -1639,9 +1663,8 @@ monitor_clear_keystate(struct monitor *pmonitor) | |||
1639 | } | 1663 | } |
1640 | 1664 | ||
1641 | void | 1665 | void |
1642 | monitor_apply_keystate(struct monitor *pmonitor) | 1666 | monitor_apply_keystate(struct ssh *ssh, struct monitor *pmonitor) |
1643 | { | 1667 | { |
1644 | struct ssh *ssh = active_state; /* XXX */ | ||
1645 | struct kex *kex; | 1668 | struct kex *kex; |
1646 | int r; | 1669 | int r; |
1647 | 1670 | ||
@@ -1654,18 +1677,19 @@ monitor_apply_keystate(struct monitor *pmonitor) | |||
1654 | if ((kex = ssh->kex) != NULL) { | 1677 | if ((kex = ssh->kex) != NULL) { |
1655 | /* XXX set callbacks */ | 1678 | /* XXX set callbacks */ |
1656 | #ifdef WITH_OPENSSL | 1679 | #ifdef WITH_OPENSSL |
1657 | kex->kex[KEX_DH_GRP1_SHA1] = kexdh_server; | 1680 | kex->kex[KEX_DH_GRP1_SHA1] = kex_gen_server; |
1658 | kex->kex[KEX_DH_GRP14_SHA1] = kexdh_server; | 1681 | kex->kex[KEX_DH_GRP14_SHA1] = kex_gen_server; |
1659 | kex->kex[KEX_DH_GRP14_SHA256] = kexdh_server; | 1682 | kex->kex[KEX_DH_GRP14_SHA256] = kex_gen_server; |
1660 | kex->kex[KEX_DH_GRP16_SHA512] = kexdh_server; | 1683 | kex->kex[KEX_DH_GRP16_SHA512] = kex_gen_server; |
1661 | kex->kex[KEX_DH_GRP18_SHA512] = kexdh_server; | 1684 | kex->kex[KEX_DH_GRP18_SHA512] = kex_gen_server; |
1662 | kex->kex[KEX_DH_GEX_SHA1] = kexgex_server; | 1685 | kex->kex[KEX_DH_GEX_SHA1] = kexgex_server; |
1663 | kex->kex[KEX_DH_GEX_SHA256] = kexgex_server; | 1686 | kex->kex[KEX_DH_GEX_SHA256] = kexgex_server; |
1664 | # ifdef OPENSSL_HAS_ECC | 1687 | # ifdef OPENSSL_HAS_ECC |
1665 | kex->kex[KEX_ECDH_SHA2] = kexecdh_server; | 1688 | kex->kex[KEX_ECDH_SHA2] = kex_gen_server; |
1666 | # endif | 1689 | # endif |
1667 | #endif /* WITH_OPENSSL */ | 1690 | #endif /* WITH_OPENSSL */ |
1668 | kex->kex[KEX_C25519_SHA256] = kexc25519_server; | 1691 | kex->kex[KEX_C25519_SHA256] = kex_gen_server; |
1692 | kex->kex[KEX_KEM_SNTRUP4591761X25519_SHA512] = kex_gen_server; | ||
1669 | kex->load_host_public_key=&get_hostkey_public_by_type; | 1693 | kex->load_host_public_key=&get_hostkey_public_by_type; |
1670 | kex->load_host_private_key=&get_hostkey_private_by_type; | 1694 | kex->load_host_private_key=&get_hostkey_private_by_type; |
1671 | kex->host_key_index=&get_hostkey_index; | 1695 | kex->host_key_index=&get_hostkey_index; |
@@ -1676,7 +1700,7 @@ monitor_apply_keystate(struct monitor *pmonitor) | |||
1676 | /* This function requries careful sanity checking */ | 1700 | /* This function requries careful sanity checking */ |
1677 | 1701 | ||
1678 | void | 1702 | void |
1679 | mm_get_keystate(struct monitor *pmonitor) | 1703 | mm_get_keystate(struct ssh *ssh, struct monitor *pmonitor) |
1680 | { | 1704 | { |
1681 | debug3("%s: Waiting for new keys", __func__); | 1705 | debug3("%s: Waiting for new keys", __func__); |
1682 | 1706 | ||
@@ -1748,7 +1772,7 @@ monitor_reinit(struct monitor *mon) | |||
1748 | 1772 | ||
1749 | #ifdef GSSAPI | 1773 | #ifdef GSSAPI |
1750 | int | 1774 | int |
1751 | mm_answer_gss_setup_ctx(int sock, struct sshbuf *m) | 1775 | mm_answer_gss_setup_ctx(struct ssh *ssh, int sock, struct sshbuf *m) |
1752 | { | 1776 | { |
1753 | gss_OID_desc goid; | 1777 | gss_OID_desc goid; |
1754 | OM_uint32 major; | 1778 | OM_uint32 major; |
@@ -1781,7 +1805,7 @@ mm_answer_gss_setup_ctx(int sock, struct sshbuf *m) | |||
1781 | } | 1805 | } |
1782 | 1806 | ||
1783 | int | 1807 | int |
1784 | mm_answer_gss_accept_ctx(int sock, struct sshbuf *m) | 1808 | mm_answer_gss_accept_ctx(struct ssh *ssh, int sock, struct sshbuf *m) |
1785 | { | 1809 | { |
1786 | gss_buffer_desc in; | 1810 | gss_buffer_desc in; |
1787 | gss_buffer_desc out = GSS_C_EMPTY_BUFFER; | 1811 | gss_buffer_desc out = GSS_C_EMPTY_BUFFER; |
@@ -1815,7 +1839,7 @@ mm_answer_gss_accept_ctx(int sock, struct sshbuf *m) | |||
1815 | } | 1839 | } |
1816 | 1840 | ||
1817 | int | 1841 | int |
1818 | mm_answer_gss_checkmic(int sock, struct sshbuf *m) | 1842 | mm_answer_gss_checkmic(struct ssh *ssh, int sock, struct sshbuf *m) |
1819 | { | 1843 | { |
1820 | gss_buffer_desc gssbuf, mic; | 1844 | gss_buffer_desc gssbuf, mic; |
1821 | OM_uint32 ret; | 1845 | OM_uint32 ret; |
@@ -1846,7 +1870,7 @@ mm_answer_gss_checkmic(int sock, struct sshbuf *m) | |||
1846 | } | 1870 | } |
1847 | 1871 | ||
1848 | int | 1872 | int |
1849 | mm_answer_gss_userok(int sock, struct sshbuf *m) | 1873 | mm_answer_gss_userok(struct ssh *ssh, int sock, struct sshbuf *m) |
1850 | { | 1874 | { |
1851 | int r, authenticated; | 1875 | int r, authenticated; |
1852 | const char *displayname; | 1876 | const char *displayname; |
@@ -1,4 +1,4 @@ | |||
1 | /* $OpenBSD: monitor.h,v 1.21 2018/07/09 21:53:45 markus Exp $ */ | 1 | /* $OpenBSD: monitor.h,v 1.23 2019/01/19 21:43:56 djm Exp $ */ |
2 | 2 | ||
3 | /* | 3 | /* |
4 | * Copyright 2002 Niels Provos <provos@citi.umich.edu> | 4 | * Copyright 2002 Niels Provos <provos@citi.umich.edu> |
@@ -65,6 +65,8 @@ enum monitor_reqtype { | |||
65 | 65 | ||
66 | }; | 66 | }; |
67 | 67 | ||
68 | struct ssh; | ||
69 | |||
68 | struct monitor { | 70 | struct monitor { |
69 | int m_recvfd; | 71 | int m_recvfd; |
70 | int m_sendfd; | 72 | int m_sendfd; |
@@ -78,15 +80,16 @@ struct monitor *monitor_init(void); | |||
78 | void monitor_reinit(struct monitor *); | 80 | void monitor_reinit(struct monitor *); |
79 | 81 | ||
80 | struct Authctxt; | 82 | struct Authctxt; |
81 | void monitor_child_preauth(struct Authctxt *, struct monitor *); | 83 | void monitor_child_preauth(struct ssh *, struct monitor *); |
82 | void monitor_child_postauth(struct monitor *); | 84 | void monitor_child_postauth(struct ssh *, struct monitor *); |
83 | 85 | ||
84 | struct mon_table; | 86 | void monitor_clear_keystate(struct ssh *, struct monitor *); |
85 | int monitor_read(struct monitor*, struct mon_table *, struct mon_table **); | 87 | void monitor_apply_keystate(struct ssh *, struct monitor *); |
86 | 88 | ||
87 | /* Prototypes for request sending and receiving */ | 89 | /* Prototypes for request sending and receiving */ |
88 | void mm_request_send(int, enum monitor_reqtype, struct sshbuf *); | 90 | void mm_request_send(int, enum monitor_reqtype, struct sshbuf *); |
89 | void mm_request_receive(int, struct sshbuf *); | 91 | void mm_request_receive(int, struct sshbuf *); |
90 | void mm_request_receive_expect(int, enum monitor_reqtype, struct sshbuf *); | 92 | void mm_request_receive_expect(int, enum monitor_reqtype, struct sshbuf *); |
93 | void mm_get_keystate(struct ssh *, struct monitor *); | ||
91 | 94 | ||
92 | #endif /* _MONITOR_H_ */ | 95 | #endif /* _MONITOR_H_ */ |
diff --git a/monitor_wrap.c b/monitor_wrap.c index 732fb3476..186e8f022 100644 --- a/monitor_wrap.c +++ b/monitor_wrap.c | |||
@@ -1,4 +1,4 @@ | |||
1 | /* $OpenBSD: monitor_wrap.c,v 1.107 2018/07/20 03:46:34 djm Exp $ */ | 1 | /* $OpenBSD: monitor_wrap.c,v 1.112 2019/01/21 09:54:11 djm Exp $ */ |
2 | /* | 2 | /* |
3 | * Copyright 2002 Niels Provos <provos@citi.umich.edu> | 3 | * Copyright 2002 Niels Provos <provos@citi.umich.edu> |
4 | * Copyright 2002 Markus Friedl <markus@openbsd.org> | 4 | * Copyright 2002 Markus Friedl <markus@openbsd.org> |
@@ -202,12 +202,8 @@ mm_choose_dh(int min, int nbits, int max) | |||
202 | if (success == 0) | 202 | if (success == 0) |
203 | fatal("%s: MONITOR_ANS_MODULI failed", __func__); | 203 | fatal("%s: MONITOR_ANS_MODULI failed", __func__); |
204 | 204 | ||
205 | if ((p = BN_new()) == NULL) | 205 | if ((r = sshbuf_get_bignum2(m, &p)) != 0 || |
206 | fatal("%s: BN_new failed", __func__); | 206 | (r = sshbuf_get_bignum2(m, &g)) != 0) |
207 | if ((g = BN_new()) == NULL) | ||
208 | fatal("%s: BN_new failed", __func__); | ||
209 | if ((r = sshbuf_get_bignum2(m, p)) != 0 || | ||
210 | (r = sshbuf_get_bignum2(m, g)) != 0) | ||
211 | fatal("%s: buffer error: %s", __func__, ssh_err(r)); | 207 | fatal("%s: buffer error: %s", __func__, ssh_err(r)); |
212 | 208 | ||
213 | debug3("%s: remaining %zu", __func__, sshbuf_len(m)); | 209 | debug3("%s: remaining %zu", __func__, sshbuf_len(m)); |
@@ -218,12 +214,12 @@ mm_choose_dh(int min, int nbits, int max) | |||
218 | #endif | 214 | #endif |
219 | 215 | ||
220 | int | 216 | int |
221 | mm_sshkey_sign(struct sshkey *key, u_char **sigp, size_t *lenp, | 217 | mm_sshkey_sign(struct ssh *ssh, struct sshkey *key, u_char **sigp, size_t *lenp, |
222 | const u_char *data, size_t datalen, const char *hostkey_alg, u_int compat) | 218 | const u_char *data, size_t datalen, const char *hostkey_alg, u_int compat) |
223 | { | 219 | { |
224 | struct kex *kex = *pmonitor->m_pkex; | 220 | struct kex *kex = *pmonitor->m_pkex; |
225 | struct sshbuf *m; | 221 | struct sshbuf *m; |
226 | u_int ndx = kex->host_key_index(key, 0, active_state); | 222 | u_int ndx = kex->host_key_index(key, 0, ssh); |
227 | int r; | 223 | int r; |
228 | 224 | ||
229 | debug3("%s entering", __func__); | 225 | debug3("%s entering", __func__); |
@@ -248,9 +244,8 @@ mm_sshkey_sign(struct sshkey *key, u_char **sigp, size_t *lenp, | |||
248 | } | 244 | } |
249 | 245 | ||
250 | struct passwd * | 246 | struct passwd * |
251 | mm_getpwnamallow(const char *username) | 247 | mm_getpwnamallow(struct ssh *ssh, const char *username) |
252 | { | 248 | { |
253 | struct ssh *ssh = active_state; /* XXX */ | ||
254 | struct sshbuf *m; | 249 | struct sshbuf *m; |
255 | struct passwd *pw; | 250 | struct passwd *pw; |
256 | size_t len; | 251 | size_t len; |
@@ -438,8 +433,8 @@ mm_user_key_allowed(struct ssh *ssh, struct passwd *pw, struct sshkey *key, | |||
438 | } | 433 | } |
439 | 434 | ||
440 | int | 435 | int |
441 | mm_hostbased_key_allowed(struct passwd *pw, const char *user, const char *host, | 436 | mm_hostbased_key_allowed(struct ssh *ssh, struct passwd *pw, |
442 | struct sshkey *key) | 437 | const char *user, const char *host, struct sshkey *key) |
443 | { | 438 | { |
444 | return (mm_key_allowed(MM_HOSTKEY, user, host, key, 0, NULL)); | 439 | return (mm_key_allowed(MM_HOSTKEY, user, host, key, 0, NULL)); |
445 | } | 440 | } |
@@ -532,9 +527,8 @@ mm_sshkey_verify(const struct sshkey *key, const u_char *sig, size_t siglen, | |||
532 | } | 527 | } |
533 | 528 | ||
534 | void | 529 | void |
535 | mm_send_keystate(struct monitor *monitor) | 530 | mm_send_keystate(struct ssh *ssh, struct monitor *monitor) |
536 | { | 531 | { |
537 | struct ssh *ssh = active_state; /* XXX */ | ||
538 | struct sshbuf *m; | 532 | struct sshbuf *m; |
539 | int r; | 533 | int r; |
540 | 534 | ||
@@ -628,7 +622,7 @@ mm_session_pty_cleanup2(Session *s) | |||
628 | 622 | ||
629 | #ifdef USE_PAM | 623 | #ifdef USE_PAM |
630 | void | 624 | void |
631 | mm_start_pam(Authctxt *authctxt) | 625 | mm_start_pam(struct ssh *ssh) |
632 | { | 626 | { |
633 | struct sshbuf *m; | 627 | struct sshbuf *m; |
634 | 628 | ||
@@ -869,7 +863,7 @@ mm_bsdauth_respond(void *ctx, u_int numresponses, char **responses) | |||
869 | 863 | ||
870 | #ifdef SSH_AUDIT_EVENTS | 864 | #ifdef SSH_AUDIT_EVENTS |
871 | void | 865 | void |
872 | mm_audit_event(ssh_audit_event_t event) | 866 | mm_audit_event(struct ssh *ssh, ssh_audit_event_t event) |
873 | { | 867 | { |
874 | struct sshbuf *m; | 868 | struct sshbuf *m; |
875 | int r; | 869 | int r; |
diff --git a/monitor_wrap.h b/monitor_wrap.h index 644da081d..fdebb3aa4 100644 --- a/monitor_wrap.h +++ b/monitor_wrap.h | |||
@@ -1,4 +1,4 @@ | |||
1 | /* $OpenBSD: monitor_wrap.h,v 1.38 2018/07/11 18:53:29 markus Exp $ */ | 1 | /* $OpenBSD: monitor_wrap.h,v 1.41 2019/01/19 21:43:56 djm Exp $ */ |
2 | 2 | ||
3 | /* | 3 | /* |
4 | * Copyright 2002 Niels Provos <provos@citi.umich.edu> | 4 | * Copyright 2002 Niels Provos <provos@citi.umich.edu> |
@@ -33,6 +33,7 @@ extern int use_privsep; | |||
33 | 33 | ||
34 | enum mm_keytype { MM_NOKEY, MM_HOSTKEY, MM_USERKEY }; | 34 | enum mm_keytype { MM_NOKEY, MM_HOSTKEY, MM_USERKEY }; |
35 | 35 | ||
36 | struct ssh; | ||
36 | struct monitor; | 37 | struct monitor; |
37 | struct Authctxt; | 38 | struct Authctxt; |
38 | struct sshkey; | 39 | struct sshkey; |
@@ -41,17 +42,17 @@ struct sshauthopt; | |||
41 | void mm_log_handler(LogLevel, const char *, void *); | 42 | void mm_log_handler(LogLevel, const char *, void *); |
42 | int mm_is_monitor(void); | 43 | int mm_is_monitor(void); |
43 | DH *mm_choose_dh(int, int, int); | 44 | DH *mm_choose_dh(int, int, int); |
44 | int mm_sshkey_sign(struct sshkey *, u_char **, size_t *, const u_char *, size_t, | 45 | int mm_sshkey_sign(struct ssh *, struct sshkey *, u_char **, size_t *, |
45 | const char *, u_int compat); | 46 | const u_char *, size_t, const char *, u_int compat); |
46 | void mm_inform_authserv(char *, char *); | 47 | void mm_inform_authserv(char *, char *); |
47 | struct passwd *mm_getpwnamallow(const char *); | 48 | struct passwd *mm_getpwnamallow(struct ssh *, const char *); |
48 | char *mm_auth2_read_banner(void); | 49 | char *mm_auth2_read_banner(void); |
49 | int mm_auth_password(struct ssh *, char *); | 50 | int mm_auth_password(struct ssh *, char *); |
50 | int mm_key_allowed(enum mm_keytype, const char *, const char *, struct sshkey *, | 51 | int mm_key_allowed(enum mm_keytype, const char *, const char *, struct sshkey *, |
51 | int, struct sshauthopt **); | 52 | int, struct sshauthopt **); |
52 | int mm_user_key_allowed(struct ssh *, struct passwd *, struct sshkey *, int, | 53 | int mm_user_key_allowed(struct ssh *, struct passwd *, struct sshkey *, int, |
53 | struct sshauthopt **); | 54 | struct sshauthopt **); |
54 | int mm_hostbased_key_allowed(struct passwd *, const char *, | 55 | int mm_hostbased_key_allowed(struct ssh *, struct passwd *, const char *, |
55 | const char *, struct sshkey *); | 56 | const char *, struct sshkey *); |
56 | int mm_sshkey_verify(const struct sshkey *, const u_char *, size_t, | 57 | int mm_sshkey_verify(const struct sshkey *, const u_char *, size_t, |
57 | const u_char *, size_t, const char *, u_int); | 58 | const u_char *, size_t, const char *, u_int); |
@@ -65,7 +66,7 @@ OM_uint32 mm_ssh_gssapi_checkmic(Gssctxt *, gss_buffer_t, gss_buffer_t); | |||
65 | #endif | 66 | #endif |
66 | 67 | ||
67 | #ifdef USE_PAM | 68 | #ifdef USE_PAM |
68 | void mm_start_pam(struct Authctxt *); | 69 | void mm_start_pam(struct ssh *ssh); |
69 | u_int mm_do_pam_account(void); | 70 | u_int mm_do_pam_account(void); |
70 | void *mm_sshpam_init_ctx(struct Authctxt *); | 71 | void *mm_sshpam_init_ctx(struct Authctxt *); |
71 | int mm_sshpam_query(void *, char **, char **, u_int *, char ***, u_int **); | 72 | int mm_sshpam_query(void *, char **, char **, u_int *, char ***, u_int **); |
@@ -75,7 +76,7 @@ void mm_sshpam_free_ctx(void *); | |||
75 | 76 | ||
76 | #ifdef SSH_AUDIT_EVENTS | 77 | #ifdef SSH_AUDIT_EVENTS |
77 | #include "audit.h" | 78 | #include "audit.h" |
78 | void mm_audit_event(ssh_audit_event_t); | 79 | void mm_audit_event(struct ssh *, ssh_audit_event_t); |
79 | void mm_audit_run_command(const char *); | 80 | void mm_audit_run_command(const char *); |
80 | #endif | 81 | #endif |
81 | 82 | ||
@@ -88,10 +89,7 @@ void mm_session_pty_cleanup2(struct Session *); | |||
88 | struct newkeys *mm_newkeys_from_blob(u_char *, int); | 89 | struct newkeys *mm_newkeys_from_blob(u_char *, int); |
89 | int mm_newkeys_to_blob(int, u_char **, u_int *); | 90 | int mm_newkeys_to_blob(int, u_char **, u_int *); |
90 | 91 | ||
91 | void monitor_clear_keystate(struct monitor *); | 92 | void mm_send_keystate(struct ssh *, struct monitor*); |
92 | void monitor_apply_keystate(struct monitor *); | ||
93 | void mm_get_keystate(struct monitor *); | ||
94 | void mm_send_keystate(struct monitor*); | ||
95 | 93 | ||
96 | /* bsdauth */ | 94 | /* bsdauth */ |
97 | int mm_bsdauth_query(void *, char **, char **, u_int *, char ***, u_int **); | 95 | int mm_bsdauth_query(void *, char **, char **, u_int *, char ***, u_int **); |
@@ -1,4 +1,4 @@ | |||
1 | /* $OpenBSD: mux.c,v 1.77 2018/09/26 07:32:44 djm Exp $ */ | 1 | /* $OpenBSD: mux.c,v 1.79 2019/01/19 21:35:25 djm Exp $ */ |
2 | /* | 2 | /* |
3 | * Copyright (c) 2002-2008 Damien Miller <djm@openbsd.org> | 3 | * Copyright (c) 2002-2008 Damien Miller <djm@openbsd.org> |
4 | * | 4 | * |
@@ -610,6 +610,7 @@ mux_confirm_remote_forward(struct ssh *ssh, int type, u_int32_t seq, void *ctxt) | |||
610 | struct Forward *rfwd; | 610 | struct Forward *rfwd; |
611 | Channel *c; | 611 | Channel *c; |
612 | struct sshbuf *out; | 612 | struct sshbuf *out; |
613 | u_int port; | ||
613 | int r; | 614 | int r; |
614 | 615 | ||
615 | if ((c = channel_by_id(ssh, fctx->cid)) == NULL) { | 616 | if ((c = channel_by_id(ssh, fctx->cid)) == NULL) { |
@@ -632,7 +633,15 @@ mux_confirm_remote_forward(struct ssh *ssh, int type, u_int32_t seq, void *ctxt) | |||
632 | rfwd->connect_host, rfwd->connect_port); | 633 | rfwd->connect_host, rfwd->connect_port); |
633 | if (type == SSH2_MSG_REQUEST_SUCCESS) { | 634 | if (type == SSH2_MSG_REQUEST_SUCCESS) { |
634 | if (rfwd->listen_port == 0) { | 635 | if (rfwd->listen_port == 0) { |
635 | rfwd->allocated_port = packet_get_int(); | 636 | if ((r = sshpkt_get_u32(ssh, &port)) != 0) |
637 | fatal("%s: packet error: %s", | ||
638 | __func__, ssh_err(r)); | ||
639 | if (port > 65535) { | ||
640 | fatal("Invalid allocated port %u for " | ||
641 | "mux remote forward to %s:%d", port, | ||
642 | rfwd->connect_host, rfwd->connect_port); | ||
643 | } | ||
644 | rfwd->allocated_port = (int)port; | ||
636 | debug("Allocated port %u for mux remote forward" | 645 | debug("Allocated port %u for mux remote forward" |
637 | " to %s:%d", rfwd->allocated_port, | 646 | " to %s:%d", rfwd->allocated_port, |
638 | rfwd->connect_host, rfwd->connect_port); | 647 | rfwd->connect_host, rfwd->connect_port); |
@@ -1406,7 +1415,8 @@ mux_session_confirm(struct ssh *ssh, int id, int success, void *arg) | |||
1406 | if (cctx->want_agent_fwd && options.forward_agent) { | 1415 | if (cctx->want_agent_fwd && options.forward_agent) { |
1407 | debug("Requesting authentication agent forwarding."); | 1416 | debug("Requesting authentication agent forwarding."); |
1408 | channel_request_start(ssh, id, "auth-agent-req@openssh.com", 0); | 1417 | channel_request_start(ssh, id, "auth-agent-req@openssh.com", 0); |
1409 | packet_send(); | 1418 | if ((r = sshpkt_send(ssh)) != 0) |
1419 | fatal("%s: packet error: %s", __func__, ssh_err(r)); | ||
1410 | } | 1420 | } |
1411 | 1421 | ||
1412 | client_session2_setup(ssh, id, cctx->want_tty, cctx->want_subsys, | 1422 | client_session2_setup(ssh, id, cctx->want_tty, cctx->want_subsys, |
diff --git a/myproposal.h b/myproposal.h index 27b4a15a1..f16729876 100644 --- a/myproposal.h +++ b/myproposal.h | |||
@@ -1,4 +1,4 @@ | |||
1 | /* $OpenBSD: myproposal.h,v 1.57 2018/09/12 01:34:02 djm Exp $ */ | 1 | /* $OpenBSD: myproposal.h,v 1.58 2019/02/23 08:20:43 djm Exp $ */ |
2 | 2 | ||
3 | /* | 3 | /* |
4 | * Copyright (c) 2000 Markus Friedl. All rights reserved. | 4 | * Copyright (c) 2000 Markus Friedl. All rights reserved. |
@@ -90,20 +90,15 @@ | |||
90 | # else | 90 | # else |
91 | # define KEX_CURVE25519_METHODS "" | 91 | # define KEX_CURVE25519_METHODS "" |
92 | # endif | 92 | # endif |
93 | #define KEX_COMMON_KEX \ | 93 | #define KEX_SERVER_KEX \ |
94 | KEX_CURVE25519_METHODS \ | 94 | KEX_CURVE25519_METHODS \ |
95 | KEX_ECDH_METHODS \ | 95 | KEX_ECDH_METHODS \ |
96 | KEX_SHA2_METHODS | 96 | KEX_SHA2_METHODS \ |
97 | |||
98 | #define KEX_SERVER_KEX KEX_COMMON_KEX \ | ||
99 | KEX_SHA2_GROUP14 \ | ||
100 | "diffie-hellman-group14-sha1" \ | ||
101 | |||
102 | #define KEX_CLIENT_KEX KEX_COMMON_KEX \ | ||
103 | "diffie-hellman-group-exchange-sha1," \ | ||
104 | KEX_SHA2_GROUP14 \ | 97 | KEX_SHA2_GROUP14 \ |
105 | "diffie-hellman-group14-sha1" | 98 | "diffie-hellman-group14-sha1" |
106 | 99 | ||
100 | #define KEX_CLIENT_KEX KEX_SERVER_KEX | ||
101 | |||
107 | #define KEX_DEFAULT_PK_ALG \ | 102 | #define KEX_DEFAULT_PK_ALG \ |
108 | HOSTKEY_ECDSA_CERT_METHODS \ | 103 | HOSTKEY_ECDSA_CERT_METHODS \ |
109 | "ssh-ed25519-cert-v01@openssh.com," \ | 104 | "ssh-ed25519-cert-v01@openssh.com," \ |
diff --git a/opacket.c b/opacket.c deleted file mode 100644 index e637d7a71..000000000 --- a/opacket.c +++ /dev/null | |||
@@ -1,320 +0,0 @@ | |||
1 | /* $OpenBSD: opacket.c,v 1.7 2017/10/20 01:56:39 djm Exp $ */ | ||
2 | /* Written by Markus Friedl. Placed in the public domain. */ | ||
3 | |||
4 | #include "includes.h" | ||
5 | |||
6 | #include <stdarg.h> | ||
7 | |||
8 | #include "ssherr.h" | ||
9 | #include "packet.h" | ||
10 | #include "log.h" | ||
11 | |||
12 | struct ssh *active_state, *backup_state; | ||
13 | |||
14 | /* Map old to new API */ | ||
15 | |||
16 | void | ||
17 | ssh_packet_start(struct ssh *ssh, u_char type) | ||
18 | { | ||
19 | int r; | ||
20 | |||
21 | if ((r = sshpkt_start(ssh, type)) != 0) | ||
22 | fatal("%s: %s", __func__, ssh_err(r)); | ||
23 | } | ||
24 | |||
25 | void | ||
26 | ssh_packet_put_char(struct ssh *ssh, int value) | ||
27 | { | ||
28 | u_char ch = value; | ||
29 | int r; | ||
30 | |||
31 | if ((r = sshpkt_put_u8(ssh, ch)) != 0) | ||
32 | fatal("%s: %s", __func__, ssh_err(r)); | ||
33 | } | ||
34 | |||
35 | void | ||
36 | ssh_packet_put_int(struct ssh *ssh, u_int value) | ||
37 | { | ||
38 | int r; | ||
39 | |||
40 | if ((r = sshpkt_put_u32(ssh, value)) != 0) | ||
41 | fatal("%s: %s", __func__, ssh_err(r)); | ||
42 | } | ||
43 | |||
44 | void | ||
45 | ssh_packet_put_int64(struct ssh *ssh, u_int64_t value) | ||
46 | { | ||
47 | int r; | ||
48 | |||
49 | if ((r = sshpkt_put_u64(ssh, value)) != 0) | ||
50 | fatal("%s: %s", __func__, ssh_err(r)); | ||
51 | } | ||
52 | |||
53 | void | ||
54 | ssh_packet_put_string(struct ssh *ssh, const void *buf, u_int len) | ||
55 | { | ||
56 | int r; | ||
57 | |||
58 | if ((r = sshpkt_put_string(ssh, buf, len)) != 0) | ||
59 | fatal("%s: %s", __func__, ssh_err(r)); | ||
60 | } | ||
61 | |||
62 | void | ||
63 | ssh_packet_put_cstring(struct ssh *ssh, const char *str) | ||
64 | { | ||
65 | int r; | ||
66 | |||
67 | if ((r = sshpkt_put_cstring(ssh, str)) != 0) | ||
68 | fatal("%s: %s", __func__, ssh_err(r)); | ||
69 | } | ||
70 | |||
71 | void | ||
72 | ssh_packet_put_raw(struct ssh *ssh, const void *buf, u_int len) | ||
73 | { | ||
74 | int r; | ||
75 | |||
76 | if ((r = sshpkt_put(ssh, buf, len)) != 0) | ||
77 | fatal("%s: %s", __func__, ssh_err(r)); | ||
78 | } | ||
79 | |||
80 | |||
81 | #ifdef WITH_OPENSSL | ||
82 | void | ||
83 | ssh_packet_put_bignum2(struct ssh *ssh, BIGNUM * value) | ||
84 | { | ||
85 | int r; | ||
86 | |||
87 | if ((r = sshpkt_put_bignum2(ssh, value)) != 0) | ||
88 | fatal("%s: %s", __func__, ssh_err(r)); | ||
89 | } | ||
90 | |||
91 | # ifdef OPENSSL_HAS_ECC | ||
92 | void | ||
93 | ssh_packet_put_ecpoint(struct ssh *ssh, const EC_GROUP *curve, | ||
94 | const EC_POINT *point) | ||
95 | { | ||
96 | int r; | ||
97 | |||
98 | if ((r = sshpkt_put_ec(ssh, point, curve)) != 0) | ||
99 | fatal("%s: %s", __func__, ssh_err(r)); | ||
100 | } | ||
101 | # endif | ||
102 | #endif /* WITH_OPENSSL */ | ||
103 | |||
104 | void | ||
105 | ssh_packet_send(struct ssh *ssh) | ||
106 | { | ||
107 | int r; | ||
108 | |||
109 | if ((r = sshpkt_send(ssh)) != 0) | ||
110 | fatal("%s: %s", __func__, ssh_err(r)); | ||
111 | } | ||
112 | |||
113 | u_int | ||
114 | ssh_packet_get_char(struct ssh *ssh) | ||
115 | { | ||
116 | u_char ch; | ||
117 | int r; | ||
118 | |||
119 | if ((r = sshpkt_get_u8(ssh, &ch)) != 0) | ||
120 | fatal("%s: %s", __func__, ssh_err(r)); | ||
121 | return ch; | ||
122 | } | ||
123 | |||
124 | u_int | ||
125 | ssh_packet_get_int(struct ssh *ssh) | ||
126 | { | ||
127 | u_int val; | ||
128 | int r; | ||
129 | |||
130 | if ((r = sshpkt_get_u32(ssh, &val)) != 0) | ||
131 | fatal("%s: %s", __func__, ssh_err(r)); | ||
132 | return val; | ||
133 | } | ||
134 | |||
135 | u_int64_t | ||
136 | ssh_packet_get_int64(struct ssh *ssh) | ||
137 | { | ||
138 | u_int64_t val; | ||
139 | int r; | ||
140 | |||
141 | if ((r = sshpkt_get_u64(ssh, &val)) != 0) | ||
142 | fatal("%s: %s", __func__, ssh_err(r)); | ||
143 | return val; | ||
144 | } | ||
145 | |||
146 | |||
147 | #ifdef WITH_OPENSSL | ||
148 | void | ||
149 | ssh_packet_get_bignum2(struct ssh *ssh, BIGNUM * value) | ||
150 | { | ||
151 | int r; | ||
152 | |||
153 | if ((r = sshpkt_get_bignum2(ssh, value)) != 0) | ||
154 | fatal("%s: %s", __func__, ssh_err(r)); | ||
155 | } | ||
156 | |||
157 | # ifdef OPENSSL_HAS_ECC | ||
158 | void | ||
159 | ssh_packet_get_ecpoint(struct ssh *ssh, const EC_GROUP *curve, EC_POINT *point) | ||
160 | { | ||
161 | int r; | ||
162 | |||
163 | if ((r = sshpkt_get_ec(ssh, point, curve)) != 0) | ||
164 | fatal("%s: %s", __func__, ssh_err(r)); | ||
165 | } | ||
166 | # endif | ||
167 | #endif /* WITH_OPENSSL */ | ||
168 | |||
169 | void * | ||
170 | ssh_packet_get_string(struct ssh *ssh, u_int *length_ptr) | ||
171 | { | ||
172 | int r; | ||
173 | size_t len; | ||
174 | u_char *val; | ||
175 | |||
176 | if ((r = sshpkt_get_string(ssh, &val, &len)) != 0) | ||
177 | fatal("%s: %s", __func__, ssh_err(r)); | ||
178 | if (length_ptr != NULL) | ||
179 | *length_ptr = (u_int)len; | ||
180 | return val; | ||
181 | } | ||
182 | |||
183 | const void * | ||
184 | ssh_packet_get_string_ptr(struct ssh *ssh, u_int *length_ptr) | ||
185 | { | ||
186 | int r; | ||
187 | size_t len; | ||
188 | const u_char *val; | ||
189 | |||
190 | if ((r = sshpkt_get_string_direct(ssh, &val, &len)) != 0) | ||
191 | fatal("%s: %s", __func__, ssh_err(r)); | ||
192 | if (length_ptr != NULL) | ||
193 | *length_ptr = (u_int)len; | ||
194 | return val; | ||
195 | } | ||
196 | |||
197 | char * | ||
198 | ssh_packet_get_cstring(struct ssh *ssh, u_int *length_ptr) | ||
199 | { | ||
200 | int r; | ||
201 | size_t len; | ||
202 | char *val; | ||
203 | |||
204 | if ((r = sshpkt_get_cstring(ssh, &val, &len)) != 0) | ||
205 | fatal("%s: %s", __func__, ssh_err(r)); | ||
206 | if (length_ptr != NULL) | ||
207 | *length_ptr = (u_int)len; | ||
208 | return val; | ||
209 | } | ||
210 | |||
211 | /* Old API, that had to be reimplemented */ | ||
212 | |||
213 | void | ||
214 | packet_set_connection(int fd_in, int fd_out) | ||
215 | { | ||
216 | active_state = ssh_packet_set_connection(active_state, fd_in, fd_out); | ||
217 | if (active_state == NULL) | ||
218 | fatal("%s: ssh_packet_set_connection failed", __func__); | ||
219 | } | ||
220 | |||
221 | u_int | ||
222 | packet_get_char(void) | ||
223 | { | ||
224 | return (ssh_packet_get_char(active_state)); | ||
225 | } | ||
226 | |||
227 | u_int | ||
228 | packet_get_int(void) | ||
229 | { | ||
230 | return (ssh_packet_get_int(active_state)); | ||
231 | } | ||
232 | |||
233 | int | ||
234 | packet_read_seqnr(u_int32_t *seqnr) | ||
235 | { | ||
236 | u_char type; | ||
237 | int r; | ||
238 | |||
239 | if ((r = ssh_packet_read_seqnr(active_state, &type, seqnr)) != 0) | ||
240 | sshpkt_fatal(active_state, __func__, r); | ||
241 | return type; | ||
242 | } | ||
243 | |||
244 | int | ||
245 | packet_read_poll_seqnr(u_int32_t *seqnr) | ||
246 | { | ||
247 | u_char type; | ||
248 | int r; | ||
249 | |||
250 | if ((r = ssh_packet_read_poll_seqnr(active_state, &type, seqnr))) | ||
251 | sshpkt_fatal(active_state, __func__, r); | ||
252 | return type; | ||
253 | } | ||
254 | |||
255 | void | ||
256 | packet_close(void) | ||
257 | { | ||
258 | ssh_packet_close(active_state); | ||
259 | active_state = NULL; | ||
260 | } | ||
261 | |||
262 | void | ||
263 | packet_process_incoming(const char *buf, u_int len) | ||
264 | { | ||
265 | int r; | ||
266 | |||
267 | if ((r = ssh_packet_process_incoming(active_state, buf, len)) != 0) | ||
268 | sshpkt_fatal(active_state, __func__, r); | ||
269 | } | ||
270 | |||
271 | void | ||
272 | packet_write_wait(void) | ||
273 | { | ||
274 | int r; | ||
275 | |||
276 | if ((r = ssh_packet_write_wait(active_state)) != 0) | ||
277 | sshpkt_fatal(active_state, __func__, r); | ||
278 | } | ||
279 | |||
280 | void | ||
281 | packet_write_poll(void) | ||
282 | { | ||
283 | int r; | ||
284 | |||
285 | if ((r = ssh_packet_write_poll(active_state)) != 0) | ||
286 | sshpkt_fatal(active_state, __func__, r); | ||
287 | } | ||
288 | |||
289 | void | ||
290 | packet_read_expect(int expected_type) | ||
291 | { | ||
292 | int r; | ||
293 | |||
294 | if ((r = ssh_packet_read_expect(active_state, expected_type)) != 0) | ||
295 | sshpkt_fatal(active_state, __func__, r); | ||
296 | } | ||
297 | |||
298 | void | ||
299 | packet_disconnect(const char *fmt, ...) | ||
300 | { | ||
301 | char buf[1024]; | ||
302 | va_list args; | ||
303 | |||
304 | va_start(args, fmt); | ||
305 | vsnprintf(buf, sizeof(buf), fmt, args); | ||
306 | va_end(args); | ||
307 | ssh_packet_disconnect(active_state, "%s", buf); | ||
308 | } | ||
309 | |||
310 | void | ||
311 | packet_send_debug(const char *fmt, ...) | ||
312 | { | ||
313 | char buf[1024]; | ||
314 | va_list args; | ||
315 | |||
316 | va_start(args, fmt); | ||
317 | vsnprintf(buf, sizeof(buf), fmt, args); | ||
318 | va_end(args); | ||
319 | ssh_packet_send_debug(active_state, "%s", buf); | ||
320 | } | ||
diff --git a/opacket.h b/opacket.h deleted file mode 100644 index f92fe586e..000000000 --- a/opacket.h +++ /dev/null | |||
@@ -1,154 +0,0 @@ | |||
1 | /* $OpenBSD: opacket.h,v 1.13 2018/07/06 09:03:02 sf Exp $ */ | ||
2 | #ifndef _OPACKET_H | ||
3 | /* Written by Markus Friedl. Placed in the public domain. */ | ||
4 | |||
5 | /* Map old to new API */ | ||
6 | void ssh_packet_start(struct ssh *, u_char); | ||
7 | void ssh_packet_put_char(struct ssh *, int ch); | ||
8 | void ssh_packet_put_int(struct ssh *, u_int value); | ||
9 | void ssh_packet_put_int64(struct ssh *, u_int64_t value); | ||
10 | void ssh_packet_put_bignum2(struct ssh *, BIGNUM * value); | ||
11 | void ssh_packet_put_ecpoint(struct ssh *, const EC_GROUP *, const EC_POINT *); | ||
12 | void ssh_packet_put_string(struct ssh *, const void *buf, u_int len); | ||
13 | void ssh_packet_put_cstring(struct ssh *, const char *str); | ||
14 | void ssh_packet_put_raw(struct ssh *, const void *buf, u_int len); | ||
15 | void ssh_packet_send(struct ssh *); | ||
16 | |||
17 | u_int ssh_packet_get_char(struct ssh *); | ||
18 | u_int ssh_packet_get_int(struct ssh *); | ||
19 | u_int64_t ssh_packet_get_int64(struct ssh *); | ||
20 | void ssh_packet_get_bignum2(struct ssh *, BIGNUM * value); | ||
21 | void ssh_packet_get_ecpoint(struct ssh *, const EC_GROUP *, EC_POINT *); | ||
22 | void *ssh_packet_get_string(struct ssh *, u_int *length_ptr); | ||
23 | char *ssh_packet_get_cstring(struct ssh *, u_int *length_ptr); | ||
24 | |||
25 | /* don't allow remaining bytes after the end of the message */ | ||
26 | #define ssh_packet_check_eom(ssh) \ | ||
27 | do { \ | ||
28 | int _len = ssh_packet_remaining(ssh); \ | ||
29 | if (_len > 0) { \ | ||
30 | logit("Packet integrity error (%d bytes remaining) at %s:%d", \ | ||
31 | _len ,__FILE__, __LINE__); \ | ||
32 | ssh_packet_disconnect(ssh, \ | ||
33 | "Packet integrity error."); \ | ||
34 | } \ | ||
35 | } while (0) | ||
36 | |||
37 | /* old API */ | ||
38 | void packet_close(void); | ||
39 | u_int packet_get_char(void); | ||
40 | u_int packet_get_int(void); | ||
41 | void packet_set_connection(int, int); | ||
42 | int packet_read_seqnr(u_int32_t *); | ||
43 | int packet_read_poll_seqnr(u_int32_t *); | ||
44 | void packet_process_incoming(const char *buf, u_int len); | ||
45 | void packet_write_wait(void); | ||
46 | void packet_write_poll(void); | ||
47 | void packet_read_expect(int expected_type); | ||
48 | #define packet_set_timeout(timeout, count) \ | ||
49 | ssh_packet_set_timeout(active_state, (timeout), (count)) | ||
50 | #define packet_connection_is_on_socket() \ | ||
51 | ssh_packet_connection_is_on_socket(active_state) | ||
52 | #define packet_set_nonblocking() \ | ||
53 | ssh_packet_set_nonblocking(active_state) | ||
54 | #define packet_get_connection_in() \ | ||
55 | ssh_packet_get_connection_in(active_state) | ||
56 | #define packet_get_connection_out() \ | ||
57 | ssh_packet_get_connection_out(active_state) | ||
58 | #define packet_set_protocol_flags(protocol_flags) \ | ||
59 | ssh_packet_set_protocol_flags(active_state, (protocol_flags)) | ||
60 | #define packet_get_protocol_flags() \ | ||
61 | ssh_packet_get_protocol_flags(active_state) | ||
62 | #define packet_start(type) \ | ||
63 | ssh_packet_start(active_state, (type)) | ||
64 | #define packet_put_char(value) \ | ||
65 | ssh_packet_put_char(active_state, (value)) | ||
66 | #define packet_put_int(value) \ | ||
67 | ssh_packet_put_int(active_state, (value)) | ||
68 | #define packet_put_int64(value) \ | ||
69 | ssh_packet_put_int64(active_state, (value)) | ||
70 | #define packet_put_string( buf, len) \ | ||
71 | ssh_packet_put_string(active_state, (buf), (len)) | ||
72 | #define packet_put_cstring(str) \ | ||
73 | ssh_packet_put_cstring(active_state, (str)) | ||
74 | #define packet_put_raw(buf, len) \ | ||
75 | ssh_packet_put_raw(active_state, (buf), (len)) | ||
76 | #define packet_put_bignum2(value) \ | ||
77 | ssh_packet_put_bignum2(active_state, (value)) | ||
78 | #define packet_send() \ | ||
79 | ssh_packet_send(active_state) | ||
80 | #define packet_read() \ | ||
81 | ssh_packet_read(active_state) | ||
82 | #define packet_get_int64() \ | ||
83 | ssh_packet_get_int64(active_state) | ||
84 | #define packet_get_bignum2(value) \ | ||
85 | ssh_packet_get_bignum2(active_state, (value)) | ||
86 | #define packet_remaining() \ | ||
87 | ssh_packet_remaining(active_state) | ||
88 | #define packet_get_string(length_ptr) \ | ||
89 | ssh_packet_get_string(active_state, (length_ptr)) | ||
90 | #define packet_get_string_ptr(length_ptr) \ | ||
91 | ssh_packet_get_string_ptr(active_state, (length_ptr)) | ||
92 | #define packet_get_cstring(length_ptr) \ | ||
93 | ssh_packet_get_cstring(active_state, (length_ptr)) | ||
94 | void packet_send_debug(const char *, ...) | ||
95 | __attribute__((format(printf, 1, 2))); | ||
96 | void packet_disconnect(const char *, ...) | ||
97 | __attribute__((format(printf, 1, 2))) | ||
98 | __attribute__((noreturn)); | ||
99 | #define packet_have_data_to_write() \ | ||
100 | ssh_packet_have_data_to_write(active_state) | ||
101 | #define packet_not_very_much_data_to_write() \ | ||
102 | ssh_packet_not_very_much_data_to_write(active_state) | ||
103 | #define packet_set_interactive(interactive, qos_interactive, qos_bulk) \ | ||
104 | ssh_packet_set_interactive(active_state, (interactive), (qos_interactive), (qos_bulk)) | ||
105 | #define packet_is_interactive() \ | ||
106 | ssh_packet_is_interactive(active_state) | ||
107 | #define packet_set_maxsize(s) \ | ||
108 | ssh_packet_set_maxsize(active_state, (s)) | ||
109 | #define packet_inc_alive_timeouts() \ | ||
110 | ssh_packet_inc_alive_timeouts(active_state) | ||
111 | #define packet_set_alive_timeouts(ka) \ | ||
112 | ssh_packet_set_alive_timeouts(active_state, (ka)) | ||
113 | #define packet_get_maxsize() \ | ||
114 | ssh_packet_get_maxsize(active_state) | ||
115 | #define packet_add_padding(pad) \ | ||
116 | sshpkt_add_padding(active_state, (pad)) | ||
117 | #define packet_send_ignore(nbytes) \ | ||
118 | ssh_packet_send_ignore(active_state, (nbytes)) | ||
119 | #define packet_set_server() \ | ||
120 | ssh_packet_set_server(active_state) | ||
121 | #define packet_set_authenticated() \ | ||
122 | ssh_packet_set_authenticated(active_state) | ||
123 | #define packet_get_input() \ | ||
124 | ssh_packet_get_input(active_state) | ||
125 | #define packet_get_output() \ | ||
126 | ssh_packet_get_output(active_state) | ||
127 | #define packet_check_eom() \ | ||
128 | ssh_packet_check_eom(active_state) | ||
129 | #define set_newkeys(mode) \ | ||
130 | ssh_set_newkeys(active_state, (mode)) | ||
131 | #define packet_get_state(m) \ | ||
132 | ssh_packet_get_state(active_state, m) | ||
133 | #define packet_set_state(m) \ | ||
134 | ssh_packet_set_state(active_state, m) | ||
135 | #define packet_get_raw(lenp) \ | ||
136 | sshpkt_ptr(active_state, lenp) | ||
137 | #define packet_get_ecpoint(c,p) \ | ||
138 | ssh_packet_get_ecpoint(active_state, c, p) | ||
139 | #define packet_put_ecpoint(c,p) \ | ||
140 | ssh_packet_put_ecpoint(active_state, c, p) | ||
141 | #define packet_get_rekey_timeout() \ | ||
142 | ssh_packet_get_rekey_timeout(active_state) | ||
143 | #define packet_set_rekey_limits(x,y) \ | ||
144 | ssh_packet_set_rekey_limits(active_state, x, y) | ||
145 | #define packet_get_bytes(x,y) \ | ||
146 | ssh_packet_get_bytes(active_state, x, y) | ||
147 | #define packet_set_mux() \ | ||
148 | ssh_packet_set_mux(active_state) | ||
149 | #define packet_get_mux() \ | ||
150 | ssh_packet_get_mux(active_state) | ||
151 | #define packet_clear_keys() \ | ||
152 | ssh_packet_clear_keys(active_state) | ||
153 | |||
154 | #endif /* _OPACKET_H */ | ||
diff --git a/openbsd-compat/bsd-cygwin_util.c b/openbsd-compat/bsd-cygwin_util.c index fb49e30f5..54628e260 100644 --- a/openbsd-compat/bsd-cygwin_util.c +++ b/openbsd-compat/bsd-cygwin_util.c | |||
@@ -37,6 +37,9 @@ | |||
37 | #include <string.h> | 37 | #include <string.h> |
38 | #include <unistd.h> | 38 | #include <unistd.h> |
39 | #include <stdarg.h> | 39 | #include <stdarg.h> |
40 | #include <stdlib.h> | ||
41 | #include <wchar.h> | ||
42 | #include <wctype.h> | ||
40 | 43 | ||
41 | #include "xmalloc.h" | 44 | #include "xmalloc.h" |
42 | 45 | ||
@@ -117,4 +120,150 @@ free_windows_environment(char **p) | |||
117 | free(p); | 120 | free(p); |
118 | } | 121 | } |
119 | 122 | ||
123 | /* | ||
124 | * Returns true if the given string matches the pattern (which may contain ? | ||
125 | * and * as wildcards), and zero if it does not match. | ||
126 | * | ||
127 | * The Cygwin version of this function must be case-insensitive and take | ||
128 | * Unicode characters into account. | ||
129 | */ | ||
130 | |||
131 | static int | ||
132 | __match_pattern (const wchar_t *s, const wchar_t *pattern) | ||
133 | { | ||
134 | for (;;) { | ||
135 | /* If at end of pattern, accept if also at end of string. */ | ||
136 | if (!*pattern) | ||
137 | return !*s; | ||
138 | |||
139 | if (*pattern == '*') { | ||
140 | /* Skip the asterisk. */ | ||
141 | pattern++; | ||
142 | |||
143 | /* If at end of pattern, accept immediately. */ | ||
144 | if (!*pattern) | ||
145 | return 1; | ||
146 | |||
147 | /* If next character in pattern is known, optimize. */ | ||
148 | if (*pattern != '?' && *pattern != '*') { | ||
149 | /* | ||
150 | * Look instances of the next character in | ||
151 | * pattern, and try to match starting from | ||
152 | * those. | ||
153 | */ | ||
154 | for (; *s; s++) | ||
155 | if (*s == *pattern && | ||
156 | __match_pattern(s + 1, pattern + 1)) | ||
157 | return 1; | ||
158 | /* Failed. */ | ||
159 | return 0; | ||
160 | } | ||
161 | /* | ||
162 | * Move ahead one character at a time and try to | ||
163 | * match at each position. | ||
164 | */ | ||
165 | for (; *s; s++) | ||
166 | if (__match_pattern(s, pattern)) | ||
167 | return 1; | ||
168 | /* Failed. */ | ||
169 | return 0; | ||
170 | } | ||
171 | /* | ||
172 | * There must be at least one more character in the string. | ||
173 | * If we are at the end, fail. | ||
174 | */ | ||
175 | if (!*s) | ||
176 | return 0; | ||
177 | |||
178 | /* Check if the next character of the string is acceptable. */ | ||
179 | if (*pattern != '?' && towlower(*pattern) != towlower(*s)) | ||
180 | return 0; | ||
181 | |||
182 | /* Move to the next character, both in string and in pattern. */ | ||
183 | s++; | ||
184 | pattern++; | ||
185 | } | ||
186 | /* NOTREACHED */ | ||
187 | } | ||
188 | |||
189 | static int | ||
190 | _match_pattern(const char *s, const char *pattern) | ||
191 | { | ||
192 | wchar_t *ws; | ||
193 | wchar_t *wpattern; | ||
194 | size_t len; | ||
195 | int ret; | ||
196 | |||
197 | if ((len = mbstowcs(NULL, s, 0)) < 0) | ||
198 | return 0; | ||
199 | ws = (wchar_t *) xcalloc(len + 1, sizeof (wchar_t)); | ||
200 | mbstowcs(ws, s, len + 1); | ||
201 | if ((len = mbstowcs(NULL, pattern, 0)) < 0) | ||
202 | return 0; | ||
203 | wpattern = (wchar_t *) xcalloc(len + 1, sizeof (wchar_t)); | ||
204 | mbstowcs(wpattern, pattern, len + 1); | ||
205 | ret = __match_pattern (ws, wpattern); | ||
206 | free(ws); | ||
207 | free(wpattern); | ||
208 | return ret; | ||
209 | } | ||
210 | |||
211 | /* | ||
212 | * Tries to match the string against the | ||
213 | * comma-separated sequence of subpatterns (each possibly preceded by ! to | ||
214 | * indicate negation). Returns -1 if negation matches, 1 if there is | ||
215 | * a positive match, 0 if there is no match at all. | ||
216 | */ | ||
217 | int | ||
218 | cygwin_ug_match_pattern_list(const char *string, const char *pattern) | ||
219 | { | ||
220 | char sub[1024]; | ||
221 | int negated; | ||
222 | int got_positive; | ||
223 | u_int i, subi, len = strlen(pattern); | ||
224 | |||
225 | got_positive = 0; | ||
226 | for (i = 0; i < len;) { | ||
227 | /* Check if the subpattern is negated. */ | ||
228 | if (pattern[i] == '!') { | ||
229 | negated = 1; | ||
230 | i++; | ||
231 | } else | ||
232 | negated = 0; | ||
233 | |||
234 | /* | ||
235 | * Extract the subpattern up to a comma or end. Convert the | ||
236 | * subpattern to lowercase. | ||
237 | */ | ||
238 | for (subi = 0; | ||
239 | i < len && subi < sizeof(sub) - 1 && pattern[i] != ','; | ||
240 | subi++, i++) | ||
241 | sub[subi] = pattern[i]; | ||
242 | /* If subpattern too long, return failure (no match). */ | ||
243 | if (subi >= sizeof(sub) - 1) | ||
244 | return 0; | ||
245 | |||
246 | /* If the subpattern was terminated by a comma, then skip it. */ | ||
247 | if (i < len && pattern[i] == ',') | ||
248 | i++; | ||
249 | |||
250 | /* Null-terminate the subpattern. */ | ||
251 | sub[subi] = '\0'; | ||
252 | |||
253 | /* Try to match the subpattern against the string. */ | ||
254 | if (_match_pattern(string, sub)) { | ||
255 | if (negated) | ||
256 | return -1; /* Negative */ | ||
257 | else | ||
258 | got_positive = 1; /* Positive */ | ||
259 | } | ||
260 | } | ||
261 | |||
262 | /* | ||
263 | * Return success if got a positive match. If there was a negative | ||
264 | * match, we have already returned -1 and never get here. | ||
265 | */ | ||
266 | return got_positive; | ||
267 | } | ||
268 | |||
120 | #endif /* HAVE_CYGWIN */ | 269 | #endif /* HAVE_CYGWIN */ |
diff --git a/openbsd-compat/bsd-cygwin_util.h b/openbsd-compat/bsd-cygwin_util.h index 202c055db..55c5a5b81 100644 --- a/openbsd-compat/bsd-cygwin_util.h +++ b/openbsd-compat/bsd-cygwin_util.h | |||
@@ -55,6 +55,7 @@ int binary_open(const char *, int , ...); | |||
55 | int check_ntsec(const char *); | 55 | int check_ntsec(const char *); |
56 | char **fetch_windows_environment(void); | 56 | char **fetch_windows_environment(void); |
57 | void free_windows_environment(char **); | 57 | void free_windows_environment(char **); |
58 | int cygwin_ug_match_pattern_list(const char *, const char *); | ||
58 | 59 | ||
59 | #ifndef NO_BINARY_OPEN | 60 | #ifndef NO_BINARY_OPEN |
60 | #define open binary_open | 61 | #define open binary_open |
diff --git a/openbsd-compat/bsd-misc.c b/openbsd-compat/bsd-misc.c index 5d7540a70..aa1c7d7a3 100644 --- a/openbsd-compat/bsd-misc.c +++ b/openbsd-compat/bsd-misc.c | |||
@@ -25,6 +25,7 @@ | |||
25 | # include <sys/time.h> | 25 | # include <sys/time.h> |
26 | #endif | 26 | #endif |
27 | 27 | ||
28 | #include <fcntl.h> | ||
28 | #include <string.h> | 29 | #include <string.h> |
29 | #include <signal.h> | 30 | #include <signal.h> |
30 | #include <stdlib.h> | 31 | #include <stdlib.h> |
@@ -117,6 +118,106 @@ int utimes(char *filename, struct timeval *tvp) | |||
117 | } | 118 | } |
118 | #endif | 119 | #endif |
119 | 120 | ||
121 | #ifndef HAVE_UTIMENSAT | ||
122 | /* | ||
123 | * A limited implementation of utimensat() that only implements the | ||
124 | * functionality used by OpenSSH, currently only AT_FDCWD and | ||
125 | * AT_SYMLINK_NOFOLLOW. | ||
126 | */ | ||
127 | int | ||
128 | utimensat(int fd, const char *path, const struct timespec times[2], | ||
129 | int flag) | ||
130 | { | ||
131 | struct timeval tv[2]; | ||
132 | int ret, oflags = O_WRONLY; | ||
133 | |||
134 | tv[0].tv_sec = times[0].tv_sec; | ||
135 | tv[0].tv_usec = times[0].tv_nsec / 1000; | ||
136 | tv[1].tv_sec = times[1].tv_sec; | ||
137 | tv[1].tv_usec = times[1].tv_nsec / 1000; | ||
138 | |||
139 | if (fd != AT_FDCWD) { | ||
140 | errno = ENOSYS; | ||
141 | return -1; | ||
142 | } | ||
143 | # ifndef HAVE_FUTIMES | ||
144 | return utimes(path, tv); | ||
145 | # else | ||
146 | # ifdef O_NOFOLLOW | ||
147 | if (flag & AT_SYMLINK_NOFOLLOW) | ||
148 | oflags |= O_NOFOLLOW; | ||
149 | # endif /* O_NOFOLLOW */ | ||
150 | if ((fd = open(path, oflags)) == -1) | ||
151 | return -1; | ||
152 | ret = futimes(fd, tv); | ||
153 | close(fd); | ||
154 | return ret; | ||
155 | # endif | ||
156 | } | ||
157 | #endif | ||
158 | |||
159 | #ifndef HAVE_FCHOWNAT | ||
160 | /* | ||
161 | * A limited implementation of fchownat() that only implements the | ||
162 | * functionality used by OpenSSH, currently only AT_FDCWD and | ||
163 | * AT_SYMLINK_NOFOLLOW. | ||
164 | */ | ||
165 | int | ||
166 | fchownat(int fd, const char *path, uid_t owner, gid_t group, int flag) | ||
167 | { | ||
168 | int ret, oflags = O_WRONLY; | ||
169 | |||
170 | if (fd != AT_FDCWD) { | ||
171 | errno = ENOSYS; | ||
172 | return -1; | ||
173 | } | ||
174 | # ifndef HAVE_FCHOWN | ||
175 | return chown(pathname, owner, group); | ||
176 | # else | ||
177 | # ifdef O_NOFOLLOW | ||
178 | if (flag & AT_SYMLINK_NOFOLLOW) | ||
179 | oflags |= O_NOFOLLOW; | ||
180 | # endif /* O_NOFOLLOW */ | ||
181 | if ((fd = open(path, oflags)) == -1) | ||
182 | return -1; | ||
183 | ret = fchown(fd, owner, group); | ||
184 | close(fd); | ||
185 | return ret; | ||
186 | # endif | ||
187 | } | ||
188 | #endif | ||
189 | |||
190 | #ifndef HAVE_FCHMODAT | ||
191 | /* | ||
192 | * A limited implementation of fchmodat() that only implements the | ||
193 | * functionality used by OpenSSH, currently only AT_FDCWD and | ||
194 | * AT_SYMLINK_NOFOLLOW. | ||
195 | */ | ||
196 | int | ||
197 | fchmodat(int fd, const char *path, mode_t mode, int flag) | ||
198 | { | ||
199 | int ret, oflags = O_WRONLY; | ||
200 | |||
201 | if (fd != AT_FDCWD) { | ||
202 | errno = ENOSYS; | ||
203 | return -1; | ||
204 | } | ||
205 | # ifndef HAVE_FCHMOD | ||
206 | return chown(pathname, owner, group); | ||
207 | # else | ||
208 | # ifdef O_NOFOLLOW | ||
209 | if (flag & AT_SYMLINK_NOFOLLOW) | ||
210 | oflags |= O_NOFOLLOW; | ||
211 | # endif /* O_NOFOLLOW */ | ||
212 | if ((fd = open(path, oflags)) == -1) | ||
213 | return -1; | ||
214 | ret = fchmod(fd, mode); | ||
215 | close(fd); | ||
216 | return ret; | ||
217 | # endif | ||
218 | } | ||
219 | #endif | ||
220 | |||
120 | #ifndef HAVE_TRUNCATE | 221 | #ifndef HAVE_TRUNCATE |
121 | int truncate(const char *path, off_t length) | 222 | int truncate(const char *path, off_t length) |
122 | { | 223 | { |
diff --git a/openbsd-compat/bsd-misc.h b/openbsd-compat/bsd-misc.h index 52ec52853..cb158cd5c 100644 --- a/openbsd-compat/bsd-misc.h +++ b/openbsd-compat/bsd-misc.h | |||
@@ -64,6 +64,26 @@ struct timeval { | |||
64 | int utimes(char *, struct timeval *); | 64 | int utimes(char *, struct timeval *); |
65 | #endif /* HAVE_UTIMES */ | 65 | #endif /* HAVE_UTIMES */ |
66 | 66 | ||
67 | #ifndef HAVE_UTIMENSAT | ||
68 | /* start with the high bits and work down to minimise risk of overlap */ | ||
69 | # ifndef AT_SYMLINK_NOFOLLOW | ||
70 | # define AT_SYMLINK_NOFOLLOW 0x80000000 | ||
71 | # endif | ||
72 | int utimensat(int, const char *, const struct timespec[2], int); | ||
73 | #endif | ||
74 | |||
75 | #ifndef AT_FDCWD | ||
76 | # define AT_FDCWD (-2) | ||
77 | #endif | ||
78 | |||
79 | #ifndef HAVE_FCHMODAT | ||
80 | int fchmodat(int, const char *, mode_t, int); | ||
81 | #endif | ||
82 | |||
83 | #ifndef HAVE_FCHOWNAT | ||
84 | int fchownat(int, const char *, uid_t, gid_t, int); | ||
85 | #endif | ||
86 | |||
67 | #ifndef HAVE_TRUNCATE | 87 | #ifndef HAVE_TRUNCATE |
68 | int truncate (const char *, off_t); | 88 | int truncate (const char *, off_t); |
69 | #endif /* HAVE_TRUNCATE */ | 89 | #endif /* HAVE_TRUNCATE */ |
diff --git a/openbsd-compat/libressl-api-compat.c b/openbsd-compat/libressl-api-compat.c index de3e64a63..ae00ff593 100644 --- a/openbsd-compat/libressl-api-compat.c +++ b/openbsd-compat/libressl-api-compat.c | |||
@@ -152,7 +152,9 @@ | |||
152 | #include <openssl/dsa.h> | 152 | #include <openssl/dsa.h> |
153 | #include <openssl/rsa.h> | 153 | #include <openssl/rsa.h> |
154 | #include <openssl/evp.h> | 154 | #include <openssl/evp.h> |
155 | #ifdef OPENSSL_HAS_ECC | ||
155 | #include <openssl/ecdsa.h> | 156 | #include <openssl/ecdsa.h> |
157 | #endif | ||
156 | #include <openssl/dh.h> | 158 | #include <openssl/dh.h> |
157 | 159 | ||
158 | #ifndef HAVE_DSA_GET0_PQG | 160 | #ifndef HAVE_DSA_GET0_PQG |
@@ -417,6 +419,7 @@ DSA_SIG_set0(DSA_SIG *sig, BIGNUM *r, BIGNUM *s) | |||
417 | } | 419 | } |
418 | #endif /* HAVE_DSA_SIG_SET0 */ | 420 | #endif /* HAVE_DSA_SIG_SET0 */ |
419 | 421 | ||
422 | #ifdef OPENSSL_HAS_ECC | ||
420 | #ifndef HAVE_ECDSA_SIG_GET0 | 423 | #ifndef HAVE_ECDSA_SIG_GET0 |
421 | void | 424 | void |
422 | ECDSA_SIG_get0(const ECDSA_SIG *sig, const BIGNUM **pr, const BIGNUM **ps) | 425 | ECDSA_SIG_get0(const ECDSA_SIG *sig, const BIGNUM **pr, const BIGNUM **ps) |
@@ -442,6 +445,7 @@ ECDSA_SIG_set0(ECDSA_SIG *sig, BIGNUM *r, BIGNUM *s) | |||
442 | return 1; | 445 | return 1; |
443 | } | 446 | } |
444 | #endif /* HAVE_ECDSA_SIG_SET0 */ | 447 | #endif /* HAVE_ECDSA_SIG_SET0 */ |
448 | #endif /* OPENSSL_HAS_ECC */ | ||
445 | 449 | ||
446 | #ifndef HAVE_DH_GET0_PQG | 450 | #ifndef HAVE_DH_GET0_PQG |
447 | void | 451 | void |
diff --git a/openbsd-compat/openbsd-compat.h b/openbsd-compat/openbsd-compat.h index f5c833bf2..865aaee53 100644 --- a/openbsd-compat/openbsd-compat.h +++ b/openbsd-compat/openbsd-compat.h | |||
@@ -61,6 +61,7 @@ void closefrom(int); | |||
61 | #endif | 61 | #endif |
62 | 62 | ||
63 | #ifndef HAVE_GETLINE | 63 | #ifndef HAVE_GETLINE |
64 | #include <stdio.h> | ||
64 | ssize_t getline(char **, size_t *, FILE *); | 65 | ssize_t getline(char **, size_t *, FILE *); |
65 | #endif | 66 | #endif |
66 | 67 | ||
diff --git a/openbsd-compat/openssl-compat.c b/openbsd-compat/openssl-compat.c index 8b4a36274..a37ca61bf 100644 --- a/openbsd-compat/openssl-compat.c +++ b/openbsd-compat/openssl-compat.c | |||
@@ -66,23 +66,31 @@ ssh_compatible_openssl(long headerver, long libver) | |||
66 | return 0; | 66 | return 0; |
67 | } | 67 | } |
68 | 68 | ||
69 | #ifdef USE_OPENSSL_ENGINE | ||
70 | void | 69 | void |
71 | ssh_OpenSSL_add_all_algorithms(void) | 70 | ssh_libcrypto_init(void) |
72 | { | 71 | { |
72 | #if defined(HAVE_OPENSSL_INIT_CRYPTO) && \ | ||
73 | defined(OPENSSL_INIT_ADD_ALL_CIPHERS) && \ | ||
74 | defined(OPENSSL_INIT_ADD_ALL_DIGESTS) | ||
75 | OPENSSL_init_crypto(OPENSSL_INIT_ADD_ALL_CIPHERS | | ||
76 | OPENSSL_INIT_ADD_ALL_DIGESTS, NULL); | ||
77 | #elif defined(HAVE_OPENSSL_ADD_ALL_ALGORITHMS) | ||
73 | OpenSSL_add_all_algorithms(); | 78 | OpenSSL_add_all_algorithms(); |
79 | #endif | ||
74 | 80 | ||
81 | #ifdef USE_OPENSSL_ENGINE | ||
75 | /* Enable use of crypto hardware */ | 82 | /* Enable use of crypto hardware */ |
76 | ENGINE_load_builtin_engines(); | 83 | ENGINE_load_builtin_engines(); |
77 | ENGINE_register_all_complete(); | 84 | ENGINE_register_all_complete(); |
78 | 85 | ||
79 | #if OPENSSL_VERSION_NUMBER < 0x10001000L | 86 | /* Load the libcrypto config file to pick up engines defined there */ |
80 | OPENSSL_config(NULL); | 87 | # if defined(HAVE_OPENSSL_INIT_CRYPTO) && defined(OPENSSL_INIT_LOAD_CONFIG) |
81 | #else | ||
82 | OPENSSL_init_crypto(OPENSSL_INIT_ADD_ALL_CIPHERS | | 88 | OPENSSL_init_crypto(OPENSSL_INIT_ADD_ALL_CIPHERS | |
83 | OPENSSL_INIT_ADD_ALL_DIGESTS | OPENSSL_INIT_LOAD_CONFIG, NULL); | 89 | OPENSSL_INIT_ADD_ALL_DIGESTS | OPENSSL_INIT_LOAD_CONFIG, NULL); |
84 | #endif | 90 | # else |
91 | OPENSSL_config(NULL); | ||
92 | # endif | ||
93 | #endif /* USE_OPENSSL_ENGINE */ | ||
85 | } | 94 | } |
86 | #endif | ||
87 | 95 | ||
88 | #endif /* WITH_OPENSSL */ | 96 | #endif /* WITH_OPENSSL */ |
diff --git a/openbsd-compat/openssl-compat.h b/openbsd-compat/openssl-compat.h index 9e0264c04..917bc6f7c 100644 --- a/openbsd-compat/openssl-compat.h +++ b/openbsd-compat/openssl-compat.h | |||
@@ -21,16 +21,32 @@ | |||
21 | #ifdef WITH_OPENSSL | 21 | #ifdef WITH_OPENSSL |
22 | 22 | ||
23 | #include <openssl/opensslv.h> | 23 | #include <openssl/opensslv.h> |
24 | #include <openssl/crypto.h> | ||
24 | #include <openssl/evp.h> | 25 | #include <openssl/evp.h> |
25 | #include <openssl/rsa.h> | 26 | #include <openssl/rsa.h> |
26 | #include <openssl/dsa.h> | 27 | #include <openssl/dsa.h> |
28 | #ifdef OPENSSL_HAS_ECC | ||
27 | #include <openssl/ecdsa.h> | 29 | #include <openssl/ecdsa.h> |
30 | #endif | ||
28 | #include <openssl/dh.h> | 31 | #include <openssl/dh.h> |
29 | 32 | ||
30 | int ssh_compatible_openssl(long, long); | 33 | int ssh_compatible_openssl(long, long); |
34 | void ssh_libcrypto_init(void); | ||
35 | |||
36 | #if (OPENSSL_VERSION_NUMBER < 0x1000100fL) | ||
37 | # error OpenSSL 1.0.1 or greater is required | ||
38 | #endif | ||
39 | |||
40 | #ifndef OPENSSL_VERSION | ||
41 | # define OPENSSL_VERSION SSLEAY_VERSION | ||
42 | #endif | ||
43 | |||
44 | #ifndef HAVE_OPENSSL_VERSION | ||
45 | # define OpenSSL_version(x) SSLeay_version(x) | ||
46 | #endif | ||
31 | 47 | ||
32 | #if (OPENSSL_VERSION_NUMBER <= 0x0090805fL) | 48 | #ifndef HAVE_OPENSSL_VERSION_NUM |
33 | # error OpenSSL 0.9.8f or greater is required | 49 | # define OpenSSL_version_num SSLeay |
34 | #endif | 50 | #endif |
35 | 51 | ||
36 | #if OPENSSL_VERSION_NUMBER < 0x10000001L | 52 | #if OPENSSL_VERSION_NUMBER < 0x10000001L |
@@ -77,27 +93,6 @@ void ssh_aes_ctr_iv(EVP_CIPHER_CTX *, int, u_char *, size_t); | |||
77 | # endif | 93 | # endif |
78 | #endif | 94 | #endif |
79 | 95 | ||
80 | /* | ||
81 | * We overload some of the OpenSSL crypto functions with ssh_* equivalents | ||
82 | * to automatically handle OpenSSL engine initialisation. | ||
83 | * | ||
84 | * In order for the compat library to call the real functions, it must | ||
85 | * define SSH_DONT_OVERLOAD_OPENSSL_FUNCS before including this file and | ||
86 | * implement the ssh_* equivalents. | ||
87 | */ | ||
88 | #ifndef SSH_DONT_OVERLOAD_OPENSSL_FUNCS | ||
89 | |||
90 | # ifdef USE_OPENSSL_ENGINE | ||
91 | # ifdef OpenSSL_add_all_algorithms | ||
92 | # undef OpenSSL_add_all_algorithms | ||
93 | # endif | ||
94 | # define OpenSSL_add_all_algorithms() ssh_OpenSSL_add_all_algorithms() | ||
95 | # endif | ||
96 | |||
97 | void ssh_OpenSSL_add_all_algorithms(void); | ||
98 | |||
99 | #endif /* SSH_DONT_OVERLOAD_OPENSSL_FUNCS */ | ||
100 | |||
101 | /* LibreSSL/OpenSSL 1.1x API compat */ | 96 | /* LibreSSL/OpenSSL 1.1x API compat */ |
102 | #ifndef HAVE_DSA_GET0_PQG | 97 | #ifndef HAVE_DSA_GET0_PQG |
103 | void DSA_get0_pqg(const DSA *d, const BIGNUM **p, const BIGNUM **q, | 98 | void DSA_get0_pqg(const DSA *d, const BIGNUM **p, const BIGNUM **q, |
@@ -161,6 +156,7 @@ void DSA_SIG_get0(const DSA_SIG *sig, const BIGNUM **pr, const BIGNUM **ps); | |||
161 | int DSA_SIG_set0(DSA_SIG *sig, BIGNUM *r, BIGNUM *s); | 156 | int DSA_SIG_set0(DSA_SIG *sig, BIGNUM *r, BIGNUM *s); |
162 | #endif /* DSA_SIG_SET0 */ | 157 | #endif /* DSA_SIG_SET0 */ |
163 | 158 | ||
159 | #ifdef OPENSSL_HAS_ECC | ||
164 | #ifndef HAVE_ECDSA_SIG_GET0 | 160 | #ifndef HAVE_ECDSA_SIG_GET0 |
165 | void ECDSA_SIG_get0(const ECDSA_SIG *sig, const BIGNUM **pr, const BIGNUM **ps); | 161 | void ECDSA_SIG_get0(const ECDSA_SIG *sig, const BIGNUM **pr, const BIGNUM **ps); |
166 | #endif /* HAVE_ECDSA_SIG_GET0 */ | 162 | #endif /* HAVE_ECDSA_SIG_GET0 */ |
@@ -168,6 +164,7 @@ void ECDSA_SIG_get0(const ECDSA_SIG *sig, const BIGNUM **pr, const BIGNUM **ps); | |||
168 | #ifndef HAVE_ECDSA_SIG_SET0 | 164 | #ifndef HAVE_ECDSA_SIG_SET0 |
169 | int ECDSA_SIG_set0(ECDSA_SIG *sig, BIGNUM *r, BIGNUM *s); | 165 | int ECDSA_SIG_set0(ECDSA_SIG *sig, BIGNUM *r, BIGNUM *s); |
170 | #endif /* HAVE_ECDSA_SIG_SET0 */ | 166 | #endif /* HAVE_ECDSA_SIG_SET0 */ |
167 | #endif /* OPENSSL_HAS_ECC */ | ||
171 | 168 | ||
172 | #ifndef HAVE_DH_GET0_PQG | 169 | #ifndef HAVE_DH_GET0_PQG |
173 | void DH_get0_pqg(const DH *dh, const BIGNUM **p, const BIGNUM **q, | 170 | void DH_get0_pqg(const DH *dh, const BIGNUM **p, const BIGNUM **q, |
diff --git a/openbsd-compat/port-aix.c b/openbsd-compat/port-aix.c index 943177c70..fc80dc39f 100644 --- a/openbsd-compat/port-aix.c +++ b/openbsd-compat/port-aix.c | |||
@@ -313,7 +313,8 @@ sys_auth_get_lastlogin_msg(const char *user, uid_t uid) | |||
313 | * record_failed_login: generic "login failed" interface function | 313 | * record_failed_login: generic "login failed" interface function |
314 | */ | 314 | */ |
315 | void | 315 | void |
316 | record_failed_login(const char *user, const char *hostname, const char *ttyname) | 316 | record_failed_login(struct ssh *ssh, const char *user, const char *hostname, |
317 | const char *ttyname) | ||
317 | { | 318 | { |
318 | if (geteuid() != 0) | 319 | if (geteuid() != 0) |
319 | return; | 320 | return; |
diff --git a/openbsd-compat/port-aix.h b/openbsd-compat/port-aix.h index 748c0e4e3..904de3096 100644 --- a/openbsd-compat/port-aix.h +++ b/openbsd-compat/port-aix.h | |||
@@ -30,6 +30,7 @@ | |||
30 | # include <sys/socket.h> | 30 | # include <sys/socket.h> |
31 | #endif | 31 | #endif |
32 | 32 | ||
33 | struct ssh; | ||
33 | struct sshbuf; | 34 | struct sshbuf; |
34 | 35 | ||
35 | /* These should be in the system headers but are not. */ | 36 | /* These should be in the system headers but are not. */ |
@@ -89,8 +90,8 @@ void aix_usrinfo(struct passwd *); | |||
89 | # define CUSTOM_SYS_AUTH_ALLOWED_USER 1 | 90 | # define CUSTOM_SYS_AUTH_ALLOWED_USER 1 |
90 | int sys_auth_allowed_user(struct passwd *, struct sshbuf *); | 91 | int sys_auth_allowed_user(struct passwd *, struct sshbuf *); |
91 | # define CUSTOM_SYS_AUTH_RECORD_LOGIN 1 | 92 | # define CUSTOM_SYS_AUTH_RECORD_LOGIN 1 |
92 | int sys_auth_record_login(const char *, const char *, | 93 | int sys_auth_record_login(const char *, const char *, const char *, |
93 | const char *, struct sshbuf *); | 94 | struct sshbuf *); |
94 | # define CUSTOM_SYS_AUTH_GET_LASTLOGIN_MSG | 95 | # define CUSTOM_SYS_AUTH_GET_LASTLOGIN_MSG |
95 | char *sys_auth_get_lastlogin_msg(const char *, uid_t); | 96 | char *sys_auth_get_lastlogin_msg(const char *, uid_t); |
96 | # define CUSTOM_FAILED_LOGIN 1 | 97 | # define CUSTOM_FAILED_LOGIN 1 |
diff --git a/openbsd-compat/regress/Makefile.in b/openbsd-compat/regress/Makefile.in index 529331be5..c5aae61e2 100644 --- a/openbsd-compat/regress/Makefile.in +++ b/openbsd-compat/regress/Makefile.in | |||
@@ -14,7 +14,7 @@ LIBS=@LIBS@ | |||
14 | LDFLAGS=@LDFLAGS@ $(LIBCOMPAT) | 14 | LDFLAGS=@LDFLAGS@ $(LIBCOMPAT) |
15 | 15 | ||
16 | TESTPROGS=closefromtest$(EXEEXT) snprintftest$(EXEEXT) strduptest$(EXEEXT) \ | 16 | TESTPROGS=closefromtest$(EXEEXT) snprintftest$(EXEEXT) strduptest$(EXEEXT) \ |
17 | strtonumtest$(EXEEXT) opensslvertest$(EXEEXT) | 17 | strtonumtest$(EXEEXT) opensslvertest$(EXEEXT) utimensattest$(EXEEXT) |
18 | 18 | ||
19 | all: t-exec ${OTHERTESTS} | 19 | all: t-exec ${OTHERTESTS} |
20 | 20 | ||
diff --git a/openbsd-compat/regress/utimensattest.c b/openbsd-compat/regress/utimensattest.c new file mode 100644 index 000000000..a7bc7634b --- /dev/null +++ b/openbsd-compat/regress/utimensattest.c | |||
@@ -0,0 +1,97 @@ | |||
1 | /* | ||
2 | * Copyright (c) 2019 Darren Tucker | ||
3 | * | ||
4 | * Permission to use, copy, modify, and distribute this software for any | ||
5 | * purpose with or without fee is hereby granted, provided that the above | ||
6 | * copyright notice and this permission notice appear in all copies. | ||
7 | * | ||
8 | * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES | ||
9 | * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF | ||
10 | * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR | ||
11 | * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES | ||
12 | * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN | ||
13 | * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF | ||
14 | * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. | ||
15 | */ | ||
16 | |||
17 | #include <sys/types.h> | ||
18 | #include <sys/stat.h> | ||
19 | |||
20 | #include <errno.h> | ||
21 | #include <fcntl.h> | ||
22 | #include <stdio.h> | ||
23 | #include <stdlib.h> | ||
24 | #include <string.h> | ||
25 | #include <unistd.h> | ||
26 | |||
27 | #define TMPFILE "utimensat.tmp" | ||
28 | #define TMPFILE2 "utimensat.tmp2" | ||
29 | |||
30 | #ifndef AT_SYMLINK_NOFOLLOW | ||
31 | # define AT_SYMLINK_NOFOLLOW 0x80000000 | ||
32 | #endif | ||
33 | |||
34 | int utimensat(int, const char *, const struct timespec[2], int); | ||
35 | |||
36 | void | ||
37 | fail(char *msg, long expect, long got) | ||
38 | { | ||
39 | int saved_errno = errno; | ||
40 | |||
41 | if (expect == got && got == 0) | ||
42 | fprintf(stderr, "utimensat: %s: %s\n", msg, | ||
43 | strerror(saved_errno)); | ||
44 | else | ||
45 | fprintf(stderr, "utimensat: %s: expected %ld got %ld\n", | ||
46 | msg, expect, got); | ||
47 | exit(1); | ||
48 | } | ||
49 | |||
50 | int | ||
51 | main(void) | ||
52 | { | ||
53 | int fd; | ||
54 | struct stat sb; | ||
55 | struct timespec ts[2]; | ||
56 | |||
57 | if ((fd = open(TMPFILE, O_CREAT, 0600)) == -1) | ||
58 | fail("open", 0, 0); | ||
59 | close(fd); | ||
60 | |||
61 | ts[0].tv_sec = 12345678; | ||
62 | ts[0].tv_nsec = 23456789; | ||
63 | ts[1].tv_sec = 34567890; | ||
64 | ts[1].tv_nsec = 45678901; | ||
65 | if (utimensat(AT_FDCWD, TMPFILE, ts, AT_SYMLINK_NOFOLLOW) == -1) | ||
66 | fail("utimensat", 0, 0); | ||
67 | |||
68 | if (stat(TMPFILE, &sb) == -1) | ||
69 | fail("stat", 0, 0 ); | ||
70 | if (sb.st_atime != 12345678) | ||
71 | fail("st_atime", 0, 0 ); | ||
72 | if (sb.st_mtime != 34567890) | ||
73 | fail("st_mtime", 0, 0 ); | ||
74 | #if 0 | ||
75 | /* | ||
76 | * Results expected to be rounded to the nearest microsecond. | ||
77 | * Depends on timestamp precision in kernel and filesystem so | ||
78 | * disabled by default. | ||
79 | */ | ||
80 | if (sb.st_atim.tv_nsec != 23456000) | ||
81 | fail("atim.tv_nsec", 23456000, sb.st_atim.tv_nsec); | ||
82 | if (sb.st_mtim.tv_nsec != 45678000) | ||
83 | fail("mtim.tv_nsec", 45678000, sb.st_mtim.tv_nsec); | ||
84 | #endif | ||
85 | |||
86 | if (rename(TMPFILE, TMPFILE2) == -1) | ||
87 | fail("rename", 0, 0); | ||
88 | if (symlink(TMPFILE2, TMPFILE) == -1) | ||
89 | fail("symlink", 0, 0); | ||
90 | |||
91 | if (utimensat(AT_FDCWD, TMPFILE, ts, AT_SYMLINK_NOFOLLOW) != -1) | ||
92 | fail("utimensat followed symlink", 0, 0); | ||
93 | |||
94 | if (!(unlink(TMPFILE) == 0 && unlink(TMPFILE2) == 0)) | ||
95 | fail("unlink", 0, 0); | ||
96 | exit(0); | ||
97 | } | ||
diff --git a/openbsd-compat/sys-queue.h b/openbsd-compat/sys-queue.h index af93d6814..5108f394c 100644 --- a/openbsd-compat/sys-queue.h +++ b/openbsd-compat/sys-queue.h | |||
@@ -81,6 +81,7 @@ | |||
81 | #undef SIMPLEQ_EMPTY | 81 | #undef SIMPLEQ_EMPTY |
82 | #undef SIMPLEQ_NEXT | 82 | #undef SIMPLEQ_NEXT |
83 | #undef SIMPLEQ_FOREACH | 83 | #undef SIMPLEQ_FOREACH |
84 | #undef SIMPLEQ_FOREACH_SAFE | ||
84 | #undef SIMPLEQ_INIT | 85 | #undef SIMPLEQ_INIT |
85 | #undef SIMPLEQ_INSERT_HEAD | 86 | #undef SIMPLEQ_INSERT_HEAD |
86 | #undef SIMPLEQ_INSERT_TAIL | 87 | #undef SIMPLEQ_INSERT_TAIL |
@@ -1,4 +1,4 @@ | |||
1 | /* $OpenBSD: packet.c,v 1.277 2018/07/16 03:09:13 djm Exp $ */ | 1 | /* $OpenBSD: packet.c,v 1.283 2019/03/01 03:29:32 djm Exp $ */ |
2 | /* | 2 | /* |
3 | * Author: Tatu Ylonen <ylo@cs.hut.fi> | 3 | * Author: Tatu Ylonen <ylo@cs.hut.fi> |
4 | * Copyright (c) 1995 Tatu Ylonen <ylo@cs.hut.fi>, Espoo, Finland | 4 | * Copyright (c) 1995 Tatu Ylonen <ylo@cs.hut.fi>, Espoo, Finland |
@@ -58,6 +58,7 @@ | |||
58 | #include <string.h> | 58 | #include <string.h> |
59 | #include <unistd.h> | 59 | #include <unistd.h> |
60 | #include <limits.h> | 60 | #include <limits.h> |
61 | #include <poll.h> | ||
61 | #include <signal.h> | 62 | #include <signal.h> |
62 | #include <time.h> | 63 | #include <time.h> |
63 | 64 | ||
@@ -228,6 +229,7 @@ ssh_alloc_session_state(void) | |||
228 | 229 | ||
229 | if ((ssh = calloc(1, sizeof(*ssh))) == NULL || | 230 | if ((ssh = calloc(1, sizeof(*ssh))) == NULL || |
230 | (state = calloc(1, sizeof(*state))) == NULL || | 231 | (state = calloc(1, sizeof(*state))) == NULL || |
232 | (ssh->kex = kex_new()) == NULL || | ||
231 | (state->input = sshbuf_new()) == NULL || | 233 | (state->input = sshbuf_new()) == NULL || |
232 | (state->output = sshbuf_new()) == NULL || | 234 | (state->output = sshbuf_new()) == NULL || |
233 | (state->outgoing_packet = sshbuf_new()) == NULL || | 235 | (state->outgoing_packet = sshbuf_new()) == NULL || |
@@ -250,6 +252,10 @@ ssh_alloc_session_state(void) | |||
250 | ssh->state = state; | 252 | ssh->state = state; |
251 | return ssh; | 253 | return ssh; |
252 | fail: | 254 | fail: |
255 | if (ssh) { | ||
256 | kex_free(ssh->kex); | ||
257 | free(ssh); | ||
258 | } | ||
253 | if (state) { | 259 | if (state) { |
254 | sshbuf_free(state->input); | 260 | sshbuf_free(state->input); |
255 | sshbuf_free(state->output); | 261 | sshbuf_free(state->output); |
@@ -257,7 +263,6 @@ ssh_alloc_session_state(void) | |||
257 | sshbuf_free(state->outgoing_packet); | 263 | sshbuf_free(state->outgoing_packet); |
258 | free(state); | 264 | free(state); |
259 | } | 265 | } |
260 | free(ssh); | ||
261 | return NULL; | 266 | return NULL; |
262 | } | 267 | } |
263 | 268 | ||
@@ -272,8 +277,7 @@ ssh_packet_set_input_hook(struct ssh *ssh, ssh_packet_hook_fn *hook, void *ctx) | |||
272 | int | 277 | int |
273 | ssh_packet_is_rekeying(struct ssh *ssh) | 278 | ssh_packet_is_rekeying(struct ssh *ssh) |
274 | { | 279 | { |
275 | return ssh->state->rekeying || | 280 | return ssh->state->rekeying || ssh->kex->done == 0; |
276 | (ssh->kex != NULL && ssh->kex->done == 0); | ||
277 | } | 281 | } |
278 | 282 | ||
279 | /* | 283 | /* |
@@ -837,6 +841,7 @@ ssh_set_newkeys(struct ssh *ssh, int mode) | |||
837 | u_int64_t *max_blocks; | 841 | u_int64_t *max_blocks; |
838 | const char *wmsg; | 842 | const char *wmsg; |
839 | int r, crypt_type; | 843 | int r, crypt_type; |
844 | const char *dir = mode == MODE_OUT ? "out" : "in"; | ||
840 | 845 | ||
841 | debug2("set_newkeys: mode %d", mode); | 846 | debug2("set_newkeys: mode %d", mode); |
842 | 847 | ||
@@ -852,14 +857,12 @@ ssh_set_newkeys(struct ssh *ssh, int mode) | |||
852 | max_blocks = &state->max_blocks_in; | 857 | max_blocks = &state->max_blocks_in; |
853 | } | 858 | } |
854 | if (state->newkeys[mode] != NULL) { | 859 | if (state->newkeys[mode] != NULL) { |
855 | debug("set_newkeys: rekeying, input %llu bytes %llu blocks, " | 860 | debug("%s: rekeying %s, input %llu bytes %llu blocks, " |
856 | "output %llu bytes %llu blocks", | 861 | "output %llu bytes %llu blocks", __func__, dir, |
857 | (unsigned long long)state->p_read.bytes, | 862 | (unsigned long long)state->p_read.bytes, |
858 | (unsigned long long)state->p_read.blocks, | 863 | (unsigned long long)state->p_read.blocks, |
859 | (unsigned long long)state->p_send.bytes, | 864 | (unsigned long long)state->p_send.bytes, |
860 | (unsigned long long)state->p_send.blocks); | 865 | (unsigned long long)state->p_send.blocks); |
861 | cipher_free(*ccp); | ||
862 | *ccp = NULL; | ||
863 | kex_free_newkeys(state->newkeys[mode]); | 866 | kex_free_newkeys(state->newkeys[mode]); |
864 | state->newkeys[mode] = NULL; | 867 | state->newkeys[mode] = NULL; |
865 | } | 868 | } |
@@ -877,7 +880,9 @@ ssh_set_newkeys(struct ssh *ssh, int mode) | |||
877 | return r; | 880 | return r; |
878 | } | 881 | } |
879 | mac->enabled = 1; | 882 | mac->enabled = 1; |
880 | DBG(debug("cipher_init_context: %d", mode)); | 883 | DBG(debug("%s: cipher_init_context: %s", __func__, dir)); |
884 | cipher_free(*ccp); | ||
885 | *ccp = NULL; | ||
881 | if ((r = cipher_init(ccp, enc->cipher, enc->key, enc->key_len, | 886 | if ((r = cipher_init(ccp, enc->cipher, enc->key, enc->key_len, |
882 | enc->iv, enc->iv_len, crypt_type)) != 0) | 887 | enc->iv, enc->iv_len, crypt_type)) != 0) |
883 | return r; | 888 | return r; |
@@ -916,7 +921,8 @@ ssh_set_newkeys(struct ssh *ssh, int mode) | |||
916 | if (state->rekey_limit) | 921 | if (state->rekey_limit) |
917 | *max_blocks = MINIMUM(*max_blocks, | 922 | *max_blocks = MINIMUM(*max_blocks, |
918 | state->rekey_limit / enc->block_size); | 923 | state->rekey_limit / enc->block_size); |
919 | debug("rekey after %llu blocks", (unsigned long long)*max_blocks); | 924 | debug("rekey %s after %llu blocks", dir, |
925 | (unsigned long long)*max_blocks); | ||
920 | return 0; | 926 | return 0; |
921 | } | 927 | } |
922 | 928 | ||
@@ -932,7 +938,7 @@ ssh_packet_need_rekeying(struct ssh *ssh, u_int outbound_packet_len) | |||
932 | return 0; | 938 | return 0; |
933 | 939 | ||
934 | /* Haven't keyed yet or KEX in progress. */ | 940 | /* Haven't keyed yet or KEX in progress. */ |
935 | if (ssh->kex == NULL || ssh_packet_is_rekeying(ssh)) | 941 | if (ssh_packet_is_rekeying(ssh)) |
936 | return 0; | 942 | return 0; |
937 | 943 | ||
938 | /* Peer can't rekey */ | 944 | /* Peer can't rekey */ |
@@ -1805,10 +1811,10 @@ sshpkt_fmt_connection_id(struct ssh *ssh, char *s, size_t l) | |||
1805 | /* | 1811 | /* |
1806 | * Pretty-print connection-terminating errors and exit. | 1812 | * Pretty-print connection-terminating errors and exit. |
1807 | */ | 1813 | */ |
1808 | void | 1814 | static void |
1809 | sshpkt_fatal(struct ssh *ssh, const char *tag, int r) | 1815 | sshpkt_vfatal(struct ssh *ssh, int r, const char *fmt, va_list ap) |
1810 | { | 1816 | { |
1811 | char remote_id[512]; | 1817 | char *tag = NULL, remote_id[512]; |
1812 | 1818 | ||
1813 | sshpkt_fmt_connection_id(ssh, remote_id, sizeof(remote_id)); | 1819 | sshpkt_fmt_connection_id(ssh, remote_id, sizeof(remote_id)); |
1814 | 1820 | ||
@@ -1842,6 +1848,11 @@ sshpkt_fatal(struct ssh *ssh, const char *tag, int r) | |||
1842 | } | 1848 | } |
1843 | /* FALLTHROUGH */ | 1849 | /* FALLTHROUGH */ |
1844 | default: | 1850 | default: |
1851 | if (vasprintf(&tag, fmt, ap) == -1) { | ||
1852 | ssh_packet_clear_keys(ssh); | ||
1853 | logdie("%s: could not allocate failure message", | ||
1854 | __func__); | ||
1855 | } | ||
1845 | ssh_packet_clear_keys(ssh); | 1856 | ssh_packet_clear_keys(ssh); |
1846 | logdie("%s%sConnection %s %s: %s", | 1857 | logdie("%s%sConnection %s %s: %s", |
1847 | tag != NULL ? tag : "", tag != NULL ? ": " : "", | 1858 | tag != NULL ? tag : "", tag != NULL ? ": " : "", |
@@ -1850,6 +1861,18 @@ sshpkt_fatal(struct ssh *ssh, const char *tag, int r) | |||
1850 | } | 1861 | } |
1851 | } | 1862 | } |
1852 | 1863 | ||
1864 | void | ||
1865 | sshpkt_fatal(struct ssh *ssh, int r, const char *fmt, ...) | ||
1866 | { | ||
1867 | va_list ap; | ||
1868 | |||
1869 | va_start(ap, fmt); | ||
1870 | sshpkt_vfatal(ssh, r, fmt, ap); | ||
1871 | /* NOTREACHED */ | ||
1872 | va_end(ap); | ||
1873 | logdie("%s: should have exited", __func__); | ||
1874 | } | ||
1875 | |||
1853 | /* | 1876 | /* |
1854 | * Logs the error plus constructs and sends a disconnect packet, closes the | 1877 | * Logs the error plus constructs and sends a disconnect packet, closes the |
1855 | * connection, and exits. This function never returns. The error message | 1878 | * connection, and exits. This function never returns. The error message |
@@ -1885,10 +1908,10 @@ ssh_packet_disconnect(struct ssh *ssh, const char *fmt,...) | |||
1885 | * for it to get sent. | 1908 | * for it to get sent. |
1886 | */ | 1909 | */ |
1887 | if ((r = sshpkt_disconnect(ssh, "%s", buf)) != 0) | 1910 | if ((r = sshpkt_disconnect(ssh, "%s", buf)) != 0) |
1888 | sshpkt_fatal(ssh, __func__, r); | 1911 | sshpkt_fatal(ssh, r, "%s", __func__); |
1889 | 1912 | ||
1890 | if ((r = ssh_packet_write_wait(ssh)) != 0) | 1913 | if ((r = ssh_packet_write_wait(ssh)) != 0) |
1891 | sshpkt_fatal(ssh, __func__, r); | 1914 | sshpkt_fatal(ssh, r, "%s", __func__); |
1892 | 1915 | ||
1893 | /* Close the connection. */ | 1916 | /* Close the connection. */ |
1894 | ssh_packet_close(ssh); | 1917 | ssh_packet_close(ssh); |
@@ -2123,6 +2146,7 @@ void | |||
2123 | ssh_packet_set_server(struct ssh *ssh) | 2146 | ssh_packet_set_server(struct ssh *ssh) |
2124 | { | 2147 | { |
2125 | ssh->state->server_side = 1; | 2148 | ssh->state->server_side = 1; |
2149 | ssh->kex->server = 1; /* XXX unify? */ | ||
2126 | } | 2150 | } |
2127 | 2151 | ||
2128 | void | 2152 | void |
@@ -2175,9 +2199,9 @@ kex_to_blob(struct sshbuf *m, struct kex *kex) | |||
2175 | (r = sshbuf_put_u32(m, kex->kex_type)) != 0 || | 2199 | (r = sshbuf_put_u32(m, kex->kex_type)) != 0 || |
2176 | (r = sshbuf_put_stringb(m, kex->my)) != 0 || | 2200 | (r = sshbuf_put_stringb(m, kex->my)) != 0 || |
2177 | (r = sshbuf_put_stringb(m, kex->peer)) != 0 || | 2201 | (r = sshbuf_put_stringb(m, kex->peer)) != 0 || |
2178 | (r = sshbuf_put_u32(m, kex->flags)) != 0 || | 2202 | (r = sshbuf_put_stringb(m, kex->client_version)) != 0 || |
2179 | (r = sshbuf_put_cstring(m, kex->client_version_string)) != 0 || | 2203 | (r = sshbuf_put_stringb(m, kex->server_version)) != 0 || |
2180 | (r = sshbuf_put_cstring(m, kex->server_version_string)) != 0) | 2204 | (r = sshbuf_put_u32(m, kex->flags)) != 0) |
2181 | return r; | 2205 | return r; |
2182 | return 0; | 2206 | return 0; |
2183 | } | 2207 | } |
@@ -2327,12 +2351,8 @@ kex_from_blob(struct sshbuf *m, struct kex **kexp) | |||
2327 | struct kex *kex; | 2351 | struct kex *kex; |
2328 | int r; | 2352 | int r; |
2329 | 2353 | ||
2330 | if ((kex = calloc(1, sizeof(struct kex))) == NULL || | 2354 | if ((kex = kex_new()) == NULL) |
2331 | (kex->my = sshbuf_new()) == NULL || | 2355 | return SSH_ERR_ALLOC_FAIL; |
2332 | (kex->peer = sshbuf_new()) == NULL) { | ||
2333 | r = SSH_ERR_ALLOC_FAIL; | ||
2334 | goto out; | ||
2335 | } | ||
2336 | if ((r = sshbuf_get_string(m, &kex->session_id, &kex->session_id_len)) != 0 || | 2356 | if ((r = sshbuf_get_string(m, &kex->session_id, &kex->session_id_len)) != 0 || |
2337 | (r = sshbuf_get_u32(m, &kex->we_need)) != 0 || | 2357 | (r = sshbuf_get_u32(m, &kex->we_need)) != 0 || |
2338 | (r = sshbuf_get_cstring(m, &kex->hostkey_alg, NULL)) != 0 || | 2358 | (r = sshbuf_get_cstring(m, &kex->hostkey_alg, NULL)) != 0 || |
@@ -2341,23 +2361,20 @@ kex_from_blob(struct sshbuf *m, struct kex **kexp) | |||
2341 | (r = sshbuf_get_u32(m, &kex->kex_type)) != 0 || | 2361 | (r = sshbuf_get_u32(m, &kex->kex_type)) != 0 || |
2342 | (r = sshbuf_get_stringb(m, kex->my)) != 0 || | 2362 | (r = sshbuf_get_stringb(m, kex->my)) != 0 || |
2343 | (r = sshbuf_get_stringb(m, kex->peer)) != 0 || | 2363 | (r = sshbuf_get_stringb(m, kex->peer)) != 0 || |
2344 | (r = sshbuf_get_u32(m, &kex->flags)) != 0 || | 2364 | (r = sshbuf_get_stringb(m, kex->client_version)) != 0 || |
2345 | (r = sshbuf_get_cstring(m, &kex->client_version_string, NULL)) != 0 || | 2365 | (r = sshbuf_get_stringb(m, kex->server_version)) != 0 || |
2346 | (r = sshbuf_get_cstring(m, &kex->server_version_string, NULL)) != 0) | 2366 | (r = sshbuf_get_u32(m, &kex->flags)) != 0) |
2347 | goto out; | 2367 | goto out; |
2348 | kex->server = 1; | 2368 | kex->server = 1; |
2349 | kex->done = 1; | 2369 | kex->done = 1; |
2350 | r = 0; | 2370 | r = 0; |
2351 | out: | 2371 | out: |
2352 | if (r != 0 || kexp == NULL) { | 2372 | if (r != 0 || kexp == NULL) { |
2353 | if (kex != NULL) { | 2373 | kex_free(kex); |
2354 | sshbuf_free(kex->my); | ||
2355 | sshbuf_free(kex->peer); | ||
2356 | free(kex); | ||
2357 | } | ||
2358 | if (kexp != NULL) | 2374 | if (kexp != NULL) |
2359 | *kexp = NULL; | 2375 | *kexp = NULL; |
2360 | } else { | 2376 | } else { |
2377 | kex_free(*kexp); | ||
2361 | *kexp = kex; | 2378 | *kexp = kex; |
2362 | } | 2379 | } |
2363 | return r; | 2380 | return r; |
@@ -2468,6 +2485,12 @@ sshpkt_put_stringb(struct ssh *ssh, const struct sshbuf *v) | |||
2468 | return sshbuf_put_stringb(ssh->state->outgoing_packet, v); | 2485 | return sshbuf_put_stringb(ssh->state->outgoing_packet, v); |
2469 | } | 2486 | } |
2470 | 2487 | ||
2488 | int | ||
2489 | sshpkt_getb_froms(struct ssh *ssh, struct sshbuf **valp) | ||
2490 | { | ||
2491 | return sshbuf_froms(ssh->state->incoming_packet, valp); | ||
2492 | } | ||
2493 | |||
2471 | #ifdef WITH_OPENSSL | 2494 | #ifdef WITH_OPENSSL |
2472 | #ifdef OPENSSL_HAS_ECC | 2495 | #ifdef OPENSSL_HAS_ECC |
2473 | int | 2496 | int |
@@ -2544,11 +2567,10 @@ sshpkt_get_ec(struct ssh *ssh, EC_POINT *v, const EC_GROUP *g) | |||
2544 | } | 2567 | } |
2545 | #endif /* OPENSSL_HAS_ECC */ | 2568 | #endif /* OPENSSL_HAS_ECC */ |
2546 | 2569 | ||
2547 | |||
2548 | int | 2570 | int |
2549 | sshpkt_get_bignum2(struct ssh *ssh, BIGNUM *v) | 2571 | sshpkt_get_bignum2(struct ssh *ssh, BIGNUM **valp) |
2550 | { | 2572 | { |
2551 | return sshbuf_get_bignum2(ssh->state->incoming_packet, v); | 2573 | return sshbuf_get_bignum2(ssh->state->incoming_packet, valp); |
2552 | } | 2574 | } |
2553 | #endif /* WITH_OPENSSL */ | 2575 | #endif /* WITH_OPENSSL */ |
2554 | 2576 | ||
@@ -1,4 +1,4 @@ | |||
1 | /* $OpenBSD: packet.h,v 1.86 2018/07/09 21:20:26 markus Exp $ */ | 1 | /* $OpenBSD: packet.h,v 1.90 2019/01/21 10:35:09 djm Exp $ */ |
2 | 2 | ||
3 | /* | 3 | /* |
4 | * Author: Tatu Ylonen <ylo@cs.hut.fi> | 4 | * Author: Tatu Ylonen <ylo@cs.hut.fi> |
@@ -176,7 +176,8 @@ int sshpkt_send(struct ssh *ssh); | |||
176 | int sshpkt_disconnect(struct ssh *, const char *fmt, ...) | 176 | int sshpkt_disconnect(struct ssh *, const char *fmt, ...) |
177 | __attribute__((format(printf, 2, 3))); | 177 | __attribute__((format(printf, 2, 3))); |
178 | int sshpkt_add_padding(struct ssh *, u_char); | 178 | int sshpkt_add_padding(struct ssh *, u_char); |
179 | void sshpkt_fatal(struct ssh *ssh, const char *tag, int r); | 179 | void sshpkt_fatal(struct ssh *ssh, int r, const char *fmt, ...) |
180 | __attribute__((format(printf, 3, 4))); | ||
180 | int sshpkt_msg_ignore(struct ssh *, u_int); | 181 | int sshpkt_msg_ignore(struct ssh *, u_int); |
181 | 182 | ||
182 | int sshpkt_put(struct ssh *ssh, const void *v, size_t len); | 183 | int sshpkt_put(struct ssh *ssh, const void *v, size_t len); |
@@ -198,16 +199,13 @@ int sshpkt_get_string(struct ssh *ssh, u_char **valp, size_t *lenp); | |||
198 | int sshpkt_get_string_direct(struct ssh *ssh, const u_char **valp, size_t *lenp); | 199 | int sshpkt_get_string_direct(struct ssh *ssh, const u_char **valp, size_t *lenp); |
199 | int sshpkt_peek_string_direct(struct ssh *ssh, const u_char **valp, size_t *lenp); | 200 | int sshpkt_peek_string_direct(struct ssh *ssh, const u_char **valp, size_t *lenp); |
200 | int sshpkt_get_cstring(struct ssh *ssh, char **valp, size_t *lenp); | 201 | int sshpkt_get_cstring(struct ssh *ssh, char **valp, size_t *lenp); |
202 | int sshpkt_getb_froms(struct ssh *ssh, struct sshbuf **valp); | ||
201 | int sshpkt_get_ec(struct ssh *ssh, EC_POINT *v, const EC_GROUP *g); | 203 | int sshpkt_get_ec(struct ssh *ssh, EC_POINT *v, const EC_GROUP *g); |
202 | int sshpkt_get_bignum2(struct ssh *ssh, BIGNUM *v); | 204 | int sshpkt_get_bignum2(struct ssh *ssh, BIGNUM **valp); |
203 | int sshpkt_get_end(struct ssh *ssh); | 205 | int sshpkt_get_end(struct ssh *ssh); |
204 | void sshpkt_fmt_connection_id(struct ssh *ssh, char *s, size_t l); | 206 | void sshpkt_fmt_connection_id(struct ssh *ssh, char *s, size_t l); |
205 | const u_char *sshpkt_ptr(struct ssh *, size_t *lenp); | 207 | const u_char *sshpkt_ptr(struct ssh *, size_t *lenp); |
206 | 208 | ||
207 | /* OLD API */ | ||
208 | extern struct ssh *active_state; | ||
209 | #include "opacket.h" | ||
210 | |||
211 | #if !defined(WITH_OPENSSL) | 209 | #if !defined(WITH_OPENSSL) |
212 | # undef BIGNUM | 210 | # undef BIGNUM |
213 | # undef EC_KEY | 211 | # undef EC_KEY |
diff --git a/progressmeter.c b/progressmeter.c index fe9bf52e4..e385c1254 100644 --- a/progressmeter.c +++ b/progressmeter.c | |||
@@ -1,4 +1,4 @@ | |||
1 | /* $OpenBSD: progressmeter.c,v 1.45 2016/06/30 05:17:05 dtucker Exp $ */ | 1 | /* $OpenBSD: progressmeter.c,v 1.47 2019/01/24 16:52:17 dtucker Exp $ */ |
2 | /* | 2 | /* |
3 | * Copyright (c) 2003 Nils Nordman. All rights reserved. | 3 | * Copyright (c) 2003 Nils Nordman. All rights reserved. |
4 | * | 4 | * |
@@ -31,6 +31,7 @@ | |||
31 | 31 | ||
32 | #include <errno.h> | 32 | #include <errno.h> |
33 | #include <signal.h> | 33 | #include <signal.h> |
34 | #include <stdarg.h> | ||
34 | #include <stdio.h> | 35 | #include <stdio.h> |
35 | #include <string.h> | 36 | #include <string.h> |
36 | #include <time.h> | 37 | #include <time.h> |
@@ -39,6 +40,7 @@ | |||
39 | #include "progressmeter.h" | 40 | #include "progressmeter.h" |
40 | #include "atomicio.h" | 41 | #include "atomicio.h" |
41 | #include "misc.h" | 42 | #include "misc.h" |
43 | #include "utf8.h" | ||
42 | 44 | ||
43 | #define DEFAULT_WINSIZE 80 | 45 | #define DEFAULT_WINSIZE 80 |
44 | #define MAX_WINSIZE 512 | 46 | #define MAX_WINSIZE 512 |
@@ -57,11 +59,8 @@ static void format_rate(char *, int, off_t); | |||
57 | static void sig_winch(int); | 59 | static void sig_winch(int); |
58 | static void setscreensize(void); | 60 | static void setscreensize(void); |
59 | 61 | ||
60 | /* updates the progressmeter to reflect the current state of the transfer */ | ||
61 | void refresh_progress_meter(void); | ||
62 | |||
63 | /* signal handler for updating the progress meter */ | 62 | /* signal handler for updating the progress meter */ |
64 | static void update_progress_meter(int); | 63 | static void sig_alarm(int); |
65 | 64 | ||
66 | static double start; /* start progress */ | 65 | static double start; /* start progress */ |
67 | static double last_update; /* last progress update */ | 66 | static double last_update; /* last progress update */ |
@@ -74,6 +73,7 @@ static long stalled; /* how long we have been stalled */ | |||
74 | static int bytes_per_second; /* current speed in bytes per second */ | 73 | static int bytes_per_second; /* current speed in bytes per second */ |
75 | static int win_size; /* terminal window size */ | 74 | static int win_size; /* terminal window size */ |
76 | static volatile sig_atomic_t win_resized; /* for window resizing */ | 75 | static volatile sig_atomic_t win_resized; /* for window resizing */ |
76 | static volatile sig_atomic_t alarm_fired; | ||
77 | 77 | ||
78 | /* units for format_size */ | 78 | /* units for format_size */ |
79 | static const char unit[] = " KMGT"; | 79 | static const char unit[] = " KMGT"; |
@@ -117,7 +117,7 @@ format_size(char *buf, int size, off_t bytes) | |||
117 | } | 117 | } |
118 | 118 | ||
119 | void | 119 | void |
120 | refresh_progress_meter(void) | 120 | refresh_progress_meter(int force_update) |
121 | { | 121 | { |
122 | char buf[MAX_WINSIZE + 1]; | 122 | char buf[MAX_WINSIZE + 1]; |
123 | off_t transferred; | 123 | off_t transferred; |
@@ -126,9 +126,17 @@ refresh_progress_meter(void) | |||
126 | off_t bytes_left; | 126 | off_t bytes_left; |
127 | int cur_speed; | 127 | int cur_speed; |
128 | int hours, minutes, seconds; | 128 | int hours, minutes, seconds; |
129 | int i, len; | ||
130 | int file_len; | 129 | int file_len; |
131 | 130 | ||
131 | if ((!force_update && !alarm_fired && !win_resized) || !can_output()) | ||
132 | return; | ||
133 | alarm_fired = 0; | ||
134 | |||
135 | if (win_resized) { | ||
136 | setscreensize(); | ||
137 | win_resized = 0; | ||
138 | } | ||
139 | |||
132 | transferred = *counter - (cur_pos ? cur_pos : start_pos); | 140 | transferred = *counter - (cur_pos ? cur_pos : start_pos); |
133 | cur_pos = *counter; | 141 | cur_pos = *counter; |
134 | now = monotime_double(); | 142 | now = monotime_double(); |
@@ -158,16 +166,11 @@ refresh_progress_meter(void) | |||
158 | 166 | ||
159 | /* filename */ | 167 | /* filename */ |
160 | buf[0] = '\0'; | 168 | buf[0] = '\0'; |
161 | file_len = win_size - 35; | 169 | file_len = win_size - 36; |
162 | if (file_len > 0) { | 170 | if (file_len > 0) { |
163 | len = snprintf(buf, file_len + 1, "\r%s", file); | 171 | buf[0] = '\r'; |
164 | if (len < 0) | 172 | snmprintf(buf+1, sizeof(buf)-1 , &file_len, "%*s", |
165 | len = 0; | 173 | file_len * -1, file); |
166 | if (len >= file_len + 1) | ||
167 | len = file_len; | ||
168 | for (i = len; i < file_len; i++) | ||
169 | buf[i] = ' '; | ||
170 | buf[file_len] = '\0'; | ||
171 | } | 174 | } |
172 | 175 | ||
173 | /* percent of transfer done */ | 176 | /* percent of transfer done */ |
@@ -228,22 +231,11 @@ refresh_progress_meter(void) | |||
228 | 231 | ||
229 | /*ARGSUSED*/ | 232 | /*ARGSUSED*/ |
230 | static void | 233 | static void |
231 | update_progress_meter(int ignore) | 234 | sig_alarm(int ignore) |
232 | { | 235 | { |
233 | int save_errno; | 236 | signal(SIGALRM, sig_alarm); |
234 | 237 | alarm_fired = 1; | |
235 | save_errno = errno; | ||
236 | |||
237 | if (win_resized) { | ||
238 | setscreensize(); | ||
239 | win_resized = 0; | ||
240 | } | ||
241 | if (can_output()) | ||
242 | refresh_progress_meter(); | ||
243 | |||
244 | signal(SIGALRM, update_progress_meter); | ||
245 | alarm(UPDATE_INTERVAL); | 238 | alarm(UPDATE_INTERVAL); |
246 | errno = save_errno; | ||
247 | } | 239 | } |
248 | 240 | ||
249 | void | 241 | void |
@@ -259,10 +251,9 @@ start_progress_meter(const char *f, off_t filesize, off_t *ctr) | |||
259 | bytes_per_second = 0; | 251 | bytes_per_second = 0; |
260 | 252 | ||
261 | setscreensize(); | 253 | setscreensize(); |
262 | if (can_output()) | 254 | refresh_progress_meter(1); |
263 | refresh_progress_meter(); | ||
264 | 255 | ||
265 | signal(SIGALRM, update_progress_meter); | 256 | signal(SIGALRM, sig_alarm); |
266 | signal(SIGWINCH, sig_winch); | 257 | signal(SIGWINCH, sig_winch); |
267 | alarm(UPDATE_INTERVAL); | 258 | alarm(UPDATE_INTERVAL); |
268 | } | 259 | } |
@@ -277,7 +268,7 @@ stop_progress_meter(void) | |||
277 | 268 | ||
278 | /* Ensure we complete the progress */ | 269 | /* Ensure we complete the progress */ |
279 | if (cur_pos != end_pos) | 270 | if (cur_pos != end_pos) |
280 | refresh_progress_meter(); | 271 | refresh_progress_meter(1); |
281 | 272 | ||
282 | atomicio(vwrite, STDOUT_FILENO, "\n", 1); | 273 | atomicio(vwrite, STDOUT_FILENO, "\n", 1); |
283 | } | 274 | } |
@@ -286,6 +277,7 @@ stop_progress_meter(void) | |||
286 | static void | 277 | static void |
287 | sig_winch(int sig) | 278 | sig_winch(int sig) |
288 | { | 279 | { |
280 | signal(SIGWINCH, sig_winch); | ||
289 | win_resized = 1; | 281 | win_resized = 1; |
290 | } | 282 | } |
291 | 283 | ||
diff --git a/progressmeter.h b/progressmeter.h index bf179dca6..1703ea75b 100644 --- a/progressmeter.h +++ b/progressmeter.h | |||
@@ -1,4 +1,4 @@ | |||
1 | /* $OpenBSD: progressmeter.h,v 1.3 2015/01/14 13:54:13 djm Exp $ */ | 1 | /* $OpenBSD: progressmeter.h,v 1.5 2019/01/24 16:52:17 dtucker Exp $ */ |
2 | /* | 2 | /* |
3 | * Copyright (c) 2002 Nils Nordman. All rights reserved. | 3 | * Copyright (c) 2002 Nils Nordman. All rights reserved. |
4 | * | 4 | * |
@@ -24,4 +24,5 @@ | |||
24 | */ | 24 | */ |
25 | 25 | ||
26 | void start_progress_meter(const char *, off_t, off_t *); | 26 | void start_progress_meter(const char *, off_t, off_t *); |
27 | void refresh_progress_meter(int); | ||
27 | void stop_progress_meter(void); | 28 | void stop_progress_meter(void); |
diff --git a/readconf.c b/readconf.c index 433811521..ec497e79f 100644 --- a/readconf.c +++ b/readconf.c | |||
@@ -1,4 +1,4 @@ | |||
1 | /* $OpenBSD: readconf.c,v 1.300 2018/10/05 14:26:09 naddy Exp $ */ | 1 | /* $OpenBSD: readconf.c,v 1.304 2019/03/01 02:08:50 djm Exp $ */ |
2 | /* | 2 | /* |
3 | * Author: Tatu Ylonen <ylo@cs.hut.fi> | 3 | * Author: Tatu Ylonen <ylo@cs.hut.fi> |
4 | * Copyright (c) 1995 Tatu Ylonen <ylo@cs.hut.fi>, Espoo, Finland | 4 | * Copyright (c) 1995 Tatu Ylonen <ylo@cs.hut.fi>, Espoo, Finland |
@@ -133,10 +133,11 @@ | |||
133 | 133 | ||
134 | static int read_config_file_depth(const char *filename, struct passwd *pw, | 134 | static int read_config_file_depth(const char *filename, struct passwd *pw, |
135 | const char *host, const char *original_host, Options *options, | 135 | const char *host, const char *original_host, Options *options, |
136 | int flags, int *activep, int depth); | 136 | int flags, int *activep, int *want_final_pass, int depth); |
137 | static int process_config_line_depth(Options *options, struct passwd *pw, | 137 | static int process_config_line_depth(Options *options, struct passwd *pw, |
138 | const char *host, const char *original_host, char *line, | 138 | const char *host, const char *original_host, char *line, |
139 | const char *filename, int linenum, int *activep, int flags, int depth); | 139 | const char *filename, int linenum, int *activep, int flags, |
140 | int *want_final_pass, int depth); | ||
140 | 141 | ||
141 | /* Keyword tokens. */ | 142 | /* Keyword tokens. */ |
142 | 143 | ||
@@ -207,8 +208,8 @@ static struct { | |||
207 | { "gssapidelegatecredentials", oUnsupported }, | 208 | { "gssapidelegatecredentials", oUnsupported }, |
208 | #endif | 209 | #endif |
209 | #ifdef ENABLE_PKCS11 | 210 | #ifdef ENABLE_PKCS11 |
210 | { "smartcarddevice", oPKCS11Provider }, | ||
211 | { "pkcs11provider", oPKCS11Provider }, | 211 | { "pkcs11provider", oPKCS11Provider }, |
212 | { "smartcarddevice", oPKCS11Provider }, | ||
212 | # else | 213 | # else |
213 | { "smartcarddevice", oUnsupported }, | 214 | { "smartcarddevice", oUnsupported }, |
214 | { "pkcs11provider", oUnsupported }, | 215 | { "pkcs11provider", oUnsupported }, |
@@ -539,8 +540,8 @@ execute_in_shell(const char *cmd) | |||
539 | */ | 540 | */ |
540 | static int | 541 | static int |
541 | match_cfg_line(Options *options, char **condition, struct passwd *pw, | 542 | match_cfg_line(Options *options, char **condition, struct passwd *pw, |
542 | const char *host_arg, const char *original_host, int post_canon, | 543 | const char *host_arg, const char *original_host, int final_pass, |
543 | const char *filename, int linenum) | 544 | int *want_final_pass, const char *filename, int linenum) |
544 | { | 545 | { |
545 | char *arg, *oattrib, *attrib, *cmd, *cp = *condition, *host, *criteria; | 546 | char *arg, *oattrib, *attrib, *cmd, *cp = *condition, *host, *criteria; |
546 | const char *ruser; | 547 | const char *ruser; |
@@ -554,7 +555,7 @@ match_cfg_line(Options *options, char **condition, struct passwd *pw, | |||
554 | */ | 555 | */ |
555 | port = options->port <= 0 ? default_ssh_port() : options->port; | 556 | port = options->port <= 0 ? default_ssh_port() : options->port; |
556 | ruser = options->user == NULL ? pw->pw_name : options->user; | 557 | ruser = options->user == NULL ? pw->pw_name : options->user; |
557 | if (post_canon) { | 558 | if (final_pass) { |
558 | host = xstrdup(options->hostname); | 559 | host = xstrdup(options->hostname); |
559 | } else if (options->hostname != NULL) { | 560 | } else if (options->hostname != NULL) { |
560 | /* NB. Please keep in sync with ssh.c:main() */ | 561 | /* NB. Please keep in sync with ssh.c:main() */ |
@@ -586,8 +587,16 @@ match_cfg_line(Options *options, char **condition, struct passwd *pw, | |||
586 | goto out; | 587 | goto out; |
587 | } | 588 | } |
588 | attributes++; | 589 | attributes++; |
589 | if (strcasecmp(attrib, "canonical") == 0) { | 590 | if (strcasecmp(attrib, "canonical") == 0 || |
590 | r = !!post_canon; /* force bitmask member to boolean */ | 591 | strcasecmp(attrib, "final") == 0) { |
592 | /* | ||
593 | * If the config requests "Match final" then remember | ||
594 | * this so we can perform a second pass later. | ||
595 | */ | ||
596 | if (strcasecmp(attrib, "final") == 0 && | ||
597 | want_final_pass != NULL) | ||
598 | *want_final_pass = 1; | ||
599 | r = !!final_pass; /* force bitmask member to boolean */ | ||
591 | if (r == (negate ? 1 : 0)) | 600 | if (r == (negate ? 1 : 0)) |
592 | this_result = result = 0; | 601 | this_result = result = 0; |
593 | debug3("%.200s line %d: %smatched '%s'", | 602 | debug3("%.200s line %d: %smatched '%s'", |
@@ -824,14 +833,14 @@ process_config_line(Options *options, struct passwd *pw, const char *host, | |||
824 | int linenum, int *activep, int flags) | 833 | int linenum, int *activep, int flags) |
825 | { | 834 | { |
826 | return process_config_line_depth(options, pw, host, original_host, | 835 | return process_config_line_depth(options, pw, host, original_host, |
827 | line, filename, linenum, activep, flags, 0); | 836 | line, filename, linenum, activep, flags, NULL, 0); |
828 | } | 837 | } |
829 | 838 | ||
830 | #define WHITESPACE " \t\r\n" | 839 | #define WHITESPACE " \t\r\n" |
831 | static int | 840 | static int |
832 | process_config_line_depth(Options *options, struct passwd *pw, const char *host, | 841 | process_config_line_depth(Options *options, struct passwd *pw, const char *host, |
833 | const char *original_host, char *line, const char *filename, | 842 | const char *original_host, char *line, const char *filename, |
834 | int linenum, int *activep, int flags, int depth) | 843 | int linenum, int *activep, int flags, int *want_final_pass, int depth) |
835 | { | 844 | { |
836 | char *s, **charptr, *endofnumber, *keyword, *arg, *arg2; | 845 | char *s, **charptr, *endofnumber, *keyword, *arg, *arg2; |
837 | char **cpptr, fwdarg[256]; | 846 | char **cpptr, fwdarg[256]; |
@@ -1339,7 +1348,8 @@ parse_keytypes: | |||
1339 | fatal("Host directive not supported as a command-line " | 1348 | fatal("Host directive not supported as a command-line " |
1340 | "option"); | 1349 | "option"); |
1341 | value = match_cfg_line(options, &s, pw, host, original_host, | 1350 | value = match_cfg_line(options, &s, pw, host, original_host, |
1342 | flags & SSHCONF_POSTCANON, filename, linenum); | 1351 | flags & SSHCONF_FINAL, want_final_pass, |
1352 | filename, linenum); | ||
1343 | if (value < 0) | 1353 | if (value < 0) |
1344 | fatal("%.200s line %d: Bad Match condition", filename, | 1354 | fatal("%.200s line %d: Bad Match condition", filename, |
1345 | linenum); | 1355 | linenum); |
@@ -1521,7 +1531,7 @@ parse_keytypes: | |||
1521 | if (*arg == '~' && (flags & SSHCONF_USERCONF) == 0) | 1531 | if (*arg == '~' && (flags & SSHCONF_USERCONF) == 0) |
1522 | fatal("%.200s line %d: bad include path %s.", | 1532 | fatal("%.200s line %d: bad include path %s.", |
1523 | filename, linenum, arg); | 1533 | filename, linenum, arg); |
1524 | if (*arg != '/' && *arg != '~') { | 1534 | if (!path_absolute(arg) && *arg != '~') { |
1525 | xasprintf(&arg2, "%s/%s", | 1535 | xasprintf(&arg2, "%s/%s", |
1526 | (flags & SSHCONF_USERCONF) ? | 1536 | (flags & SSHCONF_USERCONF) ? |
1527 | "~/" _PATH_SSH_USER_DIR : SSHDIR, arg); | 1537 | "~/" _PATH_SSH_USER_DIR : SSHDIR, arg); |
@@ -1548,7 +1558,7 @@ parse_keytypes: | |||
1548 | pw, host, original_host, options, | 1558 | pw, host, original_host, options, |
1549 | flags | SSHCONF_CHECKPERM | | 1559 | flags | SSHCONF_CHECKPERM | |
1550 | (oactive ? 0 : SSHCONF_NEVERMATCH), | 1560 | (oactive ? 0 : SSHCONF_NEVERMATCH), |
1551 | activep, depth + 1); | 1561 | activep, want_final_pass, depth + 1); |
1552 | if (r != 1 && errno != ENOENT) { | 1562 | if (r != 1 && errno != ENOENT) { |
1553 | fatal("Can't open user config file " | 1563 | fatal("Can't open user config file " |
1554 | "%.100s: %.100s", gl.gl_pathv[i], | 1564 | "%.100s: %.100s", gl.gl_pathv[i], |
@@ -1751,19 +1761,20 @@ parse_keytypes: | |||
1751 | */ | 1761 | */ |
1752 | int | 1762 | int |
1753 | read_config_file(const char *filename, struct passwd *pw, const char *host, | 1763 | read_config_file(const char *filename, struct passwd *pw, const char *host, |
1754 | const char *original_host, Options *options, int flags) | 1764 | const char *original_host, Options *options, int flags, |
1765 | int *want_final_pass) | ||
1755 | { | 1766 | { |
1756 | int active = 1; | 1767 | int active = 1; |
1757 | 1768 | ||
1758 | return read_config_file_depth(filename, pw, host, original_host, | 1769 | return read_config_file_depth(filename, pw, host, original_host, |
1759 | options, flags, &active, 0); | 1770 | options, flags, &active, want_final_pass, 0); |
1760 | } | 1771 | } |
1761 | 1772 | ||
1762 | #define READCONF_MAX_DEPTH 16 | 1773 | #define READCONF_MAX_DEPTH 16 |
1763 | static int | 1774 | static int |
1764 | read_config_file_depth(const char *filename, struct passwd *pw, | 1775 | read_config_file_depth(const char *filename, struct passwd *pw, |
1765 | const char *host, const char *original_host, Options *options, | 1776 | const char *host, const char *original_host, Options *options, |
1766 | int flags, int *activep, int depth) | 1777 | int flags, int *activep, int *want_final_pass, int depth) |
1767 | { | 1778 | { |
1768 | FILE *f; | 1779 | FILE *f; |
1769 | char *line = NULL; | 1780 | char *line = NULL; |
@@ -1798,7 +1809,8 @@ read_config_file_depth(const char *filename, struct passwd *pw, | |||
1798 | /* Update line number counter. */ | 1809 | /* Update line number counter. */ |
1799 | linenum++; | 1810 | linenum++; |
1800 | if (process_config_line_depth(options, pw, host, original_host, | 1811 | if (process_config_line_depth(options, pw, host, original_host, |
1801 | line, filename, linenum, activep, flags, depth) != 0) | 1812 | line, filename, linenum, activep, flags, want_final_pass, |
1813 | depth) != 0) | ||
1802 | bad_options++; | 1814 | bad_options++; |
1803 | } | 1815 | } |
1804 | free(line); | 1816 | free(line); |
@@ -2110,9 +2122,9 @@ fill_default_options(Options * options) | |||
2110 | defaults, all)) != 0) \ | 2122 | defaults, all)) != 0) \ |
2111 | fatal("%s: %s: %s", __func__, #what, ssh_err(r)); \ | 2123 | fatal("%s: %s: %s", __func__, #what, ssh_err(r)); \ |
2112 | } while (0) | 2124 | } while (0) |
2113 | ASSEMBLE(ciphers, KEX_SERVER_ENCRYPT, all_cipher); | 2125 | ASSEMBLE(ciphers, KEX_CLIENT_ENCRYPT, all_cipher); |
2114 | ASSEMBLE(macs, KEX_SERVER_MAC, all_mac); | 2126 | ASSEMBLE(macs, KEX_CLIENT_MAC, all_mac); |
2115 | ASSEMBLE(kex_algorithms, KEX_SERVER_KEX, all_kex); | 2127 | ASSEMBLE(kex_algorithms, KEX_CLIENT_KEX, all_kex); |
2116 | ASSEMBLE(hostbased_key_types, KEX_DEFAULT_PK_ALG, all_key); | 2128 | ASSEMBLE(hostbased_key_types, KEX_DEFAULT_PK_ALG, all_key); |
2117 | ASSEMBLE(pubkey_key_types, KEX_DEFAULT_PK_ALG, all_key); | 2129 | ASSEMBLE(pubkey_key_types, KEX_DEFAULT_PK_ALG, all_key); |
2118 | ASSEMBLE(ca_sign_algorithms, SSH_ALLOWED_CA_SIGALGS, all_sig); | 2130 | ASSEMBLE(ca_sign_algorithms, SSH_ALLOWED_CA_SIGALGS, all_sig); |
@@ -2135,6 +2147,7 @@ fill_default_options(Options * options) | |||
2135 | CLEAR_ON_NONE(options->proxy_command); | 2147 | CLEAR_ON_NONE(options->proxy_command); |
2136 | CLEAR_ON_NONE(options->control_path); | 2148 | CLEAR_ON_NONE(options->control_path); |
2137 | CLEAR_ON_NONE(options->revoked_host_keys); | 2149 | CLEAR_ON_NONE(options->revoked_host_keys); |
2150 | CLEAR_ON_NONE(options->pkcs11_provider); | ||
2138 | if (options->jump_host != NULL && | 2151 | if (options->jump_host != NULL && |
2139 | strcmp(options->jump_host, "none") == 0 && | 2152 | strcmp(options->jump_host, "none") == 0 && |
2140 | options->jump_port == 0 && options->jump_user == NULL) { | 2153 | options->jump_port == 0 && options->jump_user == NULL) { |
diff --git a/readconf.h b/readconf.h index fc7e38251..8e36bf32a 100644 --- a/readconf.h +++ b/readconf.h | |||
@@ -1,4 +1,4 @@ | |||
1 | /* $OpenBSD: readconf.h,v 1.128 2018/09/20 03:30:44 djm Exp $ */ | 1 | /* $OpenBSD: readconf.h,v 1.129 2018/11/23 05:08:07 djm Exp $ */ |
2 | 2 | ||
3 | /* | 3 | /* |
4 | * Author: Tatu Ylonen <ylo@cs.hut.fi> | 4 | * Author: Tatu Ylonen <ylo@cs.hut.fi> |
@@ -185,7 +185,7 @@ typedef struct { | |||
185 | 185 | ||
186 | #define SSHCONF_CHECKPERM 1 /* check permissions on config file */ | 186 | #define SSHCONF_CHECKPERM 1 /* check permissions on config file */ |
187 | #define SSHCONF_USERCONF 2 /* user provided config file not system */ | 187 | #define SSHCONF_USERCONF 2 /* user provided config file not system */ |
188 | #define SSHCONF_POSTCANON 4 /* After hostname canonicalisation */ | 188 | #define SSHCONF_FINAL 4 /* Final pass over config, after canon. */ |
189 | #define SSHCONF_NEVERMATCH 8 /* Match/Host never matches; internal only */ | 189 | #define SSHCONF_NEVERMATCH 8 /* Match/Host never matches; internal only */ |
190 | 190 | ||
191 | #define SSH_UPDATE_HOSTKEYS_NO 0 | 191 | #define SSH_UPDATE_HOSTKEYS_NO 0 |
@@ -203,7 +203,7 @@ void fill_default_options_for_canonicalization(Options *); | |||
203 | int process_config_line(Options *, struct passwd *, const char *, | 203 | int process_config_line(Options *, struct passwd *, const char *, |
204 | const char *, char *, const char *, int, int *, int); | 204 | const char *, char *, const char *, int, int *, int); |
205 | int read_config_file(const char *, struct passwd *, const char *, | 205 | int read_config_file(const char *, struct passwd *, const char *, |
206 | const char *, Options *, int); | 206 | const char *, Options *, int, int *); |
207 | int parse_forward(struct Forward *, const char *, int, int); | 207 | int parse_forward(struct Forward *, const char *, int, int); |
208 | int parse_jump(const char *, Options *, int); | 208 | int parse_jump(const char *, Options *, int); |
209 | int parse_ssh_uri(const char *, char **, char **, int *); | 209 | int parse_ssh_uri(const char *, char **, char **, int *); |
diff --git a/readpass.c b/readpass.c index f160f866b..44014ef8a 100644 --- a/readpass.c +++ b/readpass.c | |||
@@ -1,4 +1,4 @@ | |||
1 | /* $OpenBSD: readpass.c,v 1.52 2018/07/18 11:34:04 dtucker Exp $ */ | 1 | /* $OpenBSD: readpass.c,v 1.53 2019/01/19 04:15:56 tb Exp $ */ |
2 | /* | 2 | /* |
3 | * Copyright (c) 2001 Markus Friedl. All rights reserved. | 3 | * Copyright (c) 2001 Markus Friedl. All rights reserved. |
4 | * | 4 | * |
@@ -117,7 +117,7 @@ ssh_askpass(char *askpass, const char *msg) | |||
117 | char * | 117 | char * |
118 | read_passphrase(const char *prompt, int flags) | 118 | read_passphrase(const char *prompt, int flags) |
119 | { | 119 | { |
120 | char *askpass = NULL, *ret, buf[1024]; | 120 | char cr = '\r', *askpass = NULL, *ret, buf[1024]; |
121 | int rppflags, use_askpass = 0, ttyfd; | 121 | int rppflags, use_askpass = 0, ttyfd; |
122 | 122 | ||
123 | rppflags = (flags & RP_ECHO) ? RPP_ECHO_ON : RPP_ECHO_OFF; | 123 | rppflags = (flags & RP_ECHO) ? RPP_ECHO_ON : RPP_ECHO_OFF; |
@@ -131,9 +131,16 @@ read_passphrase(const char *prompt, int flags) | |||
131 | } else { | 131 | } else { |
132 | rppflags |= RPP_REQUIRE_TTY; | 132 | rppflags |= RPP_REQUIRE_TTY; |
133 | ttyfd = open(_PATH_TTY, O_RDWR); | 133 | ttyfd = open(_PATH_TTY, O_RDWR); |
134 | if (ttyfd >= 0) | 134 | if (ttyfd >= 0) { |
135 | /* | ||
136 | * If we're on a tty, ensure that show the prompt at | ||
137 | * the beginning of the line. This will hopefully | ||
138 | * clobber any password characters the user has | ||
139 | * optimistically typed before echo is disabled. | ||
140 | */ | ||
141 | (void)write(ttyfd, &cr, 1); | ||
135 | close(ttyfd); | 142 | close(ttyfd); |
136 | else { | 143 | } else { |
137 | debug("read_passphrase: can't open %s: %s", _PATH_TTY, | 144 | debug("read_passphrase: can't open %s: %s", _PATH_TTY, |
138 | strerror(errno)); | 145 | strerror(errno)); |
139 | use_askpass = 1; | 146 | use_askpass = 1; |
diff --git a/regress/Makefile b/regress/Makefile index 647b4a049..925edf71a 100644 --- a/regress/Makefile +++ b/regress/Makefile | |||
@@ -1,4 +1,4 @@ | |||
1 | # $OpenBSD: Makefile,v 1.97 2018/06/07 04:46:34 djm Exp $ | 1 | # $OpenBSD: Makefile,v 1.100 2019/01/20 23:24:19 djm Exp $ |
2 | 2 | ||
3 | REGRESS_TARGETS= unit t1 t2 t3 t4 t5 t6 t7 t8 t9 t10 t11 t12 t-exec | 3 | REGRESS_TARGETS= unit t1 t2 t3 t4 t5 t6 t7 t8 t9 t10 t11 t12 t-exec |
4 | tests: prep $(REGRESS_TARGETS) | 4 | tests: prep $(REGRESS_TARGETS) |
@@ -11,7 +11,6 @@ prep: | |||
11 | 11 | ||
12 | clean: | 12 | clean: |
13 | for F in $(CLEANFILES); do rm -f $(OBJ)$$F; done | 13 | for F in $(CLEANFILES); do rm -f $(OBJ)$$F; done |
14 | test -z "${SUDO}" || ${SUDO} rm -f ${SUDO_CLEAN} | ||
15 | rm -rf $(OBJ).putty | 14 | rm -rf $(OBJ).putty |
16 | 15 | ||
17 | distclean: clean | 16 | distclean: clean |
@@ -92,7 +91,8 @@ LTESTS= connect \ | |||
92 | INTEROP_TESTS= putty-transfer putty-ciphers putty-kex conch-ciphers | 91 | INTEROP_TESTS= putty-transfer putty-ciphers putty-kex conch-ciphers |
93 | #INTEROP_TESTS+=ssh-com ssh-com-client ssh-com-keygen ssh-com-sftp | 92 | #INTEROP_TESTS+=ssh-com ssh-com-client ssh-com-keygen ssh-com-sftp |
94 | 93 | ||
95 | #LTESTS= cipher-speed | 94 | EXTRA_TESTS= agent-pkcs11 |
95 | #EXTRA_TESTS+= cipher-speed | ||
96 | 96 | ||
97 | USERNAME= ${LOGNAME} | 97 | USERNAME= ${LOGNAME} |
98 | CLEANFILES= *.core actual agent-key.* authorized_keys_${USERNAME} \ | 98 | CLEANFILES= *.core actual agent-key.* authorized_keys_${USERNAME} \ |
@@ -122,8 +122,6 @@ CLEANFILES= *.core actual agent-key.* authorized_keys_${USERNAME} \ | |||
122 | t8.out t8.out.pub t9.out t9.out.pub testdata \ | 122 | t8.out t8.out.pub t9.out t9.out.pub testdata \ |
123 | user_*key* user_ca* user_key* | 123 | user_*key* user_ca* user_key* |
124 | 124 | ||
125 | SUDO_CLEAN+= /var/run/testdata_${USERNAME} /var/run/keycommand_${USERNAME} | ||
126 | |||
127 | # Enable all malloc(3) randomisations and checks | 125 | # Enable all malloc(3) randomisations and checks |
128 | TEST_ENV= "MALLOC_OPTIONS=CFGJRSUX" | 126 | TEST_ENV= "MALLOC_OPTIONS=CFGJRSUX" |
129 | 127 | ||
@@ -217,6 +215,13 @@ t-exec-interop: ${INTEROP_TESTS:=.sh} | |||
217 | (env SUDO="${SUDO}" TEST_ENV=${TEST_ENV} ${TEST_SHELL} ${.CURDIR}/test-exec.sh ${.OBJDIR} ${.CURDIR}/$${TEST}) || exit $$?; \ | 215 | (env SUDO="${SUDO}" TEST_ENV=${TEST_ENV} ${TEST_SHELL} ${.CURDIR}/test-exec.sh ${.OBJDIR} ${.CURDIR}/$${TEST}) || exit $$?; \ |
218 | done | 216 | done |
219 | 217 | ||
218 | t-extra: ${EXTRA_TESTS:=.sh} | ||
219 | @if [ "x$?" = "x" ]; then exit 0; fi; \ | ||
220 | for TEST in ""$?; do \ | ||
221 | echo "run test $${TEST}" ... 1>&2; \ | ||
222 | (env SUDO="${SUDO}" TEST_ENV=${TEST_ENV} ${TEST_SHELL} ${.CURDIR}/test-exec.sh ${.OBJDIR} ${.CURDIR}/$${TEST}) || exit $$?; \ | ||
223 | done | ||
224 | |||
220 | # Not run by default | 225 | # Not run by default |
221 | interop: ${INTEROP_TARGETS} | 226 | interop: ${INTEROP_TARGETS} |
222 | 227 | ||
diff --git a/regress/agent-pkcs11.sh b/regress/agent-pkcs11.sh index db3018b88..5205d9067 100644 --- a/regress/agent-pkcs11.sh +++ b/regress/agent-pkcs11.sh | |||
@@ -1,16 +1,53 @@ | |||
1 | # $OpenBSD: agent-pkcs11.sh,v 1.3 2017/04/30 23:34:55 djm Exp $ | 1 | # $OpenBSD: agent-pkcs11.sh,v 1.6 2019/01/21 09:13:41 djm Exp $ |
2 | # Placed in the Public Domain. | 2 | # Placed in the Public Domain. |
3 | 3 | ||
4 | tid="pkcs11 agent test" | 4 | tid="pkcs11 agent test" |
5 | 5 | ||
6 | TEST_SSH_PIN="" | 6 | try_token_libs() { |
7 | TEST_SSH_PKCS11=/usr/local/lib/soft-pkcs11.so.0.0 | 7 | for _lib in "$@" ; do |
8 | if test -f "$_lib" ; then | ||
9 | verbose "Using token library $_lib" | ||
10 | TEST_SSH_PKCS11="$_lib" | ||
11 | return | ||
12 | fi | ||
13 | done | ||
14 | echo "skipped: Unable to find PKCS#11 token library" | ||
15 | exit 0 | ||
16 | } | ||
17 | |||
18 | try_token_libs \ | ||
19 | /usr/local/lib/softhsm/libsofthsm2.so \ | ||
20 | /usr/lib64/pkcs11/libsofthsm2.so \ | ||
21 | /usr/lib/x86_64-linux-gnu/softhsm/libsofthsm2.so | ||
22 | |||
23 | TEST_SSH_PIN=1234 | ||
24 | TEST_SSH_SOPIN=12345678 | ||
25 | if [ "x$TEST_SSH_SSHPKCS11HELPER" != "x" ]; then | ||
26 | SSH_PKCS11_HELPER="${TEST_SSH_SSHPKCS11HELPER}" | ||
27 | export SSH_PKCS11_HELPER | ||
28 | fi | ||
8 | 29 | ||
9 | test -f "$TEST_SSH_PKCS11" || fatal "$TEST_SSH_PKCS11 does not exist" | 30 | test -f "$TEST_SSH_PKCS11" || fatal "$TEST_SSH_PKCS11 does not exist" |
10 | 31 | ||
11 | # setup environment for soft-pkcs11 token | 32 | # setup environment for softhsm2 token |
12 | SOFTPKCS11RC=$OBJ/pkcs11.info | 33 | DIR=$OBJ/SOFTHSM |
13 | export SOFTPKCS11RC | 34 | rm -rf $DIR |
35 | TOKEN=$DIR/tokendir | ||
36 | mkdir -p $TOKEN | ||
37 | SOFTHSM2_CONF=$DIR/softhsm2.conf | ||
38 | export SOFTHSM2_CONF | ||
39 | cat > $SOFTHSM2_CONF << EOF | ||
40 | # SoftHSM v2 configuration file | ||
41 | directories.tokendir = ${TOKEN} | ||
42 | objectstore.backend = file | ||
43 | # ERROR, WARNING, INFO, DEBUG | ||
44 | log.level = DEBUG | ||
45 | # If CKF_REMOVABLE_DEVICE flag should be set | ||
46 | slots.removable = false | ||
47 | EOF | ||
48 | out=$(softhsm2-util --init-token --free --label token-slot-0 --pin "$TEST_SSH_PIN" --so-pin "$TEST_SSH_SOPIN") | ||
49 | slot=$(echo -- $out | sed 's/.* //') | ||
50 | |||
14 | # prevent ssh-agent from calling ssh-askpass | 51 | # prevent ssh-agent from calling ssh-askpass |
15 | SSH_ASKPASS=/usr/bin/true | 52 | SSH_ASKPASS=/usr/bin/true |
16 | export SSH_ASKPASS | 53 | export SSH_ASKPASS |
@@ -22,22 +59,27 @@ notty() { | |||
22 | if (fork) { wait; exit($? >> 8); } else { exec(@ARGV) }' "$@" | 59 | if (fork) { wait; exit($? >> 8); } else { exec(@ARGV) }' "$@" |
23 | } | 60 | } |
24 | 61 | ||
62 | trace "generating keys" | ||
63 | RSA=${DIR}/RSA | ||
64 | EC=${DIR}/EC | ||
65 | openssl genpkey -algorithm rsa > $RSA | ||
66 | openssl pkcs8 -nocrypt -in $RSA |\ | ||
67 | softhsm2-util --slot "$slot" --label 01 --id 01 --pin "$TEST_SSH_PIN" --import /dev/stdin | ||
68 | openssl genpkey \ | ||
69 | -genparam \ | ||
70 | -algorithm ec \ | ||
71 | -pkeyopt ec_paramgen_curve:prime256v1 |\ | ||
72 | openssl genpkey \ | ||
73 | -paramfile /dev/stdin > $EC | ||
74 | openssl pkcs8 -nocrypt -in $EC |\ | ||
75 | softhsm2-util --slot "$slot" --label 02 --id 02 --pin "$TEST_SSH_PIN" --import /dev/stdin | ||
76 | |||
25 | trace "start agent" | 77 | trace "start agent" |
26 | eval `${SSHAGENT} -s` > /dev/null | 78 | eval `${SSHAGENT} -s` > /dev/null |
27 | r=$? | 79 | r=$? |
28 | if [ $r -ne 0 ]; then | 80 | if [ $r -ne 0 ]; then |
29 | fail "could not start ssh-agent: exit code $r" | 81 | fail "could not start ssh-agent: exit code $r" |
30 | else | 82 | else |
31 | trace "generating key/cert" | ||
32 | rm -f $OBJ/pkcs11.key $OBJ/pkcs11.crt | ||
33 | openssl genrsa -out $OBJ/pkcs11.key 2048 > /dev/null 2>&1 | ||
34 | chmod 600 $OBJ/pkcs11.key | ||
35 | openssl req -key $OBJ/pkcs11.key -new -x509 \ | ||
36 | -out $OBJ/pkcs11.crt -text -subj '/CN=pkcs11 test' > /dev/null | ||
37 | printf "a\ta\t$OBJ/pkcs11.crt\t$OBJ/pkcs11.key" > $SOFTPKCS11RC | ||
38 | # add to authorized keys | ||
39 | ${SSHKEYGEN} -y -f $OBJ/pkcs11.key > $OBJ/authorized_keys_$USER | ||
40 | |||
41 | trace "add pkcs11 key to agent" | 83 | trace "add pkcs11 key to agent" |
42 | echo ${TEST_SSH_PIN} | notty ${SSHADD} -s ${TEST_SSH_PKCS11} > /dev/null 2>&1 | 84 | echo ${TEST_SSH_PIN} | notty ${SSHADD} -s ${TEST_SSH_PKCS11} > /dev/null 2>&1 |
43 | r=$? | 85 | r=$? |
@@ -52,12 +94,23 @@ else | |||
52 | fail "ssh-add -l failed: exit code $r" | 94 | fail "ssh-add -l failed: exit code $r" |
53 | fi | 95 | fi |
54 | 96 | ||
55 | trace "pkcs11 connect via agent" | 97 | for k in $RSA $EC; do |
56 | ${SSH} -F $OBJ/ssh_proxy somehost exit 5 | 98 | trace "testing $k" |
57 | r=$? | 99 | chmod 600 $k |
58 | if [ $r -ne 5 ]; then | 100 | ssh-keygen -y -f $k > $k.pub |
59 | fail "ssh connect failed (exit code $r)" | 101 | pub=$(cat $k.pub) |
60 | fi | 102 | ${SSHADD} -L | grep -q "$pub" || fail "key $k missing in ssh-add -L" |
103 | ${SSHADD} -T $k.pub || fail "ssh-add -T with $k failed" | ||
104 | |||
105 | # add to authorized keys | ||
106 | cat $k.pub > $OBJ/authorized_keys_$USER | ||
107 | trace "pkcs11 connect via agent ($k)" | ||
108 | ${SSH} -F $OBJ/ssh_proxy somehost exit 5 | ||
109 | r=$? | ||
110 | if [ $r -ne 5 ]; then | ||
111 | fail "ssh connect failed (exit code $r)" | ||
112 | fi | ||
113 | done | ||
61 | 114 | ||
62 | trace "remove pkcs11 keys" | 115 | trace "remove pkcs11 keys" |
63 | echo ${TEST_SSH_PIN} | notty ${SSHADD} -e ${TEST_SSH_PKCS11} > /dev/null 2>&1 | 116 | echo ${TEST_SSH_PIN} | notty ${SSHADD} -e ${TEST_SSH_PKCS11} > /dev/null 2>&1 |
diff --git a/regress/agent-timeout.sh b/regress/agent-timeout.sh index 9598c2032..80012f80c 100644 --- a/regress/agent-timeout.sh +++ b/regress/agent-timeout.sh | |||
@@ -1,4 +1,4 @@ | |||
1 | # $OpenBSD: agent-timeout.sh,v 1.3 2015/03/03 22:35:19 markus Exp $ | 1 | # $OpenBSD: agent-timeout.sh,v 1.4 2019/01/28 00:08:26 dtucker Exp $ |
2 | # Placed in the Public Domain. | 2 | # Placed in the Public Domain. |
3 | 3 | ||
4 | tid="agent timeout test" | 4 | tid="agent timeout test" |
@@ -12,16 +12,18 @@ if [ $r -ne 0 ]; then | |||
12 | fail "could not start ssh-agent: exit code $r" | 12 | fail "could not start ssh-agent: exit code $r" |
13 | else | 13 | else |
14 | trace "add keys with timeout" | 14 | trace "add keys with timeout" |
15 | keys=0 | ||
15 | for t in ${SSH_KEYTYPES}; do | 16 | for t in ${SSH_KEYTYPES}; do |
16 | ${SSHADD} -t ${SSHAGENT_TIMEOUT} $OBJ/$t > /dev/null 2>&1 | 17 | ${SSHADD} -t ${SSHAGENT_TIMEOUT} $OBJ/$t > /dev/null 2>&1 |
17 | if [ $? -ne 0 ]; then | 18 | if [ $? -ne 0 ]; then |
18 | fail "ssh-add did succeed exit code 0" | 19 | fail "ssh-add did succeed exit code 0" |
19 | fi | 20 | fi |
21 | keys=$((${keys} + 1)) | ||
20 | done | 22 | done |
21 | n=`${SSHADD} -l 2> /dev/null | wc -l` | 23 | n=`${SSHADD} -l 2> /dev/null | wc -l` |
22 | trace "agent has $n keys" | 24 | trace "agent has $n keys" |
23 | if [ $n -ne 2 ]; then | 25 | if [ $n -ne $keys ]; then |
24 | fail "ssh-add -l did not return 2 keys: $n" | 26 | fail "ssh-add -l did not return $keys keys: $n" |
25 | fi | 27 | fi |
26 | trace "sleeping 2*${SSHAGENT_TIMEOUT} seconds" | 28 | trace "sleeping 2*${SSHAGENT_TIMEOUT} seconds" |
27 | sleep ${SSHAGENT_TIMEOUT} | 29 | sleep ${SSHAGENT_TIMEOUT} |
diff --git a/regress/agent.sh b/regress/agent.sh index 7111056c9..788b02064 100644 --- a/regress/agent.sh +++ b/regress/agent.sh | |||
@@ -1,4 +1,4 @@ | |||
1 | # $OpenBSD: agent.sh,v 1.13 2017/12/19 00:49:30 djm Exp $ | 1 | # $OpenBSD: agent.sh,v 1.14 2019/01/28 00:12:36 dtucker Exp $ |
2 | # Placed in the Public Domain. | 2 | # Placed in the Public Domain. |
3 | 3 | ||
4 | tid="simple agent test" | 4 | tid="simple agent test" |
@@ -27,6 +27,9 @@ ${SSHKEYGEN} -q -N '' -t ed25519 -f $OBJ/user_ca_key \ | |||
27 | trace "overwrite authorized keys" | 27 | trace "overwrite authorized keys" |
28 | printf '' > $OBJ/authorized_keys_$USER | 28 | printf '' > $OBJ/authorized_keys_$USER |
29 | 29 | ||
30 | echo "PubkeyAcceptedKeyTypes +ssh-dss" >> $OBJ/ssh_proxy | ||
31 | echo "PubkeyAcceptedKeyTypes +ssh-dss" >> $OBJ/sshd_proxy | ||
32 | |||
30 | for t in ${SSH_KEYTYPES}; do | 33 | for t in ${SSH_KEYTYPES}; do |
31 | # generate user key for agent | 34 | # generate user key for agent |
32 | rm -f $OBJ/$t-agent $OBJ/$t-agent.pub* | 35 | rm -f $OBJ/$t-agent $OBJ/$t-agent.pub* |
@@ -96,6 +99,7 @@ fi | |||
96 | (printf 'cert-authority,principals="estragon" '; cat $OBJ/user_ca_key.pub) \ | 99 | (printf 'cert-authority,principals="estragon" '; cat $OBJ/user_ca_key.pub) \ |
97 | > $OBJ/authorized_keys_$USER | 100 | > $OBJ/authorized_keys_$USER |
98 | for t in ${SSH_KEYTYPES}; do | 101 | for t in ${SSH_KEYTYPES}; do |
102 | if [ "$t" != "ssh-dss" ]; then | ||
99 | trace "connect via agent using $t key" | 103 | trace "connect via agent using $t key" |
100 | ${SSH} -F $OBJ/ssh_proxy -i $OBJ/$t-agent.pub \ | 104 | ${SSH} -F $OBJ/ssh_proxy -i $OBJ/$t-agent.pub \ |
101 | -oCertificateFile=$OBJ/$t-agent-cert.pub \ | 105 | -oCertificateFile=$OBJ/$t-agent-cert.pub \ |
@@ -104,6 +108,7 @@ for t in ${SSH_KEYTYPES}; do | |||
104 | if [ $r -ne 52 ]; then | 108 | if [ $r -ne 52 ]; then |
105 | fail "ssh connect with failed (exit code $r)" | 109 | fail "ssh connect with failed (exit code $r)" |
106 | fi | 110 | fi |
111 | fi | ||
107 | done | 112 | done |
108 | 113 | ||
109 | trace "delete all agent keys" | 114 | trace "delete all agent keys" |
diff --git a/regress/cert-hostkey.sh b/regress/cert-hostkey.sh index d2ecd318b..3ce777967 100644 --- a/regress/cert-hostkey.sh +++ b/regress/cert-hostkey.sh | |||
@@ -1,4 +1,4 @@ | |||
1 | # $OpenBSD: cert-hostkey.sh,v 1.16 2018/07/03 11:43:49 djm Exp $ | 1 | # $OpenBSD: cert-hostkey.sh,v 1.17 2018/10/31 11:09:27 dtucker Exp $ |
2 | # Placed in the Public Domain. | 2 | # Placed in the Public Domain. |
3 | 3 | ||
4 | tid="certified host keys" | 4 | tid="certified host keys" |
@@ -127,7 +127,7 @@ attempt_connect() { | |||
127 | } | 127 | } |
128 | 128 | ||
129 | # Basic connect and revocation tests. | 129 | # Basic connect and revocation tests. |
130 | for privsep in yes no ; do | 130 | for privsep in yes sandbox ; do |
131 | for ktype in $PLAIN_TYPES ; do | 131 | for ktype in $PLAIN_TYPES ; do |
132 | verbose "$tid: host ${ktype} cert connect privsep $privsep" | 132 | verbose "$tid: host ${ktype} cert connect privsep $privsep" |
133 | ( | 133 | ( |
@@ -165,7 +165,7 @@ for ktype in $PLAIN_TYPES ; do | |||
165 | kh_revoke cert_host_key_${ktype}.pub >> $OBJ/known_hosts-cert.orig | 165 | kh_revoke cert_host_key_${ktype}.pub >> $OBJ/known_hosts-cert.orig |
166 | done | 166 | done |
167 | cp $OBJ/known_hosts-cert.orig $OBJ/known_hosts-cert | 167 | cp $OBJ/known_hosts-cert.orig $OBJ/known_hosts-cert |
168 | for privsep in yes no ; do | 168 | for privsep in yes sandbox ; do |
169 | for ktype in $PLAIN_TYPES ; do | 169 | for ktype in $PLAIN_TYPES ; do |
170 | verbose "$tid: host ${ktype} revoked cert privsep $privsep" | 170 | verbose "$tid: host ${ktype} revoked cert privsep $privsep" |
171 | ( | 171 | ( |
diff --git a/regress/cert-userkey.sh b/regress/cert-userkey.sh index 30c2c156d..6849e9922 100644 --- a/regress/cert-userkey.sh +++ b/regress/cert-userkey.sh | |||
@@ -1,4 +1,4 @@ | |||
1 | # $OpenBSD: cert-userkey.sh,v 1.19 2018/03/12 00:54:04 djm Exp $ | 1 | # $OpenBSD: cert-userkey.sh,v 1.20 2018/10/31 11:09:27 dtucker Exp $ |
2 | # Placed in the Public Domain. | 2 | # Placed in the Public Domain. |
3 | 3 | ||
4 | tid="certified user keys" | 4 | tid="certified user keys" |
@@ -47,7 +47,7 @@ done | |||
47 | # Test explicitly-specified principals | 47 | # Test explicitly-specified principals |
48 | for ktype in $EXTRA_TYPES $PLAIN_TYPES ; do | 48 | for ktype in $EXTRA_TYPES $PLAIN_TYPES ; do |
49 | t=$(kname $ktype) | 49 | t=$(kname $ktype) |
50 | for privsep in yes no ; do | 50 | for privsep in yes sandbox ; do |
51 | _prefix="${ktype} privsep $privsep" | 51 | _prefix="${ktype} privsep $privsep" |
52 | 52 | ||
53 | # Setup for AuthorizedPrincipalsFile | 53 | # Setup for AuthorizedPrincipalsFile |
diff --git a/regress/keys-command.sh b/regress/keys-command.sh index 4029e2c78..d166fc589 100644 --- a/regress/keys-command.sh +++ b/regress/keys-command.sh | |||
@@ -1,4 +1,4 @@ | |||
1 | # $OpenBSD: keys-command.sh,v 1.4 2016/09/26 21:34:38 bluhm Exp $ | 1 | # $OpenBSD: keys-command.sh,v 1.5 2018/11/22 08:48:32 dtucker Exp $ |
2 | # Placed in the Public Domain. | 2 | # Placed in the Public Domain. |
3 | 3 | ||
4 | tid="authorized keys from command" | 4 | tid="authorized keys from command" |
@@ -19,7 +19,8 @@ expected_key_fp=`$SSHKEYGEN -lf $OBJ/rsa.pub | awk '{ print $2 }'` | |||
19 | 19 | ||
20 | # Establish a AuthorizedKeysCommand in /var/run where it will have | 20 | # Establish a AuthorizedKeysCommand in /var/run where it will have |
21 | # acceptable directory permissions. | 21 | # acceptable directory permissions. |
22 | KEY_COMMAND="/var/run/keycommand_${LOGNAME}" | 22 | KEY_COMMAND="/var/run/keycommand_${LOGNAME}.$$" |
23 | trap "${SUDO} rm -f ${KEY_COMMAND}" 0 | ||
23 | cat << _EOF | $SUDO sh -c "rm -f '$KEY_COMMAND' ; cat > '$KEY_COMMAND'" | 24 | cat << _EOF | $SUDO sh -c "rm -f '$KEY_COMMAND' ; cat > '$KEY_COMMAND'" |
24 | #!/bin/sh | 25 | #!/bin/sh |
25 | echo args: "\$@" >> $OBJ/keys-command-args | 26 | echo args: "\$@" >> $OBJ/keys-command-args |
@@ -78,5 +79,3 @@ if [ -x $KEY_COMMAND ]; then | |||
78 | else | 79 | else |
79 | echo "SKIPPED: $KEY_COMMAND not executable (/var/run mounted noexec?)" | 80 | echo "SKIPPED: $KEY_COMMAND not executable (/var/run mounted noexec?)" |
80 | fi | 81 | fi |
81 | |||
82 | $SUDO rm -f $KEY_COMMAND | ||
diff --git a/regress/keyscan.sh b/regress/keyscan.sh index 3bde1219a..8940d24b6 100644 --- a/regress/keyscan.sh +++ b/regress/keyscan.sh | |||
@@ -1,14 +1,20 @@ | |||
1 | # $OpenBSD: keyscan.sh,v 1.6 2017/04/30 23:34:55 djm Exp $ | 1 | # $OpenBSD: keyscan.sh,v 1.9 2019/01/28 03:50:39 dtucker Exp $ |
2 | # Placed in the Public Domain. | 2 | # Placed in the Public Domain. |
3 | 3 | ||
4 | tid="keyscan" | 4 | tid="keyscan" |
5 | 5 | ||
6 | # remove DSA hostkey | 6 | KEYTYPES=`${SSH} -Q key-plain` |
7 | rm -f ${OBJ}/host.dsa | 7 | for i in $KEYTYPES; do |
8 | if [ -z "$algs" ]; then | ||
9 | algs="$i" | ||
10 | else | ||
11 | algs="$algs,$i" | ||
12 | fi | ||
13 | done | ||
14 | echo "HostKeyAlgorithms $algs" >> $OBJ/sshd_config | ||
8 | 15 | ||
9 | start_sshd | 16 | start_sshd |
10 | 17 | ||
11 | KEYTYPES=`${SSH} -Q key-plain` | ||
12 | for t in $KEYTYPES; do | 18 | for t in $KEYTYPES; do |
13 | trace "keyscan type $t" | 19 | trace "keyscan type $t" |
14 | ${SSHKEYSCAN} -t $t -p $PORT 127.0.0.1 127.0.0.1 127.0.0.1 \ | 20 | ${SSHKEYSCAN} -t $t -p $PORT 127.0.0.1 127.0.0.1 127.0.0.1 \ |
diff --git a/regress/misc/kexfuzz/Makefile b/regress/misc/kexfuzz/Makefile index a7bb6b70d..20802cb87 100644 --- a/regress/misc/kexfuzz/Makefile +++ b/regress/misc/kexfuzz/Makefile | |||
@@ -1,4 +1,4 @@ | |||
1 | # $OpenBSD: Makefile,v 1.3 2017/12/21 05:46:35 djm Exp $ | 1 | # $OpenBSD: Makefile,v 1.4 2019/01/21 12:50:12 djm Exp $ |
2 | 2 | ||
3 | .include <bsd.own.mk> | 3 | .include <bsd.own.mk> |
4 | .include <bsd.obj.mk> | 4 | .include <bsd.obj.mk> |
@@ -18,12 +18,21 @@ SRCS+=atomicio.c sshkey.c authfile.c cipher.c log.c ssh-rsa.c ssh-dss.c | |||
18 | SRCS+=ssh-ecdsa.c ssh-ed25519.c mac.c umac.c umac128.c hmac.c misc.c | 18 | SRCS+=ssh-ecdsa.c ssh-ed25519.c mac.c umac.c umac128.c hmac.c misc.c |
19 | SRCS+=ssherr.c uidswap.c cleanup.c xmalloc.c match.c krl.c fatal.c | 19 | SRCS+=ssherr.c uidswap.c cleanup.c xmalloc.c match.c krl.c fatal.c |
20 | SRCS+=addrmatch.c bitmap.c packet.c dispatch.c canohost.c ssh_api.c | 20 | SRCS+=addrmatch.c bitmap.c packet.c dispatch.c canohost.c ssh_api.c |
21 | SRCS+=kex.c kexc25519.c kexc25519c.c kexc25519s.c kexdh.c kexdhc.c kexdhs.c | 21 | SRCS+=compat.c ed25519.c hash.c ge25519.c fe25519.c sc25519.c verify.c |
22 | SRCS+=kexecdh.c kexecdhc.c kexecdhs.c kexgex.c kexgexc.c kexgexs.c | ||
23 | SRCS+=dh.c compat.c | ||
24 | SRCS+=ed25519.c hash.c ge25519.c fe25519.c sc25519.c verify.c | ||
25 | SRCS+=cipher-chachapoly.c chacha.c poly1305.c | 22 | SRCS+=cipher-chachapoly.c chacha.c poly1305.c |
26 | SRCS+=smult_curve25519_ref.c | 23 | |
24 | SRCS+= kex.c | ||
25 | SRCS+= dh.c | ||
26 | SRCS+= kexdh.c | ||
27 | SRCS+= kexecdh.c | ||
28 | SRCS+= kexgex.c | ||
29 | SRCS+= kexgexc.c | ||
30 | SRCS+= kexgexs.c | ||
31 | SRCS+= kexc25519.c | ||
32 | SRCS+= smult_curve25519_ref.c | ||
33 | SRCS+= kexgen.c | ||
34 | SRCS+= kexsntrup4591761x25519.c | ||
35 | SRCS+= sntrup4591761.c | ||
27 | 36 | ||
28 | SRCS+=digest-openssl.c | 37 | SRCS+=digest-openssl.c |
29 | #SRCS+=digest-libc.c | 38 | #SRCS+=digest-libc.c |
diff --git a/regress/misc/kexfuzz/kexfuzz.c b/regress/misc/kexfuzz/kexfuzz.c index 3e2c48160..7051e87b1 100644 --- a/regress/misc/kexfuzz/kexfuzz.c +++ b/regress/misc/kexfuzz/kexfuzz.c | |||
@@ -1,4 +1,4 @@ | |||
1 | /* $OpenBSD: kexfuzz.c,v 1.4 2017/04/30 23:34:55 djm Exp $ */ | 1 | /* $OpenBSD: kexfuzz.c,v 1.5 2019/01/21 12:50:12 djm Exp $ */ |
2 | /* | 2 | /* |
3 | * Fuzz harness for KEX code | 3 | * Fuzz harness for KEX code |
4 | * | 4 | * |
@@ -29,8 +29,6 @@ | |||
29 | #include "authfile.h" | 29 | #include "authfile.h" |
30 | #include "log.h" | 30 | #include "log.h" |
31 | 31 | ||
32 | struct ssh *active_state = NULL; /* XXX - needed for linking */ | ||
33 | |||
34 | void kex_tests(void); | 32 | void kex_tests(void); |
35 | static int do_debug = 0; | 33 | static int do_debug = 0; |
36 | 34 | ||
@@ -275,18 +273,18 @@ do_kex_with_key(const char *kex, struct sshkey *prvkey, int *c2s, int *s2c, | |||
275 | ASSERT_PTR_NE(server2->kex, NULL); | 273 | ASSERT_PTR_NE(server2->kex, NULL); |
276 | /* XXX we need to set the callbacks */ | 274 | /* XXX we need to set the callbacks */ |
277 | #ifdef WITH_OPENSSL | 275 | #ifdef WITH_OPENSSL |
278 | server2->kex->kex[KEX_DH_GRP1_SHA1] = kexdh_server; | 276 | server2->kex->kex[KEX_DH_GRP1_SHA1] = kex_gen_server; |
279 | server2->kex->kex[KEX_DH_GRP14_SHA1] = kexdh_server; | 277 | server2->kex->kex[KEX_DH_GRP14_SHA1] = kex_gen_server; |
280 | server2->kex->kex[KEX_DH_GRP14_SHA256] = kexdh_server; | 278 | server2->kex->kex[KEX_DH_GRP14_SHA256] = kex_gen_server; |
281 | server2->kex->kex[KEX_DH_GRP16_SHA512] = kexdh_server; | 279 | server2->kex->kex[KEX_DH_GRP16_SHA512] = kex_gen_server; |
282 | server2->kex->kex[KEX_DH_GRP18_SHA512] = kexdh_server; | 280 | server2->kex->kex[KEX_DH_GRP18_SHA512] = kex_gen_server; |
283 | server2->kex->kex[KEX_DH_GEX_SHA1] = kexgex_server; | 281 | server2->kex->kex[KEX_DH_GEX_SHA1] = kexgex_server; |
284 | server2->kex->kex[KEX_DH_GEX_SHA256] = kexgex_server; | 282 | server2->kex->kex[KEX_DH_GEX_SHA256] = kexgex_server; |
285 | # ifdef OPENSSL_HAS_ECC | 283 | # ifdef OPENSSL_HAS_ECC |
286 | server2->kex->kex[KEX_ECDH_SHA2] = kexecdh_server; | 284 | server2->kex->kex[KEX_ECDH_SHA2] = kex_gen_server; |
287 | # endif | 285 | # endif |
288 | #endif | 286 | #endif |
289 | server2->kex->kex[KEX_C25519_SHA256] = kexc25519_server; | 287 | server2->kex->kex[KEX_C25519_SHA256] = kex_gen_server; |
290 | server2->kex->load_host_public_key = server->kex->load_host_public_key; | 288 | server2->kex->load_host_public_key = server->kex->load_host_public_key; |
291 | server2->kex->load_host_private_key = server->kex->load_host_private_key; | 289 | server2->kex->load_host_private_key = server->kex->load_host_private_key; |
292 | server2->kex->sign = server->kex->sign; | 290 | server2->kex->sign = server->kex->sign; |
diff --git a/regress/multiplex.sh b/regress/multiplex.sh index a6fad8eb8..de357c4d5 100644 --- a/regress/multiplex.sh +++ b/regress/multiplex.sh | |||
@@ -1,4 +1,4 @@ | |||
1 | # $OpenBSD: multiplex.sh,v 1.28 2017/04/30 23:34:55 djm Exp $ | 1 | # $OpenBSD: multiplex.sh,v 1.29 2019/01/01 22:20:16 djm Exp $ |
2 | # Placed in the Public Domain. | 2 | # Placed in the Public Domain. |
3 | 3 | ||
4 | make_tmpdir | 4 | make_tmpdir |
@@ -142,7 +142,8 @@ ${SSH} -F $OBJ/ssh_config -p$P otherhost true \ | |||
142 | verbose "test $tid: cmd forward local (UNIX)" | 142 | verbose "test $tid: cmd forward local (UNIX)" |
143 | ${SSH} -F $OBJ/ssh_config -S $CTL -Oforward -L $OBJ/unix-1.fwd:localhost:$PORT otherhost \ | 143 | ${SSH} -F $OBJ/ssh_config -S $CTL -Oforward -L $OBJ/unix-1.fwd:localhost:$PORT otherhost \ |
144 | || fail "request local forward failed" | 144 | || fail "request local forward failed" |
145 | echo "" | $NC -U $OBJ/unix-1.fwd | grep "Protocol mismatch" >/dev/null 2>&1 \ | 145 | echo "" | $NC -U $OBJ/unix-1.fwd | \ |
146 | grep "Invalid SSH identification string" >/dev/null 2>&1 \ | ||
146 | || fail "connect to local forward path failed" | 147 | || fail "connect to local forward path failed" |
147 | ${SSH} -F $OBJ/ssh_config -S $CTL -Ocancel -L $OBJ/unix-1.fwd:localhost:$PORT otherhost \ | 148 | ${SSH} -F $OBJ/ssh_config -S $CTL -Ocancel -L $OBJ/unix-1.fwd:localhost:$PORT otherhost \ |
148 | || fail "cancel local forward failed" | 149 | || fail "cancel local forward failed" |
@@ -153,7 +154,8 @@ rm -f $OBJ/unix-1.fwd | |||
153 | verbose "test $tid: cmd forward remote (UNIX)" | 154 | verbose "test $tid: cmd forward remote (UNIX)" |
154 | ${SSH} -F $OBJ/ssh_config -S $CTL -Oforward -R $OBJ/unix-1.fwd:localhost:$PORT otherhost \ | 155 | ${SSH} -F $OBJ/ssh_config -S $CTL -Oforward -R $OBJ/unix-1.fwd:localhost:$PORT otherhost \ |
155 | || fail "request remote forward failed" | 156 | || fail "request remote forward failed" |
156 | echo "" | $NC -U $OBJ/unix-1.fwd | grep "Protocol mismatch" >/dev/null 2>&1 \ | 157 | echo "" | $NC -U $OBJ/unix-1.fwd | \ |
158 | grep "Invalid SSH identification string" >/dev/null 2>&1 \ | ||
157 | || fail "connect to remote forwarded path failed" | 159 | || fail "connect to remote forwarded path failed" |
158 | ${SSH} -F $OBJ/ssh_config -S $CTL -Ocancel -R $OBJ/unix-1.fwd:localhost:$PORT otherhost \ | 160 | ${SSH} -F $OBJ/ssh_config -S $CTL -Ocancel -R $OBJ/unix-1.fwd:localhost:$PORT otherhost \ |
159 | || fail "cancel remote forward failed" | 161 | || fail "cancel remote forward failed" |
diff --git a/regress/multipubkey.sh b/regress/multipubkey.sh index e9d15306f..4d443ec45 100644 --- a/regress/multipubkey.sh +++ b/regress/multipubkey.sh | |||
@@ -1,4 +1,4 @@ | |||
1 | # $OpenBSD: multipubkey.sh,v 1.1 2014/12/22 08:06:03 djm Exp $ | 1 | # $OpenBSD: multipubkey.sh,v 1.2 2018/10/31 11:09:27 dtucker Exp $ |
2 | # Placed in the Public Domain. | 2 | # Placed in the Public Domain. |
3 | 3 | ||
4 | tid="multiple pubkey" | 4 | tid="multiple pubkey" |
@@ -31,7 +31,7 @@ grep -v IdentityFile $OBJ/ssh_proxy.orig > $OBJ/ssh_proxy | |||
31 | opts="-oProtocol=2 -F $OBJ/ssh_proxy -oIdentitiesOnly=yes" | 31 | opts="-oProtocol=2 -F $OBJ/ssh_proxy -oIdentitiesOnly=yes" |
32 | opts="$opts -i $OBJ/cert_user_key1 -i $OBJ/user_key1 -i $OBJ/user_key2" | 32 | opts="$opts -i $OBJ/cert_user_key1 -i $OBJ/user_key1 -i $OBJ/user_key2" |
33 | 33 | ||
34 | for privsep in no yes; do | 34 | for privsep in yes sandbox ; do |
35 | ( | 35 | ( |
36 | grep -v "Protocol" $OBJ/sshd_proxy.orig | 36 | grep -v "Protocol" $OBJ/sshd_proxy.orig |
37 | echo "Protocol 2" | 37 | echo "Protocol 2" |
diff --git a/regress/principals-command.sh b/regress/principals-command.sh index bcc68e80b..197c00021 100644 --- a/regress/principals-command.sh +++ b/regress/principals-command.sh | |||
@@ -1,4 +1,4 @@ | |||
1 | # $OpenBSD: principals-command.sh,v 1.4 2017/04/30 23:34:55 djm Exp $ | 1 | # $OpenBSD: principals-command.sh,v 1.6 2018/11/22 08:48:32 dtucker Exp $ |
2 | # Placed in the Public Domain. | 2 | # Placed in the Public Domain. |
3 | 3 | ||
4 | tid="authorized principals command" | 4 | tid="authorized principals command" |
@@ -30,7 +30,8 @@ CA_FP=`${SSHKEYGEN} -lf $OBJ/user_ca_key.pub | awk '{ print $2 }'` | |||
30 | 30 | ||
31 | # Establish a AuthorizedPrincipalsCommand in /var/run where it will have | 31 | # Establish a AuthorizedPrincipalsCommand in /var/run where it will have |
32 | # acceptable directory permissions. | 32 | # acceptable directory permissions. |
33 | PRINCIPALS_COMMAND="/var/run/principals_command_${LOGNAME}" | 33 | PRINCIPALS_COMMAND="/var/run/principals_command_${LOGNAME}.$$" |
34 | trap "$SUDO rm -f ${PRINCIPALS_COMMAND}" 0 | ||
34 | cat << _EOF | $SUDO sh -c "cat > '$PRINCIPALS_COMMAND'" | 35 | cat << _EOF | $SUDO sh -c "cat > '$PRINCIPALS_COMMAND'" |
35 | #!/bin/sh | 36 | #!/bin/sh |
36 | test "x\$1" != "x${LOGNAME}" && exit 1 | 37 | test "x\$1" != "x${LOGNAME}" && exit 1 |
@@ -57,7 +58,7 @@ fi | |||
57 | 58 | ||
58 | if [ -x $PRINCIPALS_COMMAND ]; then | 59 | if [ -x $PRINCIPALS_COMMAND ]; then |
59 | # Test explicitly-specified principals | 60 | # Test explicitly-specified principals |
60 | for privsep in yes no ; do | 61 | for privsep in yes sandbox ; do |
61 | _prefix="privsep $privsep" | 62 | _prefix="privsep $privsep" |
62 | 63 | ||
63 | # Setup for AuthorizedPrincipalsCommand | 64 | # Setup for AuthorizedPrincipalsCommand |
diff --git a/regress/sftp-chroot.sh b/regress/sftp-chroot.sh index ba5bd1efb..5acc4d2de 100644 --- a/regress/sftp-chroot.sh +++ b/regress/sftp-chroot.sh | |||
@@ -1,11 +1,12 @@ | |||
1 | # $OpenBSD: sftp-chroot.sh,v 1.6 2018/02/09 03:42:57 dtucker Exp $ | 1 | # $OpenBSD: sftp-chroot.sh,v 1.7 2018/11/22 08:48:32 dtucker Exp $ |
2 | # Placed in the Public Domain. | 2 | # Placed in the Public Domain. |
3 | 3 | ||
4 | tid="sftp in chroot" | 4 | tid="sftp in chroot" |
5 | 5 | ||
6 | CHROOT=/var/run | 6 | CHROOT=/var/run |
7 | FILENAME=testdata_${USER} | 7 | FILENAME=testdata_${USER}.$$ |
8 | PRIVDATA=${CHROOT}/${FILENAME} | 8 | PRIVDATA=${CHROOT}/${FILENAME} |
9 | trap "${SUDO} rm -f ${PRIVDATA}" 0 | ||
9 | 10 | ||
10 | if [ -z "$SUDO" -a ! -w /var/run ]; then | 11 | if [ -z "$SUDO" -a ! -w /var/run ]; then |
11 | echo "need SUDO to create file in /var/run, test won't work without" | 12 | echo "need SUDO to create file in /var/run, test won't work without" |
@@ -28,5 +29,3 @@ ${SFTP} -S "$SSH" -F $OBJ/ssh_config host:/${FILENAME} $COPY \ | |||
28 | >>$TEST_REGRESS_LOGFILE 2>&1 || \ | 29 | >>$TEST_REGRESS_LOGFILE 2>&1 || \ |
29 | fatal "Fetch ${FILENAME} failed" | 30 | fatal "Fetch ${FILENAME} failed" |
30 | cmp $PRIVDATA $COPY || fail "$PRIVDATA $COPY differ" | 31 | cmp $PRIVDATA $COPY || fail "$PRIVDATA $COPY differ" |
31 | |||
32 | $SUDO rm $PRIVDATA | ||
diff --git a/regress/sftp-cmds.sh b/regress/sftp-cmds.sh index aad7fcac2..1289c4089 100644 --- a/regress/sftp-cmds.sh +++ b/regress/sftp-cmds.sh | |||
@@ -77,7 +77,6 @@ echo "get \"$DATA\" $COPY" | ${SFTP} -D ${SFTPSERVER} >/dev/null 2>&1 \ | |||
77 | || fail "get failed" | 77 | || fail "get failed" |
78 | cmp $DATA ${COPY} || fail "corrupted copy after get" | 78 | cmp $DATA ${COPY} || fail "corrupted copy after get" |
79 | 79 | ||
80 | if [ "$os" != "cygwin" ]; then | ||
81 | rm -f ${QUOTECOPY} | 80 | rm -f ${QUOTECOPY} |
82 | cp $DATA ${QUOTECOPY} | 81 | cp $DATA ${QUOTECOPY} |
83 | verbose "$tid: get filename with quotes" | 82 | verbose "$tid: get filename with quotes" |
@@ -85,7 +84,6 @@ echo "get \"$QUOTECOPY_ARG\" ${COPY}" | ${SFTP} -D ${SFTPSERVER} >/dev/null 2>&1 | |||
85 | || fail "get failed" | 84 | || fail "get failed" |
86 | cmp ${COPY} ${QUOTECOPY} || fail "corrupted copy after get with quotes" | 85 | cmp ${COPY} ${QUOTECOPY} || fail "corrupted copy after get with quotes" |
87 | rm -f ${QUOTECOPY} ${COPY} | 86 | rm -f ${QUOTECOPY} ${COPY} |
88 | fi | ||
89 | 87 | ||
90 | rm -f "$SPACECOPY" ${COPY} | 88 | rm -f "$SPACECOPY" ${COPY} |
91 | cp $DATA "$SPACECOPY" | 89 | cp $DATA "$SPACECOPY" |
@@ -136,13 +134,11 @@ echo "put $DATA $COPY" | \ | |||
136 | ${SFTP} -D ${SFTPSERVER} >/dev/null 2>&1 || fail "put failed" | 134 | ${SFTP} -D ${SFTPSERVER} >/dev/null 2>&1 || fail "put failed" |
137 | cmp $DATA ${COPY} || fail "corrupted copy after put" | 135 | cmp $DATA ${COPY} || fail "corrupted copy after put" |
138 | 136 | ||
139 | if [ "$os" != "cygwin" ]; then | ||
140 | rm -f ${QUOTECOPY} | 137 | rm -f ${QUOTECOPY} |
141 | verbose "$tid: put filename with quotes" | 138 | verbose "$tid: put filename with quotes" |
142 | echo "put $DATA \"$QUOTECOPY_ARG\"" | \ | 139 | echo "put $DATA \"$QUOTECOPY_ARG\"" | \ |
143 | ${SFTP} -D ${SFTPSERVER} >/dev/null 2>&1 || fail "put failed" | 140 | ${SFTP} -D ${SFTPSERVER} >/dev/null 2>&1 || fail "put failed" |
144 | cmp $DATA ${QUOTECOPY} || fail "corrupted copy after put with quotes" | 141 | cmp $DATA ${QUOTECOPY} || fail "corrupted copy after put with quotes" |
145 | fi | ||
146 | 142 | ||
147 | rm -f "$SPACECOPY" | 143 | rm -f "$SPACECOPY" |
148 | verbose "$tid: put filename with spaces" | 144 | verbose "$tid: put filename with spaces" |
diff --git a/regress/test-exec.sh b/regress/test-exec.sh index 40d46e3cd..b8e2009de 100644 --- a/regress/test-exec.sh +++ b/regress/test-exec.sh | |||
@@ -1,4 +1,4 @@ | |||
1 | # $OpenBSD: test-exec.sh,v 1.64 2018/08/10 01:35:49 dtucker Exp $ | 1 | # $OpenBSD: test-exec.sh,v 1.65 2019/01/27 06:30:53 dtucker Exp $ |
2 | # Placed in the Public Domain. | 2 | # Placed in the Public Domain. |
3 | 3 | ||
4 | #SUDO=sudo | 4 | #SUDO=sudo |
@@ -12,10 +12,6 @@ OSF1*) | |||
12 | BIN_SH=xpg4 | 12 | BIN_SH=xpg4 |
13 | export BIN_SH | 13 | export BIN_SH |
14 | ;; | 14 | ;; |
15 | CYGWIN_NT-5.0) | ||
16 | os=cygwin | ||
17 | TEST_SSH_IPV6=no | ||
18 | ;; | ||
19 | CYGWIN*) | 15 | CYGWIN*) |
20 | os=cygwin | 16 | os=cygwin |
21 | ;; | 17 | ;; |
@@ -469,11 +465,11 @@ fi | |||
469 | 465 | ||
470 | rm -f $OBJ/known_hosts $OBJ/authorized_keys_$USER | 466 | rm -f $OBJ/known_hosts $OBJ/authorized_keys_$USER |
471 | 467 | ||
472 | SSH_KEYTYPES="rsa ed25519" | 468 | SSH_KEYTYPES=`$SSH -Q key-plain` |
473 | 469 | ||
474 | trace "generate keys" | ||
475 | for t in ${SSH_KEYTYPES}; do | 470 | for t in ${SSH_KEYTYPES}; do |
476 | # generate user key | 471 | # generate user key |
472 | trace "generating key type $t" | ||
477 | if [ ! -f $OBJ/$t ] || [ ${SSHKEYGEN_BIN} -nt $OBJ/$t ]; then | 473 | if [ ! -f $OBJ/$t ] || [ ${SSHKEYGEN_BIN} -nt $OBJ/$t ]; then |
478 | rm -f $OBJ/$t | 474 | rm -f $OBJ/$t |
479 | ${SSHKEYGEN} -q -N '' -t $t -f $OBJ/$t ||\ | 475 | ${SSHKEYGEN} -q -N '' -t $t -f $OBJ/$t ||\ |
diff --git a/regress/unittests/Makefile.inc b/regress/unittests/Makefile.inc index b509f4452..428ef6836 100644 --- a/regress/unittests/Makefile.inc +++ b/regress/unittests/Makefile.inc | |||
@@ -1,8 +1,25 @@ | |||
1 | # $OpenBSD: Makefile.inc,v 1.12 2017/12/21 00:41:22 djm Exp $ | 1 | # $OpenBSD: Makefile.inc,v 1.13 2018/10/17 23:28:05 djm Exp $ |
2 | |||
3 | REGRESS_FAIL_EARLY?= yes | ||
2 | 4 | ||
3 | .include <bsd.own.mk> | 5 | .include <bsd.own.mk> |
4 | .include <bsd.obj.mk> | 6 | .include <bsd.obj.mk> |
5 | 7 | ||
8 | # User-settable options | ||
9 | UNITTEST_FAST?= no # Skip slow tests (e.g. less intensive fuzzing). | ||
10 | UNITTEST_SLOW?= no # Include slower tests (e.g. more intensive fuzzing). | ||
11 | UNITTEST_VERBOSE?= no # Verbose test output (inc. per-test names). | ||
12 | |||
13 | MALLOC_OPTIONS?= CFGJRSUX | ||
14 | TEST_ENV?= MALLOC_OPTIONS=${MALLOC_OPTIONS} | ||
15 | |||
16 | # XXX detect from ssh binary? | ||
17 | OPENSSL?= yes | ||
18 | |||
19 | .if (${OPENSSL:L} == "yes") | ||
20 | CFLAGS+= -DWITH_OPENSSL | ||
21 | .endif | ||
22 | |||
6 | # enable warnings | 23 | # enable warnings |
7 | WARNINGS=Yes | 24 | WARNINGS=Yes |
8 | 25 | ||
@@ -49,5 +66,21 @@ DPADD+=${.CURDIR}/../test_helper/libtest_helper.a | |||
49 | 66 | ||
50 | .PATH: ${.CURDIR}/${SSHREL} | 67 | .PATH: ${.CURDIR}/${SSHREL} |
51 | 68 | ||
69 | LDADD+= -lutil | ||
70 | DPADD+= ${LIBUTIL} | ||
71 | |||
72 | .if (${OPENSSL:L} == "yes") | ||
52 | LDADD+= -lcrypto | 73 | LDADD+= -lcrypto |
53 | DPADD+= ${LIBCRYPTO} | 74 | DPADD+= ${LIBCRYPTO} |
75 | .endif | ||
76 | |||
77 | UNITTEST_ARGS?= | ||
78 | |||
79 | .if (${UNITTEST_VERBOSE:L} != "no") | ||
80 | UNITTEST_ARGS+= -v | ||
81 | .endif | ||
82 | .if (${UNITTEST_FAST:L} != "no") | ||
83 | UNITTEST_ARGS+= -f | ||
84 | .elif (${UNITTEST_SLOW:L} != "no") | ||
85 | UNITTEST_ARGS+= -F | ||
86 | .endif | ||
diff --git a/regress/unittests/kex/Makefile b/regress/unittests/kex/Makefile index 5c61307a3..7b4c644e5 100644 --- a/regress/unittests/kex/Makefile +++ b/regress/unittests/kex/Makefile | |||
@@ -1,4 +1,4 @@ | |||
1 | # $OpenBSD: Makefile,v 1.5 2017/12/21 00:41:22 djm Exp $ | 1 | # $OpenBSD: Makefile,v 1.6 2019/01/21 12:35:20 djm Exp $ |
2 | 2 | ||
3 | PROG=test_kex | 3 | PROG=test_kex |
4 | SRCS=tests.c test_kex.c | 4 | SRCS=tests.c test_kex.c |
@@ -9,12 +9,21 @@ SRCS+=atomicio.c sshkey.c authfile.c cipher.c log.c ssh-rsa.c ssh-dss.c | |||
9 | SRCS+=ssh-ecdsa.c ssh-ed25519.c mac.c umac.c umac128.c hmac.c misc.c | 9 | SRCS+=ssh-ecdsa.c ssh-ed25519.c mac.c umac.c umac128.c hmac.c misc.c |
10 | SRCS+=ssherr.c uidswap.c cleanup.c xmalloc.c match.c krl.c fatal.c | 10 | SRCS+=ssherr.c uidswap.c cleanup.c xmalloc.c match.c krl.c fatal.c |
11 | SRCS+=addrmatch.c bitmap.c packet.c dispatch.c canohost.c ssh_api.c | 11 | SRCS+=addrmatch.c bitmap.c packet.c dispatch.c canohost.c ssh_api.c |
12 | SRCS+=kex.c kexc25519.c kexc25519c.c kexc25519s.c kexdh.c kexdhc.c kexdhs.c | 12 | SRCS+=compat.c ed25519.c hash.c ge25519.c fe25519.c sc25519.c verify.c |
13 | SRCS+=kexecdh.c kexecdhc.c kexecdhs.c kexgex.c kexgexc.c kexgexs.c | ||
14 | SRCS+=dh.c compat.c | ||
15 | SRCS+=ed25519.c hash.c ge25519.c fe25519.c sc25519.c verify.c | ||
16 | SRCS+=cipher-chachapoly.c chacha.c poly1305.c | 13 | SRCS+=cipher-chachapoly.c chacha.c poly1305.c |
17 | SRCS+=smult_curve25519_ref.c | 14 | |
15 | SRCS+= kex.c | ||
16 | SRCS+= dh.c | ||
17 | SRCS+= kexdh.c | ||
18 | SRCS+= kexecdh.c | ||
19 | SRCS+= kexgex.c | ||
20 | SRCS+= kexgexc.c | ||
21 | SRCS+= kexgexs.c | ||
22 | SRCS+= kexc25519.c | ||
23 | SRCS+= smult_curve25519_ref.c | ||
24 | SRCS+= kexgen.c | ||
25 | SRCS+= kexsntrup4591761x25519.c | ||
26 | SRCS+= sntrup4591761.c | ||
18 | 27 | ||
19 | SRCS+=digest-openssl.c | 28 | SRCS+=digest-openssl.c |
20 | #SRCS+=digest-libc.c | 29 | #SRCS+=digest-libc.c |
diff --git a/regress/unittests/kex/test_kex.c b/regress/unittests/kex/test_kex.c index 6e5999bb9..a860efc02 100644 --- a/regress/unittests/kex/test_kex.c +++ b/regress/unittests/kex/test_kex.c | |||
@@ -1,4 +1,4 @@ | |||
1 | /* $OpenBSD: test_kex.c,v 1.2 2015/07/10 06:23:25 markus Exp $ */ | 1 | /* $OpenBSD: test_kex.c,v 1.4 2019/01/21 12:35:20 djm Exp $ */ |
2 | /* | 2 | /* |
3 | * Regress test KEX | 3 | * Regress test KEX |
4 | * | 4 | * |
@@ -24,8 +24,6 @@ | |||
24 | #include "packet.h" | 24 | #include "packet.h" |
25 | #include "myproposal.h" | 25 | #include "myproposal.h" |
26 | 26 | ||
27 | struct ssh *active_state = NULL; /* XXX - needed for linking */ | ||
28 | |||
29 | void kex_tests(void); | 27 | void kex_tests(void); |
30 | static int do_debug = 0; | 28 | static int do_debug = 0; |
31 | 29 | ||
@@ -139,20 +137,19 @@ do_kex_with_key(char *kex, int keytype, int bits) | |||
139 | ASSERT_INT_EQ(ssh_init(&server2, 1, NULL), 0); | 137 | ASSERT_INT_EQ(ssh_init(&server2, 1, NULL), 0); |
140 | ASSERT_PTR_NE(server2, NULL); | 138 | ASSERT_PTR_NE(server2, NULL); |
141 | ASSERT_INT_EQ(ssh_add_hostkey(server2, private), 0); | 139 | ASSERT_INT_EQ(ssh_add_hostkey(server2, private), 0); |
142 | kex_free(server2->kex); /* XXX or should ssh_packet_set_state()? */ | ||
143 | ASSERT_INT_EQ(ssh_packet_set_state(server2, state), 0); | 140 | ASSERT_INT_EQ(ssh_packet_set_state(server2, state), 0); |
144 | ASSERT_INT_EQ(sshbuf_len(state), 0); | 141 | ASSERT_INT_EQ(sshbuf_len(state), 0); |
145 | sshbuf_free(state); | 142 | sshbuf_free(state); |
146 | ASSERT_PTR_NE(server2->kex, NULL); | 143 | ASSERT_PTR_NE(server2->kex, NULL); |
147 | /* XXX we need to set the callbacks */ | 144 | /* XXX we need to set the callbacks */ |
148 | server2->kex->kex[KEX_DH_GRP1_SHA1] = kexdh_server; | 145 | server2->kex->kex[KEX_DH_GRP1_SHA1] = kex_gen_server; |
149 | server2->kex->kex[KEX_DH_GRP14_SHA1] = kexdh_server; | 146 | server2->kex->kex[KEX_DH_GRP14_SHA1] = kex_gen_server; |
150 | server2->kex->kex[KEX_DH_GEX_SHA1] = kexgex_server; | 147 | server2->kex->kex[KEX_DH_GEX_SHA1] = kexgex_server; |
151 | server2->kex->kex[KEX_DH_GEX_SHA256] = kexgex_server; | 148 | server2->kex->kex[KEX_DH_GEX_SHA256] = kexgex_server; |
152 | #ifdef OPENSSL_HAS_ECC | 149 | #ifdef OPENSSL_HAS_ECC |
153 | server2->kex->kex[KEX_ECDH_SHA2] = kexecdh_server; | 150 | server2->kex->kex[KEX_ECDH_SHA2] = kex_gen_server; |
154 | #endif | 151 | #endif |
155 | server2->kex->kex[KEX_C25519_SHA256] = kexc25519_server; | 152 | server2->kex->kex[KEX_C25519_SHA256] = kex_gen_server; |
156 | server2->kex->load_host_public_key = server->kex->load_host_public_key; | 153 | server2->kex->load_host_public_key = server->kex->load_host_public_key; |
157 | server2->kex->load_host_private_key = server->kex->load_host_private_key; | 154 | server2->kex->load_host_private_key = server->kex->load_host_private_key; |
158 | server2->kex->sign = server->kex->sign; | 155 | server2->kex->sign = server->kex->sign; |
diff --git a/regress/unittests/sshbuf/Makefile b/regress/unittests/sshbuf/Makefile index 81d4f27a6..0e8e9fd10 100644 --- a/regress/unittests/sshbuf/Makefile +++ b/regress/unittests/sshbuf/Makefile | |||
@@ -1,4 +1,4 @@ | |||
1 | # $OpenBSD: Makefile,v 1.6 2017/12/21 00:41:22 djm Exp $ | 1 | # $OpenBSD: Makefile,v 1.7 2018/10/17 23:28:05 djm Exp $ |
2 | 2 | ||
3 | .include <bsd.regress.mk> | 3 | .include <bsd.regress.mk> |
4 | 4 | ||
@@ -17,6 +17,5 @@ SRCS+=sshbuf-getput-basic.c sshbuf-getput-crypto.c sshbuf-misc.c sshbuf.c | |||
17 | SRCS+=atomicio.c | 17 | SRCS+=atomicio.c |
18 | 18 | ||
19 | run-regress-${PROG}: ${PROG} | 19 | run-regress-${PROG}: ${PROG} |
20 | env ${TEST_ENV} ./${PROG} | 20 | env ${TEST_ENV} ./${PROG} ${UNITTEST_ARGS} |
21 | |||
22 | 21 | ||
diff --git a/regress/unittests/sshbuf/test_sshbuf_fuzz.c b/regress/unittests/sshbuf/test_sshbuf_fuzz.c index c52376b53..e236c82f9 100644 --- a/regress/unittests/sshbuf/test_sshbuf_fuzz.c +++ b/regress/unittests/sshbuf/test_sshbuf_fuzz.c | |||
@@ -1,4 +1,4 @@ | |||
1 | /* $OpenBSD: test_sshbuf_fuzz.c,v 1.1 2014/04/30 05:32:00 djm Exp $ */ | 1 | /* $OpenBSD: test_sshbuf_fuzz.c,v 1.2 2018/10/17 23:28:05 djm Exp $ */ |
2 | /* | 2 | /* |
3 | * Regress test for sshbuf.h buffer API | 3 | * Regress test for sshbuf.h buffer API |
4 | * | 4 | * |
@@ -30,10 +30,15 @@ sshbuf_fuzz_tests(void) | |||
30 | { | 30 | { |
31 | struct sshbuf *p1; | 31 | struct sshbuf *p1; |
32 | u_char *dp; | 32 | u_char *dp; |
33 | size_t sz, sz2, i; | 33 | size_t sz, sz2, i, ntests = NUM_FUZZ_TESTS; |
34 | u_int32_t r; | 34 | u_int32_t r; |
35 | int ret; | 35 | int ret; |
36 | 36 | ||
37 | if (test_is_fast()) | ||
38 | ntests >>= 2; | ||
39 | if (test_is_slow()) | ||
40 | ntests <<= 2; | ||
41 | |||
37 | /* NB. uses sshbuf internals */ | 42 | /* NB. uses sshbuf internals */ |
38 | TEST_START("fuzz alloc/dealloc"); | 43 | TEST_START("fuzz alloc/dealloc"); |
39 | p1 = sshbuf_new(); | 44 | p1 = sshbuf_new(); |
diff --git a/regress/unittests/sshbuf/test_sshbuf_getput_crypto.c b/regress/unittests/sshbuf/test_sshbuf_getput_crypto.c index a68e1329e..5d39e63e1 100644 --- a/regress/unittests/sshbuf/test_sshbuf_getput_crypto.c +++ b/regress/unittests/sshbuf/test_sshbuf_getput_crypto.c | |||
@@ -1,4 +1,4 @@ | |||
1 | /* $OpenBSD: test_sshbuf_getput_crypto.c,v 1.1 2014/04/30 05:32:00 djm Exp $ */ | 1 | /* $OpenBSD: test_sshbuf_getput_crypto.c,v 1.2 2019/01/21 12:29:35 djm Exp $ */ |
2 | /* | 2 | /* |
3 | * Regress test for sshbuf.h buffer API | 3 | * Regress test for sshbuf.h buffer API |
4 | * | 4 | * |
@@ -33,7 +33,6 @@ sshbuf_getput_crypto_tests(void) | |||
33 | { | 33 | { |
34 | struct sshbuf *p1; | 34 | struct sshbuf *p1; |
35 | BIGNUM *bn, *bn2; | 35 | BIGNUM *bn, *bn2; |
36 | /* This one has num_bits != num_bytes * 8 to test bignum1 encoding */ | ||
37 | const char *hexbn1 = "0102030405060708090a0b0c0d0e0f10"; | 36 | const char *hexbn1 = "0102030405060708090a0b0c0d0e0f10"; |
38 | /* This one has MSB set to test bignum2 encoding negative-avoidance */ | 37 | /* This one has MSB set to test bignum2 encoding negative-avoidance */ |
39 | const char *hexbn2 = "f0e0d0c0b0a0908070605040302010007fff11"; | 38 | const char *hexbn2 = "f0e0d0c0b0a0908070605040302010007fff11"; |
@@ -77,54 +76,6 @@ sshbuf_getput_crypto_tests(void) | |||
77 | ASSERT_INT_GT(BN_hex2bn(&bnn, b), 0); \ | 76 | ASSERT_INT_GT(BN_hex2bn(&bnn, b), 0); \ |
78 | } while (0) | 77 | } while (0) |
79 | 78 | ||
80 | TEST_START("sshbuf_put_bignum1"); | ||
81 | MKBN(hexbn1, bn); | ||
82 | p1 = sshbuf_new(); | ||
83 | ASSERT_PTR_NE(p1, NULL); | ||
84 | ASSERT_INT_EQ(sshbuf_put_bignum1(p1, bn), 0); | ||
85 | ASSERT_SIZE_T_EQ(sshbuf_len(p1), sizeof(expbn1) + 2); | ||
86 | ASSERT_U16_EQ(PEEK_U16(sshbuf_ptr(p1)), (u_int16_t)BN_num_bits(bn)); | ||
87 | ASSERT_MEM_EQ(sshbuf_ptr(p1) + 2, expbn1, sizeof(expbn1)); | ||
88 | BN_free(bn); | ||
89 | sshbuf_free(p1); | ||
90 | TEST_DONE(); | ||
91 | |||
92 | TEST_START("sshbuf_put_bignum1 limited"); | ||
93 | MKBN(hexbn1, bn); | ||
94 | p1 = sshbuf_new(); | ||
95 | ASSERT_PTR_NE(p1, NULL); | ||
96 | ASSERT_INT_EQ(sshbuf_set_max_size(p1, sizeof(expbn1) + 1), 0); | ||
97 | r = sshbuf_put_bignum1(p1, bn); | ||
98 | ASSERT_INT_EQ(r, SSH_ERR_NO_BUFFER_SPACE); | ||
99 | ASSERT_SIZE_T_EQ(sshbuf_len(p1), 0); | ||
100 | BN_free(bn); | ||
101 | sshbuf_free(p1); | ||
102 | TEST_DONE(); | ||
103 | |||
104 | TEST_START("sshbuf_put_bignum1 bn2"); | ||
105 | MKBN(hexbn2, bn); | ||
106 | p1 = sshbuf_new(); | ||
107 | ASSERT_PTR_NE(p1, NULL); | ||
108 | ASSERT_INT_EQ(sshbuf_put_bignum1(p1, bn), 0); | ||
109 | ASSERT_SIZE_T_EQ(sshbuf_len(p1), sizeof(expbn2) + 2); | ||
110 | ASSERT_U16_EQ(PEEK_U16(sshbuf_ptr(p1)), (u_int16_t)BN_num_bits(bn)); | ||
111 | ASSERT_MEM_EQ(sshbuf_ptr(p1) + 2, expbn2, sizeof(expbn2)); | ||
112 | BN_free(bn); | ||
113 | sshbuf_free(p1); | ||
114 | TEST_DONE(); | ||
115 | |||
116 | TEST_START("sshbuf_put_bignum1 bn2 limited"); | ||
117 | MKBN(hexbn2, bn); | ||
118 | p1 = sshbuf_new(); | ||
119 | ASSERT_PTR_NE(p1, NULL); | ||
120 | ASSERT_INT_EQ(sshbuf_set_max_size(p1, sizeof(expbn1) + 1), 0); | ||
121 | r = sshbuf_put_bignum1(p1, bn); | ||
122 | ASSERT_INT_EQ(r, SSH_ERR_NO_BUFFER_SPACE); | ||
123 | ASSERT_SIZE_T_EQ(sshbuf_len(p1), 0); | ||
124 | BN_free(bn); | ||
125 | sshbuf_free(p1); | ||
126 | TEST_DONE(); | ||
127 | |||
128 | TEST_START("sshbuf_put_bignum2"); | 79 | TEST_START("sshbuf_put_bignum2"); |
129 | MKBN(hexbn1, bn); | 80 | MKBN(hexbn1, bn); |
130 | p1 = sshbuf_new(); | 81 | p1 = sshbuf_new(); |
@@ -174,88 +125,6 @@ sshbuf_getput_crypto_tests(void) | |||
174 | sshbuf_free(p1); | 125 | sshbuf_free(p1); |
175 | TEST_DONE(); | 126 | TEST_DONE(); |
176 | 127 | ||
177 | TEST_START("sshbuf_get_bignum1"); | ||
178 | MKBN(hexbn1, bn); | ||
179 | p1 = sshbuf_new(); | ||
180 | ASSERT_PTR_NE(p1, NULL); | ||
181 | ASSERT_INT_EQ(sshbuf_put_u16(p1, BN_num_bits(bn)), 0); | ||
182 | ASSERT_INT_EQ(sshbuf_put(p1, expbn1, sizeof(expbn1)), 0); | ||
183 | ASSERT_SIZE_T_EQ(sshbuf_len(p1), 2 + sizeof(expbn1)); | ||
184 | ASSERT_INT_EQ(sshbuf_put_u16(p1, 0xd00f), 0); | ||
185 | bn2 = BN_new(); | ||
186 | ASSERT_INT_EQ(sshbuf_get_bignum1(p1, bn2), 0); | ||
187 | ASSERT_BIGNUM_EQ(bn, bn2); | ||
188 | ASSERT_SIZE_T_EQ(sshbuf_len(p1), 2); | ||
189 | BN_free(bn); | ||
190 | BN_free(bn2); | ||
191 | sshbuf_free(p1); | ||
192 | TEST_DONE(); | ||
193 | |||
194 | TEST_START("sshbuf_get_bignum1 truncated"); | ||
195 | MKBN(hexbn1, bn); | ||
196 | p1 = sshbuf_new(); | ||
197 | ASSERT_PTR_NE(p1, NULL); | ||
198 | ASSERT_INT_EQ(sshbuf_put_u16(p1, BN_num_bits(bn)), 0); | ||
199 | ASSERT_INT_EQ(sshbuf_put(p1, expbn1, sizeof(expbn1) - 1), 0); | ||
200 | ASSERT_SIZE_T_EQ(sshbuf_len(p1), 2 + sizeof(expbn1) - 1); | ||
201 | bn2 = BN_new(); | ||
202 | r = sshbuf_get_bignum1(p1, bn2); | ||
203 | ASSERT_INT_EQ(r, SSH_ERR_MESSAGE_INCOMPLETE); | ||
204 | ASSERT_SIZE_T_EQ(sshbuf_len(p1), 2 + sizeof(expbn1) - 1); | ||
205 | BN_free(bn); | ||
206 | BN_free(bn2); | ||
207 | sshbuf_free(p1); | ||
208 | TEST_DONE(); | ||
209 | |||
210 | TEST_START("sshbuf_get_bignum1 giant"); | ||
211 | MKBN(hexbn1, bn); | ||
212 | p1 = sshbuf_new(); | ||
213 | ASSERT_PTR_NE(p1, NULL); | ||
214 | ASSERT_INT_EQ(sshbuf_put_u16(p1, 0xffff), 0); | ||
215 | ASSERT_INT_EQ(sshbuf_reserve(p1, (0xffff + 7) / 8, NULL), 0); | ||
216 | ASSERT_SIZE_T_EQ(sshbuf_len(p1), 2 + ((0xffff + 7) / 8)); | ||
217 | bn2 = BN_new(); | ||
218 | r = sshbuf_get_bignum1(p1, bn2); | ||
219 | ASSERT_INT_EQ(r, SSH_ERR_BIGNUM_TOO_LARGE); | ||
220 | ASSERT_SIZE_T_EQ(sshbuf_len(p1), 2 + ((0xffff + 7) / 8)); | ||
221 | BN_free(bn); | ||
222 | BN_free(bn2); | ||
223 | sshbuf_free(p1); | ||
224 | TEST_DONE(); | ||
225 | |||
226 | TEST_START("sshbuf_get_bignum1 bn2"); | ||
227 | MKBN(hexbn2, bn); | ||
228 | p1 = sshbuf_new(); | ||
229 | ASSERT_PTR_NE(p1, NULL); | ||
230 | ASSERT_INT_EQ(sshbuf_put_u16(p1, BN_num_bits(bn)), 0); | ||
231 | ASSERT_INT_EQ(sshbuf_put(p1, expbn2, sizeof(expbn2)), 0); | ||
232 | ASSERT_SIZE_T_EQ(sshbuf_len(p1), 2 + sizeof(expbn2)); | ||
233 | ASSERT_INT_EQ(sshbuf_put_u16(p1, 0xd00f), 0); | ||
234 | bn2 = BN_new(); | ||
235 | ASSERT_INT_EQ(sshbuf_get_bignum1(p1, bn2), 0); | ||
236 | ASSERT_BIGNUM_EQ(bn, bn2); | ||
237 | ASSERT_SIZE_T_EQ(sshbuf_len(p1), 2); | ||
238 | BN_free(bn); | ||
239 | BN_free(bn2); | ||
240 | sshbuf_free(p1); | ||
241 | TEST_DONE(); | ||
242 | |||
243 | TEST_START("sshbuf_get_bignum1 bn2 truncated"); | ||
244 | MKBN(hexbn2, bn); | ||
245 | p1 = sshbuf_new(); | ||
246 | ASSERT_PTR_NE(p1, NULL); | ||
247 | ASSERT_INT_EQ(sshbuf_put_u16(p1, BN_num_bits(bn)), 0); | ||
248 | ASSERT_INT_EQ(sshbuf_put(p1, expbn2, sizeof(expbn2) - 1), 0); | ||
249 | ASSERT_SIZE_T_EQ(sshbuf_len(p1), 2 + sizeof(expbn2) - 1); | ||
250 | bn2 = BN_new(); | ||
251 | r = sshbuf_get_bignum1(p1, bn2); | ||
252 | ASSERT_INT_EQ(r, SSH_ERR_MESSAGE_INCOMPLETE); | ||
253 | ASSERT_SIZE_T_EQ(sshbuf_len(p1), 2 + sizeof(expbn2) - 1); | ||
254 | BN_free(bn); | ||
255 | BN_free(bn2); | ||
256 | sshbuf_free(p1); | ||
257 | TEST_DONE(); | ||
258 | |||
259 | TEST_START("sshbuf_get_bignum2"); | 128 | TEST_START("sshbuf_get_bignum2"); |
260 | MKBN(hexbn1, bn); | 129 | MKBN(hexbn1, bn); |
261 | p1 = sshbuf_new(); | 130 | p1 = sshbuf_new(); |
@@ -264,8 +133,8 @@ sshbuf_getput_crypto_tests(void) | |||
264 | ASSERT_INT_EQ(sshbuf_put(p1, expbn1, sizeof(expbn1)), 0); | 133 | ASSERT_INT_EQ(sshbuf_put(p1, expbn1, sizeof(expbn1)), 0); |
265 | ASSERT_SIZE_T_EQ(sshbuf_len(p1), 4 + sizeof(expbn1)); | 134 | ASSERT_SIZE_T_EQ(sshbuf_len(p1), 4 + sizeof(expbn1)); |
266 | ASSERT_INT_EQ(sshbuf_put_u16(p1, 0xd00f), 0); | 135 | ASSERT_INT_EQ(sshbuf_put_u16(p1, 0xd00f), 0); |
267 | bn2 = BN_new(); | 136 | bn2 = NULL; |
268 | ASSERT_INT_EQ(sshbuf_get_bignum2(p1, bn2), 0); | 137 | ASSERT_INT_EQ(sshbuf_get_bignum2(p1, &bn2), 0); |
269 | ASSERT_BIGNUM_EQ(bn, bn2); | 138 | ASSERT_BIGNUM_EQ(bn, bn2); |
270 | ASSERT_SIZE_T_EQ(sshbuf_len(p1), 2); | 139 | ASSERT_SIZE_T_EQ(sshbuf_len(p1), 2); |
271 | BN_free(bn); | 140 | BN_free(bn); |
@@ -279,8 +148,8 @@ sshbuf_getput_crypto_tests(void) | |||
279 | ASSERT_PTR_NE(p1, NULL); | 148 | ASSERT_PTR_NE(p1, NULL); |
280 | ASSERT_INT_EQ(sshbuf_put_u32(p1, BN_num_bytes(bn)), 0); | 149 | ASSERT_INT_EQ(sshbuf_put_u32(p1, BN_num_bytes(bn)), 0); |
281 | ASSERT_INT_EQ(sshbuf_put(p1, expbn1, sizeof(expbn1) - 1), 0); | 150 | ASSERT_INT_EQ(sshbuf_put(p1, expbn1, sizeof(expbn1) - 1), 0); |
282 | bn2 = BN_new(); | 151 | bn2 = NULL; |
283 | r = sshbuf_get_bignum2(p1, bn2); | 152 | r = sshbuf_get_bignum2(p1, &bn2); |
284 | ASSERT_INT_EQ(r, SSH_ERR_MESSAGE_INCOMPLETE); | 153 | ASSERT_INT_EQ(r, SSH_ERR_MESSAGE_INCOMPLETE); |
285 | ASSERT_SIZE_T_EQ(sshbuf_len(p1), sizeof(expbn1) + 3); | 154 | ASSERT_SIZE_T_EQ(sshbuf_len(p1), sizeof(expbn1) + 3); |
286 | BN_free(bn); | 155 | BN_free(bn); |
@@ -294,8 +163,8 @@ sshbuf_getput_crypto_tests(void) | |||
294 | ASSERT_PTR_NE(p1, NULL); | 163 | ASSERT_PTR_NE(p1, NULL); |
295 | ASSERT_INT_EQ(sshbuf_put_u32(p1, 65536), 0); | 164 | ASSERT_INT_EQ(sshbuf_put_u32(p1, 65536), 0); |
296 | ASSERT_INT_EQ(sshbuf_reserve(p1, 65536, NULL), 0); | 165 | ASSERT_INT_EQ(sshbuf_reserve(p1, 65536, NULL), 0); |
297 | bn2 = BN_new(); | 166 | bn2 = NULL; |
298 | r = sshbuf_get_bignum2(p1, bn2); | 167 | r = sshbuf_get_bignum2(p1, &bn2); |
299 | ASSERT_INT_EQ(r, SSH_ERR_BIGNUM_TOO_LARGE); | 168 | ASSERT_INT_EQ(r, SSH_ERR_BIGNUM_TOO_LARGE); |
300 | ASSERT_SIZE_T_EQ(sshbuf_len(p1), 65536 + 4); | 169 | ASSERT_SIZE_T_EQ(sshbuf_len(p1), 65536 + 4); |
301 | BN_free(bn); | 170 | BN_free(bn); |
@@ -312,8 +181,8 @@ sshbuf_getput_crypto_tests(void) | |||
312 | ASSERT_INT_EQ(sshbuf_put(p1, expbn2, sizeof(expbn2)), 0); | 181 | ASSERT_INT_EQ(sshbuf_put(p1, expbn2, sizeof(expbn2)), 0); |
313 | ASSERT_SIZE_T_EQ(sshbuf_len(p1), 4 + 1 + sizeof(expbn2)); | 182 | ASSERT_SIZE_T_EQ(sshbuf_len(p1), 4 + 1 + sizeof(expbn2)); |
314 | ASSERT_INT_EQ(sshbuf_put_u16(p1, 0xd00f), 0); | 183 | ASSERT_INT_EQ(sshbuf_put_u16(p1, 0xd00f), 0); |
315 | bn2 = BN_new(); | 184 | bn2 = NULL; |
316 | ASSERT_INT_EQ(sshbuf_get_bignum2(p1, bn2), 0); | 185 | ASSERT_INT_EQ(sshbuf_get_bignum2(p1, &bn2), 0); |
317 | ASSERT_BIGNUM_EQ(bn, bn2); | 186 | ASSERT_BIGNUM_EQ(bn, bn2); |
318 | ASSERT_SIZE_T_EQ(sshbuf_len(p1), 2); | 187 | ASSERT_SIZE_T_EQ(sshbuf_len(p1), 2); |
319 | BN_free(bn); | 188 | BN_free(bn); |
@@ -328,8 +197,8 @@ sshbuf_getput_crypto_tests(void) | |||
328 | ASSERT_INT_EQ(sshbuf_put_u32(p1, BN_num_bytes(bn) + 1), 0); | 197 | ASSERT_INT_EQ(sshbuf_put_u32(p1, BN_num_bytes(bn) + 1), 0); |
329 | ASSERT_INT_EQ(sshbuf_put_u8(p1, 0x00), 0); | 198 | ASSERT_INT_EQ(sshbuf_put_u8(p1, 0x00), 0); |
330 | ASSERT_INT_EQ(sshbuf_put(p1, expbn2, sizeof(expbn2) - 1), 0); | 199 | ASSERT_INT_EQ(sshbuf_put(p1, expbn2, sizeof(expbn2) - 1), 0); |
331 | bn2 = BN_new(); | 200 | bn2 = NULL; |
332 | r = sshbuf_get_bignum2(p1, bn2); | 201 | r = sshbuf_get_bignum2(p1, &bn2); |
333 | ASSERT_INT_EQ(r, SSH_ERR_MESSAGE_INCOMPLETE); | 202 | ASSERT_INT_EQ(r, SSH_ERR_MESSAGE_INCOMPLETE); |
334 | ASSERT_SIZE_T_EQ(sshbuf_len(p1), sizeof(expbn2) + 1 + 4 - 1); | 203 | ASSERT_SIZE_T_EQ(sshbuf_len(p1), sizeof(expbn2) + 1 + 4 - 1); |
335 | BN_free(bn); | 204 | BN_free(bn); |
@@ -343,8 +212,8 @@ sshbuf_getput_crypto_tests(void) | |||
343 | ASSERT_PTR_NE(p1, NULL); | 212 | ASSERT_PTR_NE(p1, NULL); |
344 | ASSERT_INT_EQ(sshbuf_put_u32(p1, BN_num_bytes(bn)), 0); | 213 | ASSERT_INT_EQ(sshbuf_put_u32(p1, BN_num_bytes(bn)), 0); |
345 | ASSERT_INT_EQ(sshbuf_put(p1, expbn2, sizeof(expbn2)), 0); | 214 | ASSERT_INT_EQ(sshbuf_put(p1, expbn2, sizeof(expbn2)), 0); |
346 | bn2 = BN_new(); | 215 | bn2 = NULL; |
347 | r = sshbuf_get_bignum2(p1, bn2); | 216 | r = sshbuf_get_bignum2(p1, &bn2); |
348 | ASSERT_INT_EQ(r, SSH_ERR_BIGNUM_IS_NEGATIVE); | 217 | ASSERT_INT_EQ(r, SSH_ERR_BIGNUM_IS_NEGATIVE); |
349 | ASSERT_SIZE_T_EQ(sshbuf_len(p1), sizeof(expbn2) + 4); | 218 | ASSERT_SIZE_T_EQ(sshbuf_len(p1), sizeof(expbn2) + 4); |
350 | BN_free(bn); | 219 | BN_free(bn); |
diff --git a/regress/unittests/sshbuf/test_sshbuf_getput_fuzz.c b/regress/unittests/sshbuf/test_sshbuf_getput_fuzz.c index c6b5c29d1..ca06bfb00 100644 --- a/regress/unittests/sshbuf/test_sshbuf_getput_fuzz.c +++ b/regress/unittests/sshbuf/test_sshbuf_getput_fuzz.c | |||
@@ -1,4 +1,4 @@ | |||
1 | /* $OpenBSD: test_sshbuf_getput_fuzz.c,v 1.2 2014/05/02 02:54:00 djm Exp $ */ | 1 | /* $OpenBSD: test_sshbuf_getput_fuzz.c,v 1.4 2019/01/21 12:29:35 djm Exp $ */ |
2 | /* | 2 | /* |
3 | * Regress test for sshbuf.h buffer API | 3 | * Regress test for sshbuf.h buffer API |
4 | * | 4 | * |
@@ -54,11 +54,8 @@ attempt_parse_blob(u_char *blob, size_t len) | |||
54 | bzero(s, l); | 54 | bzero(s, l); |
55 | free(s); | 55 | free(s); |
56 | } | 56 | } |
57 | bn = BN_new(); | 57 | bn = NULL; |
58 | sshbuf_get_bignum1(p1, bn); | 58 | sshbuf_get_bignum2(p1, &bn); |
59 | BN_clear_free(bn); | ||
60 | bn = BN_new(); | ||
61 | sshbuf_get_bignum2(p1, bn); | ||
62 | BN_clear_free(bn); | 59 | BN_clear_free(bn); |
63 | #if defined(OPENSSL_HAS_ECC) && defined(OPENSSL_HAS_NISTP256) | 60 | #if defined(OPENSSL_HAS_ECC) && defined(OPENSSL_HAS_NISTP256) |
64 | eck = EC_KEY_new_by_curve_name(NID_X9_62_prime256v1); | 61 | eck = EC_KEY_new_by_curve_name(NID_X9_62_prime256v1); |
@@ -92,10 +89,6 @@ sshbuf_getput_fuzz_tests(void) | |||
92 | /* string */ | 89 | /* string */ |
93 | 0x00, 0x00, 0x00, 0x09, | 90 | 0x00, 0x00, 0x00, 0x09, |
94 | 'O', ' ', 'G', 'o', 'r', 'g', 'o', 'n', '!', | 91 | 'O', ' ', 'G', 'o', 'r', 'g', 'o', 'n', '!', |
95 | /* bignum1 */ | ||
96 | 0x79, | ||
97 | 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, | ||
98 | 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0x10, | ||
99 | /* bignum2 */ | 92 | /* bignum2 */ |
100 | 0x00, 0x00, 0x00, 0x14, | 93 | 0x00, 0x00, 0x00, 0x14, |
101 | 0x00, | 94 | 0x00, |
@@ -115,11 +108,15 @@ sshbuf_getput_fuzz_tests(void) | |||
115 | 0x55, 0x0f, 0x69, 0xd8, 0x0e, 0xc2, 0x3c, 0xd4, | 108 | 0x55, 0x0f, 0x69, 0xd8, 0x0e, 0xc2, 0x3c, 0xd4, |
116 | }; | 109 | }; |
117 | struct fuzz *fuzz; | 110 | struct fuzz *fuzz; |
111 | u_int fuzzers = FUZZ_1_BIT_FLIP | FUZZ_2_BIT_FLIP | | ||
112 | FUZZ_1_BYTE_FLIP | FUZZ_2_BYTE_FLIP | | ||
113 | FUZZ_TRUNCATE_START | FUZZ_TRUNCATE_END; | ||
114 | |||
115 | if (test_is_fast()) | ||
116 | fuzzers &= ~(FUZZ_2_BYTE_FLIP|FUZZ_2_BIT_FLIP); | ||
118 | 117 | ||
119 | TEST_START("fuzz blob parsing"); | 118 | TEST_START("fuzz blob parsing"); |
120 | fuzz = fuzz_begin(FUZZ_1_BIT_FLIP | FUZZ_2_BIT_FLIP | | 119 | fuzz = fuzz_begin(fuzzers, blob, sizeof(blob)); |
121 | FUZZ_1_BYTE_FLIP | FUZZ_2_BYTE_FLIP | | ||
122 | FUZZ_TRUNCATE_START | FUZZ_TRUNCATE_END, blob, sizeof(blob)); | ||
123 | TEST_ONERROR(onerror, fuzz); | 120 | TEST_ONERROR(onerror, fuzz); |
124 | for(; !fuzz_done(fuzz); fuzz_next(fuzz)) | 121 | for(; !fuzz_done(fuzz); fuzz_next(fuzz)) |
125 | attempt_parse_blob(blob, sizeof(blob)); | 122 | attempt_parse_blob(blob, sizeof(blob)); |
diff --git a/regress/unittests/sshkey/Makefile b/regress/unittests/sshkey/Makefile index 1c940bec6..aa731df1c 100644 --- a/regress/unittests/sshkey/Makefile +++ b/regress/unittests/sshkey/Makefile | |||
@@ -1,4 +1,4 @@ | |||
1 | # $OpenBSD: Makefile,v 1.5 2017/12/21 00:41:22 djm Exp $ | 1 | # $OpenBSD: Makefile,v 1.6 2018/10/17 23:28:05 djm Exp $ |
2 | 2 | ||
3 | PROG=test_sshkey | 3 | PROG=test_sshkey |
4 | SRCS=tests.c test_sshkey.c test_file.c test_fuzz.c common.c | 4 | SRCS=tests.c test_sshkey.c test_file.c test_fuzz.c common.c |
@@ -18,7 +18,7 @@ SRCS+=digest-openssl.c | |||
18 | REGRESS_TARGETS=run-regress-${PROG} | 18 | REGRESS_TARGETS=run-regress-${PROG} |
19 | 19 | ||
20 | run-regress-${PROG}: ${PROG} | 20 | run-regress-${PROG}: ${PROG} |
21 | env ${TEST_ENV} ./${PROG} -d ${.CURDIR}/testdata | 21 | env ${TEST_ENV} ./${PROG} ${UNITTEST_ARGS} -d ${.CURDIR}/testdata |
22 | 22 | ||
23 | .include <bsd.regress.mk> | 23 | .include <bsd.regress.mk> |
24 | 24 | ||
diff --git a/regress/unittests/sshkey/test_fuzz.c b/regress/unittests/sshkey/test_fuzz.c index d3b0c92b4..5953de595 100644 --- a/regress/unittests/sshkey/test_fuzz.c +++ b/regress/unittests/sshkey/test_fuzz.c | |||
@@ -1,4 +1,4 @@ | |||
1 | /* $OpenBSD: test_fuzz.c,v 1.8 2017/12/21 00:41:22 djm Exp $ */ | 1 | /* $OpenBSD: test_fuzz.c,v 1.9 2018/10/17 23:28:05 djm Exp $ */ |
2 | /* | 2 | /* |
3 | * Fuzz tests for key parsing | 3 | * Fuzz tests for key parsing |
4 | * | 4 | * |
@@ -51,14 +51,16 @@ public_fuzz(struct sshkey *k) | |||
51 | struct sshkey *k1; | 51 | struct sshkey *k1; |
52 | struct sshbuf *buf; | 52 | struct sshbuf *buf; |
53 | struct fuzz *fuzz; | 53 | struct fuzz *fuzz; |
54 | u_int fuzzers = FUZZ_1_BIT_FLIP | FUZZ_1_BYTE_FLIP | | ||
55 | FUZZ_TRUNCATE_START | FUZZ_TRUNCATE_END; | ||
54 | 56 | ||
57 | if (test_is_fast()) | ||
58 | fuzzers &= ~FUZZ_1_BIT_FLIP; | ||
59 | if (test_is_slow()) | ||
60 | fuzzers |= FUZZ_2_BIT_FLIP | FUZZ_2_BYTE_FLIP; | ||
55 | ASSERT_PTR_NE(buf = sshbuf_new(), NULL); | 61 | ASSERT_PTR_NE(buf = sshbuf_new(), NULL); |
56 | ASSERT_INT_EQ(sshkey_putb(k, buf), 0); | 62 | ASSERT_INT_EQ(sshkey_putb(k, buf), 0); |
57 | /* XXX need a way to run the tests in "slow, but complete" mode */ | 63 | fuzz = fuzz_begin(fuzzers, sshbuf_mutable_ptr(buf), sshbuf_len(buf)); |
58 | fuzz = fuzz_begin(FUZZ_1_BIT_FLIP | /* XXX too slow FUZZ_2_BIT_FLIP | */ | ||
59 | FUZZ_1_BYTE_FLIP | /* XXX too slow FUZZ_2_BYTE_FLIP | */ | ||
60 | FUZZ_TRUNCATE_START | FUZZ_TRUNCATE_END, | ||
61 | sshbuf_mutable_ptr(buf), sshbuf_len(buf)); | ||
62 | ASSERT_INT_EQ(sshkey_from_blob(sshbuf_ptr(buf), sshbuf_len(buf), | 64 | ASSERT_INT_EQ(sshkey_from_blob(sshbuf_ptr(buf), sshbuf_len(buf), |
63 | &k1), 0); | 65 | &k1), 0); |
64 | sshkey_free(k1); | 66 | sshkey_free(k1); |
@@ -77,12 +79,17 @@ sig_fuzz(struct sshkey *k, const char *sig_alg) | |||
77 | struct fuzz *fuzz; | 79 | struct fuzz *fuzz; |
78 | u_char *sig, c[] = "some junk to be signed"; | 80 | u_char *sig, c[] = "some junk to be signed"; |
79 | size_t l; | 81 | size_t l; |
82 | u_int fuzzers = FUZZ_1_BIT_FLIP | FUZZ_1_BYTE_FLIP | FUZZ_2_BYTE_FLIP | | ||
83 | FUZZ_TRUNCATE_START | FUZZ_TRUNCATE_END; | ||
84 | |||
85 | if (test_is_fast()) | ||
86 | fuzzers &= ~FUZZ_2_BYTE_FLIP; | ||
87 | if (test_is_slow()) | ||
88 | fuzzers |= FUZZ_2_BIT_FLIP; | ||
80 | 89 | ||
81 | ASSERT_INT_EQ(sshkey_sign(k, &sig, &l, c, sizeof(c), sig_alg, 0), 0); | 90 | ASSERT_INT_EQ(sshkey_sign(k, &sig, &l, c, sizeof(c), sig_alg, 0), 0); |
82 | ASSERT_SIZE_T_GT(l, 0); | 91 | ASSERT_SIZE_T_GT(l, 0); |
83 | fuzz = fuzz_begin(FUZZ_1_BIT_FLIP | /* too slow FUZZ_2_BIT_FLIP | */ | 92 | fuzz = fuzz_begin(fuzzers, sig, l); |
84 | FUZZ_1_BYTE_FLIP | FUZZ_2_BYTE_FLIP | | ||
85 | FUZZ_TRUNCATE_START | FUZZ_TRUNCATE_END, sig, l); | ||
86 | ASSERT_INT_EQ(sshkey_verify(k, sig, l, c, sizeof(c), NULL, 0), 0); | 93 | ASSERT_INT_EQ(sshkey_verify(k, sig, l, c, sizeof(c), NULL, 0), 0); |
87 | free(sig); | 94 | free(sig); |
88 | TEST_ONERROR(onerror, fuzz); | 95 | TEST_ONERROR(onerror, fuzz); |
@@ -96,13 +103,15 @@ sig_fuzz(struct sshkey *k, const char *sig_alg) | |||
96 | fuzz_cleanup(fuzz); | 103 | fuzz_cleanup(fuzz); |
97 | } | 104 | } |
98 | 105 | ||
106 | #define NUM_FAST_BASE64_TESTS 1024 | ||
107 | |||
99 | void | 108 | void |
100 | sshkey_fuzz_tests(void) | 109 | sshkey_fuzz_tests(void) |
101 | { | 110 | { |
102 | struct sshkey *k1; | 111 | struct sshkey *k1; |
103 | struct sshbuf *buf, *fuzzed; | 112 | struct sshbuf *buf, *fuzzed; |
104 | struct fuzz *fuzz; | 113 | struct fuzz *fuzz; |
105 | int r; | 114 | int r, i; |
106 | 115 | ||
107 | 116 | ||
108 | TEST_START("fuzz RSA private"); | 117 | TEST_START("fuzz RSA private"); |
@@ -114,12 +123,14 @@ sshkey_fuzz_tests(void) | |||
114 | sshbuf_free(buf); | 123 | sshbuf_free(buf); |
115 | ASSERT_PTR_NE(fuzzed = sshbuf_new(), NULL); | 124 | ASSERT_PTR_NE(fuzzed = sshbuf_new(), NULL); |
116 | TEST_ONERROR(onerror, fuzz); | 125 | TEST_ONERROR(onerror, fuzz); |
117 | for(; !fuzz_done(fuzz); fuzz_next(fuzz)) { | 126 | for(i = 0; !fuzz_done(fuzz); i++, fuzz_next(fuzz)) { |
118 | r = sshbuf_put(fuzzed, fuzz_ptr(fuzz), fuzz_len(fuzz)); | 127 | r = sshbuf_put(fuzzed, fuzz_ptr(fuzz), fuzz_len(fuzz)); |
119 | ASSERT_INT_EQ(r, 0); | 128 | ASSERT_INT_EQ(r, 0); |
120 | if (sshkey_parse_private_fileblob(fuzzed, "", &k1, NULL) == 0) | 129 | if (sshkey_parse_private_fileblob(fuzzed, "", &k1, NULL) == 0) |
121 | sshkey_free(k1); | 130 | sshkey_free(k1); |
122 | sshbuf_reset(fuzzed); | 131 | sshbuf_reset(fuzzed); |
132 | if (test_is_fast() && i >= NUM_FAST_BASE64_TESTS) | ||
133 | break; | ||
123 | } | 134 | } |
124 | sshbuf_free(fuzzed); | 135 | sshbuf_free(fuzzed); |
125 | fuzz_cleanup(fuzz); | 136 | fuzz_cleanup(fuzz); |
@@ -134,12 +145,14 @@ sshkey_fuzz_tests(void) | |||
134 | sshbuf_free(buf); | 145 | sshbuf_free(buf); |
135 | ASSERT_PTR_NE(fuzzed = sshbuf_new(), NULL); | 146 | ASSERT_PTR_NE(fuzzed = sshbuf_new(), NULL); |
136 | TEST_ONERROR(onerror, fuzz); | 147 | TEST_ONERROR(onerror, fuzz); |
137 | for(; !fuzz_done(fuzz); fuzz_next(fuzz)) { | 148 | for(i = 0; !fuzz_done(fuzz); i++, fuzz_next(fuzz)) { |
138 | r = sshbuf_put(fuzzed, fuzz_ptr(fuzz), fuzz_len(fuzz)); | 149 | r = sshbuf_put(fuzzed, fuzz_ptr(fuzz), fuzz_len(fuzz)); |
139 | ASSERT_INT_EQ(r, 0); | 150 | ASSERT_INT_EQ(r, 0); |
140 | if (sshkey_parse_private_fileblob(fuzzed, "", &k1, NULL) == 0) | 151 | if (sshkey_parse_private_fileblob(fuzzed, "", &k1, NULL) == 0) |
141 | sshkey_free(k1); | 152 | sshkey_free(k1); |
142 | sshbuf_reset(fuzzed); | 153 | sshbuf_reset(fuzzed); |
154 | if (test_is_fast() && i >= NUM_FAST_BASE64_TESTS) | ||
155 | break; | ||
143 | } | 156 | } |
144 | sshbuf_free(fuzzed); | 157 | sshbuf_free(fuzzed); |
145 | fuzz_cleanup(fuzz); | 158 | fuzz_cleanup(fuzz); |
@@ -154,12 +167,14 @@ sshkey_fuzz_tests(void) | |||
154 | sshbuf_free(buf); | 167 | sshbuf_free(buf); |
155 | ASSERT_PTR_NE(fuzzed = sshbuf_new(), NULL); | 168 | ASSERT_PTR_NE(fuzzed = sshbuf_new(), NULL); |
156 | TEST_ONERROR(onerror, fuzz); | 169 | TEST_ONERROR(onerror, fuzz); |
157 | for(; !fuzz_done(fuzz); fuzz_next(fuzz)) { | 170 | for(i = 0; !fuzz_done(fuzz); i++, fuzz_next(fuzz)) { |
158 | r = sshbuf_put(fuzzed, fuzz_ptr(fuzz), fuzz_len(fuzz)); | 171 | r = sshbuf_put(fuzzed, fuzz_ptr(fuzz), fuzz_len(fuzz)); |
159 | ASSERT_INT_EQ(r, 0); | 172 | ASSERT_INT_EQ(r, 0); |
160 | if (sshkey_parse_private_fileblob(fuzzed, "", &k1, NULL) == 0) | 173 | if (sshkey_parse_private_fileblob(fuzzed, "", &k1, NULL) == 0) |
161 | sshkey_free(k1); | 174 | sshkey_free(k1); |
162 | sshbuf_reset(fuzzed); | 175 | sshbuf_reset(fuzzed); |
176 | if (test_is_fast() && i >= NUM_FAST_BASE64_TESTS) | ||
177 | break; | ||
163 | } | 178 | } |
164 | sshbuf_free(fuzzed); | 179 | sshbuf_free(fuzzed); |
165 | fuzz_cleanup(fuzz); | 180 | fuzz_cleanup(fuzz); |
@@ -174,12 +189,14 @@ sshkey_fuzz_tests(void) | |||
174 | sshbuf_free(buf); | 189 | sshbuf_free(buf); |
175 | ASSERT_PTR_NE(fuzzed = sshbuf_new(), NULL); | 190 | ASSERT_PTR_NE(fuzzed = sshbuf_new(), NULL); |
176 | TEST_ONERROR(onerror, fuzz); | 191 | TEST_ONERROR(onerror, fuzz); |
177 | for(; !fuzz_done(fuzz); fuzz_next(fuzz)) { | 192 | for(i = 0; !fuzz_done(fuzz); i++, fuzz_next(fuzz)) { |
178 | r = sshbuf_put(fuzzed, fuzz_ptr(fuzz), fuzz_len(fuzz)); | 193 | r = sshbuf_put(fuzzed, fuzz_ptr(fuzz), fuzz_len(fuzz)); |
179 | ASSERT_INT_EQ(r, 0); | 194 | ASSERT_INT_EQ(r, 0); |
180 | if (sshkey_parse_private_fileblob(fuzzed, "", &k1, NULL) == 0) | 195 | if (sshkey_parse_private_fileblob(fuzzed, "", &k1, NULL) == 0) |
181 | sshkey_free(k1); | 196 | sshkey_free(k1); |
182 | sshbuf_reset(fuzzed); | 197 | sshbuf_reset(fuzzed); |
198 | if (test_is_fast() && i >= NUM_FAST_BASE64_TESTS) | ||
199 | break; | ||
183 | } | 200 | } |
184 | sshbuf_free(fuzzed); | 201 | sshbuf_free(fuzzed); |
185 | fuzz_cleanup(fuzz); | 202 | fuzz_cleanup(fuzz); |
@@ -195,12 +212,14 @@ sshkey_fuzz_tests(void) | |||
195 | sshbuf_free(buf); | 212 | sshbuf_free(buf); |
196 | ASSERT_PTR_NE(fuzzed = sshbuf_new(), NULL); | 213 | ASSERT_PTR_NE(fuzzed = sshbuf_new(), NULL); |
197 | TEST_ONERROR(onerror, fuzz); | 214 | TEST_ONERROR(onerror, fuzz); |
198 | for(; !fuzz_done(fuzz); fuzz_next(fuzz)) { | 215 | for(i = 0; !fuzz_done(fuzz); i++, fuzz_next(fuzz)) { |
199 | r = sshbuf_put(fuzzed, fuzz_ptr(fuzz), fuzz_len(fuzz)); | 216 | r = sshbuf_put(fuzzed, fuzz_ptr(fuzz), fuzz_len(fuzz)); |
200 | ASSERT_INT_EQ(r, 0); | 217 | ASSERT_INT_EQ(r, 0); |
201 | if (sshkey_parse_private_fileblob(fuzzed, "", &k1, NULL) == 0) | 218 | if (sshkey_parse_private_fileblob(fuzzed, "", &k1, NULL) == 0) |
202 | sshkey_free(k1); | 219 | sshkey_free(k1); |
203 | sshbuf_reset(fuzzed); | 220 | sshbuf_reset(fuzzed); |
221 | if (test_is_fast() && i >= NUM_FAST_BASE64_TESTS) | ||
222 | break; | ||
204 | } | 223 | } |
205 | sshbuf_free(fuzzed); | 224 | sshbuf_free(fuzzed); |
206 | fuzz_cleanup(fuzz); | 225 | fuzz_cleanup(fuzz); |
@@ -215,12 +234,14 @@ sshkey_fuzz_tests(void) | |||
215 | sshbuf_free(buf); | 234 | sshbuf_free(buf); |
216 | ASSERT_PTR_NE(fuzzed = sshbuf_new(), NULL); | 235 | ASSERT_PTR_NE(fuzzed = sshbuf_new(), NULL); |
217 | TEST_ONERROR(onerror, fuzz); | 236 | TEST_ONERROR(onerror, fuzz); |
218 | for(; !fuzz_done(fuzz); fuzz_next(fuzz)) { | 237 | for(i = 0; !fuzz_done(fuzz); i++, fuzz_next(fuzz)) { |
219 | r = sshbuf_put(fuzzed, fuzz_ptr(fuzz), fuzz_len(fuzz)); | 238 | r = sshbuf_put(fuzzed, fuzz_ptr(fuzz), fuzz_len(fuzz)); |
220 | ASSERT_INT_EQ(r, 0); | 239 | ASSERT_INT_EQ(r, 0); |
221 | if (sshkey_parse_private_fileblob(fuzzed, "", &k1, NULL) == 0) | 240 | if (sshkey_parse_private_fileblob(fuzzed, "", &k1, NULL) == 0) |
222 | sshkey_free(k1); | 241 | sshkey_free(k1); |
223 | sshbuf_reset(fuzzed); | 242 | sshbuf_reset(fuzzed); |
243 | if (test_is_fast() && i >= NUM_FAST_BASE64_TESTS) | ||
244 | break; | ||
224 | } | 245 | } |
225 | sshbuf_free(fuzzed); | 246 | sshbuf_free(fuzzed); |
226 | fuzz_cleanup(fuzz); | 247 | fuzz_cleanup(fuzz); |
@@ -236,12 +257,14 @@ sshkey_fuzz_tests(void) | |||
236 | sshbuf_free(buf); | 257 | sshbuf_free(buf); |
237 | ASSERT_PTR_NE(fuzzed = sshbuf_new(), NULL); | 258 | ASSERT_PTR_NE(fuzzed = sshbuf_new(), NULL); |
238 | TEST_ONERROR(onerror, fuzz); | 259 | TEST_ONERROR(onerror, fuzz); |
239 | for(; !fuzz_done(fuzz); fuzz_next(fuzz)) { | 260 | for(i = 0; !fuzz_done(fuzz); i++, fuzz_next(fuzz)) { |
240 | r = sshbuf_put(fuzzed, fuzz_ptr(fuzz), fuzz_len(fuzz)); | 261 | r = sshbuf_put(fuzzed, fuzz_ptr(fuzz), fuzz_len(fuzz)); |
241 | ASSERT_INT_EQ(r, 0); | 262 | ASSERT_INT_EQ(r, 0); |
242 | if (sshkey_parse_private_fileblob(fuzzed, "", &k1, NULL) == 0) | 263 | if (sshkey_parse_private_fileblob(fuzzed, "", &k1, NULL) == 0) |
243 | sshkey_free(k1); | 264 | sshkey_free(k1); |
244 | sshbuf_reset(fuzzed); | 265 | sshbuf_reset(fuzzed); |
266 | if (test_is_fast() && i >= NUM_FAST_BASE64_TESTS) | ||
267 | break; | ||
245 | } | 268 | } |
246 | sshbuf_free(fuzzed); | 269 | sshbuf_free(fuzzed); |
247 | fuzz_cleanup(fuzz); | 270 | fuzz_cleanup(fuzz); |
diff --git a/regress/unittests/sshkey/tests.c b/regress/unittests/sshkey/tests.c index 13f265cdb..78aa9223d 100644 --- a/regress/unittests/sshkey/tests.c +++ b/regress/unittests/sshkey/tests.c | |||
@@ -7,8 +7,6 @@ | |||
7 | 7 | ||
8 | #include "includes.h" | 8 | #include "includes.h" |
9 | 9 | ||
10 | #include <openssl/evp.h> | ||
11 | |||
12 | #include "../test_helper/test_helper.h" | 10 | #include "../test_helper/test_helper.h" |
13 | 11 | ||
14 | void sshkey_tests(void); | 12 | void sshkey_tests(void); |
@@ -18,9 +16,6 @@ void sshkey_fuzz_tests(void); | |||
18 | void | 16 | void |
19 | tests(void) | 17 | tests(void) |
20 | { | 18 | { |
21 | OpenSSL_add_all_algorithms(); | ||
22 | ERR_load_CRYPTO_strings(); | ||
23 | |||
24 | sshkey_tests(); | 19 | sshkey_tests(); |
25 | sshkey_file_tests(); | 20 | sshkey_file_tests(); |
26 | sshkey_fuzz_tests(); | 21 | sshkey_fuzz_tests(); |
diff --git a/regress/unittests/test_helper/test_helper.c b/regress/unittests/test_helper/test_helper.c index 4cc70852c..e7a47b265 100644 --- a/regress/unittests/test_helper/test_helper.c +++ b/regress/unittests/test_helper/test_helper.c | |||
@@ -1,4 +1,4 @@ | |||
1 | /* $OpenBSD: test_helper.c,v 1.8 2018/02/08 08:46:20 djm Exp $ */ | 1 | /* $OpenBSD: test_helper.c,v 1.11 2018/11/23 02:53:57 dtucker Exp $ */ |
2 | /* | 2 | /* |
3 | * Copyright (c) 2011 Damien Miller <djm@mindrot.org> | 3 | * Copyright (c) 2011 Damien Miller <djm@mindrot.org> |
4 | * | 4 | * |
@@ -35,11 +35,13 @@ | |||
35 | #include <signal.h> | 35 | #include <signal.h> |
36 | 36 | ||
37 | #include <openssl/bn.h> | 37 | #include <openssl/bn.h> |
38 | #include <openssl/err.h> | ||
38 | 39 | ||
39 | #if defined(HAVE_STRNVIS) && defined(HAVE_VIS_H) && !defined(BROKEN_STRNVIS) | 40 | #if defined(HAVE_STRNVIS) && defined(HAVE_VIS_H) && !defined(BROKEN_STRNVIS) |
40 | # include <vis.h> | 41 | # include <vis.h> |
41 | #endif | 42 | #endif |
42 | 43 | ||
44 | #include "entropy.h" | ||
43 | #include "test_helper.h" | 45 | #include "test_helper.h" |
44 | #include "atomicio.h" | 46 | #include "atomicio.h" |
45 | 47 | ||
@@ -115,12 +117,17 @@ static test_onerror_func_t *test_onerror = NULL; | |||
115 | static void *onerror_ctx = NULL; | 117 | static void *onerror_ctx = NULL; |
116 | static const char *data_dir = NULL; | 118 | static const char *data_dir = NULL; |
117 | static char subtest_info[512]; | 119 | static char subtest_info[512]; |
120 | static int fast = 0; | ||
121 | static int slow = 0; | ||
118 | 122 | ||
119 | int | 123 | int |
120 | main(int argc, char **argv) | 124 | main(int argc, char **argv) |
121 | { | 125 | { |
122 | int ch; | 126 | int ch; |
123 | 127 | ||
128 | seed_rng(); | ||
129 | ERR_load_CRYPTO_strings(); | ||
130 | |||
124 | /* Handle systems without __progname */ | 131 | /* Handle systems without __progname */ |
125 | if (__progname == NULL) { | 132 | if (__progname == NULL) { |
126 | __progname = strrchr(argv[0], '/'); | 133 | __progname = strrchr(argv[0], '/'); |
@@ -134,8 +141,14 @@ main(int argc, char **argv) | |||
134 | } | 141 | } |
135 | } | 142 | } |
136 | 143 | ||
137 | while ((ch = getopt(argc, argv, "vqd:")) != -1) { | 144 | while ((ch = getopt(argc, argv, "Ffvqd:")) != -1) { |
138 | switch (ch) { | 145 | switch (ch) { |
146 | case 'F': | ||
147 | slow = 1; | ||
148 | break; | ||
149 | case 'f': | ||
150 | fast = 1; | ||
151 | break; | ||
139 | case 'd': | 152 | case 'd': |
140 | data_dir = optarg; | 153 | data_dir = optarg; |
141 | break; | 154 | break; |
@@ -167,17 +180,29 @@ main(int argc, char **argv) | |||
167 | } | 180 | } |
168 | 181 | ||
169 | int | 182 | int |
170 | test_is_verbose() | 183 | test_is_verbose(void) |
171 | { | 184 | { |
172 | return verbose_mode; | 185 | return verbose_mode; |
173 | } | 186 | } |
174 | 187 | ||
175 | int | 188 | int |
176 | test_is_quiet() | 189 | test_is_quiet(void) |
177 | { | 190 | { |
178 | return quiet_mode; | 191 | return quiet_mode; |
179 | } | 192 | } |
180 | 193 | ||
194 | int | ||
195 | test_is_fast(void) | ||
196 | { | ||
197 | return fast; | ||
198 | } | ||
199 | |||
200 | int | ||
201 | test_is_slow(void) | ||
202 | { | ||
203 | return slow; | ||
204 | } | ||
205 | |||
181 | const char * | 206 | const char * |
182 | test_data_file(const char *name) | 207 | test_data_file(const char *name) |
183 | { | 208 | { |
diff --git a/regress/unittests/test_helper/test_helper.h b/regress/unittests/test_helper/test_helper.h index 6da0066e9..1f893c8dd 100644 --- a/regress/unittests/test_helper/test_helper.h +++ b/regress/unittests/test_helper/test_helper.h | |||
@@ -1,4 +1,4 @@ | |||
1 | /* $OpenBSD: test_helper.h,v 1.8 2018/02/08 08:46:20 djm Exp $ */ | 1 | /* $OpenBSD: test_helper.h,v 1.9 2018/10/17 23:28:05 djm Exp $ */ |
2 | /* | 2 | /* |
3 | * Copyright (c) 2011 Damien Miller <djm@mindrot.org> | 3 | * Copyright (c) 2011 Damien Miller <djm@mindrot.org> |
4 | * | 4 | * |
@@ -45,6 +45,8 @@ void set_onerror_func(test_onerror_func_t *f, void *ctx); | |||
45 | void test_done(void); | 45 | void test_done(void); |
46 | int test_is_verbose(void); | 46 | int test_is_verbose(void); |
47 | int test_is_quiet(void); | 47 | int test_is_quiet(void); |
48 | int test_is_fast(void); | ||
49 | int test_is_slow(void); | ||
48 | void test_subtest_info(const char *fmt, ...) | 50 | void test_subtest_info(const char *fmt, ...) |
49 | __attribute__((format(printf, 1, 2))); | 51 | __attribute__((format(printf, 1, 2))); |
50 | void ssl_err_check(const char *file, int line); | 52 | void ssl_err_check(const char *file, int line); |
@@ -4,8 +4,9 @@ NAME | |||
4 | scp M-bM-^@M-^S secure copy (remote file copy program) | 4 | scp M-bM-^@M-^S secure copy (remote file copy program) |
5 | 5 | ||
6 | SYNOPSIS | 6 | SYNOPSIS |
7 | scp [-346BCpqrv] [-c cipher] [-F ssh_config] [-i identity_file] | 7 | scp [-346BCpqrTv] [-c cipher] [-F ssh_config] [-i identity_file] |
8 | [-l limit] [-o ssh_option] [-P port] [-S program] source ... target | 8 | [-J destination] [-l limit] [-o ssh_option] [-P port] [-S program] |
9 | source ... target | ||
9 | 10 | ||
10 | DESCRIPTION | 11 | DESCRIPTION |
11 | scp copies files between hosts on a network. It uses ssh(1) for data | 12 | scp copies files between hosts on a network. It uses ssh(1) for data |
@@ -52,6 +53,14 @@ DESCRIPTION | |||
52 | key authentication is read. This option is directly passed to | 53 | key authentication is read. This option is directly passed to |
53 | ssh(1). | 54 | ssh(1). |
54 | 55 | ||
56 | -J destination | ||
57 | Connect to the target host by first making an scp connection to | ||
58 | the jump host described by destination and then establishing a | ||
59 | TCP forwarding to the ultimate destination from there. Multiple | ||
60 | jump hops may be specified separated by comma characters. This | ||
61 | is a shortcut to specify a ProxyJump configuration directive. | ||
62 | This option is directly passed to ssh(1). | ||
63 | |||
55 | -l limit | 64 | -l limit |
56 | Limits the used bandwidth, specified in Kbit/s. | 65 | Limits the used bandwidth, specified in Kbit/s. |
57 | 66 | ||
@@ -141,6 +150,16 @@ DESCRIPTION | |||
141 | Name of program to use for the encrypted connection. The program | 150 | Name of program to use for the encrypted connection. The program |
142 | must understand ssh(1) options. | 151 | must understand ssh(1) options. |
143 | 152 | ||
153 | -T Disable strict filename checking. By default when copying files | ||
154 | from a remote host to a local directory scp checks that the | ||
155 | received filenames match those requested on the command-line to | ||
156 | prevent the remote end from sending unexpected or unwanted files. | ||
157 | Because of differences in how various operating systems and | ||
158 | shells interpret filename wildcards, these checks may cause | ||
159 | wanted files to be rejected. This option disables these checks | ||
160 | at the expense of fully trusting that the server will not send | ||
161 | unexpected filenames. | ||
162 | |||
144 | -v Verbose mode. Causes scp and ssh(1) to print debugging messages | 163 | -v Verbose mode. Causes scp and ssh(1) to print debugging messages |
145 | about their progress. This is helpful in debugging connection, | 164 | about their progress. This is helpful in debugging connection, |
146 | authentication, and configuration problems. | 165 | authentication, and configuration problems. |
@@ -160,4 +179,4 @@ AUTHORS | |||
160 | Timo Rinne <tri@iki.fi> | 179 | Timo Rinne <tri@iki.fi> |
161 | Tatu Ylonen <ylo@cs.hut.fi> | 180 | Tatu Ylonen <ylo@cs.hut.fi> |
162 | 181 | ||
163 | OpenBSD 6.4 September 20, 2018 OpenBSD 6.4 | 182 | OpenBSD 6.5 January 26, 2019 OpenBSD 6.5 |
@@ -8,9 +8,9 @@ | |||
8 | .\" | 8 | .\" |
9 | .\" Created: Sun May 7 00:14:37 1995 ylo | 9 | .\" Created: Sun May 7 00:14:37 1995 ylo |
10 | .\" | 10 | .\" |
11 | .\" $OpenBSD: scp.1,v 1.81 2018/09/20 06:58:48 jmc Exp $ | 11 | .\" $OpenBSD: scp.1,v 1.85 2019/01/26 22:41:28 djm Exp $ |
12 | .\" | 12 | .\" |
13 | .Dd $Mdocdate: September 20 2018 $ | 13 | .Dd $Mdocdate: January 26 2019 $ |
14 | .Dt SCP 1 | 14 | .Dt SCP 1 |
15 | .Os | 15 | .Os |
16 | .Sh NAME | 16 | .Sh NAME |
@@ -18,10 +18,11 @@ | |||
18 | .Nd secure copy (remote file copy program) | 18 | .Nd secure copy (remote file copy program) |
19 | .Sh SYNOPSIS | 19 | .Sh SYNOPSIS |
20 | .Nm scp | 20 | .Nm scp |
21 | .Op Fl 346BCpqrv | 21 | .Op Fl 346BCpqrTv |
22 | .Op Fl c Ar cipher | 22 | .Op Fl c Ar cipher |
23 | .Op Fl F Ar ssh_config | 23 | .Op Fl F Ar ssh_config |
24 | .Op Fl i Ar identity_file | 24 | .Op Fl i Ar identity_file |
25 | .Op Fl J Ar destination | ||
25 | .Op Fl l Ar limit | 26 | .Op Fl l Ar limit |
26 | .Op Fl o Ar ssh_option | 27 | .Op Fl o Ar ssh_option |
27 | .Op Fl P Ar port | 28 | .Op Fl P Ar port |
@@ -106,6 +107,19 @@ Selects the file from which the identity (private key) for public key | |||
106 | authentication is read. | 107 | authentication is read. |
107 | This option is directly passed to | 108 | This option is directly passed to |
108 | .Xr ssh 1 . | 109 | .Xr ssh 1 . |
110 | .It Fl J Ar destination | ||
111 | Connect to the target host by first making an | ||
112 | .Nm | ||
113 | connection to the jump host described by | ||
114 | .Ar destination | ||
115 | and then establishing a TCP forwarding to the ultimate destination from | ||
116 | there. | ||
117 | Multiple jump hops may be specified separated by comma characters. | ||
118 | This is a shortcut to specify a | ||
119 | .Cm ProxyJump | ||
120 | configuration directive. | ||
121 | This option is directly passed to | ||
122 | .Xr ssh 1 . | ||
109 | .It Fl l Ar limit | 123 | .It Fl l Ar limit |
110 | Limits the used bandwidth, specified in Kbit/s. | 124 | Limits the used bandwidth, specified in Kbit/s. |
111 | .It Fl o Ar ssh_option | 125 | .It Fl o Ar ssh_option |
@@ -208,6 +222,16 @@ to use for the encrypted connection. | |||
208 | The program must understand | 222 | The program must understand |
209 | .Xr ssh 1 | 223 | .Xr ssh 1 |
210 | options. | 224 | options. |
225 | .It Fl T | ||
226 | Disable strict filename checking. | ||
227 | By default when copying files from a remote host to a local directory | ||
228 | .Nm | ||
229 | checks that the received filenames match those requested on the command-line | ||
230 | to prevent the remote end from sending unexpected or unwanted files. | ||
231 | Because of differences in how various operating systems and shells interpret | ||
232 | filename wildcards, these checks may cause wanted files to be rejected. | ||
233 | This option disables these checks at the expense of fully trusting that | ||
234 | the server will not send unexpected filenames. | ||
211 | .It Fl v | 235 | .It Fl v |
212 | Verbose mode. | 236 | Verbose mode. |
213 | Causes | 237 | Causes |
@@ -1,4 +1,4 @@ | |||
1 | /* $OpenBSD: scp.c,v 1.197 2018/06/01 04:31:48 dtucker Exp $ */ | 1 | /* $OpenBSD: scp.c,v 1.204 2019/02/10 11:15:52 djm Exp $ */ |
2 | /* | 2 | /* |
3 | * scp - secure remote copy. This is basically patched BSD rcp which | 3 | * scp - secure remote copy. This is basically patched BSD rcp which |
4 | * uses ssh to do the data transfer (instead of using rcmd). | 4 | * uses ssh to do the data transfer (instead of using rcmd). |
@@ -94,6 +94,7 @@ | |||
94 | #include <dirent.h> | 94 | #include <dirent.h> |
95 | #include <errno.h> | 95 | #include <errno.h> |
96 | #include <fcntl.h> | 96 | #include <fcntl.h> |
97 | #include <fnmatch.h> | ||
97 | #include <limits.h> | 98 | #include <limits.h> |
98 | #include <locale.h> | 99 | #include <locale.h> |
99 | #include <pwd.h> | 100 | #include <pwd.h> |
@@ -375,14 +376,14 @@ void verifydir(char *); | |||
375 | struct passwd *pwd; | 376 | struct passwd *pwd; |
376 | uid_t userid; | 377 | uid_t userid; |
377 | int errs, remin, remout; | 378 | int errs, remin, remout; |
378 | int pflag, iamremote, iamrecursive, targetshouldbedirectory; | 379 | int Tflag, pflag, iamremote, iamrecursive, targetshouldbedirectory; |
379 | 380 | ||
380 | #define CMDNEEDS 64 | 381 | #define CMDNEEDS 64 |
381 | char cmd[CMDNEEDS]; /* must hold "rcp -r -p -d\0" */ | 382 | char cmd[CMDNEEDS]; /* must hold "rcp -r -p -d\0" */ |
382 | 383 | ||
383 | int response(void); | 384 | int response(void); |
384 | void rsource(char *, struct stat *); | 385 | void rsource(char *, struct stat *); |
385 | void sink(int, char *[]); | 386 | void sink(int, char *[], const char *); |
386 | void source(int, char *[]); | 387 | void source(int, char *[]); |
387 | void tolocal(int, char *[]); | 388 | void tolocal(int, char *[]); |
388 | void toremote(int, char *[]); | 389 | void toremote(int, char *[]); |
@@ -400,6 +401,8 @@ main(int argc, char **argv) | |||
400 | /* Ensure that fds 0, 1 and 2 are open or directed to /dev/null */ | 401 | /* Ensure that fds 0, 1 and 2 are open or directed to /dev/null */ |
401 | sanitise_stdfd(); | 402 | sanitise_stdfd(); |
402 | 403 | ||
404 | seed_rng(); | ||
405 | |||
403 | msetlocale(); | 406 | msetlocale(); |
404 | 407 | ||
405 | /* Copy argv, because we modify it */ | 408 | /* Copy argv, because we modify it */ |
@@ -421,8 +424,9 @@ main(int argc, char **argv) | |||
421 | addargs(&args, "-oRemoteCommand=none"); | 424 | addargs(&args, "-oRemoteCommand=none"); |
422 | addargs(&args, "-oRequestTTY=no"); | 425 | addargs(&args, "-oRequestTTY=no"); |
423 | 426 | ||
424 | fflag = tflag = 0; | 427 | fflag = Tflag = tflag = 0; |
425 | while ((ch = getopt(argc, argv, "dfl:prtvBCc:i:P:q12346S:o:F:")) != -1) | 428 | while ((ch = getopt(argc, argv, |
429 | "dfl:prtTvBCc:i:P:q12346S:o:F:J:")) != -1) { | ||
426 | switch (ch) { | 430 | switch (ch) { |
427 | /* User-visible flags. */ | 431 | /* User-visible flags. */ |
428 | case '1': | 432 | case '1': |
@@ -444,6 +448,7 @@ main(int argc, char **argv) | |||
444 | case 'c': | 448 | case 'c': |
445 | case 'i': | 449 | case 'i': |
446 | case 'F': | 450 | case 'F': |
451 | case 'J': | ||
447 | addargs(&remote_remote_args, "-%c", ch); | 452 | addargs(&remote_remote_args, "-%c", ch); |
448 | addargs(&remote_remote_args, "%s", optarg); | 453 | addargs(&remote_remote_args, "%s", optarg); |
449 | addargs(&args, "-%c", ch); | 454 | addargs(&args, "-%c", ch); |
@@ -501,9 +506,13 @@ main(int argc, char **argv) | |||
501 | setmode(0, O_BINARY); | 506 | setmode(0, O_BINARY); |
502 | #endif | 507 | #endif |
503 | break; | 508 | break; |
509 | case 'T': | ||
510 | Tflag = 1; | ||
511 | break; | ||
504 | default: | 512 | default: |
505 | usage(); | 513 | usage(); |
506 | } | 514 | } |
515 | } | ||
507 | argc -= optind; | 516 | argc -= optind; |
508 | argv += optind; | 517 | argv += optind; |
509 | 518 | ||
@@ -534,7 +543,7 @@ main(int argc, char **argv) | |||
534 | } | 543 | } |
535 | if (tflag) { | 544 | if (tflag) { |
536 | /* Receive data. */ | 545 | /* Receive data. */ |
537 | sink(argc, argv); | 546 | sink(argc, argv, NULL); |
538 | exit(errs != 0); | 547 | exit(errs != 0); |
539 | } | 548 | } |
540 | if (argc < 2) | 549 | if (argc < 2) |
@@ -585,6 +594,7 @@ scpio(void *_cnt, size_t s) | |||
585 | off_t *cnt = (off_t *)_cnt; | 594 | off_t *cnt = (off_t *)_cnt; |
586 | 595 | ||
587 | *cnt += s; | 596 | *cnt += s; |
597 | refresh_progress_meter(0); | ||
588 | if (limit_kbps > 0) | 598 | if (limit_kbps > 0) |
589 | bandwidth_limit(&bwlimit, s); | 599 | bandwidth_limit(&bwlimit, s); |
590 | return 0; | 600 | return 0; |
@@ -620,6 +630,253 @@ parse_scp_uri(const char *uri, char **userp, char **hostp, int *portp, | |||
620 | return r; | 630 | return r; |
621 | } | 631 | } |
622 | 632 | ||
633 | /* Appends a string to an array; returns 0 on success, -1 on alloc failure */ | ||
634 | static int | ||
635 | append(char *cp, char ***ap, size_t *np) | ||
636 | { | ||
637 | char **tmp; | ||
638 | |||
639 | if ((tmp = reallocarray(*ap, *np + 1, sizeof(*tmp))) == NULL) | ||
640 | return -1; | ||
641 | tmp[(*np)] = cp; | ||
642 | (*np)++; | ||
643 | *ap = tmp; | ||
644 | return 0; | ||
645 | } | ||
646 | |||
647 | /* | ||
648 | * Finds the start and end of the first brace pair in the pattern. | ||
649 | * returns 0 on success or -1 for invalid patterns. | ||
650 | */ | ||
651 | static int | ||
652 | find_brace(const char *pattern, int *startp, int *endp) | ||
653 | { | ||
654 | int i; | ||
655 | int in_bracket, brace_level; | ||
656 | |||
657 | *startp = *endp = -1; | ||
658 | in_bracket = brace_level = 0; | ||
659 | for (i = 0; i < INT_MAX && *endp < 0 && pattern[i] != '\0'; i++) { | ||
660 | switch (pattern[i]) { | ||
661 | case '\\': | ||
662 | /* skip next character */ | ||
663 | if (pattern[i + 1] != '\0') | ||
664 | i++; | ||
665 | break; | ||
666 | case '[': | ||
667 | in_bracket = 1; | ||
668 | break; | ||
669 | case ']': | ||
670 | in_bracket = 0; | ||
671 | break; | ||
672 | case '{': | ||
673 | if (in_bracket) | ||
674 | break; | ||
675 | if (pattern[i + 1] == '}') { | ||
676 | /* Protect a single {}, for find(1), like csh */ | ||
677 | i++; /* skip */ | ||
678 | break; | ||
679 | } | ||
680 | if (*startp == -1) | ||
681 | *startp = i; | ||
682 | brace_level++; | ||
683 | break; | ||
684 | case '}': | ||
685 | if (in_bracket) | ||
686 | break; | ||
687 | if (*startp < 0) { | ||
688 | /* Unbalanced brace */ | ||
689 | return -1; | ||
690 | } | ||
691 | if (--brace_level <= 0) | ||
692 | *endp = i; | ||
693 | break; | ||
694 | } | ||
695 | } | ||
696 | /* unbalanced brackets/braces */ | ||
697 | if (*endp < 0 && (*startp >= 0 || in_bracket)) | ||
698 | return -1; | ||
699 | return 0; | ||
700 | } | ||
701 | |||
702 | /* | ||
703 | * Assembles and records a successfully-expanded pattern, returns -1 on | ||
704 | * alloc failure. | ||
705 | */ | ||
706 | static int | ||
707 | emit_expansion(const char *pattern, int brace_start, int brace_end, | ||
708 | int sel_start, int sel_end, char ***patternsp, size_t *npatternsp) | ||
709 | { | ||
710 | char *cp; | ||
711 | int o = 0, tail_len = strlen(pattern + brace_end + 1); | ||
712 | |||
713 | if ((cp = malloc(brace_start + (sel_end - sel_start) + | ||
714 | tail_len + 1)) == NULL) | ||
715 | return -1; | ||
716 | |||
717 | /* Pattern before initial brace */ | ||
718 | if (brace_start > 0) { | ||
719 | memcpy(cp, pattern, brace_start); | ||
720 | o = brace_start; | ||
721 | } | ||
722 | /* Current braced selection */ | ||
723 | if (sel_end - sel_start > 0) { | ||
724 | memcpy(cp + o, pattern + sel_start, | ||
725 | sel_end - sel_start); | ||
726 | o += sel_end - sel_start; | ||
727 | } | ||
728 | /* Remainder of pattern after closing brace */ | ||
729 | if (tail_len > 0) { | ||
730 | memcpy(cp + o, pattern + brace_end + 1, tail_len); | ||
731 | o += tail_len; | ||
732 | } | ||
733 | cp[o] = '\0'; | ||
734 | if (append(cp, patternsp, npatternsp) != 0) { | ||
735 | free(cp); | ||
736 | return -1; | ||
737 | } | ||
738 | return 0; | ||
739 | } | ||
740 | |||
741 | /* | ||
742 | * Expand the first encountered brace in pattern, appending the expanded | ||
743 | * patterns it yielded to the *patternsp array. | ||
744 | * | ||
745 | * Returns 0 on success or -1 on allocation failure. | ||
746 | * | ||
747 | * Signals whether expansion was performed via *expanded and whether | ||
748 | * pattern was invalid via *invalid. | ||
749 | */ | ||
750 | static int | ||
751 | brace_expand_one(const char *pattern, char ***patternsp, size_t *npatternsp, | ||
752 | int *expanded, int *invalid) | ||
753 | { | ||
754 | int i; | ||
755 | int in_bracket, brace_start, brace_end, brace_level; | ||
756 | int sel_start, sel_end; | ||
757 | |||
758 | *invalid = *expanded = 0; | ||
759 | |||
760 | if (find_brace(pattern, &brace_start, &brace_end) != 0) { | ||
761 | *invalid = 1; | ||
762 | return 0; | ||
763 | } else if (brace_start == -1) | ||
764 | return 0; | ||
765 | |||
766 | in_bracket = brace_level = 0; | ||
767 | for (i = sel_start = brace_start + 1; i < brace_end; i++) { | ||
768 | switch (pattern[i]) { | ||
769 | case '{': | ||
770 | if (in_bracket) | ||
771 | break; | ||
772 | brace_level++; | ||
773 | break; | ||
774 | case '}': | ||
775 | if (in_bracket) | ||
776 | break; | ||
777 | brace_level--; | ||
778 | break; | ||
779 | case '[': | ||
780 | in_bracket = 1; | ||
781 | break; | ||
782 | case ']': | ||
783 | in_bracket = 0; | ||
784 | break; | ||
785 | case '\\': | ||
786 | if (i < brace_end - 1) | ||
787 | i++; /* skip */ | ||
788 | break; | ||
789 | } | ||
790 | if (pattern[i] == ',' || i == brace_end - 1) { | ||
791 | if (in_bracket || brace_level > 0) | ||
792 | continue; | ||
793 | /* End of a selection, emit an expanded pattern */ | ||
794 | |||
795 | /* Adjust end index for last selection */ | ||
796 | sel_end = (i == brace_end - 1) ? brace_end : i; | ||
797 | if (emit_expansion(pattern, brace_start, brace_end, | ||
798 | sel_start, sel_end, patternsp, npatternsp) != 0) | ||
799 | return -1; | ||
800 | /* move on to the next selection */ | ||
801 | sel_start = i + 1; | ||
802 | continue; | ||
803 | } | ||
804 | } | ||
805 | if (in_bracket || brace_level > 0) { | ||
806 | *invalid = 1; | ||
807 | return 0; | ||
808 | } | ||
809 | /* success */ | ||
810 | *expanded = 1; | ||
811 | return 0; | ||
812 | } | ||
813 | |||
814 | /* Expand braces from pattern. Returns 0 on success, -1 on failure */ | ||
815 | static int | ||
816 | brace_expand(const char *pattern, char ***patternsp, size_t *npatternsp) | ||
817 | { | ||
818 | char *cp, *cp2, **active = NULL, **done = NULL; | ||
819 | size_t i, nactive = 0, ndone = 0; | ||
820 | int ret = -1, invalid = 0, expanded = 0; | ||
821 | |||
822 | *patternsp = NULL; | ||
823 | *npatternsp = 0; | ||
824 | |||
825 | /* Start the worklist with the original pattern */ | ||
826 | if ((cp = strdup(pattern)) == NULL) | ||
827 | return -1; | ||
828 | if (append(cp, &active, &nactive) != 0) { | ||
829 | free(cp); | ||
830 | return -1; | ||
831 | } | ||
832 | while (nactive > 0) { | ||
833 | cp = active[nactive - 1]; | ||
834 | nactive--; | ||
835 | if (brace_expand_one(cp, &active, &nactive, | ||
836 | &expanded, &invalid) == -1) { | ||
837 | free(cp); | ||
838 | goto fail; | ||
839 | } | ||
840 | if (invalid) | ||
841 | fatal("%s: invalid brace pattern \"%s\"", __func__, cp); | ||
842 | if (expanded) { | ||
843 | /* | ||
844 | * Current entry expanded to new entries on the | ||
845 | * active list; discard the progenitor pattern. | ||
846 | */ | ||
847 | free(cp); | ||
848 | continue; | ||
849 | } | ||
850 | /* | ||
851 | * Pattern did not expand; append the finename component to | ||
852 | * the completed list | ||
853 | */ | ||
854 | if ((cp2 = strrchr(cp, '/')) != NULL) | ||
855 | *cp2++ = '\0'; | ||
856 | else | ||
857 | cp2 = cp; | ||
858 | if (append(xstrdup(cp2), &done, &ndone) != 0) { | ||
859 | free(cp); | ||
860 | goto fail; | ||
861 | } | ||
862 | free(cp); | ||
863 | } | ||
864 | /* success */ | ||
865 | *patternsp = done; | ||
866 | *npatternsp = ndone; | ||
867 | done = NULL; | ||
868 | ndone = 0; | ||
869 | ret = 0; | ||
870 | fail: | ||
871 | for (i = 0; i < nactive; i++) | ||
872 | free(active[i]); | ||
873 | free(active); | ||
874 | for (i = 0; i < ndone; i++) | ||
875 | free(done[i]); | ||
876 | free(done); | ||
877 | return ret; | ||
878 | } | ||
879 | |||
623 | void | 880 | void |
624 | toremote(int argc, char **argv) | 881 | toremote(int argc, char **argv) |
625 | { | 882 | { |
@@ -791,7 +1048,7 @@ tolocal(int argc, char **argv) | |||
791 | continue; | 1048 | continue; |
792 | } | 1049 | } |
793 | free(bp); | 1050 | free(bp); |
794 | sink(1, argv + argc - 1); | 1051 | sink(1, argv + argc - 1, src); |
795 | (void) close(remin); | 1052 | (void) close(remin); |
796 | remin = remout = -1; | 1053 | remin = remout = -1; |
797 | } | 1054 | } |
@@ -967,7 +1224,7 @@ rsource(char *name, struct stat *statp) | |||
967 | (sizeof(type) != 4 && sizeof(type) != 8)) | 1224 | (sizeof(type) != 4 && sizeof(type) != 8)) |
968 | 1225 | ||
969 | void | 1226 | void |
970 | sink(int argc, char **argv) | 1227 | sink(int argc, char **argv, const char *src) |
971 | { | 1228 | { |
972 | static BUF buffer; | 1229 | static BUF buffer; |
973 | struct stat stb; | 1230 | struct stat stb; |
@@ -983,6 +1240,8 @@ sink(int argc, char **argv) | |||
983 | unsigned long long ull; | 1240 | unsigned long long ull; |
984 | int setimes, targisdir, wrerrno = 0; | 1241 | int setimes, targisdir, wrerrno = 0; |
985 | char ch, *cp, *np, *targ, *why, *vect[1], buf[2048], visbuf[2048]; | 1242 | char ch, *cp, *np, *targ, *why, *vect[1], buf[2048], visbuf[2048]; |
1243 | char **patterns = NULL; | ||
1244 | size_t n, npatterns = 0; | ||
986 | struct timeval tv[2]; | 1245 | struct timeval tv[2]; |
987 | 1246 | ||
988 | #define atime tv[0] | 1247 | #define atime tv[0] |
@@ -1007,10 +1266,18 @@ sink(int argc, char **argv) | |||
1007 | (void) atomicio(vwrite, remout, "", 1); | 1266 | (void) atomicio(vwrite, remout, "", 1); |
1008 | if (stat(targ, &stb) == 0 && S_ISDIR(stb.st_mode)) | 1267 | if (stat(targ, &stb) == 0 && S_ISDIR(stb.st_mode)) |
1009 | targisdir = 1; | 1268 | targisdir = 1; |
1269 | if (src != NULL && !iamrecursive && !Tflag) { | ||
1270 | /* | ||
1271 | * Prepare to try to restrict incoming filenames to match | ||
1272 | * the requested destination file glob. | ||
1273 | */ | ||
1274 | if (brace_expand(src, &patterns, &npatterns) != 0) | ||
1275 | fatal("%s: could not expand pattern", __func__); | ||
1276 | } | ||
1010 | for (first = 1;; first = 0) { | 1277 | for (first = 1;; first = 0) { |
1011 | cp = buf; | 1278 | cp = buf; |
1012 | if (atomicio(read, remin, cp, 1) != 1) | 1279 | if (atomicio(read, remin, cp, 1) != 1) |
1013 | return; | 1280 | goto done; |
1014 | if (*cp++ == '\n') | 1281 | if (*cp++ == '\n') |
1015 | SCREWUP("unexpected <newline>"); | 1282 | SCREWUP("unexpected <newline>"); |
1016 | do { | 1283 | do { |
@@ -1036,7 +1303,7 @@ sink(int argc, char **argv) | |||
1036 | } | 1303 | } |
1037 | if (buf[0] == 'E') { | 1304 | if (buf[0] == 'E') { |
1038 | (void) atomicio(vwrite, remout, "", 1); | 1305 | (void) atomicio(vwrite, remout, "", 1); |
1039 | return; | 1306 | goto done; |
1040 | } | 1307 | } |
1041 | if (ch == '\n') | 1308 | if (ch == '\n') |
1042 | *--cp = 0; | 1309 | *--cp = 0; |
@@ -1106,10 +1373,19 @@ sink(int argc, char **argv) | |||
1106 | SCREWUP("size out of range"); | 1373 | SCREWUP("size out of range"); |
1107 | size = (off_t)ull; | 1374 | size = (off_t)ull; |
1108 | 1375 | ||
1109 | if ((strchr(cp, '/') != NULL) || (strcmp(cp, "..") == 0)) { | 1376 | if (*cp == '\0' || strchr(cp, '/') != NULL || |
1377 | strcmp(cp, ".") == 0 || strcmp(cp, "..") == 0) { | ||
1110 | run_err("error: unexpected filename: %s", cp); | 1378 | run_err("error: unexpected filename: %s", cp); |
1111 | exit(1); | 1379 | exit(1); |
1112 | } | 1380 | } |
1381 | if (npatterns > 0) { | ||
1382 | for (n = 0; n < npatterns; n++) { | ||
1383 | if (fnmatch(patterns[n], cp, 0) == 0) | ||
1384 | break; | ||
1385 | } | ||
1386 | if (n >= npatterns) | ||
1387 | SCREWUP("filename does not match request"); | ||
1388 | } | ||
1113 | if (targisdir) { | 1389 | if (targisdir) { |
1114 | static char *namebuf; | 1390 | static char *namebuf; |
1115 | static size_t cursize; | 1391 | static size_t cursize; |
@@ -1147,7 +1423,7 @@ sink(int argc, char **argv) | |||
1147 | goto bad; | 1423 | goto bad; |
1148 | } | 1424 | } |
1149 | vect[0] = xstrdup(np); | 1425 | vect[0] = xstrdup(np); |
1150 | sink(1, vect); | 1426 | sink(1, vect, src); |
1151 | if (setimes) { | 1427 | if (setimes) { |
1152 | setimes = 0; | 1428 | setimes = 0; |
1153 | if (utimes(vect[0], tv) < 0) | 1429 | if (utimes(vect[0], tv) < 0) |
@@ -1268,7 +1544,15 @@ bad: run_err("%s: %s", np, strerror(errno)); | |||
1268 | break; | 1544 | break; |
1269 | } | 1545 | } |
1270 | } | 1546 | } |
1547 | done: | ||
1548 | for (n = 0; n < npatterns; n++) | ||
1549 | free(patterns[n]); | ||
1550 | free(patterns); | ||
1551 | return; | ||
1271 | screwup: | 1552 | screwup: |
1553 | for (n = 0; n < npatterns; n++) | ||
1554 | free(patterns[n]); | ||
1555 | free(patterns); | ||
1272 | run_err("protocol error: %s", why); | 1556 | run_err("protocol error: %s", why); |
1273 | exit(1); | 1557 | exit(1); |
1274 | } | 1558 | } |
@@ -1315,8 +1599,9 @@ void | |||
1315 | usage(void) | 1599 | usage(void) |
1316 | { | 1600 | { |
1317 | (void) fprintf(stderr, | 1601 | (void) fprintf(stderr, |
1318 | "usage: scp [-346BCpqrv] [-c cipher] [-F ssh_config] [-i identity_file]\n" | 1602 | "usage: scp [-346BCpqrTv] [-c cipher] [-F ssh_config] [-i identity_file]\n" |
1319 | " [-l limit] [-o ssh_option] [-P port] [-S program] source ... target\n"); | 1603 | " [-J destination] [-l limit] [-o ssh_option] [-P port]\n" |
1604 | " [-S program] source ... target\n"); | ||
1320 | exit(1); | 1605 | exit(1); |
1321 | } | 1606 | } |
1322 | 1607 | ||
diff --git a/servconf.c b/servconf.c index 932d363bb..ffac5d2c7 100644 --- a/servconf.c +++ b/servconf.c | |||
@@ -1,5 +1,5 @@ | |||
1 | 1 | ||
2 | /* $OpenBSD: servconf.c,v 1.342 2018/09/20 23:40:16 djm Exp $ */ | 2 | /* $OpenBSD: servconf.c,v 1.350 2019/03/25 22:33:44 djm Exp $ */ |
3 | /* | 3 | /* |
4 | * Copyright (c) 1995 Tatu Ylonen <ylo@cs.hut.fi>, Espoo, Finland | 4 | * Copyright (c) 1995 Tatu Ylonen <ylo@cs.hut.fi>, Espoo, Finland |
5 | * All rights reserved | 5 | * All rights reserved |
@@ -221,26 +221,40 @@ assemble_algorithms(ServerOptions *o) | |||
221 | } | 221 | } |
222 | 222 | ||
223 | static void | 223 | static void |
224 | array_append(const char *file, const int line, const char *directive, | 224 | array_append2(const char *file, const int line, const char *directive, |
225 | char ***array, u_int *lp, const char *s) | 225 | char ***array, int **iarray, u_int *lp, const char *s, int i) |
226 | { | 226 | { |
227 | 227 | ||
228 | if (*lp >= INT_MAX) | 228 | if (*lp >= INT_MAX) |
229 | fatal("%s line %d: Too many %s entries", file, line, directive); | 229 | fatal("%s line %d: Too many %s entries", file, line, directive); |
230 | 230 | ||
231 | if (iarray != NULL) { | ||
232 | *iarray = xrecallocarray(*iarray, *lp, *lp + 1, | ||
233 | sizeof(**iarray)); | ||
234 | (*iarray)[*lp] = i; | ||
235 | } | ||
236 | |||
231 | *array = xrecallocarray(*array, *lp, *lp + 1, sizeof(**array)); | 237 | *array = xrecallocarray(*array, *lp, *lp + 1, sizeof(**array)); |
232 | (*array)[*lp] = xstrdup(s); | 238 | (*array)[*lp] = xstrdup(s); |
233 | (*lp)++; | 239 | (*lp)++; |
234 | } | 240 | } |
235 | 241 | ||
242 | static void | ||
243 | array_append(const char *file, const int line, const char *directive, | ||
244 | char ***array, u_int *lp, const char *s) | ||
245 | { | ||
246 | array_append2(file, line, directive, array, NULL, lp, s, 0); | ||
247 | } | ||
248 | |||
236 | void | 249 | void |
237 | servconf_add_hostkey(const char *file, const int line, | 250 | servconf_add_hostkey(const char *file, const int line, |
238 | ServerOptions *options, const char *path) | 251 | ServerOptions *options, const char *path, int userprovided) |
239 | { | 252 | { |
240 | char *apath = derelativise_path(path); | 253 | char *apath = derelativise_path(path); |
241 | 254 | ||
242 | array_append(file, line, "HostKey", | 255 | array_append2(file, line, "HostKey", |
243 | &options->host_key_files, &options->num_host_key_files, apath); | 256 | &options->host_key_files, &options->host_key_file_userprovided, |
257 | &options->num_host_key_files, apath, userprovided); | ||
244 | free(apath); | 258 | free(apath); |
245 | } | 259 | } |
246 | 260 | ||
@@ -268,16 +282,16 @@ fill_default_server_options(ServerOptions *options) | |||
268 | if (options->num_host_key_files == 0) { | 282 | if (options->num_host_key_files == 0) { |
269 | /* fill default hostkeys for protocols */ | 283 | /* fill default hostkeys for protocols */ |
270 | servconf_add_hostkey("[default]", 0, options, | 284 | servconf_add_hostkey("[default]", 0, options, |
271 | _PATH_HOST_RSA_KEY_FILE); | 285 | _PATH_HOST_RSA_KEY_FILE, 0); |
272 | #ifdef OPENSSL_HAS_ECC | 286 | #ifdef OPENSSL_HAS_ECC |
273 | servconf_add_hostkey("[default]", 0, options, | 287 | servconf_add_hostkey("[default]", 0, options, |
274 | _PATH_HOST_ECDSA_KEY_FILE); | 288 | _PATH_HOST_ECDSA_KEY_FILE, 0); |
275 | #endif | 289 | #endif |
276 | servconf_add_hostkey("[default]", 0, options, | 290 | servconf_add_hostkey("[default]", 0, options, |
277 | _PATH_HOST_ED25519_KEY_FILE); | 291 | _PATH_HOST_ED25519_KEY_FILE, 0); |
278 | #ifdef WITH_XMSS | 292 | #ifdef WITH_XMSS |
279 | servconf_add_hostkey("[default]", 0, options, | 293 | servconf_add_hostkey("[default]", 0, options, |
280 | _PATH_HOST_XMSS_KEY_FILE); | 294 | _PATH_HOST_XMSS_KEY_FILE, 0); |
281 | #endif /* WITH_XMSS */ | 295 | #endif /* WITH_XMSS */ |
282 | } | 296 | } |
283 | /* No certificates by default */ | 297 | /* No certificates by default */ |
@@ -456,7 +470,6 @@ fill_default_server_options(ServerOptions *options) | |||
456 | options->compression = 0; | 470 | options->compression = 0; |
457 | } | 471 | } |
458 | #endif | 472 | #endif |
459 | |||
460 | } | 473 | } |
461 | 474 | ||
462 | /* Keyword tokens. */ | 475 | /* Keyword tokens. */ |
@@ -702,7 +715,7 @@ derelativise_path(const char *path) | |||
702 | if (strcasecmp(path, "none") == 0) | 715 | if (strcasecmp(path, "none") == 0) |
703 | return xstrdup("none"); | 716 | return xstrdup("none"); |
704 | expanded = tilde_expand_filename(path, getuid()); | 717 | expanded = tilde_expand_filename(path, getuid()); |
705 | if (*expanded == '/') | 718 | if (path_absolute(expanded)) |
706 | return expanded; | 719 | return expanded; |
707 | if (getcwd(cwd, sizeof(cwd)) == NULL) | 720 | if (getcwd(cwd, sizeof(cwd)) == NULL) |
708 | fatal("%s: getcwd: %s", __func__, strerror(errno)); | 721 | fatal("%s: getcwd: %s", __func__, strerror(errno)); |
@@ -864,7 +877,7 @@ process_permitopen_list(struct ssh *ssh, ServerOpCodes opcode, | |||
864 | { | 877 | { |
865 | u_int i; | 878 | u_int i; |
866 | int port; | 879 | int port; |
867 | char *host, *arg, *oarg; | 880 | char *host, *arg, *oarg, ch; |
868 | int where = opcode == sPermitOpen ? FORWARD_LOCAL : FORWARD_REMOTE; | 881 | int where = opcode == sPermitOpen ? FORWARD_LOCAL : FORWARD_REMOTE; |
869 | const char *what = lookup_opcode_name(opcode); | 882 | const char *what = lookup_opcode_name(opcode); |
870 | 883 | ||
@@ -882,8 +895,9 @@ process_permitopen_list(struct ssh *ssh, ServerOpCodes opcode, | |||
882 | /* Otherwise treat it as a list of permitted host:port */ | 895 | /* Otherwise treat it as a list of permitted host:port */ |
883 | for (i = 0; i < num_opens; i++) { | 896 | for (i = 0; i < num_opens; i++) { |
884 | oarg = arg = xstrdup(opens[i]); | 897 | oarg = arg = xstrdup(opens[i]); |
885 | host = hpdelim(&arg); | 898 | ch = '\0'; |
886 | if (host == NULL) | 899 | host = hpdelim2(&arg, &ch); |
900 | if (host == NULL || ch == '/') | ||
887 | fatal("%s: missing host in %s", __func__, what); | 901 | fatal("%s: missing host in %s", __func__, what); |
888 | host = cleanhostname(host); | 902 | host = cleanhostname(host); |
889 | if (arg == NULL || ((port = permitopen_port(arg)) < 0)) | 903 | if (arg == NULL || ((port = permitopen_port(arg)) < 0)) |
@@ -909,12 +923,11 @@ process_permitopen(struct ssh *ssh, ServerOptions *options) | |||
909 | } | 923 | } |
910 | 924 | ||
911 | struct connection_info * | 925 | struct connection_info * |
912 | get_connection_info(int populate, int use_dns) | 926 | get_connection_info(struct ssh *ssh, int populate, int use_dns) |
913 | { | 927 | { |
914 | struct ssh *ssh = active_state; /* XXX */ | ||
915 | static struct connection_info ci; | 928 | static struct connection_info ci; |
916 | 929 | ||
917 | if (!populate) | 930 | if (ssh == NULL || !populate) |
918 | return &ci; | 931 | return &ci; |
919 | ci.host = auth_get_canonical_hostname(ssh, use_dns); | 932 | ci.host = auth_get_canonical_hostname(ssh, use_dns); |
920 | ci.address = ssh_remote_ipaddr(ssh); | 933 | ci.address = ssh_remote_ipaddr(ssh); |
@@ -1035,7 +1048,7 @@ match_cfg_line(char **condition, int line, struct connection_info *ci) | |||
1035 | } | 1048 | } |
1036 | if (ci->user == NULL) | 1049 | if (ci->user == NULL) |
1037 | match_test_missing_fatal("User", "user"); | 1050 | match_test_missing_fatal("User", "user"); |
1038 | if (match_pattern_list(ci->user, arg, 0) != 1) | 1051 | if (match_usergroup_pattern_list(ci->user, arg) != 1) |
1039 | result = 0; | 1052 | result = 0; |
1040 | else | 1053 | else |
1041 | debug("user %.100s matched 'User %.100s' at " | 1054 | debug("user %.100s matched 'User %.100s' at " |
@@ -1201,7 +1214,7 @@ process_server_config_line(ServerOptions *options, char *line, | |||
1201 | const char *filename, int linenum, int *activep, | 1214 | const char *filename, int linenum, int *activep, |
1202 | struct connection_info *connectinfo) | 1215 | struct connection_info *connectinfo) |
1203 | { | 1216 | { |
1204 | char *cp, ***chararrayptr, **charptr, *arg, *arg2, *p; | 1217 | char ch, *cp, ***chararrayptr, **charptr, *arg, *arg2, *p; |
1205 | int cmdline = 0, *intptr, value, value2, n, port; | 1218 | int cmdline = 0, *intptr, value, value2, n, port; |
1206 | SyslogFacility *log_facility_ptr; | 1219 | SyslogFacility *log_facility_ptr; |
1207 | LogLevel *log_level_ptr; | 1220 | LogLevel *log_level_ptr; |
@@ -1301,8 +1314,10 @@ process_server_config_line(ServerOptions *options, char *line, | |||
1301 | port = 0; | 1314 | port = 0; |
1302 | p = arg; | 1315 | p = arg; |
1303 | } else { | 1316 | } else { |
1304 | p = hpdelim(&arg); | 1317 | arg2 = NULL; |
1305 | if (p == NULL) | 1318 | ch = '\0'; |
1319 | p = hpdelim2(&arg, &ch); | ||
1320 | if (p == NULL || ch == '/') | ||
1306 | fatal("%s line %d: bad address:port usage", | 1321 | fatal("%s line %d: bad address:port usage", |
1307 | filename, linenum); | 1322 | filename, linenum); |
1308 | p = cleanhostname(p); | 1323 | p = cleanhostname(p); |
@@ -1355,8 +1370,10 @@ process_server_config_line(ServerOptions *options, char *line, | |||
1355 | if (!arg || *arg == '\0') | 1370 | if (!arg || *arg == '\0') |
1356 | fatal("%s line %d: missing file name.", | 1371 | fatal("%s line %d: missing file name.", |
1357 | filename, linenum); | 1372 | filename, linenum); |
1358 | if (*activep) | 1373 | if (*activep) { |
1359 | servconf_add_hostkey(filename, linenum, options, arg); | 1374 | servconf_add_hostkey(filename, linenum, |
1375 | options, arg, 1); | ||
1376 | } | ||
1360 | break; | 1377 | break; |
1361 | 1378 | ||
1362 | case sHostKeyAgent: | 1379 | case sHostKeyAgent: |
@@ -1928,8 +1945,9 @@ process_server_config_line(ServerOptions *options, char *line, | |||
1928 | xasprintf(&arg2, "*:%s", arg); | 1945 | xasprintf(&arg2, "*:%s", arg); |
1929 | } else { | 1946 | } else { |
1930 | arg2 = xstrdup(arg); | 1947 | arg2 = xstrdup(arg); |
1931 | p = hpdelim(&arg); | 1948 | ch = '\0'; |
1932 | if (p == NULL) { | 1949 | p = hpdelim2(&arg, &ch); |
1950 | if (p == NULL || ch == '/') { | ||
1933 | fatal("%s line %d: missing host in %s", | 1951 | fatal("%s line %d: missing host in %s", |
1934 | filename, linenum, | 1952 | filename, linenum, |
1935 | lookup_opcode_name(opcode)); | 1953 | lookup_opcode_name(opcode)); |
diff --git a/servconf.h b/servconf.h index 0175e00e8..54e0a8d8d 100644 --- a/servconf.h +++ b/servconf.h | |||
@@ -1,4 +1,4 @@ | |||
1 | /* $OpenBSD: servconf.h,v 1.137 2018/09/20 03:28:06 djm Exp $ */ | 1 | /* $OpenBSD: servconf.h,v 1.139 2019/01/19 21:37:48 djm Exp $ */ |
2 | 2 | ||
3 | /* | 3 | /* |
4 | * Author: Tatu Ylonen <ylo@cs.hut.fi> | 4 | * Author: Tatu Ylonen <ylo@cs.hut.fi> |
@@ -75,6 +75,7 @@ typedef struct { | |||
75 | char *routing_domain; /* Bind session to routing domain */ | 75 | char *routing_domain; /* Bind session to routing domain */ |
76 | 76 | ||
77 | char **host_key_files; /* Files containing host keys. */ | 77 | char **host_key_files; /* Files containing host keys. */ |
78 | int *host_key_file_userprovided; /* Key was specified by user. */ | ||
78 | u_int num_host_key_files; /* Number of files for host keys. */ | 79 | u_int num_host_key_files; /* Number of files for host keys. */ |
79 | char **host_cert_files; /* Files containing host certs. */ | 80 | char **host_cert_files; /* Files containing host certs. */ |
80 | u_int num_host_cert_files; /* Number of files for host certs. */ | 81 | u_int num_host_cert_files; /* Number of files for host certs. */ |
@@ -257,7 +258,7 @@ struct connection_info { | |||
257 | M_CP_STRARRAYOPT(permitted_listens, num_permitted_listens); \ | 258 | M_CP_STRARRAYOPT(permitted_listens, num_permitted_listens); \ |
258 | } while (0) | 259 | } while (0) |
259 | 260 | ||
260 | struct connection_info *get_connection_info(int, int); | 261 | struct connection_info *get_connection_info(struct ssh *, int, int); |
261 | void initialize_server_options(ServerOptions *); | 262 | void initialize_server_options(ServerOptions *); |
262 | void fill_default_server_options(ServerOptions *); | 263 | void fill_default_server_options(ServerOptions *); |
263 | int process_server_config_line(ServerOptions *, char *, const char *, int, | 264 | int process_server_config_line(ServerOptions *, char *, const char *, int, |
@@ -273,7 +274,7 @@ void copy_set_server_options(ServerOptions *, ServerOptions *, int); | |||
273 | void dump_config(ServerOptions *); | 274 | void dump_config(ServerOptions *); |
274 | char *derelativise_path(const char *); | 275 | char *derelativise_path(const char *); |
275 | void servconf_add_hostkey(const char *, const int, | 276 | void servconf_add_hostkey(const char *, const int, |
276 | ServerOptions *, const char *path); | 277 | ServerOptions *, const char *path, int); |
277 | void servconf_add_hostcert(const char *, const int, | 278 | void servconf_add_hostcert(const char *, const int, |
278 | ServerOptions *, const char *path); | 279 | ServerOptions *, const char *path); |
279 | 280 | ||
diff --git a/serverloop.c b/serverloop.c index 7be83e2d3..d7b04b37c 100644 --- a/serverloop.c +++ b/serverloop.c | |||
@@ -1,4 +1,4 @@ | |||
1 | /* $OpenBSD: serverloop.c,v 1.209 2018/07/27 05:13:02 dtucker Exp $ */ | 1 | /* $OpenBSD: serverloop.c,v 1.215 2019/03/27 09:29:14 djm Exp $ */ |
2 | /* | 2 | /* |
3 | * Author: Tatu Ylonen <ylo@cs.hut.fi> | 3 | * Author: Tatu Ylonen <ylo@cs.hut.fi> |
4 | * Copyright (c) 1995 Tatu Ylonen <ylo@cs.hut.fi>, Espoo, Finland | 4 | * Copyright (c) 1995 Tatu Ylonen <ylo@cs.hut.fi>, Espoo, Finland |
@@ -49,6 +49,7 @@ | |||
49 | #include <errno.h> | 49 | #include <errno.h> |
50 | #include <fcntl.h> | 50 | #include <fcntl.h> |
51 | #include <pwd.h> | 51 | #include <pwd.h> |
52 | #include <limits.h> | ||
52 | #include <signal.h> | 53 | #include <signal.h> |
53 | #include <string.h> | 54 | #include <string.h> |
54 | #include <termios.h> | 55 | #include <termios.h> |
@@ -98,7 +99,7 @@ static volatile sig_atomic_t child_terminated = 0; /* The child has terminated. | |||
98 | static volatile sig_atomic_t received_sigterm = 0; | 99 | static volatile sig_atomic_t received_sigterm = 0; |
99 | 100 | ||
100 | /* prototypes */ | 101 | /* prototypes */ |
101 | static void server_init_dispatch(void); | 102 | static void server_init_dispatch(struct ssh *); |
102 | 103 | ||
103 | /* requested tunnel forwarding interface(s), shared with session.c */ | 104 | /* requested tunnel forwarding interface(s), shared with session.c */ |
104 | char *tun_fwd_ifnames = NULL; | 105 | char *tun_fwd_ifnames = NULL; |
@@ -179,11 +180,12 @@ sigterm_handler(int sig) | |||
179 | static void | 180 | static void |
180 | client_alive_check(struct ssh *ssh) | 181 | client_alive_check(struct ssh *ssh) |
181 | { | 182 | { |
182 | int channel_id; | ||
183 | char remote_id[512]; | 183 | char remote_id[512]; |
184 | int r, channel_id; | ||
184 | 185 | ||
185 | /* timeout, check to see how many we have had */ | 186 | /* timeout, check to see how many we have had */ |
186 | if (packet_inc_alive_timeouts() > options.client_alive_count_max) { | 187 | if (ssh_packet_inc_alive_timeouts(ssh) > |
188 | options.client_alive_count_max) { | ||
187 | sshpkt_fmt_connection_id(ssh, remote_id, sizeof(remote_id)); | 189 | sshpkt_fmt_connection_id(ssh, remote_id, sizeof(remote_id)); |
188 | logit("Timeout, client not responding from %s", remote_id); | 190 | logit("Timeout, client not responding from %s", remote_id); |
189 | cleanup_exit(255); | 191 | cleanup_exit(255); |
@@ -194,14 +196,17 @@ client_alive_check(struct ssh *ssh) | |||
194 | * we should get back a failure | 196 | * we should get back a failure |
195 | */ | 197 | */ |
196 | if ((channel_id = channel_find_open(ssh)) == -1) { | 198 | if ((channel_id = channel_find_open(ssh)) == -1) { |
197 | packet_start(SSH2_MSG_GLOBAL_REQUEST); | 199 | if ((r = sshpkt_start(ssh, SSH2_MSG_GLOBAL_REQUEST)) != 0 || |
198 | packet_put_cstring("keepalive@openssh.com"); | 200 | (r = sshpkt_put_cstring(ssh, "keepalive@openssh.com")) |
199 | packet_put_char(1); /* boolean: want reply */ | 201 | != 0 || |
202 | (r = sshpkt_put_u8(ssh, 1)) != 0) /* boolean: want reply */ | ||
203 | fatal("%s: %s", __func__, ssh_err(r)); | ||
200 | } else { | 204 | } else { |
201 | channel_request_start(ssh, channel_id, | 205 | channel_request_start(ssh, channel_id, |
202 | "keepalive@openssh.com", 1); | 206 | "keepalive@openssh.com", 1); |
203 | } | 207 | } |
204 | packet_send(); | 208 | if ((r = sshpkt_send(ssh)) != 0) |
209 | fatal("%s: %s", __func__, ssh_err(r)); | ||
205 | } | 210 | } |
206 | 211 | ||
207 | /* | 212 | /* |
@@ -220,6 +225,7 @@ wait_until_can_do_something(struct ssh *ssh, | |||
220 | int ret; | 225 | int ret; |
221 | time_t minwait_secs = 0; | 226 | time_t minwait_secs = 0; |
222 | int client_alive_scheduled = 0; | 227 | int client_alive_scheduled = 0; |
228 | /* time we last heard from the client OR sent a keepalive */ | ||
223 | static time_t last_client_time; | 229 | static time_t last_client_time; |
224 | 230 | ||
225 | /* Allocate and update select() masks for channel descriptors. */ | 231 | /* Allocate and update select() masks for channel descriptors. */ |
@@ -242,9 +248,10 @@ wait_until_can_do_something(struct ssh *ssh, | |||
242 | uint64_t keepalive_ms = | 248 | uint64_t keepalive_ms = |
243 | (uint64_t)options.client_alive_interval * 1000; | 249 | (uint64_t)options.client_alive_interval * 1000; |
244 | 250 | ||
245 | client_alive_scheduled = 1; | 251 | if (max_time_ms == 0 || max_time_ms > keepalive_ms) { |
246 | if (max_time_ms == 0 || max_time_ms > keepalive_ms) | ||
247 | max_time_ms = keepalive_ms; | 252 | max_time_ms = keepalive_ms; |
253 | client_alive_scheduled = 1; | ||
254 | } | ||
248 | } | 255 | } |
249 | 256 | ||
250 | #if 0 | 257 | #if 0 |
@@ -258,14 +265,14 @@ wait_until_can_do_something(struct ssh *ssh, | |||
258 | * If we have buffered packet data going to the client, mark that | 265 | * If we have buffered packet data going to the client, mark that |
259 | * descriptor. | 266 | * descriptor. |
260 | */ | 267 | */ |
261 | if (packet_have_data_to_write()) | 268 | if (ssh_packet_have_data_to_write(ssh)) |
262 | FD_SET(connection_out, *writesetp); | 269 | FD_SET(connection_out, *writesetp); |
263 | 270 | ||
264 | /* | 271 | /* |
265 | * If child has terminated and there is enough buffer space to read | 272 | * If child has terminated and there is enough buffer space to read |
266 | * from it, then read as much as is available and exit. | 273 | * from it, then read as much as is available and exit. |
267 | */ | 274 | */ |
268 | if (child_terminated && packet_not_very_much_data_to_write()) | 275 | if (child_terminated && ssh_packet_not_very_much_data_to_write(ssh)) |
269 | if (max_time_ms == 0 || client_alive_scheduled) | 276 | if (max_time_ms == 0 || client_alive_scheduled) |
270 | max_time_ms = 100; | 277 | max_time_ms = 100; |
271 | 278 | ||
@@ -288,13 +295,15 @@ wait_until_can_do_something(struct ssh *ssh, | |||
288 | } else if (client_alive_scheduled) { | 295 | } else if (client_alive_scheduled) { |
289 | time_t now = monotime(); | 296 | time_t now = monotime(); |
290 | 297 | ||
291 | if (ret == 0) { /* timeout */ | 298 | /* |
299 | * If the select timed out, or returned for some other reason | ||
300 | * but we haven't heard from the client in time, send keepalive. | ||
301 | */ | ||
302 | if (ret == 0 || (last_client_time != 0 && last_client_time + | ||
303 | options.client_alive_interval <= now)) { | ||
292 | client_alive_check(ssh); | 304 | client_alive_check(ssh); |
293 | } else if (FD_ISSET(connection_in, *readsetp)) { | ||
294 | last_client_time = now; | 305 | last_client_time = now; |
295 | } else if (last_client_time != 0 && last_client_time + | 306 | } else if (FD_ISSET(connection_in, *readsetp)) { |
296 | options.client_alive_interval <= now) { | ||
297 | client_alive_check(ssh); | ||
298 | last_client_time = now; | 307 | last_client_time = now; |
299 | } | 308 | } |
300 | } | 309 | } |
@@ -309,7 +318,7 @@ wait_until_can_do_something(struct ssh *ssh, | |||
309 | static int | 318 | static int |
310 | process_input(struct ssh *ssh, fd_set *readset, int connection_in) | 319 | process_input(struct ssh *ssh, fd_set *readset, int connection_in) |
311 | { | 320 | { |
312 | int len; | 321 | int r, len; |
313 | char buf[16384]; | 322 | char buf[16384]; |
314 | 323 | ||
315 | /* Read and buffer any input data from the client. */ | 324 | /* Read and buffer any input data from the client. */ |
@@ -330,7 +339,10 @@ process_input(struct ssh *ssh, fd_set *readset, int connection_in) | |||
330 | } | 339 | } |
331 | } else { | 340 | } else { |
332 | /* Buffer any received data. */ | 341 | /* Buffer any received data. */ |
333 | packet_process_incoming(buf, len); | 342 | if ((r = ssh_packet_process_incoming(ssh, buf, len)) |
343 | != 0) | ||
344 | fatal("%s: ssh_packet_process_incoming: %s", | ||
345 | __func__, ssh_err(r)); | ||
334 | } | 346 | } |
335 | } | 347 | } |
336 | return 0; | 348 | return 0; |
@@ -340,11 +352,16 @@ process_input(struct ssh *ssh, fd_set *readset, int connection_in) | |||
340 | * Sends data from internal buffers to client program stdin. | 352 | * Sends data from internal buffers to client program stdin. |
341 | */ | 353 | */ |
342 | static void | 354 | static void |
343 | process_output(fd_set *writeset, int connection_out) | 355 | process_output(struct ssh *ssh, fd_set *writeset, int connection_out) |
344 | { | 356 | { |
357 | int r; | ||
358 | |||
345 | /* Send any buffered packet data to the client. */ | 359 | /* Send any buffered packet data to the client. */ |
346 | if (FD_ISSET(connection_out, writeset)) | 360 | if (FD_ISSET(connection_out, writeset)) { |
347 | packet_write_poll(); | 361 | if ((r = ssh_packet_write_poll(ssh)) != 0) |
362 | fatal("%s: ssh_packet_write_poll: %s", | ||
363 | __func__, ssh_err(r)); | ||
364 | } | ||
348 | } | 365 | } |
349 | 366 | ||
350 | static void | 367 | static void |
@@ -387,8 +404,8 @@ server_loop2(struct ssh *ssh, Authctxt *authctxt) | |||
387 | 404 | ||
388 | signal(SIGCHLD, sigchld_handler); | 405 | signal(SIGCHLD, sigchld_handler); |
389 | child_terminated = 0; | 406 | child_terminated = 0; |
390 | connection_in = packet_get_connection_in(); | 407 | connection_in = ssh_packet_get_connection_in(ssh); |
391 | connection_out = packet_get_connection_out(); | 408 | connection_out = ssh_packet_get_connection_out(ssh); |
392 | 409 | ||
393 | if (!use_privsep) { | 410 | if (!use_privsep) { |
394 | signal(SIGTERM, sigterm_handler); | 411 | signal(SIGTERM, sigterm_handler); |
@@ -401,18 +418,21 @@ server_loop2(struct ssh *ssh, Authctxt *authctxt) | |||
401 | max_fd = MAXIMUM(connection_in, connection_out); | 418 | max_fd = MAXIMUM(connection_in, connection_out); |
402 | max_fd = MAXIMUM(max_fd, notify_pipe[0]); | 419 | max_fd = MAXIMUM(max_fd, notify_pipe[0]); |
403 | 420 | ||
404 | server_init_dispatch(); | 421 | server_init_dispatch(ssh); |
405 | 422 | ||
406 | for (;;) { | 423 | for (;;) { |
407 | process_buffered_input_packets(ssh); | 424 | process_buffered_input_packets(ssh); |
408 | 425 | ||
409 | if (!ssh_packet_is_rekeying(ssh) && | 426 | if (!ssh_packet_is_rekeying(ssh) && |
410 | packet_not_very_much_data_to_write()) | 427 | ssh_packet_not_very_much_data_to_write(ssh)) |
411 | channel_output_poll(ssh); | 428 | channel_output_poll(ssh); |
412 | if (options.rekey_interval > 0 && !ssh_packet_is_rekeying(ssh)) | 429 | if (options.rekey_interval > 0 && |
413 | rekey_timeout_ms = packet_get_rekey_timeout() * 1000; | 430 | !ssh_packet_is_rekeying(ssh)) { |
414 | else | 431 | rekey_timeout_ms = ssh_packet_get_rekey_timeout(ssh) * |
432 | 1000; | ||
433 | } else { | ||
415 | rekey_timeout_ms = 0; | 434 | rekey_timeout_ms = 0; |
435 | } | ||
416 | 436 | ||
417 | wait_until_can_do_something(ssh, connection_in, connection_out, | 437 | wait_until_can_do_something(ssh, connection_in, connection_out, |
418 | &readset, &writeset, &max_fd, &nalloc, rekey_timeout_ms); | 438 | &readset, &writeset, &max_fd, &nalloc, rekey_timeout_ms); |
@@ -428,7 +448,7 @@ server_loop2(struct ssh *ssh, Authctxt *authctxt) | |||
428 | channel_after_select(ssh, readset, writeset); | 448 | channel_after_select(ssh, readset, writeset); |
429 | if (process_input(ssh, readset, connection_in) < 0) | 449 | if (process_input(ssh, readset, connection_in) < 0) |
430 | break; | 450 | break; |
431 | process_output(writeset, connection_out); | 451 | process_output(ssh, writeset, connection_out); |
432 | } | 452 | } |
433 | collect_children(ssh); | 453 | collect_children(ssh); |
434 | 454 | ||
@@ -451,7 +471,7 @@ server_input_keep_alive(int type, u_int32_t seq, struct ssh *ssh) | |||
451 | * even if this was generated by something other than | 471 | * even if this was generated by something other than |
452 | * the bogus CHANNEL_REQUEST we send for keepalives. | 472 | * the bogus CHANNEL_REQUEST we send for keepalives. |
453 | */ | 473 | */ |
454 | packet_set_alive_timeouts(0); | 474 | ssh_packet_set_alive_timeouts(ssh, 0); |
455 | return 0; | 475 | return 0; |
456 | } | 476 | } |
457 | 477 | ||
@@ -459,16 +479,28 @@ static Channel * | |||
459 | server_request_direct_tcpip(struct ssh *ssh, int *reason, const char **errmsg) | 479 | server_request_direct_tcpip(struct ssh *ssh, int *reason, const char **errmsg) |
460 | { | 480 | { |
461 | Channel *c = NULL; | 481 | Channel *c = NULL; |
462 | char *target, *originator; | 482 | char *target = NULL, *originator = NULL; |
463 | u_short target_port, originator_port; | 483 | u_int target_port = 0, originator_port = 0; |
464 | 484 | int r; | |
465 | target = packet_get_string(NULL); | 485 | |
466 | target_port = packet_get_int(); | 486 | if ((r = sshpkt_get_cstring(ssh, &target, NULL)) != 0 || |
467 | originator = packet_get_string(NULL); | 487 | (r = sshpkt_get_u32(ssh, &target_port)) != 0 || |
468 | originator_port = packet_get_int(); | 488 | (r = sshpkt_get_cstring(ssh, &originator, NULL)) != 0 || |
469 | packet_check_eom(); | 489 | (r = sshpkt_get_u32(ssh, &originator_port)) != 0 || |
490 | (r = sshpkt_get_end(ssh)) != 0) | ||
491 | sshpkt_fatal(ssh, r, "%s: parse packet", __func__); | ||
492 | if (target_port > 0xFFFF) { | ||
493 | error("%s: invalid target port", __func__); | ||
494 | *reason = SSH2_OPEN_ADMINISTRATIVELY_PROHIBITED; | ||
495 | goto out; | ||
496 | } | ||
497 | if (originator_port > 0xFFFF) { | ||
498 | error("%s: invalid originator port", __func__); | ||
499 | *reason = SSH2_OPEN_ADMINISTRATIVELY_PROHIBITED; | ||
500 | goto out; | ||
501 | } | ||
470 | 502 | ||
471 | debug("%s: originator %s port %d, target %s port %d", __func__, | 503 | debug("%s: originator %s port %u, target %s port %u", __func__, |
472 | originator, originator_port, target, target_port); | 504 | originator, originator_port, target, target_port); |
473 | 505 | ||
474 | /* XXX fine grained permissions */ | 506 | /* XXX fine grained permissions */ |
@@ -485,9 +517,9 @@ server_request_direct_tcpip(struct ssh *ssh, int *reason, const char **errmsg) | |||
485 | *reason = SSH2_OPEN_ADMINISTRATIVELY_PROHIBITED; | 517 | *reason = SSH2_OPEN_ADMINISTRATIVELY_PROHIBITED; |
486 | } | 518 | } |
487 | 519 | ||
520 | out: | ||
488 | free(originator); | 521 | free(originator); |
489 | free(target); | 522 | free(target); |
490 | |||
491 | return c; | 523 | return c; |
492 | } | 524 | } |
493 | 525 | ||
@@ -495,17 +527,23 @@ static Channel * | |||
495 | server_request_direct_streamlocal(struct ssh *ssh) | 527 | server_request_direct_streamlocal(struct ssh *ssh) |
496 | { | 528 | { |
497 | Channel *c = NULL; | 529 | Channel *c = NULL; |
498 | char *target, *originator; | 530 | char *target = NULL, *originator = NULL; |
499 | u_short originator_port; | 531 | u_int originator_port = 0; |
500 | struct passwd *pw = the_authctxt->pw; | 532 | struct passwd *pw = the_authctxt->pw; |
533 | int r; | ||
501 | 534 | ||
502 | if (pw == NULL || !the_authctxt->valid) | 535 | if (pw == NULL || !the_authctxt->valid) |
503 | fatal("%s: no/invalid user", __func__); | 536 | fatal("%s: no/invalid user", __func__); |
504 | 537 | ||
505 | target = packet_get_string(NULL); | 538 | if ((r = sshpkt_get_cstring(ssh, &target, NULL)) != 0 || |
506 | originator = packet_get_string(NULL); | 539 | (r = sshpkt_get_cstring(ssh, &originator, NULL)) != 0 || |
507 | originator_port = packet_get_int(); | 540 | (r = sshpkt_get_u32(ssh, &originator_port)) != 0 || |
508 | packet_check_eom(); | 541 | (r = sshpkt_get_end(ssh)) != 0) |
542 | sshpkt_fatal(ssh, r, "%s: parse packet", __func__); | ||
543 | if (originator_port > 0xFFFF) { | ||
544 | error("%s: invalid originator port", __func__); | ||
545 | goto out; | ||
546 | } | ||
509 | 547 | ||
510 | debug("%s: originator %s port %d, target %s", __func__, | 548 | debug("%s: originator %s port %d, target %s", __func__, |
511 | originator, originator_port, target); | 549 | originator, originator_port, target); |
@@ -522,9 +560,9 @@ server_request_direct_streamlocal(struct ssh *ssh) | |||
522 | originator, originator_port, target); | 560 | originator, originator_port, target); |
523 | } | 561 | } |
524 | 562 | ||
563 | out: | ||
525 | free(originator); | 564 | free(originator); |
526 | free(target); | 565 | free(target); |
527 | |||
528 | return c; | 566 | return c; |
529 | } | 567 | } |
530 | 568 | ||
@@ -532,27 +570,35 @@ static Channel * | |||
532 | server_request_tun(struct ssh *ssh) | 570 | server_request_tun(struct ssh *ssh) |
533 | { | 571 | { |
534 | Channel *c = NULL; | 572 | Channel *c = NULL; |
535 | int mode, tun, sock; | 573 | u_int mode, tun; |
574 | int r, sock; | ||
536 | char *tmp, *ifname = NULL; | 575 | char *tmp, *ifname = NULL; |
537 | 576 | ||
538 | mode = packet_get_int(); | 577 | if ((r = sshpkt_get_u32(ssh, &mode)) != 0) |
578 | sshpkt_fatal(ssh, r, "%s: parse mode", __func__); | ||
539 | switch (mode) { | 579 | switch (mode) { |
540 | case SSH_TUNMODE_POINTOPOINT: | 580 | case SSH_TUNMODE_POINTOPOINT: |
541 | case SSH_TUNMODE_ETHERNET: | 581 | case SSH_TUNMODE_ETHERNET: |
542 | break; | 582 | break; |
543 | default: | 583 | default: |
544 | packet_send_debug("Unsupported tunnel device mode."); | 584 | ssh_packet_send_debug(ssh, "Unsupported tunnel device mode."); |
545 | return NULL; | 585 | return NULL; |
546 | } | 586 | } |
547 | if ((options.permit_tun & mode) == 0) { | 587 | if ((options.permit_tun & mode) == 0) { |
548 | packet_send_debug("Server has rejected tunnel device " | 588 | ssh_packet_send_debug(ssh, "Server has rejected tunnel device " |
549 | "forwarding"); | 589 | "forwarding"); |
550 | return NULL; | 590 | return NULL; |
551 | } | 591 | } |
552 | 592 | ||
553 | tun = packet_get_int(); | 593 | if ((r = sshpkt_get_u32(ssh, &tun)) != 0) |
594 | sshpkt_fatal(ssh, r, "%s: parse device", __func__); | ||
595 | if (tun > INT_MAX) { | ||
596 | debug("%s: invalid tun", __func__); | ||
597 | goto done; | ||
598 | } | ||
554 | if (auth_opts->force_tun_device != -1) { | 599 | if (auth_opts->force_tun_device != -1) { |
555 | if (tun != SSH_TUNID_ANY && auth_opts->force_tun_device != tun) | 600 | if (tun != SSH_TUNID_ANY && |
601 | auth_opts->force_tun_device != (int)tun) | ||
556 | goto done; | 602 | goto done; |
557 | tun = auth_opts->force_tun_device; | 603 | tun = auth_opts->force_tun_device; |
558 | } | 604 | } |
@@ -585,7 +631,7 @@ server_request_tun(struct ssh *ssh) | |||
585 | 631 | ||
586 | done: | 632 | done: |
587 | if (c == NULL) | 633 | if (c == NULL) |
588 | packet_send_debug("Failed to open the tunnel device."); | 634 | ssh_packet_send_debug(ssh, "Failed to open the tunnel device."); |
589 | return c; | 635 | return c; |
590 | } | 636 | } |
591 | 637 | ||
@@ -593,13 +639,15 @@ static Channel * | |||
593 | server_request_session(struct ssh *ssh) | 639 | server_request_session(struct ssh *ssh) |
594 | { | 640 | { |
595 | Channel *c; | 641 | Channel *c; |
642 | int r; | ||
596 | 643 | ||
597 | debug("input_session_request"); | 644 | debug("input_session_request"); |
598 | packet_check_eom(); | 645 | if ((r = sshpkt_get_end(ssh)) != 0) |
646 | sshpkt_fatal(ssh, r, "%s: parse packet", __func__); | ||
599 | 647 | ||
600 | if (no_more_sessions) { | 648 | if (no_more_sessions) { |
601 | packet_disconnect("Possible attack: attempt to open a session " | 649 | ssh_packet_disconnect(ssh, "Possible attack: attempt to open a " |
602 | "after additional sessions disabled"); | 650 | "session after additional sessions disabled"); |
603 | } | 651 | } |
604 | 652 | ||
605 | /* | 653 | /* |
@@ -624,20 +672,22 @@ static int | |||
624 | server_input_channel_open(int type, u_int32_t seq, struct ssh *ssh) | 672 | server_input_channel_open(int type, u_int32_t seq, struct ssh *ssh) |
625 | { | 673 | { |
626 | Channel *c = NULL; | 674 | Channel *c = NULL; |
627 | char *ctype; | 675 | char *ctype = NULL; |
628 | const char *errmsg = NULL; | 676 | const char *errmsg = NULL; |
629 | int rchan, reason = SSH2_OPEN_CONNECT_FAILED; | 677 | int r, reason = SSH2_OPEN_CONNECT_FAILED; |
630 | u_int rmaxpack, rwindow, len; | 678 | u_int rchan = 0, rmaxpack = 0, rwindow = 0; |
631 | 679 | ||
632 | ctype = packet_get_string(&len); | 680 | if ((r = sshpkt_get_cstring(ssh, &ctype, NULL)) != 0 || |
633 | rchan = packet_get_int(); | 681 | (r = sshpkt_get_u32(ssh, &rchan)) != 0 || |
634 | rwindow = packet_get_int(); | 682 | (r = sshpkt_get_u32(ssh, &rwindow)) != 0 || |
635 | rmaxpack = packet_get_int(); | 683 | (r = sshpkt_get_u32(ssh, &rmaxpack)) != 0) |
636 | 684 | sshpkt_fatal(ssh, r, "%s: parse packet", __func__); | |
637 | debug("%s: ctype %s rchan %d win %d max %d", __func__, | 685 | debug("%s: ctype %s rchan %u win %u max %u", __func__, |
638 | ctype, rchan, rwindow, rmaxpack); | 686 | ctype, rchan, rwindow, rmaxpack); |
639 | 687 | ||
640 | if (strcmp(ctype, "session") == 0) { | 688 | if (rchan > INT_MAX) { |
689 | error("%s: invalid remote channel ID", __func__); | ||
690 | } else if (strcmp(ctype, "session") == 0) { | ||
641 | c = server_request_session(ssh); | 691 | c = server_request_session(ssh); |
642 | } else if (strcmp(ctype, "direct-tcpip") == 0) { | 692 | } else if (strcmp(ctype, "direct-tcpip") == 0) { |
643 | c = server_request_direct_tcpip(ssh, &reason, &errmsg); | 693 | c = server_request_direct_tcpip(ssh, &reason, &errmsg); |
@@ -648,26 +698,32 @@ server_input_channel_open(int type, u_int32_t seq, struct ssh *ssh) | |||
648 | } | 698 | } |
649 | if (c != NULL) { | 699 | if (c != NULL) { |
650 | debug("%s: confirm %s", __func__, ctype); | 700 | debug("%s: confirm %s", __func__, ctype); |
651 | c->remote_id = rchan; | 701 | c->remote_id = (int)rchan; |
652 | c->have_remote_id = 1; | 702 | c->have_remote_id = 1; |
653 | c->remote_window = rwindow; | 703 | c->remote_window = rwindow; |
654 | c->remote_maxpacket = rmaxpack; | 704 | c->remote_maxpacket = rmaxpack; |
655 | if (c->type != SSH_CHANNEL_CONNECTING) { | 705 | if (c->type != SSH_CHANNEL_CONNECTING) { |
656 | packet_start(SSH2_MSG_CHANNEL_OPEN_CONFIRMATION); | 706 | if ((r = sshpkt_start(ssh, SSH2_MSG_CHANNEL_OPEN_CONFIRMATION)) != 0 || |
657 | packet_put_int(c->remote_id); | 707 | (r = sshpkt_put_u32(ssh, c->remote_id)) != 0 || |
658 | packet_put_int(c->self); | 708 | (r = sshpkt_put_u32(ssh, c->self)) != 0 || |
659 | packet_put_int(c->local_window); | 709 | (r = sshpkt_put_u32(ssh, c->local_window)) != 0 || |
660 | packet_put_int(c->local_maxpacket); | 710 | (r = sshpkt_put_u32(ssh, c->local_maxpacket)) != 0 || |
661 | packet_send(); | 711 | (r = sshpkt_send(ssh)) != 0) { |
712 | sshpkt_fatal(ssh, r, | ||
713 | "%s: send open confirm", __func__); | ||
714 | } | ||
662 | } | 715 | } |
663 | } else { | 716 | } else { |
664 | debug("%s: failure %s", __func__, ctype); | 717 | debug("%s: failure %s", __func__, ctype); |
665 | packet_start(SSH2_MSG_CHANNEL_OPEN_FAILURE); | 718 | if ((r = sshpkt_start(ssh, SSH2_MSG_CHANNEL_OPEN_FAILURE)) != 0 || |
666 | packet_put_int(rchan); | 719 | (r = sshpkt_put_u32(ssh, rchan)) != 0 || |
667 | packet_put_int(reason); | 720 | (r = sshpkt_put_u32(ssh, reason)) != 0 || |
668 | packet_put_cstring(errmsg ? errmsg : "open failed"); | 721 | (r = sshpkt_put_cstring(ssh, errmsg ? errmsg : "open failed")) != 0 || |
669 | packet_put_cstring(""); | 722 | (r = sshpkt_put_cstring(ssh, "")) != 0 || |
670 | packet_send(); | 723 | (r = sshpkt_send(ssh)) != 0) { |
724 | sshpkt_fatal(ssh, r, | ||
725 | "%s: send open failure", __func__); | ||
726 | } | ||
671 | } | 727 | } |
672 | free(ctype); | 728 | free(ctype); |
673 | return 0; | 729 | return 0; |
@@ -730,9 +786,9 @@ server_input_hostkeys_prove(struct ssh *ssh, struct sshbuf **respp) | |||
730 | (r = sshbuf_put_string(sigbuf, | 786 | (r = sshbuf_put_string(sigbuf, |
731 | ssh->kex->session_id, ssh->kex->session_id_len)) != 0 || | 787 | ssh->kex->session_id, ssh->kex->session_id_len)) != 0 || |
732 | (r = sshkey_puts(key, sigbuf)) != 0 || | 788 | (r = sshkey_puts(key, sigbuf)) != 0 || |
733 | (r = ssh->kex->sign(key_prv, key_pub, &sig, &slen, | 789 | (r = ssh->kex->sign(ssh, key_prv, key_pub, &sig, &slen, |
734 | sshbuf_ptr(sigbuf), sshbuf_len(sigbuf), | 790 | sshbuf_ptr(sigbuf), sshbuf_len(sigbuf), |
735 | use_kexsigtype ? ssh->kex->hostkey_alg : NULL, 0)) != 0 || | 791 | use_kexsigtype ? ssh->kex->hostkey_alg : NULL)) != 0 || |
736 | (r = sshbuf_put_string(resp, sig, slen)) != 0) { | 792 | (r = sshbuf_put_string(resp, sig, slen)) != 0) { |
737 | error("%s: couldn't prepare signature: %s", | 793 | error("%s: couldn't prepare signature: %s", |
738 | __func__, ssh_err(r)); | 794 | __func__, ssh_err(r)); |
@@ -754,65 +810,66 @@ server_input_hostkeys_prove(struct ssh *ssh, struct sshbuf **respp) | |||
754 | static int | 810 | static int |
755 | server_input_global_request(int type, u_int32_t seq, struct ssh *ssh) | 811 | server_input_global_request(int type, u_int32_t seq, struct ssh *ssh) |
756 | { | 812 | { |
757 | char *rtype; | 813 | char *rtype = NULL; |
758 | int want_reply; | 814 | u_char want_reply = 0; |
759 | int r, success = 0, allocated_listen_port = 0; | 815 | int r, success = 0, allocated_listen_port = 0; |
816 | u_int port = 0; | ||
760 | struct sshbuf *resp = NULL; | 817 | struct sshbuf *resp = NULL; |
761 | struct passwd *pw = the_authctxt->pw; | 818 | struct passwd *pw = the_authctxt->pw; |
819 | struct Forward fwd; | ||
762 | 820 | ||
821 | memset(&fwd, 0, sizeof(fwd)); | ||
763 | if (pw == NULL || !the_authctxt->valid) | 822 | if (pw == NULL || !the_authctxt->valid) |
764 | fatal("%s: no/invalid user", __func__); | 823 | fatal("%s: no/invalid user", __func__); |
765 | 824 | ||
766 | rtype = packet_get_string(NULL); | 825 | if ((r = sshpkt_get_cstring(ssh, &rtype, NULL)) != 0 || |
767 | want_reply = packet_get_char(); | 826 | (r = sshpkt_get_u8(ssh, &want_reply)) != 0) |
827 | sshpkt_fatal(ssh, r, "%s: parse packet", __func__); | ||
768 | debug("%s: rtype %s want_reply %d", __func__, rtype, want_reply); | 828 | debug("%s: rtype %s want_reply %d", __func__, rtype, want_reply); |
769 | 829 | ||
770 | /* -R style forwarding */ | 830 | /* -R style forwarding */ |
771 | if (strcmp(rtype, "tcpip-forward") == 0) { | 831 | if (strcmp(rtype, "tcpip-forward") == 0) { |
772 | struct Forward fwd; | 832 | if ((r = sshpkt_get_cstring(ssh, &fwd.listen_host, NULL)) != 0 || |
773 | 833 | (r = sshpkt_get_u32(ssh, &port)) != 0) | |
774 | memset(&fwd, 0, sizeof(fwd)); | 834 | sshpkt_fatal(ssh, r, "%s: parse tcpip-forward", __func__); |
775 | fwd.listen_host = packet_get_string(NULL); | 835 | debug("%s: tcpip-forward listen %s port %u", __func__, |
776 | fwd.listen_port = (u_short)packet_get_int(); | 836 | fwd.listen_host, port); |
777 | debug("%s: tcpip-forward listen %s port %d", __func__, | 837 | if (port <= INT_MAX) |
778 | fwd.listen_host, fwd.listen_port); | 838 | fwd.listen_port = (int)port; |
779 | |||
780 | /* check permissions */ | 839 | /* check permissions */ |
781 | if ((options.allow_tcp_forwarding & FORWARD_REMOTE) == 0 || | 840 | if (port > INT_MAX || |
841 | (options.allow_tcp_forwarding & FORWARD_REMOTE) == 0 || | ||
782 | !auth_opts->permit_port_forwarding_flag || | 842 | !auth_opts->permit_port_forwarding_flag || |
783 | options.disable_forwarding || | 843 | options.disable_forwarding || |
784 | (!want_reply && fwd.listen_port == 0) || | 844 | (!want_reply && fwd.listen_port == 0) || |
785 | (fwd.listen_port != 0 && | 845 | (fwd.listen_port != 0 && |
786 | !bind_permitted(fwd.listen_port, pw->pw_uid))) { | 846 | !bind_permitted(fwd.listen_port, pw->pw_uid))) { |
787 | success = 0; | 847 | success = 0; |
788 | packet_send_debug("Server has disabled port forwarding."); | 848 | ssh_packet_send_debug(ssh, "Server has disabled port forwarding."); |
789 | } else { | 849 | } else { |
790 | /* Start listening on the port */ | 850 | /* Start listening on the port */ |
791 | success = channel_setup_remote_fwd_listener(ssh, &fwd, | 851 | success = channel_setup_remote_fwd_listener(ssh, &fwd, |
792 | &allocated_listen_port, &options.fwd_opts); | 852 | &allocated_listen_port, &options.fwd_opts); |
793 | } | 853 | } |
794 | free(fwd.listen_host); | ||
795 | if ((resp = sshbuf_new()) == NULL) | 854 | if ((resp = sshbuf_new()) == NULL) |
796 | fatal("%s: sshbuf_new", __func__); | 855 | fatal("%s: sshbuf_new", __func__); |
797 | if (allocated_listen_port != 0 && | 856 | if (allocated_listen_port != 0 && |
798 | (r = sshbuf_put_u32(resp, allocated_listen_port)) != 0) | 857 | (r = sshbuf_put_u32(resp, allocated_listen_port)) != 0) |
799 | fatal("%s: sshbuf_put_u32: %s", __func__, ssh_err(r)); | 858 | fatal("%s: sshbuf_put_u32: %s", __func__, ssh_err(r)); |
800 | } else if (strcmp(rtype, "cancel-tcpip-forward") == 0) { | 859 | } else if (strcmp(rtype, "cancel-tcpip-forward") == 0) { |
801 | struct Forward fwd; | 860 | if ((r = sshpkt_get_cstring(ssh, &fwd.listen_host, NULL)) != 0 || |
861 | (r = sshpkt_get_u32(ssh, &port)) != 0) | ||
862 | sshpkt_fatal(ssh, r, "%s: parse cancel-tcpip-forward", __func__); | ||
802 | 863 | ||
803 | memset(&fwd, 0, sizeof(fwd)); | ||
804 | fwd.listen_host = packet_get_string(NULL); | ||
805 | fwd.listen_port = (u_short)packet_get_int(); | ||
806 | debug("%s: cancel-tcpip-forward addr %s port %d", __func__, | 864 | debug("%s: cancel-tcpip-forward addr %s port %d", __func__, |
807 | fwd.listen_host, fwd.listen_port); | 865 | fwd.listen_host, port); |
808 | 866 | if (port <= INT_MAX) { | |
809 | success = channel_cancel_rport_listener(ssh, &fwd); | 867 | fwd.listen_port = (int)port; |
810 | free(fwd.listen_host); | 868 | success = channel_cancel_rport_listener(ssh, &fwd); |
869 | } | ||
811 | } else if (strcmp(rtype, "streamlocal-forward@openssh.com") == 0) { | 870 | } else if (strcmp(rtype, "streamlocal-forward@openssh.com") == 0) { |
812 | struct Forward fwd; | 871 | if ((r = sshpkt_get_cstring(ssh, &fwd.listen_path, NULL)) != 0) |
813 | 872 | sshpkt_fatal(ssh, r, "%s: parse streamlocal-forward@openssh.com", __func__); | |
814 | memset(&fwd, 0, sizeof(fwd)); | ||
815 | fwd.listen_path = packet_get_string(NULL); | ||
816 | debug("%s: streamlocal-forward listen path %s", __func__, | 873 | debug("%s: streamlocal-forward listen path %s", __func__, |
817 | fwd.listen_path); | 874 | fwd.listen_path); |
818 | 875 | ||
@@ -822,39 +879,37 @@ server_input_global_request(int type, u_int32_t seq, struct ssh *ssh) | |||
822 | options.disable_forwarding || | 879 | options.disable_forwarding || |
823 | (pw->pw_uid != 0 && !use_privsep)) { | 880 | (pw->pw_uid != 0 && !use_privsep)) { |
824 | success = 0; | 881 | success = 0; |
825 | packet_send_debug("Server has disabled " | 882 | ssh_packet_send_debug(ssh, "Server has disabled " |
826 | "streamlocal forwarding."); | 883 | "streamlocal forwarding."); |
827 | } else { | 884 | } else { |
828 | /* Start listening on the socket */ | 885 | /* Start listening on the socket */ |
829 | success = channel_setup_remote_fwd_listener(ssh, | 886 | success = channel_setup_remote_fwd_listener(ssh, |
830 | &fwd, NULL, &options.fwd_opts); | 887 | &fwd, NULL, &options.fwd_opts); |
831 | } | 888 | } |
832 | free(fwd.listen_path); | ||
833 | } else if (strcmp(rtype, "cancel-streamlocal-forward@openssh.com") == 0) { | 889 | } else if (strcmp(rtype, "cancel-streamlocal-forward@openssh.com") == 0) { |
834 | struct Forward fwd; | 890 | if ((r = sshpkt_get_cstring(ssh, &fwd.listen_path, NULL)) != 0) |
835 | 891 | sshpkt_fatal(ssh, r, "%s: parse cancel-streamlocal-forward@openssh.com", __func__); | |
836 | memset(&fwd, 0, sizeof(fwd)); | ||
837 | fwd.listen_path = packet_get_string(NULL); | ||
838 | debug("%s: cancel-streamlocal-forward path %s", __func__, | 892 | debug("%s: cancel-streamlocal-forward path %s", __func__, |
839 | fwd.listen_path); | 893 | fwd.listen_path); |
840 | 894 | ||
841 | success = channel_cancel_rport_listener(ssh, &fwd); | 895 | success = channel_cancel_rport_listener(ssh, &fwd); |
842 | free(fwd.listen_path); | ||
843 | } else if (strcmp(rtype, "no-more-sessions@openssh.com") == 0) { | 896 | } else if (strcmp(rtype, "no-more-sessions@openssh.com") == 0) { |
844 | no_more_sessions = 1; | 897 | no_more_sessions = 1; |
845 | success = 1; | 898 | success = 1; |
846 | } else if (strcmp(rtype, "hostkeys-prove-00@openssh.com") == 0) { | 899 | } else if (strcmp(rtype, "hostkeys-prove-00@openssh.com") == 0) { |
847 | success = server_input_hostkeys_prove(ssh, &resp); | 900 | success = server_input_hostkeys_prove(ssh, &resp); |
848 | } | 901 | } |
902 | /* XXX sshpkt_get_end() */ | ||
849 | if (want_reply) { | 903 | if (want_reply) { |
850 | packet_start(success ? | 904 | if ((r = sshpkt_start(ssh, success ? |
851 | SSH2_MSG_REQUEST_SUCCESS : SSH2_MSG_REQUEST_FAILURE); | 905 | SSH2_MSG_REQUEST_SUCCESS : SSH2_MSG_REQUEST_FAILURE)) != 0 || |
852 | if (success && resp != NULL) | 906 | (success && resp != NULL && (r = sshpkt_putb(ssh, resp)) != 0) || |
853 | ssh_packet_put_raw(ssh, sshbuf_ptr(resp), | 907 | (r = sshpkt_send(ssh)) != 0 || |
854 | sshbuf_len(resp)); | 908 | (r = ssh_packet_write_wait(ssh)) != 0) |
855 | packet_send(); | 909 | sshpkt_fatal(ssh, r, "%s: send reply", __func__); |
856 | packet_write_wait(); | ||
857 | } | 910 | } |
911 | free(fwd.listen_host); | ||
912 | free(fwd.listen_path); | ||
858 | free(rtype); | 913 | free(rtype); |
859 | sshbuf_free(resp); | 914 | sshbuf_free(resp); |
860 | return 0; | 915 | return 0; |
@@ -864,58 +919,64 @@ static int | |||
864 | server_input_channel_req(int type, u_int32_t seq, struct ssh *ssh) | 919 | server_input_channel_req(int type, u_int32_t seq, struct ssh *ssh) |
865 | { | 920 | { |
866 | Channel *c; | 921 | Channel *c; |
867 | int id, reply, success = 0; | 922 | int r, success = 0; |
868 | char *rtype; | 923 | char *rtype = NULL; |
869 | 924 | u_char want_reply = 0; | |
870 | id = packet_get_int(); | 925 | u_int id = 0; |
871 | rtype = packet_get_string(NULL); | 926 | |
872 | reply = packet_get_char(); | 927 | if ((r = sshpkt_get_u32(ssh, &id)) != 0 || |
873 | 928 | (r = sshpkt_get_cstring(ssh, &rtype, NULL)) != 0 || | |
874 | debug("server_input_channel_req: channel %d request %s reply %d", | 929 | (r = sshpkt_get_u8(ssh, &want_reply)) != 0) |
875 | id, rtype, reply); | 930 | sshpkt_fatal(ssh, r, "%s: parse packet", __func__); |
876 | 931 | ||
877 | if ((c = channel_lookup(ssh, id)) == NULL) | 932 | debug("server_input_channel_req: channel %u request %s reply %d", |
878 | packet_disconnect("server_input_channel_req: " | 933 | id, rtype, want_reply); |
879 | "unknown channel %d", id); | 934 | |
935 | if (id >= INT_MAX || (c = channel_lookup(ssh, (int)id)) == NULL) { | ||
936 | ssh_packet_disconnect(ssh, "%s: unknown channel %d", | ||
937 | __func__, id); | ||
938 | } | ||
880 | if (!strcmp(rtype, "eow@openssh.com")) { | 939 | if (!strcmp(rtype, "eow@openssh.com")) { |
881 | packet_check_eom(); | 940 | if ((r = sshpkt_get_end(ssh)) != 0) |
941 | sshpkt_fatal(ssh, r, "%s: parse packet", __func__); | ||
882 | chan_rcvd_eow(ssh, c); | 942 | chan_rcvd_eow(ssh, c); |
883 | } else if ((c->type == SSH_CHANNEL_LARVAL || | 943 | } else if ((c->type == SSH_CHANNEL_LARVAL || |
884 | c->type == SSH_CHANNEL_OPEN) && strcmp(c->ctype, "session") == 0) | 944 | c->type == SSH_CHANNEL_OPEN) && strcmp(c->ctype, "session") == 0) |
885 | success = session_input_channel_req(ssh, c, rtype); | 945 | success = session_input_channel_req(ssh, c, rtype); |
886 | if (reply && !(c->flags & CHAN_CLOSE_SENT)) { | 946 | if (want_reply && !(c->flags & CHAN_CLOSE_SENT)) { |
887 | if (!c->have_remote_id) | 947 | if (!c->have_remote_id) |
888 | fatal("%s: channel %d: no remote_id", | 948 | fatal("%s: channel %d: no remote_id", |
889 | __func__, c->self); | 949 | __func__, c->self); |
890 | packet_start(success ? | 950 | if ((r = sshpkt_start(ssh, success ? |
891 | SSH2_MSG_CHANNEL_SUCCESS : SSH2_MSG_CHANNEL_FAILURE); | 951 | SSH2_MSG_CHANNEL_SUCCESS : SSH2_MSG_CHANNEL_FAILURE)) != 0 || |
892 | packet_put_int(c->remote_id); | 952 | (r = sshpkt_put_u32(ssh, c->remote_id)) != 0 || |
893 | packet_send(); | 953 | (r = sshpkt_send(ssh)) != 0) |
954 | sshpkt_fatal(ssh, r, "%s: send reply", __func__); | ||
894 | } | 955 | } |
895 | free(rtype); | 956 | free(rtype); |
896 | return 0; | 957 | return 0; |
897 | } | 958 | } |
898 | 959 | ||
899 | static void | 960 | static void |
900 | server_init_dispatch(void) | 961 | server_init_dispatch(struct ssh *ssh) |
901 | { | 962 | { |
902 | debug("server_init_dispatch"); | 963 | debug("server_init_dispatch"); |
903 | dispatch_init(&dispatch_protocol_error); | 964 | ssh_dispatch_init(ssh, &dispatch_protocol_error); |
904 | dispatch_set(SSH2_MSG_CHANNEL_CLOSE, &channel_input_oclose); | 965 | ssh_dispatch_set(ssh, SSH2_MSG_CHANNEL_CLOSE, &channel_input_oclose); |
905 | dispatch_set(SSH2_MSG_CHANNEL_DATA, &channel_input_data); | 966 | ssh_dispatch_set(ssh, SSH2_MSG_CHANNEL_DATA, &channel_input_data); |
906 | dispatch_set(SSH2_MSG_CHANNEL_EOF, &channel_input_ieof); | 967 | ssh_dispatch_set(ssh, SSH2_MSG_CHANNEL_EOF, &channel_input_ieof); |
907 | dispatch_set(SSH2_MSG_CHANNEL_EXTENDED_DATA, &channel_input_extended_data); | 968 | ssh_dispatch_set(ssh, SSH2_MSG_CHANNEL_EXTENDED_DATA, &channel_input_extended_data); |
908 | dispatch_set(SSH2_MSG_CHANNEL_OPEN, &server_input_channel_open); | 969 | ssh_dispatch_set(ssh, SSH2_MSG_CHANNEL_OPEN, &server_input_channel_open); |
909 | dispatch_set(SSH2_MSG_CHANNEL_OPEN_CONFIRMATION, &channel_input_open_confirmation); | 970 | ssh_dispatch_set(ssh, SSH2_MSG_CHANNEL_OPEN_CONFIRMATION, &channel_input_open_confirmation); |
910 | dispatch_set(SSH2_MSG_CHANNEL_OPEN_FAILURE, &channel_input_open_failure); | 971 | ssh_dispatch_set(ssh, SSH2_MSG_CHANNEL_OPEN_FAILURE, &channel_input_open_failure); |
911 | dispatch_set(SSH2_MSG_CHANNEL_REQUEST, &server_input_channel_req); | 972 | ssh_dispatch_set(ssh, SSH2_MSG_CHANNEL_REQUEST, &server_input_channel_req); |
912 | dispatch_set(SSH2_MSG_CHANNEL_WINDOW_ADJUST, &channel_input_window_adjust); | 973 | ssh_dispatch_set(ssh, SSH2_MSG_CHANNEL_WINDOW_ADJUST, &channel_input_window_adjust); |
913 | dispatch_set(SSH2_MSG_GLOBAL_REQUEST, &server_input_global_request); | 974 | ssh_dispatch_set(ssh, SSH2_MSG_GLOBAL_REQUEST, &server_input_global_request); |
914 | /* client_alive */ | 975 | /* client_alive */ |
915 | dispatch_set(SSH2_MSG_CHANNEL_SUCCESS, &server_input_keep_alive); | 976 | ssh_dispatch_set(ssh, SSH2_MSG_CHANNEL_SUCCESS, &server_input_keep_alive); |
916 | dispatch_set(SSH2_MSG_CHANNEL_FAILURE, &server_input_keep_alive); | 977 | ssh_dispatch_set(ssh, SSH2_MSG_CHANNEL_FAILURE, &server_input_keep_alive); |
917 | dispatch_set(SSH2_MSG_REQUEST_SUCCESS, &server_input_keep_alive); | 978 | ssh_dispatch_set(ssh, SSH2_MSG_REQUEST_SUCCESS, &server_input_keep_alive); |
918 | dispatch_set(SSH2_MSG_REQUEST_FAILURE, &server_input_keep_alive); | 979 | ssh_dispatch_set(ssh, SSH2_MSG_REQUEST_FAILURE, &server_input_keep_alive); |
919 | /* rekeying */ | 980 | /* rekeying */ |
920 | dispatch_set(SSH2_MSG_KEXINIT, &kex_input_kexinit); | 981 | ssh_dispatch_set(ssh, SSH2_MSG_KEXINIT, &kex_input_kexinit); |
921 | } | 982 | } |
@@ -1,4 +1,4 @@ | |||
1 | /* $OpenBSD: session.c,v 1.307 2018/10/04 00:10:11 djm Exp $ */ | 1 | /* $OpenBSD: session.c,v 1.315 2019/02/22 03:37:11 djm Exp $ */ |
2 | /* | 2 | /* |
3 | * Copyright (c) 1995 Tatu Ylonen <ylo@cs.hut.fi>, Espoo, Finland | 3 | * Copyright (c) 1995 Tatu Ylonen <ylo@cs.hut.fi>, Espoo, Finland |
4 | * All rights reserved | 4 | * All rights reserved |
@@ -123,9 +123,6 @@ int do_exec_no_pty(struct ssh *, Session *, const char *); | |||
123 | int do_exec(struct ssh *, Session *, const char *); | 123 | int do_exec(struct ssh *, Session *, const char *); |
124 | void do_login(struct ssh *, Session *, const char *); | 124 | void do_login(struct ssh *, Session *, const char *); |
125 | void do_child(struct ssh *, Session *, const char *); | 125 | void do_child(struct ssh *, Session *, const char *); |
126 | #ifdef LOGIN_NEEDS_UTMPX | ||
127 | static void do_pre_login(Session *s); | ||
128 | #endif | ||
129 | void do_motd(void); | 126 | void do_motd(void); |
130 | int check_quietlogin(Session *, const char *); | 127 | int check_quietlogin(Session *, const char *); |
131 | 128 | ||
@@ -142,7 +139,7 @@ extern int startup_pipe; | |||
142 | extern void destroy_sensitive_data(void); | 139 | extern void destroy_sensitive_data(void); |
143 | extern struct sshbuf *loginmsg; | 140 | extern struct sshbuf *loginmsg; |
144 | extern struct sshauthopt *auth_opts; | 141 | extern struct sshauthopt *auth_opts; |
145 | char *tun_fwd_ifnames; /* serverloop.c */ | 142 | extern char *tun_fwd_ifnames; /* serverloop.c */ |
146 | 143 | ||
147 | /* original command from peer. */ | 144 | /* original command from peer. */ |
148 | const char *original_command = NULL; | 145 | const char *original_command = NULL; |
@@ -204,7 +201,7 @@ auth_input_request_forwarding(struct ssh *ssh, struct passwd * pw) | |||
204 | 201 | ||
205 | /* Create private directory for socket */ | 202 | /* Create private directory for socket */ |
206 | if (mkdtemp(auth_sock_dir) == NULL) { | 203 | if (mkdtemp(auth_sock_dir) == NULL) { |
207 | packet_send_debug("Agent forwarding disabled: " | 204 | ssh_packet_send_debug(ssh, "Agent forwarding disabled: " |
208 | "mkdtemp() failed: %.100s", strerror(errno)); | 205 | "mkdtemp() failed: %.100s", strerror(errno)); |
209 | restore_uid(); | 206 | restore_uid(); |
210 | free(auth_sock_dir); | 207 | free(auth_sock_dir); |
@@ -236,7 +233,9 @@ auth_input_request_forwarding(struct ssh *ssh, struct passwd * pw) | |||
236 | authsock_err: | 233 | authsock_err: |
237 | free(auth_sock_name); | 234 | free(auth_sock_name); |
238 | if (auth_sock_dir != NULL) { | 235 | if (auth_sock_dir != NULL) { |
236 | temporarily_use_uid(pw); | ||
239 | rmdir(auth_sock_dir); | 237 | rmdir(auth_sock_dir); |
238 | restore_uid(); | ||
240 | free(auth_sock_dir); | 239 | free(auth_sock_dir); |
241 | } | 240 | } |
242 | if (sock != -1) | 241 | if (sock != -1) |
@@ -359,7 +358,7 @@ do_authenticated(struct ssh *ssh, Authctxt *authctxt) | |||
359 | else | 358 | else |
360 | channel_permit_all(ssh, FORWARD_REMOTE); | 359 | channel_permit_all(ssh, FORWARD_REMOTE); |
361 | } | 360 | } |
362 | auth_debug_send(); | 361 | auth_debug_send(ssh); |
363 | 362 | ||
364 | prepare_auth_info_file(authctxt->pw, authctxt->session_info); | 363 | prepare_auth_info_file(authctxt->pw, authctxt->session_info); |
365 | 364 | ||
@@ -521,7 +520,7 @@ do_exec_no_pty(struct ssh *ssh, Session *s, const char *command) | |||
521 | 520 | ||
522 | s->pid = pid; | 521 | s->pid = pid; |
523 | /* Set interactive/non-interactive mode. */ | 522 | /* Set interactive/non-interactive mode. */ |
524 | packet_set_interactive(s->display != NULL, | 523 | ssh_packet_set_interactive(ssh, s->display != NULL, |
525 | options.ip_qos_interactive, options.ip_qos_bulk); | 524 | options.ip_qos_interactive, options.ip_qos_bulk); |
526 | 525 | ||
527 | /* | 526 | /* |
@@ -548,7 +547,7 @@ do_exec_no_pty(struct ssh *ssh, Session *s, const char *command) | |||
548 | * Enter the interactive session. Note: server_loop must be able to | 547 | * Enter the interactive session. Note: server_loop must be able to |
549 | * handle the case that fdin and fdout are the same. | 548 | * handle the case that fdin and fdout are the same. |
550 | */ | 549 | */ |
551 | session_set_fds(s, inout[1], inout[1], err[1], | 550 | session_set_fds(ssh, s, inout[1], inout[1], err[1], |
552 | s->is_subsystem, 0); | 551 | s->is_subsystem, 0); |
553 | #endif | 552 | #endif |
554 | return 0; | 553 | return 0; |
@@ -650,41 +649,12 @@ do_exec_pty(struct ssh *ssh, Session *s, const char *command) | |||
650 | 649 | ||
651 | /* Enter interactive session. */ | 650 | /* Enter interactive session. */ |
652 | s->ptymaster = ptymaster; | 651 | s->ptymaster = ptymaster; |
653 | packet_set_interactive(1, | 652 | ssh_packet_set_interactive(ssh, 1, |
654 | options.ip_qos_interactive, options.ip_qos_bulk); | 653 | options.ip_qos_interactive, options.ip_qos_bulk); |
655 | session_set_fds(ssh, s, ptyfd, fdout, -1, 1, 1); | 654 | session_set_fds(ssh, s, ptyfd, fdout, -1, 1, 1); |
656 | return 0; | 655 | return 0; |
657 | } | 656 | } |
658 | 657 | ||
659 | #ifdef LOGIN_NEEDS_UTMPX | ||
660 | static void | ||
661 | do_pre_login(Session *s) | ||
662 | { | ||
663 | struct ssh *ssh = active_state; /* XXX */ | ||
664 | socklen_t fromlen; | ||
665 | struct sockaddr_storage from; | ||
666 | pid_t pid = getpid(); | ||
667 | |||
668 | /* | ||
669 | * Get IP address of client. If the connection is not a socket, let | ||
670 | * the address be 0.0.0.0. | ||
671 | */ | ||
672 | memset(&from, 0, sizeof(from)); | ||
673 | fromlen = sizeof(from); | ||
674 | if (packet_connection_is_on_socket()) { | ||
675 | if (getpeername(packet_get_connection_in(), | ||
676 | (struct sockaddr *)&from, &fromlen) < 0) { | ||
677 | debug("getpeername: %.100s", strerror(errno)); | ||
678 | cleanup_exit(255); | ||
679 | } | ||
680 | } | ||
681 | |||
682 | record_utmp_only(pid, s->tty, s->pw->pw_name, | ||
683 | session_get_remote_name_or_ip(ssh, utmp_len, options.use_dns), | ||
684 | (struct sockaddr *)&from, fromlen); | ||
685 | } | ||
686 | #endif | ||
687 | |||
688 | /* | 658 | /* |
689 | * This is called to fork and execute a command. If another command is | 659 | * This is called to fork and execute a command. If another command is |
690 | * to be forced, execute that instead. | 660 | * to be forced, execute that instead. |
@@ -783,8 +753,8 @@ do_login(struct ssh *ssh, Session *s, const char *command) | |||
783 | */ | 753 | */ |
784 | memset(&from, 0, sizeof(from)); | 754 | memset(&from, 0, sizeof(from)); |
785 | fromlen = sizeof(from); | 755 | fromlen = sizeof(from); |
786 | if (packet_connection_is_on_socket()) { | 756 | if (ssh_packet_connection_is_on_socket(ssh)) { |
787 | if (getpeername(packet_get_connection_in(), | 757 | if (getpeername(ssh_packet_get_connection_in(ssh), |
788 | (struct sockaddr *)&from, &fromlen) < 0) { | 758 | (struct sockaddr *)&from, &fromlen) < 0) { |
789 | debug("getpeername: %.100s", strerror(errno)); | 759 | debug("getpeername: %.100s", strerror(errno)); |
790 | cleanup_exit(255); | 760 | cleanup_exit(255); |
@@ -1082,8 +1052,11 @@ do_setup_env(struct ssh *ssh, Session *s, const char *shell) | |||
1082 | # endif /* HAVE_CYGWIN */ | 1052 | # endif /* HAVE_CYGWIN */ |
1083 | #endif /* HAVE_LOGIN_CAP */ | 1053 | #endif /* HAVE_LOGIN_CAP */ |
1084 | 1054 | ||
1085 | snprintf(buf, sizeof buf, "%.200s/%.50s", _PATH_MAILDIR, pw->pw_name); | 1055 | if (!options.use_pam) { |
1086 | child_set_env(&env, &envsize, "MAIL", buf); | 1056 | snprintf(buf, sizeof buf, "%.200s/%.50s", |
1057 | _PATH_MAILDIR, pw->pw_name); | ||
1058 | child_set_env(&env, &envsize, "MAIL", buf); | ||
1059 | } | ||
1087 | 1060 | ||
1088 | /* Normal systems set SHELL by default. */ | 1061 | /* Normal systems set SHELL by default. */ |
1089 | child_set_env(&env, &envsize, "SHELL", shell); | 1062 | child_set_env(&env, &envsize, "SHELL", shell); |
@@ -1162,15 +1135,18 @@ do_setup_env(struct ssh *ssh, Session *s, const char *shell) | |||
1162 | char **p; | 1135 | char **p; |
1163 | 1136 | ||
1164 | /* | 1137 | /* |
1165 | * Don't allow SSH_AUTH_INFO variables posted to PAM to leak | 1138 | * Don't allow PAM-internal env vars to leak |
1166 | * back into the environment. | 1139 | * back into the session environment. |
1167 | */ | 1140 | */ |
1141 | #define PAM_ENV_BLACKLIST "SSH_AUTH_INFO*,SSH_CONNECTION*" | ||
1168 | p = fetch_pam_child_environment(); | 1142 | p = fetch_pam_child_environment(); |
1169 | copy_environment_blacklist(p, &env, &envsize, "SSH_AUTH_INFO*"); | 1143 | copy_environment_blacklist(p, &env, &envsize, |
1144 | PAM_ENV_BLACKLIST); | ||
1170 | free_pam_environment(p); | 1145 | free_pam_environment(p); |
1171 | 1146 | ||
1172 | p = fetch_pam_environment(); | 1147 | p = fetch_pam_environment(); |
1173 | copy_environment_blacklist(p, &env, &envsize, "SSH_AUTH_INFO*"); | 1148 | copy_environment_blacklist(p, &env, &envsize, |
1149 | PAM_ENV_BLACKLIST); | ||
1174 | free_pam_environment(p); | 1150 | free_pam_environment(p); |
1175 | } | 1151 | } |
1176 | #endif /* USE_PAM */ | 1152 | #endif /* USE_PAM */ |
@@ -1192,7 +1168,7 @@ do_setup_env(struct ssh *ssh, Session *s, const char *shell) | |||
1192 | ssh_local_port(ssh)); | 1168 | ssh_local_port(ssh)); |
1193 | child_set_env(&env, &envsize, "SSH_CLIENT", buf); | 1169 | child_set_env(&env, &envsize, "SSH_CLIENT", buf); |
1194 | 1170 | ||
1195 | laddr = get_local_ipaddr(packet_get_connection_in()); | 1171 | laddr = get_local_ipaddr(ssh_packet_get_connection_in(ssh)); |
1196 | snprintf(buf, sizeof buf, "%.50s %d %.50s %d", | 1172 | snprintf(buf, sizeof buf, "%.50s %d %.50s %d", |
1197 | ssh_remote_ipaddr(ssh), ssh_remote_port(ssh), | 1173 | ssh_remote_ipaddr(ssh), ssh_remote_port(ssh), |
1198 | laddr, ssh_local_port(ssh)); | 1174 | laddr, ssh_local_port(ssh)); |
@@ -1334,7 +1310,7 @@ safely_chroot(const char *path, uid_t uid) | |||
1334 | char component[PATH_MAX]; | 1310 | char component[PATH_MAX]; |
1335 | struct stat st; | 1311 | struct stat st; |
1336 | 1312 | ||
1337 | if (*path != '/') | 1313 | if (!path_absolute(path)) |
1338 | fatal("chroot path does not begin at root"); | 1314 | fatal("chroot path does not begin at root"); |
1339 | if (strlen(path) >= sizeof(component)) | 1315 | if (strlen(path) >= sizeof(component)) |
1340 | fatal("chroot path too long"); | 1316 | fatal("chroot path too long"); |
@@ -1359,7 +1335,7 @@ safely_chroot(const char *path, uid_t uid) | |||
1359 | component, strerror(errno)); | 1335 | component, strerror(errno)); |
1360 | if (st.st_uid != 0 || (st.st_mode & 022) != 0) | 1336 | if (st.st_uid != 0 || (st.st_mode & 022) != 0) |
1361 | fatal("bad ownership or modes for chroot " | 1337 | fatal("bad ownership or modes for chroot " |
1362 | "directory %s\"%s\"", | 1338 | "directory %s\"%s\"", |
1363 | cp == NULL ? "" : "component ", component); | 1339 | cp == NULL ? "" : "component ", component); |
1364 | if (!S_ISDIR(st.st_mode)) | 1340 | if (!S_ISDIR(st.st_mode)) |
1365 | fatal("chroot path %s\"%s\" is not a directory", | 1341 | fatal("chroot path %s\"%s\" is not a directory", |
@@ -1497,11 +1473,12 @@ child_close_fds(struct ssh *ssh) | |||
1497 | auth_sock = -1; | 1473 | auth_sock = -1; |
1498 | } | 1474 | } |
1499 | 1475 | ||
1500 | if (packet_get_connection_in() == packet_get_connection_out()) | 1476 | if (ssh_packet_get_connection_in(ssh) == |
1501 | close(packet_get_connection_in()); | 1477 | ssh_packet_get_connection_out(ssh)) |
1478 | close(ssh_packet_get_connection_in(ssh)); | ||
1502 | else { | 1479 | else { |
1503 | close(packet_get_connection_in()); | 1480 | close(ssh_packet_get_connection_in(ssh)); |
1504 | close(packet_get_connection_out()); | 1481 | close(ssh_packet_get_connection_out(ssh)); |
1505 | } | 1482 | } |
1506 | /* | 1483 | /* |
1507 | * Close all descriptors related to channels. They will still remain | 1484 | * Close all descriptors related to channels. They will still remain |
@@ -1535,15 +1512,16 @@ void | |||
1535 | do_child(struct ssh *ssh, Session *s, const char *command) | 1512 | do_child(struct ssh *ssh, Session *s, const char *command) |
1536 | { | 1513 | { |
1537 | extern char **environ; | 1514 | extern char **environ; |
1538 | char **env; | 1515 | char **env, *argv[ARGV_MAX], remote_id[512]; |
1539 | char *argv[ARGV_MAX]; | ||
1540 | const char *shell, *shell0; | 1516 | const char *shell, *shell0; |
1541 | struct passwd *pw = s->pw; | 1517 | struct passwd *pw = s->pw; |
1542 | int r = 0; | 1518 | int r = 0; |
1543 | 1519 | ||
1520 | sshpkt_fmt_connection_id(ssh, remote_id, sizeof(remote_id)); | ||
1521 | |||
1544 | /* remove hostkey from the child's memory */ | 1522 | /* remove hostkey from the child's memory */ |
1545 | destroy_sensitive_data(); | 1523 | destroy_sensitive_data(); |
1546 | packet_clear_keys(); | 1524 | ssh_packet_clear_keys(ssh); |
1547 | 1525 | ||
1548 | /* Force a password change */ | 1526 | /* Force a password change */ |
1549 | if (s->authctxt->force_pwchange) { | 1527 | if (s->authctxt->force_pwchange) { |
@@ -1663,6 +1641,8 @@ do_child(struct ssh *ssh, Session *s, const char *command) | |||
1663 | signal(SIGPIPE, SIG_DFL); | 1641 | signal(SIGPIPE, SIG_DFL); |
1664 | 1642 | ||
1665 | if (s->is_subsystem == SUBSYSTEM_INT_SFTP_ERROR) { | 1643 | if (s->is_subsystem == SUBSYSTEM_INT_SFTP_ERROR) { |
1644 | error("Connection from %s: refusing non-sftp session", | ||
1645 | remote_id); | ||
1666 | printf("This service allows sftp connections only.\n"); | 1646 | printf("This service allows sftp connections only.\n"); |
1667 | fflush(NULL); | 1647 | fflush(NULL); |
1668 | exit(1); | 1648 | exit(1); |
@@ -1905,11 +1885,14 @@ session_by_pid(pid_t pid) | |||
1905 | static int | 1885 | static int |
1906 | session_window_change_req(struct ssh *ssh, Session *s) | 1886 | session_window_change_req(struct ssh *ssh, Session *s) |
1907 | { | 1887 | { |
1908 | s->col = packet_get_int(); | 1888 | int r; |
1909 | s->row = packet_get_int(); | 1889 | |
1910 | s->xpixel = packet_get_int(); | 1890 | if ((r = sshpkt_get_u32(ssh, &s->col)) != 0 || |
1911 | s->ypixel = packet_get_int(); | 1891 | (r = sshpkt_get_u32(ssh, &s->row)) != 0 || |
1912 | packet_check_eom(); | 1892 | (r = sshpkt_get_u32(ssh, &s->xpixel)) != 0 || |
1893 | (r = sshpkt_get_u32(ssh, &s->ypixel)) != 0 || | ||
1894 | (r = sshpkt_get_end(ssh)) != 0) | ||
1895 | sshpkt_fatal(ssh, r, "%s: parse packet", __func__); | ||
1913 | pty_change_window_size(s->ptyfd, s->row, s->col, s->xpixel, s->ypixel); | 1896 | pty_change_window_size(s->ptyfd, s->row, s->col, s->xpixel, s->ypixel); |
1914 | return 1; | 1897 | return 1; |
1915 | } | 1898 | } |
@@ -1917,22 +1900,23 @@ session_window_change_req(struct ssh *ssh, Session *s) | |||
1917 | static int | 1900 | static int |
1918 | session_pty_req(struct ssh *ssh, Session *s) | 1901 | session_pty_req(struct ssh *ssh, Session *s) |
1919 | { | 1902 | { |
1920 | u_int len; | 1903 | int r; |
1921 | 1904 | ||
1922 | if (!auth_opts->permit_pty_flag || !options.permit_tty) { | 1905 | if (!auth_opts->permit_pty_flag || !options.permit_tty) { |
1923 | debug("Allocating a pty not permitted for this connection."); | 1906 | debug("Allocating a pty not permitted for this connection."); |
1924 | return 0; | 1907 | return 0; |
1925 | } | 1908 | } |
1926 | if (s->ttyfd != -1) { | 1909 | if (s->ttyfd != -1) { |
1927 | packet_disconnect("Protocol error: you already have a pty."); | 1910 | ssh_packet_disconnect(ssh, "Protocol error: you already have a pty."); |
1928 | return 0; | 1911 | return 0; |
1929 | } | 1912 | } |
1930 | 1913 | ||
1931 | s->term = packet_get_string(&len); | 1914 | if ((r = sshpkt_get_cstring(ssh, &s->term, NULL)) != 0 || |
1932 | s->col = packet_get_int(); | 1915 | (r = sshpkt_get_u32(ssh, &s->col)) != 0 || |
1933 | s->row = packet_get_int(); | 1916 | (r = sshpkt_get_u32(ssh, &s->row)) != 0 || |
1934 | s->xpixel = packet_get_int(); | 1917 | (r = sshpkt_get_u32(ssh, &s->xpixel)) != 0 || |
1935 | s->ypixel = packet_get_int(); | 1918 | (r = sshpkt_get_u32(ssh, &s->ypixel)) != 0) |
1919 | sshpkt_fatal(ssh, r, "%s: parse packet", __func__); | ||
1936 | 1920 | ||
1937 | if (strcmp(s->term, "") == 0) { | 1921 | if (strcmp(s->term, "") == 0) { |
1938 | free(s->term); | 1922 | free(s->term); |
@@ -1954,13 +1938,15 @@ session_pty_req(struct ssh *ssh, Session *s) | |||
1954 | 1938 | ||
1955 | ssh_tty_parse_modes(ssh, s->ttyfd); | 1939 | ssh_tty_parse_modes(ssh, s->ttyfd); |
1956 | 1940 | ||
1941 | if ((r = sshpkt_get_end(ssh)) != 0) | ||
1942 | sshpkt_fatal(ssh, r, "%s: parse packet", __func__); | ||
1943 | |||
1957 | if (!use_privsep) | 1944 | if (!use_privsep) |
1958 | pty_setowner(s->pw, s->tty); | 1945 | pty_setowner(s->pw, s->tty); |
1959 | 1946 | ||
1960 | /* Set window size from the packet. */ | 1947 | /* Set window size from the packet. */ |
1961 | pty_change_window_size(s->ptyfd, s->row, s->col, s->xpixel, s->ypixel); | 1948 | pty_change_window_size(s->ptyfd, s->row, s->col, s->xpixel, s->ypixel); |
1962 | 1949 | ||
1963 | packet_check_eom(); | ||
1964 | session_proctitle(s); | 1950 | session_proctitle(s); |
1965 | return 1; | 1951 | return 1; |
1966 | } | 1952 | } |
@@ -1969,13 +1955,13 @@ static int | |||
1969 | session_subsystem_req(struct ssh *ssh, Session *s) | 1955 | session_subsystem_req(struct ssh *ssh, Session *s) |
1970 | { | 1956 | { |
1971 | struct stat st; | 1957 | struct stat st; |
1972 | u_int len; | 1958 | int r, success = 0; |
1973 | int success = 0; | ||
1974 | char *prog, *cmd; | 1959 | char *prog, *cmd; |
1975 | u_int i; | 1960 | u_int i; |
1976 | 1961 | ||
1977 | s->subsys = packet_get_string(&len); | 1962 | if ((r = sshpkt_get_cstring(ssh, &s->subsys, NULL)) != 0 || |
1978 | packet_check_eom(); | 1963 | (r = sshpkt_get_end(ssh)) != 0) |
1964 | sshpkt_fatal(ssh, r, "%s: parse packet", __func__); | ||
1979 | debug2("subsystem request for %.100s by user %s", s->subsys, | 1965 | debug2("subsystem request for %.100s by user %s", s->subsys, |
1980 | s->pw->pw_name); | 1966 | s->pw->pw_name); |
1981 | 1967 | ||
@@ -2008,18 +1994,22 @@ session_subsystem_req(struct ssh *ssh, Session *s) | |||
2008 | static int | 1994 | static int |
2009 | session_x11_req(struct ssh *ssh, Session *s) | 1995 | session_x11_req(struct ssh *ssh, Session *s) |
2010 | { | 1996 | { |
2011 | int success; | 1997 | int r, success; |
1998 | u_char single_connection = 0; | ||
2012 | 1999 | ||
2013 | if (s->auth_proto != NULL || s->auth_data != NULL) { | 2000 | if (s->auth_proto != NULL || s->auth_data != NULL) { |
2014 | error("session_x11_req: session %d: " | 2001 | error("session_x11_req: session %d: " |
2015 | "x11 forwarding already active", s->self); | 2002 | "x11 forwarding already active", s->self); |
2016 | return 0; | 2003 | return 0; |
2017 | } | 2004 | } |
2018 | s->single_connection = packet_get_char(); | 2005 | if ((r = sshpkt_get_u8(ssh, &single_connection)) != 0 || |
2019 | s->auth_proto = packet_get_string(NULL); | 2006 | (r = sshpkt_get_cstring(ssh, &s->auth_proto, NULL)) != 0 || |
2020 | s->auth_data = packet_get_string(NULL); | 2007 | (r = sshpkt_get_cstring(ssh, &s->auth_data, NULL)) != 0 || |
2021 | s->screen = packet_get_int(); | 2008 | (r = sshpkt_get_u32(ssh, &s->screen)) != 0 || |
2022 | packet_check_eom(); | 2009 | (r = sshpkt_get_end(ssh)) != 0) |
2010 | sshpkt_fatal(ssh, r, "%s: parse packet", __func__); | ||
2011 | |||
2012 | s->single_connection = single_connection; | ||
2023 | 2013 | ||
2024 | if (xauth_valid_string(s->auth_proto) && | 2014 | if (xauth_valid_string(s->auth_proto) && |
2025 | xauth_valid_string(s->auth_data)) | 2015 | xauth_valid_string(s->auth_data)) |
@@ -2040,17 +2030,24 @@ session_x11_req(struct ssh *ssh, Session *s) | |||
2040 | static int | 2030 | static int |
2041 | session_shell_req(struct ssh *ssh, Session *s) | 2031 | session_shell_req(struct ssh *ssh, Session *s) |
2042 | { | 2032 | { |
2043 | packet_check_eom(); | 2033 | int r; |
2034 | |||
2035 | if ((r = sshpkt_get_end(ssh)) != 0) | ||
2036 | sshpkt_fatal(ssh, r, "%s: parse packet", __func__); | ||
2044 | return do_exec(ssh, s, NULL) == 0; | 2037 | return do_exec(ssh, s, NULL) == 0; |
2045 | } | 2038 | } |
2046 | 2039 | ||
2047 | static int | 2040 | static int |
2048 | session_exec_req(struct ssh *ssh, Session *s) | 2041 | session_exec_req(struct ssh *ssh, Session *s) |
2049 | { | 2042 | { |
2050 | u_int len, success; | 2043 | u_int success; |
2044 | int r; | ||
2045 | char *command = NULL; | ||
2046 | |||
2047 | if ((r = sshpkt_get_cstring(ssh, &command, NULL)) != 0 || | ||
2048 | (r = sshpkt_get_end(ssh)) != 0) | ||
2049 | sshpkt_fatal(ssh, r, "%s: parse packet", __func__); | ||
2051 | 2050 | ||
2052 | char *command = packet_get_string(&len); | ||
2053 | packet_check_eom(); | ||
2054 | success = do_exec(ssh, s, command) == 0; | 2051 | success = do_exec(ssh, s, command) == 0; |
2055 | free(command); | 2052 | free(command); |
2056 | return success; | 2053 | return success; |
@@ -2059,9 +2056,11 @@ session_exec_req(struct ssh *ssh, Session *s) | |||
2059 | static int | 2056 | static int |
2060 | session_break_req(struct ssh *ssh, Session *s) | 2057 | session_break_req(struct ssh *ssh, Session *s) |
2061 | { | 2058 | { |
2059 | int r; | ||
2062 | 2060 | ||
2063 | packet_get_int(); /* ignored */ | 2061 | if ((r = sshpkt_get_u32(ssh, NULL)) != 0 || /* ignore */ |
2064 | packet_check_eom(); | 2062 | (r = sshpkt_get_end(ssh)) != 0) |
2063 | sshpkt_fatal(ssh, r, "%s: parse packet", __func__); | ||
2065 | 2064 | ||
2066 | if (s->ptymaster == -1 || tcsendbreak(s->ptymaster, 0) < 0) | 2065 | if (s->ptymaster == -1 || tcsendbreak(s->ptymaster, 0) < 0) |
2067 | return 0; | 2066 | return 0; |
@@ -2072,11 +2071,13 @@ static int | |||
2072 | session_env_req(struct ssh *ssh, Session *s) | 2071 | session_env_req(struct ssh *ssh, Session *s) |
2073 | { | 2072 | { |
2074 | char *name, *val; | 2073 | char *name, *val; |
2075 | u_int name_len, val_len, i; | 2074 | u_int i; |
2075 | int r; | ||
2076 | 2076 | ||
2077 | name = packet_get_cstring(&name_len); | 2077 | if ((r = sshpkt_get_cstring(ssh, &name, NULL)) != 0 || |
2078 | val = packet_get_cstring(&val_len); | 2078 | (r = sshpkt_get_cstring(ssh, &val, NULL)) != 0 || |
2079 | packet_check_eom(); | 2079 | (r = sshpkt_get_end(ssh)) != 0) |
2080 | sshpkt_fatal(ssh, r, "%s: parse packet", __func__); | ||
2080 | 2081 | ||
2081 | /* Don't set too many environment variables */ | 2082 | /* Don't set too many environment variables */ |
2082 | if (s->num_env > 128) { | 2083 | if (s->num_env > 128) { |
@@ -2179,8 +2180,10 @@ static int | |||
2179 | session_auth_agent_req(struct ssh *ssh, Session *s) | 2180 | session_auth_agent_req(struct ssh *ssh, Session *s) |
2180 | { | 2181 | { |
2181 | static int called = 0; | 2182 | static int called = 0; |
2183 | int r; | ||
2182 | 2184 | ||
2183 | packet_check_eom(); | 2185 | if ((r = sshpkt_get_end(ssh)) != 0) |
2186 | sshpkt_fatal(ssh, r, "%s: parse packet", __func__); | ||
2184 | if (!auth_opts->permit_agent_forwarding_flag || | 2187 | if (!auth_opts->permit_agent_forwarding_flag || |
2185 | !options.allow_agent_forwarding) { | 2188 | !options.allow_agent_forwarding) { |
2186 | debug("%s: agent forwarding disabled", __func__); | 2189 | debug("%s: agent forwarding disabled", __func__); |
@@ -2370,6 +2373,7 @@ static void | |||
2370 | session_exit_message(struct ssh *ssh, Session *s, int status) | 2373 | session_exit_message(struct ssh *ssh, Session *s, int status) |
2371 | { | 2374 | { |
2372 | Channel *c; | 2375 | Channel *c; |
2376 | int r; | ||
2373 | 2377 | ||
2374 | if ((c = channel_lookup(ssh, s->chanid)) == NULL) | 2378 | if ((c = channel_lookup(ssh, s->chanid)) == NULL) |
2375 | fatal("%s: session %d: no channel %d", | 2379 | fatal("%s: session %d: no channel %d", |
@@ -2379,22 +2383,23 @@ session_exit_message(struct ssh *ssh, Session *s, int status) | |||
2379 | 2383 | ||
2380 | if (WIFEXITED(status)) { | 2384 | if (WIFEXITED(status)) { |
2381 | channel_request_start(ssh, s->chanid, "exit-status", 0); | 2385 | channel_request_start(ssh, s->chanid, "exit-status", 0); |
2382 | packet_put_int(WEXITSTATUS(status)); | 2386 | if ((r = sshpkt_put_u32(ssh, WEXITSTATUS(status))) != 0 || |
2383 | packet_send(); | 2387 | (r = sshpkt_send(ssh)) != 0) |
2388 | sshpkt_fatal(ssh, r, "%s: exit reply", __func__); | ||
2384 | } else if (WIFSIGNALED(status)) { | 2389 | } else if (WIFSIGNALED(status)) { |
2385 | channel_request_start(ssh, s->chanid, "exit-signal", 0); | 2390 | channel_request_start(ssh, s->chanid, "exit-signal", 0); |
2386 | packet_put_cstring(sig2name(WTERMSIG(status))); | 2391 | #ifndef WCOREDUMP |
2387 | #ifdef WCOREDUMP | 2392 | # define WCOREDUMP(x) (0) |
2388 | packet_put_char(WCOREDUMP(status)? 1 : 0); | 2393 | #endif |
2389 | #else /* WCOREDUMP */ | 2394 | if ((r = sshpkt_put_cstring(ssh, sig2name(WTERMSIG(status)))) != 0 || |
2390 | packet_put_char(0); | 2395 | (r = sshpkt_put_u8(ssh, WCOREDUMP(status)? 1 : 0)) != 0 || |
2391 | #endif /* WCOREDUMP */ | 2396 | (r = sshpkt_put_cstring(ssh, "")) != 0 || |
2392 | packet_put_cstring(""); | 2397 | (r = sshpkt_put_cstring(ssh, "")) != 0 || |
2393 | packet_put_cstring(""); | 2398 | (r = sshpkt_send(ssh)) != 0) |
2394 | packet_send(); | 2399 | sshpkt_fatal(ssh, r, "%s: exit reply", __func__); |
2395 | } else { | 2400 | } else { |
2396 | /* Some weird exit cause. Just exit. */ | 2401 | /* Some weird exit cause. Just exit. */ |
2397 | packet_disconnect("wait returned status %04x.", status); | 2402 | ssh_packet_disconnect(ssh, "wait returned status %04x.", status); |
2398 | } | 2403 | } |
2399 | 2404 | ||
2400 | /* disconnect channel */ | 2405 | /* disconnect channel */ |
@@ -2565,7 +2570,7 @@ session_setup_x11fwd(struct ssh *ssh, Session *s) | |||
2565 | u_int i; | 2570 | u_int i; |
2566 | 2571 | ||
2567 | if (!auth_opts->permit_x11_forwarding_flag) { | 2572 | if (!auth_opts->permit_x11_forwarding_flag) { |
2568 | packet_send_debug("X11 forwarding disabled by key options."); | 2573 | ssh_packet_send_debug(ssh, "X11 forwarding disabled by key options."); |
2569 | return 0; | 2574 | return 0; |
2570 | } | 2575 | } |
2571 | if (!options.x11_forwarding) { | 2576 | if (!options.x11_forwarding) { |
@@ -2574,7 +2579,7 @@ session_setup_x11fwd(struct ssh *ssh, Session *s) | |||
2574 | } | 2579 | } |
2575 | if (options.xauth_location == NULL || | 2580 | if (options.xauth_location == NULL || |
2576 | (stat(options.xauth_location, &st) == -1)) { | 2581 | (stat(options.xauth_location, &st) == -1)) { |
2577 | packet_send_debug("No xauth program; cannot forward X11."); | 2582 | ssh_packet_send_debug(ssh, "No xauth program; cannot forward X11."); |
2578 | return 0; | 2583 | return 0; |
2579 | } | 2584 | } |
2580 | if (s->display != NULL) { | 2585 | if (s->display != NULL) { |
@@ -2615,7 +2620,7 @@ session_setup_x11fwd(struct ssh *ssh, Session *s) | |||
2615 | he = gethostbyname(hostname); | 2620 | he = gethostbyname(hostname); |
2616 | if (he == NULL) { | 2621 | if (he == NULL) { |
2617 | error("Can't get IP address for X11 DISPLAY."); | 2622 | error("Can't get IP address for X11 DISPLAY."); |
2618 | packet_send_debug("Can't get IP address for X11 DISPLAY."); | 2623 | ssh_packet_send_debug(ssh, "Can't get IP address for X11 DISPLAY."); |
2619 | return 0; | 2624 | return 0; |
2620 | } | 2625 | } |
2621 | memcpy(&my_addr, he->h_addr_list[0], sizeof(struct in_addr)); | 2626 | memcpy(&my_addr, he->h_addr_list[0], sizeof(struct in_addr)); |
diff --git a/sftp-client.c b/sftp-client.c index 4986d6d8d..73e3c2f53 100644 --- a/sftp-client.c +++ b/sftp-client.c | |||
@@ -1,4 +1,4 @@ | |||
1 | /* $OpenBSD: sftp-client.c,v 1.130 2018/07/31 03:07:24 djm Exp $ */ | 1 | /* $OpenBSD: sftp-client.c,v 1.133 2019/01/24 16:52:17 dtucker Exp $ */ |
2 | /* | 2 | /* |
3 | * Copyright (c) 2001-2004 Damien Miller <djm@openbsd.org> | 3 | * Copyright (c) 2001-2004 Damien Miller <djm@openbsd.org> |
4 | * | 4 | * |
@@ -86,6 +86,7 @@ struct sftp_conn { | |||
86 | #define SFTP_EXT_FSTATVFS 0x00000004 | 86 | #define SFTP_EXT_FSTATVFS 0x00000004 |
87 | #define SFTP_EXT_HARDLINK 0x00000008 | 87 | #define SFTP_EXT_HARDLINK 0x00000008 |
88 | #define SFTP_EXT_FSYNC 0x00000010 | 88 | #define SFTP_EXT_FSYNC 0x00000010 |
89 | #define SFTP_EXT_LSETSTAT 0x00000020 | ||
89 | u_int exts; | 90 | u_int exts; |
90 | u_int64_t limit_kbps; | 91 | u_int64_t limit_kbps; |
91 | struct bwlimit bwlimit_in, bwlimit_out; | 92 | struct bwlimit bwlimit_in, bwlimit_out; |
@@ -101,7 +102,9 @@ sftpio(void *_bwlimit, size_t amount) | |||
101 | { | 102 | { |
102 | struct bwlimit *bwlimit = (struct bwlimit *)_bwlimit; | 103 | struct bwlimit *bwlimit = (struct bwlimit *)_bwlimit; |
103 | 104 | ||
104 | bandwidth_limit(bwlimit, amount); | 105 | refresh_progress_meter(0); |
106 | if (bwlimit != NULL) | ||
107 | bandwidth_limit(bwlimit, amount); | ||
105 | return 0; | 108 | return 0; |
106 | } | 109 | } |
107 | 110 | ||
@@ -121,8 +124,8 @@ send_msg(struct sftp_conn *conn, struct sshbuf *m) | |||
121 | iov[1].iov_base = (u_char *)sshbuf_ptr(m); | 124 | iov[1].iov_base = (u_char *)sshbuf_ptr(m); |
122 | iov[1].iov_len = sshbuf_len(m); | 125 | iov[1].iov_len = sshbuf_len(m); |
123 | 126 | ||
124 | if (atomiciov6(writev, conn->fd_out, iov, 2, | 127 | if (atomiciov6(writev, conn->fd_out, iov, 2, sftpio, |
125 | conn->limit_kbps > 0 ? sftpio : NULL, &conn->bwlimit_out) != | 128 | conn->limit_kbps > 0 ? &conn->bwlimit_out : NULL) != |
126 | sshbuf_len(m) + sizeof(mlen)) | 129 | sshbuf_len(m) + sizeof(mlen)) |
127 | fatal("Couldn't send packet: %s", strerror(errno)); | 130 | fatal("Couldn't send packet: %s", strerror(errno)); |
128 | 131 | ||
@@ -138,8 +141,8 @@ get_msg_extended(struct sftp_conn *conn, struct sshbuf *m, int initial) | |||
138 | 141 | ||
139 | if ((r = sshbuf_reserve(m, 4, &p)) != 0) | 142 | if ((r = sshbuf_reserve(m, 4, &p)) != 0) |
140 | fatal("%s: buffer error: %s", __func__, ssh_err(r)); | 143 | fatal("%s: buffer error: %s", __func__, ssh_err(r)); |
141 | if (atomicio6(read, conn->fd_in, p, 4, | 144 | if (atomicio6(read, conn->fd_in, p, 4, sftpio, |
142 | conn->limit_kbps > 0 ? sftpio : NULL, &conn->bwlimit_in) != 4) { | 145 | conn->limit_kbps > 0 ? &conn->bwlimit_in : NULL) != 4) { |
143 | if (errno == EPIPE || errno == ECONNRESET) | 146 | if (errno == EPIPE || errno == ECONNRESET) |
144 | fatal("Connection closed"); | 147 | fatal("Connection closed"); |
145 | else | 148 | else |
@@ -157,8 +160,8 @@ get_msg_extended(struct sftp_conn *conn, struct sshbuf *m, int initial) | |||
157 | 160 | ||
158 | if ((r = sshbuf_reserve(m, msg_len, &p)) != 0) | 161 | if ((r = sshbuf_reserve(m, msg_len, &p)) != 0) |
159 | fatal("%s: buffer error: %s", __func__, ssh_err(r)); | 162 | fatal("%s: buffer error: %s", __func__, ssh_err(r)); |
160 | if (atomicio6(read, conn->fd_in, p, msg_len, | 163 | if (atomicio6(read, conn->fd_in, p, msg_len, sftpio, |
161 | conn->limit_kbps > 0 ? sftpio : NULL, &conn->bwlimit_in) | 164 | conn->limit_kbps > 0 ? &conn->bwlimit_in : NULL) |
162 | != msg_len) { | 165 | != msg_len) { |
163 | if (errno == EPIPE) | 166 | if (errno == EPIPE) |
164 | fatal("Connection closed"); | 167 | fatal("Connection closed"); |
@@ -463,6 +466,10 @@ do_init(int fd_in, int fd_out, u_int transfer_buflen, u_int num_requests, | |||
463 | strcmp((char *)value, "1") == 0) { | 466 | strcmp((char *)value, "1") == 0) { |
464 | ret->exts |= SFTP_EXT_FSYNC; | 467 | ret->exts |= SFTP_EXT_FSYNC; |
465 | known = 1; | 468 | known = 1; |
469 | } else if (strcmp(name, "lsetstat@openssh.com") == 0 && | ||
470 | strcmp((char *)value, "1") == 0) { | ||
471 | ret->exts |= SFTP_EXT_LSETSTAT; | ||
472 | known = 1; | ||
466 | } | 473 | } |
467 | if (known) { | 474 | if (known) { |
468 | debug2("Server supports extension \"%s\" revision %s", | 475 | debug2("Server supports extension \"%s\" revision %s", |
@@ -1096,7 +1103,6 @@ do_statvfs(struct sftp_conn *conn, const char *path, struct sftp_statvfs *st, | |||
1096 | 1103 | ||
1097 | if ((msg = sshbuf_new()) == NULL) | 1104 | if ((msg = sshbuf_new()) == NULL) |
1098 | fatal("%s: sshbuf_new failed", __func__); | 1105 | fatal("%s: sshbuf_new failed", __func__); |
1099 | sshbuf_reset(msg); | ||
1100 | if ((r = sshbuf_put_u8(msg, SSH2_FXP_EXTENDED)) != 0 || | 1106 | if ((r = sshbuf_put_u8(msg, SSH2_FXP_EXTENDED)) != 0 || |
1101 | (r = sshbuf_put_u32(msg, id)) != 0 || | 1107 | (r = sshbuf_put_u32(msg, id)) != 0 || |
1102 | (r = sshbuf_put_cstring(msg, "statvfs@openssh.com")) != 0 || | 1108 | (r = sshbuf_put_cstring(msg, "statvfs@openssh.com")) != 0 || |
@@ -1125,7 +1131,6 @@ do_fstatvfs(struct sftp_conn *conn, const u_char *handle, u_int handle_len, | |||
1125 | 1131 | ||
1126 | if ((msg = sshbuf_new()) == NULL) | 1132 | if ((msg = sshbuf_new()) == NULL) |
1127 | fatal("%s: sshbuf_new failed", __func__); | 1133 | fatal("%s: sshbuf_new failed", __func__); |
1128 | sshbuf_reset(msg); | ||
1129 | if ((r = sshbuf_put_u8(msg, SSH2_FXP_EXTENDED)) != 0 || | 1134 | if ((r = sshbuf_put_u8(msg, SSH2_FXP_EXTENDED)) != 0 || |
1130 | (r = sshbuf_put_u32(msg, id)) != 0 || | 1135 | (r = sshbuf_put_u32(msg, id)) != 0 || |
1131 | (r = sshbuf_put_cstring(msg, "fstatvfs@openssh.com")) != 0 || | 1136 | (r = sshbuf_put_cstring(msg, "fstatvfs@openssh.com")) != 0 || |
@@ -1138,6 +1143,38 @@ do_fstatvfs(struct sftp_conn *conn, const u_char *handle, u_int handle_len, | |||
1138 | } | 1143 | } |
1139 | #endif | 1144 | #endif |
1140 | 1145 | ||
1146 | int | ||
1147 | do_lsetstat(struct sftp_conn *conn, const char *path, Attrib *a) | ||
1148 | { | ||
1149 | struct sshbuf *msg; | ||
1150 | u_int status, id; | ||
1151 | int r; | ||
1152 | |||
1153 | if ((conn->exts & SFTP_EXT_LSETSTAT) == 0) { | ||
1154 | error("Server does not support lsetstat@openssh.com extension"); | ||
1155 | return -1; | ||
1156 | } | ||
1157 | |||
1158 | id = conn->msg_id++; | ||
1159 | if ((msg = sshbuf_new()) == NULL) | ||
1160 | fatal("%s: sshbuf_new failed", __func__); | ||
1161 | if ((r = sshbuf_put_u8(msg, SSH2_FXP_EXTENDED)) != 0 || | ||
1162 | (r = sshbuf_put_u32(msg, id)) != 0 || | ||
1163 | (r = sshbuf_put_cstring(msg, "lsetstat@openssh.com")) != 0 || | ||
1164 | (r = sshbuf_put_cstring(msg, path)) != 0 || | ||
1165 | (r = encode_attrib(msg, a)) != 0) | ||
1166 | fatal("%s: buffer error: %s", __func__, ssh_err(r)); | ||
1167 | send_msg(conn, msg); | ||
1168 | sshbuf_free(msg); | ||
1169 | |||
1170 | status = get_status(conn, id); | ||
1171 | if (status != SSH2_FX_OK) | ||
1172 | error("Couldn't setstat on \"%s\": %s", path, | ||
1173 | fx2txt(status)); | ||
1174 | |||
1175 | return status == SSH2_FX_OK ? 0 : -1; | ||
1176 | } | ||
1177 | |||
1141 | static void | 1178 | static void |
1142 | send_read_request(struct sftp_conn *conn, u_int id, u_int64_t offset, | 1179 | send_read_request(struct sftp_conn *conn, u_int id, u_int64_t offset, |
1143 | u_int len, const u_char *handle, u_int handle_len) | 1180 | u_int len, const u_char *handle, u_int handle_len) |
@@ -1147,7 +1184,6 @@ send_read_request(struct sftp_conn *conn, u_int id, u_int64_t offset, | |||
1147 | 1184 | ||
1148 | if ((msg = sshbuf_new()) == NULL) | 1185 | if ((msg = sshbuf_new()) == NULL) |
1149 | fatal("%s: sshbuf_new failed", __func__); | 1186 | fatal("%s: sshbuf_new failed", __func__); |
1150 | sshbuf_reset(msg); | ||
1151 | if ((r = sshbuf_put_u8(msg, SSH2_FXP_READ)) != 0 || | 1187 | if ((r = sshbuf_put_u8(msg, SSH2_FXP_READ)) != 0 || |
1152 | (r = sshbuf_put_u32(msg, id)) != 0 || | 1188 | (r = sshbuf_put_u32(msg, id)) != 0 || |
1153 | (r = sshbuf_put_string(msg, handle, handle_len)) != 0 || | 1189 | (r = sshbuf_put_string(msg, handle, handle_len)) != 0 || |
diff --git a/sftp-client.h b/sftp-client.h index 14a3b8182..63a9b8b13 100644 --- a/sftp-client.h +++ b/sftp-client.h | |||
@@ -1,4 +1,4 @@ | |||
1 | /* $OpenBSD: sftp-client.h,v 1.27 2015/05/08 06:45:13 djm Exp $ */ | 1 | /* $OpenBSD: sftp-client.h,v 1.28 2019/01/16 23:23:45 djm Exp $ */ |
2 | 2 | ||
3 | /* | 3 | /* |
4 | * Copyright (c) 2001-2004 Damien Miller <djm@openbsd.org> | 4 | * Copyright (c) 2001-2004 Damien Miller <djm@openbsd.org> |
@@ -91,6 +91,9 @@ int do_setstat(struct sftp_conn *, const char *, Attrib *); | |||
91 | /* Set file attributes of open file 'handle' */ | 91 | /* Set file attributes of open file 'handle' */ |
92 | int do_fsetstat(struct sftp_conn *, const u_char *, u_int, Attrib *); | 92 | int do_fsetstat(struct sftp_conn *, const u_char *, u_int, Attrib *); |
93 | 93 | ||
94 | /* Set file attributes of 'path', not following symlinks */ | ||
95 | int do_lsetstat(struct sftp_conn *conn, const char *path, Attrib *a); | ||
96 | |||
94 | /* Canonicalise 'path' - caller must free result */ | 97 | /* Canonicalise 'path' - caller must free result */ |
95 | char *do_realpath(struct sftp_conn *, const char *); | 98 | char *do_realpath(struct sftp_conn *, const char *); |
96 | 99 | ||
diff --git a/sftp-common.c b/sftp-common.c index 5d743d3b2..677f27d63 100644 --- a/sftp-common.c +++ b/sftp-common.c | |||
@@ -36,6 +36,7 @@ | |||
36 | #include <string.h> | 36 | #include <string.h> |
37 | #include <time.h> | 37 | #include <time.h> |
38 | #include <stdarg.h> | 38 | #include <stdarg.h> |
39 | #include <unistd.h> | ||
39 | #ifdef HAVE_UTIL_H | 40 | #ifdef HAVE_UTIL_H |
40 | #include <util.h> | 41 | #include <util.h> |
41 | #endif | 42 | #endif |
diff --git a/sftp-server-main.c b/sftp-server-main.c index c6ccd623e..6230d897d 100644 --- a/sftp-server-main.c +++ b/sftp-server-main.c | |||
@@ -43,6 +43,8 @@ main(int argc, char **argv) | |||
43 | /* Ensure that fds 0, 1 and 2 are open or directed to /dev/null */ | 43 | /* Ensure that fds 0, 1 and 2 are open or directed to /dev/null */ |
44 | sanitise_stdfd(); | 44 | sanitise_stdfd(); |
45 | 45 | ||
46 | seed_rng(); | ||
47 | |||
46 | if ((user_pw = getpwuid(getuid())) == NULL) { | 48 | if ((user_pw = getpwuid(getuid())) == NULL) { |
47 | fprintf(stderr, "No user found for uid %lu\n", | 49 | fprintf(stderr, "No user found for uid %lu\n", |
48 | (u_long)getuid()); | 50 | (u_long)getuid()); |
diff --git a/sftp-server.0 b/sftp-server.0 index 4c42b26c9..fb84373d9 100644 --- a/sftp-server.0 +++ b/sftp-server.0 | |||
@@ -93,4 +93,4 @@ HISTORY | |||
93 | AUTHORS | 93 | AUTHORS |
94 | Markus Friedl <markus@openbsd.org> | 94 | Markus Friedl <markus@openbsd.org> |
95 | 95 | ||
96 | OpenBSD 6.4 December 11, 2014 OpenBSD 6.4 | 96 | OpenBSD 6.5 December 11, 2014 OpenBSD 6.5 |
diff --git a/sftp-server.c b/sftp-server.c index ab1b063f2..19a132bd9 100644 --- a/sftp-server.c +++ b/sftp-server.c | |||
@@ -1,4 +1,4 @@ | |||
1 | /* $OpenBSD: sftp-server.c,v 1.112 2018/06/01 03:33:53 djm Exp $ */ | 1 | /* $OpenBSD: sftp-server.c,v 1.114 2019/01/16 23:22:10 djm Exp $ */ |
2 | /* | 2 | /* |
3 | * Copyright (c) 2000-2004 Markus Friedl. All rights reserved. | 3 | * Copyright (c) 2000-2004 Markus Friedl. All rights reserved. |
4 | * | 4 | * |
@@ -107,6 +107,7 @@ static void process_extended_statvfs(u_int32_t id); | |||
107 | static void process_extended_fstatvfs(u_int32_t id); | 107 | static void process_extended_fstatvfs(u_int32_t id); |
108 | static void process_extended_hardlink(u_int32_t id); | 108 | static void process_extended_hardlink(u_int32_t id); |
109 | static void process_extended_fsync(u_int32_t id); | 109 | static void process_extended_fsync(u_int32_t id); |
110 | static void process_extended_lsetstat(u_int32_t id); | ||
110 | static void process_extended(u_int32_t id); | 111 | static void process_extended(u_int32_t id); |
111 | 112 | ||
112 | struct sftp_handler { | 113 | struct sftp_handler { |
@@ -117,7 +118,7 @@ struct sftp_handler { | |||
117 | int does_write; /* if nonzero, banned for readonly mode */ | 118 | int does_write; /* if nonzero, banned for readonly mode */ |
118 | }; | 119 | }; |
119 | 120 | ||
120 | struct sftp_handler handlers[] = { | 121 | static const struct sftp_handler handlers[] = { |
121 | /* NB. SSH2_FXP_OPEN does the readonly check in the handler itself */ | 122 | /* NB. SSH2_FXP_OPEN does the readonly check in the handler itself */ |
122 | { "open", NULL, SSH2_FXP_OPEN, process_open, 0 }, | 123 | { "open", NULL, SSH2_FXP_OPEN, process_open, 0 }, |
123 | { "close", NULL, SSH2_FXP_CLOSE, process_close, 0 }, | 124 | { "close", NULL, SSH2_FXP_CLOSE, process_close, 0 }, |
@@ -141,18 +142,19 @@ struct sftp_handler handlers[] = { | |||
141 | }; | 142 | }; |
142 | 143 | ||
143 | /* SSH2_FXP_EXTENDED submessages */ | 144 | /* SSH2_FXP_EXTENDED submessages */ |
144 | struct sftp_handler extended_handlers[] = { | 145 | static const struct sftp_handler extended_handlers[] = { |
145 | { "posix-rename", "posix-rename@openssh.com", 0, | 146 | { "posix-rename", "posix-rename@openssh.com", 0, |
146 | process_extended_posix_rename, 1 }, | 147 | process_extended_posix_rename, 1 }, |
147 | { "statvfs", "statvfs@openssh.com", 0, process_extended_statvfs, 0 }, | 148 | { "statvfs", "statvfs@openssh.com", 0, process_extended_statvfs, 0 }, |
148 | { "fstatvfs", "fstatvfs@openssh.com", 0, process_extended_fstatvfs, 0 }, | 149 | { "fstatvfs", "fstatvfs@openssh.com", 0, process_extended_fstatvfs, 0 }, |
149 | { "hardlink", "hardlink@openssh.com", 0, process_extended_hardlink, 1 }, | 150 | { "hardlink", "hardlink@openssh.com", 0, process_extended_hardlink, 1 }, |
150 | { "fsync", "fsync@openssh.com", 0, process_extended_fsync, 1 }, | 151 | { "fsync", "fsync@openssh.com", 0, process_extended_fsync, 1 }, |
152 | { "lsetstat", "lsetstat@openssh.com", 0, process_extended_lsetstat, 1 }, | ||
151 | { NULL, NULL, 0, NULL, 0 } | 153 | { NULL, NULL, 0, NULL, 0 } |
152 | }; | 154 | }; |
153 | 155 | ||
154 | static int | 156 | static int |
155 | request_permitted(struct sftp_handler *h) | 157 | request_permitted(const struct sftp_handler *h) |
156 | { | 158 | { |
157 | char *result; | 159 | char *result; |
158 | 160 | ||
@@ -285,9 +287,9 @@ enum { | |||
285 | HANDLE_FILE | 287 | HANDLE_FILE |
286 | }; | 288 | }; |
287 | 289 | ||
288 | Handle *handles = NULL; | 290 | static Handle *handles = NULL; |
289 | u_int num_handles = 0; | 291 | static u_int num_handles = 0; |
290 | int first_unused_handle = -1; | 292 | static int first_unused_handle = -1; |
291 | 293 | ||
292 | static void handle_unused(int i) | 294 | static void handle_unused(int i) |
293 | { | 295 | { |
@@ -666,6 +668,8 @@ process_init(void) | |||
666 | (r = sshbuf_put_cstring(msg, "1")) != 0 || /* version */ | 668 | (r = sshbuf_put_cstring(msg, "1")) != 0 || /* version */ |
667 | /* fsync extension */ | 669 | /* fsync extension */ |
668 | (r = sshbuf_put_cstring(msg, "fsync@openssh.com")) != 0 || | 670 | (r = sshbuf_put_cstring(msg, "fsync@openssh.com")) != 0 || |
671 | (r = sshbuf_put_cstring(msg, "1")) != 0 || /* version */ | ||
672 | (r = sshbuf_put_cstring(msg, "lsetstat@openssh.com")) != 0 || | ||
669 | (r = sshbuf_put_cstring(msg, "1")) != 0) /* version */ | 673 | (r = sshbuf_put_cstring(msg, "1")) != 0) /* version */ |
670 | fatal("%s: buffer error: %s", __func__, ssh_err(r)); | 674 | fatal("%s: buffer error: %s", __func__, ssh_err(r)); |
671 | send_msg(msg); | 675 | send_msg(msg); |
@@ -889,6 +893,18 @@ attrib_to_tv(const Attrib *a) | |||
889 | return tv; | 893 | return tv; |
890 | } | 894 | } |
891 | 895 | ||
896 | static struct timespec * | ||
897 | attrib_to_ts(const Attrib *a) | ||
898 | { | ||
899 | static struct timespec ts[2]; | ||
900 | |||
901 | ts[0].tv_sec = a->atime; | ||
902 | ts[0].tv_nsec = 0; | ||
903 | ts[1].tv_sec = a->mtime; | ||
904 | ts[1].tv_nsec = 0; | ||
905 | return ts; | ||
906 | } | ||
907 | |||
892 | static void | 908 | static void |
893 | process_setstat(u_int32_t id) | 909 | process_setstat(u_int32_t id) |
894 | { | 910 | { |
@@ -1370,6 +1386,55 @@ process_extended_fsync(u_int32_t id) | |||
1370 | } | 1386 | } |
1371 | 1387 | ||
1372 | static void | 1388 | static void |
1389 | process_extended_lsetstat(u_int32_t id) | ||
1390 | { | ||
1391 | Attrib a; | ||
1392 | char *name; | ||
1393 | int r, status = SSH2_FX_OK; | ||
1394 | |||
1395 | if ((r = sshbuf_get_cstring(iqueue, &name, NULL)) != 0 || | ||
1396 | (r = decode_attrib(iqueue, &a)) != 0) | ||
1397 | fatal("%s: buffer error: %s", __func__, ssh_err(r)); | ||
1398 | |||
1399 | debug("request %u: lsetstat name \"%s\"", id, name); | ||
1400 | if (a.flags & SSH2_FILEXFER_ATTR_SIZE) { | ||
1401 | /* nonsensical for links */ | ||
1402 | status = SSH2_FX_BAD_MESSAGE; | ||
1403 | goto out; | ||
1404 | } | ||
1405 | if (a.flags & SSH2_FILEXFER_ATTR_PERMISSIONS) { | ||
1406 | logit("set \"%s\" mode %04o", name, a.perm); | ||
1407 | r = fchmodat(AT_FDCWD, name, | ||
1408 | a.perm & 07777, AT_SYMLINK_NOFOLLOW); | ||
1409 | if (r == -1) | ||
1410 | status = errno_to_portable(errno); | ||
1411 | } | ||
1412 | if (a.flags & SSH2_FILEXFER_ATTR_ACMODTIME) { | ||
1413 | char buf[64]; | ||
1414 | time_t t = a.mtime; | ||
1415 | |||
1416 | strftime(buf, sizeof(buf), "%Y%m%d-%H:%M:%S", | ||
1417 | localtime(&t)); | ||
1418 | logit("set \"%s\" modtime %s", name, buf); | ||
1419 | r = utimensat(AT_FDCWD, name, | ||
1420 | attrib_to_ts(&a), AT_SYMLINK_NOFOLLOW); | ||
1421 | if (r == -1) | ||
1422 | status = errno_to_portable(errno); | ||
1423 | } | ||
1424 | if (a.flags & SSH2_FILEXFER_ATTR_UIDGID) { | ||
1425 | logit("set \"%s\" owner %lu group %lu", name, | ||
1426 | (u_long)a.uid, (u_long)a.gid); | ||
1427 | r = fchownat(AT_FDCWD, name, a.uid, a.gid, | ||
1428 | AT_SYMLINK_NOFOLLOW); | ||
1429 | if (r == -1) | ||
1430 | status = errno_to_portable(errno); | ||
1431 | } | ||
1432 | out: | ||
1433 | send_status(id, status); | ||
1434 | free(name); | ||
1435 | } | ||
1436 | |||
1437 | static void | ||
1373 | process_extended(u_int32_t id) | 1438 | process_extended(u_int32_t id) |
1374 | { | 1439 | { |
1375 | char *request; | 1440 | char *request; |
@@ -5,9 +5,10 @@ NAME | |||
5 | 5 | ||
6 | SYNOPSIS | 6 | SYNOPSIS |
7 | sftp [-46aCfpqrv] [-B buffer_size] [-b batchfile] [-c cipher] | 7 | sftp [-46aCfpqrv] [-B buffer_size] [-b batchfile] [-c cipher] |
8 | [-D sftp_server_path] [-F ssh_config] [-i identity_file] [-l limit] | 8 | [-D sftp_server_path] [-F ssh_config] [-i identity_file] |
9 | [-o ssh_option] [-P port] [-R num_requests] [-S program] | 9 | [-J destination] [-l limit] [-o ssh_option] [-P port] |
10 | [-s subsystem | sftp_server] destination | 10 | [-R num_requests] [-S program] [-s subsystem | sftp_server] |
11 | destination | ||
11 | 12 | ||
12 | DESCRIPTION | 13 | DESCRIPTION |
13 | sftp is a file transfer program, similar to ftp(1), which performs all | 14 | sftp is a file transfer program, similar to ftp(1), which performs all |
@@ -52,13 +53,18 @@ DESCRIPTION | |||
52 | instead of stdin. Since it lacks user interaction it should be | 53 | instead of stdin. Since it lacks user interaction it should be |
53 | used in conjunction with non-interactive authentication to | 54 | used in conjunction with non-interactive authentication to |
54 | obviate the need to enter a password at connection time (see | 55 | obviate the need to enter a password at connection time (see |
55 | sshd(8) and ssh-keygen(1) for details). A batchfile of M-bM-^@M-^X-M-bM-^@M-^Y may | 56 | sshd(8) and ssh-keygen(1) for details). |
56 | be used to indicate standard input. sftp will abort if any of | 57 | |
57 | the following commands fail: get, put, reget, reput, rename, ln, | 58 | A batchfile of M-bM-^@M-^X-M-bM-^@M-^Y may be used to indicate standard input. sftp |
58 | rm, mkdir, chdir, ls, lchdir, chmod, chown, chgrp, lpwd, df, | 59 | will abort if any of the following commands fail: get, put, |
59 | symlink, and lmkdir. Termination on error can be suppressed on a | 60 | reget, reput, rename, ln, rm, mkdir, chdir, ls, lchdir, chmod, |
60 | command by command basis by prefixing the command with a M-bM-^@M-^X-M-bM-^@M-^Y | 61 | chown, chgrp, lpwd, df, symlink, and lmkdir. |
61 | character (for example, -rm /tmp/blah*). | 62 | |
63 | Termination on error can be suppressed on a command by command | ||
64 | basis by prefixing the command with a M-bM-^@M-^X-M-bM-^@M-^Y character (for example, | ||
65 | -rm /tmp/blah*). Echo of the command may be suppressed by | ||
66 | prefixing the command with a M-bM-^@M-^X@M-bM-^@M-^Y character. These two prefixes | ||
67 | may be combined in any order, for example -@ls /bsd. | ||
62 | 68 | ||
63 | -C Enables compression (via ssh's -C flag). | 69 | -C Enables compression (via ssh's -C flag). |
64 | 70 | ||
@@ -83,6 +89,14 @@ DESCRIPTION | |||
83 | key authentication is read. This option is directly passed to | 89 | key authentication is read. This option is directly passed to |
84 | ssh(1). | 90 | ssh(1). |
85 | 91 | ||
92 | -J destination | ||
93 | Connect to the target host by first making an sftp connection to | ||
94 | the jump host described by destination and then establishing a | ||
95 | TCP forwarding to the ultimate destination from there. Multiple | ||
96 | jump hops may be specified separated by comma characters. This | ||
97 | is a shortcut to specify a ProxyJump configuration directive. | ||
98 | This option is directly passed to ssh(1). | ||
99 | |||
86 | -l limit | 100 | -l limit |
87 | Limits the used bandwidth, specified in Kbit/s. | 101 | Limits the used bandwidth, specified in Kbit/s. |
88 | 102 | ||
@@ -197,17 +211,20 @@ INTERACTIVE COMMANDS | |||
197 | Change remote directory to path. If path is not specified, then | 211 | Change remote directory to path. If path is not specified, then |
198 | change directory to the one the session started in. | 212 | change directory to the one the session started in. |
199 | 213 | ||
200 | chgrp grp path | 214 | chgrp [-h] grp path |
201 | Change group of file path to grp. path may contain glob(7) | 215 | Change group of file path to grp. If the -h flag is specified, |
216 | then symlinks will not be followed. path may contain glob(7) | ||
202 | characters and may match multiple files. grp must be a numeric | 217 | characters and may match multiple files. grp must be a numeric |
203 | GID. | 218 | GID. |
204 | 219 | ||
205 | chmod mode path | 220 | chmod [-h] mode path |
206 | Change permissions of file path to mode. path may contain | 221 | Change permissions of file path to mode. If the -h flag is |
222 | specified, then symlinks will not be followed. path may contain | ||
207 | glob(7) characters and may match multiple files. | 223 | glob(7) characters and may match multiple files. |
208 | 224 | ||
209 | chown own path | 225 | chown [-h] own path |
210 | Change owner of file path to own. path may contain glob(7) | 226 | Change owner of file path to own. If the -h flag is specified, |
227 | then symlinks will not be followed. path may contain glob(7) | ||
211 | characters and may match multiple files. own must be a numeric | 228 | characters and may match multiple files. own must be a numeric |
212 | UID. | 229 | UID. |
213 | 230 | ||
@@ -376,4 +393,4 @@ SEE ALSO | |||
376 | T. Ylonen and S. Lehtinen, SSH File Transfer Protocol, draft-ietf-secsh- | 393 | T. Ylonen and S. Lehtinen, SSH File Transfer Protocol, draft-ietf-secsh- |
377 | filexfer-00.txt, January 2001, work in progress material. | 394 | filexfer-00.txt, January 2001, work in progress material. |
378 | 395 | ||
379 | OpenBSD 6.4 September 20, 2018 OpenBSD 6.4 | 396 | OpenBSD 6.5 January 22, 2019 OpenBSD 6.5 |
@@ -1,4 +1,4 @@ | |||
1 | .\" $OpenBSD: sftp.1,v 1.120 2018/09/20 06:58:48 jmc Exp $ | 1 | .\" $OpenBSD: sftp.1,v 1.125 2019/01/22 06:58:31 jmc Exp $ |
2 | .\" | 2 | .\" |
3 | .\" Copyright (c) 2001 Damien Miller. All rights reserved. | 3 | .\" Copyright (c) 2001 Damien Miller. All rights reserved. |
4 | .\" | 4 | .\" |
@@ -22,7 +22,7 @@ | |||
22 | .\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF | 22 | .\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF |
23 | .\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | 23 | .\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |
24 | .\" | 24 | .\" |
25 | .Dd $Mdocdate: September 20 2018 $ | 25 | .Dd $Mdocdate: January 22 2019 $ |
26 | .Dt SFTP 1 | 26 | .Dt SFTP 1 |
27 | .Os | 27 | .Os |
28 | .Sh NAME | 28 | .Sh NAME |
@@ -37,6 +37,7 @@ | |||
37 | .Op Fl D Ar sftp_server_path | 37 | .Op Fl D Ar sftp_server_path |
38 | .Op Fl F Ar ssh_config | 38 | .Op Fl F Ar ssh_config |
39 | .Op Fl i Ar identity_file | 39 | .Op Fl i Ar identity_file |
40 | .Op Fl J Ar destination | ||
40 | .Op Fl l Ar limit | 41 | .Op Fl l Ar limit |
41 | .Op Fl o Ar ssh_option | 42 | .Op Fl o Ar ssh_option |
42 | .Op Fl P Ar port | 43 | .Op Fl P Ar port |
@@ -127,6 +128,7 @@ at connection time (see | |||
127 | and | 128 | and |
128 | .Xr ssh-keygen 1 | 129 | .Xr ssh-keygen 1 |
129 | for details). | 130 | for details). |
131 | .Pp | ||
130 | A | 132 | A |
131 | .Ar batchfile | 133 | .Ar batchfile |
132 | of | 134 | of |
@@ -135,17 +137,23 @@ may be used to indicate standard input. | |||
135 | .Nm | 137 | .Nm |
136 | will abort if any of the following | 138 | will abort if any of the following |
137 | commands fail: | 139 | commands fail: |
138 | .Ic get , put , reget , reput, rename , ln , | 140 | .Ic get , put , reget , reput , rename , ln , |
139 | .Ic rm , mkdir , chdir , ls , | 141 | .Ic rm , mkdir , chdir , ls , |
140 | .Ic lchdir , chmod , chown , | 142 | .Ic lchdir , chmod , chown , |
141 | .Ic chgrp , lpwd , df , symlink , | 143 | .Ic chgrp , lpwd , df , symlink , |
142 | and | 144 | and |
143 | .Ic lmkdir . | 145 | .Ic lmkdir . |
146 | .Pp | ||
144 | Termination on error can be suppressed on a command by command basis by | 147 | Termination on error can be suppressed on a command by command basis by |
145 | prefixing the command with a | 148 | prefixing the command with a |
146 | .Sq \- | 149 | .Sq \- |
147 | character (for example, | 150 | character (for example, |
148 | .Ic -rm /tmp/blah* ) . | 151 | .Ic -rm /tmp/blah* ) . |
152 | Echo of the command may be suppressed by prefixing the command with a | ||
153 | .Sq @ | ||
154 | character. | ||
155 | These two prefixes may be combined in any order, for example | ||
156 | .Ic -@ls /bsd . | ||
149 | .It Fl C | 157 | .It Fl C |
150 | Enables compression (via ssh's | 158 | Enables compression (via ssh's |
151 | .Fl C | 159 | .Fl C |
@@ -174,6 +182,19 @@ Selects the file from which the identity (private key) for public key | |||
174 | authentication is read. | 182 | authentication is read. |
175 | This option is directly passed to | 183 | This option is directly passed to |
176 | .Xr ssh 1 . | 184 | .Xr ssh 1 . |
185 | .It Fl J Ar destination | ||
186 | Connect to the target host by first making an | ||
187 | .Nm | ||
188 | connection to the jump host described by | ||
189 | .Ar destination | ||
190 | and then establishing a TCP forwarding to the ultimate destination from | ||
191 | there. | ||
192 | Multiple jump hops may be specified separated by comma characters. | ||
193 | This is a shortcut to specify a | ||
194 | .Cm ProxyJump | ||
195 | configuration directive. | ||
196 | This option is directly passed to | ||
197 | .Xr ssh 1 . | ||
177 | .It Fl l Ar limit | 198 | .It Fl l Ar limit |
178 | Limits the used bandwidth, specified in Kbit/s. | 199 | Limits the used bandwidth, specified in Kbit/s. |
179 | .It Fl o Ar ssh_option | 200 | .It Fl o Ar ssh_option |
@@ -309,31 +330,52 @@ Change remote directory to | |||
309 | If | 330 | If |
310 | .Ar path | 331 | .Ar path |
311 | is not specified, then change directory to the one the session started in. | 332 | is not specified, then change directory to the one the session started in. |
312 | .It Ic chgrp Ar grp Ar path | 333 | .It Xo Ic chgrp |
334 | .Op Fl h | ||
335 | .Ar grp | ||
336 | .Ar path | ||
337 | .Xc | ||
313 | Change group of file | 338 | Change group of file |
314 | .Ar path | 339 | .Ar path |
315 | to | 340 | to |
316 | .Ar grp . | 341 | .Ar grp . |
342 | If the | ||
343 | .Fl h | ||
344 | flag is specified, then symlinks will not be followed. | ||
317 | .Ar path | 345 | .Ar path |
318 | may contain | 346 | may contain |
319 | .Xr glob 7 | 347 | .Xr glob 7 |
320 | characters and may match multiple files. | 348 | characters and may match multiple files. |
321 | .Ar grp | 349 | .Ar grp |
322 | must be a numeric GID. | 350 | must be a numeric GID. |
323 | .It Ic chmod Ar mode Ar path | 351 | .It Xo Ic chmod |
352 | .Op Fl h | ||
353 | .Ar mode | ||
354 | .Ar path | ||
355 | .Xc | ||
324 | Change permissions of file | 356 | Change permissions of file |
325 | .Ar path | 357 | .Ar path |
326 | to | 358 | to |
327 | .Ar mode . | 359 | .Ar mode . |
360 | If the | ||
361 | .Fl h | ||
362 | flag is specified, then symlinks will not be followed. | ||
328 | .Ar path | 363 | .Ar path |
329 | may contain | 364 | may contain |
330 | .Xr glob 7 | 365 | .Xr glob 7 |
331 | characters and may match multiple files. | 366 | characters and may match multiple files. |
332 | .It Ic chown Ar own Ar path | 367 | .It Xo Ic chown |
368 | .Op Fl h | ||
369 | .Ar own | ||
370 | .Ar path | ||
371 | .Xc | ||
333 | Change owner of file | 372 | Change owner of file |
334 | .Ar path | 373 | .Ar path |
335 | to | 374 | to |
336 | .Ar own . | 375 | .Ar own . |
376 | If the | ||
377 | .Fl h | ||
378 | flag is specified, then symlinks will not be followed. | ||
337 | .Ar path | 379 | .Ar path |
338 | may contain | 380 | may contain |
339 | .Xr glob 7 | 381 | .Xr glob 7 |
@@ -1,4 +1,4 @@ | |||
1 | /* $OpenBSD: sftp.c,v 1.186 2018/09/07 04:26:56 dtucker Exp $ */ | 1 | /* $OpenBSD: sftp.c,v 1.190 2019/01/21 22:50:42 tb Exp $ */ |
2 | /* | 2 | /* |
3 | * Copyright (c) 2001-2004 Damien Miller <djm@openbsd.org> | 3 | * Copyright (c) 2001-2004 Damien Miller <djm@openbsd.org> |
4 | * | 4 | * |
@@ -278,9 +278,9 @@ help(void) | |||
278 | printf("Available commands:\n" | 278 | printf("Available commands:\n" |
279 | "bye Quit sftp\n" | 279 | "bye Quit sftp\n" |
280 | "cd path Change remote directory to 'path'\n" | 280 | "cd path Change remote directory to 'path'\n" |
281 | "chgrp grp path Change group of file 'path' to 'grp'\n" | 281 | "chgrp [-h] grp path Change group of file 'path' to 'grp'\n" |
282 | "chmod mode path Change permissions of file 'path' to 'mode'\n" | 282 | "chmod [-h] mode path Change permissions of file 'path' to 'mode'\n" |
283 | "chown own path Change owner of file 'path' to 'own'\n" | 283 | "chown [-h] own path Change owner of file 'path' to 'own'\n" |
284 | "df [-hi] [path] Display statistics for current directory or\n" | 284 | "df [-hi] [path] Display statistics for current directory or\n" |
285 | " filesystem containing 'path'\n" | 285 | " filesystem containing 'path'\n" |
286 | "exit Quit sftp\n" | 286 | "exit Quit sftp\n" |
@@ -389,7 +389,7 @@ make_absolute(char *p, const char *pwd) | |||
389 | char *abs_str; | 389 | char *abs_str; |
390 | 390 | ||
391 | /* Derelativise */ | 391 | /* Derelativise */ |
392 | if (p && p[0] != '/') { | 392 | if (p && !path_absolute(p)) { |
393 | abs_str = path_append(pwd, p); | 393 | abs_str = path_append(pwd, p); |
394 | free(p); | 394 | free(p); |
395 | return(abs_str); | 395 | return(abs_str); |
@@ -562,6 +562,30 @@ parse_df_flags(const char *cmd, char **argv, int argc, int *hflag, int *iflag) | |||
562 | } | 562 | } |
563 | 563 | ||
564 | static int | 564 | static int |
565 | parse_ch_flags(const char *cmd, char **argv, int argc, int *hflag) | ||
566 | { | ||
567 | extern int opterr, optind, optopt, optreset; | ||
568 | int ch; | ||
569 | |||
570 | optind = optreset = 1; | ||
571 | opterr = 0; | ||
572 | |||
573 | *hflag = 0; | ||
574 | while ((ch = getopt(argc, argv, "h")) != -1) { | ||
575 | switch (ch) { | ||
576 | case 'h': | ||
577 | *hflag = 1; | ||
578 | break; | ||
579 | default: | ||
580 | error("%s: Invalid flag -%c", cmd, optopt); | ||
581 | return -1; | ||
582 | } | ||
583 | } | ||
584 | |||
585 | return optind; | ||
586 | } | ||
587 | |||
588 | static int | ||
565 | parse_no_flags(const char *cmd, char **argv, int argc) | 589 | parse_no_flags(const char *cmd, char **argv, int argc) |
566 | { | 590 | { |
567 | extern int opterr, optind, optopt, optreset; | 591 | extern int opterr, optind, optopt, optreset; |
@@ -1296,7 +1320,7 @@ makeargv(const char *arg, int *argcp, int sloppy, char *lastquote, | |||
1296 | } | 1320 | } |
1297 | 1321 | ||
1298 | static int | 1322 | static int |
1299 | parse_args(const char **cpp, int *ignore_errors, int *aflag, | 1323 | parse_args(const char **cpp, int *ignore_errors, int *disable_echo, int *aflag, |
1300 | int *fflag, int *hflag, int *iflag, int *lflag, int *pflag, | 1324 | int *fflag, int *hflag, int *iflag, int *lflag, int *pflag, |
1301 | int *rflag, int *sflag, | 1325 | int *rflag, int *sflag, |
1302 | unsigned long *n_arg, char **path1, char **path2) | 1326 | unsigned long *n_arg, char **path1, char **path2) |
@@ -1310,13 +1334,23 @@ parse_args(const char **cpp, int *ignore_errors, int *aflag, | |||
1310 | /* Skip leading whitespace */ | 1334 | /* Skip leading whitespace */ |
1311 | cp = cp + strspn(cp, WHITESPACE); | 1335 | cp = cp + strspn(cp, WHITESPACE); |
1312 | 1336 | ||
1313 | /* Check for leading '-' (disable error processing) */ | 1337 | /* |
1338 | * Check for leading '-' (disable error processing) and '@' (suppress | ||
1339 | * command echo) | ||
1340 | */ | ||
1314 | *ignore_errors = 0; | 1341 | *ignore_errors = 0; |
1315 | if (*cp == '-') { | 1342 | *disable_echo = 0; |
1316 | *ignore_errors = 1; | 1343 | for (;*cp != '\0'; cp++) { |
1317 | cp++; | 1344 | if (*cp == '-') { |
1318 | cp = cp + strspn(cp, WHITESPACE); | 1345 | *ignore_errors = 1; |
1346 | } else if (*cp == '@') { | ||
1347 | *disable_echo = 1; | ||
1348 | } else { | ||
1349 | /* all other characters terminate prefix processing */ | ||
1350 | break; | ||
1351 | } | ||
1319 | } | 1352 | } |
1353 | cp = cp + strspn(cp, WHITESPACE); | ||
1320 | 1354 | ||
1321 | /* Ignore blank lines and lines which begin with comment '#' char */ | 1355 | /* Ignore blank lines and lines which begin with comment '#' char */ |
1322 | if (*cp == '\0' || *cp == '#') | 1356 | if (*cp == '\0' || *cp == '#') |
@@ -1446,7 +1480,7 @@ parse_args(const char **cpp, int *ignore_errors, int *aflag, | |||
1446 | /* FALLTHROUGH */ | 1480 | /* FALLTHROUGH */ |
1447 | case I_CHOWN: | 1481 | case I_CHOWN: |
1448 | case I_CHGRP: | 1482 | case I_CHGRP: |
1449 | if ((optidx = parse_no_flags(cmd, argv, argc)) == -1) | 1483 | if ((optidx = parse_ch_flags(cmd, argv, argc, hflag)) == -1) |
1450 | return -1; | 1484 | return -1; |
1451 | /* Get numeric arg (mandatory) */ | 1485 | /* Get numeric arg (mandatory) */ |
1452 | if (argc - optidx < 1) | 1486 | if (argc - optidx < 1) |
@@ -1491,11 +1525,12 @@ parse_args(const char **cpp, int *ignore_errors, int *aflag, | |||
1491 | 1525 | ||
1492 | static int | 1526 | static int |
1493 | parse_dispatch_command(struct sftp_conn *conn, const char *cmd, char **pwd, | 1527 | parse_dispatch_command(struct sftp_conn *conn, const char *cmd, char **pwd, |
1494 | const char *startdir, int err_abort) | 1528 | const char *startdir, int err_abort, int echo_command) |
1495 | { | 1529 | { |
1530 | const char *ocmd = cmd; | ||
1496 | char *path1, *path2, *tmp; | 1531 | char *path1, *path2, *tmp; |
1497 | int ignore_errors = 0, aflag = 0, fflag = 0, hflag = 0, | 1532 | int ignore_errors = 0, disable_echo = 1; |
1498 | iflag = 0; | 1533 | int aflag = 0, fflag = 0, hflag = 0, iflag = 0; |
1499 | int lflag = 0, pflag = 0, rflag = 0, sflag = 0; | 1534 | int lflag = 0, pflag = 0, rflag = 0, sflag = 0; |
1500 | int cmdnum, i; | 1535 | int cmdnum, i; |
1501 | unsigned long n_arg = 0; | 1536 | unsigned long n_arg = 0; |
@@ -1505,11 +1540,15 @@ parse_dispatch_command(struct sftp_conn *conn, const char *cmd, char **pwd, | |||
1505 | glob_t g; | 1540 | glob_t g; |
1506 | 1541 | ||
1507 | path1 = path2 = NULL; | 1542 | path1 = path2 = NULL; |
1508 | cmdnum = parse_args(&cmd, &ignore_errors, &aflag, &fflag, &hflag, | 1543 | cmdnum = parse_args(&cmd, &ignore_errors, &disable_echo, &aflag, &fflag, |
1509 | &iflag, &lflag, &pflag, &rflag, &sflag, &n_arg, &path1, &path2); | 1544 | &hflag, &iflag, &lflag, &pflag, &rflag, &sflag, &n_arg, |
1545 | &path1, &path2); | ||
1510 | if (ignore_errors != 0) | 1546 | if (ignore_errors != 0) |
1511 | err_abort = 0; | 1547 | err_abort = 0; |
1512 | 1548 | ||
1549 | if (echo_command && !disable_echo) | ||
1550 | mprintf("sftp> %s\n", ocmd); | ||
1551 | |||
1513 | memset(&g, 0, sizeof(g)); | 1552 | memset(&g, 0, sizeof(g)); |
1514 | 1553 | ||
1515 | /* Perform command */ | 1554 | /* Perform command */ |
@@ -1608,7 +1647,7 @@ parse_dispatch_command(struct sftp_conn *conn, const char *cmd, char **pwd, | |||
1608 | 1647 | ||
1609 | /* Strip pwd off beginning of non-absolute paths */ | 1648 | /* Strip pwd off beginning of non-absolute paths */ |
1610 | tmp = NULL; | 1649 | tmp = NULL; |
1611 | if (*path1 != '/') | 1650 | if (!path_absolute(path1)) |
1612 | tmp = *pwd; | 1651 | tmp = *pwd; |
1613 | 1652 | ||
1614 | path1 = make_absolute(path1, *pwd); | 1653 | path1 = make_absolute(path1, *pwd); |
@@ -1660,7 +1699,8 @@ parse_dispatch_command(struct sftp_conn *conn, const char *cmd, char **pwd, | |||
1660 | if (!quiet) | 1699 | if (!quiet) |
1661 | mprintf("Changing mode on %s\n", | 1700 | mprintf("Changing mode on %s\n", |
1662 | g.gl_pathv[i]); | 1701 | g.gl_pathv[i]); |
1663 | err = do_setstat(conn, g.gl_pathv[i], &a); | 1702 | err = (hflag ? do_lsetstat : do_setstat)(conn, |
1703 | g.gl_pathv[i], &a); | ||
1664 | if (err != 0 && err_abort) | 1704 | if (err != 0 && err_abort) |
1665 | break; | 1705 | break; |
1666 | } | 1706 | } |
@@ -1670,7 +1710,8 @@ parse_dispatch_command(struct sftp_conn *conn, const char *cmd, char **pwd, | |||
1670 | path1 = make_absolute(path1, *pwd); | 1710 | path1 = make_absolute(path1, *pwd); |
1671 | remote_glob(conn, path1, GLOB_NOCHECK, NULL, &g); | 1711 | remote_glob(conn, path1, GLOB_NOCHECK, NULL, &g); |
1672 | for (i = 0; g.gl_pathv[i] && !interrupted; i++) { | 1712 | for (i = 0; g.gl_pathv[i] && !interrupted; i++) { |
1673 | if (!(aa = do_stat(conn, g.gl_pathv[i], 0))) { | 1713 | if (!(aa = (hflag ? do_lstat : do_stat)(conn, |
1714 | g.gl_pathv[i], 0))) { | ||
1674 | if (err_abort) { | 1715 | if (err_abort) { |
1675 | err = -1; | 1716 | err = -1; |
1676 | break; | 1717 | break; |
@@ -1698,7 +1739,8 @@ parse_dispatch_command(struct sftp_conn *conn, const char *cmd, char **pwd, | |||
1698 | g.gl_pathv[i]); | 1739 | g.gl_pathv[i]); |
1699 | aa->gid = n_arg; | 1740 | aa->gid = n_arg; |
1700 | } | 1741 | } |
1701 | err = do_setstat(conn, g.gl_pathv[i], aa); | 1742 | err = (hflag ? do_lsetstat : do_setstat)(conn, |
1743 | g.gl_pathv[i], aa); | ||
1702 | if (err != 0 && err_abort) | 1744 | if (err != 0 && err_abort) |
1703 | break; | 1745 | break; |
1704 | } | 1746 | } |
@@ -1936,7 +1978,7 @@ complete_match(EditLine *el, struct sftp_conn *conn, char *remote_path, | |||
1936 | xasprintf(&tmp, "%s*", file); | 1978 | xasprintf(&tmp, "%s*", file); |
1937 | 1979 | ||
1938 | /* Check if the path is absolute. */ | 1980 | /* Check if the path is absolute. */ |
1939 | isabs = tmp[0] == '/'; | 1981 | isabs = path_absolute(tmp); |
1940 | 1982 | ||
1941 | memset(&g, 0, sizeof(g)); | 1983 | memset(&g, 0, sizeof(g)); |
1942 | if (remote != LOCAL) { | 1984 | if (remote != LOCAL) { |
@@ -2169,7 +2211,7 @@ interactive_loop(struct sftp_conn *conn, char *file1, char *file2) | |||
2169 | mprintf("Changing to: %s\n", dir); | 2211 | mprintf("Changing to: %s\n", dir); |
2170 | snprintf(cmd, sizeof cmd, "cd \"%s\"", dir); | 2212 | snprintf(cmd, sizeof cmd, "cd \"%s\"", dir); |
2171 | if (parse_dispatch_command(conn, cmd, | 2213 | if (parse_dispatch_command(conn, cmd, |
2172 | &remote_path, startdir, 1) != 0) { | 2214 | &remote_path, startdir, 1, 0) != 0) { |
2173 | free(dir); | 2215 | free(dir); |
2174 | free(startdir); | 2216 | free(startdir); |
2175 | free(remote_path); | 2217 | free(remote_path); |
@@ -2183,7 +2225,7 @@ interactive_loop(struct sftp_conn *conn, char *file1, char *file2) | |||
2183 | file2 == NULL ? "" : " ", | 2225 | file2 == NULL ? "" : " ", |
2184 | file2 == NULL ? "" : file2); | 2226 | file2 == NULL ? "" : file2); |
2185 | err = parse_dispatch_command(conn, cmd, | 2227 | err = parse_dispatch_command(conn, cmd, |
2186 | &remote_path, startdir, 1); | 2228 | &remote_path, startdir, 1, 0); |
2187 | free(dir); | 2229 | free(dir); |
2188 | free(startdir); | 2230 | free(startdir); |
2189 | free(remote_path); | 2231 | free(remote_path); |
@@ -2199,8 +2241,6 @@ interactive_loop(struct sftp_conn *conn, char *file1, char *file2) | |||
2199 | interactive = !batchmode && isatty(STDIN_FILENO); | 2241 | interactive = !batchmode && isatty(STDIN_FILENO); |
2200 | err = 0; | 2242 | err = 0; |
2201 | for (;;) { | 2243 | for (;;) { |
2202 | char *cp; | ||
2203 | |||
2204 | signal(SIGINT, SIG_IGN); | 2244 | signal(SIGINT, SIG_IGN); |
2205 | 2245 | ||
2206 | if (el == NULL) { | 2246 | if (el == NULL) { |
@@ -2211,12 +2251,6 @@ interactive_loop(struct sftp_conn *conn, char *file1, char *file2) | |||
2211 | printf("\n"); | 2251 | printf("\n"); |
2212 | break; | 2252 | break; |
2213 | } | 2253 | } |
2214 | if (!interactive) { /* Echo command */ | ||
2215 | mprintf("sftp> %s", cmd); | ||
2216 | if (strlen(cmd) > 0 && | ||
2217 | cmd[strlen(cmd) - 1] != '\n') | ||
2218 | printf("\n"); | ||
2219 | } | ||
2220 | } else { | 2254 | } else { |
2221 | #ifdef USE_LIBEDIT | 2255 | #ifdef USE_LIBEDIT |
2222 | const char *line; | 2256 | const char *line; |
@@ -2235,16 +2269,14 @@ interactive_loop(struct sftp_conn *conn, char *file1, char *file2) | |||
2235 | #endif /* USE_LIBEDIT */ | 2269 | #endif /* USE_LIBEDIT */ |
2236 | } | 2270 | } |
2237 | 2271 | ||
2238 | cp = strrchr(cmd, '\n'); | 2272 | cmd[strcspn(cmd, "\n")] = '\0'; |
2239 | if (cp) | ||
2240 | *cp = '\0'; | ||
2241 | 2273 | ||
2242 | /* Handle user interrupts gracefully during commands */ | 2274 | /* Handle user interrupts gracefully during commands */ |
2243 | interrupted = 0; | 2275 | interrupted = 0; |
2244 | signal(SIGINT, cmd_interrupt); | 2276 | signal(SIGINT, cmd_interrupt); |
2245 | 2277 | ||
2246 | err = parse_dispatch_command(conn, cmd, &remote_path, | 2278 | err = parse_dispatch_command(conn, cmd, &remote_path, |
2247 | startdir, batchmode); | 2279 | startdir, batchmode, !interactive && el == NULL); |
2248 | if (err != 0) | 2280 | if (err != 0) |
2249 | break; | 2281 | break; |
2250 | } | 2282 | } |
@@ -2330,11 +2362,10 @@ usage(void) | |||
2330 | 2362 | ||
2331 | fprintf(stderr, | 2363 | fprintf(stderr, |
2332 | "usage: %s [-46aCfpqrv] [-B buffer_size] [-b batchfile] [-c cipher]\n" | 2364 | "usage: %s [-46aCfpqrv] [-B buffer_size] [-b batchfile] [-c cipher]\n" |
2333 | " [-D sftp_server_path] [-F ssh_config] " | 2365 | " [-D sftp_server_path] [-F ssh_config] [-i identity_file]\n" |
2334 | "[-i identity_file] [-l limit]\n" | 2366 | " [-J destination] [-l limit] [-o ssh_option] [-P port]\n" |
2335 | " [-o ssh_option] [-P port] [-R num_requests] " | 2367 | " [-R num_requests] [-S program] [-s subsystem | sftp_server]\n" |
2336 | "[-S program]\n" | 2368 | " destination\n", |
2337 | " [-s subsystem | sftp_server] destination\n", | ||
2338 | __progname); | 2369 | __progname); |
2339 | exit(1); | 2370 | exit(1); |
2340 | } | 2371 | } |
@@ -2362,6 +2393,8 @@ main(int argc, char **argv) | |||
2362 | sanitise_stdfd(); | 2393 | sanitise_stdfd(); |
2363 | msetlocale(); | 2394 | msetlocale(); |
2364 | 2395 | ||
2396 | seed_rng(); | ||
2397 | |||
2365 | __progname = ssh_get_progname(argv[0]); | 2398 | __progname = ssh_get_progname(argv[0]); |
2366 | memset(&args, '\0', sizeof(args)); | 2399 | memset(&args, '\0', sizeof(args)); |
2367 | args.list = NULL; | 2400 | args.list = NULL; |
@@ -2375,7 +2408,7 @@ main(int argc, char **argv) | |||
2375 | infile = stdin; | 2408 | infile = stdin; |
2376 | 2409 | ||
2377 | while ((ch = getopt(argc, argv, | 2410 | while ((ch = getopt(argc, argv, |
2378 | "1246afhpqrvCc:D:i:l:o:s:S:b:B:F:P:R:")) != -1) { | 2411 | "1246afhpqrvCc:D:i:l:o:s:S:b:B:F:J:P:R:")) != -1) { |
2379 | switch (ch) { | 2412 | switch (ch) { |
2380 | /* Passed through to ssh(1) */ | 2413 | /* Passed through to ssh(1) */ |
2381 | case '4': | 2414 | case '4': |
@@ -2385,6 +2418,7 @@ main(int argc, char **argv) | |||
2385 | break; | 2418 | break; |
2386 | /* Passed through to ssh(1) with argument */ | 2419 | /* Passed through to ssh(1) with argument */ |
2387 | case 'F': | 2420 | case 'F': |
2421 | case 'J': | ||
2388 | case 'c': | 2422 | case 'c': |
2389 | case 'i': | 2423 | case 'i': |
2390 | case 'o': | 2424 | case 'o': |
diff --git a/sntrup4591761.c b/sntrup4591761.c new file mode 100644 index 000000000..61fe2483f --- /dev/null +++ b/sntrup4591761.c | |||
@@ -0,0 +1,1083 @@ | |||
1 | /* $OpenBSD: sntrup4591761.c,v 1.3 2019/01/30 19:51:15 markus Exp $ */ | ||
2 | |||
3 | /* | ||
4 | * Public Domain, Authors: | ||
5 | * - Daniel J. Bernstein | ||
6 | * - Chitchanok Chuengsatiansup | ||
7 | * - Tanja Lange | ||
8 | * - Christine van Vredendaal | ||
9 | */ | ||
10 | |||
11 | #include "includes.h" | ||
12 | |||
13 | #include <string.h> | ||
14 | #include "crypto_api.h" | ||
15 | |||
16 | /* from libpqcrypto-20180314/crypto_kem/sntrup4591761/ref/int32_sort.h */ | ||
17 | #ifndef int32_sort_h | ||
18 | #define int32_sort_h | ||
19 | |||
20 | |||
21 | static void int32_sort(crypto_int32 *,int); | ||
22 | |||
23 | #endif | ||
24 | |||
25 | /* from libpqcrypto-20180314/crypto_kem/sntrup4591761/ref/int32_sort.c */ | ||
26 | /* See https://ntruprime.cr.yp.to/software.html for detailed documentation. */ | ||
27 | |||
28 | |||
29 | static void minmax(crypto_int32 *x,crypto_int32 *y) | ||
30 | { | ||
31 | crypto_uint32 xi = *x; | ||
32 | crypto_uint32 yi = *y; | ||
33 | crypto_uint32 xy = xi ^ yi; | ||
34 | crypto_uint32 c = yi - xi; | ||
35 | c ^= xy & (c ^ yi); | ||
36 | c >>= 31; | ||
37 | c = -c; | ||
38 | c &= xy; | ||
39 | *x = xi ^ c; | ||
40 | *y = yi ^ c; | ||
41 | } | ||
42 | |||
43 | static void int32_sort(crypto_int32 *x,int n) | ||
44 | { | ||
45 | int top,p,q,i; | ||
46 | |||
47 | if (n < 2) return; | ||
48 | top = 1; | ||
49 | while (top < n - top) top += top; | ||
50 | |||
51 | for (p = top;p > 0;p >>= 1) { | ||
52 | for (i = 0;i < n - p;++i) | ||
53 | if (!(i & p)) | ||
54 | minmax(x + i,x + i + p); | ||
55 | for (q = top;q > p;q >>= 1) | ||
56 | for (i = 0;i < n - q;++i) | ||
57 | if (!(i & p)) | ||
58 | minmax(x + i + p,x + i + q); | ||
59 | } | ||
60 | } | ||
61 | |||
62 | /* from libpqcrypto-20180314/crypto_kem/sntrup4591761/ref/small.h */ | ||
63 | #ifndef small_h | ||
64 | #define small_h | ||
65 | |||
66 | |||
67 | typedef crypto_int8 small; | ||
68 | |||
69 | static void small_encode(unsigned char *,const small *); | ||
70 | |||
71 | static void small_decode(small *,const unsigned char *); | ||
72 | |||
73 | |||
74 | static void small_random(small *); | ||
75 | |||
76 | static void small_random_weightw(small *); | ||
77 | |||
78 | #endif | ||
79 | |||
80 | /* from libpqcrypto-20180314/crypto_kem/sntrup4591761/ref/mod3.h */ | ||
81 | #ifndef mod3_h | ||
82 | #define mod3_h | ||
83 | |||
84 | |||
85 | /* -1 if x is nonzero, 0 otherwise */ | ||
86 | static inline int mod3_nonzero_mask(small x) | ||
87 | { | ||
88 | return -x*x; | ||
89 | } | ||
90 | |||
91 | /* input between -100000 and 100000 */ | ||
92 | /* output between -1 and 1 */ | ||
93 | static inline small mod3_freeze(crypto_int32 a) | ||
94 | { | ||
95 | a -= 3 * ((10923 * a) >> 15); | ||
96 | a -= 3 * ((89478485 * a + 134217728) >> 28); | ||
97 | return a; | ||
98 | } | ||
99 | |||
100 | static inline small mod3_minusproduct(small a,small b,small c) | ||
101 | { | ||
102 | crypto_int32 A = a; | ||
103 | crypto_int32 B = b; | ||
104 | crypto_int32 C = c; | ||
105 | return mod3_freeze(A - B * C); | ||
106 | } | ||
107 | |||
108 | static inline small mod3_plusproduct(small a,small b,small c) | ||
109 | { | ||
110 | crypto_int32 A = a; | ||
111 | crypto_int32 B = b; | ||
112 | crypto_int32 C = c; | ||
113 | return mod3_freeze(A + B * C); | ||
114 | } | ||
115 | |||
116 | static inline small mod3_product(small a,small b) | ||
117 | { | ||
118 | return a * b; | ||
119 | } | ||
120 | |||
121 | static inline small mod3_sum(small a,small b) | ||
122 | { | ||
123 | crypto_int32 A = a; | ||
124 | crypto_int32 B = b; | ||
125 | return mod3_freeze(A + B); | ||
126 | } | ||
127 | |||
128 | static inline small mod3_reciprocal(small a1) | ||
129 | { | ||
130 | return a1; | ||
131 | } | ||
132 | |||
133 | static inline small mod3_quotient(small num,small den) | ||
134 | { | ||
135 | return mod3_product(num,mod3_reciprocal(den)); | ||
136 | } | ||
137 | |||
138 | #endif | ||
139 | |||
140 | /* from libpqcrypto-20180314/crypto_kem/sntrup4591761/ref/modq.h */ | ||
141 | #ifndef modq_h | ||
142 | #define modq_h | ||
143 | |||
144 | |||
145 | typedef crypto_int16 modq; | ||
146 | |||
147 | /* -1 if x is nonzero, 0 otherwise */ | ||
148 | static inline int modq_nonzero_mask(modq x) | ||
149 | { | ||
150 | crypto_int32 r = (crypto_uint16) x; | ||
151 | r = -r; | ||
152 | r >>= 30; | ||
153 | return r; | ||
154 | } | ||
155 | |||
156 | /* input between -9000000 and 9000000 */ | ||
157 | /* output between -2295 and 2295 */ | ||
158 | static inline modq modq_freeze(crypto_int32 a) | ||
159 | { | ||
160 | a -= 4591 * ((228 * a) >> 20); | ||
161 | a -= 4591 * ((58470 * a + 134217728) >> 28); | ||
162 | return a; | ||
163 | } | ||
164 | |||
165 | static inline modq modq_minusproduct(modq a,modq b,modq c) | ||
166 | { | ||
167 | crypto_int32 A = a; | ||
168 | crypto_int32 B = b; | ||
169 | crypto_int32 C = c; | ||
170 | return modq_freeze(A - B * C); | ||
171 | } | ||
172 | |||
173 | static inline modq modq_plusproduct(modq a,modq b,modq c) | ||
174 | { | ||
175 | crypto_int32 A = a; | ||
176 | crypto_int32 B = b; | ||
177 | crypto_int32 C = c; | ||
178 | return modq_freeze(A + B * C); | ||
179 | } | ||
180 | |||
181 | static inline modq modq_product(modq a,modq b) | ||
182 | { | ||
183 | crypto_int32 A = a; | ||
184 | crypto_int32 B = b; | ||
185 | return modq_freeze(A * B); | ||
186 | } | ||
187 | |||
188 | static inline modq modq_square(modq a) | ||
189 | { | ||
190 | crypto_int32 A = a; | ||
191 | return modq_freeze(A * A); | ||
192 | } | ||
193 | |||
194 | static inline modq modq_sum(modq a,modq b) | ||
195 | { | ||
196 | crypto_int32 A = a; | ||
197 | crypto_int32 B = b; | ||
198 | return modq_freeze(A + B); | ||
199 | } | ||
200 | |||
201 | static inline modq modq_reciprocal(modq a1) | ||
202 | { | ||
203 | modq a2 = modq_square(a1); | ||
204 | modq a3 = modq_product(a2,a1); | ||
205 | modq a4 = modq_square(a2); | ||
206 | modq a8 = modq_square(a4); | ||
207 | modq a16 = modq_square(a8); | ||
208 | modq a32 = modq_square(a16); | ||
209 | modq a35 = modq_product(a32,a3); | ||
210 | modq a70 = modq_square(a35); | ||
211 | modq a140 = modq_square(a70); | ||
212 | modq a143 = modq_product(a140,a3); | ||
213 | modq a286 = modq_square(a143); | ||
214 | modq a572 = modq_square(a286); | ||
215 | modq a1144 = modq_square(a572); | ||
216 | modq a1147 = modq_product(a1144,a3); | ||
217 | modq a2294 = modq_square(a1147); | ||
218 | modq a4588 = modq_square(a2294); | ||
219 | modq a4589 = modq_product(a4588,a1); | ||
220 | return a4589; | ||
221 | } | ||
222 | |||
223 | static inline modq modq_quotient(modq num,modq den) | ||
224 | { | ||
225 | return modq_product(num,modq_reciprocal(den)); | ||
226 | } | ||
227 | |||
228 | #endif | ||
229 | |||
230 | /* from libpqcrypto-20180314/crypto_kem/sntrup4591761/ref/params.h */ | ||
231 | #ifndef params_h | ||
232 | #define params_h | ||
233 | |||
234 | #define q 4591 | ||
235 | /* XXX: also built into modq in various ways */ | ||
236 | |||
237 | #define qshift 2295 | ||
238 | #define p 761 | ||
239 | #define w 286 | ||
240 | |||
241 | #define rq_encode_len 1218 | ||
242 | #define small_encode_len 191 | ||
243 | |||
244 | #endif | ||
245 | |||
246 | /* from libpqcrypto-20180314/crypto_kem/sntrup4591761/ref/r3.h */ | ||
247 | #ifndef r3_h | ||
248 | #define r3_h | ||
249 | |||
250 | |||
251 | static void r3_mult(small *,const small *,const small *); | ||
252 | |||
253 | extern int r3_recip(small *,const small *); | ||
254 | |||
255 | #endif | ||
256 | |||
257 | /* from libpqcrypto-20180314/crypto_kem/sntrup4591761/ref/rq.h */ | ||
258 | #ifndef rq_h | ||
259 | #define rq_h | ||
260 | |||
261 | |||
262 | static void rq_encode(unsigned char *,const modq *); | ||
263 | |||
264 | static void rq_decode(modq *,const unsigned char *); | ||
265 | |||
266 | static void rq_encoderounded(unsigned char *,const modq *); | ||
267 | |||
268 | static void rq_decoderounded(modq *,const unsigned char *); | ||
269 | |||
270 | static void rq_round3(modq *,const modq *); | ||
271 | |||
272 | static void rq_mult(modq *,const modq *,const small *); | ||
273 | |||
274 | int rq_recip3(modq *,const small *); | ||
275 | |||
276 | #endif | ||
277 | |||
278 | /* from libpqcrypto-20180314/crypto_kem/sntrup4591761/ref/swap.h */ | ||
279 | #ifndef swap_h | ||
280 | #define swap_h | ||
281 | |||
282 | static void swap(void *,void *,int,int); | ||
283 | |||
284 | #endif | ||
285 | |||
286 | /* from libpqcrypto-20180314/crypto_kem/sntrup4591761/ref/dec.c */ | ||
287 | /* See https://ntruprime.cr.yp.to/software.html for detailed documentation. */ | ||
288 | |||
289 | #ifdef KAT | ||
290 | #endif | ||
291 | |||
292 | |||
293 | int crypto_kem_sntrup4591761_dec( | ||
294 | unsigned char *k, | ||
295 | const unsigned char *cstr, | ||
296 | const unsigned char *sk | ||
297 | ) | ||
298 | { | ||
299 | small f[p]; | ||
300 | modq h[p]; | ||
301 | small grecip[p]; | ||
302 | modq c[p]; | ||
303 | modq t[p]; | ||
304 | small t3[p]; | ||
305 | small r[p]; | ||
306 | modq hr[p]; | ||
307 | unsigned char rstr[small_encode_len]; | ||
308 | unsigned char hash[64]; | ||
309 | int i; | ||
310 | int result = 0; | ||
311 | int weight; | ||
312 | |||
313 | small_decode(f,sk); | ||
314 | small_decode(grecip,sk + small_encode_len); | ||
315 | rq_decode(h,sk + 2 * small_encode_len); | ||
316 | |||
317 | rq_decoderounded(c,cstr + 32); | ||
318 | |||
319 | rq_mult(t,c,f); | ||
320 | for (i = 0;i < p;++i) t3[i] = mod3_freeze(modq_freeze(3*t[i])); | ||
321 | |||
322 | r3_mult(r,t3,grecip); | ||
323 | |||
324 | #ifdef KAT | ||
325 | { | ||
326 | int j; | ||
327 | printf("decrypt r:"); | ||
328 | for (j = 0;j < p;++j) | ||
329 | if (r[j] == 1) printf(" +%d",j); | ||
330 | else if (r[j] == -1) printf(" -%d",j); | ||
331 | printf("\n"); | ||
332 | } | ||
333 | #endif | ||
334 | |||
335 | weight = 0; | ||
336 | for (i = 0;i < p;++i) weight += (1 & r[i]); | ||
337 | weight -= w; | ||
338 | result |= modq_nonzero_mask(weight); /* XXX: puts limit on p */ | ||
339 | |||
340 | rq_mult(hr,h,r); | ||
341 | rq_round3(hr,hr); | ||
342 | for (i = 0;i < p;++i) result |= modq_nonzero_mask(hr[i] - c[i]); | ||
343 | |||
344 | small_encode(rstr,r); | ||
345 | crypto_hash_sha512(hash,rstr,sizeof rstr); | ||
346 | result |= crypto_verify_32(hash,cstr); | ||
347 | |||
348 | for (i = 0;i < 32;++i) k[i] = (hash[32 + i] & ~result); | ||
349 | return result; | ||
350 | } | ||
351 | |||
352 | /* from libpqcrypto-20180314/crypto_kem/sntrup4591761/ref/enc.c */ | ||
353 | /* See https://ntruprime.cr.yp.to/software.html for detailed documentation. */ | ||
354 | |||
355 | #ifdef KAT | ||
356 | #endif | ||
357 | |||
358 | |||
359 | int crypto_kem_sntrup4591761_enc( | ||
360 | unsigned char *cstr, | ||
361 | unsigned char *k, | ||
362 | const unsigned char *pk | ||
363 | ) | ||
364 | { | ||
365 | small r[p]; | ||
366 | modq h[p]; | ||
367 | modq c[p]; | ||
368 | unsigned char rstr[small_encode_len]; | ||
369 | unsigned char hash[64]; | ||
370 | |||
371 | small_random_weightw(r); | ||
372 | |||
373 | #ifdef KAT | ||
374 | { | ||
375 | int i; | ||
376 | printf("encrypt r:"); | ||
377 | for (i = 0;i < p;++i) | ||
378 | if (r[i] == 1) printf(" +%d",i); | ||
379 | else if (r[i] == -1) printf(" -%d",i); | ||
380 | printf("\n"); | ||
381 | } | ||
382 | #endif | ||
383 | |||
384 | small_encode(rstr,r); | ||
385 | crypto_hash_sha512(hash,rstr,sizeof rstr); | ||
386 | |||
387 | rq_decode(h,pk); | ||
388 | rq_mult(c,h,r); | ||
389 | rq_round3(c,c); | ||
390 | |||
391 | memcpy(k,hash + 32,32); | ||
392 | memcpy(cstr,hash,32); | ||
393 | rq_encoderounded(cstr + 32,c); | ||
394 | |||
395 | return 0; | ||
396 | } | ||
397 | |||
398 | /* from libpqcrypto-20180314/crypto_kem/sntrup4591761/ref/keypair.c */ | ||
399 | /* See https://ntruprime.cr.yp.to/software.html for detailed documentation. */ | ||
400 | |||
401 | |||
402 | #if crypto_kem_sntrup4591761_PUBLICKEYBYTES != rq_encode_len | ||
403 | #error "crypto_kem_sntrup4591761_PUBLICKEYBYTES must match rq_encode_len" | ||
404 | #endif | ||
405 | #if crypto_kem_sntrup4591761_SECRETKEYBYTES != rq_encode_len + 2 * small_encode_len | ||
406 | #error "crypto_kem_sntrup4591761_SECRETKEYBYTES must match rq_encode_len + 2 * small_encode_len" | ||
407 | #endif | ||
408 | |||
409 | int crypto_kem_sntrup4591761_keypair(unsigned char *pk,unsigned char *sk) | ||
410 | { | ||
411 | small g[p]; | ||
412 | small grecip[p]; | ||
413 | small f[p]; | ||
414 | modq f3recip[p]; | ||
415 | modq h[p]; | ||
416 | |||
417 | do | ||
418 | small_random(g); | ||
419 | while (r3_recip(grecip,g) != 0); | ||
420 | |||
421 | small_random_weightw(f); | ||
422 | rq_recip3(f3recip,f); | ||
423 | |||
424 | rq_mult(h,f3recip,g); | ||
425 | |||
426 | rq_encode(pk,h); | ||
427 | small_encode(sk,f); | ||
428 | small_encode(sk + small_encode_len,grecip); | ||
429 | memcpy(sk + 2 * small_encode_len,pk,rq_encode_len); | ||
430 | |||
431 | return 0; | ||
432 | } | ||
433 | |||
434 | /* from libpqcrypto-20180314/crypto_kem/sntrup4591761/ref/r3_mult.c */ | ||
435 | /* See https://ntruprime.cr.yp.to/software.html for detailed documentation. */ | ||
436 | |||
437 | |||
438 | static void r3_mult(small *h,const small *f,const small *g) | ||
439 | { | ||
440 | small fg[p + p - 1]; | ||
441 | small result; | ||
442 | int i, j; | ||
443 | |||
444 | for (i = 0;i < p;++i) { | ||
445 | result = 0; | ||
446 | for (j = 0;j <= i;++j) | ||
447 | result = mod3_plusproduct(result,f[j],g[i - j]); | ||
448 | fg[i] = result; | ||
449 | } | ||
450 | for (i = p;i < p + p - 1;++i) { | ||
451 | result = 0; | ||
452 | for (j = i - p + 1;j < p;++j) | ||
453 | result = mod3_plusproduct(result,f[j],g[i - j]); | ||
454 | fg[i] = result; | ||
455 | } | ||
456 | |||
457 | for (i = p + p - 2;i >= p;--i) { | ||
458 | fg[i - p] = mod3_sum(fg[i - p],fg[i]); | ||
459 | fg[i - p + 1] = mod3_sum(fg[i - p + 1],fg[i]); | ||
460 | } | ||
461 | |||
462 | for (i = 0;i < p;++i) | ||
463 | h[i] = fg[i]; | ||
464 | } | ||
465 | |||
466 | /* from libpqcrypto-20180314/crypto_kem/sntrup4591761/ref/r3_recip.c */ | ||
467 | /* See https://ntruprime.cr.yp.to/software.html for detailed documentation. */ | ||
468 | |||
469 | |||
470 | /* caller must ensure that x-y does not overflow */ | ||
471 | static int smaller_mask_r3_recip(int x,int y) | ||
472 | { | ||
473 | return (x - y) >> 31; | ||
474 | } | ||
475 | |||
476 | static void vectormod3_product(small *z,int len,const small *x,const small c) | ||
477 | { | ||
478 | int i; | ||
479 | for (i = 0;i < len;++i) z[i] = mod3_product(x[i],c); | ||
480 | } | ||
481 | |||
482 | static void vectormod3_minusproduct(small *z,int len,const small *x,const small *y,const small c) | ||
483 | { | ||
484 | int i; | ||
485 | for (i = 0;i < len;++i) z[i] = mod3_minusproduct(x[i],y[i],c); | ||
486 | } | ||
487 | |||
488 | static void vectormod3_shift(small *z,int len) | ||
489 | { | ||
490 | int i; | ||
491 | for (i = len - 1;i > 0;--i) z[i] = z[i - 1]; | ||
492 | z[0] = 0; | ||
493 | } | ||
494 | |||
495 | /* | ||
496 | r = s^(-1) mod m, returning 0, if s is invertible mod m | ||
497 | or returning -1 if s is not invertible mod m | ||
498 | r,s are polys of degree <p | ||
499 | m is x^p-x-1 | ||
500 | */ | ||
501 | int r3_recip(small *r,const small *s) | ||
502 | { | ||
503 | const int loops = 2*p + 1; | ||
504 | int loop; | ||
505 | small f[p + 1]; | ||
506 | small g[p + 1]; | ||
507 | small u[2*p + 2]; | ||
508 | small v[2*p + 2]; | ||
509 | small c; | ||
510 | int i; | ||
511 | int d = p; | ||
512 | int e = p; | ||
513 | int swapmask; | ||
514 | |||
515 | for (i = 2;i < p;++i) f[i] = 0; | ||
516 | f[0] = -1; | ||
517 | f[1] = -1; | ||
518 | f[p] = 1; | ||
519 | /* generalization: can initialize f to any polynomial m */ | ||
520 | /* requirements: m has degree exactly p, nonzero constant coefficient */ | ||
521 | |||
522 | for (i = 0;i < p;++i) g[i] = s[i]; | ||
523 | g[p] = 0; | ||
524 | |||
525 | for (i = 0;i <= loops;++i) u[i] = 0; | ||
526 | |||
527 | v[0] = 1; | ||
528 | for (i = 1;i <= loops;++i) v[i] = 0; | ||
529 | |||
530 | loop = 0; | ||
531 | for (;;) { | ||
532 | /* e == -1 or d + e + loop <= 2*p */ | ||
533 | |||
534 | /* f has degree p: i.e., f[p]!=0 */ | ||
535 | /* f[i]==0 for i < p-d */ | ||
536 | |||
537 | /* g has degree <=p (so it fits in p+1 coefficients) */ | ||
538 | /* g[i]==0 for i < p-e */ | ||
539 | |||
540 | /* u has degree <=loop (so it fits in loop+1 coefficients) */ | ||
541 | /* u[i]==0 for i < p-d */ | ||
542 | /* if invertible: u[i]==0 for i < loop-p (so can look at just p+1 coefficients) */ | ||
543 | |||
544 | /* v has degree <=loop (so it fits in loop+1 coefficients) */ | ||
545 | /* v[i]==0 for i < p-e */ | ||
546 | /* v[i]==0 for i < loop-p (so can look at just p+1 coefficients) */ | ||
547 | |||
548 | if (loop >= loops) break; | ||
549 | |||
550 | c = mod3_quotient(g[p],f[p]); | ||
551 | |||
552 | vectormod3_minusproduct(g,p + 1,g,f,c); | ||
553 | vectormod3_shift(g,p + 1); | ||
554 | |||
555 | #ifdef SIMPLER | ||
556 | vectormod3_minusproduct(v,loops + 1,v,u,c); | ||
557 | vectormod3_shift(v,loops + 1); | ||
558 | #else | ||
559 | if (loop < p) { | ||
560 | vectormod3_minusproduct(v,loop + 1,v,u,c); | ||
561 | vectormod3_shift(v,loop + 2); | ||
562 | } else { | ||
563 | vectormod3_minusproduct(v + loop - p,p + 1,v + loop - p,u + loop - p,c); | ||
564 | vectormod3_shift(v + loop - p,p + 2); | ||
565 | } | ||
566 | #endif | ||
567 | |||
568 | e -= 1; | ||
569 | |||
570 | ++loop; | ||
571 | |||
572 | swapmask = smaller_mask_r3_recip(e,d) & mod3_nonzero_mask(g[p]); | ||
573 | swap(&e,&d,sizeof e,swapmask); | ||
574 | swap(f,g,(p + 1) * sizeof(small),swapmask); | ||
575 | |||
576 | #ifdef SIMPLER | ||
577 | swap(u,v,(loops + 1) * sizeof(small),swapmask); | ||
578 | #else | ||
579 | if (loop < p) { | ||
580 | swap(u,v,(loop + 1) * sizeof(small),swapmask); | ||
581 | } else { | ||
582 | swap(u + loop - p,v + loop - p,(p + 1) * sizeof(small),swapmask); | ||
583 | } | ||
584 | #endif | ||
585 | } | ||
586 | |||
587 | c = mod3_reciprocal(f[p]); | ||
588 | vectormod3_product(r,p,u + p,c); | ||
589 | return smaller_mask_r3_recip(0,d); | ||
590 | } | ||
591 | |||
592 | /* from libpqcrypto-20180314/crypto_kem/sntrup4591761/ref/randomsmall.c */ | ||
593 | /* See https://ntruprime.cr.yp.to/software.html for detailed documentation. */ | ||
594 | |||
595 | |||
596 | static void small_random(small *g) | ||
597 | { | ||
598 | int i; | ||
599 | |||
600 | for (i = 0;i < p;++i) { | ||
601 | crypto_uint32 r = small_random32(); | ||
602 | g[i] = (small) (((1073741823 & r) * 3) >> 30) - 1; | ||
603 | } | ||
604 | } | ||
605 | |||
606 | /* from libpqcrypto-20180314/crypto_kem/sntrup4591761/ref/randomweightw.c */ | ||
607 | /* See https://ntruprime.cr.yp.to/software.html for detailed documentation. */ | ||
608 | |||
609 | |||
610 | static void small_random_weightw(small *f) | ||
611 | { | ||
612 | crypto_int32 r[p]; | ||
613 | int i; | ||
614 | |||
615 | for (i = 0;i < p;++i) r[i] = small_random32(); | ||
616 | for (i = 0;i < w;++i) r[i] &= -2; | ||
617 | for (i = w;i < p;++i) r[i] = (r[i] & -3) | 1; | ||
618 | int32_sort(r,p); | ||
619 | for (i = 0;i < p;++i) f[i] = ((small) (r[i] & 3)) - 1; | ||
620 | } | ||
621 | |||
622 | /* from libpqcrypto-20180314/crypto_kem/sntrup4591761/ref/rq.c */ | ||
623 | /* See https://ntruprime.cr.yp.to/software.html for detailed documentation. */ | ||
624 | |||
625 | |||
626 | static void rq_encode(unsigned char *c,const modq *f) | ||
627 | { | ||
628 | crypto_int32 f0, f1, f2, f3, f4; | ||
629 | int i; | ||
630 | |||
631 | for (i = 0;i < p/5;++i) { | ||
632 | f0 = *f++ + qshift; | ||
633 | f1 = *f++ + qshift; | ||
634 | f2 = *f++ + qshift; | ||
635 | f3 = *f++ + qshift; | ||
636 | f4 = *f++ + qshift; | ||
637 | /* now want f0 + 6144*f1 + ... as a 64-bit integer */ | ||
638 | f1 *= 3; | ||
639 | f2 *= 9; | ||
640 | f3 *= 27; | ||
641 | f4 *= 81; | ||
642 | /* now want f0 + f1<<11 + f2<<22 + f3<<33 + f4<<44 */ | ||
643 | f0 += f1 << 11; | ||
644 | *c++ = f0; f0 >>= 8; | ||
645 | *c++ = f0; f0 >>= 8; | ||
646 | f0 += f2 << 6; | ||
647 | *c++ = f0; f0 >>= 8; | ||
648 | *c++ = f0; f0 >>= 8; | ||
649 | f0 += f3 << 1; | ||
650 | *c++ = f0; f0 >>= 8; | ||
651 | f0 += f4 << 4; | ||
652 | *c++ = f0; f0 >>= 8; | ||
653 | *c++ = f0; f0 >>= 8; | ||
654 | *c++ = f0; | ||
655 | } | ||
656 | /* XXX: using p mod 5 = 1 */ | ||
657 | f0 = *f++ + qshift; | ||
658 | *c++ = f0; f0 >>= 8; | ||
659 | *c++ = f0; | ||
660 | } | ||
661 | |||
662 | static void rq_decode(modq *f,const unsigned char *c) | ||
663 | { | ||
664 | crypto_uint32 c0, c1, c2, c3, c4, c5, c6, c7; | ||
665 | crypto_uint32 f0, f1, f2, f3, f4; | ||
666 | int i; | ||
667 | |||
668 | for (i = 0;i < p/5;++i) { | ||
669 | c0 = *c++; | ||
670 | c1 = *c++; | ||
671 | c2 = *c++; | ||
672 | c3 = *c++; | ||
673 | c4 = *c++; | ||
674 | c5 = *c++; | ||
675 | c6 = *c++; | ||
676 | c7 = *c++; | ||
677 | |||
678 | /* f0 + f1*6144 + f2*6144^2 + f3*6144^3 + f4*6144^4 */ | ||
679 | /* = c0 + c1*256 + ... + c6*256^6 + c7*256^7 */ | ||
680 | /* with each f between 0 and 4590 */ | ||
681 | |||
682 | c6 += c7 << 8; | ||
683 | /* c6 <= 23241 = floor(4591*6144^4/2^48) */ | ||
684 | /* f4 = (16/81)c6 + (1/1296)(c5+[0,1]) - [0,0.75] */ | ||
685 | /* claim: 2^19 f4 < x < 2^19(f4+1) */ | ||
686 | /* where x = 103564 c6 + 405(c5+1) */ | ||
687 | /* proof: x - 2^19 f4 = (76/81)c6 + (37/81)c5 + 405 - (32768/81)[0,1] + 2^19[0,0.75] */ | ||
688 | /* at least 405 - 32768/81 > 0 */ | ||
689 | /* at most (76/81)23241 + (37/81)255 + 405 + 2^19 0.75 < 2^19 */ | ||
690 | f4 = (103564*c6 + 405*(c5+1)) >> 19; | ||
691 | |||
692 | c5 += c6 << 8; | ||
693 | c5 -= (f4 * 81) << 4; | ||
694 | c4 += c5 << 8; | ||
695 | |||
696 | /* f0 + f1*6144 + f2*6144^2 + f3*6144^3 */ | ||
697 | /* = c0 + c1*256 + c2*256^2 + c3*256^3 + c4*256^4 */ | ||
698 | /* c4 <= 247914 = floor(4591*6144^3/2^32) */ | ||
699 | /* f3 = (1/54)(c4+[0,1]) - [0,0.75] */ | ||
700 | /* claim: 2^19 f3 < x < 2^19(f3+1) */ | ||
701 | /* where x = 9709(c4+2) */ | ||
702 | /* proof: x - 2^19 f3 = 19418 - (1/27)c4 - (262144/27)[0,1] + 2^19[0,0.75] */ | ||
703 | /* at least 19418 - 247914/27 - 262144/27 > 0 */ | ||
704 | /* at most 19418 + 2^19 0.75 < 2^19 */ | ||
705 | f3 = (9709*(c4+2)) >> 19; | ||
706 | |||
707 | c4 -= (f3 * 27) << 1; | ||
708 | c3 += c4 << 8; | ||
709 | /* f0 + f1*6144 + f2*6144^2 */ | ||
710 | /* = c0 + c1*256 + c2*256^2 + c3*256^3 */ | ||
711 | /* c3 <= 10329 = floor(4591*6144^2/2^24) */ | ||
712 | /* f2 = (4/9)c3 + (1/576)c2 + (1/147456)c1 + (1/37748736)c0 - [0,0.75] */ | ||
713 | /* claim: 2^19 f2 < x < 2^19(f2+1) */ | ||
714 | /* where x = 233017 c3 + 910(c2+2) */ | ||
715 | /* proof: x - 2^19 f2 = 1820 + (1/9)c3 - (2/9)c2 - (32/9)c1 - (1/72)c0 + 2^19[0,0.75] */ | ||
716 | /* at least 1820 - (2/9)255 - (32/9)255 - (1/72)255 > 0 */ | ||
717 | /* at most 1820 + (1/9)10329 + 2^19 0.75 < 2^19 */ | ||
718 | f2 = (233017*c3 + 910*(c2+2)) >> 19; | ||
719 | |||
720 | c2 += c3 << 8; | ||
721 | c2 -= (f2 * 9) << 6; | ||
722 | c1 += c2 << 8; | ||
723 | /* f0 + f1*6144 */ | ||
724 | /* = c0 + c1*256 */ | ||
725 | /* c1 <= 110184 = floor(4591*6144/2^8) */ | ||
726 | /* f1 = (1/24)c1 + (1/6144)c0 - (1/6144)f0 */ | ||
727 | /* claim: 2^19 f1 < x < 2^19(f1+1) */ | ||
728 | /* where x = 21845(c1+2) + 85 c0 */ | ||
729 | /* proof: x - 2^19 f1 = 43690 - (1/3)c1 - (1/3)c0 + 2^19 [0,0.75] */ | ||
730 | /* at least 43690 - (1/3)110184 - (1/3)255 > 0 */ | ||
731 | /* at most 43690 + 2^19 0.75 < 2^19 */ | ||
732 | f1 = (21845*(c1+2) + 85*c0) >> 19; | ||
733 | |||
734 | c1 -= (f1 * 3) << 3; | ||
735 | c0 += c1 << 8; | ||
736 | f0 = c0; | ||
737 | |||
738 | *f++ = modq_freeze(f0 + q - qshift); | ||
739 | *f++ = modq_freeze(f1 + q - qshift); | ||
740 | *f++ = modq_freeze(f2 + q - qshift); | ||
741 | *f++ = modq_freeze(f3 + q - qshift); | ||
742 | *f++ = modq_freeze(f4 + q - qshift); | ||
743 | } | ||
744 | |||
745 | c0 = *c++; | ||
746 | c1 = *c++; | ||
747 | c0 += c1 << 8; | ||
748 | *f++ = modq_freeze(c0 + q - qshift); | ||
749 | } | ||
750 | |||
751 | /* from libpqcrypto-20180314/crypto_kem/sntrup4591761/ref/rq_mult.c */ | ||
752 | /* See https://ntruprime.cr.yp.to/software.html for detailed documentation. */ | ||
753 | |||
754 | |||
755 | static void rq_mult(modq *h,const modq *f,const small *g) | ||
756 | { | ||
757 | modq fg[p + p - 1]; | ||
758 | modq result; | ||
759 | int i, j; | ||
760 | |||
761 | for (i = 0;i < p;++i) { | ||
762 | result = 0; | ||
763 | for (j = 0;j <= i;++j) | ||
764 | result = modq_plusproduct(result,f[j],g[i - j]); | ||
765 | fg[i] = result; | ||
766 | } | ||
767 | for (i = p;i < p + p - 1;++i) { | ||
768 | result = 0; | ||
769 | for (j = i - p + 1;j < p;++j) | ||
770 | result = modq_plusproduct(result,f[j],g[i - j]); | ||
771 | fg[i] = result; | ||
772 | } | ||
773 | |||
774 | for (i = p + p - 2;i >= p;--i) { | ||
775 | fg[i - p] = modq_sum(fg[i - p],fg[i]); | ||
776 | fg[i - p + 1] = modq_sum(fg[i - p + 1],fg[i]); | ||
777 | } | ||
778 | |||
779 | for (i = 0;i < p;++i) | ||
780 | h[i] = fg[i]; | ||
781 | } | ||
782 | |||
783 | /* from libpqcrypto-20180314/crypto_kem/sntrup4591761/ref/rq_recip3.c */ | ||
784 | /* See https://ntruprime.cr.yp.to/software.html for detailed documentation. */ | ||
785 | |||
786 | |||
787 | /* caller must ensure that x-y does not overflow */ | ||
788 | static int smaller_mask_rq_recip3(int x,int y) | ||
789 | { | ||
790 | return (x - y) >> 31; | ||
791 | } | ||
792 | |||
793 | static void vectormodq_product(modq *z,int len,const modq *x,const modq c) | ||
794 | { | ||
795 | int i; | ||
796 | for (i = 0;i < len;++i) z[i] = modq_product(x[i],c); | ||
797 | } | ||
798 | |||
799 | static void vectormodq_minusproduct(modq *z,int len,const modq *x,const modq *y,const modq c) | ||
800 | { | ||
801 | int i; | ||
802 | for (i = 0;i < len;++i) z[i] = modq_minusproduct(x[i],y[i],c); | ||
803 | } | ||
804 | |||
805 | static void vectormodq_shift(modq *z,int len) | ||
806 | { | ||
807 | int i; | ||
808 | for (i = len - 1;i > 0;--i) z[i] = z[i - 1]; | ||
809 | z[0] = 0; | ||
810 | } | ||
811 | |||
812 | /* | ||
813 | r = (3s)^(-1) mod m, returning 0, if s is invertible mod m | ||
814 | or returning -1 if s is not invertible mod m | ||
815 | r,s are polys of degree <p | ||
816 | m is x^p-x-1 | ||
817 | */ | ||
818 | int rq_recip3(modq *r,const small *s) | ||
819 | { | ||
820 | const int loops = 2*p + 1; | ||
821 | int loop; | ||
822 | modq f[p + 1]; | ||
823 | modq g[p + 1]; | ||
824 | modq u[2*p + 2]; | ||
825 | modq v[2*p + 2]; | ||
826 | modq c; | ||
827 | int i; | ||
828 | int d = p; | ||
829 | int e = p; | ||
830 | int swapmask; | ||
831 | |||
832 | for (i = 2;i < p;++i) f[i] = 0; | ||
833 | f[0] = -1; | ||
834 | f[1] = -1; | ||
835 | f[p] = 1; | ||
836 | /* generalization: can initialize f to any polynomial m */ | ||
837 | /* requirements: m has degree exactly p, nonzero constant coefficient */ | ||
838 | |||
839 | for (i = 0;i < p;++i) g[i] = 3 * s[i]; | ||
840 | g[p] = 0; | ||
841 | |||
842 | for (i = 0;i <= loops;++i) u[i] = 0; | ||
843 | |||
844 | v[0] = 1; | ||
845 | for (i = 1;i <= loops;++i) v[i] = 0; | ||
846 | |||
847 | loop = 0; | ||
848 | for (;;) { | ||
849 | /* e == -1 or d + e + loop <= 2*p */ | ||
850 | |||
851 | /* f has degree p: i.e., f[p]!=0 */ | ||
852 | /* f[i]==0 for i < p-d */ | ||
853 | |||
854 | /* g has degree <=p (so it fits in p+1 coefficients) */ | ||
855 | /* g[i]==0 for i < p-e */ | ||
856 | |||
857 | /* u has degree <=loop (so it fits in loop+1 coefficients) */ | ||
858 | /* u[i]==0 for i < p-d */ | ||
859 | /* if invertible: u[i]==0 for i < loop-p (so can look at just p+1 coefficients) */ | ||
860 | |||
861 | /* v has degree <=loop (so it fits in loop+1 coefficients) */ | ||
862 | /* v[i]==0 for i < p-e */ | ||
863 | /* v[i]==0 for i < loop-p (so can look at just p+1 coefficients) */ | ||
864 | |||
865 | if (loop >= loops) break; | ||
866 | |||
867 | c = modq_quotient(g[p],f[p]); | ||
868 | |||
869 | vectormodq_minusproduct(g,p + 1,g,f,c); | ||
870 | vectormodq_shift(g,p + 1); | ||
871 | |||
872 | #ifdef SIMPLER | ||
873 | vectormodq_minusproduct(v,loops + 1,v,u,c); | ||
874 | vectormodq_shift(v,loops + 1); | ||
875 | #else | ||
876 | if (loop < p) { | ||
877 | vectormodq_minusproduct(v,loop + 1,v,u,c); | ||
878 | vectormodq_shift(v,loop + 2); | ||
879 | } else { | ||
880 | vectormodq_minusproduct(v + loop - p,p + 1,v + loop - p,u + loop - p,c); | ||
881 | vectormodq_shift(v + loop - p,p + 2); | ||
882 | } | ||
883 | #endif | ||
884 | |||
885 | e -= 1; | ||
886 | |||
887 | ++loop; | ||
888 | |||
889 | swapmask = smaller_mask_rq_recip3(e,d) & modq_nonzero_mask(g[p]); | ||
890 | swap(&e,&d,sizeof e,swapmask); | ||
891 | swap(f,g,(p + 1) * sizeof(modq),swapmask); | ||
892 | |||
893 | #ifdef SIMPLER | ||
894 | swap(u,v,(loops + 1) * sizeof(modq),swapmask); | ||
895 | #else | ||
896 | if (loop < p) { | ||
897 | swap(u,v,(loop + 1) * sizeof(modq),swapmask); | ||
898 | } else { | ||
899 | swap(u + loop - p,v + loop - p,(p + 1) * sizeof(modq),swapmask); | ||
900 | } | ||
901 | #endif | ||
902 | } | ||
903 | |||
904 | c = modq_reciprocal(f[p]); | ||
905 | vectormodq_product(r,p,u + p,c); | ||
906 | return smaller_mask_rq_recip3(0,d); | ||
907 | } | ||
908 | |||
909 | /* from libpqcrypto-20180314/crypto_kem/sntrup4591761/ref/rq_round3.c */ | ||
910 | /* See https://ntruprime.cr.yp.to/software.html for detailed documentation. */ | ||
911 | |||
912 | |||
913 | static void rq_round3(modq *h,const modq *f) | ||
914 | { | ||
915 | int i; | ||
916 | |||
917 | for (i = 0;i < p;++i) | ||
918 | h[i] = ((21846 * (f[i] + 2295) + 32768) >> 16) * 3 - 2295; | ||
919 | } | ||
920 | |||
921 | /* from libpqcrypto-20180314/crypto_kem/sntrup4591761/ref/rq_rounded.c */ | ||
922 | /* See https://ntruprime.cr.yp.to/software.html for detailed documentation. */ | ||
923 | |||
924 | |||
925 | static void rq_encoderounded(unsigned char *c,const modq *f) | ||
926 | { | ||
927 | crypto_int32 f0, f1, f2; | ||
928 | int i; | ||
929 | |||
930 | for (i = 0;i < p/3;++i) { | ||
931 | f0 = *f++ + qshift; | ||
932 | f1 = *f++ + qshift; | ||
933 | f2 = *f++ + qshift; | ||
934 | f0 = (21846 * f0) >> 16; | ||
935 | f1 = (21846 * f1) >> 16; | ||
936 | f2 = (21846 * f2) >> 16; | ||
937 | /* now want f0 + f1*1536 + f2*1536^2 as a 32-bit integer */ | ||
938 | f2 *= 3; | ||
939 | f1 += f2 << 9; | ||
940 | f1 *= 3; | ||
941 | f0 += f1 << 9; | ||
942 | *c++ = f0; f0 >>= 8; | ||
943 | *c++ = f0; f0 >>= 8; | ||
944 | *c++ = f0; f0 >>= 8; | ||
945 | *c++ = f0; | ||
946 | } | ||
947 | /* XXX: using p mod 3 = 2 */ | ||
948 | f0 = *f++ + qshift; | ||
949 | f1 = *f++ + qshift; | ||
950 | f0 = (21846 * f0) >> 16; | ||
951 | f1 = (21846 * f1) >> 16; | ||
952 | f1 *= 3; | ||
953 | f0 += f1 << 9; | ||
954 | *c++ = f0; f0 >>= 8; | ||
955 | *c++ = f0; f0 >>= 8; | ||
956 | *c++ = f0; | ||
957 | } | ||
958 | |||
959 | static void rq_decoderounded(modq *f,const unsigned char *c) | ||
960 | { | ||
961 | crypto_uint32 c0, c1, c2, c3; | ||
962 | crypto_uint32 f0, f1, f2; | ||
963 | int i; | ||
964 | |||
965 | for (i = 0;i < p/3;++i) { | ||
966 | c0 = *c++; | ||
967 | c1 = *c++; | ||
968 | c2 = *c++; | ||
969 | c3 = *c++; | ||
970 | |||
971 | /* f0 + f1*1536 + f2*1536^2 */ | ||
972 | /* = c0 + c1*256 + c2*256^2 + c3*256^3 */ | ||
973 | /* with each f between 0 and 1530 */ | ||
974 | |||
975 | /* f2 = (64/9)c3 + (1/36)c2 + (1/9216)c1 + (1/2359296)c0 - [0,0.99675] */ | ||
976 | /* claim: 2^21 f2 < x < 2^21(f2+1) */ | ||
977 | /* where x = 14913081*c3 + 58254*c2 + 228*(c1+2) */ | ||
978 | /* proof: x - 2^21 f2 = 456 - (8/9)c0 + (4/9)c1 - (2/9)c2 + (1/9)c3 + 2^21 [0,0.99675] */ | ||
979 | /* at least 456 - (8/9)255 - (2/9)255 > 0 */ | ||
980 | /* at most 456 + (4/9)255 + (1/9)255 + 2^21 0.99675 < 2^21 */ | ||
981 | f2 = (14913081*c3 + 58254*c2 + 228*(c1+2)) >> 21; | ||
982 | |||
983 | c2 += c3 << 8; | ||
984 | c2 -= (f2 * 9) << 2; | ||
985 | /* f0 + f1*1536 */ | ||
986 | /* = c0 + c1*256 + c2*256^2 */ | ||
987 | /* c2 <= 35 = floor((1530+1530*1536)/256^2) */ | ||
988 | /* f1 = (128/3)c2 + (1/6)c1 + (1/1536)c0 - (1/1536)f0 */ | ||
989 | /* claim: 2^21 f1 < x < 2^21(f1+1) */ | ||
990 | /* where x = 89478485*c2 + 349525*c1 + 1365*(c0+1) */ | ||
991 | /* proof: x - 2^21 f1 = 1365 - (1/3)c2 - (1/3)c1 - (1/3)c0 + (4096/3)f0 */ | ||
992 | /* at least 1365 - (1/3)35 - (1/3)255 - (1/3)255 > 0 */ | ||
993 | /* at most 1365 + (4096/3)1530 < 2^21 */ | ||
994 | f1 = (89478485*c2 + 349525*c1 + 1365*(c0+1)) >> 21; | ||
995 | |||
996 | c1 += c2 << 8; | ||
997 | c1 -= (f1 * 3) << 1; | ||
998 | |||
999 | c0 += c1 << 8; | ||
1000 | f0 = c0; | ||
1001 | |||
1002 | *f++ = modq_freeze(f0 * 3 + q - qshift); | ||
1003 | *f++ = modq_freeze(f1 * 3 + q - qshift); | ||
1004 | *f++ = modq_freeze(f2 * 3 + q - qshift); | ||
1005 | } | ||
1006 | |||
1007 | c0 = *c++; | ||
1008 | c1 = *c++; | ||
1009 | c2 = *c++; | ||
1010 | |||
1011 | f1 = (89478485*c2 + 349525*c1 + 1365*(c0+1)) >> 21; | ||
1012 | |||
1013 | c1 += c2 << 8; | ||
1014 | c1 -= (f1 * 3) << 1; | ||
1015 | |||
1016 | c0 += c1 << 8; | ||
1017 | f0 = c0; | ||
1018 | |||
1019 | *f++ = modq_freeze(f0 * 3 + q - qshift); | ||
1020 | *f++ = modq_freeze(f1 * 3 + q - qshift); | ||
1021 | } | ||
1022 | |||
1023 | /* from libpqcrypto-20180314/crypto_kem/sntrup4591761/ref/small.c */ | ||
1024 | /* See https://ntruprime.cr.yp.to/software.html for detailed documentation. */ | ||
1025 | |||
1026 | |||
1027 | /* XXX: these functions rely on p mod 4 = 1 */ | ||
1028 | |||
1029 | /* all coefficients in -1, 0, 1 */ | ||
1030 | static void small_encode(unsigned char *c,const small *f) | ||
1031 | { | ||
1032 | small c0; | ||
1033 | int i; | ||
1034 | |||
1035 | for (i = 0;i < p/4;++i) { | ||
1036 | c0 = *f++ + 1; | ||
1037 | c0 += (*f++ + 1) << 2; | ||
1038 | c0 += (*f++ + 1) << 4; | ||
1039 | c0 += (*f++ + 1) << 6; | ||
1040 | *c++ = c0; | ||
1041 | } | ||
1042 | c0 = *f++ + 1; | ||
1043 | *c++ = c0; | ||
1044 | } | ||
1045 | |||
1046 | static void small_decode(small *f,const unsigned char *c) | ||
1047 | { | ||
1048 | unsigned char c0; | ||
1049 | int i; | ||
1050 | |||
1051 | for (i = 0;i < p/4;++i) { | ||
1052 | c0 = *c++; | ||
1053 | *f++ = ((small) (c0 & 3)) - 1; c0 >>= 2; | ||
1054 | *f++ = ((small) (c0 & 3)) - 1; c0 >>= 2; | ||
1055 | *f++ = ((small) (c0 & 3)) - 1; c0 >>= 2; | ||
1056 | *f++ = ((small) (c0 & 3)) - 1; | ||
1057 | } | ||
1058 | c0 = *c++; | ||
1059 | *f++ = ((small) (c0 & 3)) - 1; | ||
1060 | } | ||
1061 | |||
1062 | /* from libpqcrypto-20180314/crypto_kem/sntrup4591761/ref/swap.c */ | ||
1063 | /* See https://ntruprime.cr.yp.to/software.html for detailed documentation. */ | ||
1064 | |||
1065 | |||
1066 | static void swap(void *x,void *y,int bytes,int mask) | ||
1067 | { | ||
1068 | int i; | ||
1069 | char xi, yi, c, t; | ||
1070 | |||
1071 | c = mask; | ||
1072 | |||
1073 | for (i = 0;i < bytes;++i) { | ||
1074 | xi = i[(char *) x]; | ||
1075 | yi = i[(char *) y]; | ||
1076 | t = c & (xi ^ yi); | ||
1077 | xi ^= t; | ||
1078 | yi ^= t; | ||
1079 | i[(char *) x] = xi; | ||
1080 | i[(char *) y] = yi; | ||
1081 | } | ||
1082 | } | ||
1083 | |||
diff --git a/sntrup4591761.sh b/sntrup4591761.sh new file mode 100644 index 000000000..e684c3329 --- /dev/null +++ b/sntrup4591761.sh | |||
@@ -0,0 +1,57 @@ | |||
1 | #!/bin/sh | ||
2 | # $OpenBSD: sntrup4591761.sh,v 1.3 2019/01/30 19:51:15 markus Exp $ | ||
3 | # Placed in the Public Domain. | ||
4 | # | ||
5 | AUTHOR="libpqcrypto-20180314/crypto_kem/sntrup4591761/ref/implementors" | ||
6 | FILES=" | ||
7 | libpqcrypto-20180314/crypto_kem/sntrup4591761/ref/int32_sort.h | ||
8 | libpqcrypto-20180314/crypto_kem/sntrup4591761/ref/int32_sort.c | ||
9 | libpqcrypto-20180314/crypto_kem/sntrup4591761/ref/small.h | ||
10 | libpqcrypto-20180314/crypto_kem/sntrup4591761/ref/mod3.h | ||
11 | libpqcrypto-20180314/crypto_kem/sntrup4591761/ref/modq.h | ||
12 | libpqcrypto-20180314/crypto_kem/sntrup4591761/ref/params.h | ||
13 | libpqcrypto-20180314/crypto_kem/sntrup4591761/ref/r3.h | ||
14 | libpqcrypto-20180314/crypto_kem/sntrup4591761/ref/rq.h | ||
15 | libpqcrypto-20180314/crypto_kem/sntrup4591761/ref/swap.h | ||
16 | libpqcrypto-20180314/crypto_kem/sntrup4591761/ref/dec.c | ||
17 | libpqcrypto-20180314/crypto_kem/sntrup4591761/ref/enc.c | ||
18 | libpqcrypto-20180314/crypto_kem/sntrup4591761/ref/keypair.c | ||
19 | libpqcrypto-20180314/crypto_kem/sntrup4591761/ref/r3_mult.c | ||
20 | libpqcrypto-20180314/crypto_kem/sntrup4591761/ref/r3_recip.c | ||
21 | libpqcrypto-20180314/crypto_kem/sntrup4591761/ref/randomsmall.c | ||
22 | libpqcrypto-20180314/crypto_kem/sntrup4591761/ref/randomweightw.c | ||
23 | libpqcrypto-20180314/crypto_kem/sntrup4591761/ref/rq.c | ||
24 | libpqcrypto-20180314/crypto_kem/sntrup4591761/ref/rq_mult.c | ||
25 | libpqcrypto-20180314/crypto_kem/sntrup4591761/ref/rq_recip3.c | ||
26 | libpqcrypto-20180314/crypto_kem/sntrup4591761/ref/rq_round3.c | ||
27 | libpqcrypto-20180314/crypto_kem/sntrup4591761/ref/rq_rounded.c | ||
28 | libpqcrypto-20180314/crypto_kem/sntrup4591761/ref/small.c | ||
29 | libpqcrypto-20180314/crypto_kem/sntrup4591761/ref/swap.c | ||
30 | " | ||
31 | ### | ||
32 | |||
33 | set -e | ||
34 | cd $1 | ||
35 | echo -n '/* $' | ||
36 | echo 'OpenBSD: $ */' | ||
37 | echo | ||
38 | echo '/*' | ||
39 | echo ' * Public Domain, Authors:' | ||
40 | sed -e '/Alphabetical order:/d' -e 's/^/ * - /' < $AUTHOR | ||
41 | echo ' */' | ||
42 | echo | ||
43 | echo '#include <string.h>' | ||
44 | echo '#include "crypto_api.h"' | ||
45 | echo | ||
46 | for i in $FILES; do | ||
47 | echo "/* from $i */" | ||
48 | b=$(basename $i .c) | ||
49 | grep \ | ||
50 | -v '#include' $i | \ | ||
51 | grep -v "extern crypto_int32 small_random32" | | ||
52 | sed -e "s/crypto_kem_/crypto_kem_sntrup4591761_/g" \ | ||
53 | -e "s/smaller_mask/smaller_mask_${b}/g" \ | ||
54 | -e "s/^extern void /static void /" \ | ||
55 | -e "s/^void /static void /" | ||
56 | echo | ||
57 | done | ||
@@ -4,9 +4,10 @@ NAME | |||
4 | ssh-add M-bM-^@M-^S adds private key identities to the authentication agent | 4 | ssh-add M-bM-^@M-^S adds private key identities to the authentication agent |
5 | 5 | ||
6 | SYNOPSIS | 6 | SYNOPSIS |
7 | ssh-add [-cDdkLlqXx] [-E fingerprint_hash] [-t life] [file ...] | 7 | ssh-add [-cDdkLlqvXx] [-E fingerprint_hash] [-t life] [file ...] |
8 | ssh-add -s pkcs11 | 8 | ssh-add -s pkcs11 |
9 | ssh-add -e pkcs11 | 9 | ssh-add -e pkcs11 |
10 | ssh-add -T pubkey ... | ||
10 | 11 | ||
11 | DESCRIPTION | 12 | DESCRIPTION |
12 | ssh-add adds private key identities to the authentication agent, | 13 | ssh-add adds private key identities to the authentication agent, |
@@ -65,11 +66,20 @@ DESCRIPTION | |||
65 | -s pkcs11 | 66 | -s pkcs11 |
66 | Add keys provided by the PKCS#11 shared library pkcs11. | 67 | Add keys provided by the PKCS#11 shared library pkcs11. |
67 | 68 | ||
69 | -T pubkey ... | ||
70 | Tests whether the private keys that correspond to the specified | ||
71 | pubkey files are usable by performing sign and verify operations | ||
72 | on each. | ||
73 | |||
68 | -t life | 74 | -t life |
69 | Set a maximum lifetime when adding identities to an agent. The | 75 | Set a maximum lifetime when adding identities to an agent. The |
70 | lifetime may be specified in seconds or in a time format | 76 | lifetime may be specified in seconds or in a time format |
71 | specified in sshd_config(5). | 77 | specified in sshd_config(5). |
72 | 78 | ||
79 | -v Verbose mode. Causes ssh-add to print debugging messages about | ||
80 | its progress. This is helpful in debugging problems. Multiple | ||
81 | -v options increase the verbosity. The maximum is 3. | ||
82 | |||
73 | -X Unlock the agent. | 83 | -X Unlock the agent. |
74 | 84 | ||
75 | -x Lock the agent with a password. | 85 | -x Lock the agent with a password. |
@@ -120,4 +130,4 @@ AUTHORS | |||
120 | created OpenSSH. Markus Friedl contributed the support for SSH protocol | 130 | created OpenSSH. Markus Friedl contributed the support for SSH protocol |
121 | versions 1.5 and 2.0. | 131 | versions 1.5 and 2.0. |
122 | 132 | ||
123 | OpenBSD 6.4 August 29, 2017 OpenBSD 6.4 | 133 | OpenBSD 6.5 January 21, 2019 OpenBSD 6.5 |
@@ -1,4 +1,4 @@ | |||
1 | .\" $OpenBSD: ssh-add.1,v 1.66 2017/08/29 13:05:58 jmc Exp $ | 1 | .\" $OpenBSD: ssh-add.1,v 1.69 2019/01/21 12:53:35 djm Exp $ |
2 | .\" | 2 | .\" |
3 | .\" Author: Tatu Ylonen <ylo@cs.hut.fi> | 3 | .\" Author: Tatu Ylonen <ylo@cs.hut.fi> |
4 | .\" Copyright (c) 1995 Tatu Ylonen <ylo@cs.hut.fi>, Espoo, Finland | 4 | .\" Copyright (c) 1995 Tatu Ylonen <ylo@cs.hut.fi>, Espoo, Finland |
@@ -35,7 +35,7 @@ | |||
35 | .\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF | 35 | .\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF |
36 | .\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | 36 | .\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |
37 | .\" | 37 | .\" |
38 | .Dd $Mdocdate: August 29 2017 $ | 38 | .Dd $Mdocdate: January 21 2019 $ |
39 | .Dt SSH-ADD 1 | 39 | .Dt SSH-ADD 1 |
40 | .Os | 40 | .Os |
41 | .Sh NAME | 41 | .Sh NAME |
@@ -43,7 +43,7 @@ | |||
43 | .Nd adds private key identities to the authentication agent | 43 | .Nd adds private key identities to the authentication agent |
44 | .Sh SYNOPSIS | 44 | .Sh SYNOPSIS |
45 | .Nm ssh-add | 45 | .Nm ssh-add |
46 | .Op Fl cDdkLlqXx | 46 | .Op Fl cDdkLlqvXx |
47 | .Op Fl E Ar fingerprint_hash | 47 | .Op Fl E Ar fingerprint_hash |
48 | .Op Fl t Ar life | 48 | .Op Fl t Ar life |
49 | .Op Ar | 49 | .Op Ar |
@@ -51,6 +51,9 @@ | |||
51 | .Fl s Ar pkcs11 | 51 | .Fl s Ar pkcs11 |
52 | .Nm ssh-add | 52 | .Nm ssh-add |
53 | .Fl e Ar pkcs11 | 53 | .Fl e Ar pkcs11 |
54 | .Nm ssh-add | ||
55 | .Fl T | ||
56 | .Ar pubkey ... | ||
54 | .Sh DESCRIPTION | 57 | .Sh DESCRIPTION |
55 | .Nm | 58 | .Nm |
56 | adds private key identities to the authentication agent, | 59 | adds private key identities to the authentication agent, |
@@ -131,11 +134,25 @@ Be quiet after a successful operation. | |||
131 | .It Fl s Ar pkcs11 | 134 | .It Fl s Ar pkcs11 |
132 | Add keys provided by the PKCS#11 shared library | 135 | Add keys provided by the PKCS#11 shared library |
133 | .Ar pkcs11 . | 136 | .Ar pkcs11 . |
137 | .It Fl T Ar pubkey ... | ||
138 | Tests whether the private keys that correspond to the specified | ||
139 | .Ar pubkey | ||
140 | files are usable by performing sign and verify operations on each. | ||
134 | .It Fl t Ar life | 141 | .It Fl t Ar life |
135 | Set a maximum lifetime when adding identities to an agent. | 142 | Set a maximum lifetime when adding identities to an agent. |
136 | The lifetime may be specified in seconds or in a time format | 143 | The lifetime may be specified in seconds or in a time format |
137 | specified in | 144 | specified in |
138 | .Xr sshd_config 5 . | 145 | .Xr sshd_config 5 . |
146 | .It Fl v | ||
147 | Verbose mode. | ||
148 | Causes | ||
149 | .Nm | ||
150 | to print debugging messages about its progress. | ||
151 | This is helpful in debugging problems. | ||
152 | Multiple | ||
153 | .Fl v | ||
154 | options increase the verbosity. | ||
155 | The maximum is 3. | ||
139 | .It Fl X | 156 | .It Fl X |
140 | Unlock the agent. | 157 | Unlock the agent. |
141 | .It Fl x | 158 | .It Fl x |
@@ -1,4 +1,4 @@ | |||
1 | /* $OpenBSD: ssh-add.c,v 1.136 2018/09/19 02:03:02 djm Exp $ */ | 1 | /* $OpenBSD: ssh-add.c,v 1.138 2019/01/21 12:53:35 djm Exp $ */ |
2 | /* | 2 | /* |
3 | * Author: Tatu Ylonen <ylo@cs.hut.fi> | 3 | * Author: Tatu Ylonen <ylo@cs.hut.fi> |
4 | * Copyright (c) 1995 Tatu Ylonen <ylo@cs.hut.fi>, Espoo, Finland | 4 | * Copyright (c) 1995 Tatu Ylonen <ylo@cs.hut.fi>, Espoo, Finland |
@@ -418,6 +418,40 @@ update_card(int agent_fd, int add, const char *id, int qflag) | |||
418 | } | 418 | } |
419 | 419 | ||
420 | static int | 420 | static int |
421 | test_key(int agent_fd, const char *filename) | ||
422 | { | ||
423 | struct sshkey *key = NULL; | ||
424 | u_char *sig = NULL; | ||
425 | size_t slen = 0; | ||
426 | int r, ret = -1; | ||
427 | char data[1024]; | ||
428 | |||
429 | if ((r = sshkey_load_public(filename, &key, NULL)) != 0) { | ||
430 | error("Couldn't read public key %s: %s", filename, ssh_err(r)); | ||
431 | return -1; | ||
432 | } | ||
433 | arc4random_buf(data, sizeof(data)); | ||
434 | if ((r = ssh_agent_sign(agent_fd, key, &sig, &slen, data, sizeof(data), | ||
435 | NULL, 0)) != 0) { | ||
436 | error("Agent signature failed for %s: %s", | ||
437 | filename, ssh_err(r)); | ||
438 | goto done; | ||
439 | } | ||
440 | if ((r = sshkey_verify(key, sig, slen, data, sizeof(data), | ||
441 | NULL, 0)) != 0) { | ||
442 | error("Signature verification failed for %s: %s", | ||
443 | filename, ssh_err(r)); | ||
444 | goto done; | ||
445 | } | ||
446 | /* success */ | ||
447 | ret = 0; | ||
448 | done: | ||
449 | free(sig); | ||
450 | sshkey_free(key); | ||
451 | return ret; | ||
452 | } | ||
453 | |||
454 | static int | ||
421 | list_identities(int agent_fd, int do_fp) | 455 | list_identities(int agent_fd, int do_fp) |
422 | { | 456 | { |
423 | char *fp; | 457 | char *fp; |
@@ -524,7 +558,9 @@ usage(void) | |||
524 | fprintf(stderr, " -X Unlock agent.\n"); | 558 | fprintf(stderr, " -X Unlock agent.\n"); |
525 | fprintf(stderr, " -s pkcs11 Add keys from PKCS#11 provider.\n"); | 559 | fprintf(stderr, " -s pkcs11 Add keys from PKCS#11 provider.\n"); |
526 | fprintf(stderr, " -e pkcs11 Remove keys provided by PKCS#11 provider.\n"); | 560 | fprintf(stderr, " -e pkcs11 Remove keys provided by PKCS#11 provider.\n"); |
561 | fprintf(stderr, " -T pubkey Test if ssh-agent can access matching private key.\n"); | ||
527 | fprintf(stderr, " -q Be quiet after a successful operation.\n"); | 562 | fprintf(stderr, " -q Be quiet after a successful operation.\n"); |
563 | fprintf(stderr, " -v Be more verbose.\n"); | ||
528 | } | 564 | } |
529 | 565 | ||
530 | int | 566 | int |
@@ -535,7 +571,9 @@ main(int argc, char **argv) | |||
535 | int agent_fd; | 571 | int agent_fd; |
536 | char *pkcs11provider = NULL; | 572 | char *pkcs11provider = NULL; |
537 | int r, i, ch, deleting = 0, ret = 0, key_only = 0; | 573 | int r, i, ch, deleting = 0, ret = 0, key_only = 0; |
538 | int xflag = 0, lflag = 0, Dflag = 0, qflag = 0; | 574 | int xflag = 0, lflag = 0, Dflag = 0, qflag = 0, Tflag = 0; |
575 | SyslogFacility log_facility = SYSLOG_FACILITY_AUTH; | ||
576 | LogLevel log_level = SYSLOG_LEVEL_INFO; | ||
539 | 577 | ||
540 | ssh_malloc_init(); /* must be called before any mallocs */ | 578 | ssh_malloc_init(); /* must be called before any mallocs */ |
541 | /* Ensure that fds 0, 1 and 2 are open or directed to /dev/null */ | 579 | /* Ensure that fds 0, 1 and 2 are open or directed to /dev/null */ |
@@ -544,9 +582,7 @@ main(int argc, char **argv) | |||
544 | __progname = ssh_get_progname(argv[0]); | 582 | __progname = ssh_get_progname(argv[0]); |
545 | seed_rng(); | 583 | seed_rng(); |
546 | 584 | ||
547 | #ifdef WITH_OPENSSL | 585 | log_init(__progname, log_level, log_facility, 1); |
548 | OpenSSL_add_all_algorithms(); | ||
549 | #endif | ||
550 | 586 | ||
551 | setvbuf(stdout, NULL, _IOLBF, 0); | 587 | setvbuf(stdout, NULL, _IOLBF, 0); |
552 | 588 | ||
@@ -563,8 +599,14 @@ main(int argc, char **argv) | |||
563 | exit(2); | 599 | exit(2); |
564 | } | 600 | } |
565 | 601 | ||
566 | while ((ch = getopt(argc, argv, "klLcdDxXE:e:M:m:qs:t:")) != -1) { | 602 | while ((ch = getopt(argc, argv, "vklLcdDTxXE:e:M:m:qs:t:")) != -1) { |
567 | switch (ch) { | 603 | switch (ch) { |
604 | case 'v': | ||
605 | if (log_level == SYSLOG_LEVEL_INFO) | ||
606 | log_level = SYSLOG_LEVEL_DEBUG1; | ||
607 | else if (log_level < SYSLOG_LEVEL_DEBUG3) | ||
608 | log_level++; | ||
609 | break; | ||
568 | case 'E': | 610 | case 'E': |
569 | fingerprint_hash = ssh_digest_alg_by_name(optarg); | 611 | fingerprint_hash = ssh_digest_alg_by_name(optarg); |
570 | if (fingerprint_hash == -1) | 612 | if (fingerprint_hash == -1) |
@@ -627,12 +669,16 @@ main(int argc, char **argv) | |||
627 | case 'q': | 669 | case 'q': |
628 | qflag = 1; | 670 | qflag = 1; |
629 | break; | 671 | break; |
672 | case 'T': | ||
673 | Tflag = 1; | ||
674 | break; | ||
630 | default: | 675 | default: |
631 | usage(); | 676 | usage(); |
632 | ret = 1; | 677 | ret = 1; |
633 | goto done; | 678 | goto done; |
634 | } | 679 | } |
635 | } | 680 | } |
681 | log_init(__progname, log_level, log_facility, 1); | ||
636 | 682 | ||
637 | if ((xflag != 0) + (lflag != 0) + (Dflag != 0) > 1) | 683 | if ((xflag != 0) + (lflag != 0) + (Dflag != 0) > 1) |
638 | fatal("Invalid combination of actions"); | 684 | fatal("Invalid combination of actions"); |
@@ -652,6 +698,14 @@ main(int argc, char **argv) | |||
652 | 698 | ||
653 | argc -= optind; | 699 | argc -= optind; |
654 | argv += optind; | 700 | argv += optind; |
701 | if (Tflag) { | ||
702 | if (argc <= 0) | ||
703 | fatal("no keys to test"); | ||
704 | for (r = i = 0; i < argc; i++) | ||
705 | r |= test_key(agent_fd, argv[i]); | ||
706 | ret = r == 0 ? 0 : 1; | ||
707 | goto done; | ||
708 | } | ||
655 | if (pkcs11provider != NULL) { | 709 | if (pkcs11provider != NULL) { |
656 | if (update_card(agent_fd, !deleting, pkcs11provider, | 710 | if (update_card(agent_fd, !deleting, pkcs11provider, |
657 | qflag) == -1) | 711 | qflag) == -1) |
diff --git a/ssh-agent.0 b/ssh-agent.0 index f4575d01b..9f140afb5 100644 --- a/ssh-agent.0 +++ b/ssh-agent.0 | |||
@@ -117,4 +117,4 @@ AUTHORS | |||
117 | created OpenSSH. Markus Friedl contributed the support for SSH protocol | 117 | created OpenSSH. Markus Friedl contributed the support for SSH protocol |
118 | versions 1.5 and 2.0. | 118 | versions 1.5 and 2.0. |
119 | 119 | ||
120 | OpenBSD 6.4 November 30, 2016 OpenBSD 6.4 | 120 | OpenBSD 6.5 November 30, 2016 OpenBSD 6.5 |
diff --git a/ssh-agent.c b/ssh-agent.c index d8a8260f9..d06ecfd98 100644 --- a/ssh-agent.c +++ b/ssh-agent.c | |||
@@ -1,4 +1,4 @@ | |||
1 | /* $OpenBSD: ssh-agent.c,v 1.231 2018/05/11 03:38:51 djm Exp $ */ | 1 | /* $OpenBSD: ssh-agent.c,v 1.233 2019/01/22 22:58:50 djm Exp $ */ |
2 | /* | 2 | /* |
3 | * Author: Tatu Ylonen <ylo@cs.hut.fi> | 3 | * Author: Tatu Ylonen <ylo@cs.hut.fi> |
4 | * Copyright (c) 1995 Tatu Ylonen <ylo@cs.hut.fi>, Espoo, Finland | 4 | * Copyright (c) 1995 Tatu Ylonen <ylo@cs.hut.fi>, Espoo, Finland |
@@ -96,6 +96,8 @@ | |||
96 | 96 | ||
97 | /* Maximum accepted message length */ | 97 | /* Maximum accepted message length */ |
98 | #define AGENT_MAX_LEN (256*1024) | 98 | #define AGENT_MAX_LEN (256*1024) |
99 | /* Maximum bytes to read from client socket */ | ||
100 | #define AGENT_RBUF_LEN (4096) | ||
99 | 101 | ||
100 | typedef enum { | 102 | typedef enum { |
101 | AUTH_UNUSED, | 103 | AUTH_UNUSED, |
@@ -839,7 +841,7 @@ handle_socket_read(u_int socknum) | |||
839 | static int | 841 | static int |
840 | handle_conn_read(u_int socknum) | 842 | handle_conn_read(u_int socknum) |
841 | { | 843 | { |
842 | char buf[1024]; | 844 | char buf[AGENT_RBUF_LEN]; |
843 | ssize_t len; | 845 | ssize_t len; |
844 | int r; | 846 | int r; |
845 | 847 | ||
@@ -946,6 +948,7 @@ prepare_poll(struct pollfd **pfdp, size_t *npfdp, int *timeoutp, u_int maxfds) | |||
946 | struct pollfd *pfd = *pfdp; | 948 | struct pollfd *pfd = *pfdp; |
947 | size_t i, j, npfd = 0; | 949 | size_t i, j, npfd = 0; |
948 | time_t deadline; | 950 | time_t deadline; |
951 | int r; | ||
949 | 952 | ||
950 | /* Count active sockets */ | 953 | /* Count active sockets */ |
951 | for (i = 0; i < sockets_alloc; i++) { | 954 | for (i = 0; i < sockets_alloc; i++) { |
@@ -983,8 +986,19 @@ prepare_poll(struct pollfd **pfdp, size_t *npfdp, int *timeoutp, u_int maxfds) | |||
983 | case AUTH_CONNECTION: | 986 | case AUTH_CONNECTION: |
984 | pfd[j].fd = sockets[i].fd; | 987 | pfd[j].fd = sockets[i].fd; |
985 | pfd[j].revents = 0; | 988 | pfd[j].revents = 0; |
986 | /* XXX backoff when input buffer full */ | 989 | /* |
987 | pfd[j].events = POLLIN; | 990 | * Only prepare to read if we can handle a full-size |
991 | * input read buffer and enqueue a max size reply.. | ||
992 | */ | ||
993 | if ((r = sshbuf_check_reserve(sockets[i].input, | ||
994 | AGENT_RBUF_LEN)) == 0 && | ||
995 | (r = sshbuf_check_reserve(sockets[i].output, | ||
996 | AGENT_MAX_LEN)) == 0) | ||
997 | pfd[j].events = POLLIN; | ||
998 | else if (r != SSH_ERR_NO_BUFFER_SPACE) { | ||
999 | fatal("%s: buffer error: %s", | ||
1000 | __func__, ssh_err(r)); | ||
1001 | } | ||
988 | if (sshbuf_len(sockets[i].output) > 0) | 1002 | if (sshbuf_len(sockets[i].output) > 0) |
989 | pfd[j].events |= POLLOUT; | 1003 | pfd[j].events |= POLLOUT; |
990 | j++; | 1004 | j++; |
@@ -1095,10 +1109,6 @@ main(int ac, char **av) | |||
1095 | if (getrlimit(RLIMIT_NOFILE, &rlim) == -1) | 1109 | if (getrlimit(RLIMIT_NOFILE, &rlim) == -1) |
1096 | fatal("%s: getrlimit: %s", __progname, strerror(errno)); | 1110 | fatal("%s: getrlimit: %s", __progname, strerror(errno)); |
1097 | 1111 | ||
1098 | #ifdef WITH_OPENSSL | ||
1099 | OpenSSL_add_all_algorithms(); | ||
1100 | #endif | ||
1101 | |||
1102 | __progname = ssh_get_progname(av[0]); | 1112 | __progname = ssh_get_progname(av[0]); |
1103 | seed_rng(); | 1113 | seed_rng(); |
1104 | 1114 | ||
@@ -1199,7 +1209,7 @@ main(int ac, char **av) | |||
1199 | */ | 1209 | */ |
1200 | #define SSH_AGENT_MIN_FDS (3+1+1+1+4) | 1210 | #define SSH_AGENT_MIN_FDS (3+1+1+1+4) |
1201 | if (rlim.rlim_cur < SSH_AGENT_MIN_FDS) | 1211 | if (rlim.rlim_cur < SSH_AGENT_MIN_FDS) |
1202 | fatal("%s: file descriptior rlimit %lld too low (minimum %u)", | 1212 | fatal("%s: file descriptor rlimit %lld too low (minimum %u)", |
1203 | __progname, (long long)rlim.rlim_cur, SSH_AGENT_MIN_FDS); | 1213 | __progname, (long long)rlim.rlim_cur, SSH_AGENT_MIN_FDS); |
1204 | maxfds = rlim.rlim_cur - SSH_AGENT_MIN_FDS; | 1214 | maxfds = rlim.rlim_cur - SSH_AGENT_MIN_FDS; |
1205 | 1215 | ||
diff --git a/ssh-ecdsa.c b/ssh-ecdsa.c index 2f5531752..599c7199d 100644 --- a/ssh-ecdsa.c +++ b/ssh-ecdsa.c | |||
@@ -1,4 +1,4 @@ | |||
1 | /* $OpenBSD: ssh-ecdsa.c,v 1.14 2018/02/07 02:06:51 jsing Exp $ */ | 1 | /* $OpenBSD: ssh-ecdsa.c,v 1.16 2019/01/21 09:54:11 djm Exp $ */ |
2 | /* | 2 | /* |
3 | * Copyright (c) 2000 Markus Friedl. All rights reserved. | 3 | * Copyright (c) 2000 Markus Friedl. All rights reserved. |
4 | * Copyright (c) 2010 Damien Miller. All rights reserved. | 4 | * Copyright (c) 2010 Damien Miller. All rights reserved. |
@@ -151,15 +151,13 @@ ssh_ecdsa_verify(const struct sshkey *key, | |||
151 | } | 151 | } |
152 | 152 | ||
153 | /* parse signature */ | 153 | /* parse signature */ |
154 | if ((sig = ECDSA_SIG_new()) == NULL || | 154 | if (sshbuf_get_bignum2(sigbuf, &sig_r) != 0 || |
155 | (sig_r = BN_new()) == NULL || | 155 | sshbuf_get_bignum2(sigbuf, &sig_s) != 0) { |
156 | (sig_s = BN_new()) == NULL) { | 156 | ret = SSH_ERR_INVALID_FORMAT; |
157 | ret = SSH_ERR_ALLOC_FAIL; | ||
158 | goto out; | 157 | goto out; |
159 | } | 158 | } |
160 | if (sshbuf_get_bignum2(sigbuf, sig_r) != 0 || | 159 | if ((sig = ECDSA_SIG_new()) == NULL) { |
161 | sshbuf_get_bignum2(sigbuf, sig_s) != 0) { | 160 | ret = SSH_ERR_ALLOC_FAIL; |
162 | ret = SSH_ERR_INVALID_FORMAT; | ||
163 | goto out; | 161 | goto out; |
164 | } | 162 | } |
165 | if (!ECDSA_SIG_set0(sig, sig_r, sig_s)) { | 163 | if (!ECDSA_SIG_set0(sig, sig_r, sig_s)) { |
diff --git a/ssh-keygen.0 b/ssh-keygen.0 index 906a338c4..1fe19f0b6 100644 --- a/ssh-keygen.0 +++ b/ssh-keygen.0 | |||
@@ -6,7 +6,9 @@ NAME | |||
6 | SYNOPSIS | 6 | SYNOPSIS |
7 | ssh-keygen [-q] [-b bits] [-t dsa | ecdsa | ed25519 | rsa] | 7 | ssh-keygen [-q] [-b bits] [-t dsa | ecdsa | ed25519 | rsa] |
8 | [-N new_passphrase] [-C comment] [-f output_keyfile] | 8 | [-N new_passphrase] [-C comment] [-f output_keyfile] |
9 | [-m format] | ||
9 | ssh-keygen -p [-P old_passphrase] [-N new_passphrase] [-f keyfile] | 10 | ssh-keygen -p [-P old_passphrase] [-N new_passphrase] [-f keyfile] |
11 | [-m format] | ||
10 | ssh-keygen -i [-m key_format] [-f input_keyfile] | 12 | ssh-keygen -i [-m key_format] [-f input_keyfile] |
11 | ssh-keygen -e [-m key_format] [-f input_keyfile] | 13 | ssh-keygen -e [-m key_format] [-f input_keyfile] |
12 | ssh-keygen -y [-f input_keyfile] | 14 | ssh-keygen -y [-f input_keyfile] |
@@ -68,11 +70,17 @@ DESCRIPTION | |||
68 | or forgotten, a new key must be generated and the corresponding public | 70 | or forgotten, a new key must be generated and the corresponding public |
69 | key copied to other machines. | 71 | key copied to other machines. |
70 | 72 | ||
71 | For keys stored in the newer OpenSSH format, there is also a comment | 73 | ssh-keygen will by default write keys in an OpenSSH-specific format. |
72 | field in the key file that is only for convenience to the user to help | 74 | This format is preferred as it offers better protection for keys at rest |
73 | identify the key. The comment can tell what the key is for, or whatever | 75 | as well as allowing storage of key comments within the private key file |
74 | is useful. The comment is initialized to M-bM-^@M-^\user@hostM-bM-^@M-^] when the key is | 76 | itself. The key comment may be useful to help identify the key. The |
75 | created, but can be changed using the -c option. | 77 | comment is initialized to M-bM-^@M-^\user@hostM-bM-^@M-^] when the key is created, but can be |
78 | changed using the -c option. | ||
79 | |||
80 | It is still possible for ssh-keygen to write the previously-used PEM | ||
81 | format private keys using the -m flag. This may be used when generating | ||
82 | new keys, and existing new-format keys may be converted using this option | ||
83 | in conjunction with the -p (change passphrase) flag. | ||
76 | 84 | ||
77 | After a key is generated, instructions below detail where the keys should | 85 | After a key is generated, instructions below detail where the keys should |
78 | be placed to be activated. | 86 | be placed to be activated. |
@@ -119,10 +127,10 @@ DESCRIPTION | |||
119 | new comment. | 127 | new comment. |
120 | 128 | ||
121 | -D pkcs11 | 129 | -D pkcs11 |
122 | Download the RSA public keys provided by the PKCS#11 shared | 130 | Download the public keys provided by the PKCS#11 shared library |
123 | library pkcs11. When used in combination with -s, this option | 131 | pkcs11. When used in combination with -s, this option indicates |
124 | indicates that a CA key resides in a PKCS#11 token (see the | 132 | that a CA key resides in a PKCS#11 token (see the CERTIFICATES |
125 | CERTIFICATES section for details). | 133 | section for details). |
126 | 134 | ||
127 | -E fingerprint_hash | 135 | -E fingerprint_hash |
128 | Specifies the hash algorithm used when displaying key | 136 | Specifies the hash algorithm used when displaying key |
@@ -130,16 +138,17 @@ DESCRIPTION | |||
130 | default is M-bM-^@M-^\sha256M-bM-^@M-^]. | 138 | default is M-bM-^@M-^\sha256M-bM-^@M-^]. |
131 | 139 | ||
132 | -e This option will read a private or public OpenSSH key file and | 140 | -e This option will read a private or public OpenSSH key file and |
133 | print to stdout the key in one of the formats specified by the -m | 141 | print to stdout a public key in one of the formats specified by |
134 | option. The default export format is M-bM-^@M-^\RFC4716M-bM-^@M-^]. This option | 142 | the -m option. The default export format is M-bM-^@M-^\RFC4716M-bM-^@M-^]. This |
135 | allows exporting OpenSSH keys for use by other programs, | 143 | option allows exporting OpenSSH keys for use by other programs, |
136 | including several commercial SSH implementations. | 144 | including several commercial SSH implementations. |
137 | 145 | ||
138 | -F hostname | 146 | -F hostname | [hostname]:port |
139 | Search for the specified hostname in a known_hosts file, listing | 147 | Search for the specified hostname (with optional port number) in |
140 | any occurrences found. This option is useful to find hashed host | 148 | a known_hosts file, listing any occurrences found. This option |
141 | names or addresses and may also be used in conjunction with the | 149 | is useful to find hashed host names or addresses and may also be |
142 | -H option to print found keys in a hashed format. | 150 | used in conjunction with the -H option to print found keys in a |
151 | hashed format. | ||
143 | 152 | ||
144 | -f filename | 153 | -f filename |
145 | Specifies the filename of the key file. | 154 | Specifies the filename of the key file. |
@@ -206,13 +215,16 @@ DESCRIPTION | |||
206 | generating candidate moduli for DH-GEX. | 215 | generating candidate moduli for DH-GEX. |
207 | 216 | ||
208 | -m key_format | 217 | -m key_format |
209 | Specify a key format for the -i (import) or -e (export) | 218 | Specify a key format for key generation, the -i (import), -e |
210 | conversion options. The supported key formats are: M-bM-^@M-^\RFC4716M-bM-^@M-^] | 219 | (export) conversion options, and the -p change passphrase |
211 | (RFC 4716/SSH2 public or private key), M-bM-^@M-^\PKCS8M-bM-^@M-^] (PEM PKCS8 public | 220 | operation. The latter may be used to convert between OpenSSH |
212 | key) or M-bM-^@M-^\PEMM-bM-^@M-^] (PEM public key). The default conversion format is | 221 | private key and PEM private key formats. The supported key |
213 | M-bM-^@M-^\RFC4716M-bM-^@M-^]. Setting a format of M-bM-^@M-^\PEMM-bM-^@M-^] when generating or updating | 222 | formats are: M-bM-^@M-^\RFC4716M-bM-^@M-^] (RFC 4716/SSH2 public or private key), |
214 | a supported private key type will cause the key to be stored in | 223 | M-bM-^@M-^\PKCS8M-bM-^@M-^] (PEM PKCS8 public key) or M-bM-^@M-^\PEMM-bM-^@M-^] (PEM public key). The |
215 | the legacy PEM private key format. | 224 | default conversion format is M-bM-^@M-^\RFC4716M-bM-^@M-^]. Setting a format of |
225 | M-bM-^@M-^\PEMM-bM-^@M-^] when generating or updating a supported private key type | ||
226 | will cause the key to be stored in the legacy PEM private key | ||
227 | format. | ||
216 | 228 | ||
217 | -N new_passphrase | 229 | -N new_passphrase |
218 | Provides the new passphrase. | 230 | Provides the new passphrase. |
@@ -301,10 +313,10 @@ DESCRIPTION | |||
301 | 313 | ||
302 | -q Silence ssh-keygen. | 314 | -q Silence ssh-keygen. |
303 | 315 | ||
304 | -R hostname | 316 | -R hostname | [hostname]:port |
305 | Removes all keys belonging to hostname from a known_hosts file. | 317 | Removes all keys belonging to the specified hostname (with |
306 | This option is useful to delete hashed hosts (see the -H option | 318 | optional port number) from a known_hosts file. This option is |
307 | above). | 319 | useful to delete hashed hosts (see the -H option above). |
308 | 320 | ||
309 | -r hostname | 321 | -r hostname |
310 | Print the SSHFP fingerprint resource record named hostname for | 322 | Print the SSHFP fingerprint resource record named hostname for |
@@ -378,8 +390,10 @@ DESCRIPTION | |||
378 | 390 | ||
379 | -z serial_number | 391 | -z serial_number |
380 | Specifies a serial number to be embedded in the certificate to | 392 | Specifies a serial number to be embedded in the certificate to |
381 | distinguish this certificate from others from the same CA. The | 393 | distinguish this certificate from others from the same CA. If |
382 | default serial number is zero. | 394 | the serial_number is prefixed with a M-bM-^@M-^X+M-bM-^@M-^Y character, then the |
395 | serial number will be incremented for each certificate signed on | ||
396 | a single command-line. The default serial number is zero. | ||
383 | 397 | ||
384 | When generating a KRL, the -z flag is used to specify a KRL | 398 | When generating a KRL, the -z flag is used to specify a KRL |
385 | version number. | 399 | version number. |
@@ -582,4 +596,4 @@ AUTHORS | |||
582 | created OpenSSH. Markus Friedl contributed the support for SSH protocol | 596 | created OpenSSH. Markus Friedl contributed the support for SSH protocol |
583 | versions 1.5 and 2.0. | 597 | versions 1.5 and 2.0. |
584 | 598 | ||
585 | OpenBSD 6.4 September 12, 2018 OpenBSD 6.4 | 599 | OpenBSD 6.5 March 5, 2019 OpenBSD 6.5 |
diff --git a/ssh-keygen.1 b/ssh-keygen.1 index bfa2eb5f3..124456577 100644 --- a/ssh-keygen.1 +++ b/ssh-keygen.1 | |||
@@ -1,4 +1,4 @@ | |||
1 | .\" $OpenBSD: ssh-keygen.1,v 1.150 2018/09/12 06:18:59 djm Exp $ | 1 | .\" $OpenBSD: ssh-keygen.1,v 1.157 2019/03/05 16:17:12 naddy Exp $ |
2 | .\" | 2 | .\" |
3 | .\" Author: Tatu Ylonen <ylo@cs.hut.fi> | 3 | .\" Author: Tatu Ylonen <ylo@cs.hut.fi> |
4 | .\" Copyright (c) 1995 Tatu Ylonen <ylo@cs.hut.fi>, Espoo, Finland | 4 | .\" Copyright (c) 1995 Tatu Ylonen <ylo@cs.hut.fi>, Espoo, Finland |
@@ -35,7 +35,7 @@ | |||
35 | .\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF | 35 | .\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF |
36 | .\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | 36 | .\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |
37 | .\" | 37 | .\" |
38 | .Dd $Mdocdate: September 12 2018 $ | 38 | .Dd $Mdocdate: March 5 2019 $ |
39 | .Dt SSH-KEYGEN 1 | 39 | .Dt SSH-KEYGEN 1 |
40 | .Os | 40 | .Os |
41 | .Sh NAME | 41 | .Sh NAME |
@@ -50,11 +50,13 @@ | |||
50 | .Op Fl N Ar new_passphrase | 50 | .Op Fl N Ar new_passphrase |
51 | .Op Fl C Ar comment | 51 | .Op Fl C Ar comment |
52 | .Op Fl f Ar output_keyfile | 52 | .Op Fl f Ar output_keyfile |
53 | .Op Fl m Ar format | ||
53 | .Nm ssh-keygen | 54 | .Nm ssh-keygen |
54 | .Fl p | 55 | .Fl p |
55 | .Op Fl P Ar old_passphrase | 56 | .Op Fl P Ar old_passphrase |
56 | .Op Fl N Ar new_passphrase | 57 | .Op Fl N Ar new_passphrase |
57 | .Op Fl f Ar keyfile | 58 | .Op Fl f Ar keyfile |
59 | .Op Fl m Ar format | ||
58 | .Nm ssh-keygen | 60 | .Nm ssh-keygen |
59 | .Fl i | 61 | .Fl i |
60 | .Op Fl m Ar key_format | 62 | .Op Fl m Ar key_format |
@@ -205,16 +207,28 @@ There is no way to recover a lost passphrase. | |||
205 | If the passphrase is lost or forgotten, a new key must be generated | 207 | If the passphrase is lost or forgotten, a new key must be generated |
206 | and the corresponding public key copied to other machines. | 208 | and the corresponding public key copied to other machines. |
207 | .Pp | 209 | .Pp |
208 | For keys stored in the newer OpenSSH format, | 210 | .Nm |
209 | there is also a comment field in the key file that is only for | 211 | will by default write keys in an OpenSSH-specific format. |
210 | convenience to the user to help identify the key. | 212 | This format is preferred as it offers better protection for |
211 | The comment can tell what the key is for, or whatever is useful. | 213 | keys at rest as well as allowing storage of key comments within |
214 | the private key file itself. | ||
215 | The key comment may be useful to help identify the key. | ||
212 | The comment is initialized to | 216 | The comment is initialized to |
213 | .Dq user@host | 217 | .Dq user@host |
214 | when the key is created, but can be changed using the | 218 | when the key is created, but can be changed using the |
215 | .Fl c | 219 | .Fl c |
216 | option. | 220 | option. |
217 | .Pp | 221 | .Pp |
222 | It is still possible for | ||
223 | .Nm | ||
224 | to write the previously-used PEM format private keys using the | ||
225 | .Fl m | ||
226 | flag. | ||
227 | This may be used when generating new keys, and existing new-format | ||
228 | keys may be converted using this option in conjunction with the | ||
229 | .Fl p | ||
230 | (change passphrase) flag. | ||
231 | .Pp | ||
218 | After a key is generated, instructions below detail where the keys | 232 | After a key is generated, instructions below detail where the keys |
219 | should be placed to be activated. | 233 | should be placed to be activated. |
220 | .Pp | 234 | .Pp |
@@ -265,7 +279,7 @@ Requests changing the comment in the private and public key files. | |||
265 | The program will prompt for the file containing the private keys, for | 279 | The program will prompt for the file containing the private keys, for |
266 | the passphrase if the key has one, and for the new comment. | 280 | the passphrase if the key has one, and for the new comment. |
267 | .It Fl D Ar pkcs11 | 281 | .It Fl D Ar pkcs11 |
268 | Download the RSA public keys provided by the PKCS#11 shared library | 282 | Download the public keys provided by the PKCS#11 shared library |
269 | .Ar pkcs11 . | 283 | .Ar pkcs11 . |
270 | When used in combination with | 284 | When used in combination with |
271 | .Fl s , | 285 | .Fl s , |
@@ -282,16 +296,17 @@ The default is | |||
282 | .Dq sha256 . | 296 | .Dq sha256 . |
283 | .It Fl e | 297 | .It Fl e |
284 | This option will read a private or public OpenSSH key file and | 298 | This option will read a private or public OpenSSH key file and |
285 | print to stdout the key in one of the formats specified by the | 299 | print to stdout a public key in one of the formats specified by the |
286 | .Fl m | 300 | .Fl m |
287 | option. | 301 | option. |
288 | The default export format is | 302 | The default export format is |
289 | .Dq RFC4716 . | 303 | .Dq RFC4716 . |
290 | This option allows exporting OpenSSH keys for use by other programs, including | 304 | This option allows exporting OpenSSH keys for use by other programs, including |
291 | several commercial SSH implementations. | 305 | several commercial SSH implementations. |
292 | .It Fl F Ar hostname | 306 | .It Fl F Ar hostname | [hostname]:port |
293 | Search for the specified | 307 | Search for the specified |
294 | .Ar hostname | 308 | .Ar hostname |
309 | (with optional port number) | ||
295 | in a | 310 | in a |
296 | .Pa known_hosts | 311 | .Pa known_hosts |
297 | file, listing any occurrences found. | 312 | file, listing any occurrences found. |
@@ -391,11 +406,15 @@ fingerprint. | |||
391 | Specify the amount of memory to use (in megabytes) when generating | 406 | Specify the amount of memory to use (in megabytes) when generating |
392 | candidate moduli for DH-GEX. | 407 | candidate moduli for DH-GEX. |
393 | .It Fl m Ar key_format | 408 | .It Fl m Ar key_format |
394 | Specify a key format for the | 409 | Specify a key format for key generation, the |
395 | .Fl i | 410 | .Fl i |
396 | (import) or | 411 | (import), |
397 | .Fl e | 412 | .Fl e |
398 | (export) conversion options. | 413 | (export) conversion options, and the |
414 | .Fl p | ||
415 | change passphrase operation. | ||
416 | The latter may be used to convert between OpenSSH private key and PEM | ||
417 | private key formats. | ||
399 | The supported key formats are: | 418 | The supported key formats are: |
400 | .Dq RFC4716 | 419 | .Dq RFC4716 |
401 | (RFC 4716/SSH2 public or private key), | 420 | (RFC 4716/SSH2 public or private key), |
@@ -517,9 +536,10 @@ Test whether keys have been revoked in a KRL. | |||
517 | .It Fl q | 536 | .It Fl q |
518 | Silence | 537 | Silence |
519 | .Nm ssh-keygen . | 538 | .Nm ssh-keygen . |
520 | .It Fl R Ar hostname | 539 | .It Fl R Ar hostname | [hostname]:port |
521 | Removes all keys belonging to | 540 | Removes all keys belonging to the specified |
522 | .Ar hostname | 541 | .Ar hostname |
542 | (with optional port number) | ||
523 | from a | 543 | from a |
524 | .Pa known_hosts | 544 | .Pa known_hosts |
525 | file. | 545 | file. |
@@ -620,6 +640,12 @@ OpenSSH format file and print an OpenSSH public key to stdout. | |||
620 | .It Fl z Ar serial_number | 640 | .It Fl z Ar serial_number |
621 | Specifies a serial number to be embedded in the certificate to distinguish | 641 | Specifies a serial number to be embedded in the certificate to distinguish |
622 | this certificate from others from the same CA. | 642 | this certificate from others from the same CA. |
643 | If the | ||
644 | .Ar serial_number | ||
645 | is prefixed with a | ||
646 | .Sq + | ||
647 | character, then the serial number will be incremented for each certificate | ||
648 | signed on a single command-line. | ||
623 | The default serial number is zero. | 649 | The default serial number is zero. |
624 | .Pp | 650 | .Pp |
625 | When generating a KRL, the | 651 | When generating a KRL, the |
diff --git a/ssh-keygen.c b/ssh-keygen.c index 46b3af5a8..3898b281e 100644 --- a/ssh-keygen.c +++ b/ssh-keygen.c | |||
@@ -1,4 +1,4 @@ | |||
1 | /* $OpenBSD: ssh-keygen.c,v 1.322 2018/09/14 04:17:44 djm Exp $ */ | 1 | /* $OpenBSD: ssh-keygen.c,v 1.329 2019/03/25 16:19:44 dtucker Exp $ */ |
2 | /* | 2 | /* |
3 | * Author: Tatu Ylonen <ylo@cs.hut.fi> | 3 | * Author: Tatu Ylonen <ylo@cs.hut.fi> |
4 | * Copyright (c) 1994 Tatu Ylonen <ylo@cs.hut.fi>, Espoo, Finland | 4 | * Copyright (c) 1994 Tatu Ylonen <ylo@cs.hut.fi>, Espoo, Finland |
@@ -67,79 +67,52 @@ | |||
67 | # define DEFAULT_KEY_TYPE_NAME "ed25519" | 67 | # define DEFAULT_KEY_TYPE_NAME "ed25519" |
68 | #endif | 68 | #endif |
69 | 69 | ||
70 | /* Number of bits in the RSA/DSA key. This value can be set on the command line. */ | ||
71 | #define DEFAULT_BITS 2048 | ||
72 | #define DEFAULT_BITS_DSA 1024 | ||
73 | #define DEFAULT_BITS_ECDSA 256 | ||
74 | u_int32_t bits = 0; | ||
75 | |||
76 | /* | 70 | /* |
77 | * Flag indicating that we just want to change the passphrase. This can be | 71 | * Default number of bits in the RSA, DSA and ECDSA keys. These value can be |
78 | * set on the command line. | 72 | * overridden on the command line. |
79 | */ | 73 | * |
80 | int change_passphrase = 0; | 74 | * These values, with the exception of DSA, provide security equivalent to at |
81 | 75 | * least 128 bits of security according to NIST Special Publication 800-57: | |
82 | /* | 76 | * Recommendation for Key Management Part 1 rev 4 section 5.6.1. |
83 | * Flag indicating that we just want to change the comment. This can be set | 77 | * For DSA it (and FIPS-186-4 section 4.2) specifies that the only size for |
84 | * on the command line. | 78 | * which a 160bit hash is acceptable is 1kbit, and since ssh-dss specifies only |
79 | * SHA1 we limit the DSA key size 1k bits. | ||
85 | */ | 80 | */ |
86 | int change_comment = 0; | 81 | #define DEFAULT_BITS 3072 |
87 | 82 | #define DEFAULT_BITS_DSA 1024 | |
88 | int quiet = 0; | 83 | #define DEFAULT_BITS_ECDSA 256 |
89 | |||
90 | int log_level = SYSLOG_LEVEL_INFO; | ||
91 | |||
92 | /* Flag indicating that we want to hash a known_hosts file */ | ||
93 | int hash_hosts = 0; | ||
94 | /* Flag indicating that we want lookup a host in known_hosts file */ | ||
95 | int find_host = 0; | ||
96 | /* Flag indicating that we want to delete a host from a known_hosts file */ | ||
97 | int delete_host = 0; | ||
98 | 84 | ||
99 | /* Flag indicating that we want to show the contents of a certificate */ | 85 | static int quiet = 0; |
100 | int show_cert = 0; | ||
101 | 86 | ||
102 | /* Flag indicating that we just want to see the key fingerprint */ | 87 | /* Flag indicating that we just want to see the key fingerprint */ |
103 | int print_fingerprint = 0; | 88 | static int print_fingerprint = 0; |
104 | int print_bubblebabble = 0; | 89 | static int print_bubblebabble = 0; |
105 | 90 | ||
106 | /* Hash algorithm to use for fingerprints. */ | 91 | /* Hash algorithm to use for fingerprints. */ |
107 | int fingerprint_hash = SSH_FP_HASH_DEFAULT; | 92 | static int fingerprint_hash = SSH_FP_HASH_DEFAULT; |
108 | 93 | ||
109 | /* The identity file name, given on the command line or entered by the user. */ | 94 | /* The identity file name, given on the command line or entered by the user. */ |
110 | char identity_file[1024]; | 95 | static char identity_file[1024]; |
111 | int have_identity = 0; | 96 | static int have_identity = 0; |
112 | 97 | ||
113 | /* This is set to the passphrase if given on the command line. */ | 98 | /* This is set to the passphrase if given on the command line. */ |
114 | char *identity_passphrase = NULL; | 99 | static char *identity_passphrase = NULL; |
115 | 100 | ||
116 | /* This is set to the new passphrase if given on the command line. */ | 101 | /* This is set to the new passphrase if given on the command line. */ |
117 | char *identity_new_passphrase = NULL; | 102 | static char *identity_new_passphrase = NULL; |
118 | |||
119 | /* This is set to the new comment if given on the command line. */ | ||
120 | char *identity_comment = NULL; | ||
121 | |||
122 | /* Path to CA key when certifying keys. */ | ||
123 | char *ca_key_path = NULL; | ||
124 | |||
125 | /* Prefer to use agent keys for CA signing */ | ||
126 | int prefer_agent = 0; | ||
127 | |||
128 | /* Certificate serial number */ | ||
129 | unsigned long long cert_serial = 0; | ||
130 | 103 | ||
131 | /* Key type when certifying */ | 104 | /* Key type when certifying */ |
132 | u_int cert_key_type = SSH2_CERT_TYPE_USER; | 105 | static u_int cert_key_type = SSH2_CERT_TYPE_USER; |
133 | 106 | ||
134 | /* "key ID" of signed key */ | 107 | /* "key ID" of signed key */ |
135 | char *cert_key_id = NULL; | 108 | static char *cert_key_id = NULL; |
136 | 109 | ||
137 | /* Comma-separated list of principal names for certifying keys */ | 110 | /* Comma-separated list of principal names for certifying keys */ |
138 | char *cert_principals = NULL; | 111 | static char *cert_principals = NULL; |
139 | 112 | ||
140 | /* Validity period for certificates */ | 113 | /* Validity period for certificates */ |
141 | u_int64_t cert_valid_from = 0; | 114 | static u_int64_t cert_valid_from = 0; |
142 | u_int64_t cert_valid_to = ~0ULL; | 115 | static u_int64_t cert_valid_to = ~0ULL; |
143 | 116 | ||
144 | /* Certificate options */ | 117 | /* Certificate options */ |
145 | #define CERTOPT_X_FWD (1) | 118 | #define CERTOPT_X_FWD (1) |
@@ -149,9 +122,9 @@ u_int64_t cert_valid_to = ~0ULL; | |||
149 | #define CERTOPT_USER_RC (1<<4) | 122 | #define CERTOPT_USER_RC (1<<4) |
150 | #define CERTOPT_DEFAULT (CERTOPT_X_FWD|CERTOPT_AGENT_FWD| \ | 123 | #define CERTOPT_DEFAULT (CERTOPT_X_FWD|CERTOPT_AGENT_FWD| \ |
151 | CERTOPT_PORT_FWD|CERTOPT_PTY|CERTOPT_USER_RC) | 124 | CERTOPT_PORT_FWD|CERTOPT_PTY|CERTOPT_USER_RC) |
152 | u_int32_t certflags_flags = CERTOPT_DEFAULT; | 125 | static u_int32_t certflags_flags = CERTOPT_DEFAULT; |
153 | char *certflags_command = NULL; | 126 | static char *certflags_command = NULL; |
154 | char *certflags_src_addr = NULL; | 127 | static char *certflags_src_addr = NULL; |
155 | 128 | ||
156 | /* Arbitrary extensions specified by user */ | 129 | /* Arbitrary extensions specified by user */ |
157 | struct cert_userext { | 130 | struct cert_userext { |
@@ -159,41 +132,37 @@ struct cert_userext { | |||
159 | char *val; | 132 | char *val; |
160 | int crit; | 133 | int crit; |
161 | }; | 134 | }; |
162 | struct cert_userext *cert_userext; | 135 | static struct cert_userext *cert_userext; |
163 | size_t ncert_userext; | 136 | static size_t ncert_userext; |
164 | 137 | ||
165 | /* Conversion to/from various formats */ | 138 | /* Conversion to/from various formats */ |
166 | int convert_to = 0; | ||
167 | int convert_from = 0; | ||
168 | enum { | 139 | enum { |
169 | FMT_RFC4716, | 140 | FMT_RFC4716, |
170 | FMT_PKCS8, | 141 | FMT_PKCS8, |
171 | FMT_PEM | 142 | FMT_PEM |
172 | } convert_format = FMT_RFC4716; | 143 | } convert_format = FMT_RFC4716; |
173 | int print_public = 0; | ||
174 | int print_generic = 0; | ||
175 | 144 | ||
176 | char *key_type_name = NULL; | 145 | static char *key_type_name = NULL; |
177 | 146 | ||
178 | /* Load key from this PKCS#11 provider */ | 147 | /* Load key from this PKCS#11 provider */ |
179 | char *pkcs11provider = NULL; | 148 | static char *pkcs11provider = NULL; |
180 | 149 | ||
181 | /* Use new OpenSSH private key format when writing SSH2 keys instead of PEM */ | 150 | /* Use new OpenSSH private key format when writing SSH2 keys instead of PEM */ |
182 | int use_new_format = 1; | 151 | static int use_new_format = 1; |
183 | 152 | ||
184 | /* Cipher for new-format private keys */ | 153 | /* Cipher for new-format private keys */ |
185 | char *new_format_cipher = NULL; | 154 | static char *new_format_cipher = NULL; |
186 | 155 | ||
187 | /* | 156 | /* |
188 | * Number of KDF rounds to derive new format keys / | 157 | * Number of KDF rounds to derive new format keys / |
189 | * number of primality trials when screening moduli. | 158 | * number of primality trials when screening moduli. |
190 | */ | 159 | */ |
191 | int rounds = 0; | 160 | static int rounds = 0; |
192 | 161 | ||
193 | /* argv0 */ | 162 | /* argv0 */ |
194 | extern char *__progname; | 163 | extern char *__progname; |
195 | 164 | ||
196 | char hostname[NI_MAXHOST]; | 165 | static char hostname[NI_MAXHOST]; |
197 | 166 | ||
198 | #ifdef WITH_OPENSSL | 167 | #ifdef WITH_OPENSSL |
199 | /* moduli.c */ | 168 | /* moduli.c */ |
@@ -243,7 +212,11 @@ type_bits_valid(int type, const char *name, u_int32_t *bitsp) | |||
243 | case KEY_ECDSA: | 212 | case KEY_ECDSA: |
244 | if (sshkey_ecdsa_bits_to_nid(*bitsp) == -1) | 213 | if (sshkey_ecdsa_bits_to_nid(*bitsp) == -1) |
245 | fatal("Invalid ECDSA key length: valid lengths are " | 214 | fatal("Invalid ECDSA key length: valid lengths are " |
215 | #ifdef OPENSSL_HAS_NISTP521 | ||
246 | "256, 384 or 521 bits"); | 216 | "256, 384 or 521 bits"); |
217 | #else | ||
218 | "256 or 384 bits"); | ||
219 | #endif | ||
247 | } | 220 | } |
248 | #endif | 221 | #endif |
249 | } | 222 | } |
@@ -806,7 +779,7 @@ do_download(struct passwd *pw) | |||
806 | fptype = print_bubblebabble ? SSH_DIGEST_SHA1 : fingerprint_hash; | 779 | fptype = print_bubblebabble ? SSH_DIGEST_SHA1 : fingerprint_hash; |
807 | rep = print_bubblebabble ? SSH_FP_BUBBLEBABBLE : SSH_FP_DEFAULT; | 780 | rep = print_bubblebabble ? SSH_FP_BUBBLEBABBLE : SSH_FP_DEFAULT; |
808 | 781 | ||
809 | pkcs11_init(0); | 782 | pkcs11_init(1); |
810 | nkeys = pkcs11_add_provider(pkcs11provider, NULL, &keys); | 783 | nkeys = pkcs11_add_provider(pkcs11provider, NULL, &keys); |
811 | if (nkeys <= 0) | 784 | if (nkeys <= 0) |
812 | fatal("cannot read public key from pkcs11"); | 785 | fatal("cannot read public key from pkcs11"); |
@@ -819,7 +792,7 @@ do_download(struct passwd *pw) | |||
819 | fatal("%s: sshkey_fingerprint fail", __func__); | 792 | fatal("%s: sshkey_fingerprint fail", __func__); |
820 | printf("%u %s %s (PKCS11 key)\n", sshkey_size(keys[i]), | 793 | printf("%u %s %s (PKCS11 key)\n", sshkey_size(keys[i]), |
821 | fp, sshkey_type(keys[i])); | 794 | fp, sshkey_type(keys[i])); |
822 | if (log_level >= SYSLOG_LEVEL_VERBOSE) | 795 | if (log_level_get() >= SYSLOG_LEVEL_VERBOSE) |
823 | printf("%s\n", ra); | 796 | printf("%s\n", ra); |
824 | free(ra); | 797 | free(ra); |
825 | free(fp); | 798 | free(fp); |
@@ -867,7 +840,7 @@ fingerprint_one_key(const struct sshkey *public, const char *comment) | |||
867 | fatal("%s: sshkey_fingerprint failed", __func__); | 840 | fatal("%s: sshkey_fingerprint failed", __func__); |
868 | mprintf("%u %s %s (%s)\n", sshkey_size(public), fp, | 841 | mprintf("%u %s %s (%s)\n", sshkey_size(public), fp, |
869 | comment ? comment : "no comment", sshkey_type(public)); | 842 | comment ? comment : "no comment", sshkey_type(public)); |
870 | if (log_level >= SYSLOG_LEVEL_VERBOSE) | 843 | if (log_level_get() >= SYSLOG_LEVEL_VERBOSE) |
871 | printf("%s\n", ra); | 844 | printf("%s\n", ra); |
872 | free(ra); | 845 | free(ra); |
873 | free(fp); | 846 | free(fp); |
@@ -1015,6 +988,7 @@ do_gen_all_hostkeys(struct passwd *pw) | |||
1015 | { NULL, NULL, NULL } | 988 | { NULL, NULL, NULL } |
1016 | }; | 989 | }; |
1017 | 990 | ||
991 | u_int bits = 0; | ||
1018 | int first = 0; | 992 | int first = 0; |
1019 | struct stat st; | 993 | struct stat st; |
1020 | struct sshkey *private, *public; | 994 | struct sshkey *private, *public; |
@@ -1138,6 +1112,9 @@ struct known_hosts_ctx { | |||
1138 | int has_unhashed; /* When hashing, original had unhashed hosts */ | 1112 | int has_unhashed; /* When hashing, original had unhashed hosts */ |
1139 | int found_key; /* For find/delete, host was found */ | 1113 | int found_key; /* For find/delete, host was found */ |
1140 | int invalid; /* File contained invalid items; don't delete */ | 1114 | int invalid; /* File contained invalid items; don't delete */ |
1115 | int hash_hosts; /* Hash hostnames as we go */ | ||
1116 | int find_host; /* Search for specific hostname */ | ||
1117 | int delete_host; /* Delete host from known_hosts */ | ||
1141 | }; | 1118 | }; |
1142 | 1119 | ||
1143 | static int | 1120 | static int |
@@ -1157,7 +1134,7 @@ known_hosts_hash(struct hostkey_foreach_line *l, void *_ctx) | |||
1157 | */ | 1134 | */ |
1158 | if (was_hashed || has_wild || l->marker != MRK_NONE) { | 1135 | if (was_hashed || has_wild || l->marker != MRK_NONE) { |
1159 | fprintf(ctx->out, "%s\n", l->line); | 1136 | fprintf(ctx->out, "%s\n", l->line); |
1160 | if (has_wild && !find_host) { | 1137 | if (has_wild && !ctx->find_host) { |
1161 | logit("%s:%lu: ignoring host name " | 1138 | logit("%s:%lu: ignoring host name " |
1162 | "with wildcard: %.64s", l->path, | 1139 | "with wildcard: %.64s", l->path, |
1163 | l->linenum, l->hosts); | 1140 | l->linenum, l->hosts); |
@@ -1203,7 +1180,7 @@ known_hosts_find_delete(struct hostkey_foreach_line *l, void *_ctx) | |||
1203 | rep = print_bubblebabble ? SSH_FP_BUBBLEBABBLE : SSH_FP_DEFAULT; | 1180 | rep = print_bubblebabble ? SSH_FP_BUBBLEBABBLE : SSH_FP_DEFAULT; |
1204 | 1181 | ||
1205 | if (l->status == HKF_STATUS_MATCHED) { | 1182 | if (l->status == HKF_STATUS_MATCHED) { |
1206 | if (delete_host) { | 1183 | if (ctx->delete_host) { |
1207 | if (l->marker != MRK_NONE) { | 1184 | if (l->marker != MRK_NONE) { |
1208 | /* Don't remove CA and revocation lines */ | 1185 | /* Don't remove CA and revocation lines */ |
1209 | fprintf(ctx->out, "%s\n", l->line); | 1186 | fprintf(ctx->out, "%s\n", l->line); |
@@ -1219,7 +1196,7 @@ known_hosts_find_delete(struct hostkey_foreach_line *l, void *_ctx) | |||
1219 | ctx->host, l->linenum); | 1196 | ctx->host, l->linenum); |
1220 | } | 1197 | } |
1221 | return 0; | 1198 | return 0; |
1222 | } else if (find_host) { | 1199 | } else if (ctx->find_host) { |
1223 | ctx->found_key = 1; | 1200 | ctx->found_key = 1; |
1224 | if (!quiet) { | 1201 | if (!quiet) { |
1225 | printf("# Host %s found: line %lu %s\n", | 1202 | printf("# Host %s found: line %lu %s\n", |
@@ -1227,7 +1204,7 @@ known_hosts_find_delete(struct hostkey_foreach_line *l, void *_ctx) | |||
1227 | l->linenum, l->marker == MRK_CA ? "CA" : | 1204 | l->linenum, l->marker == MRK_CA ? "CA" : |
1228 | (l->marker == MRK_REVOKE ? "REVOKED" : "")); | 1205 | (l->marker == MRK_REVOKE ? "REVOKED" : "")); |
1229 | } | 1206 | } |
1230 | if (hash_hosts) | 1207 | if (ctx->hash_hosts) |
1231 | known_hosts_hash(l, ctx); | 1208 | known_hosts_hash(l, ctx); |
1232 | else if (print_fingerprint) { | 1209 | else if (print_fingerprint) { |
1233 | fp = sshkey_fingerprint(l->key, fptype, rep); | 1210 | fp = sshkey_fingerprint(l->key, fptype, rep); |
@@ -1238,7 +1215,7 @@ known_hosts_find_delete(struct hostkey_foreach_line *l, void *_ctx) | |||
1238 | fprintf(ctx->out, "%s\n", l->line); | 1215 | fprintf(ctx->out, "%s\n", l->line); |
1239 | return 0; | 1216 | return 0; |
1240 | } | 1217 | } |
1241 | } else if (delete_host) { | 1218 | } else if (ctx->delete_host) { |
1242 | /* Retain non-matching hosts when deleting */ | 1219 | /* Retain non-matching hosts when deleting */ |
1243 | if (l->status == HKF_STATUS_INVALID) { | 1220 | if (l->status == HKF_STATUS_INVALID) { |
1244 | ctx->invalid = 1; | 1221 | ctx->invalid = 1; |
@@ -1250,7 +1227,8 @@ known_hosts_find_delete(struct hostkey_foreach_line *l, void *_ctx) | |||
1250 | } | 1227 | } |
1251 | 1228 | ||
1252 | static void | 1229 | static void |
1253 | do_known_hosts(struct passwd *pw, const char *name) | 1230 | do_known_hosts(struct passwd *pw, const char *name, int find_host, |
1231 | int delete_host, int hash_hosts) | ||
1254 | { | 1232 | { |
1255 | char *cp, tmp[PATH_MAX], old[PATH_MAX]; | 1233 | char *cp, tmp[PATH_MAX], old[PATH_MAX]; |
1256 | int r, fd, oerrno, inplace = 0; | 1234 | int r, fd, oerrno, inplace = 0; |
@@ -1269,6 +1247,9 @@ do_known_hosts(struct passwd *pw, const char *name) | |||
1269 | memset(&ctx, 0, sizeof(ctx)); | 1247 | memset(&ctx, 0, sizeof(ctx)); |
1270 | ctx.out = stdout; | 1248 | ctx.out = stdout; |
1271 | ctx.host = name; | 1249 | ctx.host = name; |
1250 | ctx.hash_hosts = hash_hosts; | ||
1251 | ctx.find_host = find_host; | ||
1252 | ctx.delete_host = delete_host; | ||
1272 | 1253 | ||
1273 | /* | 1254 | /* |
1274 | * Find hosts goes to stdout, hash and deletions happen in-place | 1255 | * Find hosts goes to stdout, hash and deletions happen in-place |
@@ -1433,7 +1414,8 @@ do_change_passphrase(struct passwd *pw) | |||
1433 | * Print the SSHFP RR. | 1414 | * Print the SSHFP RR. |
1434 | */ | 1415 | */ |
1435 | static int | 1416 | static int |
1436 | do_print_resource_record(struct passwd *pw, char *fname, char *hname) | 1417 | do_print_resource_record(struct passwd *pw, char *fname, char *hname, |
1418 | int print_generic) | ||
1437 | { | 1419 | { |
1438 | struct sshkey *public; | 1420 | struct sshkey *public; |
1439 | char *comment = NULL; | 1421 | char *comment = NULL; |
@@ -1460,7 +1442,7 @@ do_print_resource_record(struct passwd *pw, char *fname, char *hname) | |||
1460 | * Change the comment of a private key file. | 1442 | * Change the comment of a private key file. |
1461 | */ | 1443 | */ |
1462 | static void | 1444 | static void |
1463 | do_change_comment(struct passwd *pw) | 1445 | do_change_comment(struct passwd *pw, const char *identity_comment) |
1464 | { | 1446 | { |
1465 | char new_comment[1024], *comment, *passphrase; | 1447 | char new_comment[1024], *comment, *passphrase; |
1466 | struct sshkey *private; | 1448 | struct sshkey *private; |
@@ -1672,7 +1654,9 @@ agent_signer(const struct sshkey *key, u_char **sigp, size_t *lenp, | |||
1672 | } | 1654 | } |
1673 | 1655 | ||
1674 | static void | 1656 | static void |
1675 | do_ca_sign(struct passwd *pw, int argc, char **argv) | 1657 | do_ca_sign(struct passwd *pw, const char *ca_key_path, int prefer_agent, |
1658 | unsigned long long cert_serial, int cert_serial_autoinc, | ||
1659 | int argc, char **argv) | ||
1676 | { | 1660 | { |
1677 | int r, i, fd, found, agent_fd = -1; | 1661 | int r, i, fd, found, agent_fd = -1; |
1678 | u_int n; | 1662 | u_int n; |
@@ -1812,6 +1796,8 @@ do_ca_sign(struct passwd *pw, int argc, char **argv) | |||
1812 | 1796 | ||
1813 | sshkey_free(public); | 1797 | sshkey_free(public); |
1814 | free(out); | 1798 | free(out); |
1799 | if (cert_serial_autoinc) | ||
1800 | cert_serial++; | ||
1815 | } | 1801 | } |
1816 | #ifdef ENABLE_PKCS11 | 1802 | #ifdef ENABLE_PKCS11 |
1817 | pkcs11_terminate(); | 1803 | pkcs11_terminate(); |
@@ -2003,8 +1989,9 @@ print_cert(struct sshkey *key) | |||
2003 | printf(" Type: %s %s certificate\n", sshkey_ssh_name(key), | 1989 | printf(" Type: %s %s certificate\n", sshkey_ssh_name(key), |
2004 | sshkey_cert_type(key)); | 1990 | sshkey_cert_type(key)); |
2005 | printf(" Public key: %s %s\n", sshkey_type(key), key_fp); | 1991 | printf(" Public key: %s %s\n", sshkey_type(key), key_fp); |
2006 | printf(" Signing CA: %s %s\n", | 1992 | printf(" Signing CA: %s %s (using %s)\n", |
2007 | sshkey_type(key->cert->signature_key), ca_fp); | 1993 | sshkey_type(key->cert->signature_key), ca_fp, |
1994 | key->cert->signature_type); | ||
2008 | printf(" Key ID: \"%s\"\n", key->cert->key_id); | 1995 | printf(" Key ID: \"%s\"\n", key->cert->key_id); |
2009 | printf(" Serial: %llu\n", (unsigned long long)key->cert->serial); | 1996 | printf(" Serial: %llu\n", (unsigned long long)key->cert->serial); |
2010 | printf(" Valid: %s\n", valid); | 1997 | printf(" Valid: %s\n", valid); |
@@ -2297,7 +2284,9 @@ update_krl_from_file(struct passwd *pw, const char *file, int wild_ca, | |||
2297 | } | 2284 | } |
2298 | 2285 | ||
2299 | static void | 2286 | static void |
2300 | do_gen_krl(struct passwd *pw, int updating, int argc, char **argv) | 2287 | do_gen_krl(struct passwd *pw, int updating, const char *ca_key_path, |
2288 | unsigned long long krl_version, const char *krl_comment, | ||
2289 | int argc, char **argv) | ||
2301 | { | 2290 | { |
2302 | struct ssh_krl *krl; | 2291 | struct ssh_krl *krl; |
2303 | struct stat sb; | 2292 | struct stat sb; |
@@ -2332,10 +2321,10 @@ do_gen_krl(struct passwd *pw, int updating, int argc, char **argv) | |||
2332 | else if ((krl = ssh_krl_init()) == NULL) | 2321 | else if ((krl = ssh_krl_init()) == NULL) |
2333 | fatal("couldn't create KRL"); | 2322 | fatal("couldn't create KRL"); |
2334 | 2323 | ||
2335 | if (cert_serial != 0) | 2324 | if (krl_version != 0) |
2336 | ssh_krl_set_version(krl, cert_serial); | 2325 | ssh_krl_set_version(krl, krl_version); |
2337 | if (identity_comment != NULL) | 2326 | if (krl_comment != NULL) |
2338 | ssh_krl_set_comment(krl, identity_comment); | 2327 | ssh_krl_set_comment(krl, krl_comment); |
2339 | 2328 | ||
2340 | for (i = 0; i < argc; i++) | 2329 | for (i = 0; i < argc; i++) |
2341 | update_krl_from_file(pw, argv[i], wild_ca, ca, krl); | 2330 | update_krl_from_file(pw, argv[i], wild_ca, ca, krl); |
@@ -2387,9 +2376,10 @@ static void | |||
2387 | usage(void) | 2376 | usage(void) |
2388 | { | 2377 | { |
2389 | fprintf(stderr, | 2378 | fprintf(stderr, |
2390 | "usage: ssh-keygen [-q] [-b bits] [-t dsa | ecdsa | ed25519 | rsa]\n" | 2379 | "usage: ssh-keygen [-q] [-b bits] [-t dsa | ecdsa | ed25519 | rsa] [-m format]\n" |
2391 | " [-N new_passphrase] [-C comment] [-f output_keyfile]\n" | 2380 | " [-N new_passphrase] [-C comment] [-f output_keyfile]\n" |
2392 | " ssh-keygen -p [-P old_passphrase] [-N new_passphrase] [-f keyfile]\n" | 2381 | " ssh-keygen -p [-P old_passphrase] [-N new_passphrase] [-m format]\n" |
2382 | " [-f keyfile]\n" | ||
2393 | " ssh-keygen -i [-m key_format] [-f input_keyfile]\n" | 2383 | " ssh-keygen -i [-m key_format] [-f input_keyfile]\n" |
2394 | " ssh-keygen -e [-m key_format] [-f input_keyfile]\n" | 2384 | " ssh-keygen -e [-m key_format] [-f input_keyfile]\n" |
2395 | " ssh-keygen -y [-f input_keyfile]\n" | 2385 | " ssh-keygen -y [-f input_keyfile]\n" |
@@ -2433,9 +2423,17 @@ main(int argc, char **argv) | |||
2433 | struct passwd *pw; | 2423 | struct passwd *pw; |
2434 | struct stat st; | 2424 | struct stat st; |
2435 | int r, opt, type, fd; | 2425 | int r, opt, type, fd; |
2426 | int change_passphrase = 0, change_comment = 0, show_cert = 0; | ||
2427 | int find_host = 0, delete_host = 0, hash_hosts = 0; | ||
2436 | int gen_all_hostkeys = 0, gen_krl = 0, update_krl = 0, check_krl = 0; | 2428 | int gen_all_hostkeys = 0, gen_krl = 0, update_krl = 0, check_krl = 0; |
2429 | int prefer_agent = 0, convert_to = 0, convert_from = 0; | ||
2430 | int print_public = 0, print_generic = 0, cert_serial_autoinc = 0; | ||
2431 | unsigned long long cert_serial = 0; | ||
2432 | char *identity_comment = NULL, *ca_key_path = NULL; | ||
2433 | u_int bits = 0; | ||
2437 | FILE *f; | 2434 | FILE *f; |
2438 | const char *errstr; | 2435 | const char *errstr; |
2436 | int log_level = SYSLOG_LEVEL_INFO; | ||
2439 | #ifdef WITH_OPENSSL | 2437 | #ifdef WITH_OPENSSL |
2440 | /* Moduli generation/screening */ | 2438 | /* Moduli generation/screening */ |
2441 | char out_file[PATH_MAX], *checkpoint = NULL; | 2439 | char out_file[PATH_MAX], *checkpoint = NULL; |
@@ -2454,13 +2452,10 @@ main(int argc, char **argv) | |||
2454 | 2452 | ||
2455 | __progname = ssh_get_progname(argv[0]); | 2453 | __progname = ssh_get_progname(argv[0]); |
2456 | 2454 | ||
2457 | #ifdef WITH_OPENSSL | ||
2458 | OpenSSL_add_all_algorithms(); | ||
2459 | #endif | ||
2460 | log_init(argv[0], SYSLOG_LEVEL_INFO, SYSLOG_FACILITY_USER, 1); | ||
2461 | |||
2462 | seed_rng(); | 2455 | seed_rng(); |
2463 | 2456 | ||
2457 | log_init(argv[0], SYSLOG_LEVEL_INFO, SYSLOG_FACILITY_USER, 1); | ||
2458 | |||
2464 | msetlocale(); | 2459 | msetlocale(); |
2465 | 2460 | ||
2466 | /* we need this for the home * directory. */ | 2461 | /* we need this for the home * directory. */ |
@@ -2628,6 +2623,10 @@ main(int argc, char **argv) | |||
2628 | break; | 2623 | break; |
2629 | case 'z': | 2624 | case 'z': |
2630 | errno = 0; | 2625 | errno = 0; |
2626 | if (*optarg == '+') { | ||
2627 | cert_serial_autoinc = 1; | ||
2628 | optarg++; | ||
2629 | } | ||
2631 | cert_serial = strtoull(optarg, &ep, 10); | 2630 | cert_serial = strtoull(optarg, &ep, 10); |
2632 | if (*optarg < '0' || *optarg > '9' || *ep != '\0' || | 2631 | if (*optarg < '0' || *optarg > '9' || *ep != '\0' || |
2633 | (errno == ERANGE && cert_serial == ULLONG_MAX)) | 2632 | (errno == ERANGE && cert_serial == ULLONG_MAX)) |
@@ -2707,7 +2706,8 @@ main(int argc, char **argv) | |||
2707 | usage(); | 2706 | usage(); |
2708 | } | 2707 | } |
2709 | if (gen_krl) { | 2708 | if (gen_krl) { |
2710 | do_gen_krl(pw, update_krl, argc, argv); | 2709 | do_gen_krl(pw, update_krl, ca_key_path, |
2710 | cert_serial, identity_comment, argc, argv); | ||
2711 | return (0); | 2711 | return (0); |
2712 | } | 2712 | } |
2713 | if (check_krl) { | 2713 | if (check_krl) { |
@@ -2717,12 +2717,15 @@ main(int argc, char **argv) | |||
2717 | if (ca_key_path != NULL) { | 2717 | if (ca_key_path != NULL) { |
2718 | if (cert_key_id == NULL) | 2718 | if (cert_key_id == NULL) |
2719 | fatal("Must specify key id (-I) when certifying"); | 2719 | fatal("Must specify key id (-I) when certifying"); |
2720 | do_ca_sign(pw, argc, argv); | 2720 | do_ca_sign(pw, ca_key_path, prefer_agent, |
2721 | cert_serial, cert_serial_autoinc, argc, argv); | ||
2721 | } | 2722 | } |
2722 | if (show_cert) | 2723 | if (show_cert) |
2723 | do_show_cert(pw); | 2724 | do_show_cert(pw); |
2724 | if (delete_host || hash_hosts || find_host) | 2725 | if (delete_host || hash_hosts || find_host) { |
2725 | do_known_hosts(pw, rr_hostname); | 2726 | do_known_hosts(pw, rr_hostname, find_host, |
2727 | delete_host, hash_hosts); | ||
2728 | } | ||
2726 | if (pkcs11provider != NULL) | 2729 | if (pkcs11provider != NULL) |
2727 | do_download(pw); | 2730 | do_download(pw); |
2728 | if (print_fingerprint || print_bubblebabble) | 2731 | if (print_fingerprint || print_bubblebabble) |
@@ -2730,7 +2733,7 @@ main(int argc, char **argv) | |||
2730 | if (change_passphrase) | 2733 | if (change_passphrase) |
2731 | do_change_passphrase(pw); | 2734 | do_change_passphrase(pw); |
2732 | if (change_comment) | 2735 | if (change_comment) |
2733 | do_change_comment(pw); | 2736 | do_change_comment(pw, identity_comment); |
2734 | #ifdef WITH_OPENSSL | 2737 | #ifdef WITH_OPENSSL |
2735 | if (convert_to) | 2738 | if (convert_to) |
2736 | do_convert_to(pw); | 2739 | do_convert_to(pw); |
@@ -2743,23 +2746,28 @@ main(int argc, char **argv) | |||
2743 | unsigned int n = 0; | 2746 | unsigned int n = 0; |
2744 | 2747 | ||
2745 | if (have_identity) { | 2748 | if (have_identity) { |
2746 | n = do_print_resource_record(pw, | 2749 | n = do_print_resource_record(pw, identity_file, |
2747 | identity_file, rr_hostname); | 2750 | rr_hostname, print_generic); |
2748 | if (n == 0) | 2751 | if (n == 0) |
2749 | fatal("%s: %s", identity_file, strerror(errno)); | 2752 | fatal("%s: %s", identity_file, strerror(errno)); |
2750 | exit(0); | 2753 | exit(0); |
2751 | } else { | 2754 | } else { |
2752 | 2755 | ||
2753 | n += do_print_resource_record(pw, | 2756 | n += do_print_resource_record(pw, |
2754 | _PATH_HOST_RSA_KEY_FILE, rr_hostname); | 2757 | _PATH_HOST_RSA_KEY_FILE, rr_hostname, |
2758 | print_generic); | ||
2755 | n += do_print_resource_record(pw, | 2759 | n += do_print_resource_record(pw, |
2756 | _PATH_HOST_DSA_KEY_FILE, rr_hostname); | 2760 | _PATH_HOST_DSA_KEY_FILE, rr_hostname, |
2761 | print_generic); | ||
2757 | n += do_print_resource_record(pw, | 2762 | n += do_print_resource_record(pw, |
2758 | _PATH_HOST_ECDSA_KEY_FILE, rr_hostname); | 2763 | _PATH_HOST_ECDSA_KEY_FILE, rr_hostname, |
2764 | print_generic); | ||
2759 | n += do_print_resource_record(pw, | 2765 | n += do_print_resource_record(pw, |
2760 | _PATH_HOST_ED25519_KEY_FILE, rr_hostname); | 2766 | _PATH_HOST_ED25519_KEY_FILE, rr_hostname, |
2767 | print_generic); | ||
2761 | n += do_print_resource_record(pw, | 2768 | n += do_print_resource_record(pw, |
2762 | _PATH_HOST_XMSS_KEY_FILE, rr_hostname); | 2769 | _PATH_HOST_XMSS_KEY_FILE, rr_hostname, |
2770 | print_generic); | ||
2763 | if (n == 0) | 2771 | if (n == 0) |
2764 | fatal("no keys found."); | 2772 | fatal("no keys found."); |
2765 | exit(0); | 2773 | exit(0); |
diff --git a/ssh-keyscan.0 b/ssh-keyscan.0 index 497ac0d9e..d372f7c7a 100644 --- a/ssh-keyscan.0 +++ b/ssh-keyscan.0 | |||
@@ -93,4 +93,4 @@ AUTHORS | |||
93 | Davison <wayned@users.sourceforge.net> added support for protocol version | 93 | Davison <wayned@users.sourceforge.net> added support for protocol version |
94 | 2. | 94 | 2. |
95 | 95 | ||
96 | OpenBSD 6.4 March 5, 2018 OpenBSD 6.4 | 96 | OpenBSD 6.5 March 5, 2018 OpenBSD 6.5 |
diff --git a/ssh-keyscan.c b/ssh-keyscan.c index 38b1c548b..2ed041559 100644 --- a/ssh-keyscan.c +++ b/ssh-keyscan.c | |||
@@ -1,4 +1,4 @@ | |||
1 | /* $OpenBSD: ssh-keyscan.c,v 1.120 2018/06/06 18:29:18 markus Exp $ */ | 1 | /* $OpenBSD: ssh-keyscan.c,v 1.126 2019/01/26 22:35:01 djm Exp $ */ |
2 | /* | 2 | /* |
3 | * Copyright 1995, 1996 by David Mazieres <dm@lcs.mit.edu>. | 3 | * Copyright 1995, 1996 by David Mazieres <dm@lcs.mit.edu>. |
4 | * | 4 | * |
@@ -70,6 +70,8 @@ int hash_hosts = 0; /* Hash hostname on output */ | |||
70 | 70 | ||
71 | int print_sshfp = 0; /* Print SSHFP records instead of known_hosts */ | 71 | int print_sshfp = 0; /* Print SSHFP records instead of known_hosts */ |
72 | 72 | ||
73 | int found_one = 0; /* Successfully found a key */ | ||
74 | |||
73 | #define MAXMAXFD 256 | 75 | #define MAXMAXFD 256 |
74 | 76 | ||
75 | /* The number of seconds after which to give up on a TCP connection */ | 77 | /* The number of seconds after which to give up on a TCP connection */ |
@@ -83,8 +85,6 @@ fd_set *read_wait; | |||
83 | size_t read_wait_nfdset; | 85 | size_t read_wait_nfdset; |
84 | int ncon; | 86 | int ncon; |
85 | 87 | ||
86 | struct ssh *active_state = NULL; /* XXX needed for linking */ | ||
87 | |||
88 | /* | 88 | /* |
89 | * Keep a connection structure for each file descriptor. The state | 89 | * Keep a connection structure for each file descriptor. The state |
90 | * associated with file descriptor n is held in fdcon[n]. | 90 | * associated with file descriptor n is held in fdcon[n]. |
@@ -262,18 +262,19 @@ keygrab_ssh2(con *c) | |||
262 | exit(1); | 262 | exit(1); |
263 | } | 263 | } |
264 | #ifdef WITH_OPENSSL | 264 | #ifdef WITH_OPENSSL |
265 | c->c_ssh->kex->kex[KEX_DH_GRP1_SHA1] = kexdh_client; | 265 | c->c_ssh->kex->kex[KEX_DH_GRP1_SHA1] = kex_gen_client; |
266 | c->c_ssh->kex->kex[KEX_DH_GRP14_SHA1] = kexdh_client; | 266 | c->c_ssh->kex->kex[KEX_DH_GRP14_SHA1] = kex_gen_client; |
267 | c->c_ssh->kex->kex[KEX_DH_GRP14_SHA256] = kexdh_client; | 267 | c->c_ssh->kex->kex[KEX_DH_GRP14_SHA256] = kex_gen_client; |
268 | c->c_ssh->kex->kex[KEX_DH_GRP16_SHA512] = kexdh_client; | 268 | c->c_ssh->kex->kex[KEX_DH_GRP16_SHA512] = kex_gen_client; |
269 | c->c_ssh->kex->kex[KEX_DH_GRP18_SHA512] = kexdh_client; | 269 | c->c_ssh->kex->kex[KEX_DH_GRP18_SHA512] = kex_gen_client; |
270 | c->c_ssh->kex->kex[KEX_DH_GEX_SHA1] = kexgex_client; | 270 | c->c_ssh->kex->kex[KEX_DH_GEX_SHA1] = kexgex_client; |
271 | c->c_ssh->kex->kex[KEX_DH_GEX_SHA256] = kexgex_client; | 271 | c->c_ssh->kex->kex[KEX_DH_GEX_SHA256] = kexgex_client; |
272 | # ifdef OPENSSL_HAS_ECC | 272 | # ifdef OPENSSL_HAS_ECC |
273 | c->c_ssh->kex->kex[KEX_ECDH_SHA2] = kexecdh_client; | 273 | c->c_ssh->kex->kex[KEX_ECDH_SHA2] = kex_gen_client; |
274 | # endif | 274 | # endif |
275 | #endif | 275 | #endif |
276 | c->c_ssh->kex->kex[KEX_C25519_SHA256] = kexc25519_client; | 276 | c->c_ssh->kex->kex[KEX_C25519_SHA256] = kex_gen_client; |
277 | c->c_ssh->kex->kex[KEX_KEM_SNTRUP4591761X25519_SHA512] = kex_gen_client; | ||
277 | ssh_set_verify_host_key_callback(c->c_ssh, key_print_wrapper); | 278 | ssh_set_verify_host_key_callback(c->c_ssh, key_print_wrapper); |
278 | /* | 279 | /* |
279 | * do the key-exchange until an error occurs or until | 280 | * do the key-exchange until an error occurs or until |
@@ -288,6 +289,8 @@ keyprint_one(const char *host, struct sshkey *key) | |||
288 | char *hostport; | 289 | char *hostport; |
289 | const char *known_host, *hashed; | 290 | const char *known_host, *hashed; |
290 | 291 | ||
292 | found_one = 1; | ||
293 | |||
291 | if (print_sshfp) { | 294 | if (print_sshfp) { |
292 | export_dns_rr(host, key, stdout, 0); | 295 | export_dns_rr(host, key, stdout, 0); |
293 | return; | 296 | return; |
@@ -803,5 +806,5 @@ main(int argc, char **argv) | |||
803 | while (ncon > 0) | 806 | while (ncon > 0) |
804 | conloop(); | 807 | conloop(); |
805 | 808 | ||
806 | return (0); | 809 | return found_one ? 0 : 1; |
807 | } | 810 | } |
diff --git a/ssh-keysign.0 b/ssh-keysign.0 index db4355d29..172739ebd 100644 --- a/ssh-keysign.0 +++ b/ssh-keysign.0 | |||
@@ -49,4 +49,4 @@ HISTORY | |||
49 | AUTHORS | 49 | AUTHORS |
50 | Markus Friedl <markus@openbsd.org> | 50 | Markus Friedl <markus@openbsd.org> |
51 | 51 | ||
52 | OpenBSD 6.4 February 17, 2016 OpenBSD 6.4 | 52 | OpenBSD 6.5 February 17, 2016 OpenBSD 6.5 |
diff --git a/ssh-keysign.c b/ssh-keysign.c index 744ecb4f9..601f6ca72 100644 --- a/ssh-keysign.c +++ b/ssh-keysign.c | |||
@@ -1,4 +1,4 @@ | |||
1 | /* $OpenBSD: ssh-keysign.c,v 1.55 2018/07/27 05:34:42 dtucker Exp $ */ | 1 | /* $OpenBSD: ssh-keysign.c,v 1.56 2018/11/23 05:08:07 djm Exp $ */ |
2 | /* | 2 | /* |
3 | * Copyright (c) 2002 Markus Friedl. All rights reserved. | 3 | * Copyright (c) 2002 Markus Friedl. All rights reserved. |
4 | * | 4 | * |
@@ -40,6 +40,7 @@ | |||
40 | #include <openssl/evp.h> | 40 | #include <openssl/evp.h> |
41 | #include <openssl/rand.h> | 41 | #include <openssl/rand.h> |
42 | #include <openssl/rsa.h> | 42 | #include <openssl/rsa.h> |
43 | #include "openbsd-compat/openssl-compat.h" | ||
43 | #endif | 44 | #endif |
44 | 45 | ||
45 | #include "xmalloc.h" | 46 | #include "xmalloc.h" |
@@ -58,8 +59,6 @@ | |||
58 | #include "sshkey.h" | 59 | #include "sshkey.h" |
59 | #include "ssherr.h" | 60 | #include "ssherr.h" |
60 | 61 | ||
61 | struct ssh *active_state = NULL; /* XXX needed for linking */ | ||
62 | |||
63 | extern char *__progname; | 62 | extern char *__progname; |
64 | 63 | ||
65 | static int | 64 | static int |
@@ -173,9 +172,6 @@ main(int argc, char **argv) | |||
173 | u_char *signature, *data, rver; | 172 | u_char *signature, *data, rver; |
174 | char *host, *fp; | 173 | char *host, *fp; |
175 | size_t slen, dlen; | 174 | size_t slen, dlen; |
176 | #ifdef WITH_OPENSSL | ||
177 | u_int32_t rnd[256]; | ||
178 | #endif | ||
179 | 175 | ||
180 | ssh_malloc_init(); /* must be called before any mallocs */ | 176 | ssh_malloc_init(); /* must be called before any mallocs */ |
181 | if (pledge("stdio rpath getpw dns id", NULL) != 0) | 177 | if (pledge("stdio rpath getpw dns id", NULL) != 0) |
@@ -210,7 +206,8 @@ main(int argc, char **argv) | |||
210 | 206 | ||
211 | /* verify that ssh-keysign is enabled by the admin */ | 207 | /* verify that ssh-keysign is enabled by the admin */ |
212 | initialize_options(&options); | 208 | initialize_options(&options); |
213 | (void)read_config_file(_PATH_HOST_CONFIG_FILE, pw, "", "", &options, 0); | 209 | (void)read_config_file(_PATH_HOST_CONFIG_FILE, pw, "", "", |
210 | &options, 0, NULL); | ||
214 | fill_default_options(&options); | 211 | fill_default_options(&options); |
215 | if (options.enable_ssh_keysign != 1) | 212 | if (options.enable_ssh_keysign != 1) |
216 | fatal("ssh-keysign not enabled in %s", | 213 | fatal("ssh-keysign not enabled in %s", |
@@ -223,12 +220,6 @@ main(int argc, char **argv) | |||
223 | if (found == 0) | 220 | if (found == 0) |
224 | fatal("could not open any host key"); | 221 | fatal("could not open any host key"); |
225 | 222 | ||
226 | #ifdef WITH_OPENSSL | ||
227 | OpenSSL_add_all_algorithms(); | ||
228 | arc4random_buf(rnd, sizeof(rnd)); | ||
229 | RAND_seed(rnd, sizeof(rnd)); | ||
230 | #endif | ||
231 | |||
232 | found = 0; | 223 | found = 0; |
233 | for (i = 0; i < NUM_KEYTYPES; i++) { | 224 | for (i = 0; i < NUM_KEYTYPES; i++) { |
234 | keys[i] = NULL; | 225 | keys[i] = NULL; |
diff --git a/ssh-pkcs11-client.c b/ssh-pkcs11-client.c index d1241ce67..e7860de89 100644 --- a/ssh-pkcs11-client.c +++ b/ssh-pkcs11-client.c | |||
@@ -1,6 +1,7 @@ | |||
1 | /* $OpenBSD: ssh-pkcs11-client.c,v 1.10 2018/07/09 21:59:10 markus Exp $ */ | 1 | /* $OpenBSD: ssh-pkcs11-client.c,v 1.15 2019/01/21 12:53:35 djm Exp $ */ |
2 | /* | 2 | /* |
3 | * Copyright (c) 2010 Markus Friedl. All rights reserved. | 3 | * Copyright (c) 2010 Markus Friedl. All rights reserved. |
4 | * Copyright (c) 2014 Pedro Martelletto. All rights reserved. | ||
4 | * | 5 | * |
5 | * Permission to use, copy, modify, and distribute this software for any | 6 | * Permission to use, copy, modify, and distribute this software for any |
6 | * purpose with or without fee is hereby granted, provided that the above | 7 | * purpose with or without fee is hereby granted, provided that the above |
@@ -30,6 +31,7 @@ | |||
30 | #include <unistd.h> | 31 | #include <unistd.h> |
31 | #include <errno.h> | 32 | #include <errno.h> |
32 | 33 | ||
34 | #include <openssl/ecdsa.h> | ||
33 | #include <openssl/rsa.h> | 35 | #include <openssl/rsa.h> |
34 | 36 | ||
35 | #include "openbsd-compat/openssl-compat.h" | 37 | #include "openbsd-compat/openssl-compat.h" |
@@ -47,8 +49,8 @@ | |||
47 | 49 | ||
48 | /* borrows code from sftp-server and ssh-agent */ | 50 | /* borrows code from sftp-server and ssh-agent */ |
49 | 51 | ||
50 | int fd = -1; | 52 | static int fd = -1; |
51 | pid_t pid = -1; | 53 | static pid_t pid = -1; |
52 | 54 | ||
53 | static void | 55 | static void |
54 | send_msg(struct sshbuf *m) | 56 | send_msg(struct sshbuf *m) |
@@ -113,22 +115,27 @@ pkcs11_terminate(void) | |||
113 | } | 115 | } |
114 | 116 | ||
115 | static int | 117 | static int |
116 | pkcs11_rsa_private_encrypt(int flen, const u_char *from, u_char *to, RSA *rsa, | 118 | rsa_encrypt(int flen, const u_char *from, u_char *to, RSA *rsa, int padding) |
117 | int padding) | ||
118 | { | 119 | { |
119 | struct sshkey key; /* XXX */ | 120 | struct sshkey *key = NULL; |
120 | u_char *blob, *signature = NULL; | 121 | struct sshbuf *msg = NULL; |
122 | u_char *blob = NULL, *signature = NULL; | ||
121 | size_t blen, slen = 0; | 123 | size_t blen, slen = 0; |
122 | int r, ret = -1; | 124 | int r, ret = -1; |
123 | struct sshbuf *msg; | ||
124 | 125 | ||
125 | if (padding != RSA_PKCS1_PADDING) | 126 | if (padding != RSA_PKCS1_PADDING) |
126 | return (-1); | 127 | goto fail; |
127 | key.type = KEY_RSA; | 128 | key = sshkey_new(KEY_UNSPEC); |
128 | key.rsa = rsa; | 129 | if (key == NULL) { |
129 | if ((r = sshkey_to_blob(&key, &blob, &blen)) != 0) { | 130 | error("%s: sshkey_new failed", __func__); |
131 | goto fail; | ||
132 | } | ||
133 | key->type = KEY_RSA; | ||
134 | RSA_up_ref(rsa); | ||
135 | key->rsa = rsa; | ||
136 | if ((r = sshkey_to_blob(key, &blob, &blen)) != 0) { | ||
130 | error("%s: sshkey_to_blob: %s", __func__, ssh_err(r)); | 137 | error("%s: sshkey_to_blob: %s", __func__, ssh_err(r)); |
131 | return -1; | 138 | goto fail; |
132 | } | 139 | } |
133 | if ((msg = sshbuf_new()) == NULL) | 140 | if ((msg = sshbuf_new()) == NULL) |
134 | fatal("%s: sshbuf_new failed", __func__); | 141 | fatal("%s: sshbuf_new failed", __func__); |
@@ -137,7 +144,6 @@ pkcs11_rsa_private_encrypt(int flen, const u_char *from, u_char *to, RSA *rsa, | |||
137 | (r = sshbuf_put_string(msg, from, flen)) != 0 || | 144 | (r = sshbuf_put_string(msg, from, flen)) != 0 || |
138 | (r = sshbuf_put_u32(msg, 0)) != 0) | 145 | (r = sshbuf_put_u32(msg, 0)) != 0) |
139 | fatal("%s: buffer error: %s", __func__, ssh_err(r)); | 146 | fatal("%s: buffer error: %s", __func__, ssh_err(r)); |
140 | free(blob); | ||
141 | send_msg(msg); | 147 | send_msg(msg); |
142 | sshbuf_reset(msg); | 148 | sshbuf_reset(msg); |
143 | 149 | ||
@@ -150,22 +156,115 @@ pkcs11_rsa_private_encrypt(int flen, const u_char *from, u_char *to, RSA *rsa, | |||
150 | } | 156 | } |
151 | free(signature); | 157 | free(signature); |
152 | } | 158 | } |
159 | fail: | ||
160 | free(blob); | ||
161 | sshkey_free(key); | ||
162 | sshbuf_free(msg); | ||
163 | return (ret); | ||
164 | } | ||
165 | |||
166 | #ifdef HAVE_EC_KEY_METHOD_NEW | ||
167 | static ECDSA_SIG * | ||
168 | ecdsa_do_sign(const unsigned char *dgst, int dgst_len, const BIGNUM *inv, | ||
169 | const BIGNUM *rp, EC_KEY *ec) | ||
170 | { | ||
171 | struct sshkey *key = NULL; | ||
172 | struct sshbuf *msg = NULL; | ||
173 | ECDSA_SIG *ret = NULL; | ||
174 | const u_char *cp; | ||
175 | u_char *blob = NULL, *signature = NULL; | ||
176 | size_t blen, slen = 0; | ||
177 | int r, nid; | ||
178 | |||
179 | nid = sshkey_ecdsa_key_to_nid(ec); | ||
180 | if (nid < 0) { | ||
181 | error("%s: couldn't get curve nid", __func__); | ||
182 | goto fail; | ||
183 | } | ||
184 | |||
185 | key = sshkey_new(KEY_UNSPEC); | ||
186 | if (key == NULL) { | ||
187 | error("%s: sshkey_new failed", __func__); | ||
188 | goto fail; | ||
189 | } | ||
190 | key->ecdsa = ec; | ||
191 | key->ecdsa_nid = nid; | ||
192 | key->type = KEY_ECDSA; | ||
193 | EC_KEY_up_ref(ec); | ||
194 | |||
195 | if ((r = sshkey_to_blob(key, &blob, &blen)) != 0) { | ||
196 | error("%s: sshkey_to_blob: %s", __func__, ssh_err(r)); | ||
197 | goto fail; | ||
198 | } | ||
199 | if ((msg = sshbuf_new()) == NULL) | ||
200 | fatal("%s: sshbuf_new failed", __func__); | ||
201 | if ((r = sshbuf_put_u8(msg, SSH2_AGENTC_SIGN_REQUEST)) != 0 || | ||
202 | (r = sshbuf_put_string(msg, blob, blen)) != 0 || | ||
203 | (r = sshbuf_put_string(msg, dgst, dgst_len)) != 0 || | ||
204 | (r = sshbuf_put_u32(msg, 0)) != 0) | ||
205 | fatal("%s: buffer error: %s", __func__, ssh_err(r)); | ||
206 | send_msg(msg); | ||
207 | sshbuf_reset(msg); | ||
208 | |||
209 | if (recv_msg(msg) == SSH2_AGENT_SIGN_RESPONSE) { | ||
210 | if ((r = sshbuf_get_string(msg, &signature, &slen)) != 0) | ||
211 | fatal("%s: buffer error: %s", __func__, ssh_err(r)); | ||
212 | cp = signature; | ||
213 | ret = d2i_ECDSA_SIG(NULL, &cp, slen); | ||
214 | free(signature); | ||
215 | } | ||
216 | |||
217 | fail: | ||
218 | free(blob); | ||
219 | sshkey_free(key); | ||
153 | sshbuf_free(msg); | 220 | sshbuf_free(msg); |
154 | return (ret); | 221 | return (ret); |
155 | } | 222 | } |
223 | #endif /* HAVE_EC_KEY_METHOD_NEW */ | ||
224 | |||
225 | static RSA_METHOD *helper_rsa; | ||
226 | #ifdef HAVE_EC_KEY_METHOD_NEW | ||
227 | static EC_KEY_METHOD *helper_ecdsa; | ||
228 | #endif /* HAVE_EC_KEY_METHOD_NEW */ | ||
229 | |||
230 | /* redirect private key crypto operations to the ssh-pkcs11-helper */ | ||
231 | static void | ||
232 | wrap_key(struct sshkey *k) | ||
233 | { | ||
234 | if (k->type == KEY_RSA) | ||
235 | RSA_set_method(k->rsa, helper_rsa); | ||
236 | #ifdef HAVE_EC_KEY_METHOD_NEW | ||
237 | else if (k->type == KEY_ECDSA) | ||
238 | EC_KEY_set_method(k->ecdsa, helper_ecdsa); | ||
239 | #endif /* HAVE_EC_KEY_METHOD_NEW */ | ||
240 | else | ||
241 | fatal("%s: unknown key type", __func__); | ||
242 | } | ||
156 | 243 | ||
157 | /* redirect the private key encrypt operation to the ssh-pkcs11-helper */ | ||
158 | static int | 244 | static int |
159 | wrap_key(RSA *rsa) | 245 | pkcs11_start_helper_methods(void) |
160 | { | 246 | { |
161 | static RSA_METHOD *helper_rsa; | 247 | if (helper_rsa != NULL) |
248 | return (0); | ||
249 | |||
250 | #ifdef HAVE_EC_KEY_METHOD_NEW | ||
251 | int (*orig_sign)(int, const unsigned char *, int, unsigned char *, | ||
252 | unsigned int *, const BIGNUM *, const BIGNUM *, EC_KEY *) = NULL; | ||
253 | if (helper_ecdsa != NULL) | ||
254 | return (0); | ||
255 | helper_ecdsa = EC_KEY_METHOD_new(EC_KEY_OpenSSL()); | ||
256 | if (helper_ecdsa == NULL) | ||
257 | return (-1); | ||
258 | EC_KEY_METHOD_get_sign(helper_ecdsa, &orig_sign, NULL, NULL); | ||
259 | EC_KEY_METHOD_set_sign(helper_ecdsa, orig_sign, NULL, ecdsa_do_sign); | ||
260 | #endif /* HAVE_EC_KEY_METHOD_NEW */ | ||
162 | 261 | ||
163 | if ((helper_rsa = RSA_meth_dup(RSA_get_default_method())) == NULL) | 262 | if ((helper_rsa = RSA_meth_dup(RSA_get_default_method())) == NULL) |
164 | fatal("%s: RSA_meth_dup failed", __func__); | 263 | fatal("%s: RSA_meth_dup failed", __func__); |
165 | if (!RSA_meth_set1_name(helper_rsa, "ssh-pkcs11-helper") || | 264 | if (!RSA_meth_set1_name(helper_rsa, "ssh-pkcs11-helper") || |
166 | !RSA_meth_set_priv_enc(helper_rsa, pkcs11_rsa_private_encrypt)) | 265 | !RSA_meth_set_priv_enc(helper_rsa, rsa_encrypt)) |
167 | fatal("%s: failed to prepare method", __func__); | 266 | fatal("%s: failed to prepare method", __func__); |
168 | RSA_set_method(rsa, helper_rsa); | 267 | |
169 | return (0); | 268 | return (0); |
170 | } | 269 | } |
171 | 270 | ||
@@ -173,6 +272,15 @@ static int | |||
173 | pkcs11_start_helper(void) | 272 | pkcs11_start_helper(void) |
174 | { | 273 | { |
175 | int pair[2]; | 274 | int pair[2]; |
275 | char *helper, *verbosity = NULL; | ||
276 | |||
277 | if (log_level_get() >= SYSLOG_LEVEL_DEBUG1) | ||
278 | verbosity = "-vvv"; | ||
279 | |||
280 | if (pkcs11_start_helper_methods() == -1) { | ||
281 | error("pkcs11_start_helper_methods failed"); | ||
282 | return (-1); | ||
283 | } | ||
176 | 284 | ||
177 | if (socketpair(AF_UNIX, SOCK_STREAM, 0, pair) == -1) { | 285 | if (socketpair(AF_UNIX, SOCK_STREAM, 0, pair) == -1) { |
178 | error("socketpair: %s", strerror(errno)); | 286 | error("socketpair: %s", strerror(errno)); |
@@ -189,10 +297,13 @@ pkcs11_start_helper(void) | |||
189 | } | 297 | } |
190 | close(pair[0]); | 298 | close(pair[0]); |
191 | close(pair[1]); | 299 | close(pair[1]); |
192 | execlp(_PATH_SSH_PKCS11_HELPER, _PATH_SSH_PKCS11_HELPER, | 300 | helper = getenv("SSH_PKCS11_HELPER"); |
193 | (char *)NULL); | 301 | if (helper == NULL || strlen(helper) == 0) |
194 | fprintf(stderr, "exec: %s: %s\n", _PATH_SSH_PKCS11_HELPER, | 302 | helper = _PATH_SSH_PKCS11_HELPER; |
195 | strerror(errno)); | 303 | debug("%s: starting %s %s", __func__, helper, |
304 | verbosity == NULL ? "" : verbosity); | ||
305 | execlp(helper, helper, verbosity, (char *)NULL); | ||
306 | fprintf(stderr, "exec: %s: %s\n", helper, strerror(errno)); | ||
196 | _exit(1); | 307 | _exit(1); |
197 | } | 308 | } |
198 | close(pair[1]); | 309 | close(pair[1]); |
@@ -204,7 +315,7 @@ int | |||
204 | pkcs11_add_provider(char *name, char *pin, struct sshkey ***keysp) | 315 | pkcs11_add_provider(char *name, char *pin, struct sshkey ***keysp) |
205 | { | 316 | { |
206 | struct sshkey *k; | 317 | struct sshkey *k; |
207 | int r; | 318 | int r, type; |
208 | u_char *blob; | 319 | u_char *blob; |
209 | size_t blen; | 320 | size_t blen; |
210 | u_int nkeys, i; | 321 | u_int nkeys, i; |
@@ -222,7 +333,8 @@ pkcs11_add_provider(char *name, char *pin, struct sshkey ***keysp) | |||
222 | send_msg(msg); | 333 | send_msg(msg); |
223 | sshbuf_reset(msg); | 334 | sshbuf_reset(msg); |
224 | 335 | ||
225 | if (recv_msg(msg) == SSH2_AGENT_IDENTITIES_ANSWER) { | 336 | type = recv_msg(msg); |
337 | if (type == SSH2_AGENT_IDENTITIES_ANSWER) { | ||
226 | if ((r = sshbuf_get_u32(msg, &nkeys)) != 0) | 338 | if ((r = sshbuf_get_u32(msg, &nkeys)) != 0) |
227 | fatal("%s: buffer error: %s", __func__, ssh_err(r)); | 339 | fatal("%s: buffer error: %s", __func__, ssh_err(r)); |
228 | *keysp = xcalloc(nkeys, sizeof(struct sshkey *)); | 340 | *keysp = xcalloc(nkeys, sizeof(struct sshkey *)); |
@@ -234,10 +346,13 @@ pkcs11_add_provider(char *name, char *pin, struct sshkey ***keysp) | |||
234 | __func__, ssh_err(r)); | 346 | __func__, ssh_err(r)); |
235 | if ((r = sshkey_from_blob(blob, blen, &k)) != 0) | 347 | if ((r = sshkey_from_blob(blob, blen, &k)) != 0) |
236 | fatal("%s: bad key: %s", __func__, ssh_err(r)); | 348 | fatal("%s: bad key: %s", __func__, ssh_err(r)); |
237 | wrap_key(k->rsa); | 349 | wrap_key(k); |
238 | (*keysp)[i] = k; | 350 | (*keysp)[i] = k; |
239 | free(blob); | 351 | free(blob); |
240 | } | 352 | } |
353 | } else if (type == SSH2_AGENT_FAILURE) { | ||
354 | if ((r = sshbuf_get_u32(msg, &nkeys)) != 0) | ||
355 | nkeys = -1; | ||
241 | } else { | 356 | } else { |
242 | nkeys = -1; | 357 | nkeys = -1; |
243 | } | 358 | } |
diff --git a/ssh-pkcs11-helper.0 b/ssh-pkcs11-helper.0 index 4d5c9843b..22f690717 100644 --- a/ssh-pkcs11-helper.0 +++ b/ssh-pkcs11-helper.0 | |||
@@ -4,7 +4,7 @@ NAME | |||
4 | ssh-pkcs11-helper M-bM-^@M-^S ssh-agent helper program for PKCS#11 support | 4 | ssh-pkcs11-helper M-bM-^@M-^S ssh-agent helper program for PKCS#11 support |
5 | 5 | ||
6 | SYNOPSIS | 6 | SYNOPSIS |
7 | ssh-pkcs11-helper | 7 | ssh-pkcs11-helper [-v] |
8 | 8 | ||
9 | DESCRIPTION | 9 | DESCRIPTION |
10 | ssh-pkcs11-helper is used by ssh-agent(1) to access keys provided by a | 10 | ssh-pkcs11-helper is used by ssh-agent(1) to access keys provided by a |
@@ -13,6 +13,16 @@ DESCRIPTION | |||
13 | ssh-pkcs11-helper is not intended to be invoked by the user, but from | 13 | ssh-pkcs11-helper is not intended to be invoked by the user, but from |
14 | ssh-agent(1). | 14 | ssh-agent(1). |
15 | 15 | ||
16 | A single option is supported: | ||
17 | |||
18 | -v Verbose mode. Causes ssh-pkcs11-helper to print debugging | ||
19 | messages about its progress. This is helpful in debugging | ||
20 | problems. Multiple -v options increase the verbosity. The | ||
21 | maximum is 3. | ||
22 | |||
23 | Note that ssh-agent(1) will automatically pass the -v flag to | ||
24 | ssh-pkcs11-helper when it has itself been placed in debug mode. | ||
25 | |||
16 | SEE ALSO | 26 | SEE ALSO |
17 | ssh(1), ssh-add(1), ssh-agent(1) | 27 | ssh(1), ssh-add(1), ssh-agent(1) |
18 | 28 | ||
@@ -22,4 +32,4 @@ HISTORY | |||
22 | AUTHORS | 32 | AUTHORS |
23 | Markus Friedl <markus@openbsd.org> | 33 | Markus Friedl <markus@openbsd.org> |
24 | 34 | ||
25 | OpenBSD 6.4 July 16, 2013 OpenBSD 6.4 | 35 | OpenBSD 6.5 January 21, 2019 OpenBSD 6.5 |
diff --git a/ssh-pkcs11-helper.8 b/ssh-pkcs11-helper.8 index 3728c4e4e..ba5c30fa0 100644 --- a/ssh-pkcs11-helper.8 +++ b/ssh-pkcs11-helper.8 | |||
@@ -1,4 +1,4 @@ | |||
1 | .\" $OpenBSD: ssh-pkcs11-helper.8,v 1.4 2013/07/16 00:07:52 schwarze Exp $ | 1 | .\" $OpenBSD: ssh-pkcs11-helper.8,v 1.5 2019/01/21 12:53:35 djm Exp $ |
2 | .\" | 2 | .\" |
3 | .\" Copyright (c) 2010 Markus Friedl. All rights reserved. | 3 | .\" Copyright (c) 2010 Markus Friedl. All rights reserved. |
4 | .\" | 4 | .\" |
@@ -14,7 +14,7 @@ | |||
14 | .\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF | 14 | .\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF |
15 | .\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. | 15 | .\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. |
16 | .\" | 16 | .\" |
17 | .Dd $Mdocdate: July 16 2013 $ | 17 | .Dd $Mdocdate: January 21 2019 $ |
18 | .Dt SSH-PKCS11-HELPER 8 | 18 | .Dt SSH-PKCS11-HELPER 8 |
19 | .Os | 19 | .Os |
20 | .Sh NAME | 20 | .Sh NAME |
@@ -22,6 +22,7 @@ | |||
22 | .Nd ssh-agent helper program for PKCS#11 support | 22 | .Nd ssh-agent helper program for PKCS#11 support |
23 | .Sh SYNOPSIS | 23 | .Sh SYNOPSIS |
24 | .Nm | 24 | .Nm |
25 | .Op Fl v | ||
25 | .Sh DESCRIPTION | 26 | .Sh DESCRIPTION |
26 | .Nm | 27 | .Nm |
27 | is used by | 28 | is used by |
@@ -31,6 +32,28 @@ to access keys provided by a PKCS#11 token. | |||
31 | .Nm | 32 | .Nm |
32 | is not intended to be invoked by the user, but from | 33 | is not intended to be invoked by the user, but from |
33 | .Xr ssh-agent 1 . | 34 | .Xr ssh-agent 1 . |
35 | .Pp | ||
36 | A single option is supported: | ||
37 | .Bl -tag -width Ds | ||
38 | .It Fl v | ||
39 | Verbose mode. | ||
40 | Causes | ||
41 | .Nm | ||
42 | to print debugging messages about its progress. | ||
43 | This is helpful in debugging problems. | ||
44 | Multiple | ||
45 | .Fl v | ||
46 | options increase the verbosity. | ||
47 | The maximum is 3. | ||
48 | .Pp | ||
49 | Note that | ||
50 | .Xr ssh-agent 1 | ||
51 | will automatically pass the | ||
52 | .Fl v | ||
53 | flag to | ||
54 | .Nm | ||
55 | when it has itself been placed in debug mode. | ||
56 | .El | ||
34 | .Sh SEE ALSO | 57 | .Sh SEE ALSO |
35 | .Xr ssh 1 , | 58 | .Xr ssh 1 , |
36 | .Xr ssh-add 1 , | 59 | .Xr ssh-add 1 , |
diff --git a/ssh-pkcs11-helper.c b/ssh-pkcs11-helper.c index 6301033c5..97fb1212c 100644 --- a/ssh-pkcs11-helper.c +++ b/ssh-pkcs11-helper.c | |||
@@ -1,4 +1,4 @@ | |||
1 | /* $OpenBSD: ssh-pkcs11-helper.c,v 1.14 2018/01/08 15:18:46 markus Exp $ */ | 1 | /* $OpenBSD: ssh-pkcs11-helper.c,v 1.17 2019/01/23 02:01:10 djm Exp $ */ |
2 | /* | 2 | /* |
3 | * Copyright (c) 2010 Markus Friedl. All rights reserved. | 3 | * Copyright (c) 2010 Markus Friedl. All rights reserved. |
4 | * | 4 | * |
@@ -24,10 +24,11 @@ | |||
24 | 24 | ||
25 | #include "openbsd-compat/sys-queue.h" | 25 | #include "openbsd-compat/sys-queue.h" |
26 | 26 | ||
27 | #include <errno.h> | ||
28 | #include <poll.h> | ||
27 | #include <stdarg.h> | 29 | #include <stdarg.h> |
28 | #include <string.h> | 30 | #include <string.h> |
29 | #include <unistd.h> | 31 | #include <unistd.h> |
30 | #include <errno.h> | ||
31 | 32 | ||
32 | #include "xmalloc.h" | 33 | #include "xmalloc.h" |
33 | #include "sshbuf.h" | 34 | #include "sshbuf.h" |
@@ -110,7 +111,7 @@ static void | |||
110 | process_add(void) | 111 | process_add(void) |
111 | { | 112 | { |
112 | char *name, *pin; | 113 | char *name, *pin; |
113 | struct sshkey **keys; | 114 | struct sshkey **keys = NULL; |
114 | int r, i, nkeys; | 115 | int r, i, nkeys; |
115 | u_char *blob; | 116 | u_char *blob; |
116 | size_t blen; | 117 | size_t blen; |
@@ -139,11 +140,13 @@ process_add(void) | |||
139 | free(blob); | 140 | free(blob); |
140 | add_key(keys[i], name); | 141 | add_key(keys[i], name); |
141 | } | 142 | } |
142 | free(keys); | ||
143 | } else { | 143 | } else { |
144 | if ((r = sshbuf_put_u8(msg, SSH_AGENT_FAILURE)) != 0) | 144 | if ((r = sshbuf_put_u8(msg, SSH_AGENT_FAILURE)) != 0) |
145 | fatal("%s: buffer error: %s", __func__, ssh_err(r)); | 145 | fatal("%s: buffer error: %s", __func__, ssh_err(r)); |
146 | if ((r = sshbuf_put_u32(msg, -nkeys)) != 0) | ||
147 | fatal("%s: buffer error: %s", __func__, ssh_err(r)); | ||
146 | } | 148 | } |
149 | free(keys); | ||
147 | free(pin); | 150 | free(pin); |
148 | free(name); | 151 | free(name); |
149 | send_msg(msg); | 152 | send_msg(msg); |
@@ -192,15 +195,33 @@ process_sign(void) | |||
192 | else { | 195 | else { |
193 | if ((found = lookup_key(key)) != NULL) { | 196 | if ((found = lookup_key(key)) != NULL) { |
194 | #ifdef WITH_OPENSSL | 197 | #ifdef WITH_OPENSSL |
198 | u_int xslen; | ||
195 | int ret; | 199 | int ret; |
196 | 200 | ||
197 | slen = RSA_size(key->rsa); | 201 | if (key->type == KEY_RSA) { |
198 | signature = xmalloc(slen); | 202 | slen = RSA_size(key->rsa); |
199 | if ((ret = RSA_private_encrypt(dlen, data, signature, | 203 | signature = xmalloc(slen); |
200 | found->rsa, RSA_PKCS1_PADDING)) != -1) { | 204 | ret = RSA_private_encrypt(dlen, data, signature, |
201 | slen = ret; | 205 | found->rsa, RSA_PKCS1_PADDING); |
202 | ok = 0; | 206 | if (ret != -1) { |
203 | } | 207 | slen = ret; |
208 | ok = 0; | ||
209 | } | ||
210 | } else if (key->type == KEY_ECDSA) { | ||
211 | xslen = ECDSA_size(key->ecdsa); | ||
212 | signature = xmalloc(xslen); | ||
213 | /* "The parameter type is ignored." */ | ||
214 | ret = ECDSA_sign(-1, data, dlen, signature, | ||
215 | &xslen, found->ecdsa); | ||
216 | if (ret != 0) | ||
217 | ok = 0; | ||
218 | else | ||
219 | error("%s: ECDSA_sign" | ||
220 | " returns %d", __func__, ret); | ||
221 | slen = xslen; | ||
222 | } else | ||
223 | error("%s: don't know how to sign with key " | ||
224 | "type %d", __func__, (int)key->type); | ||
204 | #endif /* WITH_OPENSSL */ | 225 | #endif /* WITH_OPENSSL */ |
205 | } | 226 | } |
206 | sshkey_free(key); | 227 | sshkey_free(key); |
@@ -287,27 +308,44 @@ cleanup_exit(int i) | |||
287 | _exit(i); | 308 | _exit(i); |
288 | } | 309 | } |
289 | 310 | ||
311 | |||
290 | int | 312 | int |
291 | main(int argc, char **argv) | 313 | main(int argc, char **argv) |
292 | { | 314 | { |
293 | fd_set *rset, *wset; | 315 | int r, ch, in, out, max, log_stderr = 0; |
294 | int r, in, out, max, log_stderr = 0; | 316 | ssize_t len; |
295 | ssize_t len, olen, set_size; | ||
296 | SyslogFacility log_facility = SYSLOG_FACILITY_AUTH; | 317 | SyslogFacility log_facility = SYSLOG_FACILITY_AUTH; |
297 | LogLevel log_level = SYSLOG_LEVEL_ERROR; | 318 | LogLevel log_level = SYSLOG_LEVEL_ERROR; |
298 | char buf[4*4096]; | 319 | char buf[4*4096]; |
299 | |||
300 | extern char *__progname; | 320 | extern char *__progname; |
321 | struct pollfd pfd[2]; | ||
301 | 322 | ||
302 | ssh_malloc_init(); /* must be called before any mallocs */ | 323 | ssh_malloc_init(); /* must be called before any mallocs */ |
324 | __progname = ssh_get_progname(argv[0]); | ||
325 | seed_rng(); | ||
303 | TAILQ_INIT(&pkcs11_keylist); | 326 | TAILQ_INIT(&pkcs11_keylist); |
304 | pkcs11_init(0); | ||
305 | 327 | ||
306 | seed_rng(); | 328 | log_init(__progname, log_level, log_facility, log_stderr); |
307 | __progname = ssh_get_progname(argv[0]); | 329 | |
330 | while ((ch = getopt(argc, argv, "v")) != -1) { | ||
331 | switch (ch) { | ||
332 | case 'v': | ||
333 | log_stderr = 1; | ||
334 | if (log_level == SYSLOG_LEVEL_ERROR) | ||
335 | log_level = SYSLOG_LEVEL_DEBUG1; | ||
336 | else if (log_level < SYSLOG_LEVEL_DEBUG3) | ||
337 | log_level++; | ||
338 | break; | ||
339 | default: | ||
340 | fprintf(stderr, "usage: %s [-v]\n", __progname); | ||
341 | exit(1); | ||
342 | } | ||
343 | } | ||
308 | 344 | ||
309 | log_init(__progname, log_level, log_facility, log_stderr); | 345 | log_init(__progname, log_level, log_facility, log_stderr); |
310 | 346 | ||
347 | pkcs11_init(0); | ||
348 | |||
311 | in = STDIN_FILENO; | 349 | in = STDIN_FILENO; |
312 | out = STDOUT_FILENO; | 350 | out = STDOUT_FILENO; |
313 | 351 | ||
@@ -322,13 +360,10 @@ main(int argc, char **argv) | |||
322 | if ((oqueue = sshbuf_new()) == NULL) | 360 | if ((oqueue = sshbuf_new()) == NULL) |
323 | fatal("%s: sshbuf_new failed", __func__); | 361 | fatal("%s: sshbuf_new failed", __func__); |
324 | 362 | ||
325 | set_size = howmany(max + 1, NFDBITS) * sizeof(fd_mask); | 363 | while (1) { |
326 | rset = xmalloc(set_size); | 364 | memset(pfd, 0, sizeof(pfd)); |
327 | wset = xmalloc(set_size); | 365 | pfd[0].fd = in; |
328 | 366 | pfd[1].fd = out; | |
329 | for (;;) { | ||
330 | memset(rset, 0, set_size); | ||
331 | memset(wset, 0, set_size); | ||
332 | 367 | ||
333 | /* | 368 | /* |
334 | * Ensure that we can read a full buffer and handle | 369 | * Ensure that we can read a full buffer and handle |
@@ -337,23 +372,21 @@ main(int argc, char **argv) | |||
337 | */ | 372 | */ |
338 | if ((r = sshbuf_check_reserve(iqueue, sizeof(buf))) == 0 && | 373 | if ((r = sshbuf_check_reserve(iqueue, sizeof(buf))) == 0 && |
339 | (r = sshbuf_check_reserve(oqueue, MAX_MSG_LENGTH)) == 0) | 374 | (r = sshbuf_check_reserve(oqueue, MAX_MSG_LENGTH)) == 0) |
340 | FD_SET(in, rset); | 375 | pfd[0].events = POLLIN; |
341 | else if (r != SSH_ERR_NO_BUFFER_SPACE) | 376 | else if (r != SSH_ERR_NO_BUFFER_SPACE) |
342 | fatal("%s: buffer error: %s", __func__, ssh_err(r)); | 377 | fatal("%s: buffer error: %s", __func__, ssh_err(r)); |
343 | 378 | ||
344 | olen = sshbuf_len(oqueue); | 379 | if (sshbuf_len(oqueue) > 0) |
345 | if (olen > 0) | 380 | pfd[1].events = POLLOUT; |
346 | FD_SET(out, wset); | ||
347 | 381 | ||
348 | if (select(max+1, rset, wset, NULL, NULL) < 0) { | 382 | if ((r = poll(pfd, 2, -1 /* INFTIM */)) <= 0) { |
349 | if (errno == EINTR) | 383 | if (r == 0 || errno == EINTR) |
350 | continue; | 384 | continue; |
351 | error("select: %s", strerror(errno)); | 385 | fatal("poll: %s", strerror(errno)); |
352 | cleanup_exit(2); | ||
353 | } | 386 | } |
354 | 387 | ||
355 | /* copy stdin to iqueue */ | 388 | /* copy stdin to iqueue */ |
356 | if (FD_ISSET(in, rset)) { | 389 | if ((pfd[0].revents & (POLLIN|POLLERR)) != 0) { |
357 | len = read(in, buf, sizeof buf); | 390 | len = read(in, buf, sizeof buf); |
358 | if (len == 0) { | 391 | if (len == 0) { |
359 | debug("read eof"); | 392 | debug("read eof"); |
@@ -367,8 +400,9 @@ main(int argc, char **argv) | |||
367 | } | 400 | } |
368 | } | 401 | } |
369 | /* send oqueue to stdout */ | 402 | /* send oqueue to stdout */ |
370 | if (FD_ISSET(out, wset)) { | 403 | if ((pfd[1].revents & (POLLOUT|POLLHUP)) != 0) { |
371 | len = write(out, sshbuf_ptr(oqueue), olen); | 404 | len = write(out, sshbuf_ptr(oqueue), |
405 | sshbuf_len(oqueue)); | ||
372 | if (len < 0) { | 406 | if (len < 0) { |
373 | error("write: %s", strerror(errno)); | 407 | error("write: %s", strerror(errno)); |
374 | cleanup_exit(1); | 408 | cleanup_exit(1); |
diff --git a/ssh-pkcs11.c b/ssh-pkcs11.c index 775de9642..70f06bffe 100644 --- a/ssh-pkcs11.c +++ b/ssh-pkcs11.c | |||
@@ -1,6 +1,7 @@ | |||
1 | /* $OpenBSD: ssh-pkcs11.c,v 1.26 2018/02/07 02:06:51 jsing Exp $ */ | 1 | /* $OpenBSD: ssh-pkcs11.c,v 1.43 2019/03/08 17:24:43 markus Exp $ */ |
2 | /* | 2 | /* |
3 | * Copyright (c) 2010 Markus Friedl. All rights reserved. | 3 | * Copyright (c) 2010 Markus Friedl. All rights reserved. |
4 | * Copyright (c) 2014 Pedro Martelletto. All rights reserved. | ||
4 | * | 5 | * |
5 | * Permission to use, copy, modify, and distribute this software for any | 6 | * Permission to use, copy, modify, and distribute this software for any |
6 | * purpose with or without fee is hereby granted, provided that the above | 7 | * purpose with or without fee is hereby granted, provided that the above |
@@ -19,20 +20,24 @@ | |||
19 | 20 | ||
20 | #ifdef ENABLE_PKCS11 | 21 | #ifdef ENABLE_PKCS11 |
21 | 22 | ||
22 | #include <sys/types.h> | ||
23 | #ifdef HAVE_SYS_TIME_H | 23 | #ifdef HAVE_SYS_TIME_H |
24 | # include <sys/time.h> | 24 | # include <sys/time.h> |
25 | #endif | 25 | #endif |
26 | |||
27 | #include <sys/types.h> | ||
26 | #include <stdarg.h> | 28 | #include <stdarg.h> |
27 | #include <stdio.h> | 29 | #include <stdio.h> |
28 | 30 | ||
31 | #include <ctype.h> | ||
29 | #include <string.h> | 32 | #include <string.h> |
30 | #include <dlfcn.h> | 33 | #include <dlfcn.h> |
31 | 34 | ||
32 | #include "openbsd-compat/sys-queue.h" | 35 | #include "openbsd-compat/sys-queue.h" |
33 | #include "openbsd-compat/openssl-compat.h" | 36 | #include "openbsd-compat/openssl-compat.h" |
34 | 37 | ||
38 | #include <openssl/ecdsa.h> | ||
35 | #include <openssl/x509.h> | 39 | #include <openssl/x509.h> |
40 | #include <openssl/err.h> | ||
36 | 41 | ||
37 | #define CRYPTOKI_COMPAT | 42 | #define CRYPTOKI_COMPAT |
38 | #include "pkcs11.h" | 43 | #include "pkcs11.h" |
@@ -67,14 +72,25 @@ TAILQ_HEAD(, pkcs11_provider) pkcs11_providers; | |||
67 | struct pkcs11_key { | 72 | struct pkcs11_key { |
68 | struct pkcs11_provider *provider; | 73 | struct pkcs11_provider *provider; |
69 | CK_ULONG slotidx; | 74 | CK_ULONG slotidx; |
70 | int (*orig_finish)(RSA *rsa); | ||
71 | RSA_METHOD *rsa_method; | ||
72 | char *keyid; | 75 | char *keyid; |
73 | int keyid_len; | 76 | int keyid_len; |
74 | }; | 77 | }; |
75 | 78 | ||
76 | int pkcs11_interactive = 0; | 79 | int pkcs11_interactive = 0; |
77 | 80 | ||
81 | #ifdef HAVE_EC_KEY_METHOD_NEW | ||
82 | static void | ||
83 | ossl_error(const char *msg) | ||
84 | { | ||
85 | unsigned long e; | ||
86 | |||
87 | error("%s: %s", __func__, msg); | ||
88 | while ((e = ERR_get_error()) != 0) | ||
89 | error("%s: libcrypto error: %.100s", __func__, | ||
90 | ERR_error_string(e, NULL)); | ||
91 | } | ||
92 | #endif /* HAVE_EC_KEY_METHOD_NEW */ | ||
93 | |||
78 | int | 94 | int |
79 | pkcs11_init(int interactive) | 95 | pkcs11_init(int interactive) |
80 | { | 96 | { |
@@ -84,9 +100,9 @@ pkcs11_init(int interactive) | |||
84 | } | 100 | } |
85 | 101 | ||
86 | /* | 102 | /* |
87 | * finalize a provider shared libarary, it's no longer usable. | 103 | * finalize a provider shared library, it's no longer usable. |
88 | * however, there might still be keys referencing this provider, | 104 | * however, there might still be keys referencing this provider, |
89 | * so the actuall freeing of memory is handled by pkcs11_provider_unref(). | 105 | * so the actual freeing of memory is handled by pkcs11_provider_unref(). |
90 | * this is called when a provider gets unregistered. | 106 | * this is called when a provider gets unregistered. |
91 | */ | 107 | */ |
92 | static void | 108 | static void |
@@ -123,6 +139,7 @@ pkcs11_provider_unref(struct pkcs11_provider *p) | |||
123 | if (--p->refcount <= 0) { | 139 | if (--p->refcount <= 0) { |
124 | if (p->valid) | 140 | if (p->valid) |
125 | error("pkcs11_provider_unref: %p still valid", p); | 141 | error("pkcs11_provider_unref: %p still valid", p); |
142 | free(p->name); | ||
126 | free(p->slotlist); | 143 | free(p->slotlist); |
127 | free(p->slotinfo); | 144 | free(p->slotinfo); |
128 | free(p); | 145 | free(p); |
@@ -171,23 +188,27 @@ pkcs11_del_provider(char *provider_id) | |||
171 | return (-1); | 188 | return (-1); |
172 | } | 189 | } |
173 | 190 | ||
174 | /* openssl callback for freeing an RSA key */ | 191 | static RSA_METHOD *rsa_method; |
175 | static int | 192 | static int rsa_idx = 0; |
176 | pkcs11_rsa_finish(RSA *rsa) | 193 | #ifdef HAVE_EC_KEY_METHOD_NEW |
194 | static EC_KEY_METHOD *ec_key_method; | ||
195 | static int ec_key_idx = 0; | ||
196 | #endif | ||
197 | |||
198 | /* release a wrapped object */ | ||
199 | static void | ||
200 | pkcs11_k11_free(void *parent, void *ptr, CRYPTO_EX_DATA *ad, int idx, | ||
201 | long argl, void *argp) | ||
177 | { | 202 | { |
178 | struct pkcs11_key *k11; | 203 | struct pkcs11_key *k11 = ptr; |
179 | int rv = -1; | ||
180 | 204 | ||
181 | if ((k11 = RSA_get_app_data(rsa)) != NULL) { | 205 | debug("%s: parent %p ptr %p idx %d", __func__, parent, ptr, idx); |
182 | if (k11->orig_finish) | 206 | if (k11 == NULL) |
183 | rv = k11->orig_finish(rsa); | 207 | return; |
184 | if (k11->provider) | 208 | if (k11->provider) |
185 | pkcs11_provider_unref(k11->provider); | 209 | pkcs11_provider_unref(k11->provider); |
186 | RSA_meth_free(k11->rsa_method); | 210 | free(k11->keyid); |
187 | free(k11->keyid); | 211 | free(k11); |
188 | free(k11); | ||
189 | } | ||
190 | return (rv); | ||
191 | } | 212 | } |
192 | 213 | ||
193 | /* find a single 'obj' for given attributes */ | 214 | /* find a single 'obj' for given attributes */ |
@@ -218,88 +239,193 @@ pkcs11_find(struct pkcs11_provider *p, CK_ULONG slotidx, CK_ATTRIBUTE *attr, | |||
218 | return (ret); | 239 | return (ret); |
219 | } | 240 | } |
220 | 241 | ||
221 | /* openssl callback doing the actual signing operation */ | ||
222 | static int | 242 | static int |
223 | pkcs11_rsa_private_encrypt(int flen, const u_char *from, u_char *to, RSA *rsa, | 243 | pkcs11_login(struct pkcs11_key *k11, CK_USER_TYPE type) |
224 | int padding) | ||
225 | { | 244 | { |
226 | struct pkcs11_key *k11; | ||
227 | struct pkcs11_slotinfo *si; | 245 | struct pkcs11_slotinfo *si; |
228 | CK_FUNCTION_LIST *f; | 246 | CK_FUNCTION_LIST *f; |
229 | CK_OBJECT_HANDLE obj; | ||
230 | CK_ULONG tlen = 0; | ||
231 | CK_RV rv; | ||
232 | CK_OBJECT_CLASS private_key_class = CKO_PRIVATE_KEY; | ||
233 | CK_BBOOL true_val = CK_TRUE; | ||
234 | CK_MECHANISM mech = { | ||
235 | CKM_RSA_PKCS, NULL_PTR, 0 | ||
236 | }; | ||
237 | CK_ATTRIBUTE key_filter[] = { | ||
238 | {CKA_CLASS, NULL, sizeof(private_key_class) }, | ||
239 | {CKA_ID, NULL, 0}, | ||
240 | {CKA_SIGN, NULL, sizeof(true_val) } | ||
241 | }; | ||
242 | char *pin = NULL, prompt[1024]; | 247 | char *pin = NULL, prompt[1024]; |
243 | int rval = -1; | 248 | CK_RV rv; |
244 | 249 | ||
245 | key_filter[0].pValue = &private_key_class; | 250 | if (!k11->provider || !k11->provider->valid) { |
246 | key_filter[2].pValue = &true_val; | 251 | error("no pkcs11 (valid) provider found"); |
252 | return (-1); | ||
253 | } | ||
254 | |||
255 | f = k11->provider->function_list; | ||
256 | si = &k11->provider->slotinfo[k11->slotidx]; | ||
257 | |||
258 | if (!pkcs11_interactive) { | ||
259 | error("need pin entry%s", | ||
260 | (si->token.flags & CKF_PROTECTED_AUTHENTICATION_PATH) ? | ||
261 | " on reader keypad" : ""); | ||
262 | return (-1); | ||
263 | } | ||
264 | if (si->token.flags & CKF_PROTECTED_AUTHENTICATION_PATH) | ||
265 | verbose("Deferring PIN entry to reader keypad."); | ||
266 | else { | ||
267 | snprintf(prompt, sizeof(prompt), "Enter PIN for '%s': ", | ||
268 | si->token.label); | ||
269 | if ((pin = read_passphrase(prompt, RP_ALLOW_EOF)) == NULL) { | ||
270 | debug("%s: no pin specified", __func__); | ||
271 | return (-1); /* bail out */ | ||
272 | } | ||
273 | } | ||
274 | rv = f->C_Login(si->session, type, (u_char *)pin, | ||
275 | (pin != NULL) ? strlen(pin) : 0); | ||
276 | if (pin != NULL) | ||
277 | freezero(pin, strlen(pin)); | ||
278 | if (rv != CKR_OK && rv != CKR_USER_ALREADY_LOGGED_IN) { | ||
279 | error("C_Login failed: %lu", rv); | ||
280 | return (-1); | ||
281 | } | ||
282 | si->logged_in = 1; | ||
283 | return (0); | ||
284 | } | ||
285 | |||
286 | static int | ||
287 | pkcs11_check_obj_bool_attrib(struct pkcs11_key *k11, CK_OBJECT_HANDLE obj, | ||
288 | CK_ATTRIBUTE_TYPE type, int *val) | ||
289 | { | ||
290 | struct pkcs11_slotinfo *si; | ||
291 | CK_FUNCTION_LIST *f; | ||
292 | CK_BBOOL flag = 0; | ||
293 | CK_ATTRIBUTE attr; | ||
294 | CK_RV rv; | ||
295 | |||
296 | *val = 0; | ||
247 | 297 | ||
248 | if ((k11 = RSA_get_app_data(rsa)) == NULL) { | 298 | if (!k11->provider || !k11->provider->valid) { |
249 | error("RSA_get_app_data failed for rsa %p", rsa); | 299 | error("no pkcs11 (valid) provider found"); |
250 | return (-1); | 300 | return (-1); |
251 | } | 301 | } |
302 | |||
303 | f = k11->provider->function_list; | ||
304 | si = &k11->provider->slotinfo[k11->slotidx]; | ||
305 | |||
306 | attr.type = type; | ||
307 | attr.pValue = &flag; | ||
308 | attr.ulValueLen = sizeof(flag); | ||
309 | |||
310 | rv = f->C_GetAttributeValue(si->session, obj, &attr, 1); | ||
311 | if (rv != CKR_OK) { | ||
312 | error("C_GetAttributeValue failed: %lu", rv); | ||
313 | return (-1); | ||
314 | } | ||
315 | *val = flag != 0; | ||
316 | debug("%s: provider %p slot %lu object %lu: attrib %lu = %d", | ||
317 | __func__, k11->provider, k11->slotidx, obj, type, *val); | ||
318 | return (0); | ||
319 | } | ||
320 | |||
321 | static int | ||
322 | pkcs11_get_key(struct pkcs11_key *k11, CK_MECHANISM_TYPE mech_type) | ||
323 | { | ||
324 | struct pkcs11_slotinfo *si; | ||
325 | CK_FUNCTION_LIST *f; | ||
326 | CK_OBJECT_HANDLE obj; | ||
327 | CK_RV rv; | ||
328 | CK_OBJECT_CLASS private_key_class; | ||
329 | CK_BBOOL true_val; | ||
330 | CK_MECHANISM mech; | ||
331 | CK_ATTRIBUTE key_filter[3]; | ||
332 | int always_auth = 0; | ||
333 | int did_login = 0; | ||
334 | |||
252 | if (!k11->provider || !k11->provider->valid) { | 335 | if (!k11->provider || !k11->provider->valid) { |
253 | error("no pkcs11 (valid) provider for rsa %p", rsa); | 336 | error("no pkcs11 (valid) provider found"); |
254 | return (-1); | 337 | return (-1); |
255 | } | 338 | } |
339 | |||
256 | f = k11->provider->function_list; | 340 | f = k11->provider->function_list; |
257 | si = &k11->provider->slotinfo[k11->slotidx]; | 341 | si = &k11->provider->slotinfo[k11->slotidx]; |
342 | |||
258 | if ((si->token.flags & CKF_LOGIN_REQUIRED) && !si->logged_in) { | 343 | if ((si->token.flags & CKF_LOGIN_REQUIRED) && !si->logged_in) { |
259 | if (!pkcs11_interactive) { | 344 | if (pkcs11_login(k11, CKU_USER) < 0) { |
260 | error("need pin entry%s", (si->token.flags & | 345 | error("login failed"); |
261 | CKF_PROTECTED_AUTHENTICATION_PATH) ? | ||
262 | " on reader keypad" : ""); | ||
263 | return (-1); | ||
264 | } | ||
265 | if (si->token.flags & CKF_PROTECTED_AUTHENTICATION_PATH) | ||
266 | verbose("Deferring PIN entry to reader keypad."); | ||
267 | else { | ||
268 | snprintf(prompt, sizeof(prompt), | ||
269 | "Enter PIN for '%s': ", si->token.label); | ||
270 | pin = read_passphrase(prompt, RP_ALLOW_EOF); | ||
271 | if (pin == NULL) | ||
272 | return (-1); /* bail out */ | ||
273 | } | ||
274 | rv = f->C_Login(si->session, CKU_USER, (u_char *)pin, | ||
275 | (pin != NULL) ? strlen(pin) : 0); | ||
276 | if (pin != NULL) { | ||
277 | explicit_bzero(pin, strlen(pin)); | ||
278 | free(pin); | ||
279 | } | ||
280 | if (rv != CKR_OK && rv != CKR_USER_ALREADY_LOGGED_IN) { | ||
281 | error("C_Login failed: %lu", rv); | ||
282 | return (-1); | 346 | return (-1); |
283 | } | 347 | } |
284 | si->logged_in = 1; | 348 | did_login = 1; |
285 | } | 349 | } |
350 | |||
351 | memset(&key_filter, 0, sizeof(key_filter)); | ||
352 | private_key_class = CKO_PRIVATE_KEY; | ||
353 | key_filter[0].type = CKA_CLASS; | ||
354 | key_filter[0].pValue = &private_key_class; | ||
355 | key_filter[0].ulValueLen = sizeof(private_key_class); | ||
356 | |||
357 | key_filter[1].type = CKA_ID; | ||
286 | key_filter[1].pValue = k11->keyid; | 358 | key_filter[1].pValue = k11->keyid; |
287 | key_filter[1].ulValueLen = k11->keyid_len; | 359 | key_filter[1].ulValueLen = k11->keyid_len; |
360 | |||
361 | true_val = CK_TRUE; | ||
362 | key_filter[2].type = CKA_SIGN; | ||
363 | key_filter[2].pValue = &true_val; | ||
364 | key_filter[2].ulValueLen = sizeof(true_val); | ||
365 | |||
288 | /* try to find object w/CKA_SIGN first, retry w/o */ | 366 | /* try to find object w/CKA_SIGN first, retry w/o */ |
289 | if (pkcs11_find(k11->provider, k11->slotidx, key_filter, 3, &obj) < 0 && | 367 | if (pkcs11_find(k11->provider, k11->slotidx, key_filter, 3, &obj) < 0 && |
290 | pkcs11_find(k11->provider, k11->slotidx, key_filter, 2, &obj) < 0) { | 368 | pkcs11_find(k11->provider, k11->slotidx, key_filter, 2, &obj) < 0) { |
291 | error("cannot find private key"); | 369 | error("cannot find private key"); |
292 | } else if ((rv = f->C_SignInit(si->session, &mech, obj)) != CKR_OK) { | 370 | return (-1); |
371 | } | ||
372 | |||
373 | memset(&mech, 0, sizeof(mech)); | ||
374 | mech.mechanism = mech_type; | ||
375 | mech.pParameter = NULL_PTR; | ||
376 | mech.ulParameterLen = 0; | ||
377 | |||
378 | if ((rv = f->C_SignInit(si->session, &mech, obj)) != CKR_OK) { | ||
293 | error("C_SignInit failed: %lu", rv); | 379 | error("C_SignInit failed: %lu", rv); |
294 | } else { | 380 | return (-1); |
295 | /* XXX handle CKR_BUFFER_TOO_SMALL */ | ||
296 | tlen = RSA_size(rsa); | ||
297 | rv = f->C_Sign(si->session, (CK_BYTE *)from, flen, to, &tlen); | ||
298 | if (rv == CKR_OK) | ||
299 | rval = tlen; | ||
300 | else | ||
301 | error("C_Sign failed: %lu", rv); | ||
302 | } | 381 | } |
382 | |||
383 | pkcs11_check_obj_bool_attrib(k11, obj, CKA_ALWAYS_AUTHENTICATE, | ||
384 | &always_auth); /* ignore errors here */ | ||
385 | if (always_auth && !did_login) { | ||
386 | debug("%s: always-auth key", __func__); | ||
387 | if (pkcs11_login(k11, CKU_CONTEXT_SPECIFIC) < 0) { | ||
388 | error("login failed for always-auth key"); | ||
389 | return (-1); | ||
390 | } | ||
391 | } | ||
392 | |||
393 | return (0); | ||
394 | } | ||
395 | |||
396 | /* openssl callback doing the actual signing operation */ | ||
397 | static int | ||
398 | pkcs11_rsa_private_encrypt(int flen, const u_char *from, u_char *to, RSA *rsa, | ||
399 | int padding) | ||
400 | { | ||
401 | struct pkcs11_key *k11; | ||
402 | struct pkcs11_slotinfo *si; | ||
403 | CK_FUNCTION_LIST *f; | ||
404 | CK_ULONG tlen = 0; | ||
405 | CK_RV rv; | ||
406 | int rval = -1; | ||
407 | |||
408 | if ((k11 = RSA_get_ex_data(rsa, rsa_idx)) == NULL) { | ||
409 | error("RSA_get_ex_data failed for rsa %p", rsa); | ||
410 | return (-1); | ||
411 | } | ||
412 | |||
413 | if (pkcs11_get_key(k11, CKM_RSA_PKCS) == -1) { | ||
414 | error("pkcs11_get_key failed"); | ||
415 | return (-1); | ||
416 | } | ||
417 | |||
418 | f = k11->provider->function_list; | ||
419 | si = &k11->provider->slotinfo[k11->slotidx]; | ||
420 | tlen = RSA_size(rsa); | ||
421 | |||
422 | /* XXX handle CKR_BUFFER_TOO_SMALL */ | ||
423 | rv = f->C_Sign(si->session, (CK_BYTE *)from, flen, to, &tlen); | ||
424 | if (rv == CKR_OK) | ||
425 | rval = tlen; | ||
426 | else | ||
427 | error("C_Sign failed: %lu", rv); | ||
428 | |||
303 | return (rval); | 429 | return (rval); |
304 | } | 430 | } |
305 | 431 | ||
@@ -310,13 +436,36 @@ pkcs11_rsa_private_decrypt(int flen, const u_char *from, u_char *to, RSA *rsa, | |||
310 | return (-1); | 436 | return (-1); |
311 | } | 437 | } |
312 | 438 | ||
439 | static int | ||
440 | pkcs11_rsa_start_wrapper(void) | ||
441 | { | ||
442 | if (rsa_method != NULL) | ||
443 | return (0); | ||
444 | rsa_method = RSA_meth_dup(RSA_get_default_method()); | ||
445 | if (rsa_method == NULL) | ||
446 | return (-1); | ||
447 | rsa_idx = RSA_get_ex_new_index(0, "ssh-pkcs11-rsa", | ||
448 | NULL, NULL, pkcs11_k11_free); | ||
449 | if (rsa_idx == -1) | ||
450 | return (-1); | ||
451 | if (!RSA_meth_set1_name(rsa_method, "pkcs11") || | ||
452 | !RSA_meth_set_priv_enc(rsa_method, pkcs11_rsa_private_encrypt) || | ||
453 | !RSA_meth_set_priv_dec(rsa_method, pkcs11_rsa_private_decrypt)) { | ||
454 | error("%s: setup pkcs11 method failed", __func__); | ||
455 | return (-1); | ||
456 | } | ||
457 | return (0); | ||
458 | } | ||
459 | |||
313 | /* redirect private key operations for rsa key to pkcs11 token */ | 460 | /* redirect private key operations for rsa key to pkcs11 token */ |
314 | static int | 461 | static int |
315 | pkcs11_rsa_wrap(struct pkcs11_provider *provider, CK_ULONG slotidx, | 462 | pkcs11_rsa_wrap(struct pkcs11_provider *provider, CK_ULONG slotidx, |
316 | CK_ATTRIBUTE *keyid_attrib, RSA *rsa) | 463 | CK_ATTRIBUTE *keyid_attrib, RSA *rsa) |
317 | { | 464 | { |
318 | struct pkcs11_key *k11; | 465 | struct pkcs11_key *k11; |
319 | const RSA_METHOD *def = RSA_get_default_method(); | 466 | |
467 | if (pkcs11_rsa_start_wrapper() == -1) | ||
468 | return (-1); | ||
320 | 469 | ||
321 | k11 = xcalloc(1, sizeof(*k11)); | 470 | k11 = xcalloc(1, sizeof(*k11)); |
322 | k11->provider = provider; | 471 | k11->provider = provider; |
@@ -328,22 +477,126 @@ pkcs11_rsa_wrap(struct pkcs11_provider *provider, CK_ULONG slotidx, | |||
328 | k11->keyid = xmalloc(k11->keyid_len); | 477 | k11->keyid = xmalloc(k11->keyid_len); |
329 | memcpy(k11->keyid, keyid_attrib->pValue, k11->keyid_len); | 478 | memcpy(k11->keyid, keyid_attrib->pValue, k11->keyid_len); |
330 | } | 479 | } |
331 | k11->rsa_method = RSA_meth_dup(def); | 480 | |
332 | if (k11->rsa_method == NULL) | 481 | RSA_set_method(rsa, rsa_method); |
333 | fatal("%s: RSA_meth_dup failed", __func__); | 482 | RSA_set_ex_data(rsa, rsa_idx, k11); |
334 | k11->orig_finish = RSA_meth_get_finish(def); | ||
335 | if (!RSA_meth_set1_name(k11->rsa_method, "pkcs11") || | ||
336 | !RSA_meth_set_priv_enc(k11->rsa_method, | ||
337 | pkcs11_rsa_private_encrypt) || | ||
338 | !RSA_meth_set_priv_dec(k11->rsa_method, | ||
339 | pkcs11_rsa_private_decrypt) || | ||
340 | !RSA_meth_set_finish(k11->rsa_method, pkcs11_rsa_finish)) | ||
341 | fatal("%s: setup pkcs11 method failed", __func__); | ||
342 | RSA_set_method(rsa, k11->rsa_method); | ||
343 | RSA_set_app_data(rsa, k11); | ||
344 | return (0); | 483 | return (0); |
345 | } | 484 | } |
346 | 485 | ||
486 | #ifdef HAVE_EC_KEY_METHOD_NEW | ||
487 | /* openssl callback doing the actual signing operation */ | ||
488 | static ECDSA_SIG * | ||
489 | ecdsa_do_sign(const unsigned char *dgst, int dgst_len, const BIGNUM *inv, | ||
490 | const BIGNUM *rp, EC_KEY *ec) | ||
491 | { | ||
492 | struct pkcs11_key *k11; | ||
493 | struct pkcs11_slotinfo *si; | ||
494 | CK_FUNCTION_LIST *f; | ||
495 | CK_ULONG siglen = 0, bnlen; | ||
496 | CK_RV rv; | ||
497 | ECDSA_SIG *ret = NULL; | ||
498 | u_char *sig; | ||
499 | BIGNUM *r = NULL, *s = NULL; | ||
500 | |||
501 | if ((k11 = EC_KEY_get_ex_data(ec, ec_key_idx)) == NULL) { | ||
502 | ossl_error("EC_KEY_get_key_method_data failed for ec"); | ||
503 | return (NULL); | ||
504 | } | ||
505 | |||
506 | if (pkcs11_get_key(k11, CKM_ECDSA) == -1) { | ||
507 | error("pkcs11_get_key failed"); | ||
508 | return (NULL); | ||
509 | } | ||
510 | |||
511 | f = k11->provider->function_list; | ||
512 | si = &k11->provider->slotinfo[k11->slotidx]; | ||
513 | |||
514 | siglen = ECDSA_size(ec); | ||
515 | sig = xmalloc(siglen); | ||
516 | |||
517 | /* XXX handle CKR_BUFFER_TOO_SMALL */ | ||
518 | rv = f->C_Sign(si->session, (CK_BYTE *)dgst, dgst_len, sig, &siglen); | ||
519 | if (rv != CKR_OK) { | ||
520 | error("C_Sign failed: %lu", rv); | ||
521 | goto done; | ||
522 | } | ||
523 | if (siglen < 64 || siglen > 132 || siglen % 2) { | ||
524 | ossl_error("d2i_ECDSA_SIG failed"); | ||
525 | goto done; | ||
526 | } | ||
527 | bnlen = siglen/2; | ||
528 | if ((ret = ECDSA_SIG_new()) == NULL) { | ||
529 | error("ECDSA_SIG_new failed"); | ||
530 | goto done; | ||
531 | } | ||
532 | if ((r = BN_bin2bn(sig, bnlen, NULL)) == NULL || | ||
533 | (s = BN_bin2bn(sig+bnlen, bnlen, NULL)) == NULL) { | ||
534 | ossl_error("d2i_ECDSA_SIG failed"); | ||
535 | ECDSA_SIG_free(ret); | ||
536 | ret = NULL; | ||
537 | goto done; | ||
538 | } | ||
539 | if (!ECDSA_SIG_set0(ret, r, s)) { | ||
540 | error("%s: ECDSA_SIG_set0 failed", __func__); | ||
541 | ECDSA_SIG_free(ret); | ||
542 | ret = NULL; | ||
543 | goto done; | ||
544 | } | ||
545 | r = s = NULL; /* now owned by ret */ | ||
546 | /* success */ | ||
547 | done: | ||
548 | BN_free(r); | ||
549 | BN_free(s); | ||
550 | free(sig); | ||
551 | |||
552 | return (ret); | ||
553 | } | ||
554 | |||
555 | static int | ||
556 | pkcs11_ecdsa_start_wrapper(void) | ||
557 | { | ||
558 | int (*orig_sign)(int, const unsigned char *, int, unsigned char *, | ||
559 | unsigned int *, const BIGNUM *, const BIGNUM *, EC_KEY *) = NULL; | ||
560 | |||
561 | if (ec_key_method != NULL) | ||
562 | return (0); | ||
563 | ec_key_idx = EC_KEY_get_ex_new_index(0, "ssh-pkcs11-ecdsa", | ||
564 | NULL, NULL, pkcs11_k11_free); | ||
565 | if (ec_key_idx == -1) | ||
566 | return (-1); | ||
567 | ec_key_method = EC_KEY_METHOD_new(EC_KEY_OpenSSL()); | ||
568 | if (ec_key_method == NULL) | ||
569 | return (-1); | ||
570 | EC_KEY_METHOD_get_sign(ec_key_method, &orig_sign, NULL, NULL); | ||
571 | EC_KEY_METHOD_set_sign(ec_key_method, orig_sign, NULL, ecdsa_do_sign); | ||
572 | return (0); | ||
573 | } | ||
574 | |||
575 | static int | ||
576 | pkcs11_ecdsa_wrap(struct pkcs11_provider *provider, CK_ULONG slotidx, | ||
577 | CK_ATTRIBUTE *keyid_attrib, EC_KEY *ec) | ||
578 | { | ||
579 | struct pkcs11_key *k11; | ||
580 | |||
581 | if (pkcs11_ecdsa_start_wrapper() == -1) | ||
582 | return (-1); | ||
583 | |||
584 | k11 = xcalloc(1, sizeof(*k11)); | ||
585 | k11->provider = provider; | ||
586 | provider->refcount++; /* provider referenced by ECDSA key */ | ||
587 | k11->slotidx = slotidx; | ||
588 | /* identify key object on smartcard */ | ||
589 | k11->keyid_len = keyid_attrib->ulValueLen; | ||
590 | k11->keyid = xmalloc(k11->keyid_len); | ||
591 | memcpy(k11->keyid, keyid_attrib->pValue, k11->keyid_len); | ||
592 | |||
593 | EC_KEY_set_method(ec, ec_key_method); | ||
594 | EC_KEY_set_ex_data(ec, ec_key_idx, k11); | ||
595 | |||
596 | return (0); | ||
597 | } | ||
598 | #endif /* HAVE_EC_KEY_METHOD_NEW */ | ||
599 | |||
347 | /* remove trailing spaces */ | 600 | /* remove trailing spaces */ |
348 | static void | 601 | static void |
349 | rmspace(u_char *buf, size_t len) | 602 | rmspace(u_char *buf, size_t len) |
@@ -364,79 +617,66 @@ rmspace(u_char *buf, size_t len) | |||
364 | * if pin == NULL we delay login until key use | 617 | * if pin == NULL we delay login until key use |
365 | */ | 618 | */ |
366 | static int | 619 | static int |
367 | pkcs11_open_session(struct pkcs11_provider *p, CK_ULONG slotidx, char *pin) | 620 | pkcs11_open_session(struct pkcs11_provider *p, CK_ULONG slotidx, char *pin, |
621 | CK_ULONG user) | ||
368 | { | 622 | { |
369 | CK_RV rv; | 623 | struct pkcs11_slotinfo *si; |
370 | CK_FUNCTION_LIST *f; | 624 | CK_FUNCTION_LIST *f; |
625 | CK_RV rv; | ||
371 | CK_SESSION_HANDLE session; | 626 | CK_SESSION_HANDLE session; |
372 | int login_required; | 627 | int login_required, have_pinpad, ret; |
628 | char prompt[1024], *xpin = NULL; | ||
373 | 629 | ||
374 | f = p->function_list; | 630 | f = p->function_list; |
375 | login_required = p->slotinfo[slotidx].token.flags & CKF_LOGIN_REQUIRED; | 631 | si = &p->slotinfo[slotidx]; |
376 | if (pin && login_required && !strlen(pin)) { | 632 | |
633 | have_pinpad = si->token.flags & CKF_PROTECTED_AUTHENTICATION_PATH; | ||
634 | login_required = si->token.flags & CKF_LOGIN_REQUIRED; | ||
635 | |||
636 | /* fail early before opening session */ | ||
637 | if (login_required && !have_pinpad && !pkcs11_interactive && | ||
638 | (pin == NULL || strlen(pin) == 0)) { | ||
377 | error("pin required"); | 639 | error("pin required"); |
378 | return (-1); | 640 | return (-SSH_PKCS11_ERR_PIN_REQUIRED); |
379 | } | 641 | } |
380 | if ((rv = f->C_OpenSession(p->slotlist[slotidx], CKF_RW_SESSION| | 642 | if ((rv = f->C_OpenSession(p->slotlist[slotidx], CKF_RW_SESSION| |
381 | CKF_SERIAL_SESSION, NULL, NULL, &session)) | 643 | CKF_SERIAL_SESSION, NULL, NULL, &session)) != CKR_OK) { |
382 | != CKR_OK) { | ||
383 | error("C_OpenSession failed: %lu", rv); | 644 | error("C_OpenSession failed: %lu", rv); |
384 | return (-1); | 645 | return (-1); |
385 | } | 646 | } |
386 | if (login_required && pin) { | 647 | if (login_required) { |
387 | rv = f->C_Login(session, CKU_USER, | 648 | if (have_pinpad && (pin == NULL || strlen(pin) == 0)) { |
388 | (u_char *)pin, strlen(pin)); | 649 | /* defer PIN entry to the reader keypad */ |
650 | rv = f->C_Login(session, CKU_USER, NULL_PTR, 0); | ||
651 | } else { | ||
652 | if (pkcs11_interactive) { | ||
653 | snprintf(prompt, sizeof(prompt), | ||
654 | "Enter PIN for '%s': ", si->token.label); | ||
655 | if ((xpin = read_passphrase(prompt, | ||
656 | RP_ALLOW_EOF)) == NULL) { | ||
657 | debug("%s: no pin specified", | ||
658 | __func__); | ||
659 | return (-SSH_PKCS11_ERR_PIN_REQUIRED); | ||
660 | } | ||
661 | pin = xpin; | ||
662 | } | ||
663 | rv = f->C_Login(session, CKU_USER, | ||
664 | (u_char *)pin, strlen(pin)); | ||
665 | if (xpin != NULL) | ||
666 | freezero(xpin, strlen(xpin)); | ||
667 | } | ||
389 | if (rv != CKR_OK && rv != CKR_USER_ALREADY_LOGGED_IN) { | 668 | if (rv != CKR_OK && rv != CKR_USER_ALREADY_LOGGED_IN) { |
390 | error("C_Login failed: %lu", rv); | 669 | error("C_Login failed: %lu", rv); |
670 | ret = (rv == CKR_PIN_LOCKED) ? | ||
671 | -SSH_PKCS11_ERR_PIN_LOCKED : | ||
672 | -SSH_PKCS11_ERR_LOGIN_FAIL; | ||
391 | if ((rv = f->C_CloseSession(session)) != CKR_OK) | 673 | if ((rv = f->C_CloseSession(session)) != CKR_OK) |
392 | error("C_CloseSession failed: %lu", rv); | 674 | error("C_CloseSession failed: %lu", rv); |
393 | return (-1); | 675 | return (ret); |
394 | } | 676 | } |
395 | p->slotinfo[slotidx].logged_in = 1; | 677 | si->logged_in = 1; |
396 | } | 678 | } |
397 | p->slotinfo[slotidx].session = session; | 679 | si->session = session; |
398 | return (0); | ||
399 | } | ||
400 | |||
401 | /* | ||
402 | * lookup public keys for token in slot identified by slotidx, | ||
403 | * add 'wrapped' public keys to the 'keysp' array and increment nkeys. | ||
404 | * keysp points to an (possibly empty) array with *nkeys keys. | ||
405 | */ | ||
406 | static int pkcs11_fetch_keys_filter(struct pkcs11_provider *, CK_ULONG, | ||
407 | CK_ATTRIBUTE [], CK_ATTRIBUTE [3], struct sshkey ***, int *) | ||
408 | __attribute__((__bounded__(__minbytes__,4, 3 * sizeof(CK_ATTRIBUTE)))); | ||
409 | |||
410 | static int | ||
411 | pkcs11_fetch_keys(struct pkcs11_provider *p, CK_ULONG slotidx, | ||
412 | struct sshkey ***keysp, int *nkeys) | ||
413 | { | ||
414 | CK_OBJECT_CLASS pubkey_class = CKO_PUBLIC_KEY; | ||
415 | CK_OBJECT_CLASS cert_class = CKO_CERTIFICATE; | ||
416 | CK_ATTRIBUTE pubkey_filter[] = { | ||
417 | { CKA_CLASS, NULL, sizeof(pubkey_class) } | ||
418 | }; | ||
419 | CK_ATTRIBUTE cert_filter[] = { | ||
420 | { CKA_CLASS, NULL, sizeof(cert_class) } | ||
421 | }; | ||
422 | CK_ATTRIBUTE pubkey_attribs[] = { | ||
423 | { CKA_ID, NULL, 0 }, | ||
424 | { CKA_MODULUS, NULL, 0 }, | ||
425 | { CKA_PUBLIC_EXPONENT, NULL, 0 } | ||
426 | }; | ||
427 | CK_ATTRIBUTE cert_attribs[] = { | ||
428 | { CKA_ID, NULL, 0 }, | ||
429 | { CKA_SUBJECT, NULL, 0 }, | ||
430 | { CKA_VALUE, NULL, 0 } | ||
431 | }; | ||
432 | pubkey_filter[0].pValue = &pubkey_class; | ||
433 | cert_filter[0].pValue = &cert_class; | ||
434 | |||
435 | if (pkcs11_fetch_keys_filter(p, slotidx, pubkey_filter, pubkey_attribs, | ||
436 | keysp, nkeys) < 0 || | ||
437 | pkcs11_fetch_keys_filter(p, slotidx, cert_filter, cert_attribs, | ||
438 | keysp, nkeys) < 0) | ||
439 | return (-1); | ||
440 | return (0); | 680 | return (0); |
441 | } | 681 | } |
442 | 682 | ||
@@ -451,6 +691,364 @@ pkcs11_key_included(struct sshkey ***keysp, int *nkeys, struct sshkey *key) | |||
451 | return (0); | 691 | return (0); |
452 | } | 692 | } |
453 | 693 | ||
694 | #ifdef HAVE_EC_KEY_METHOD_NEW | ||
695 | static struct sshkey * | ||
696 | pkcs11_fetch_ecdsa_pubkey(struct pkcs11_provider *p, CK_ULONG slotidx, | ||
697 | CK_OBJECT_HANDLE *obj) | ||
698 | { | ||
699 | CK_ATTRIBUTE key_attr[3]; | ||
700 | CK_SESSION_HANDLE session; | ||
701 | CK_FUNCTION_LIST *f = NULL; | ||
702 | CK_RV rv; | ||
703 | ASN1_OCTET_STRING *octet = NULL; | ||
704 | EC_KEY *ec = NULL; | ||
705 | EC_GROUP *group = NULL; | ||
706 | struct sshkey *key = NULL; | ||
707 | const unsigned char *attrp = NULL; | ||
708 | int i; | ||
709 | int nid; | ||
710 | |||
711 | memset(&key_attr, 0, sizeof(key_attr)); | ||
712 | key_attr[0].type = CKA_ID; | ||
713 | key_attr[1].type = CKA_EC_POINT; | ||
714 | key_attr[2].type = CKA_EC_PARAMS; | ||
715 | |||
716 | session = p->slotinfo[slotidx].session; | ||
717 | f = p->function_list; | ||
718 | |||
719 | /* figure out size of the attributes */ | ||
720 | rv = f->C_GetAttributeValue(session, *obj, key_attr, 3); | ||
721 | if (rv != CKR_OK) { | ||
722 | error("C_GetAttributeValue failed: %lu", rv); | ||
723 | return (NULL); | ||
724 | } | ||
725 | |||
726 | /* | ||
727 | * Allow CKA_ID (always first attribute) to be empty, but | ||
728 | * ensure that none of the others are zero length. | ||
729 | * XXX assumes CKA_ID is always first. | ||
730 | */ | ||
731 | if (key_attr[1].ulValueLen == 0 || | ||
732 | key_attr[2].ulValueLen == 0) { | ||
733 | error("invalid attribute length"); | ||
734 | return (NULL); | ||
735 | } | ||
736 | |||
737 | /* allocate buffers for attributes */ | ||
738 | for (i = 0; i < 3; i++) | ||
739 | if (key_attr[i].ulValueLen > 0) | ||
740 | key_attr[i].pValue = xcalloc(1, key_attr[i].ulValueLen); | ||
741 | |||
742 | /* retrieve ID, public point and curve parameters of EC key */ | ||
743 | rv = f->C_GetAttributeValue(session, *obj, key_attr, 3); | ||
744 | if (rv != CKR_OK) { | ||
745 | error("C_GetAttributeValue failed: %lu", rv); | ||
746 | goto fail; | ||
747 | } | ||
748 | |||
749 | ec = EC_KEY_new(); | ||
750 | if (ec == NULL) { | ||
751 | error("EC_KEY_new failed"); | ||
752 | goto fail; | ||
753 | } | ||
754 | |||
755 | attrp = key_attr[2].pValue; | ||
756 | group = d2i_ECPKParameters(NULL, &attrp, key_attr[2].ulValueLen); | ||
757 | if (group == NULL) { | ||
758 | ossl_error("d2i_ECPKParameters failed"); | ||
759 | goto fail; | ||
760 | } | ||
761 | |||
762 | if (EC_KEY_set_group(ec, group) == 0) { | ||
763 | ossl_error("EC_KEY_set_group failed"); | ||
764 | goto fail; | ||
765 | } | ||
766 | |||
767 | if (key_attr[1].ulValueLen <= 2) { | ||
768 | error("CKA_EC_POINT too small"); | ||
769 | goto fail; | ||
770 | } | ||
771 | |||
772 | attrp = key_attr[1].pValue; | ||
773 | octet = d2i_ASN1_OCTET_STRING(NULL, &attrp, key_attr[1].ulValueLen); | ||
774 | if (octet == NULL) { | ||
775 | ossl_error("d2i_ASN1_OCTET_STRING failed"); | ||
776 | goto fail; | ||
777 | } | ||
778 | attrp = octet->data; | ||
779 | if (o2i_ECPublicKey(&ec, &attrp, octet->length) == NULL) { | ||
780 | ossl_error("o2i_ECPublicKey failed"); | ||
781 | goto fail; | ||
782 | } | ||
783 | |||
784 | nid = sshkey_ecdsa_key_to_nid(ec); | ||
785 | if (nid < 0) { | ||
786 | error("couldn't get curve nid"); | ||
787 | goto fail; | ||
788 | } | ||
789 | |||
790 | if (pkcs11_ecdsa_wrap(p, slotidx, &key_attr[0], ec)) | ||
791 | goto fail; | ||
792 | |||
793 | key = sshkey_new(KEY_UNSPEC); | ||
794 | if (key == NULL) { | ||
795 | error("sshkey_new failed"); | ||
796 | goto fail; | ||
797 | } | ||
798 | |||
799 | key->ecdsa = ec; | ||
800 | key->ecdsa_nid = nid; | ||
801 | key->type = KEY_ECDSA; | ||
802 | key->flags |= SSHKEY_FLAG_EXT; | ||
803 | ec = NULL; /* now owned by key */ | ||
804 | |||
805 | fail: | ||
806 | for (i = 0; i < 3; i++) | ||
807 | free(key_attr[i].pValue); | ||
808 | if (ec) | ||
809 | EC_KEY_free(ec); | ||
810 | if (group) | ||
811 | EC_GROUP_free(group); | ||
812 | if (octet) | ||
813 | ASN1_OCTET_STRING_free(octet); | ||
814 | |||
815 | return (key); | ||
816 | } | ||
817 | #endif /* HAVE_EC_KEY_METHOD_NEW */ | ||
818 | |||
819 | static struct sshkey * | ||
820 | pkcs11_fetch_rsa_pubkey(struct pkcs11_provider *p, CK_ULONG slotidx, | ||
821 | CK_OBJECT_HANDLE *obj) | ||
822 | { | ||
823 | CK_ATTRIBUTE key_attr[3]; | ||
824 | CK_SESSION_HANDLE session; | ||
825 | CK_FUNCTION_LIST *f = NULL; | ||
826 | CK_RV rv; | ||
827 | RSA *rsa = NULL; | ||
828 | BIGNUM *rsa_n, *rsa_e; | ||
829 | struct sshkey *key = NULL; | ||
830 | int i; | ||
831 | |||
832 | memset(&key_attr, 0, sizeof(key_attr)); | ||
833 | key_attr[0].type = CKA_ID; | ||
834 | key_attr[1].type = CKA_MODULUS; | ||
835 | key_attr[2].type = CKA_PUBLIC_EXPONENT; | ||
836 | |||
837 | session = p->slotinfo[slotidx].session; | ||
838 | f = p->function_list; | ||
839 | |||
840 | /* figure out size of the attributes */ | ||
841 | rv = f->C_GetAttributeValue(session, *obj, key_attr, 3); | ||
842 | if (rv != CKR_OK) { | ||
843 | error("C_GetAttributeValue failed: %lu", rv); | ||
844 | return (NULL); | ||
845 | } | ||
846 | |||
847 | /* | ||
848 | * Allow CKA_ID (always first attribute) to be empty, but | ||
849 | * ensure that none of the others are zero length. | ||
850 | * XXX assumes CKA_ID is always first. | ||
851 | */ | ||
852 | if (key_attr[1].ulValueLen == 0 || | ||
853 | key_attr[2].ulValueLen == 0) { | ||
854 | error("invalid attribute length"); | ||
855 | return (NULL); | ||
856 | } | ||
857 | |||
858 | /* allocate buffers for attributes */ | ||
859 | for (i = 0; i < 3; i++) | ||
860 | if (key_attr[i].ulValueLen > 0) | ||
861 | key_attr[i].pValue = xcalloc(1, key_attr[i].ulValueLen); | ||
862 | |||
863 | /* retrieve ID, modulus and public exponent of RSA key */ | ||
864 | rv = f->C_GetAttributeValue(session, *obj, key_attr, 3); | ||
865 | if (rv != CKR_OK) { | ||
866 | error("C_GetAttributeValue failed: %lu", rv); | ||
867 | goto fail; | ||
868 | } | ||
869 | |||
870 | rsa = RSA_new(); | ||
871 | if (rsa == NULL) { | ||
872 | error("RSA_new failed"); | ||
873 | goto fail; | ||
874 | } | ||
875 | |||
876 | rsa_n = BN_bin2bn(key_attr[1].pValue, key_attr[1].ulValueLen, NULL); | ||
877 | rsa_e = BN_bin2bn(key_attr[2].pValue, key_attr[2].ulValueLen, NULL); | ||
878 | if (rsa_n == NULL || rsa_e == NULL) { | ||
879 | error("BN_bin2bn failed"); | ||
880 | goto fail; | ||
881 | } | ||
882 | if (!RSA_set0_key(rsa, rsa_n, rsa_e, NULL)) | ||
883 | fatal("%s: set key", __func__); | ||
884 | rsa_n = rsa_e = NULL; /* transferred */ | ||
885 | |||
886 | if (pkcs11_rsa_wrap(p, slotidx, &key_attr[0], rsa)) | ||
887 | goto fail; | ||
888 | |||
889 | key = sshkey_new(KEY_UNSPEC); | ||
890 | if (key == NULL) { | ||
891 | error("sshkey_new failed"); | ||
892 | goto fail; | ||
893 | } | ||
894 | |||
895 | key->rsa = rsa; | ||
896 | key->type = KEY_RSA; | ||
897 | key->flags |= SSHKEY_FLAG_EXT; | ||
898 | rsa = NULL; /* now owned by key */ | ||
899 | |||
900 | fail: | ||
901 | for (i = 0; i < 3; i++) | ||
902 | free(key_attr[i].pValue); | ||
903 | RSA_free(rsa); | ||
904 | |||
905 | return (key); | ||
906 | } | ||
907 | |||
908 | static struct sshkey * | ||
909 | pkcs11_fetch_x509_pubkey(struct pkcs11_provider *p, CK_ULONG slotidx, | ||
910 | CK_OBJECT_HANDLE *obj) | ||
911 | { | ||
912 | CK_ATTRIBUTE cert_attr[3]; | ||
913 | CK_SESSION_HANDLE session; | ||
914 | CK_FUNCTION_LIST *f = NULL; | ||
915 | CK_RV rv; | ||
916 | X509 *x509 = NULL; | ||
917 | EVP_PKEY *evp; | ||
918 | RSA *rsa = NULL; | ||
919 | EC_KEY *ec = NULL; | ||
920 | struct sshkey *key = NULL; | ||
921 | int i; | ||
922 | #ifdef HAVE_EC_KEY_METHOD_NEW | ||
923 | int nid; | ||
924 | #endif | ||
925 | const u_char *cp; | ||
926 | |||
927 | memset(&cert_attr, 0, sizeof(cert_attr)); | ||
928 | cert_attr[0].type = CKA_ID; | ||
929 | cert_attr[1].type = CKA_SUBJECT; | ||
930 | cert_attr[2].type = CKA_VALUE; | ||
931 | |||
932 | session = p->slotinfo[slotidx].session; | ||
933 | f = p->function_list; | ||
934 | |||
935 | /* figure out size of the attributes */ | ||
936 | rv = f->C_GetAttributeValue(session, *obj, cert_attr, 3); | ||
937 | if (rv != CKR_OK) { | ||
938 | error("C_GetAttributeValue failed: %lu", rv); | ||
939 | return (NULL); | ||
940 | } | ||
941 | |||
942 | /* | ||
943 | * Allow CKA_ID (always first attribute) to be empty, but | ||
944 | * ensure that none of the others are zero length. | ||
945 | * XXX assumes CKA_ID is always first. | ||
946 | */ | ||
947 | if (cert_attr[1].ulValueLen == 0 || | ||
948 | cert_attr[2].ulValueLen == 0) { | ||
949 | error("invalid attribute length"); | ||
950 | return (NULL); | ||
951 | } | ||
952 | |||
953 | /* allocate buffers for attributes */ | ||
954 | for (i = 0; i < 3; i++) | ||
955 | if (cert_attr[i].ulValueLen > 0) | ||
956 | cert_attr[i].pValue = xcalloc(1, cert_attr[i].ulValueLen); | ||
957 | |||
958 | /* retrieve ID, subject and value of certificate */ | ||
959 | rv = f->C_GetAttributeValue(session, *obj, cert_attr, 3); | ||
960 | if (rv != CKR_OK) { | ||
961 | error("C_GetAttributeValue failed: %lu", rv); | ||
962 | goto fail; | ||
963 | } | ||
964 | |||
965 | x509 = X509_new(); | ||
966 | if (x509 == NULL) { | ||
967 | error("x509_new failed"); | ||
968 | goto fail; | ||
969 | } | ||
970 | |||
971 | cp = cert_attr[2].pValue; | ||
972 | if (d2i_X509(&x509, &cp, cert_attr[2].ulValueLen) == NULL) { | ||
973 | error("d2i_x509 failed"); | ||
974 | goto fail; | ||
975 | } | ||
976 | |||
977 | evp = X509_get_pubkey(x509); | ||
978 | if (evp == NULL) { | ||
979 | error("X509_get_pubkey failed"); | ||
980 | goto fail; | ||
981 | } | ||
982 | |||
983 | if (EVP_PKEY_base_id(evp) == EVP_PKEY_RSA) { | ||
984 | if (EVP_PKEY_get0_RSA(evp) == NULL) { | ||
985 | error("invalid x509; no rsa key"); | ||
986 | goto fail; | ||
987 | } | ||
988 | if ((rsa = RSAPublicKey_dup(EVP_PKEY_get0_RSA(evp))) == NULL) { | ||
989 | error("RSAPublicKey_dup failed"); | ||
990 | goto fail; | ||
991 | } | ||
992 | |||
993 | if (pkcs11_rsa_wrap(p, slotidx, &cert_attr[0], rsa)) | ||
994 | goto fail; | ||
995 | |||
996 | key = sshkey_new(KEY_UNSPEC); | ||
997 | if (key == NULL) { | ||
998 | error("sshkey_new failed"); | ||
999 | goto fail; | ||
1000 | } | ||
1001 | |||
1002 | key->rsa = rsa; | ||
1003 | key->type = KEY_RSA; | ||
1004 | key->flags |= SSHKEY_FLAG_EXT; | ||
1005 | rsa = NULL; /* now owned by key */ | ||
1006 | #ifdef HAVE_EC_KEY_METHOD_NEW | ||
1007 | } else if (EVP_PKEY_base_id(evp) == EVP_PKEY_EC) { | ||
1008 | if (EVP_PKEY_get0_EC_KEY(evp) == NULL) { | ||
1009 | error("invalid x509; no ec key"); | ||
1010 | goto fail; | ||
1011 | } | ||
1012 | if ((ec = EC_KEY_dup(EVP_PKEY_get0_EC_KEY(evp))) == NULL) { | ||
1013 | error("EC_KEY_dup failed"); | ||
1014 | goto fail; | ||
1015 | } | ||
1016 | |||
1017 | nid = sshkey_ecdsa_key_to_nid(ec); | ||
1018 | if (nid < 0) { | ||
1019 | error("couldn't get curve nid"); | ||
1020 | goto fail; | ||
1021 | } | ||
1022 | |||
1023 | if (pkcs11_ecdsa_wrap(p, slotidx, &cert_attr[0], ec)) | ||
1024 | goto fail; | ||
1025 | |||
1026 | key = sshkey_new(KEY_UNSPEC); | ||
1027 | if (key == NULL) { | ||
1028 | error("sshkey_new failed"); | ||
1029 | goto fail; | ||
1030 | } | ||
1031 | |||
1032 | key->ecdsa = ec; | ||
1033 | key->ecdsa_nid = nid; | ||
1034 | key->type = KEY_ECDSA; | ||
1035 | key->flags |= SSHKEY_FLAG_EXT; | ||
1036 | ec = NULL; /* now owned by key */ | ||
1037 | #endif /* HAVE_EC_KEY_METHOD_NEW */ | ||
1038 | } else | ||
1039 | error("unknown certificate key type"); | ||
1040 | |||
1041 | fail: | ||
1042 | for (i = 0; i < 3; i++) | ||
1043 | free(cert_attr[i].pValue); | ||
1044 | X509_free(x509); | ||
1045 | RSA_free(rsa); | ||
1046 | EC_KEY_free(ec); | ||
1047 | |||
1048 | return (key); | ||
1049 | } | ||
1050 | |||
1051 | #if 0 | ||
454 | static int | 1052 | static int |
455 | have_rsa_key(const RSA *rsa) | 1053 | have_rsa_key(const RSA *rsa) |
456 | { | 1054 | { |
@@ -459,140 +1057,402 @@ have_rsa_key(const RSA *rsa) | |||
459 | RSA_get0_key(rsa, &rsa_n, &rsa_e, NULL); | 1057 | RSA_get0_key(rsa, &rsa_n, &rsa_e, NULL); |
460 | return rsa_n != NULL && rsa_e != NULL; | 1058 | return rsa_n != NULL && rsa_e != NULL; |
461 | } | 1059 | } |
1060 | #endif | ||
462 | 1061 | ||
1062 | /* | ||
1063 | * lookup certificates for token in slot identified by slotidx, | ||
1064 | * add 'wrapped' public keys to the 'keysp' array and increment nkeys. | ||
1065 | * keysp points to an (possibly empty) array with *nkeys keys. | ||
1066 | */ | ||
463 | static int | 1067 | static int |
464 | pkcs11_fetch_keys_filter(struct pkcs11_provider *p, CK_ULONG slotidx, | 1068 | pkcs11_fetch_certs(struct pkcs11_provider *p, CK_ULONG slotidx, |
465 | CK_ATTRIBUTE filter[], CK_ATTRIBUTE attribs[3], | ||
466 | struct sshkey ***keysp, int *nkeys) | 1069 | struct sshkey ***keysp, int *nkeys) |
467 | { | 1070 | { |
468 | struct sshkey *key; | 1071 | struct sshkey *key = NULL; |
469 | RSA *rsa; | 1072 | CK_OBJECT_CLASS key_class; |
470 | X509 *x509; | 1073 | CK_ATTRIBUTE key_attr[1]; |
471 | EVP_PKEY *evp; | 1074 | CK_SESSION_HANDLE session; |
472 | int i; | 1075 | CK_FUNCTION_LIST *f = NULL; |
473 | const u_char *cp; | 1076 | CK_RV rv; |
474 | CK_RV rv; | 1077 | CK_OBJECT_HANDLE obj; |
475 | CK_OBJECT_HANDLE obj; | 1078 | CK_ULONG n = 0; |
476 | CK_ULONG nfound; | 1079 | int ret = -1; |
477 | CK_SESSION_HANDLE session; | 1080 | |
478 | CK_FUNCTION_LIST *f; | 1081 | memset(&key_attr, 0, sizeof(key_attr)); |
1082 | memset(&obj, 0, sizeof(obj)); | ||
1083 | |||
1084 | key_class = CKO_CERTIFICATE; | ||
1085 | key_attr[0].type = CKA_CLASS; | ||
1086 | key_attr[0].pValue = &key_class; | ||
1087 | key_attr[0].ulValueLen = sizeof(key_class); | ||
479 | 1088 | ||
480 | f = p->function_list; | ||
481 | session = p->slotinfo[slotidx].session; | 1089 | session = p->slotinfo[slotidx].session; |
482 | /* setup a filter the looks for public keys */ | 1090 | f = p->function_list; |
483 | if ((rv = f->C_FindObjectsInit(session, filter, 1)) != CKR_OK) { | 1091 | |
1092 | rv = f->C_FindObjectsInit(session, key_attr, 1); | ||
1093 | if (rv != CKR_OK) { | ||
484 | error("C_FindObjectsInit failed: %lu", rv); | 1094 | error("C_FindObjectsInit failed: %lu", rv); |
485 | return (-1); | 1095 | goto fail; |
486 | } | 1096 | } |
1097 | |||
487 | while (1) { | 1098 | while (1) { |
488 | /* XXX 3 attributes in attribs[] */ | 1099 | CK_CERTIFICATE_TYPE ck_cert_type; |
489 | for (i = 0; i < 3; i++) { | 1100 | |
490 | attribs[i].pValue = NULL; | 1101 | rv = f->C_FindObjects(session, &obj, 1, &n); |
491 | attribs[i].ulValueLen = 0; | 1102 | if (rv != CKR_OK) { |
1103 | error("C_FindObjects failed: %lu", rv); | ||
1104 | goto fail; | ||
492 | } | 1105 | } |
493 | if ((rv = f->C_FindObjects(session, &obj, 1, &nfound)) != CKR_OK | 1106 | if (n == 0) |
494 | || nfound == 0) | ||
495 | break; | 1107 | break; |
496 | /* found a key, so figure out size of the attributes */ | 1108 | |
497 | if ((rv = f->C_GetAttributeValue(session, obj, attribs, 3)) | 1109 | memset(&ck_cert_type, 0, sizeof(ck_cert_type)); |
498 | != CKR_OK) { | 1110 | memset(&key_attr, 0, sizeof(key_attr)); |
1111 | key_attr[0].type = CKA_CERTIFICATE_TYPE; | ||
1112 | key_attr[0].pValue = &ck_cert_type; | ||
1113 | key_attr[0].ulValueLen = sizeof(ck_cert_type); | ||
1114 | |||
1115 | rv = f->C_GetAttributeValue(session, obj, key_attr, 1); | ||
1116 | if (rv != CKR_OK) { | ||
499 | error("C_GetAttributeValue failed: %lu", rv); | 1117 | error("C_GetAttributeValue failed: %lu", rv); |
500 | continue; | 1118 | goto fail; |
501 | } | 1119 | } |
502 | /* | 1120 | |
503 | * Allow CKA_ID (always first attribute) to be empty, but | 1121 | switch (ck_cert_type) { |
504 | * ensure that none of the others are zero length. | 1122 | case CKC_X_509: |
505 | * XXX assumes CKA_ID is always first. | 1123 | key = pkcs11_fetch_x509_pubkey(p, slotidx, &obj); |
506 | */ | 1124 | break; |
507 | if (attribs[1].ulValueLen == 0 || | 1125 | default: |
508 | attribs[2].ulValueLen == 0) { | 1126 | /* XXX print key type? */ |
1127 | key = NULL; | ||
1128 | error("skipping unsupported certificate type"); | ||
1129 | } | ||
1130 | |||
1131 | if (key == NULL) { | ||
1132 | error("failed to fetch key"); | ||
509 | continue; | 1133 | continue; |
510 | } | 1134 | } |
511 | /* allocate buffers for attributes */ | 1135 | |
512 | for (i = 0; i < 3; i++) { | 1136 | if (pkcs11_key_included(keysp, nkeys, key)) { |
513 | if (attribs[i].ulValueLen > 0) { | 1137 | sshkey_free(key); |
514 | attribs[i].pValue = xmalloc( | 1138 | } else { |
515 | attribs[i].ulValueLen); | 1139 | /* expand key array and add key */ |
516 | } | 1140 | *keysp = xrecallocarray(*keysp, *nkeys, |
1141 | *nkeys + 1, sizeof(struct sshkey *)); | ||
1142 | (*keysp)[*nkeys] = key; | ||
1143 | *nkeys = *nkeys + 1; | ||
1144 | debug("have %d keys", *nkeys); | ||
517 | } | 1145 | } |
1146 | } | ||
518 | 1147 | ||
519 | /* | 1148 | ret = 0; |
520 | * retrieve ID, modulus and public exponent of RSA key, | 1149 | fail: |
521 | * or ID, subject and value for certificates. | 1150 | rv = f->C_FindObjectsFinal(session); |
522 | */ | 1151 | if (rv != CKR_OK) { |
523 | rsa = NULL; | 1152 | error("C_FindObjectsFinal failed: %lu", rv); |
524 | if ((rv = f->C_GetAttributeValue(session, obj, attribs, 3)) | 1153 | ret = -1; |
525 | != CKR_OK) { | 1154 | } |
1155 | |||
1156 | return (ret); | ||
1157 | } | ||
1158 | |||
1159 | /* | ||
1160 | * lookup public keys for token in slot identified by slotidx, | ||
1161 | * add 'wrapped' public keys to the 'keysp' array and increment nkeys. | ||
1162 | * keysp points to an (possibly empty) array with *nkeys keys. | ||
1163 | */ | ||
1164 | static int | ||
1165 | pkcs11_fetch_keys(struct pkcs11_provider *p, CK_ULONG slotidx, | ||
1166 | struct sshkey ***keysp, int *nkeys) | ||
1167 | { | ||
1168 | struct sshkey *key = NULL; | ||
1169 | CK_OBJECT_CLASS key_class; | ||
1170 | CK_ATTRIBUTE key_attr[1]; | ||
1171 | CK_SESSION_HANDLE session; | ||
1172 | CK_FUNCTION_LIST *f = NULL; | ||
1173 | CK_RV rv; | ||
1174 | CK_OBJECT_HANDLE obj; | ||
1175 | CK_ULONG n = 0; | ||
1176 | int ret = -1; | ||
1177 | |||
1178 | memset(&key_attr, 0, sizeof(key_attr)); | ||
1179 | memset(&obj, 0, sizeof(obj)); | ||
1180 | |||
1181 | key_class = CKO_PUBLIC_KEY; | ||
1182 | key_attr[0].type = CKA_CLASS; | ||
1183 | key_attr[0].pValue = &key_class; | ||
1184 | key_attr[0].ulValueLen = sizeof(key_class); | ||
1185 | |||
1186 | session = p->slotinfo[slotidx].session; | ||
1187 | f = p->function_list; | ||
1188 | |||
1189 | rv = f->C_FindObjectsInit(session, key_attr, 1); | ||
1190 | if (rv != CKR_OK) { | ||
1191 | error("C_FindObjectsInit failed: %lu", rv); | ||
1192 | goto fail; | ||
1193 | } | ||
1194 | |||
1195 | while (1) { | ||
1196 | CK_KEY_TYPE ck_key_type; | ||
1197 | |||
1198 | rv = f->C_FindObjects(session, &obj, 1, &n); | ||
1199 | if (rv != CKR_OK) { | ||
1200 | error("C_FindObjects failed: %lu", rv); | ||
1201 | goto fail; | ||
1202 | } | ||
1203 | if (n == 0) | ||
1204 | break; | ||
1205 | |||
1206 | memset(&ck_key_type, 0, sizeof(ck_key_type)); | ||
1207 | memset(&key_attr, 0, sizeof(key_attr)); | ||
1208 | key_attr[0].type = CKA_KEY_TYPE; | ||
1209 | key_attr[0].pValue = &ck_key_type; | ||
1210 | key_attr[0].ulValueLen = sizeof(ck_key_type); | ||
1211 | |||
1212 | rv = f->C_GetAttributeValue(session, obj, key_attr, 1); | ||
1213 | if (rv != CKR_OK) { | ||
526 | error("C_GetAttributeValue failed: %lu", rv); | 1214 | error("C_GetAttributeValue failed: %lu", rv); |
527 | } else if (attribs[1].type == CKA_MODULUS ) { | 1215 | goto fail; |
528 | if ((rsa = RSA_new()) == NULL) { | ||
529 | error("RSA_new failed"); | ||
530 | } else { | ||
531 | BIGNUM *rsa_n, *rsa_e; | ||
532 | |||
533 | rsa_n = BN_bin2bn(attribs[1].pValue, | ||
534 | attribs[1].ulValueLen, NULL); | ||
535 | rsa_e = BN_bin2bn(attribs[2].pValue, | ||
536 | attribs[2].ulValueLen, NULL); | ||
537 | if (rsa_n != NULL && rsa_e != NULL) { | ||
538 | if (!RSA_set0_key(rsa, | ||
539 | rsa_n, rsa_e, NULL)) | ||
540 | fatal("%s: set key", __func__); | ||
541 | rsa_n = rsa_e = NULL; /* transferred */ | ||
542 | } | ||
543 | BN_free(rsa_n); | ||
544 | BN_free(rsa_e); | ||
545 | } | ||
546 | } else { | ||
547 | cp = attribs[2].pValue; | ||
548 | if ((x509 = X509_new()) == NULL) { | ||
549 | error("X509_new failed"); | ||
550 | } else if (d2i_X509(&x509, &cp, attribs[2].ulValueLen) | ||
551 | == NULL) { | ||
552 | error("d2i_X509 failed"); | ||
553 | } else if ((evp = X509_get_pubkey(x509)) == NULL || | ||
554 | EVP_PKEY_base_id(evp) != EVP_PKEY_RSA || | ||
555 | EVP_PKEY_get0_RSA(evp) == NULL) { | ||
556 | debug("X509_get_pubkey failed or no rsa"); | ||
557 | } else if ((rsa = RSAPublicKey_dup( | ||
558 | EVP_PKEY_get0_RSA(evp))) == NULL) { | ||
559 | error("RSAPublicKey_dup"); | ||
560 | } | ||
561 | X509_free(x509); | ||
562 | } | 1216 | } |
563 | if (rsa && have_rsa_key(rsa) && | 1217 | |
564 | pkcs11_rsa_wrap(p, slotidx, &attribs[0], rsa) == 0) { | 1218 | switch (ck_key_type) { |
565 | if ((key = sshkey_new(KEY_UNSPEC)) == NULL) | 1219 | case CKK_RSA: |
566 | fatal("sshkey_new failed"); | 1220 | key = pkcs11_fetch_rsa_pubkey(p, slotidx, &obj); |
567 | key->rsa = rsa; | 1221 | break; |
568 | key->type = KEY_RSA; | 1222 | #ifdef HAVE_EC_KEY_METHOD_NEW |
569 | key->flags |= SSHKEY_FLAG_EXT; | 1223 | case CKK_ECDSA: |
570 | if (pkcs11_key_included(keysp, nkeys, key)) { | 1224 | key = pkcs11_fetch_ecdsa_pubkey(p, slotidx, &obj); |
571 | sshkey_free(key); | 1225 | break; |
572 | } else { | 1226 | #endif /* HAVE_EC_KEY_METHOD_NEW */ |
573 | /* expand key array and add key */ | 1227 | default: |
574 | *keysp = xrecallocarray(*keysp, *nkeys, | 1228 | /* XXX print key type? */ |
575 | *nkeys + 1, sizeof(struct sshkey *)); | 1229 | key = NULL; |
576 | (*keysp)[*nkeys] = key; | 1230 | error("skipping unsupported key type"); |
577 | *nkeys = *nkeys + 1; | 1231 | } |
578 | debug("have %d keys", *nkeys); | 1232 | |
579 | } | 1233 | if (key == NULL) { |
580 | } else if (rsa) { | 1234 | error("failed to fetch key"); |
581 | RSA_free(rsa); | 1235 | continue; |
1236 | } | ||
1237 | |||
1238 | if (pkcs11_key_included(keysp, nkeys, key)) { | ||
1239 | sshkey_free(key); | ||
1240 | } else { | ||
1241 | /* expand key array and add key */ | ||
1242 | *keysp = xrecallocarray(*keysp, *nkeys, | ||
1243 | *nkeys + 1, sizeof(struct sshkey *)); | ||
1244 | (*keysp)[*nkeys] = key; | ||
1245 | *nkeys = *nkeys + 1; | ||
1246 | debug("have %d keys", *nkeys); | ||
582 | } | 1247 | } |
583 | for (i = 0; i < 3; i++) | ||
584 | free(attribs[i].pValue); | ||
585 | } | 1248 | } |
586 | if ((rv = f->C_FindObjectsFinal(session)) != CKR_OK) | 1249 | |
1250 | ret = 0; | ||
1251 | fail: | ||
1252 | rv = f->C_FindObjectsFinal(session); | ||
1253 | if (rv != CKR_OK) { | ||
587 | error("C_FindObjectsFinal failed: %lu", rv); | 1254 | error("C_FindObjectsFinal failed: %lu", rv); |
588 | return (0); | 1255 | ret = -1; |
1256 | } | ||
1257 | |||
1258 | return (ret); | ||
589 | } | 1259 | } |
590 | 1260 | ||
591 | /* register a new provider, fails if provider already exists */ | 1261 | #ifdef WITH_PKCS11_KEYGEN |
592 | int | 1262 | #define FILL_ATTR(attr, idx, typ, val, len) \ |
593 | pkcs11_add_provider(char *provider_id, char *pin, struct sshkey ***keyp) | 1263 | { (attr[idx]).type=(typ); (attr[idx]).pValue=(val); (attr[idx]).ulValueLen=len; idx++; } |
1264 | |||
1265 | static struct sshkey * | ||
1266 | pkcs11_rsa_generate_private_key(struct pkcs11_provider *p, CK_ULONG slotidx, | ||
1267 | char *label, CK_ULONG bits, CK_BYTE keyid, u_int32_t *err) | ||
1268 | { | ||
1269 | struct pkcs11_slotinfo *si; | ||
1270 | char *plabel = label ? label : ""; | ||
1271 | int npub = 0, npriv = 0; | ||
1272 | CK_RV rv; | ||
1273 | CK_FUNCTION_LIST *f; | ||
1274 | CK_SESSION_HANDLE session; | ||
1275 | CK_BBOOL true_val = CK_TRUE, false_val = CK_FALSE; | ||
1276 | CK_OBJECT_HANDLE pubKey, privKey; | ||
1277 | CK_ATTRIBUTE tpub[16], tpriv[16]; | ||
1278 | CK_MECHANISM mech = { | ||
1279 | CKM_RSA_PKCS_KEY_PAIR_GEN, NULL_PTR, 0 | ||
1280 | }; | ||
1281 | CK_BYTE pubExponent[] = { | ||
1282 | 0x01, 0x00, 0x01 /* RSA_F4 in bytes */ | ||
1283 | }; | ||
1284 | pubkey_filter[0].pValue = &pubkey_class; | ||
1285 | cert_filter[0].pValue = &cert_class; | ||
1286 | |||
1287 | *err = 0; | ||
1288 | |||
1289 | FILL_ATTR(tpub, npub, CKA_TOKEN, &true_val, sizeof(true_val)); | ||
1290 | FILL_ATTR(tpub, npub, CKA_LABEL, plabel, strlen(plabel)); | ||
1291 | FILL_ATTR(tpub, npub, CKA_ENCRYPT, &false_val, sizeof(false_val)); | ||
1292 | FILL_ATTR(tpub, npub, CKA_VERIFY, &true_val, sizeof(true_val)); | ||
1293 | FILL_ATTR(tpub, npub, CKA_VERIFY_RECOVER, &false_val, | ||
1294 | sizeof(false_val)); | ||
1295 | FILL_ATTR(tpub, npub, CKA_WRAP, &false_val, sizeof(false_val)); | ||
1296 | FILL_ATTR(tpub, npub, CKA_DERIVE, &false_val, sizeof(false_val)); | ||
1297 | FILL_ATTR(tpub, npub, CKA_MODULUS_BITS, &bits, sizeof(bits)); | ||
1298 | FILL_ATTR(tpub, npub, CKA_PUBLIC_EXPONENT, pubExponent, | ||
1299 | sizeof(pubExponent)); | ||
1300 | FILL_ATTR(tpub, npub, CKA_ID, &keyid, sizeof(keyid)); | ||
1301 | |||
1302 | FILL_ATTR(tpriv, npriv, CKA_TOKEN, &true_val, sizeof(true_val)); | ||
1303 | FILL_ATTR(tpriv, npriv, CKA_LABEL, plabel, strlen(plabel)); | ||
1304 | FILL_ATTR(tpriv, npriv, CKA_PRIVATE, &true_val, sizeof(true_val)); | ||
1305 | FILL_ATTR(tpriv, npriv, CKA_SENSITIVE, &true_val, sizeof(true_val)); | ||
1306 | FILL_ATTR(tpriv, npriv, CKA_DECRYPT, &false_val, sizeof(false_val)); | ||
1307 | FILL_ATTR(tpriv, npriv, CKA_SIGN, &true_val, sizeof(true_val)); | ||
1308 | FILL_ATTR(tpriv, npriv, CKA_SIGN_RECOVER, &false_val, | ||
1309 | sizeof(false_val)); | ||
1310 | FILL_ATTR(tpriv, npriv, CKA_UNWRAP, &false_val, sizeof(false_val)); | ||
1311 | FILL_ATTR(tpriv, npriv, CKA_DERIVE, &false_val, sizeof(false_val)); | ||
1312 | FILL_ATTR(tpriv, npriv, CKA_ID, &keyid, sizeof(keyid)); | ||
1313 | |||
1314 | f = p->function_list; | ||
1315 | si = &p->slotinfo[slotidx]; | ||
1316 | session = si->session; | ||
1317 | |||
1318 | if ((rv = f->C_GenerateKeyPair(session, &mech, tpub, npub, tpriv, npriv, | ||
1319 | &pubKey, &privKey)) != CKR_OK) { | ||
1320 | error("%s: key generation failed: error 0x%lx", __func__, rv); | ||
1321 | *err = rv; | ||
1322 | return NULL; | ||
1323 | } | ||
1324 | |||
1325 | return pkcs11_fetch_rsa_pubkey(p, slotidx, &pubKey); | ||
1326 | } | ||
1327 | |||
1328 | static int | ||
1329 | pkcs11_decode_hex(const char *hex, unsigned char **dest, size_t *rlen) | ||
1330 | { | ||
1331 | size_t i, len; | ||
1332 | char ptr[3]; | ||
1333 | |||
1334 | if (dest) | ||
1335 | *dest = NULL; | ||
1336 | if (rlen) | ||
1337 | *rlen = 0; | ||
1338 | |||
1339 | if ((len = strlen(hex)) % 2) | ||
1340 | return -1; | ||
1341 | len /= 2; | ||
1342 | |||
1343 | *dest = xmalloc(len); | ||
1344 | |||
1345 | ptr[2] = '\0'; | ||
1346 | for (i = 0; i < len; i++) { | ||
1347 | ptr[0] = hex[2 * i]; | ||
1348 | ptr[1] = hex[(2 * i) + 1]; | ||
1349 | if (!isxdigit(ptr[0]) || !isxdigit(ptr[1])) | ||
1350 | return -1; | ||
1351 | (*dest)[i] = (unsigned char)strtoul(ptr, NULL, 16); | ||
1352 | } | ||
1353 | |||
1354 | if (rlen) | ||
1355 | *rlen = len; | ||
1356 | |||
1357 | return 0; | ||
1358 | } | ||
1359 | |||
1360 | static struct ec_curve_info { | ||
1361 | const char *name; | ||
1362 | const char *oid; | ||
1363 | const char *oid_encoded; | ||
1364 | size_t size; | ||
1365 | } ec_curve_infos[] = { | ||
1366 | {"prime256v1", "1.2.840.10045.3.1.7", "06082A8648CE3D030107", 256}, | ||
1367 | {"secp384r1", "1.3.132.0.34", "06052B81040022", 384}, | ||
1368 | {"secp521r1", "1.3.132.0.35", "06052B81040023", 521}, | ||
1369 | {NULL, NULL, NULL, 0}, | ||
1370 | }; | ||
1371 | |||
1372 | static struct sshkey * | ||
1373 | pkcs11_ecdsa_generate_private_key(struct pkcs11_provider *p, CK_ULONG slotidx, | ||
1374 | char *label, CK_ULONG bits, CK_BYTE keyid, u_int32_t *err) | ||
1375 | { | ||
1376 | struct pkcs11_slotinfo *si; | ||
1377 | char *plabel = label ? label : ""; | ||
1378 | int i; | ||
1379 | size_t ecparams_size; | ||
1380 | unsigned char *ecparams = NULL; | ||
1381 | int npub = 0, npriv = 0; | ||
1382 | CK_RV rv; | ||
1383 | CK_FUNCTION_LIST *f; | ||
1384 | CK_SESSION_HANDLE session; | ||
1385 | CK_BBOOL true_val = CK_TRUE, false_val = CK_FALSE; | ||
1386 | CK_OBJECT_HANDLE pubKey, privKey; | ||
1387 | CK_MECHANISM mech = { | ||
1388 | CKM_EC_KEY_PAIR_GEN, NULL_PTR, 0 | ||
1389 | }; | ||
1390 | CK_ATTRIBUTE tpub[16], tpriv[16]; | ||
1391 | |||
1392 | *err = 0; | ||
1393 | |||
1394 | for (i = 0; ec_curve_infos[i].name; i++) { | ||
1395 | if (ec_curve_infos[i].size == bits) | ||
1396 | break; | ||
1397 | } | ||
1398 | if (!ec_curve_infos[i].name) { | ||
1399 | error("%s: invalid key size %lu", __func__, bits); | ||
1400 | return NULL; | ||
1401 | } | ||
1402 | if (pkcs11_decode_hex(ec_curve_infos[i].oid_encoded, &ecparams, | ||
1403 | &ecparams_size) == -1) { | ||
1404 | error("%s: invalid oid", __func__); | ||
1405 | return NULL; | ||
1406 | } | ||
1407 | |||
1408 | FILL_ATTR(tpub, npub, CKA_TOKEN, &true_val, sizeof(true_val)); | ||
1409 | FILL_ATTR(tpub, npub, CKA_LABEL, plabel, strlen(plabel)); | ||
1410 | FILL_ATTR(tpub, npub, CKA_ENCRYPT, &false_val, sizeof(false_val)); | ||
1411 | FILL_ATTR(tpub, npub, CKA_VERIFY, &true_val, sizeof(true_val)); | ||
1412 | FILL_ATTR(tpub, npub, CKA_VERIFY_RECOVER, &false_val, | ||
1413 | sizeof(false_val)); | ||
1414 | FILL_ATTR(tpub, npub, CKA_WRAP, &false_val, sizeof(false_val)); | ||
1415 | FILL_ATTR(tpub, npub, CKA_DERIVE, &false_val, sizeof(false_val)); | ||
1416 | FILL_ATTR(tpub, npub, CKA_EC_PARAMS, ecparams, ecparams_size); | ||
1417 | FILL_ATTR(tpub, npub, CKA_ID, &keyid, sizeof(keyid)); | ||
1418 | |||
1419 | FILL_ATTR(tpriv, npriv, CKA_TOKEN, &true_val, sizeof(true_val)); | ||
1420 | FILL_ATTR(tpriv, npriv, CKA_LABEL, plabel, strlen(plabel)); | ||
1421 | FILL_ATTR(tpriv, npriv, CKA_PRIVATE, &true_val, sizeof(true_val)); | ||
1422 | FILL_ATTR(tpriv, npriv, CKA_SENSITIVE, &true_val, sizeof(true_val)); | ||
1423 | FILL_ATTR(tpriv, npriv, CKA_DECRYPT, &false_val, sizeof(false_val)); | ||
1424 | FILL_ATTR(tpriv, npriv, CKA_SIGN, &true_val, sizeof(true_val)); | ||
1425 | FILL_ATTR(tpriv, npriv, CKA_SIGN_RECOVER, &false_val, | ||
1426 | sizeof(false_val)); | ||
1427 | FILL_ATTR(tpriv, npriv, CKA_UNWRAP, &false_val, sizeof(false_val)); | ||
1428 | FILL_ATTR(tpriv, npriv, CKA_DERIVE, &false_val, sizeof(false_val)); | ||
1429 | FILL_ATTR(tpriv, npriv, CKA_ID, &keyid, sizeof(keyid)); | ||
1430 | |||
1431 | f = p->function_list; | ||
1432 | si = &p->slotinfo[slotidx]; | ||
1433 | session = si->session; | ||
1434 | |||
1435 | if ((rv = f->C_GenerateKeyPair(session, &mech, tpub, npub, tpriv, npriv, | ||
1436 | &pubKey, &privKey)) != CKR_OK) { | ||
1437 | error("%s: key generation failed: error 0x%lx", __func__, rv); | ||
1438 | *err = rv; | ||
1439 | return NULL; | ||
1440 | } | ||
1441 | |||
1442 | return pkcs11_fetch_ecdsa_pubkey(p, slotidx, &pubKey); | ||
1443 | } | ||
1444 | #endif /* WITH_PKCS11_KEYGEN */ | ||
1445 | |||
1446 | /* | ||
1447 | * register a new provider, fails if provider already exists. if | ||
1448 | * keyp is provided, fetch keys. | ||
1449 | */ | ||
1450 | static int | ||
1451 | pkcs11_register_provider(char *provider_id, char *pin, struct sshkey ***keyp, | ||
1452 | struct pkcs11_provider **providerp, CK_ULONG user) | ||
594 | { | 1453 | { |
595 | int nkeys, need_finalize = 0; | 1454 | int nkeys, need_finalize = 0; |
1455 | int ret = -1; | ||
596 | struct pkcs11_provider *p = NULL; | 1456 | struct pkcs11_provider *p = NULL; |
597 | void *handle = NULL; | 1457 | void *handle = NULL; |
598 | CK_RV (*getfunctionlist)(CK_FUNCTION_LIST **); | 1458 | CK_RV (*getfunctionlist)(CK_FUNCTION_LIST **); |
@@ -601,13 +1461,19 @@ pkcs11_add_provider(char *provider_id, char *pin, struct sshkey ***keyp) | |||
601 | CK_TOKEN_INFO *token; | 1461 | CK_TOKEN_INFO *token; |
602 | CK_ULONG i; | 1462 | CK_ULONG i; |
603 | 1463 | ||
604 | *keyp = NULL; | 1464 | if (providerp == NULL) |
1465 | goto fail; | ||
1466 | *providerp = NULL; | ||
1467 | |||
1468 | if (keyp != NULL) | ||
1469 | *keyp = NULL; | ||
1470 | |||
605 | if (pkcs11_provider_lookup(provider_id) != NULL) { | 1471 | if (pkcs11_provider_lookup(provider_id) != NULL) { |
606 | debug("%s: provider already registered: %s", | 1472 | debug("%s: provider already registered: %s", |
607 | __func__, provider_id); | 1473 | __func__, provider_id); |
608 | goto fail; | 1474 | goto fail; |
609 | } | 1475 | } |
610 | /* open shared pkcs11-libarary */ | 1476 | /* open shared pkcs11-library */ |
611 | if ((handle = dlopen(provider_id, RTLD_NOW)) == NULL) { | 1477 | if ((handle = dlopen(provider_id, RTLD_NOW)) == NULL) { |
612 | error("dlopen %s failed: %s", provider_id, dlerror()); | 1478 | error("dlopen %s failed: %s", provider_id, dlerror()); |
613 | goto fail; | 1479 | goto fail; |
@@ -653,8 +1519,9 @@ pkcs11_add_provider(char *provider_id, char *pin, struct sshkey ***keyp) | |||
653 | goto fail; | 1519 | goto fail; |
654 | } | 1520 | } |
655 | if (p->nslots == 0) { | 1521 | if (p->nslots == 0) { |
656 | debug("%s: provider %s returned no slots", __func__, | 1522 | error("%s: provider %s returned no slots", __func__, |
657 | provider_id); | 1523 | provider_id); |
1524 | ret = -SSH_PKCS11_ERR_NO_SLOTS; | ||
658 | goto fail; | 1525 | goto fail; |
659 | } | 1526 | } |
660 | p->slotlist = xcalloc(p->nslots, sizeof(CK_SLOT_ID)); | 1527 | p->slotlist = xcalloc(p->nslots, sizeof(CK_SLOT_ID)); |
@@ -690,43 +1557,251 @@ pkcs11_add_provider(char *provider_id, char *pin, struct sshkey ***keyp) | |||
690 | provider_id, (unsigned long)i, | 1557 | provider_id, (unsigned long)i, |
691 | token->label, token->manufacturerID, token->model, | 1558 | token->label, token->manufacturerID, token->model, |
692 | token->serialNumber, token->flags); | 1559 | token->serialNumber, token->flags); |
693 | /* open session, login with pin and retrieve public keys */ | 1560 | /* |
694 | if (pkcs11_open_session(p, i, pin) == 0) | 1561 | * open session, login with pin and retrieve public |
1562 | * keys (if keyp is provided) | ||
1563 | */ | ||
1564 | if ((ret = pkcs11_open_session(p, i, pin, user)) == 0) { | ||
1565 | if (keyp == NULL) | ||
1566 | continue; | ||
695 | pkcs11_fetch_keys(p, i, keyp, &nkeys); | 1567 | pkcs11_fetch_keys(p, i, keyp, &nkeys); |
1568 | pkcs11_fetch_certs(p, i, keyp, &nkeys); | ||
1569 | } | ||
696 | } | 1570 | } |
697 | if (nkeys > 0) { | 1571 | |
698 | TAILQ_INSERT_TAIL(&pkcs11_providers, p, next); | 1572 | /* now owned by caller */ |
699 | p->refcount++; /* add to provider list */ | 1573 | *providerp = p; |
700 | return (nkeys); | 1574 | |
701 | } | 1575 | TAILQ_INSERT_TAIL(&pkcs11_providers, p, next); |
702 | debug("%s: provider %s returned no keys", __func__, provider_id); | 1576 | p->refcount++; /* add to provider list */ |
703 | /* don't add the provider, since it does not have any keys */ | 1577 | |
1578 | return (nkeys); | ||
704 | fail: | 1579 | fail: |
705 | if (need_finalize && (rv = f->C_Finalize(NULL)) != CKR_OK) | 1580 | if (need_finalize && (rv = f->C_Finalize(NULL)) != CKR_OK) |
706 | error("C_Finalize for provider %s failed: %lu", | 1581 | error("C_Finalize for provider %s failed: %lu", |
707 | provider_id, rv); | 1582 | provider_id, rv); |
708 | if (p) { | 1583 | if (p) { |
1584 | free(p->name); | ||
709 | free(p->slotlist); | 1585 | free(p->slotlist); |
710 | free(p->slotinfo); | 1586 | free(p->slotinfo); |
711 | free(p); | 1587 | free(p); |
712 | } | 1588 | } |
713 | if (handle) | 1589 | if (handle) |
714 | dlclose(handle); | 1590 | dlclose(handle); |
715 | return (-1); | 1591 | return (ret); |
1592 | } | ||
1593 | |||
1594 | /* | ||
1595 | * register a new provider and get number of keys hold by the token, | ||
1596 | * fails if provider already exists | ||
1597 | */ | ||
1598 | int | ||
1599 | pkcs11_add_provider(char *provider_id, char *pin, struct sshkey ***keyp) | ||
1600 | { | ||
1601 | struct pkcs11_provider *p = NULL; | ||
1602 | int nkeys; | ||
1603 | |||
1604 | nkeys = pkcs11_register_provider(provider_id, pin, keyp, &p, CKU_USER); | ||
1605 | |||
1606 | /* no keys found or some other error, de-register provider */ | ||
1607 | if (nkeys <= 0 && p != NULL) { | ||
1608 | TAILQ_REMOVE(&pkcs11_providers, p, next); | ||
1609 | pkcs11_provider_finalize(p); | ||
1610 | pkcs11_provider_unref(p); | ||
1611 | } | ||
1612 | if (nkeys == 0) | ||
1613 | debug("%s: provider %s returned no keys", __func__, | ||
1614 | provider_id); | ||
1615 | |||
1616 | return (nkeys); | ||
716 | } | 1617 | } |
717 | 1618 | ||
718 | #else | 1619 | #ifdef WITH_PKCS11_KEYGEN |
1620 | struct sshkey * | ||
1621 | pkcs11_gakp(char *provider_id, char *pin, unsigned int slotidx, char *label, | ||
1622 | unsigned int type, unsigned int bits, unsigned char keyid, u_int32_t *err) | ||
1623 | { | ||
1624 | struct pkcs11_provider *p = NULL; | ||
1625 | struct pkcs11_slotinfo *si; | ||
1626 | CK_FUNCTION_LIST *f; | ||
1627 | CK_SESSION_HANDLE session; | ||
1628 | struct sshkey *k = NULL; | ||
1629 | int ret = -1, reset_pin = 0, reset_provider = 0; | ||
1630 | CK_RV rv; | ||
1631 | |||
1632 | *err = 0; | ||
719 | 1633 | ||
1634 | if ((p = pkcs11_provider_lookup(provider_id)) != NULL) | ||
1635 | debug("%s: provider \"%s\" available", __func__, provider_id); | ||
1636 | else if ((ret = pkcs11_register_provider(provider_id, pin, NULL, &p, | ||
1637 | CKU_SO)) < 0) { | ||
1638 | debug("%s: could not register provider %s", __func__, | ||
1639 | provider_id); | ||
1640 | goto out; | ||
1641 | } else | ||
1642 | reset_provider = 1; | ||
1643 | |||
1644 | f = p->function_list; | ||
1645 | si = &p->slotinfo[slotidx]; | ||
1646 | session = si->session; | ||
1647 | |||
1648 | if ((rv = f->C_SetOperationState(session , pin, strlen(pin), | ||
1649 | CK_INVALID_HANDLE, CK_INVALID_HANDLE)) != CKR_OK) { | ||
1650 | debug("%s: could not supply SO pin: %lu", __func__, rv); | ||
1651 | reset_pin = 0; | ||
1652 | } else | ||
1653 | reset_pin = 1; | ||
1654 | |||
1655 | switch (type) { | ||
1656 | case KEY_RSA: | ||
1657 | if ((k = pkcs11_rsa_generate_private_key(p, slotidx, label, | ||
1658 | bits, keyid, err)) == NULL) { | ||
1659 | debug("%s: failed to generate RSA key", __func__); | ||
1660 | goto out; | ||
1661 | } | ||
1662 | break; | ||
1663 | case KEY_ECDSA: | ||
1664 | if ((k = pkcs11_ecdsa_generate_private_key(p, slotidx, label, | ||
1665 | bits, keyid, err)) == NULL) { | ||
1666 | debug("%s: failed to generate ECDSA key", __func__); | ||
1667 | goto out; | ||
1668 | } | ||
1669 | break; | ||
1670 | default: | ||
1671 | *err = SSH_PKCS11_ERR_GENERIC; | ||
1672 | debug("%s: unknown type %d", __func__, type); | ||
1673 | goto out; | ||
1674 | } | ||
1675 | |||
1676 | out: | ||
1677 | if (reset_pin) | ||
1678 | f->C_SetOperationState(session , NULL, 0, CK_INVALID_HANDLE, | ||
1679 | CK_INVALID_HANDLE); | ||
1680 | |||
1681 | if (reset_provider) | ||
1682 | pkcs11_del_provider(provider_id); | ||
1683 | |||
1684 | return (k); | ||
1685 | } | ||
1686 | |||
1687 | struct sshkey * | ||
1688 | pkcs11_destroy_keypair(char *provider_id, char *pin, unsigned long slotidx, | ||
1689 | unsigned char keyid, u_int32_t *err) | ||
1690 | { | ||
1691 | struct pkcs11_provider *p = NULL; | ||
1692 | struct pkcs11_slotinfo *si; | ||
1693 | struct sshkey *k = NULL; | ||
1694 | int reset_pin = 0, reset_provider = 0; | ||
1695 | CK_ULONG nattrs; | ||
1696 | CK_FUNCTION_LIST *f; | ||
1697 | CK_SESSION_HANDLE session; | ||
1698 | CK_ATTRIBUTE attrs[16]; | ||
1699 | CK_OBJECT_CLASS key_class; | ||
1700 | CK_KEY_TYPE key_type; | ||
1701 | CK_OBJECT_HANDLE obj = CK_INVALID_HANDLE; | ||
1702 | CK_RV rv; | ||
1703 | |||
1704 | *err = 0; | ||
1705 | |||
1706 | if ((p = pkcs11_provider_lookup(provider_id)) != NULL) { | ||
1707 | debug("%s: using provider \"%s\"", __func__, provider_id); | ||
1708 | } else if (pkcs11_register_provider(provider_id, pin, NULL, &p, | ||
1709 | CKU_SO) < 0) { | ||
1710 | debug("%s: could not register provider %s", __func__, | ||
1711 | provider_id); | ||
1712 | goto out; | ||
1713 | } else | ||
1714 | reset_provider = 1; | ||
1715 | |||
1716 | f = p->function_list; | ||
1717 | si = &p->slotinfo[slotidx]; | ||
1718 | session = si->session; | ||
1719 | |||
1720 | if ((rv = f->C_SetOperationState(session , pin, strlen(pin), | ||
1721 | CK_INVALID_HANDLE, CK_INVALID_HANDLE)) != CKR_OK) { | ||
1722 | debug("%s: could not supply SO pin: %lu", __func__, rv); | ||
1723 | reset_pin = 0; | ||
1724 | } else | ||
1725 | reset_pin = 1; | ||
1726 | |||
1727 | /* private key */ | ||
1728 | nattrs = 0; | ||
1729 | key_class = CKO_PRIVATE_KEY; | ||
1730 | FILL_ATTR(attrs, nattrs, CKA_CLASS, &key_class, sizeof(key_class)); | ||
1731 | FILL_ATTR(attrs, nattrs, CKA_ID, &keyid, sizeof(keyid)); | ||
1732 | |||
1733 | if (pkcs11_find(p, slotidx, attrs, nattrs, &obj) == 0 && | ||
1734 | obj != CK_INVALID_HANDLE) { | ||
1735 | if ((rv = f->C_DestroyObject(session, obj)) != CKR_OK) { | ||
1736 | debug("%s: could not destroy private key 0x%hhx", | ||
1737 | __func__, keyid); | ||
1738 | *err = rv; | ||
1739 | goto out; | ||
1740 | } | ||
1741 | } | ||
1742 | |||
1743 | /* public key */ | ||
1744 | nattrs = 0; | ||
1745 | key_class = CKO_PUBLIC_KEY; | ||
1746 | FILL_ATTR(attrs, nattrs, CKA_CLASS, &key_class, sizeof(key_class)); | ||
1747 | FILL_ATTR(attrs, nattrs, CKA_ID, &keyid, sizeof(keyid)); | ||
1748 | |||
1749 | if (pkcs11_find(p, slotidx, attrs, nattrs, &obj) == 0 && | ||
1750 | obj != CK_INVALID_HANDLE) { | ||
1751 | |||
1752 | /* get key type */ | ||
1753 | nattrs = 0; | ||
1754 | FILL_ATTR(attrs, nattrs, CKA_KEY_TYPE, &key_type, | ||
1755 | sizeof(key_type)); | ||
1756 | rv = f->C_GetAttributeValue(session, obj, attrs, nattrs); | ||
1757 | if (rv != CKR_OK) { | ||
1758 | debug("%s: could not get key type of public key 0x%hhx", | ||
1759 | __func__, keyid); | ||
1760 | *err = rv; | ||
1761 | key_type = -1; | ||
1762 | } | ||
1763 | if (key_type == CKK_RSA) | ||
1764 | k = pkcs11_fetch_rsa_pubkey(p, slotidx, &obj); | ||
1765 | else if (key_type == CKK_ECDSA) | ||
1766 | k = pkcs11_fetch_ecdsa_pubkey(p, slotidx, &obj); | ||
1767 | |||
1768 | if ((rv = f->C_DestroyObject(session, obj)) != CKR_OK) { | ||
1769 | debug("%s: could not destroy public key 0x%hhx", | ||
1770 | __func__, keyid); | ||
1771 | *err = rv; | ||
1772 | goto out; | ||
1773 | } | ||
1774 | } | ||
1775 | |||
1776 | out: | ||
1777 | if (reset_pin) | ||
1778 | f->C_SetOperationState(session , NULL, 0, CK_INVALID_HANDLE, | ||
1779 | CK_INVALID_HANDLE); | ||
1780 | |||
1781 | if (reset_provider) | ||
1782 | pkcs11_del_provider(provider_id); | ||
1783 | |||
1784 | return (k); | ||
1785 | } | ||
1786 | #endif /* WITH_PKCS11_KEYGEN */ | ||
1787 | #else /* ENABLE_PKCS11 */ | ||
720 | int | 1788 | int |
721 | pkcs11_init(int interactive) | 1789 | pkcs11_init(int interactive) |
722 | { | 1790 | { |
723 | return (0); | 1791 | error("%s: dlopen() not supported", __func__); |
1792 | return (-1); | ||
1793 | } | ||
1794 | |||
1795 | int | ||
1796 | pkcs11_add_provider(char *provider_id, char *pin, struct sshkey ***keyp) | ||
1797 | { | ||
1798 | error("%s: dlopen() not supported", __func__); | ||
1799 | return (-1); | ||
724 | } | 1800 | } |
725 | 1801 | ||
726 | void | 1802 | void |
727 | pkcs11_terminate(void) | 1803 | pkcs11_terminate(void) |
728 | { | 1804 | { |
729 | return; | 1805 | error("%s: dlopen() not supported", __func__); |
730 | } | 1806 | } |
731 | |||
732 | #endif /* ENABLE_PKCS11 */ | 1807 | #endif /* ENABLE_PKCS11 */ |
diff --git a/ssh-pkcs11.h b/ssh-pkcs11.h index 0ced74f29..b9038450d 100644 --- a/ssh-pkcs11.h +++ b/ssh-pkcs11.h | |||
@@ -1,4 +1,4 @@ | |||
1 | /* $OpenBSD: ssh-pkcs11.h,v 1.4 2015/01/15 09:40:00 djm Exp $ */ | 1 | /* $OpenBSD: ssh-pkcs11.h,v 1.5 2019/01/20 22:51:37 djm Exp $ */ |
2 | /* | 2 | /* |
3 | * Copyright (c) 2010 Markus Friedl. All rights reserved. | 3 | * Copyright (c) 2010 Markus Friedl. All rights reserved. |
4 | * | 4 | * |
@@ -14,10 +14,26 @@ | |||
14 | * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF | 14 | * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF |
15 | * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. | 15 | * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. |
16 | */ | 16 | */ |
17 | |||
18 | /* Errors for pkcs11_add_provider() */ | ||
19 | #define SSH_PKCS11_ERR_GENERIC 1 | ||
20 | #define SSH_PKCS11_ERR_LOGIN_FAIL 2 | ||
21 | #define SSH_PKCS11_ERR_NO_SLOTS 3 | ||
22 | #define SSH_PKCS11_ERR_PIN_REQUIRED 4 | ||
23 | #define SSH_PKCS11_ERR_PIN_LOCKED 5 | ||
24 | |||
17 | int pkcs11_init(int); | 25 | int pkcs11_init(int); |
18 | void pkcs11_terminate(void); | 26 | void pkcs11_terminate(void); |
19 | int pkcs11_add_provider(char *, char *, struct sshkey ***); | 27 | int pkcs11_add_provider(char *, char *, struct sshkey ***); |
20 | int pkcs11_del_provider(char *); | 28 | int pkcs11_del_provider(char *); |
29 | #ifdef WITH_PKCS11_KEYGEN | ||
30 | struct sshkey * | ||
31 | pkcs11_gakp(char *, char *, unsigned int, char *, unsigned int, | ||
32 | unsigned int, unsigned char, u_int32_t *); | ||
33 | struct sshkey * | ||
34 | pkcs11_destroy_keypair(char *, char *, unsigned long, unsigned char, | ||
35 | u_int32_t *); | ||
36 | #endif | ||
21 | 37 | ||
22 | #if !defined(WITH_OPENSSL) && defined(ENABLE_PKCS11) | 38 | #if !defined(WITH_OPENSSL) && defined(ENABLE_PKCS11) |
23 | #undef ENABLE_PKCS11 | 39 | #undef ENABLE_PKCS11 |
@@ -130,7 +130,7 @@ DESCRIPTION | |||
130 | 130 | ||
131 | -I pkcs11 | 131 | -I pkcs11 |
132 | Specify the PKCS#11 shared library ssh should use to communicate | 132 | Specify the PKCS#11 shared library ssh should use to communicate |
133 | with a PKCS#11 token providing the user's private RSA key. | 133 | with a PKCS#11 token providing keys for user authentication. |
134 | 134 | ||
135 | -i identity_file | 135 | -i identity_file |
136 | Selects a file from which the identity (private key) for public | 136 | Selects a file from which the identity (private key) for public |
@@ -150,6 +150,10 @@ DESCRIPTION | |||
150 | TCP forwarding to the ultimate destination from there. Multiple | 150 | TCP forwarding to the ultimate destination from there. Multiple |
151 | jump hops may be specified separated by comma characters. This | 151 | jump hops may be specified separated by comma characters. This |
152 | is a shortcut to specify a ProxyJump configuration directive. | 152 | is a shortcut to specify a ProxyJump configuration directive. |
153 | Note that configuration directives supplied on the command-line | ||
154 | generally apply to the destination host and not any specified | ||
155 | jump hosts. Use ~/.ssh/config to specify configuration for jump | ||
156 | hosts. | ||
153 | 157 | ||
154 | -K Enables GSSAPI-based authentication and forwarding (delegation) | 158 | -K Enables GSSAPI-based authentication and forwarding (delegation) |
155 | of GSSAPI credentials to the server. | 159 | of GSSAPI credentials to the server. |
@@ -594,36 +598,30 @@ ESCAPE CHARACTERS | |||
594 | to stderr. | 598 | to stderr. |
595 | 599 | ||
596 | TCP FORWARDING | 600 | TCP FORWARDING |
597 | Forwarding of arbitrary TCP connections over the secure channel can be | 601 | Forwarding of arbitrary TCP connections over a secure channel can be |
598 | specified either on the command line or in a configuration file. One | 602 | specified either on the command line or in a configuration file. One |
599 | possible application of TCP forwarding is a secure connection to a mail | 603 | possible application of TCP forwarding is a secure connection to a mail |
600 | server; another is going through firewalls. | 604 | server; another is going through firewalls. |
601 | 605 | ||
602 | In the example below, we look at encrypting communication between an IRC | 606 | In the example below, we look at encrypting communication for an IRC |
603 | client and server, even though the IRC server does not directly support | 607 | client, even though the IRC server it connects to does not directly |
604 | encrypted communications. This works as follows: the user connects to | 608 | support encrypted communication. This works as follows: the user |
605 | the remote host using ssh, specifying a port to be used to forward | 609 | connects to the remote host using ssh, specifying the ports to be used to |
606 | connections to the remote server. After that it is possible to start the | 610 | forward the connection. After that it is possible to start the program |
607 | service which is to be encrypted on the client machine, connecting to the | 611 | locally, and ssh will encrypt and forward the connection to the remote |
608 | same local port, and ssh will encrypt and forward the connection. | 612 | server. |
609 | 613 | ||
610 | The following example tunnels an IRC session from client machine | 614 | The following example tunnels an IRC session from the client to an IRC |
611 | M-bM-^@M-^\127.0.0.1M-bM-^@M-^] (localhost) to remote server M-bM-^@M-^\server.example.comM-bM-^@M-^]: | 615 | server at M-bM-^@M-^\server.example.comM-bM-^@M-^], joining channel M-bM-^@M-^\#usersM-bM-^@M-^], nickname |
616 | M-bM-^@M-^\pinkyM-bM-^@M-^], using the standard IRC port, 6667: | ||
612 | 617 | ||
613 | $ ssh -f -L 1234:localhost:6667 server.example.com sleep 10 | 618 | $ ssh -f -L 6667:localhost:6667 server.example.com sleep 10 |
614 | $ irc -c '#users' -p 1234 pinky 127.0.0.1 | 619 | $ irc -c '#users' pinky IRC/127.0.0.1 |
615 | |||
616 | This tunnels a connection to IRC server M-bM-^@M-^\server.example.comM-bM-^@M-^], joining | ||
617 | channel M-bM-^@M-^\#usersM-bM-^@M-^], nickname M-bM-^@M-^\pinkyM-bM-^@M-^], using port 1234. It doesn't matter | ||
618 | which port is used, as long as it's greater than 1023 (remember, only | ||
619 | root can open sockets on privileged ports) and doesn't conflict with any | ||
620 | ports already in use. The connection is forwarded to port 6667 on the | ||
621 | remote server, since that's the standard port for IRC services. | ||
622 | 620 | ||
623 | The -f option backgrounds ssh and the remote command M-bM-^@M-^\sleep 10M-bM-^@M-^] is | 621 | The -f option backgrounds ssh and the remote command M-bM-^@M-^\sleep 10M-bM-^@M-^] is |
624 | specified to allow an amount of time (10 seconds, in the example) to | 622 | specified to allow an amount of time (10 seconds, in the example) to |
625 | start the service which is to be tunnelled. If no connections are made | 623 | start the program which is going to use the tunnel. If no connections |
626 | within the time specified, ssh will exit. | 624 | are made within the time specified, ssh will exit. |
627 | 625 | ||
628 | X11 FORWARDING | 626 | X11 FORWARDING |
629 | If the ForwardX11 variable is set to M-bM-^@M-^\yesM-bM-^@M-^] (or see the description of the | 627 | If the ForwardX11 variable is set to M-bM-^@M-^\yesM-bM-^@M-^] (or see the description of the |
@@ -979,4 +977,4 @@ AUTHORS | |||
979 | created OpenSSH. Markus Friedl contributed the support for SSH protocol | 977 | created OpenSSH. Markus Friedl contributed the support for SSH protocol |
980 | versions 1.5 and 2.0. | 978 | versions 1.5 and 2.0. |
981 | 979 | ||
982 | OpenBSD 6.4 September 20, 2018 OpenBSD 6.4 | 980 | OpenBSD 6.5 March 16, 2019 OpenBSD 6.5 |
@@ -33,8 +33,8 @@ | |||
33 | .\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF | 33 | .\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF |
34 | .\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | 34 | .\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |
35 | .\" | 35 | .\" |
36 | .\" $OpenBSD: ssh.1,v 1.399 2018/09/20 06:58:48 jmc Exp $ | 36 | .\" $OpenBSD: ssh.1,v 1.402 2019/03/16 19:14:21 jmc Exp $ |
37 | .Dd $Mdocdate: September 20 2018 $ | 37 | .Dd $Mdocdate: March 16 2019 $ |
38 | .Dt SSH 1 | 38 | .Dt SSH 1 |
39 | .Os | 39 | .Os |
40 | .Sh NAME | 40 | .Sh NAME |
@@ -270,8 +270,8 @@ on the master process. | |||
270 | .It Fl I Ar pkcs11 | 270 | .It Fl I Ar pkcs11 |
271 | Specify the PKCS#11 shared library | 271 | Specify the PKCS#11 shared library |
272 | .Nm | 272 | .Nm |
273 | should use to communicate with a PKCS#11 token providing the user's | 273 | should use to communicate with a PKCS#11 token providing keys for user |
274 | private RSA key. | 274 | authentication. |
275 | .Pp | 275 | .Pp |
276 | .It Fl i Ar identity_file | 276 | .It Fl i Ar identity_file |
277 | Selects a file from which the identity (private key) for | 277 | Selects a file from which the identity (private key) for |
@@ -308,6 +308,11 @@ Multiple jump hops may be specified separated by comma characters. | |||
308 | This is a shortcut to specify a | 308 | This is a shortcut to specify a |
309 | .Cm ProxyJump | 309 | .Cm ProxyJump |
310 | configuration directive. | 310 | configuration directive. |
311 | Note that configuration directives supplied on the command-line generally | ||
312 | apply to the destination host and not any specified jump hosts. | ||
313 | Use | ||
314 | .Pa ~/.ssh/config | ||
315 | to specify configuration for jump hosts. | ||
311 | .Pp | 316 | .Pp |
312 | .It Fl K | 317 | .It Fl K |
313 | Enables GSSAPI-based authentication and forwarding (delegation) of GSSAPI | 318 | Enables GSSAPI-based authentication and forwarding (delegation) of GSSAPI |
@@ -1085,49 +1090,35 @@ Increase the verbosity | |||
1085 | when errors are being written to stderr. | 1090 | when errors are being written to stderr. |
1086 | .El | 1091 | .El |
1087 | .Sh TCP FORWARDING | 1092 | .Sh TCP FORWARDING |
1088 | Forwarding of arbitrary TCP connections over the secure channel can | 1093 | Forwarding of arbitrary TCP connections over a secure channel |
1089 | be specified either on the command line or in a configuration file. | 1094 | can be specified either on the command line or in a configuration file. |
1090 | One possible application of TCP forwarding is a secure connection to a | 1095 | One possible application of TCP forwarding is a secure connection to a |
1091 | mail server; another is going through firewalls. | 1096 | mail server; another is going through firewalls. |
1092 | .Pp | 1097 | .Pp |
1093 | In the example below, we look at encrypting communication between | 1098 | In the example below, we look at encrypting communication for an IRC client, |
1094 | an IRC client and server, even though the IRC server does not directly | 1099 | even though the IRC server it connects to does not directly |
1095 | support encrypted communications. | 1100 | support encrypted communication. |
1096 | This works as follows: | 1101 | This works as follows: |
1097 | the user connects to the remote host using | 1102 | the user connects to the remote host using |
1098 | .Nm , | 1103 | .Nm , |
1099 | specifying a port to be used to forward connections | 1104 | specifying the ports to be used to forward the connection. |
1100 | to the remote server. | 1105 | After that it is possible to start the program locally, |
1101 | After that it is possible to start the service which is to be encrypted | ||
1102 | on the client machine, | ||
1103 | connecting to the same local port, | ||
1104 | and | 1106 | and |
1105 | .Nm | 1107 | .Nm |
1106 | will encrypt and forward the connection. | 1108 | will encrypt and forward the connection to the remote server. |
1107 | .Pp | 1109 | .Pp |
1108 | The following example tunnels an IRC session from client machine | 1110 | The following example tunnels an IRC session from the client |
1109 | .Dq 127.0.0.1 | 1111 | to an IRC server at |
1110 | (localhost) | ||
1111 | to remote server | ||
1112 | .Dq server.example.com : | ||
1113 | .Bd -literal -offset 4n | ||
1114 | $ ssh -f -L 1234:localhost:6667 server.example.com sleep 10 | ||
1115 | $ irc -c '#users' -p 1234 pinky 127.0.0.1 | ||
1116 | .Ed | ||
1117 | .Pp | ||
1118 | This tunnels a connection to IRC server | ||
1119 | .Dq server.example.com , | 1112 | .Dq server.example.com , |
1120 | joining channel | 1113 | joining channel |
1121 | .Dq #users , | 1114 | .Dq #users , |
1122 | nickname | 1115 | nickname |
1123 | .Dq pinky , | 1116 | .Dq pinky , |
1124 | using port 1234. | 1117 | using the standard IRC port, 6667: |
1125 | It doesn't matter which port is used, | 1118 | .Bd -literal -offset 4n |
1126 | as long as it's greater than 1023 | 1119 | $ ssh -f -L 6667:localhost:6667 server.example.com sleep 10 |
1127 | (remember, only root can open sockets on privileged ports) | 1120 | $ irc -c '#users' pinky IRC/127.0.0.1 |
1128 | and doesn't conflict with any ports already in use. | 1121 | .Ed |
1129 | The connection is forwarded to port 6667 on the remote server, | ||
1130 | since that's the standard port for IRC services. | ||
1131 | .Pp | 1122 | .Pp |
1132 | The | 1123 | The |
1133 | .Fl f | 1124 | .Fl f |
@@ -1137,7 +1128,7 @@ and the remote command | |||
1137 | .Dq sleep 10 | 1128 | .Dq sleep 10 |
1138 | is specified to allow an amount of time | 1129 | is specified to allow an amount of time |
1139 | (10 seconds, in the example) | 1130 | (10 seconds, in the example) |
1140 | to start the service which is to be tunnelled. | 1131 | to start the program which is going to use the tunnel. |
1141 | If no connections are made within the time specified, | 1132 | If no connections are made within the time specified, |
1142 | .Nm | 1133 | .Nm |
1143 | will exit. | 1134 | will exit. |
@@ -1,4 +1,4 @@ | |||
1 | /* $OpenBSD: ssh.c,v 1.494 2018/10/03 06:38:35 djm Exp $ */ | 1 | /* $OpenBSD: ssh.c,v 1.500 2019/01/19 21:43:56 djm Exp $ */ |
2 | /* | 2 | /* |
3 | * Author: Tatu Ylonen <ylo@cs.hut.fi> | 3 | * Author: Tatu Ylonen <ylo@cs.hut.fi> |
4 | * Copyright (c) 1995 Tatu Ylonen <ylo@cs.hut.fi>, Espoo, Finland | 4 | * Copyright (c) 1995 Tatu Ylonen <ylo@cs.hut.fi>, Espoo, Finland |
@@ -527,7 +527,8 @@ check_load(int r, const char *path, const char *message) | |||
527 | * file if the user specifies a config file on the command line. | 527 | * file if the user specifies a config file on the command line. |
528 | */ | 528 | */ |
529 | static void | 529 | static void |
530 | process_config_files(const char *host_name, struct passwd *pw, int post_canon) | 530 | process_config_files(const char *host_name, struct passwd *pw, int final_pass, |
531 | int *want_final_pass) | ||
531 | { | 532 | { |
532 | char buf[PATH_MAX]; | 533 | char buf[PATH_MAX]; |
533 | int r; | 534 | int r; |
@@ -535,7 +536,8 @@ process_config_files(const char *host_name, struct passwd *pw, int post_canon) | |||
535 | if (config != NULL) { | 536 | if (config != NULL) { |
536 | if (strcasecmp(config, "none") != 0 && | 537 | if (strcasecmp(config, "none") != 0 && |
537 | !read_config_file(config, pw, host, host_name, &options, | 538 | !read_config_file(config, pw, host, host_name, &options, |
538 | SSHCONF_USERCONF | (post_canon ? SSHCONF_POSTCANON : 0))) | 539 | SSHCONF_USERCONF | (final_pass ? SSHCONF_FINAL : 0), |
540 | want_final_pass)) | ||
539 | fatal("Can't open user config file %.100s: " | 541 | fatal("Can't open user config file %.100s: " |
540 | "%.100s", config, strerror(errno)); | 542 | "%.100s", config, strerror(errno)); |
541 | } else { | 543 | } else { |
@@ -544,12 +546,12 @@ process_config_files(const char *host_name, struct passwd *pw, int post_canon) | |||
544 | if (r > 0 && (size_t)r < sizeof(buf)) | 546 | if (r > 0 && (size_t)r < sizeof(buf)) |
545 | (void)read_config_file(buf, pw, host, host_name, | 547 | (void)read_config_file(buf, pw, host, host_name, |
546 | &options, SSHCONF_CHECKPERM | SSHCONF_USERCONF | | 548 | &options, SSHCONF_CHECKPERM | SSHCONF_USERCONF | |
547 | (post_canon ? SSHCONF_POSTCANON : 0)); | 549 | (final_pass ? SSHCONF_FINAL : 0), want_final_pass); |
548 | 550 | ||
549 | /* Read systemwide configuration file after user config. */ | 551 | /* Read systemwide configuration file after user config. */ |
550 | (void)read_config_file(_PATH_HOST_CONFIG_FILE, pw, | 552 | (void)read_config_file(_PATH_HOST_CONFIG_FILE, pw, |
551 | host, host_name, &options, | 553 | host, host_name, &options, |
552 | post_canon ? SSHCONF_POSTCANON : 0); | 554 | final_pass ? SSHCONF_FINAL : 0, want_final_pass); |
553 | } | 555 | } |
554 | } | 556 | } |
555 | 557 | ||
@@ -581,7 +583,7 @@ main(int ac, char **av) | |||
581 | { | 583 | { |
582 | struct ssh *ssh = NULL; | 584 | struct ssh *ssh = NULL; |
583 | int i, r, opt, exit_status, use_syslog, direct, timeout_ms; | 585 | int i, r, opt, exit_status, use_syslog, direct, timeout_ms; |
584 | int was_addr, config_test = 0, opt_terminated = 0; | 586 | int was_addr, config_test = 0, opt_terminated = 0, want_final_pass = 0; |
585 | char *p, *cp, *line, *argv0, buf[PATH_MAX], *logfile; | 587 | char *p, *cp, *line, *argv0, buf[PATH_MAX], *logfile; |
586 | char cname[NI_MAXHOST]; | 588 | char cname[NI_MAXHOST]; |
587 | struct stat st; | 589 | struct stat st; |
@@ -610,6 +612,8 @@ main(int ac, char **av) | |||
610 | av = saved_av; | 612 | av = saved_av; |
611 | #endif | 613 | #endif |
612 | 614 | ||
615 | seed_rng(); | ||
616 | |||
613 | /* | 617 | /* |
614 | * Discard other fds that are hanging around. These can cause problem | 618 | * Discard other fds that are hanging around. These can cause problem |
615 | * with backgrounded ssh processes started by ControlPersist. | 619 | * with backgrounded ssh processes started by ControlPersist. |
@@ -647,7 +651,6 @@ main(int ac, char **av) | |||
647 | if ((ssh = ssh_alloc_session_state()) == NULL) | 651 | if ((ssh = ssh_alloc_session_state()) == NULL) |
648 | fatal("Couldn't allocate session state"); | 652 | fatal("Couldn't allocate session state"); |
649 | channel_init_channels(ssh); | 653 | channel_init_channels(ssh); |
650 | active_state = ssh; /* XXX legacy API compat */ | ||
651 | 654 | ||
652 | /* Parse command-line arguments. */ | 655 | /* Parse command-line arguments. */ |
653 | host = NULL; | 656 | host = NULL; |
@@ -816,7 +819,7 @@ main(int ac, char **av) | |||
816 | fprintf(stderr, "%s, %s\n", | 819 | fprintf(stderr, "%s, %s\n", |
817 | SSH_RELEASE, | 820 | SSH_RELEASE, |
818 | #ifdef WITH_OPENSSL | 821 | #ifdef WITH_OPENSSL |
819 | SSLeay_version(SSLEAY_VERSION) | 822 | OpenSSL_version(OPENSSL_VERSION) |
820 | #else | 823 | #else |
821 | "without OpenSSL" | 824 | "without OpenSSL" |
822 | #endif | 825 | #endif |
@@ -1036,11 +1039,6 @@ main(int ac, char **av) | |||
1036 | 1039 | ||
1037 | host_arg = xstrdup(host); | 1040 | host_arg = xstrdup(host); |
1038 | 1041 | ||
1039 | #ifdef WITH_OPENSSL | ||
1040 | OpenSSL_add_all_algorithms(); | ||
1041 | ERR_load_crypto_strings(); | ||
1042 | #endif | ||
1043 | |||
1044 | /* Initialize the command to execute on remote host. */ | 1042 | /* Initialize the command to execute on remote host. */ |
1045 | if ((command = sshbuf_new()) == NULL) | 1043 | if ((command = sshbuf_new()) == NULL) |
1046 | fatal("sshbuf_new failed"); | 1044 | fatal("sshbuf_new failed"); |
@@ -1085,14 +1083,16 @@ main(int ac, char **av) | |||
1085 | if (debug_flag) | 1083 | if (debug_flag) |
1086 | logit("%s, %s", SSH_RELEASE, | 1084 | logit("%s, %s", SSH_RELEASE, |
1087 | #ifdef WITH_OPENSSL | 1085 | #ifdef WITH_OPENSSL |
1088 | SSLeay_version(SSLEAY_VERSION) | 1086 | OpenSSL_version(OPENSSL_VERSION) |
1089 | #else | 1087 | #else |
1090 | "without OpenSSL" | 1088 | "without OpenSSL" |
1091 | #endif | 1089 | #endif |
1092 | ); | 1090 | ); |
1093 | 1091 | ||
1094 | /* Parse the configuration files */ | 1092 | /* Parse the configuration files */ |
1095 | process_config_files(host_arg, pw, 0); | 1093 | process_config_files(host_arg, pw, 0, &want_final_pass); |
1094 | if (want_final_pass) | ||
1095 | debug("configuration requests final Match pass"); | ||
1096 | 1096 | ||
1097 | /* Hostname canonicalisation needs a few options filled. */ | 1097 | /* Hostname canonicalisation needs a few options filled. */ |
1098 | fill_default_options_for_canonicalization(&options); | 1098 | fill_default_options_for_canonicalization(&options); |
@@ -1149,12 +1149,17 @@ main(int ac, char **av) | |||
1149 | * If canonicalisation is enabled then re-parse the configuration | 1149 | * If canonicalisation is enabled then re-parse the configuration |
1150 | * files as new stanzas may match. | 1150 | * files as new stanzas may match. |
1151 | */ | 1151 | */ |
1152 | if (options.canonicalize_hostname != 0) { | 1152 | if (options.canonicalize_hostname != 0 && !want_final_pass) { |
1153 | debug("Re-reading configuration after hostname " | 1153 | debug("hostname canonicalisation enabled, " |
1154 | "canonicalisation"); | 1154 | "will re-parse configuration"); |
1155 | want_final_pass = 1; | ||
1156 | } | ||
1157 | |||
1158 | if (want_final_pass) { | ||
1159 | debug("re-parsing configuration"); | ||
1155 | free(options.hostname); | 1160 | free(options.hostname); |
1156 | options.hostname = xstrdup(host); | 1161 | options.hostname = xstrdup(host); |
1157 | process_config_files(host_arg, pw, 1); | 1162 | process_config_files(host_arg, pw, 1, NULL); |
1158 | /* | 1163 | /* |
1159 | * Address resolution happens early with canonicalisation | 1164 | * Address resolution happens early with canonicalisation |
1160 | * enabled and the port number may have changed since, so | 1165 | * enabled and the port number may have changed since, so |
@@ -1264,8 +1269,6 @@ main(int ac, char **av) | |||
1264 | tty_flag = 0; | 1269 | tty_flag = 0; |
1265 | } | 1270 | } |
1266 | 1271 | ||
1267 | seed_rng(); | ||
1268 | |||
1269 | if (options.user == NULL) | 1272 | if (options.user == NULL) |
1270 | options.user = xstrdup(pw->pw_name); | 1273 | options.user = xstrdup(pw->pw_name); |
1271 | 1274 | ||
@@ -1344,7 +1347,7 @@ main(int ac, char **av) | |||
1344 | int sock; | 1347 | int sock; |
1345 | if ((sock = muxclient(options.control_path)) >= 0) { | 1348 | if ((sock = muxclient(options.control_path)) >= 0) { |
1346 | ssh_packet_set_connection(ssh, sock, sock); | 1349 | ssh_packet_set_connection(ssh, sock, sock); |
1347 | packet_set_mux(); | 1350 | ssh_packet_set_mux(ssh); |
1348 | goto skip_connect; | 1351 | goto skip_connect; |
1349 | } | 1352 | } |
1350 | } | 1353 | } |
@@ -1371,11 +1374,9 @@ main(int ac, char **av) | |||
1371 | if (addrs != NULL) | 1374 | if (addrs != NULL) |
1372 | freeaddrinfo(addrs); | 1375 | freeaddrinfo(addrs); |
1373 | 1376 | ||
1374 | packet_set_timeout(options.server_alive_interval, | 1377 | ssh_packet_set_timeout(ssh, options.server_alive_interval, |
1375 | options.server_alive_count_max); | 1378 | options.server_alive_count_max); |
1376 | 1379 | ||
1377 | ssh = active_state; /* XXX */ | ||
1378 | |||
1379 | if (timeout_ms > 0) | 1380 | if (timeout_ms > 0) |
1380 | debug3("timeout: %d ms remain after connect", timeout_ms); | 1381 | debug3("timeout: %d ms remain after connect", timeout_ms); |
1381 | 1382 | ||
@@ -1486,10 +1487,10 @@ main(int ac, char **av) | |||
1486 | signal(SIGCHLD, main_sigchld_handler); | 1487 | signal(SIGCHLD, main_sigchld_handler); |
1487 | 1488 | ||
1488 | /* Log into the remote system. Never returns if the login fails. */ | 1489 | /* Log into the remote system. Never returns if the login fails. */ |
1489 | ssh_login(&sensitive_data, host, (struct sockaddr *)&hostaddr, | 1490 | ssh_login(ssh, &sensitive_data, host, (struct sockaddr *)&hostaddr, |
1490 | options.port, pw, timeout_ms); | 1491 | options.port, pw, timeout_ms); |
1491 | 1492 | ||
1492 | if (packet_connection_is_on_socket()) { | 1493 | if (ssh_packet_connection_is_on_socket(ssh)) { |
1493 | verbose("Authenticated to %s ([%s]:%d).", host, | 1494 | verbose("Authenticated to %s ([%s]:%d).", host, |
1494 | ssh_remote_ipaddr(ssh), ssh_remote_port(ssh)); | 1495 | ssh_remote_ipaddr(ssh), ssh_remote_port(ssh)); |
1495 | } else { | 1496 | } else { |
@@ -1523,7 +1524,7 @@ main(int ac, char **av) | |||
1523 | 1524 | ||
1524 | skip_connect: | 1525 | skip_connect: |
1525 | exit_status = ssh_session2(ssh, pw); | 1526 | exit_status = ssh_session2(ssh, pw); |
1526 | packet_close(); | 1527 | ssh_packet_close(ssh); |
1527 | 1528 | ||
1528 | if (options.control_path != NULL && muxserver_sock != -1) | 1529 | if (options.control_path != NULL && muxserver_sock != -1) |
1529 | unlink(options.control_path); | 1530 | unlink(options.control_path); |
@@ -1598,6 +1599,8 @@ static void | |||
1598 | ssh_confirm_remote_forward(struct ssh *ssh, int type, u_int32_t seq, void *ctxt) | 1599 | ssh_confirm_remote_forward(struct ssh *ssh, int type, u_int32_t seq, void *ctxt) |
1599 | { | 1600 | { |
1600 | struct Forward *rfwd = (struct Forward *)ctxt; | 1601 | struct Forward *rfwd = (struct Forward *)ctxt; |
1602 | u_int port; | ||
1603 | int r; | ||
1601 | 1604 | ||
1602 | /* XXX verbose() on failure? */ | 1605 | /* XXX verbose() on failure? */ |
1603 | debug("remote forward %s for: listen %s%s%d, connect %s:%d", | 1606 | debug("remote forward %s for: listen %s%s%d, connect %s:%d", |
@@ -1609,12 +1612,25 @@ ssh_confirm_remote_forward(struct ssh *ssh, int type, u_int32_t seq, void *ctxt) | |||
1609 | rfwd->connect_host, rfwd->connect_port); | 1612 | rfwd->connect_host, rfwd->connect_port); |
1610 | if (rfwd->listen_path == NULL && rfwd->listen_port == 0) { | 1613 | if (rfwd->listen_path == NULL && rfwd->listen_port == 0) { |
1611 | if (type == SSH2_MSG_REQUEST_SUCCESS) { | 1614 | if (type == SSH2_MSG_REQUEST_SUCCESS) { |
1612 | rfwd->allocated_port = packet_get_int(); | 1615 | if ((r = sshpkt_get_u32(ssh, &port)) != 0) |
1613 | logit("Allocated port %u for remote forward to %s:%d", | 1616 | fatal("%s: %s", __func__, ssh_err(r)); |
1614 | rfwd->allocated_port, | 1617 | if (port > 65535) { |
1615 | rfwd->connect_host, rfwd->connect_port); | 1618 | error("Invalid allocated port %u for remote " |
1616 | channel_update_permission(ssh, | 1619 | "forward to %s:%d", port, |
1617 | rfwd->handle, rfwd->allocated_port); | 1620 | rfwd->connect_host, rfwd->connect_port); |
1621 | /* Ensure failure processing runs below */ | ||
1622 | type = SSH2_MSG_REQUEST_FAILURE; | ||
1623 | channel_update_permission(ssh, | ||
1624 | rfwd->handle, -1); | ||
1625 | } else { | ||
1626 | rfwd->allocated_port = (int)port; | ||
1627 | logit("Allocated port %u for remote " | ||
1628 | "forward to %s:%d", | ||
1629 | rfwd->allocated_port, rfwd->connect_host, | ||
1630 | rfwd->connect_port); | ||
1631 | channel_update_permission(ssh, | ||
1632 | rfwd->handle, rfwd->allocated_port); | ||
1633 | } | ||
1618 | } else { | 1634 | } else { |
1619 | channel_update_permission(ssh, rfwd->handle, -1); | 1635 | channel_update_permission(ssh, rfwd->handle, -1); |
1620 | } | 1636 | } |
@@ -1771,7 +1787,7 @@ ssh_session2_setup(struct ssh *ssh, int id, int success, void *arg) | |||
1771 | { | 1787 | { |
1772 | extern char **environ; | 1788 | extern char **environ; |
1773 | const char *display; | 1789 | const char *display; |
1774 | int interactive = tty_flag; | 1790 | int r, interactive = tty_flag; |
1775 | char *proto = NULL, *data = NULL; | 1791 | char *proto = NULL, *data = NULL; |
1776 | 1792 | ||
1777 | if (!success) | 1793 | if (!success) |
@@ -1797,11 +1813,12 @@ ssh_session2_setup(struct ssh *ssh, int id, int success, void *arg) | |||
1797 | if (options.forward_agent) { | 1813 | if (options.forward_agent) { |
1798 | debug("Requesting authentication agent forwarding."); | 1814 | debug("Requesting authentication agent forwarding."); |
1799 | channel_request_start(ssh, id, "auth-agent-req@openssh.com", 0); | 1815 | channel_request_start(ssh, id, "auth-agent-req@openssh.com", 0); |
1800 | packet_send(); | 1816 | if ((r = sshpkt_send(ssh)) != 0) |
1817 | fatal("%s: %s", __func__, ssh_err(r)); | ||
1801 | } | 1818 | } |
1802 | 1819 | ||
1803 | /* Tell the packet module whether this is an interactive session. */ | 1820 | /* Tell the packet module whether this is an interactive session. */ |
1804 | packet_set_interactive(interactive, | 1821 | ssh_packet_set_interactive(ssh, interactive, |
1805 | options.ip_qos_interactive, options.ip_qos_bulk); | 1822 | options.ip_qos_interactive, options.ip_qos_bulk); |
1806 | 1823 | ||
1807 | client_session2_setup(ssh, id, tty_flag, subsystem_flag, getenv("TERM"), | 1824 | client_session2_setup(ssh, id, tty_flag, subsystem_flag, getenv("TERM"), |
@@ -1858,7 +1875,7 @@ ssh_session2_open(struct ssh *ssh) | |||
1858 | static int | 1875 | static int |
1859 | ssh_session2(struct ssh *ssh, struct passwd *pw) | 1876 | ssh_session2(struct ssh *ssh, struct passwd *pw) |
1860 | { | 1877 | { |
1861 | int devnull, id = -1; | 1878 | int r, devnull, id = -1; |
1862 | char *cp, *tun_fwd_ifname = NULL; | 1879 | char *cp, *tun_fwd_ifname = NULL; |
1863 | 1880 | ||
1864 | /* XXX should be pre-session */ | 1881 | /* XXX should be pre-session */ |
@@ -1888,7 +1905,7 @@ ssh_session2(struct ssh *ssh, struct passwd *pw) | |||
1888 | } | 1905 | } |
1889 | 1906 | ||
1890 | /* Start listening for multiplex clients */ | 1907 | /* Start listening for multiplex clients */ |
1891 | if (!packet_get_mux()) | 1908 | if (!ssh_packet_get_mux(ssh)) |
1892 | muxserver_listen(ssh); | 1909 | muxserver_listen(ssh); |
1893 | 1910 | ||
1894 | /* | 1911 | /* |
@@ -1922,7 +1939,7 @@ ssh_session2(struct ssh *ssh, struct passwd *pw) | |||
1922 | if (!no_shell_flag) | 1939 | if (!no_shell_flag) |
1923 | id = ssh_session2_open(ssh); | 1940 | id = ssh_session2_open(ssh); |
1924 | else { | 1941 | else { |
1925 | packet_set_interactive( | 1942 | ssh_packet_set_interactive(ssh, |
1926 | options.control_master == SSHCTL_MASTER_NO, | 1943 | options.control_master == SSHCTL_MASTER_NO, |
1927 | options.ip_qos_interactive, options.ip_qos_bulk); | 1944 | options.ip_qos_interactive, options.ip_qos_bulk); |
1928 | } | 1945 | } |
@@ -1931,10 +1948,12 @@ ssh_session2(struct ssh *ssh, struct passwd *pw) | |||
1931 | if (options.control_master == SSHCTL_MASTER_NO && | 1948 | if (options.control_master == SSHCTL_MASTER_NO && |
1932 | (datafellows & SSH_NEW_OPENSSH)) { | 1949 | (datafellows & SSH_NEW_OPENSSH)) { |
1933 | debug("Requesting no-more-sessions@openssh.com"); | 1950 | debug("Requesting no-more-sessions@openssh.com"); |
1934 | packet_start(SSH2_MSG_GLOBAL_REQUEST); | 1951 | if ((r = sshpkt_start(ssh, SSH2_MSG_GLOBAL_REQUEST)) != 0 || |
1935 | packet_put_cstring("no-more-sessions@openssh.com"); | 1952 | (r = sshpkt_put_cstring(ssh, |
1936 | packet_put_char(0); | 1953 | "no-more-sessions@openssh.com")) != 0 || |
1937 | packet_send(); | 1954 | (r = sshpkt_put_u8(ssh, 0)) != 0 || |
1955 | (r = sshpkt_send(ssh)) != 0) | ||
1956 | fatal("%s: %s", __func__, ssh_err(r)); | ||
1938 | } | 1957 | } |
1939 | 1958 | ||
1940 | /* Execute a local command */ | 1959 | /* Execute a local command */ |
@@ -1,4 +1,4 @@ | |||
1 | /* $OpenBSD: ssh.h,v 1.88 2018/06/06 18:29:18 markus Exp $ */ | 1 | /* $OpenBSD: ssh.h,v 1.89 2018/12/27 03:25:25 djm Exp $ */ |
2 | 2 | ||
3 | /* | 3 | /* |
4 | * Author: Tatu Ylonen <ylo@cs.hut.fi> | 4 | * Author: Tatu Ylonen <ylo@cs.hut.fi> |
@@ -93,3 +93,7 @@ | |||
93 | 93 | ||
94 | /* Listen backlog for sshd, ssh-agent and forwarding sockets */ | 94 | /* Listen backlog for sshd, ssh-agent and forwarding sockets */ |
95 | #define SSH_LISTEN_BACKLOG 128 | 95 | #define SSH_LISTEN_BACKLOG 128 |
96 | |||
97 | /* Limits for banner exchange */ | ||
98 | #define SSH_MAX_BANNER_LEN 8192 | ||
99 | #define SSH_MAX_PRE_BANNER_LINES 1024 | ||
@@ -1,4 +1,4 @@ | |||
1 | /* $OpenBSD: ssh_api.c,v 1.8 2017/04/30 23:13:25 djm Exp $ */ | 1 | /* $OpenBSD: ssh_api.c,v 1.15 2019/01/21 10:38:54 djm Exp $ */ |
2 | /* | 2 | /* |
3 | * Copyright (c) 2012 Markus Friedl. All rights reserved. | 3 | * Copyright (c) 2012 Markus Friedl. All rights reserved. |
4 | * | 4 | * |
@@ -29,17 +29,19 @@ | |||
29 | #include "ssherr.h" | 29 | #include "ssherr.h" |
30 | #include "sshbuf.h" | 30 | #include "sshbuf.h" |
31 | 31 | ||
32 | #include "openbsd-compat/openssl-compat.h" | ||
33 | |||
32 | #include <string.h> | 34 | #include <string.h> |
33 | 35 | ||
34 | int _ssh_exchange_banner(struct ssh *); | 36 | int _ssh_exchange_banner(struct ssh *); |
35 | int _ssh_send_banner(struct ssh *, char **); | 37 | int _ssh_send_banner(struct ssh *, struct sshbuf *); |
36 | int _ssh_read_banner(struct ssh *, char **); | 38 | int _ssh_read_banner(struct ssh *, struct sshbuf *); |
37 | int _ssh_order_hostkeyalgs(struct ssh *); | 39 | int _ssh_order_hostkeyalgs(struct ssh *); |
38 | int _ssh_verify_host_key(struct sshkey *, struct ssh *); | 40 | int _ssh_verify_host_key(struct sshkey *, struct ssh *); |
39 | struct sshkey *_ssh_host_public_key(int, int, struct ssh *); | 41 | struct sshkey *_ssh_host_public_key(int, int, struct ssh *); |
40 | struct sshkey *_ssh_host_private_key(int, int, struct ssh *); | 42 | struct sshkey *_ssh_host_private_key(int, int, struct ssh *); |
41 | int _ssh_host_key_sign(struct sshkey *, struct sshkey *, | 43 | int _ssh_host_key_sign(struct ssh *, struct sshkey *, struct sshkey *, |
42 | u_char **, size_t *, const u_char *, size_t, const char *, u_int); | 44 | u_char **, size_t *, const u_char *, size_t, const char *); |
43 | 45 | ||
44 | /* | 46 | /* |
45 | * stubs for the server side implementation of kex. | 47 | * stubs for the server side implementation of kex. |
@@ -79,9 +81,7 @@ ssh_init(struct ssh **sshp, int is_server, struct kex_params *kex_params) | |||
79 | int r; | 81 | int r; |
80 | 82 | ||
81 | if (!called) { | 83 | if (!called) { |
82 | #ifdef WITH_OPENSSL | 84 | seed_rng(); |
83 | OpenSSL_add_all_algorithms(); | ||
84 | #endif /* WITH_OPENSSL */ | ||
85 | called = 1; | 85 | called = 1; |
86 | } | 86 | } |
87 | 87 | ||
@@ -92,42 +92,44 @@ ssh_init(struct ssh **sshp, int is_server, struct kex_params *kex_params) | |||
92 | 92 | ||
93 | /* Initialize key exchange */ | 93 | /* Initialize key exchange */ |
94 | proposal = kex_params ? kex_params->proposal : myproposal; | 94 | proposal = kex_params ? kex_params->proposal : myproposal; |
95 | if ((r = kex_new(ssh, proposal, &ssh->kex)) != 0) { | 95 | if ((r = kex_ready(ssh, proposal)) != 0) { |
96 | ssh_free(ssh); | 96 | ssh_free(ssh); |
97 | return r; | 97 | return r; |
98 | } | 98 | } |
99 | ssh->kex->server = is_server; | 99 | ssh->kex->server = is_server; |
100 | if (is_server) { | 100 | if (is_server) { |
101 | #ifdef WITH_OPENSSL | 101 | #ifdef WITH_OPENSSL |
102 | ssh->kex->kex[KEX_DH_GRP1_SHA1] = kexdh_server; | 102 | ssh->kex->kex[KEX_DH_GRP1_SHA1] = kex_gen_server; |
103 | ssh->kex->kex[KEX_DH_GRP14_SHA1] = kexdh_server; | 103 | ssh->kex->kex[KEX_DH_GRP14_SHA1] = kex_gen_server; |
104 | ssh->kex->kex[KEX_DH_GRP14_SHA256] = kexdh_server; | 104 | ssh->kex->kex[KEX_DH_GRP14_SHA256] = kex_gen_server; |
105 | ssh->kex->kex[KEX_DH_GRP16_SHA512] = kexdh_server; | 105 | ssh->kex->kex[KEX_DH_GRP16_SHA512] = kex_gen_server; |
106 | ssh->kex->kex[KEX_DH_GRP18_SHA512] = kexdh_server; | 106 | ssh->kex->kex[KEX_DH_GRP18_SHA512] = kex_gen_server; |
107 | ssh->kex->kex[KEX_DH_GEX_SHA1] = kexgex_server; | 107 | ssh->kex->kex[KEX_DH_GEX_SHA1] = kexgex_server; |
108 | ssh->kex->kex[KEX_DH_GEX_SHA256] = kexgex_server; | 108 | ssh->kex->kex[KEX_DH_GEX_SHA256] = kexgex_server; |
109 | # ifdef OPENSSL_HAS_ECC | 109 | # ifdef OPENSSL_HAS_ECC |
110 | ssh->kex->kex[KEX_ECDH_SHA2] = kexecdh_server; | 110 | ssh->kex->kex[KEX_ECDH_SHA2] = kex_gen_server; |
111 | # endif | 111 | # endif |
112 | #endif /* WITH_OPENSSL */ | 112 | #endif /* WITH_OPENSSL */ |
113 | ssh->kex->kex[KEX_C25519_SHA256] = kexc25519_server; | 113 | ssh->kex->kex[KEX_C25519_SHA256] = kex_gen_server; |
114 | ssh->kex->kex[KEX_KEM_SNTRUP4591761X25519_SHA512] = kex_gen_server; | ||
114 | ssh->kex->load_host_public_key=&_ssh_host_public_key; | 115 | ssh->kex->load_host_public_key=&_ssh_host_public_key; |
115 | ssh->kex->load_host_private_key=&_ssh_host_private_key; | 116 | ssh->kex->load_host_private_key=&_ssh_host_private_key; |
116 | ssh->kex->sign=&_ssh_host_key_sign; | 117 | ssh->kex->sign=&_ssh_host_key_sign; |
117 | } else { | 118 | } else { |
118 | #ifdef WITH_OPENSSL | 119 | #ifdef WITH_OPENSSL |
119 | ssh->kex->kex[KEX_DH_GRP1_SHA1] = kexdh_client; | 120 | ssh->kex->kex[KEX_DH_GRP1_SHA1] = kex_gen_client; |
120 | ssh->kex->kex[KEX_DH_GRP14_SHA1] = kexdh_client; | 121 | ssh->kex->kex[KEX_DH_GRP14_SHA1] = kex_gen_client; |
121 | ssh->kex->kex[KEX_DH_GRP14_SHA256] = kexdh_client; | 122 | ssh->kex->kex[KEX_DH_GRP14_SHA256] = kex_gen_client; |
122 | ssh->kex->kex[KEX_DH_GRP16_SHA512] = kexdh_client; | 123 | ssh->kex->kex[KEX_DH_GRP16_SHA512] = kex_gen_client; |
123 | ssh->kex->kex[KEX_DH_GRP18_SHA512] = kexdh_client; | 124 | ssh->kex->kex[KEX_DH_GRP18_SHA512] = kex_gen_client; |
124 | ssh->kex->kex[KEX_DH_GEX_SHA1] = kexgex_client; | 125 | ssh->kex->kex[KEX_DH_GEX_SHA1] = kexgex_client; |
125 | ssh->kex->kex[KEX_DH_GEX_SHA256] = kexgex_client; | 126 | ssh->kex->kex[KEX_DH_GEX_SHA256] = kexgex_client; |
126 | # ifdef OPENSSL_HAS_ECC | 127 | # ifdef OPENSSL_HAS_ECC |
127 | ssh->kex->kex[KEX_ECDH_SHA2] = kexecdh_client; | 128 | ssh->kex->kex[KEX_ECDH_SHA2] = kex_gen_client; |
128 | # endif | 129 | # endif |
129 | #endif /* WITH_OPENSSL */ | 130 | #endif /* WITH_OPENSSL */ |
130 | ssh->kex->kex[KEX_C25519_SHA256] = kexc25519_client; | 131 | ssh->kex->kex[KEX_C25519_SHA256] = kex_gen_client; |
132 | ssh->kex->kex[KEX_KEM_SNTRUP4591761X25519_SHA512] = kex_gen_client; | ||
131 | ssh->kex->verify_host_key =&_ssh_verify_host_key; | 133 | ssh->kex->verify_host_key =&_ssh_verify_host_key; |
132 | } | 134 | } |
133 | *sshp = ssh; | 135 | *sshp = ssh; |
@@ -236,8 +238,8 @@ ssh_packet_next(struct ssh *ssh, u_char *typep) | |||
236 | * enough data. | 238 | * enough data. |
237 | */ | 239 | */ |
238 | *typep = SSH_MSG_NONE; | 240 | *typep = SSH_MSG_NONE; |
239 | if (ssh->kex->client_version_string == NULL || | 241 | if (sshbuf_len(ssh->kex->client_version) == 0 || |
240 | ssh->kex->server_version_string == NULL) | 242 | sshbuf_len(ssh->kex->server_version) == 0) |
241 | return _ssh_exchange_banner(ssh); | 243 | return _ssh_exchange_banner(ssh); |
242 | /* | 244 | /* |
243 | * If we enough data and a dispatch function then | 245 | * If we enough data and a dispatch function then |
@@ -312,39 +314,46 @@ ssh_input_space(struct ssh *ssh, size_t len) | |||
312 | 314 | ||
313 | /* Read other side's version identification. */ | 315 | /* Read other side's version identification. */ |
314 | int | 316 | int |
315 | _ssh_read_banner(struct ssh *ssh, char **bannerp) | 317 | _ssh_read_banner(struct ssh *ssh, struct sshbuf *banner) |
316 | { | 318 | { |
317 | struct sshbuf *input; | 319 | struct sshbuf *input = ssh_packet_get_input(ssh); |
318 | const char *s; | ||
319 | char buf[256], remote_version[256]; /* must be same size! */ | ||
320 | const char *mismatch = "Protocol mismatch.\r\n"; | 320 | const char *mismatch = "Protocol mismatch.\r\n"; |
321 | int r, remote_major, remote_minor; | 321 | const u_char *s = sshbuf_ptr(input); |
322 | size_t i, n, j, len; | 322 | u_char c; |
323 | char *cp, *remote_version; | ||
324 | int r, remote_major, remote_minor, expect_nl; | ||
325 | size_t n, j; | ||
323 | 326 | ||
324 | *bannerp = NULL; | ||
325 | input = ssh_packet_get_input(ssh); | ||
326 | len = sshbuf_len(input); | ||
327 | s = (const char *)sshbuf_ptr(input); | ||
328 | for (j = n = 0;;) { | 327 | for (j = n = 0;;) { |
329 | for (i = 0; i < sizeof(buf) - 1; i++) { | 328 | sshbuf_reset(banner); |
330 | if (j >= len) | 329 | expect_nl = 0; |
331 | return (0); | 330 | for (;;) { |
332 | buf[i] = s[j++]; | 331 | if (j >= sshbuf_len(input)) |
333 | if (buf[i] == '\r') { | 332 | return 0; /* insufficient data in input buf */ |
334 | buf[i] = '\n'; | 333 | c = s[j++]; |
335 | buf[i + 1] = 0; | 334 | if (c == '\r') { |
336 | continue; /**XXX wait for \n */ | 335 | expect_nl = 1; |
336 | continue; | ||
337 | } | 337 | } |
338 | if (buf[i] == '\n') { | 338 | if (c == '\n') |
339 | buf[i + 1] = 0; | ||
340 | break; | 339 | break; |
341 | } | 340 | if (expect_nl) |
341 | goto bad; | ||
342 | if ((r = sshbuf_put_u8(banner, c)) != 0) | ||
343 | return r; | ||
344 | if (sshbuf_len(banner) > SSH_MAX_BANNER_LEN) | ||
345 | goto bad; | ||
342 | } | 346 | } |
343 | buf[sizeof(buf) - 1] = 0; | 347 | if (sshbuf_len(banner) >= 4 && |
344 | if (strncmp(buf, "SSH-", 4) == 0) | 348 | memcmp(sshbuf_ptr(banner), "SSH-", 4) == 0) |
345 | break; | 349 | break; |
346 | debug("ssh_exchange_identification: %s", buf); | 350 | if ((cp = sshbuf_dup_string(banner)) == NULL) |
347 | if (ssh->kex->server || ++n > 65536) { | 351 | return SSH_ERR_ALLOC_FAIL; |
352 | debug("%s: %s", __func__, cp); | ||
353 | free(cp); | ||
354 | /* Accept lines before banner only on client */ | ||
355 | if (ssh->kex->server || ++n > SSH_MAX_PRE_BANNER_LINES) { | ||
356 | bad: | ||
348 | if ((r = sshbuf_put(ssh_packet_get_output(ssh), | 357 | if ((r = sshbuf_put(ssh_packet_get_output(ssh), |
349 | mismatch, strlen(mismatch))) != 0) | 358 | mismatch, strlen(mismatch))) != 0) |
350 | return r; | 359 | return r; |
@@ -354,11 +363,17 @@ _ssh_read_banner(struct ssh *ssh, char **bannerp) | |||
354 | if ((r = sshbuf_consume(input, j)) != 0) | 363 | if ((r = sshbuf_consume(input, j)) != 0) |
355 | return r; | 364 | return r; |
356 | 365 | ||
366 | if ((cp = sshbuf_dup_string(banner)) == NULL) | ||
367 | return SSH_ERR_ALLOC_FAIL; | ||
368 | /* XXX remote version must be the same size as banner for sscanf */ | ||
369 | if ((remote_version = calloc(1, sshbuf_len(banner))) == NULL) | ||
370 | return SSH_ERR_ALLOC_FAIL; | ||
371 | |||
357 | /* | 372 | /* |
358 | * Check that the versions match. In future this might accept | 373 | * Check that the versions match. In future this might accept |
359 | * several versions and set appropriate flags to handle them. | 374 | * several versions and set appropriate flags to handle them. |
360 | */ | 375 | */ |
361 | if (sscanf(buf, "SSH-%d.%d-%[^\n]\n", | 376 | if (sscanf(cp, "SSH-%d.%d-%[^\n]\n", |
362 | &remote_major, &remote_minor, remote_version) != 3) | 377 | &remote_major, &remote_minor, remote_version) != 3) |
363 | return SSH_ERR_INVALID_FORMAT; | 378 | return SSH_ERR_INVALID_FORMAT; |
364 | debug("Remote protocol version %d.%d, remote software version %.100s", | 379 | debug("Remote protocol version %d.%d, remote software version %.100s", |
@@ -371,27 +386,29 @@ _ssh_read_banner(struct ssh *ssh, char **bannerp) | |||
371 | } | 386 | } |
372 | if (remote_major != 2) | 387 | if (remote_major != 2) |
373 | return SSH_ERR_PROTOCOL_MISMATCH; | 388 | return SSH_ERR_PROTOCOL_MISMATCH; |
374 | chop(buf); | 389 | debug("Remote version string %.100s", cp); |
375 | debug("Remote version string %.100s", buf); | 390 | free(cp); |
376 | if ((*bannerp = strdup(buf)) == NULL) | ||
377 | return SSH_ERR_ALLOC_FAIL; | ||
378 | return 0; | 391 | return 0; |
379 | } | 392 | } |
380 | 393 | ||
381 | /* Send our own protocol version identification. */ | 394 | /* Send our own protocol version identification. */ |
382 | int | 395 | int |
383 | _ssh_send_banner(struct ssh *ssh, char **bannerp) | 396 | _ssh_send_banner(struct ssh *ssh, struct sshbuf *banner) |
384 | { | 397 | { |
385 | char buf[256]; | 398 | char *cp; |
386 | int r; | 399 | int r; |
387 | 400 | ||
388 | snprintf(buf, sizeof buf, "SSH-2.0-%.100s\r\n", SSH_VERSION); | 401 | if ((r = sshbuf_putf(banner, "SSH-2.0-%.100s\r\n", SSH_VERSION)) != 0) |
389 | if ((r = sshbuf_put(ssh_packet_get_output(ssh), buf, strlen(buf))) != 0) | 402 | return r; |
403 | if ((r = sshbuf_putb(ssh_packet_get_output(ssh), banner)) != 0) | ||
404 | return r; | ||
405 | /* Remove trailing \r\n */ | ||
406 | if ((r = sshbuf_consume_end(banner, 2)) != 0) | ||
390 | return r; | 407 | return r; |
391 | chop(buf); | 408 | if ((cp = sshbuf_dup_string(banner)) == NULL) |
392 | debug("Local version string %.100s", buf); | ||
393 | if ((*bannerp = strdup(buf)) == NULL) | ||
394 | return SSH_ERR_ALLOC_FAIL; | 409 | return SSH_ERR_ALLOC_FAIL; |
410 | debug("Local version string %.100s", cp); | ||
411 | free(cp); | ||
395 | return 0; | 412 | return 0; |
396 | } | 413 | } |
397 | 414 | ||
@@ -408,25 +425,25 @@ _ssh_exchange_banner(struct ssh *ssh) | |||
408 | 425 | ||
409 | r = 0; | 426 | r = 0; |
410 | if (kex->server) { | 427 | if (kex->server) { |
411 | if (kex->server_version_string == NULL) | 428 | if (sshbuf_len(ssh->kex->server_version) == 0) |
412 | r = _ssh_send_banner(ssh, &kex->server_version_string); | 429 | r = _ssh_send_banner(ssh, ssh->kex->server_version); |
413 | if (r == 0 && | 430 | if (r == 0 && |
414 | kex->server_version_string != NULL && | 431 | sshbuf_len(ssh->kex->server_version) != 0 && |
415 | kex->client_version_string == NULL) | 432 | sshbuf_len(ssh->kex->client_version) == 0) |
416 | r = _ssh_read_banner(ssh, &kex->client_version_string); | 433 | r = _ssh_read_banner(ssh, ssh->kex->client_version); |
417 | } else { | 434 | } else { |
418 | if (kex->server_version_string == NULL) | 435 | if (sshbuf_len(ssh->kex->server_version) == 0) |
419 | r = _ssh_read_banner(ssh, &kex->server_version_string); | 436 | r = _ssh_read_banner(ssh, ssh->kex->server_version); |
420 | if (r == 0 && | 437 | if (r == 0 && |
421 | kex->server_version_string != NULL && | 438 | sshbuf_len(ssh->kex->server_version) != 0 && |
422 | kex->client_version_string == NULL) | 439 | sshbuf_len(ssh->kex->client_version) == 0) |
423 | r = _ssh_send_banner(ssh, &kex->client_version_string); | 440 | r = _ssh_send_banner(ssh, ssh->kex->client_version); |
424 | } | 441 | } |
425 | if (r != 0) | 442 | if (r != 0) |
426 | return r; | 443 | return r; |
427 | /* start initial kex as soon as we have exchanged the banners */ | 444 | /* start initial kex as soon as we have exchanged the banners */ |
428 | if (kex->server_version_string != NULL && | 445 | if (sshbuf_len(ssh->kex->server_version) != 0 && |
429 | kex->client_version_string != NULL) { | 446 | sshbuf_len(ssh->kex->client_version) != 0) { |
430 | if ((r = _ssh_order_hostkeyalgs(ssh)) != 0 || | 447 | if ((r = _ssh_order_hostkeyalgs(ssh)) != 0 || |
431 | (r = kex_send_kexinit(ssh)) != 0) | 448 | (r = kex_send_kexinit(ssh)) != 0) |
432 | return r; | 449 | return r; |
@@ -532,9 +549,10 @@ _ssh_order_hostkeyalgs(struct ssh *ssh) | |||
532 | } | 549 | } |
533 | 550 | ||
534 | int | 551 | int |
535 | _ssh_host_key_sign(struct sshkey *privkey, struct sshkey *pubkey, | 552 | _ssh_host_key_sign(struct ssh *ssh, struct sshkey *privkey, |
536 | u_char **signature, size_t *slen, const u_char *data, size_t dlen, | 553 | struct sshkey *pubkey, u_char **signature, size_t *slen, |
537 | const char *alg, u_int compat) | 554 | const u_char *data, size_t dlen, const char *alg) |
538 | { | 555 | { |
539 | return sshkey_sign(privkey, signature, slen, data, dlen, alg, compat); | 556 | return sshkey_sign(privkey, signature, slen, data, dlen, |
557 | alg, ssh->compat); | ||
540 | } | 558 | } |
diff --git a/ssh_config b/ssh_config index c12f5ef52..5e8ef548b 100644 --- a/ssh_config +++ b/ssh_config | |||
@@ -1,4 +1,4 @@ | |||
1 | # $OpenBSD: ssh_config,v 1.33 2017/05/07 23:12:57 djm Exp $ | 1 | # $OpenBSD: ssh_config,v 1.34 2019/02/04 02:39:42 dtucker Exp $ |
2 | 2 | ||
3 | # This is the ssh client system-wide configuration file. See | 3 | # This is the ssh client system-wide configuration file. See |
4 | # ssh_config(5) for more information. This file provides defaults for | 4 | # ssh_config(5) for more information. This file provides defaults for |
@@ -34,7 +34,6 @@ | |||
34 | # IdentityFile ~/.ssh/id_ecdsa | 34 | # IdentityFile ~/.ssh/id_ecdsa |
35 | # IdentityFile ~/.ssh/id_ed25519 | 35 | # IdentityFile ~/.ssh/id_ed25519 |
36 | # Port 22 | 36 | # Port 22 |
37 | # Protocol 2 | ||
38 | # Ciphers aes128-ctr,aes192-ctr,aes256-ctr,aes128-cbc,3des-cbc | 37 | # Ciphers aes128-ctr,aes192-ctr,aes256-ctr,aes128-cbc,3des-cbc |
39 | # MACs hmac-md5,hmac-sha1,umac-64@openssh.com | 38 | # MACs hmac-md5,hmac-sha1,umac-64@openssh.com |
40 | # EscapeChar ~ | 39 | # EscapeChar ~ |
diff --git a/ssh_config.0 b/ssh_config.0 index eb7f929e6..10f1c2e9d 100644 --- a/ssh_config.0 +++ b/ssh_config.0 | |||
@@ -54,22 +54,28 @@ DESCRIPTION | |||
54 | Match keyword) to be used only when the conditions following the | 54 | Match keyword) to be used only when the conditions following the |
55 | Match keyword are satisfied. Match conditions are specified | 55 | Match keyword are satisfied. Match conditions are specified |
56 | using one or more criteria or the single token all which always | 56 | using one or more criteria or the single token all which always |
57 | matches. The available criteria keywords are: canonical, exec, | 57 | matches. The available criteria keywords are: canonical, final, |
58 | host, originalhost, user, and localuser. The all criteria must | 58 | exec, host, originalhost, user, and localuser. The all criteria |
59 | appear alone or immediately after canonical. Other criteria may | 59 | must appear alone or immediately after canonical or final. Other |
60 | be combined arbitrarily. All criteria but all and canonical | 60 | criteria may be combined arbitrarily. All criteria but all, |
61 | require an argument. Criteria may be negated by prepending an | 61 | canonical, and final require an argument. Criteria may be |
62 | exclamation mark (M-bM-^@M-^X!M-bM-^@M-^Y). | 62 | negated by prepending an exclamation mark (M-bM-^@M-^X!M-bM-^@M-^Y). |
63 | 63 | ||
64 | The canonical keyword matches only when the configuration file is | 64 | The canonical keyword matches only when the configuration file is |
65 | being re-parsed after hostname canonicalization (see the | 65 | being re-parsed after hostname canonicalization (see the |
66 | CanonicalizeHostname option.) This may be useful to specify | 66 | CanonicalizeHostname option). This may be useful to specify |
67 | conditions that work with canonical host names only. The exec | 67 | conditions that work with canonical host names only. |
68 | keyword executes the specified command under the user's shell. | 68 | |
69 | If the command returns a zero exit status then the condition is | 69 | The final keyword requests that the configuration be re-parsed |
70 | considered true. Commands containing whitespace characters must | 70 | (regardless of whether CanonicalizeHostname is enabled), and |
71 | be quoted. Arguments to exec accept the tokens described in the | 71 | matches only during this final pass. If CanonicalizeHostname is |
72 | TOKENS section. | 72 | enabled, then canonical and final match during the same pass. |
73 | |||
74 | The exec keyword executes the specified command under the user's | ||
75 | shell. If the command returns a zero exit status then the | ||
76 | condition is considered true. Commands containing whitespace | ||
77 | characters must be quoted. Arguments to exec accept the tokens | ||
78 | described in the TOKENS section. | ||
73 | 79 | ||
74 | The other keywords' criteria must be single entries or comma- | 80 | The other keywords' criteria must be single entries or comma- |
75 | separated lists and may use the wildcard and negation operators | 81 | separated lists and may use the wildcard and negation operators |
@@ -603,7 +609,6 @@ DESCRIPTION | |||
603 | diffie-hellman-group-exchange-sha256, | 609 | diffie-hellman-group-exchange-sha256, |
604 | diffie-hellman-group16-sha512, | 610 | diffie-hellman-group16-sha512, |
605 | diffie-hellman-group18-sha512, | 611 | diffie-hellman-group18-sha512, |
606 | diffie-hellman-group-exchange-sha1, | ||
607 | diffie-hellman-group14-sha256, | 612 | diffie-hellman-group14-sha256, |
608 | diffie-hellman-group14-sha1 | 613 | diffie-hellman-group14-sha1 |
609 | 614 | ||
@@ -690,10 +695,11 @@ DESCRIPTION | |||
690 | be yes or no (the default). | 695 | be yes or no (the default). |
691 | 696 | ||
692 | PKCS11Provider | 697 | PKCS11Provider |
693 | Specifies which PKCS#11 provider to use. The argument to this | 698 | Specifies which PKCS#11 provider to use or none to indicate that |
694 | keyword is the PKCS#11 shared library ssh(1) should use to | 699 | no provider should be used (the default). The argument to this |
695 | communicate with a PKCS#11 token providing the user's private RSA | 700 | keyword is a path to the PKCS#11 shared library ssh(1) should use |
696 | key. | 701 | to communicate with a PKCS#11 token providing keys for user |
702 | authentication. | ||
697 | 703 | ||
698 | Port Specifies the port number to connect on the remote host. The | 704 | Port Specifies the port number to connect on the remote host. The |
699 | default is 22. | 705 | default is 22. |
@@ -741,6 +747,11 @@ DESCRIPTION | |||
741 | whichever is specified first will prevent later instances of the | 747 | whichever is specified first will prevent later instances of the |
742 | other from taking effect. | 748 | other from taking effect. |
743 | 749 | ||
750 | Note also that the configuration for the destination host (either | ||
751 | supplied via the command-line or the configuration file) is not | ||
752 | generally applied to jump hosts. ~/.ssh/config should be used if | ||
753 | specific configuration is required for jump hosts. | ||
754 | |||
744 | ProxyUseFdpass | 755 | ProxyUseFdpass |
745 | Specifies that ProxyCommand will pass a connected file descriptor | 756 | Specifies that ProxyCommand will pass a connected file descriptor |
746 | back to ssh(1) instead of continuing to execute and pass data. | 757 | back to ssh(1) instead of continuing to execute and pass data. |
@@ -1087,8 +1098,7 @@ FILES | |||
1087 | This is the per-user configuration file. The format of this file | 1098 | This is the per-user configuration file. The format of this file |
1088 | is described above. This file is used by the SSH client. | 1099 | is described above. This file is used by the SSH client. |
1089 | Because of the potential for abuse, this file must have strict | 1100 | Because of the potential for abuse, this file must have strict |
1090 | permissions: read/write for the user, and not accessible by | 1101 | permissions: read/write for the user, and not writable by others. |
1091 | others. | ||
1092 | 1102 | ||
1093 | /etc/ssh/ssh_config | 1103 | /etc/ssh/ssh_config |
1094 | Systemwide configuration file. This file provides defaults for | 1104 | Systemwide configuration file. This file provides defaults for |
@@ -1106,4 +1116,4 @@ AUTHORS | |||
1106 | created OpenSSH. Markus Friedl contributed the support for SSH protocol | 1116 | created OpenSSH. Markus Friedl contributed the support for SSH protocol |
1107 | versions 1.5 and 2.0. | 1117 | versions 1.5 and 2.0. |
1108 | 1118 | ||
1109 | OpenBSD 6.4 October 3, 2018 OpenBSD 6.4 | 1119 | OpenBSD 6.5 March 1, 2019 OpenBSD 6.5 |
diff --git a/ssh_config.5 b/ssh_config.5 index 4d5b01d3e..412629637 100644 --- a/ssh_config.5 +++ b/ssh_config.5 | |||
@@ -33,8 +33,8 @@ | |||
33 | .\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF | 33 | .\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF |
34 | .\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | 34 | .\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |
35 | .\" | 35 | .\" |
36 | .\" $OpenBSD: ssh_config.5,v 1.286 2018/10/03 06:38:35 djm Exp $ | 36 | .\" $OpenBSD: ssh_config.5,v 1.292 2019/03/01 02:16:47 djm Exp $ |
37 | .Dd $Mdocdate: October 3 2018 $ | 37 | .Dd $Mdocdate: March 1 2019 $ |
38 | .Dt SSH_CONFIG 5 | 38 | .Dt SSH_CONFIG 5 |
39 | .Os | 39 | .Os |
40 | .Sh NAME | 40 | .Sh NAME |
@@ -139,6 +139,7 @@ or the single token | |||
139 | which always matches. | 139 | which always matches. |
140 | The available criteria keywords are: | 140 | The available criteria keywords are: |
141 | .Cm canonical , | 141 | .Cm canonical , |
142 | .Cm final , | ||
142 | .Cm exec , | 143 | .Cm exec , |
143 | .Cm host , | 144 | .Cm host , |
144 | .Cm originalhost , | 145 | .Cm originalhost , |
@@ -148,12 +149,15 @@ and | |||
148 | The | 149 | The |
149 | .Cm all | 150 | .Cm all |
150 | criteria must appear alone or immediately after | 151 | criteria must appear alone or immediately after |
151 | .Cm canonical . | 152 | .Cm canonical |
153 | or | ||
154 | .Cm final . | ||
152 | Other criteria may be combined arbitrarily. | 155 | Other criteria may be combined arbitrarily. |
153 | All criteria but | 156 | All criteria but |
154 | .Cm all | 157 | .Cm all , |
158 | .Cm canonical , | ||
155 | and | 159 | and |
156 | .Cm canonical | 160 | .Cm final |
157 | require an argument. | 161 | require an argument. |
158 | Criteria may be negated by prepending an exclamation mark | 162 | Criteria may be negated by prepending an exclamation mark |
159 | .Pq Sq !\& . | 163 | .Pq Sq !\& . |
@@ -163,9 +167,23 @@ The | |||
163 | keyword matches only when the configuration file is being re-parsed | 167 | keyword matches only when the configuration file is being re-parsed |
164 | after hostname canonicalization (see the | 168 | after hostname canonicalization (see the |
165 | .Cm CanonicalizeHostname | 169 | .Cm CanonicalizeHostname |
166 | option.) | 170 | option). |
167 | This may be useful to specify conditions that work with canonical host | 171 | This may be useful to specify conditions that work with canonical host |
168 | names only. | 172 | names only. |
173 | .Pp | ||
174 | The | ||
175 | .Cm final | ||
176 | keyword requests that the configuration be re-parsed (regardless of whether | ||
177 | .Cm CanonicalizeHostname | ||
178 | is enabled), and matches only during this final pass. | ||
179 | If | ||
180 | .Cm CanonicalizeHostname | ||
181 | is enabled, then | ||
182 | .Cm canonical | ||
183 | and | ||
184 | .Cm final | ||
185 | match during the same pass. | ||
186 | .Pp | ||
169 | The | 187 | The |
170 | .Cm exec | 188 | .Cm exec |
171 | keyword executes the specified command under the user's shell. | 189 | keyword executes the specified command under the user's shell. |
@@ -1040,7 +1058,6 @@ ecdh-sha2-nistp256,ecdh-sha2-nistp384,ecdh-sha2-nistp521, | |||
1040 | diffie-hellman-group-exchange-sha256, | 1058 | diffie-hellman-group-exchange-sha256, |
1041 | diffie-hellman-group16-sha512, | 1059 | diffie-hellman-group16-sha512, |
1042 | diffie-hellman-group18-sha512, | 1060 | diffie-hellman-group18-sha512, |
1043 | diffie-hellman-group-exchange-sha1, | ||
1044 | diffie-hellman-group14-sha256, | 1061 | diffie-hellman-group14-sha256, |
1045 | diffie-hellman-group14-sha1 | 1062 | diffie-hellman-group14-sha1 |
1046 | .Ed | 1063 | .Ed |
@@ -1163,11 +1180,13 @@ or | |||
1163 | .Cm no | 1180 | .Cm no |
1164 | (the default). | 1181 | (the default). |
1165 | .It Cm PKCS11Provider | 1182 | .It Cm PKCS11Provider |
1166 | Specifies which PKCS#11 provider to use. | 1183 | Specifies which PKCS#11 provider to use or |
1167 | The argument to this keyword is the PKCS#11 shared library | 1184 | .Cm none |
1185 | to indicate that no provider should be used (the default). | ||
1186 | The argument to this keyword is a path to the PKCS#11 shared library | ||
1168 | .Xr ssh 1 | 1187 | .Xr ssh 1 |
1169 | should use to communicate with a PKCS#11 token providing the user's | 1188 | should use to communicate with a PKCS#11 token providing keys for user |
1170 | private RSA key. | 1189 | authentication. |
1171 | .It Cm Port | 1190 | .It Cm Port |
1172 | Specifies the port number to connect on the remote host. | 1191 | Specifies the port number to connect on the remote host. |
1173 | The default is 22. | 1192 | The default is 22. |
@@ -1245,6 +1264,12 @@ Note that this option will compete with the | |||
1245 | .Cm ProxyCommand | 1264 | .Cm ProxyCommand |
1246 | option - whichever is specified first will prevent later instances of the | 1265 | option - whichever is specified first will prevent later instances of the |
1247 | other from taking effect. | 1266 | other from taking effect. |
1267 | .Pp | ||
1268 | Note also that the configuration for the destination host (either supplied | ||
1269 | via the command-line or the configuration file) is not generally applied | ||
1270 | to jump hosts. | ||
1271 | .Pa ~/.ssh/config | ||
1272 | should be used if specific configuration is required for jump hosts. | ||
1248 | .It Cm ProxyUseFdpass | 1273 | .It Cm ProxyUseFdpass |
1249 | Specifies that | 1274 | Specifies that |
1250 | .Cm ProxyCommand | 1275 | .Cm ProxyCommand |
@@ -1785,7 +1810,7 @@ This is the per-user configuration file. | |||
1785 | The format of this file is described above. | 1810 | The format of this file is described above. |
1786 | This file is used by the SSH client. | 1811 | This file is used by the SSH client. |
1787 | Because of the potential for abuse, this file must have strict permissions: | 1812 | Because of the potential for abuse, this file must have strict permissions: |
1788 | read/write for the user, and not accessible by others. | 1813 | read/write for the user, and not writable by others. |
1789 | .It Pa /etc/ssh/ssh_config | 1814 | .It Pa /etc/ssh/ssh_config |
1790 | Systemwide configuration file. | 1815 | Systemwide configuration file. |
1791 | This file provides defaults for those | 1816 | This file provides defaults for those |
diff --git a/sshbuf-getput-crypto.c b/sshbuf-getput-crypto.c index d0d791b50..3dd1e1446 100644 --- a/sshbuf-getput-crypto.c +++ b/sshbuf-getput-crypto.c | |||
@@ -1,4 +1,4 @@ | |||
1 | /* $OpenBSD: sshbuf-getput-crypto.c,v 1.5 2016/01/12 23:42:54 djm Exp $ */ | 1 | /* $OpenBSD: sshbuf-getput-crypto.c,v 1.7 2019/01/21 09:54:11 djm Exp $ */ |
2 | /* | 2 | /* |
3 | * Copyright (c) 2011 Damien Miller | 3 | * Copyright (c) 2011 Damien Miller |
4 | * | 4 | * |
@@ -32,41 +32,24 @@ | |||
32 | #include "sshbuf.h" | 32 | #include "sshbuf.h" |
33 | 33 | ||
34 | int | 34 | int |
35 | sshbuf_get_bignum2(struct sshbuf *buf, BIGNUM *v) | 35 | sshbuf_get_bignum2(struct sshbuf *buf, BIGNUM **valp) |
36 | { | 36 | { |
37 | BIGNUM *v; | ||
37 | const u_char *d; | 38 | const u_char *d; |
38 | size_t len; | 39 | size_t len; |
39 | int r; | 40 | int r; |
40 | 41 | ||
42 | if (valp != NULL) | ||
43 | *valp = NULL; | ||
41 | if ((r = sshbuf_get_bignum2_bytes_direct(buf, &d, &len)) != 0) | 44 | if ((r = sshbuf_get_bignum2_bytes_direct(buf, &d, &len)) != 0) |
42 | return r; | 45 | return r; |
43 | if (v != NULL && BN_bin2bn(d, len, v) == NULL) | 46 | if (valp != NULL) { |
44 | return SSH_ERR_ALLOC_FAIL; | 47 | if ((v = BN_new()) == NULL || |
45 | return 0; | 48 | BN_bin2bn(d, len, v) == NULL) { |
46 | } | 49 | BN_clear_free(v); |
47 | 50 | return SSH_ERR_ALLOC_FAIL; | |
48 | int | 51 | } |
49 | sshbuf_get_bignum1(struct sshbuf *buf, BIGNUM *v) | 52 | *valp = v; |
50 | { | ||
51 | const u_char *d = sshbuf_ptr(buf); | ||
52 | u_int16_t len_bits; | ||
53 | size_t len_bytes; | ||
54 | |||
55 | /* Length in bits */ | ||
56 | if (sshbuf_len(buf) < 2) | ||
57 | return SSH_ERR_MESSAGE_INCOMPLETE; | ||
58 | len_bits = PEEK_U16(d); | ||
59 | len_bytes = (len_bits + 7) >> 3; | ||
60 | if (len_bytes > SSHBUF_MAX_BIGNUM) | ||
61 | return SSH_ERR_BIGNUM_TOO_LARGE; | ||
62 | if (sshbuf_len(buf) < 2 + len_bytes) | ||
63 | return SSH_ERR_MESSAGE_INCOMPLETE; | ||
64 | if (v != NULL && BN_bin2bn(d + 2, len_bytes, v) == NULL) | ||
65 | return SSH_ERR_ALLOC_FAIL; | ||
66 | if (sshbuf_consume(buf, 2 + len_bytes) != 0) { | ||
67 | SSHBUF_DBG(("SSH_ERR_INTERNAL_ERROR")); | ||
68 | SSHBUF_ABORT(); | ||
69 | return SSH_ERR_INTERNAL_ERROR; | ||
70 | } | 53 | } |
71 | return 0; | 54 | return 0; |
72 | } | 55 | } |
@@ -165,28 +148,6 @@ sshbuf_put_bignum2(struct sshbuf *buf, const BIGNUM *v) | |||
165 | return 0; | 148 | return 0; |
166 | } | 149 | } |
167 | 150 | ||
168 | int | ||
169 | sshbuf_put_bignum1(struct sshbuf *buf, const BIGNUM *v) | ||
170 | { | ||
171 | int r, len_bits = BN_num_bits(v); | ||
172 | size_t len_bytes = (len_bits + 7) / 8; | ||
173 | u_char d[SSHBUF_MAX_BIGNUM], *dp; | ||
174 | |||
175 | if (len_bits < 0 || len_bytes > SSHBUF_MAX_BIGNUM) | ||
176 | return SSH_ERR_INVALID_ARGUMENT; | ||
177 | if (BN_bn2bin(v, d) != (int)len_bytes) | ||
178 | return SSH_ERR_INTERNAL_ERROR; /* Shouldn't happen */ | ||
179 | if ((r = sshbuf_reserve(buf, len_bytes + 2, &dp)) < 0) { | ||
180 | explicit_bzero(d, sizeof(d)); | ||
181 | return r; | ||
182 | } | ||
183 | POKE_U16(dp, len_bits); | ||
184 | if (len_bytes != 0) | ||
185 | memcpy(dp + 2, d, len_bytes); | ||
186 | explicit_bzero(d, sizeof(d)); | ||
187 | return 0; | ||
188 | } | ||
189 | |||
190 | #ifdef OPENSSL_HAS_ECC | 151 | #ifdef OPENSSL_HAS_ECC |
191 | int | 152 | int |
192 | sshbuf_put_ec(struct sshbuf *buf, const EC_POINT *v, const EC_GROUP *g) | 153 | sshbuf_put_ec(struct sshbuf *buf, const EC_POINT *v, const EC_GROUP *g) |
@@ -1,4 +1,4 @@ | |||
1 | /* $OpenBSD: sshbuf.c,v 1.12 2018/07/09 21:56:06 markus Exp $ */ | 1 | /* $OpenBSD: sshbuf.c,v 1.13 2018/11/16 06:10:29 djm Exp $ */ |
2 | /* | 2 | /* |
3 | * Copyright (c) 2011 Damien Miller | 3 | * Copyright (c) 2011 Damien Miller |
4 | * | 4 | * |
@@ -143,12 +143,7 @@ sshbuf_free(struct sshbuf *buf) | |||
143 | */ | 143 | */ |
144 | if (sshbuf_check_sanity(buf) != 0) | 144 | if (sshbuf_check_sanity(buf) != 0) |
145 | return; | 145 | return; |
146 | /* | 146 | |
147 | * If we are a child, the free our parent to decrement its reference | ||
148 | * count and possibly free it. | ||
149 | */ | ||
150 | sshbuf_free(buf->parent); | ||
151 | buf->parent = NULL; | ||
152 | /* | 147 | /* |
153 | * If we are a parent with still-extant children, then don't free just | 148 | * If we are a parent with still-extant children, then don't free just |
154 | * yet. The last child's call to sshbuf_free should decrement our | 149 | * yet. The last child's call to sshbuf_free should decrement our |
@@ -157,6 +152,14 @@ sshbuf_free(struct sshbuf *buf) | |||
157 | buf->refcount--; | 152 | buf->refcount--; |
158 | if (buf->refcount > 0) | 153 | if (buf->refcount > 0) |
159 | return; | 154 | return; |
155 | |||
156 | /* | ||
157 | * If we are a child, the free our parent to decrement its reference | ||
158 | * count and possibly free it. | ||
159 | */ | ||
160 | sshbuf_free(buf->parent); | ||
161 | buf->parent = NULL; | ||
162 | |||
160 | if (!buf->readonly) { | 163 | if (!buf->readonly) { |
161 | explicit_bzero(buf->d, buf->alloc); | 164 | explicit_bzero(buf->d, buf->alloc); |
162 | free(buf->d); | 165 | free(buf->d); |
@@ -1,4 +1,4 @@ | |||
1 | /* $OpenBSD: sshbuf.h,v 1.11 2018/07/09 21:56:06 markus Exp $ */ | 1 | /* $OpenBSD: sshbuf.h,v 1.13 2019/01/21 09:54:11 djm Exp $ */ |
2 | /* | 2 | /* |
3 | * Copyright (c) 2011 Damien Miller | 3 | * Copyright (c) 2011 Damien Miller |
4 | * | 4 | * |
@@ -212,10 +212,8 @@ int sshbuf_put_bignum2_bytes(struct sshbuf *buf, const void *v, size_t len); | |||
212 | int sshbuf_get_bignum2_bytes_direct(struct sshbuf *buf, | 212 | int sshbuf_get_bignum2_bytes_direct(struct sshbuf *buf, |
213 | const u_char **valp, size_t *lenp); | 213 | const u_char **valp, size_t *lenp); |
214 | #ifdef WITH_OPENSSL | 214 | #ifdef WITH_OPENSSL |
215 | int sshbuf_get_bignum2(struct sshbuf *buf, BIGNUM *v); | 215 | int sshbuf_get_bignum2(struct sshbuf *buf, BIGNUM **valp); |
216 | int sshbuf_get_bignum1(struct sshbuf *buf, BIGNUM *v); | ||
217 | int sshbuf_put_bignum2(struct sshbuf *buf, const BIGNUM *v); | 216 | int sshbuf_put_bignum2(struct sshbuf *buf, const BIGNUM *v); |
218 | int sshbuf_put_bignum1(struct sshbuf *buf, const BIGNUM *v); | ||
219 | # ifdef OPENSSL_HAS_ECC | 217 | # ifdef OPENSSL_HAS_ECC |
220 | int sshbuf_get_ec(struct sshbuf *buf, EC_POINT *v, const EC_GROUP *g); | 218 | int sshbuf_get_ec(struct sshbuf *buf, EC_POINT *v, const EC_GROUP *g); |
221 | int sshbuf_get_eckey(struct sshbuf *buf, EC_KEY *v); | 219 | int sshbuf_get_eckey(struct sshbuf *buf, EC_KEY *v); |
diff --git a/sshconnect.c b/sshconnect.c index 6d819279e..fdcdcd855 100644 --- a/sshconnect.c +++ b/sshconnect.c | |||
@@ -1,4 +1,4 @@ | |||
1 | /* $OpenBSD: sshconnect.c,v 1.305 2018/09/20 03:30:44 djm Exp $ */ | 1 | /* $OpenBSD: sshconnect.c,v 1.314 2019/02/27 19:37:01 markus Exp $ */ |
2 | /* | 2 | /* |
3 | * Author: Tatu Ylonen <ylo@cs.hut.fi> | 3 | * Author: Tatu Ylonen <ylo@cs.hut.fi> |
4 | * Copyright (c) 1995 Tatu Ylonen <ylo@cs.hut.fi>, Espoo, Finland | 4 | * Copyright (c) 1995 Tatu Ylonen <ylo@cs.hut.fi>, Espoo, Finland |
@@ -68,9 +68,8 @@ | |||
68 | #include "authfile.h" | 68 | #include "authfile.h" |
69 | #include "ssherr.h" | 69 | #include "ssherr.h" |
70 | #include "authfd.h" | 70 | #include "authfd.h" |
71 | #include "kex.h" | ||
71 | 72 | ||
72 | char *client_version_string = NULL; | ||
73 | char *server_version_string = NULL; | ||
74 | struct sshkey *previous_host_key = NULL; | 73 | struct sshkey *previous_host_key = NULL; |
75 | 74 | ||
76 | static int matching_host_key_dns = 0; | 75 | static int matching_host_key_dns = 0; |
@@ -78,6 +77,7 @@ static int matching_host_key_dns = 0; | |||
78 | static pid_t proxy_command_pid = 0; | 77 | static pid_t proxy_command_pid = 0; |
79 | 78 | ||
80 | /* import */ | 79 | /* import */ |
80 | extern int debug_flag; | ||
81 | extern Options options; | 81 | extern Options options; |
82 | extern char *__progname; | 82 | extern char *__progname; |
83 | 83 | ||
@@ -99,6 +99,24 @@ expand_proxy_command(const char *proxy_command, const char *user, | |||
99 | return ret; | 99 | return ret; |
100 | } | 100 | } |
101 | 101 | ||
102 | static void | ||
103 | stderr_null(void) | ||
104 | { | ||
105 | int devnull; | ||
106 | |||
107 | if ((devnull = open(_PATH_DEVNULL, O_WRONLY)) == -1) { | ||
108 | error("Can't open %s for stderr redirection: %s", | ||
109 | _PATH_DEVNULL, strerror(errno)); | ||
110 | return; | ||
111 | } | ||
112 | if (devnull == STDERR_FILENO) | ||
113 | return; | ||
114 | if (dup2(devnull, STDERR_FILENO) == -1) | ||
115 | error("Cannot redirect stderr to %s", _PATH_DEVNULL); | ||
116 | if (devnull > STDERR_FILENO) | ||
117 | close(devnull); | ||
118 | } | ||
119 | |||
102 | /* | 120 | /* |
103 | * Connect to the given ssh server using a proxy command that passes a | 121 | * Connect to the given ssh server using a proxy command that passes a |
104 | * a connected fd back to us. | 122 | * a connected fd back to us. |
@@ -141,9 +159,13 @@ ssh_proxy_fdpass_connect(struct ssh *ssh, const char *host, u_short port, | |||
141 | close(sp[0]); | 159 | close(sp[0]); |
142 | 160 | ||
143 | /* | 161 | /* |
144 | * Stderr is left as it is so that error messages get | 162 | * Stderr is left for non-ControlPersist connections is so |
145 | * printed on the user's terminal. | 163 | * error messages may be printed on the user's terminal. |
146 | */ | 164 | */ |
165 | if (!debug_flag && options.control_path != NULL && | ||
166 | options.control_persist) | ||
167 | stderr_null(); | ||
168 | |||
147 | argv[0] = shell; | 169 | argv[0] = shell; |
148 | argv[1] = "-c"; | 170 | argv[1] = "-c"; |
149 | argv[2] = command_string; | 171 | argv[2] = command_string; |
@@ -219,8 +241,14 @@ ssh_proxy_connect(struct ssh *ssh, const char *host, u_short port, | |||
219 | /* Cannot be 1 because pin allocated two descriptors. */ | 241 | /* Cannot be 1 because pin allocated two descriptors. */ |
220 | close(pout[1]); | 242 | close(pout[1]); |
221 | 243 | ||
222 | /* Stderr is left as it is so that error messages get | 244 | /* |
223 | printed on the user's terminal. */ | 245 | * Stderr is left for non-ControlPersist connections is so |
246 | * error messages may be printed on the user's terminal. | ||
247 | */ | ||
248 | if (!debug_flag && options.control_path != NULL && | ||
249 | options.control_persist) | ||
250 | stderr_null(); | ||
251 | |||
224 | argv[0] = shell; | 252 | argv[0] = shell; |
225 | argv[1] = "-c"; | 253 | argv[1] = "-c"; |
226 | argv[2] = command_string; | 254 | argv[2] = command_string; |
@@ -369,10 +397,6 @@ ssh_create_socket(struct addrinfo *ai) | |||
369 | error("getaddrinfo: no addrs"); | 397 | error("getaddrinfo: no addrs"); |
370 | goto fail; | 398 | goto fail; |
371 | } | 399 | } |
372 | if (res->ai_addrlen > sizeof(bindaddr)) { | ||
373 | error("%s: addr doesn't fit", __func__); | ||
374 | goto fail; | ||
375 | } | ||
376 | memcpy(&bindaddr, res->ai_addr, res->ai_addrlen); | 400 | memcpy(&bindaddr, res->ai_addr, res->ai_addrlen); |
377 | bindaddrlen = res->ai_addrlen; | 401 | bindaddrlen = res->ai_addrlen; |
378 | } else if (options.bind_interface != NULL) { | 402 | } else if (options.bind_interface != NULL) { |
@@ -420,73 +444,6 @@ fail: | |||
420 | } | 444 | } |
421 | 445 | ||
422 | /* | 446 | /* |
423 | * Wait up to *timeoutp milliseconds for fd to be readable. Updates | ||
424 | * *timeoutp with time remaining. | ||
425 | * Returns 0 if fd ready or -1 on timeout or error (see errno). | ||
426 | */ | ||
427 | static int | ||
428 | waitrfd(int fd, int *timeoutp) | ||
429 | { | ||
430 | struct pollfd pfd; | ||
431 | struct timeval t_start; | ||
432 | int oerrno, r; | ||
433 | |||
434 | monotime_tv(&t_start); | ||
435 | pfd.fd = fd; | ||
436 | pfd.events = POLLIN; | ||
437 | for (; *timeoutp >= 0;) { | ||
438 | r = poll(&pfd, 1, *timeoutp); | ||
439 | oerrno = errno; | ||
440 | ms_subtract_diff(&t_start, timeoutp); | ||
441 | errno = oerrno; | ||
442 | if (r > 0) | ||
443 | return 0; | ||
444 | else if (r == -1 && errno != EAGAIN) | ||
445 | return -1; | ||
446 | else if (r == 0) | ||
447 | break; | ||
448 | } | ||
449 | /* timeout */ | ||
450 | errno = ETIMEDOUT; | ||
451 | return -1; | ||
452 | } | ||
453 | |||
454 | static int | ||
455 | timeout_connect(int sockfd, const struct sockaddr *serv_addr, | ||
456 | socklen_t addrlen, int *timeoutp) | ||
457 | { | ||
458 | int optval = 0; | ||
459 | socklen_t optlen = sizeof(optval); | ||
460 | |||
461 | /* No timeout: just do a blocking connect() */ | ||
462 | if (*timeoutp <= 0) | ||
463 | return connect(sockfd, serv_addr, addrlen); | ||
464 | |||
465 | set_nonblock(sockfd); | ||
466 | if (connect(sockfd, serv_addr, addrlen) == 0) { | ||
467 | /* Succeeded already? */ | ||
468 | unset_nonblock(sockfd); | ||
469 | return 0; | ||
470 | } else if (errno != EINPROGRESS) | ||
471 | return -1; | ||
472 | |||
473 | if (waitrfd(sockfd, timeoutp) == -1) | ||
474 | return -1; | ||
475 | |||
476 | /* Completed or failed */ | ||
477 | if (getsockopt(sockfd, SOL_SOCKET, SO_ERROR, &optval, &optlen) == -1) { | ||
478 | debug("getsockopt: %s", strerror(errno)); | ||
479 | return -1; | ||
480 | } | ||
481 | if (optval != 0) { | ||
482 | errno = optval; | ||
483 | return -1; | ||
484 | } | ||
485 | unset_nonblock(sockfd); | ||
486 | return 0; | ||
487 | } | ||
488 | |||
489 | /* | ||
490 | * Opens a TCP/IP connection to the remote server on the given host. | 447 | * Opens a TCP/IP connection to the remote server on the given host. |
491 | * The address of the remote host will be returned in hostaddr. | 448 | * The address of the remote host will be returned in hostaddr. |
492 | * If port is 0, the default port will be used. | 449 | * If port is 0, the default port will be used. |
@@ -500,7 +457,7 @@ ssh_connect_direct(struct ssh *ssh, const char *host, struct addrinfo *aitop, | |||
500 | struct sockaddr_storage *hostaddr, u_short port, int family, | 457 | struct sockaddr_storage *hostaddr, u_short port, int family, |
501 | int connection_attempts, int *timeout_ms, int want_keepalive) | 458 | int connection_attempts, int *timeout_ms, int want_keepalive) |
502 | { | 459 | { |
503 | int on = 1; | 460 | int on = 1, saved_timeout_ms = *timeout_ms; |
504 | int oerrno, sock = -1, attempt; | 461 | int oerrno, sock = -1, attempt; |
505 | char ntop[NI_MAXHOST], strport[NI_MAXSERV]; | 462 | char ntop[NI_MAXHOST], strport[NI_MAXSERV]; |
506 | struct addrinfo *ai; | 463 | struct addrinfo *ai; |
@@ -544,6 +501,7 @@ ssh_connect_direct(struct ssh *ssh, const char *host, struct addrinfo *aitop, | |||
544 | continue; | 501 | continue; |
545 | } | 502 | } |
546 | 503 | ||
504 | *timeout_ms = saved_timeout_ms; | ||
547 | if (timeout_connect(sock, ai->ai_addr, ai->ai_addrlen, | 505 | if (timeout_connect(sock, ai->ai_addr, ai->ai_addrlen, |
548 | timeout_ms) >= 0) { | 506 | timeout_ms) >= 0) { |
549 | /* Successful connection. */ | 507 | /* Successful connection. */ |
@@ -589,12 +547,20 @@ ssh_connect(struct ssh *ssh, const char *host, struct addrinfo *addrs, | |||
589 | struct sockaddr_storage *hostaddr, u_short port, int family, | 547 | struct sockaddr_storage *hostaddr, u_short port, int family, |
590 | int connection_attempts, int *timeout_ms, int want_keepalive) | 548 | int connection_attempts, int *timeout_ms, int want_keepalive) |
591 | { | 549 | { |
550 | int in, out; | ||
551 | |||
592 | if (options.proxy_command == NULL) { | 552 | if (options.proxy_command == NULL) { |
593 | return ssh_connect_direct(ssh, host, addrs, hostaddr, port, | 553 | return ssh_connect_direct(ssh, host, addrs, hostaddr, port, |
594 | family, connection_attempts, timeout_ms, want_keepalive); | 554 | family, connection_attempts, timeout_ms, want_keepalive); |
595 | } else if (strcmp(options.proxy_command, "-") == 0) { | 555 | } else if (strcmp(options.proxy_command, "-") == 0) { |
596 | if ((ssh_packet_set_connection(ssh, | 556 | if ((in = dup(STDIN_FILENO)) < 0 || |
597 | STDIN_FILENO, STDOUT_FILENO)) == NULL) | 557 | (out = dup(STDOUT_FILENO)) < 0) { |
558 | if (in >= 0) | ||
559 | close(in); | ||
560 | error("%s: dup() in/out failed", __func__); | ||
561 | return -1; /* ssh_packet_set_connection logs error */ | ||
562 | } | ||
563 | if ((ssh_packet_set_connection(ssh, in, out)) == NULL) | ||
598 | return -1; /* ssh_packet_set_connection logs error */ | 564 | return -1; /* ssh_packet_set_connection logs error */ |
599 | return 0; | 565 | return 0; |
600 | } else if (options.proxy_use_fdpass) { | 566 | } else if (options.proxy_use_fdpass) { |
@@ -604,128 +570,26 @@ ssh_connect(struct ssh *ssh, const char *host, struct addrinfo *addrs, | |||
604 | return ssh_proxy_connect(ssh, host, port, options.proxy_command); | 570 | return ssh_proxy_connect(ssh, host, port, options.proxy_command); |
605 | } | 571 | } |
606 | 572 | ||
607 | static void | ||
608 | send_client_banner(int connection_out, int minor1) | ||
609 | { | ||
610 | /* Send our own protocol version identification. */ | ||
611 | xasprintf(&client_version_string, "SSH-%d.%d-%.100s\r\n", | ||
612 | PROTOCOL_MAJOR_2, PROTOCOL_MINOR_2, SSH_VERSION); | ||
613 | if (atomicio(vwrite, connection_out, client_version_string, | ||
614 | strlen(client_version_string)) != strlen(client_version_string)) | ||
615 | fatal("write: %.100s", strerror(errno)); | ||
616 | chop(client_version_string); | ||
617 | debug("Local version string %.100s", client_version_string); | ||
618 | } | ||
619 | |||
620 | /* | ||
621 | * Waits for the server identification string, and sends our own | ||
622 | * identification string. | ||
623 | */ | ||
624 | void | ||
625 | ssh_exchange_identification(int timeout_ms) | ||
626 | { | ||
627 | char buf[256], remote_version[256]; /* must be same size! */ | ||
628 | int remote_major, remote_minor, mismatch; | ||
629 | int connection_in = packet_get_connection_in(); | ||
630 | int connection_out = packet_get_connection_out(); | ||
631 | u_int i, n; | ||
632 | size_t len; | ||
633 | int rc; | ||
634 | |||
635 | send_client_banner(connection_out, 0); | ||
636 | |||
637 | /* Read other side's version identification. */ | ||
638 | for (n = 0;;) { | ||
639 | for (i = 0; i < sizeof(buf) - 1; i++) { | ||
640 | if (timeout_ms > 0) { | ||
641 | rc = waitrfd(connection_in, &timeout_ms); | ||
642 | if (rc == -1 && errno == ETIMEDOUT) { | ||
643 | fatal("Connection timed out during " | ||
644 | "banner exchange"); | ||
645 | } else if (rc == -1) { | ||
646 | fatal("%s: %s", | ||
647 | __func__, strerror(errno)); | ||
648 | } | ||
649 | } | ||
650 | |||
651 | len = atomicio(read, connection_in, &buf[i], 1); | ||
652 | if (len != 1 && errno == EPIPE) | ||
653 | fatal("ssh_exchange_identification: " | ||
654 | "Connection closed by remote host"); | ||
655 | else if (len != 1) | ||
656 | fatal("ssh_exchange_identification: " | ||
657 | "read: %.100s", strerror(errno)); | ||
658 | if (buf[i] == '\r') { | ||
659 | buf[i] = '\n'; | ||
660 | buf[i + 1] = 0; | ||
661 | continue; /**XXX wait for \n */ | ||
662 | } | ||
663 | if (buf[i] == '\n') { | ||
664 | buf[i + 1] = 0; | ||
665 | break; | ||
666 | } | ||
667 | if (++n > 65536) | ||
668 | fatal("ssh_exchange_identification: " | ||
669 | "No banner received"); | ||
670 | } | ||
671 | buf[sizeof(buf) - 1] = 0; | ||
672 | if (strncmp(buf, "SSH-", 4) == 0) | ||
673 | break; | ||
674 | debug("ssh_exchange_identification: %s", buf); | ||
675 | } | ||
676 | server_version_string = xstrdup(buf); | ||
677 | |||
678 | /* | ||
679 | * Check that the versions match. In future this might accept | ||
680 | * several versions and set appropriate flags to handle them. | ||
681 | */ | ||
682 | if (sscanf(server_version_string, "SSH-%d.%d-%[^\n]\n", | ||
683 | &remote_major, &remote_minor, remote_version) != 3) | ||
684 | fatal("Bad remote protocol version identification: '%.100s'", buf); | ||
685 | debug("Remote protocol version %d.%d, remote software version %.100s", | ||
686 | remote_major, remote_minor, remote_version); | ||
687 | |||
688 | active_state->compat = compat_datafellows(remote_version); | ||
689 | mismatch = 0; | ||
690 | |||
691 | switch (remote_major) { | ||
692 | case 2: | ||
693 | break; | ||
694 | case 1: | ||
695 | if (remote_minor != 99) | ||
696 | mismatch = 1; | ||
697 | break; | ||
698 | default: | ||
699 | mismatch = 1; | ||
700 | break; | ||
701 | } | ||
702 | if (mismatch) | ||
703 | fatal("Protocol major versions differ: %d vs. %d", | ||
704 | PROTOCOL_MAJOR_2, remote_major); | ||
705 | if ((datafellows & SSH_BUG_RSASIGMD5) != 0) | ||
706 | logit("Server version \"%.100s\" uses unsafe RSA signature " | ||
707 | "scheme; disabling use of RSA keys", remote_version); | ||
708 | chop(server_version_string); | ||
709 | } | ||
710 | |||
711 | /* defaults to 'no' */ | 573 | /* defaults to 'no' */ |
712 | static int | 574 | static int |
713 | confirm(const char *prompt) | 575 | confirm(const char *prompt, const char *fingerprint) |
714 | { | 576 | { |
715 | const char *msg, *again = "Please type 'yes' or 'no': "; | 577 | const char *msg, *again = "Please type 'yes' or 'no': "; |
578 | const char *again_fp = "Please type 'yes', 'no' or the fingerprint: "; | ||
716 | char *p; | 579 | char *p; |
717 | int ret = -1; | 580 | int ret = -1; |
718 | 581 | ||
719 | if (options.batch_mode) | 582 | if (options.batch_mode) |
720 | return 0; | 583 | return 0; |
721 | for (msg = prompt;;msg = again) { | 584 | for (msg = prompt;;msg = fingerprint ? again_fp : again) { |
722 | p = read_passphrase(msg, RP_ECHO); | 585 | p = read_passphrase(msg, RP_ECHO); |
723 | if (p == NULL) | 586 | if (p == NULL) |
724 | return 0; | 587 | return 0; |
725 | p[strcspn(p, "\n")] = '\0'; | 588 | p[strcspn(p, "\n")] = '\0'; |
726 | if (p[0] == '\0' || strcasecmp(p, "no") == 0) | 589 | if (p[0] == '\0' || strcasecmp(p, "no") == 0) |
727 | ret = 0; | 590 | ret = 0; |
728 | else if (strcasecmp(p, "yes") == 0) | 591 | else if (strcasecmp(p, "yes") == 0 || (fingerprint != NULL && |
592 | strcasecmp(p, fingerprint) == 0)) | ||
729 | ret = 1; | 593 | ret = 1; |
730 | free(p); | 594 | free(p); |
731 | if (ret != -1) | 595 | if (ret != -1) |
@@ -853,7 +717,7 @@ check_host_key(char *hostname, struct sockaddr *hostaddr, u_short port, | |||
853 | char msg[1024]; | 717 | char msg[1024]; |
854 | const char *type; | 718 | const char *type; |
855 | const struct hostkey_entry *host_found, *ip_found; | 719 | const struct hostkey_entry *host_found, *ip_found; |
856 | int len, cancelled_forwarding = 0; | 720 | int len, cancelled_forwarding = 0, confirmed; |
857 | int local = sockaddr_is_local(hostaddr); | 721 | int local = sockaddr_is_local(hostaddr); |
858 | int r, want_cert = sshkey_is_cert(host_key), host_ip_differ = 0; | 722 | int r, want_cert = sshkey_is_cert(host_key), host_ip_differ = 0; |
859 | int hostkey_trusted = 0; /* Known or explicitly accepted by user */ | 723 | int hostkey_trusted = 0; /* Known or explicitly accepted by user */ |
@@ -1028,14 +892,15 @@ check_host_key(char *hostname, struct sockaddr *hostaddr, u_short port, | |||
1028 | "established%s\n" | 892 | "established%s\n" |
1029 | "%s key fingerprint is %s.%s%s\n%s" | 893 | "%s key fingerprint is %s.%s%s\n%s" |
1030 | "Are you sure you want to continue connecting " | 894 | "Are you sure you want to continue connecting " |
1031 | "(yes/no)? ", | 895 | "(yes/no/[fingerprint])? ", |
1032 | host, ip, msg1, type, fp, | 896 | host, ip, msg1, type, fp, |
1033 | options.visual_host_key ? "\n" : "", | 897 | options.visual_host_key ? "\n" : "", |
1034 | options.visual_host_key ? ra : "", | 898 | options.visual_host_key ? ra : "", |
1035 | msg2); | 899 | msg2); |
1036 | free(ra); | 900 | free(ra); |
901 | confirmed = confirm(msg, fp); | ||
1037 | free(fp); | 902 | free(fp); |
1038 | if (!confirm(msg)) | 903 | if (!confirmed) |
1039 | goto fail; | 904 | goto fail; |
1040 | hostkey_trusted = 1; /* user explicitly confirmed */ | 905 | hostkey_trusted = 1; /* user explicitly confirmed */ |
1041 | } | 906 | } |
@@ -1229,7 +1094,7 @@ check_host_key(char *hostname, struct sockaddr *hostaddr, u_short port, | |||
1229 | SSH_STRICT_HOSTKEY_ASK) { | 1094 | SSH_STRICT_HOSTKEY_ASK) { |
1230 | strlcat(msg, "\nAre you sure you want " | 1095 | strlcat(msg, "\nAre you sure you want " |
1231 | "to continue connecting (yes/no)? ", sizeof(msg)); | 1096 | "to continue connecting (yes/no)? ", sizeof(msg)); |
1232 | if (!confirm(msg)) | 1097 | if (!confirm(msg, NULL)) |
1233 | goto fail; | 1098 | goto fail; |
1234 | } else if (options.strict_host_key_checking != | 1099 | } else if (options.strict_host_key_checking != |
1235 | SSH_STRICT_HOSTKEY_OFF) { | 1100 | SSH_STRICT_HOSTKEY_OFF) { |
@@ -1401,7 +1266,7 @@ out: | |||
1401 | * This function does not require super-user privileges. | 1266 | * This function does not require super-user privileges. |
1402 | */ | 1267 | */ |
1403 | void | 1268 | void |
1404 | ssh_login(Sensitive *sensitive, const char *orighost, | 1269 | ssh_login(struct ssh *ssh, Sensitive *sensitive, const char *orighost, |
1405 | struct sockaddr *hostaddr, u_short port, struct passwd *pw, int timeout_ms) | 1270 | struct sockaddr *hostaddr, u_short port, struct passwd *pw, int timeout_ms) |
1406 | { | 1271 | { |
1407 | char *host; | 1272 | char *host; |
@@ -1415,37 +1280,20 @@ ssh_login(Sensitive *sensitive, const char *orighost, | |||
1415 | lowercase(host); | 1280 | lowercase(host); |
1416 | 1281 | ||
1417 | /* Exchange protocol version identification strings with the server. */ | 1282 | /* Exchange protocol version identification strings with the server. */ |
1418 | ssh_exchange_identification(timeout_ms); | 1283 | if (kex_exchange_identification(ssh, timeout_ms, NULL) != 0) |
1284 | cleanup_exit(255); /* error already logged */ | ||
1419 | 1285 | ||
1420 | /* Put the connection into non-blocking mode. */ | 1286 | /* Put the connection into non-blocking mode. */ |
1421 | packet_set_nonblocking(); | 1287 | ssh_packet_set_nonblocking(ssh); |
1422 | 1288 | ||
1423 | /* key exchange */ | 1289 | /* key exchange */ |
1424 | /* authenticate user */ | 1290 | /* authenticate user */ |
1425 | debug("Authenticating to %s:%d as '%s'", host, port, server_user); | 1291 | debug("Authenticating to %s:%d as '%s'", host, port, server_user); |
1426 | ssh_kex2(host, hostaddr, port); | 1292 | ssh_kex2(ssh, host, hostaddr, port); |
1427 | ssh_userauth2(local_user, server_user, host, sensitive); | 1293 | ssh_userauth2(ssh, local_user, server_user, host, sensitive); |
1428 | free(local_user); | 1294 | free(local_user); |
1429 | } | 1295 | } |
1430 | 1296 | ||
1431 | void | ||
1432 | ssh_put_password(char *password) | ||
1433 | { | ||
1434 | int size; | ||
1435 | char *padded; | ||
1436 | |||
1437 | if (datafellows & SSH_BUG_PASSWORDPAD) { | ||
1438 | packet_put_cstring(password); | ||
1439 | return; | ||
1440 | } | ||
1441 | size = ROUNDUP(strlen(password) + 1, 32); | ||
1442 | padded = xcalloc(1, size); | ||
1443 | strlcpy(padded, password, size); | ||
1444 | packet_put_string(padded, size); | ||
1445 | explicit_bzero(padded, size); | ||
1446 | free(padded); | ||
1447 | } | ||
1448 | |||
1449 | /* print all known host keys for a given host, but skip keys of given type */ | 1297 | /* print all known host keys for a given host, but skip keys of given type */ |
1450 | static int | 1298 | static int |
1451 | show_other_keys(struct hostkeys *hostkeys, struct sshkey *key) | 1299 | show_other_keys(struct hostkeys *hostkeys, struct sshkey *key) |
diff --git a/sshconnect.h b/sshconnect.h index 890d85733..6e8989b27 100644 --- a/sshconnect.h +++ b/sshconnect.h | |||
@@ -1,4 +1,4 @@ | |||
1 | /* $OpenBSD: sshconnect.h,v 1.35 2018/07/19 10:28:47 dtucker Exp $ */ | 1 | /* $OpenBSD: sshconnect.h,v 1.37 2019/01/19 21:36:38 djm Exp $ */ |
2 | 2 | ||
3 | /* | 3 | /* |
4 | * Copyright (c) 2000 Markus Friedl. All rights reserved. | 4 | * Copyright (c) 2000 Markus Friedl. All rights reserved. |
@@ -37,23 +37,19 @@ int ssh_connect(struct ssh *, const char *, struct addrinfo *, | |||
37 | struct sockaddr_storage *, u_short, int, int, int *, int); | 37 | struct sockaddr_storage *, u_short, int, int, int *, int); |
38 | void ssh_kill_proxy_command(void); | 38 | void ssh_kill_proxy_command(void); |
39 | 39 | ||
40 | void ssh_login(Sensitive *, const char *, struct sockaddr *, u_short, | 40 | void ssh_login(struct ssh *, Sensitive *, const char *, |
41 | struct passwd *, int); | 41 | struct sockaddr *, u_short, struct passwd *, int); |
42 | |||
43 | void ssh_exchange_identification(int); | ||
44 | 42 | ||
45 | int verify_host_key(char *, struct sockaddr *, struct sshkey *); | 43 | int verify_host_key(char *, struct sockaddr *, struct sshkey *); |
46 | 44 | ||
47 | void get_hostfile_hostname_ipaddr(char *, struct sockaddr *, u_short, | 45 | void get_hostfile_hostname_ipaddr(char *, struct sockaddr *, u_short, |
48 | char **, char **); | 46 | char **, char **); |
49 | 47 | ||
50 | void ssh_kex(char *, struct sockaddr *); | 48 | void ssh_kex2(struct ssh *ssh, char *, struct sockaddr *, u_short); |
51 | void ssh_kex2(char *, struct sockaddr *, u_short); | ||
52 | 49 | ||
53 | void ssh_userauth1(const char *, const char *, char *, Sensitive *); | 50 | void ssh_userauth2(struct ssh *ssh, const char *, const char *, |
54 | void ssh_userauth2(const char *, const char *, char *, Sensitive *); | 51 | char *, Sensitive *); |
55 | 52 | ||
56 | void ssh_put_password(char *); | ||
57 | int ssh_local_cmd(const char *); | 53 | int ssh_local_cmd(const char *); |
58 | 54 | ||
59 | void maybe_add_key_to_agent(char *, const struct sshkey *, char *, char *); | 55 | void maybe_add_key_to_agent(char *, const struct sshkey *, char *, char *); |
diff --git a/sshconnect2.c b/sshconnect2.c index 1675f3935..dffee90b1 100644 --- a/sshconnect2.c +++ b/sshconnect2.c | |||
@@ -1,4 +1,4 @@ | |||
1 | /* $OpenBSD: sshconnect2.c,v 1.288 2018/10/11 03:48:04 djm Exp $ */ | 1 | /* $OpenBSD: sshconnect2.c,v 1.303 2019/02/12 23:53:10 djm Exp $ */ |
2 | /* | 2 | /* |
3 | * Copyright (c) 2000 Markus Friedl. All rights reserved. | 3 | * Copyright (c) 2000 Markus Friedl. All rights reserved. |
4 | * Copyright (c) 2008 Damien Miller. All rights reserved. | 4 | * Copyright (c) 2008 Damien Miller. All rights reserved. |
@@ -155,11 +155,10 @@ order_hostkeyalgs(char *host, struct sockaddr *hostaddr, u_short port) | |||
155 | } | 155 | } |
156 | 156 | ||
157 | void | 157 | void |
158 | ssh_kex2(char *host, struct sockaddr *hostaddr, u_short port) | 158 | ssh_kex2(struct ssh *ssh, char *host, struct sockaddr *hostaddr, u_short port) |
159 | { | 159 | { |
160 | char *myproposal[PROPOSAL_MAX] = { KEX_CLIENT }; | 160 | char *myproposal[PROPOSAL_MAX] = { KEX_CLIENT }; |
161 | char *s, *all_key; | 161 | char *s, *all_key; |
162 | struct kex *kex; | ||
163 | int r; | 162 | int r; |
164 | 163 | ||
165 | xxx_host = host; | 164 | xxx_host = host; |
@@ -195,40 +194,38 @@ ssh_kex2(char *host, struct sockaddr *hostaddr, u_short port) | |||
195 | } | 194 | } |
196 | 195 | ||
197 | if (options.rekey_limit || options.rekey_interval) | 196 | if (options.rekey_limit || options.rekey_interval) |
198 | packet_set_rekey_limits(options.rekey_limit, | 197 | ssh_packet_set_rekey_limits(ssh, options.rekey_limit, |
199 | options.rekey_interval); | 198 | options.rekey_interval); |
200 | 199 | ||
201 | /* start key exchange */ | 200 | /* start key exchange */ |
202 | if ((r = kex_setup(active_state, myproposal)) != 0) | 201 | if ((r = kex_setup(ssh, myproposal)) != 0) |
203 | fatal("kex_setup: %s", ssh_err(r)); | 202 | fatal("kex_setup: %s", ssh_err(r)); |
204 | kex = active_state->kex; | ||
205 | #ifdef WITH_OPENSSL | 203 | #ifdef WITH_OPENSSL |
206 | kex->kex[KEX_DH_GRP1_SHA1] = kexdh_client; | 204 | ssh->kex->kex[KEX_DH_GRP1_SHA1] = kex_gen_client; |
207 | kex->kex[KEX_DH_GRP14_SHA1] = kexdh_client; | 205 | ssh->kex->kex[KEX_DH_GRP14_SHA1] = kex_gen_client; |
208 | kex->kex[KEX_DH_GRP14_SHA256] = kexdh_client; | 206 | ssh->kex->kex[KEX_DH_GRP14_SHA256] = kex_gen_client; |
209 | kex->kex[KEX_DH_GRP16_SHA512] = kexdh_client; | 207 | ssh->kex->kex[KEX_DH_GRP16_SHA512] = kex_gen_client; |
210 | kex->kex[KEX_DH_GRP18_SHA512] = kexdh_client; | 208 | ssh->kex->kex[KEX_DH_GRP18_SHA512] = kex_gen_client; |
211 | kex->kex[KEX_DH_GEX_SHA1] = kexgex_client; | 209 | ssh->kex->kex[KEX_DH_GEX_SHA1] = kexgex_client; |
212 | kex->kex[KEX_DH_GEX_SHA256] = kexgex_client; | 210 | ssh->kex->kex[KEX_DH_GEX_SHA256] = kexgex_client; |
213 | # ifdef OPENSSL_HAS_ECC | 211 | # ifdef OPENSSL_HAS_ECC |
214 | kex->kex[KEX_ECDH_SHA2] = kexecdh_client; | 212 | ssh->kex->kex[KEX_ECDH_SHA2] = kex_gen_client; |
215 | # endif | 213 | # endif |
216 | #endif | 214 | #endif |
217 | kex->kex[KEX_C25519_SHA256] = kexc25519_client; | 215 | ssh->kex->kex[KEX_C25519_SHA256] = kex_gen_client; |
218 | kex->client_version_string=client_version_string; | 216 | ssh->kex->kex[KEX_KEM_SNTRUP4591761X25519_SHA512] = kex_gen_client; |
219 | kex->server_version_string=server_version_string; | 217 | ssh->kex->verify_host_key=&verify_host_key_callback; |
220 | kex->verify_host_key=&verify_host_key_callback; | ||
221 | 218 | ||
222 | ssh_dispatch_run_fatal(active_state, DISPATCH_BLOCK, &kex->done); | 219 | ssh_dispatch_run_fatal(ssh, DISPATCH_BLOCK, &ssh->kex->done); |
223 | 220 | ||
224 | /* remove ext-info from the KEX proposals for rekeying */ | 221 | /* remove ext-info from the KEX proposals for rekeying */ |
225 | myproposal[PROPOSAL_KEX_ALGS] = | 222 | myproposal[PROPOSAL_KEX_ALGS] = |
226 | compat_kex_proposal(options.kex_algorithms); | 223 | compat_kex_proposal(options.kex_algorithms); |
227 | if ((r = kex_prop2buf(kex->my, myproposal)) != 0) | 224 | if ((r = kex_prop2buf(ssh->kex->my, myproposal)) != 0) |
228 | fatal("kex_prop2buf: %s", ssh_err(r)); | 225 | fatal("kex_prop2buf: %s", ssh_err(r)); |
229 | 226 | ||
230 | session_id2 = kex->session_id; | 227 | session_id2 = ssh->kex->session_id; |
231 | session_id2_len = kex->session_id_len; | 228 | session_id2_len = ssh->kex->session_id_len; |
232 | 229 | ||
233 | #ifdef DEBUG_KEXDH | 230 | #ifdef DEBUG_KEXDH |
234 | /* send 1st encrypted/maced/compressed message */ | 231 | /* send 1st encrypted/maced/compressed message */ |
@@ -268,7 +265,11 @@ struct cauthctxt { | |||
268 | struct cauthmethod *method; | 265 | struct cauthmethod *method; |
269 | sig_atomic_t success; | 266 | sig_atomic_t success; |
270 | char *authlist; | 267 | char *authlist; |
271 | int attempt; | 268 | #ifdef GSSAPI |
269 | /* gssapi */ | ||
270 | gss_OID_set gss_supported_mechs; | ||
271 | u_int mech_tried; | ||
272 | #endif | ||
272 | /* pubkey */ | 273 | /* pubkey */ |
273 | struct idlist keys; | 274 | struct idlist keys; |
274 | int agent_fd; | 275 | int agent_fd; |
@@ -278,49 +279,51 @@ struct cauthctxt { | |||
278 | const char *active_ktype; | 279 | const char *active_ktype; |
279 | /* kbd-interactive */ | 280 | /* kbd-interactive */ |
280 | int info_req_seen; | 281 | int info_req_seen; |
282 | int attempt_kbdint; | ||
283 | /* password */ | ||
284 | int attempt_passwd; | ||
281 | /* generic */ | 285 | /* generic */ |
282 | void *methoddata; | 286 | void *methoddata; |
283 | }; | 287 | }; |
284 | 288 | ||
285 | struct cauthmethod { | 289 | struct cauthmethod { |
286 | char *name; /* string to compare against server's list */ | 290 | char *name; /* string to compare against server's list */ |
287 | int (*userauth)(Authctxt *authctxt); | 291 | int (*userauth)(struct ssh *ssh); |
288 | void (*cleanup)(Authctxt *authctxt); | 292 | void (*cleanup)(struct ssh *ssh); |
289 | int *enabled; /* flag in option struct that enables method */ | 293 | int *enabled; /* flag in option struct that enables method */ |
290 | int *batch_flag; /* flag in option struct that disables method */ | 294 | int *batch_flag; /* flag in option struct that disables method */ |
291 | }; | 295 | }; |
292 | 296 | ||
293 | int input_userauth_service_accept(int, u_int32_t, struct ssh *); | 297 | static int input_userauth_service_accept(int, u_int32_t, struct ssh *); |
294 | int input_userauth_ext_info(int, u_int32_t, struct ssh *); | 298 | static int input_userauth_ext_info(int, u_int32_t, struct ssh *); |
295 | int input_userauth_success(int, u_int32_t, struct ssh *); | 299 | static int input_userauth_success(int, u_int32_t, struct ssh *); |
296 | int input_userauth_success_unexpected(int, u_int32_t, struct ssh *); | 300 | static int input_userauth_failure(int, u_int32_t, struct ssh *); |
297 | int input_userauth_failure(int, u_int32_t, struct ssh *); | 301 | static int input_userauth_banner(int, u_int32_t, struct ssh *); |
298 | int input_userauth_banner(int, u_int32_t, struct ssh *); | 302 | static int input_userauth_error(int, u_int32_t, struct ssh *); |
299 | int input_userauth_error(int, u_int32_t, struct ssh *); | 303 | static int input_userauth_info_req(int, u_int32_t, struct ssh *); |
300 | int input_userauth_info_req(int, u_int32_t, struct ssh *); | 304 | static int input_userauth_pk_ok(int, u_int32_t, struct ssh *); |
301 | int input_userauth_pk_ok(int, u_int32_t, struct ssh *); | 305 | static int input_userauth_passwd_changereq(int, u_int32_t, struct ssh *); |
302 | int input_userauth_passwd_changereq(int, u_int32_t, struct ssh *); | 306 | |
303 | 307 | static int userauth_none(struct ssh *); | |
304 | int userauth_none(Authctxt *); | 308 | static int userauth_pubkey(struct ssh *); |
305 | int userauth_pubkey(Authctxt *); | 309 | static int userauth_passwd(struct ssh *); |
306 | int userauth_passwd(Authctxt *); | 310 | static int userauth_kbdint(struct ssh *); |
307 | int userauth_kbdint(Authctxt *); | 311 | static int userauth_hostbased(struct ssh *); |
308 | int userauth_hostbased(Authctxt *); | ||
309 | 312 | ||
310 | #ifdef GSSAPI | 313 | #ifdef GSSAPI |
311 | int userauth_gssapi(Authctxt *authctxt); | 314 | static int userauth_gssapi(struct ssh *); |
312 | int input_gssapi_response(int type, u_int32_t, struct ssh *); | 315 | static void userauth_gssapi_cleanup(struct ssh *); |
313 | int input_gssapi_token(int type, u_int32_t, struct ssh *); | 316 | static int input_gssapi_response(int type, u_int32_t, struct ssh *); |
314 | int input_gssapi_hash(int type, u_int32_t, struct ssh *); | 317 | static int input_gssapi_token(int type, u_int32_t, struct ssh *); |
315 | int input_gssapi_error(int, u_int32_t, struct ssh *); | 318 | static int input_gssapi_error(int, u_int32_t, struct ssh *); |
316 | int input_gssapi_errtok(int, u_int32_t, struct ssh *); | 319 | static int input_gssapi_errtok(int, u_int32_t, struct ssh *); |
317 | #endif | 320 | #endif |
318 | 321 | ||
319 | void userauth(Authctxt *, char *); | 322 | void userauth(struct ssh *, char *); |
320 | 323 | ||
321 | static int sign_and_send_pubkey(struct ssh *ssh, Authctxt *, Identity *); | 324 | static void pubkey_cleanup(struct ssh *); |
325 | static int sign_and_send_pubkey(struct ssh *ssh, Identity *); | ||
322 | static void pubkey_prepare(Authctxt *); | 326 | static void pubkey_prepare(Authctxt *); |
323 | static void pubkey_cleanup(Authctxt *); | ||
324 | static void pubkey_reset(Authctxt *); | 327 | static void pubkey_reset(Authctxt *); |
325 | static struct sshkey *load_identity_file(Identity *); | 328 | static struct sshkey *load_identity_file(Identity *); |
326 | 329 | ||
@@ -332,7 +335,7 @@ Authmethod authmethods[] = { | |||
332 | #ifdef GSSAPI | 335 | #ifdef GSSAPI |
333 | {"gssapi-with-mic", | 336 | {"gssapi-with-mic", |
334 | userauth_gssapi, | 337 | userauth_gssapi, |
335 | NULL, | 338 | userauth_gssapi_cleanup, |
336 | &options.gss_authentication, | 339 | &options.gss_authentication, |
337 | NULL}, | 340 | NULL}, |
338 | #endif | 341 | #endif |
@@ -365,10 +368,9 @@ Authmethod authmethods[] = { | |||
365 | }; | 368 | }; |
366 | 369 | ||
367 | void | 370 | void |
368 | ssh_userauth2(const char *local_user, const char *server_user, char *host, | 371 | ssh_userauth2(struct ssh *ssh, const char *local_user, |
369 | Sensitive *sensitive) | 372 | const char *server_user, char *host, Sensitive *sensitive) |
370 | { | 373 | { |
371 | struct ssh *ssh = active_state; | ||
372 | Authctxt authctxt; | 374 | Authctxt authctxt; |
373 | int r; | 375 | int r; |
374 | 376 | ||
@@ -379,7 +381,6 @@ ssh_userauth2(const char *local_user, const char *server_user, char *host, | |||
379 | 381 | ||
380 | /* setup authentication context */ | 382 | /* setup authentication context */ |
381 | memset(&authctxt, 0, sizeof(authctxt)); | 383 | memset(&authctxt, 0, sizeof(authctxt)); |
382 | pubkey_prepare(&authctxt); | ||
383 | authctxt.server_user = server_user; | 384 | authctxt.server_user = server_user; |
384 | authctxt.local_user = local_user; | 385 | authctxt.local_user = local_user; |
385 | authctxt.host = host; | 386 | authctxt.host = host; |
@@ -391,9 +392,18 @@ ssh_userauth2(const char *local_user, const char *server_user, char *host, | |||
391 | authctxt.sensitive = sensitive; | 392 | authctxt.sensitive = sensitive; |
392 | authctxt.active_ktype = authctxt.oktypes = authctxt.ktypes = NULL; | 393 | authctxt.active_ktype = authctxt.oktypes = authctxt.ktypes = NULL; |
393 | authctxt.info_req_seen = 0; | 394 | authctxt.info_req_seen = 0; |
395 | authctxt.attempt_kbdint = 0; | ||
396 | authctxt.attempt_passwd = 0; | ||
397 | #if GSSAPI | ||
398 | authctxt.gss_supported_mechs = NULL; | ||
399 | authctxt.mech_tried = 0; | ||
400 | #endif | ||
394 | authctxt.agent_fd = -1; | 401 | authctxt.agent_fd = -1; |
395 | if (authctxt.method == NULL) | 402 | pubkey_prepare(&authctxt); |
396 | fatal("ssh_userauth2: internal error: cannot send userauth none request"); | 403 | if (authctxt.method == NULL) { |
404 | fatal("%s: internal error: cannot send userauth none request", | ||
405 | __func__); | ||
406 | } | ||
397 | 407 | ||
398 | if ((r = sshpkt_start(ssh, SSH2_MSG_SERVICE_REQUEST)) != 0 || | 408 | if ((r = sshpkt_start(ssh, SSH2_MSG_SERVICE_REQUEST)) != 0 || |
399 | (r = sshpkt_put_cstring(ssh, "ssh-userauth")) != 0 || | 409 | (r = sshpkt_put_cstring(ssh, "ssh-userauth")) != 0 || |
@@ -405,9 +415,9 @@ ssh_userauth2(const char *local_user, const char *server_user, char *host, | |||
405 | ssh_dispatch_set(ssh, SSH2_MSG_EXT_INFO, &input_userauth_ext_info); | 415 | ssh_dispatch_set(ssh, SSH2_MSG_EXT_INFO, &input_userauth_ext_info); |
406 | ssh_dispatch_set(ssh, SSH2_MSG_SERVICE_ACCEPT, &input_userauth_service_accept); | 416 | ssh_dispatch_set(ssh, SSH2_MSG_SERVICE_ACCEPT, &input_userauth_service_accept); |
407 | ssh_dispatch_run_fatal(ssh, DISPATCH_BLOCK, &authctxt.success); /* loop until success */ | 417 | ssh_dispatch_run_fatal(ssh, DISPATCH_BLOCK, &authctxt.success); /* loop until success */ |
418 | pubkey_cleanup(ssh); | ||
408 | ssh->authctxt = NULL; | 419 | ssh->authctxt = NULL; |
409 | 420 | ||
410 | pubkey_cleanup(&authctxt); | ||
411 | ssh_dispatch_range(ssh, SSH2_MSG_USERAUTH_MIN, SSH2_MSG_USERAUTH_MAX, NULL); | 421 | ssh_dispatch_range(ssh, SSH2_MSG_USERAUTH_MIN, SSH2_MSG_USERAUTH_MAX, NULL); |
412 | 422 | ||
413 | if (!authctxt.success) | 423 | if (!authctxt.success) |
@@ -416,10 +426,9 @@ ssh_userauth2(const char *local_user, const char *server_user, char *host, | |||
416 | } | 426 | } |
417 | 427 | ||
418 | /* ARGSUSED */ | 428 | /* ARGSUSED */ |
419 | int | 429 | static int |
420 | input_userauth_service_accept(int type, u_int32_t seq, struct ssh *ssh) | 430 | input_userauth_service_accept(int type, u_int32_t seq, struct ssh *ssh) |
421 | { | 431 | { |
422 | Authctxt *authctxt = ssh->authctxt; | ||
423 | int r; | 432 | int r; |
424 | 433 | ||
425 | if (ssh_packet_remaining(ssh) > 0) { | 434 | if (ssh_packet_remaining(ssh) > 0) { |
@@ -437,7 +446,7 @@ input_userauth_service_accept(int type, u_int32_t seq, struct ssh *ssh) | |||
437 | debug("SSH2_MSG_SERVICE_ACCEPT received"); | 446 | debug("SSH2_MSG_SERVICE_ACCEPT received"); |
438 | 447 | ||
439 | /* initial userauth request */ | 448 | /* initial userauth request */ |
440 | userauth_none(authctxt); | 449 | userauth_none(ssh); |
441 | 450 | ||
442 | ssh_dispatch_set(ssh, SSH2_MSG_EXT_INFO, &input_userauth_error); | 451 | ssh_dispatch_set(ssh, SSH2_MSG_EXT_INFO, &input_userauth_error); |
443 | ssh_dispatch_set(ssh, SSH2_MSG_USERAUTH_SUCCESS, &input_userauth_success); | 452 | ssh_dispatch_set(ssh, SSH2_MSG_USERAUTH_SUCCESS, &input_userauth_success); |
@@ -449,19 +458,19 @@ input_userauth_service_accept(int type, u_int32_t seq, struct ssh *ssh) | |||
449 | } | 458 | } |
450 | 459 | ||
451 | /* ARGSUSED */ | 460 | /* ARGSUSED */ |
452 | int | 461 | static int |
453 | input_userauth_ext_info(int type, u_int32_t seqnr, struct ssh *ssh) | 462 | input_userauth_ext_info(int type, u_int32_t seqnr, struct ssh *ssh) |
454 | { | 463 | { |
455 | return kex_input_ext_info(type, seqnr, ssh); | 464 | return kex_input_ext_info(type, seqnr, ssh); |
456 | } | 465 | } |
457 | 466 | ||
458 | void | 467 | void |
459 | userauth(Authctxt *authctxt, char *authlist) | 468 | userauth(struct ssh *ssh, char *authlist) |
460 | { | 469 | { |
461 | struct ssh *ssh = active_state; /* XXX */ | 470 | Authctxt *authctxt = (Authctxt *)ssh->authctxt; |
462 | 471 | ||
463 | if (authctxt->method != NULL && authctxt->method->cleanup != NULL) | 472 | if (authctxt->method != NULL && authctxt->method->cleanup != NULL) |
464 | authctxt->method->cleanup(authctxt); | 473 | authctxt->method->cleanup(ssh); |
465 | 474 | ||
466 | free(authctxt->methoddata); | 475 | free(authctxt->methoddata); |
467 | authctxt->methoddata = NULL; | 476 | authctxt->methoddata = NULL; |
@@ -483,7 +492,7 @@ userauth(Authctxt *authctxt, char *authlist) | |||
483 | SSH2_MSG_USERAUTH_PER_METHOD_MAX, NULL); | 492 | SSH2_MSG_USERAUTH_PER_METHOD_MAX, NULL); |
484 | 493 | ||
485 | /* and try new method */ | 494 | /* and try new method */ |
486 | if (method->userauth(authctxt) != 0) { | 495 | if (method->userauth(ssh) != 0) { |
487 | debug2("we sent a %s packet, wait for reply", method->name); | 496 | debug2("we sent a %s packet, wait for reply", method->name); |
488 | break; | 497 | break; |
489 | } else { | 498 | } else { |
@@ -494,50 +503,53 @@ userauth(Authctxt *authctxt, char *authlist) | |||
494 | } | 503 | } |
495 | 504 | ||
496 | /* ARGSUSED */ | 505 | /* ARGSUSED */ |
497 | int | 506 | static int |
498 | input_userauth_error(int type, u_int32_t seq, struct ssh *ssh) | 507 | input_userauth_error(int type, u_int32_t seq, struct ssh *ssh) |
499 | { | 508 | { |
500 | fatal("input_userauth_error: bad message during authentication: " | 509 | fatal("%s: bad message during authentication: type %d", __func__, type); |
501 | "type %d", type); | ||
502 | return 0; | 510 | return 0; |
503 | } | 511 | } |
504 | 512 | ||
505 | /* ARGSUSED */ | 513 | /* ARGSUSED */ |
506 | int | 514 | static int |
507 | input_userauth_banner(int type, u_int32_t seq, struct ssh *ssh) | 515 | input_userauth_banner(int type, u_int32_t seq, struct ssh *ssh) |
508 | { | 516 | { |
509 | char *msg, *lang; | 517 | char *msg = NULL; |
510 | u_int len; | 518 | size_t len; |
519 | int r; | ||
511 | 520 | ||
512 | debug3("%s", __func__); | 521 | debug3("%s", __func__); |
513 | msg = packet_get_string(&len); | 522 | if ((r = sshpkt_get_cstring(ssh, &msg, &len)) != 0 || |
514 | lang = packet_get_string(NULL); | 523 | (r = sshpkt_get_cstring(ssh, NULL, NULL)) != 0) |
524 | goto out; | ||
515 | if (len > 0 && options.log_level >= SYSLOG_LEVEL_INFO) | 525 | if (len > 0 && options.log_level >= SYSLOG_LEVEL_INFO) |
516 | fmprintf(stderr, "%s", msg); | 526 | fmprintf(stderr, "%s", msg); |
527 | r = 0; | ||
528 | out: | ||
517 | free(msg); | 529 | free(msg); |
518 | free(lang); | 530 | return r; |
519 | return 0; | ||
520 | } | 531 | } |
521 | 532 | ||
522 | /* ARGSUSED */ | 533 | /* ARGSUSED */ |
523 | int | 534 | static int |
524 | input_userauth_success(int type, u_int32_t seq, struct ssh *ssh) | 535 | input_userauth_success(int type, u_int32_t seq, struct ssh *ssh) |
525 | { | 536 | { |
526 | Authctxt *authctxt = ssh->authctxt; | 537 | Authctxt *authctxt = ssh->authctxt; |
527 | 538 | ||
528 | if (authctxt == NULL) | 539 | if (authctxt == NULL) |
529 | fatal("input_userauth_success: no authentication context"); | 540 | fatal("%s: no authentication context", __func__); |
530 | free(authctxt->authlist); | 541 | free(authctxt->authlist); |
531 | authctxt->authlist = NULL; | 542 | authctxt->authlist = NULL; |
532 | if (authctxt->method != NULL && authctxt->method->cleanup != NULL) | 543 | if (authctxt->method != NULL && authctxt->method->cleanup != NULL) |
533 | authctxt->method->cleanup(authctxt); | 544 | authctxt->method->cleanup(ssh); |
534 | free(authctxt->methoddata); | 545 | free(authctxt->methoddata); |
535 | authctxt->methoddata = NULL; | 546 | authctxt->methoddata = NULL; |
536 | authctxt->success = 1; /* break out */ | 547 | authctxt->success = 1; /* break out */ |
537 | return 0; | 548 | return 0; |
538 | } | 549 | } |
539 | 550 | ||
540 | int | 551 | #if 0 |
552 | static int | ||
541 | input_userauth_success_unexpected(int type, u_int32_t seq, struct ssh *ssh) | 553 | input_userauth_success_unexpected(int type, u_int32_t seq, struct ssh *ssh) |
542 | { | 554 | { |
543 | Authctxt *authctxt = ssh->authctxt; | 555 | Authctxt *authctxt = ssh->authctxt; |
@@ -549,9 +561,10 @@ input_userauth_success_unexpected(int type, u_int32_t seq, struct ssh *ssh) | |||
549 | authctxt->method->name); | 561 | authctxt->method->name); |
550 | return 0; | 562 | return 0; |
551 | } | 563 | } |
564 | #endif | ||
552 | 565 | ||
553 | /* ARGSUSED */ | 566 | /* ARGSUSED */ |
554 | int | 567 | static int |
555 | input_userauth_failure(int type, u_int32_t seq, struct ssh *ssh) | 568 | input_userauth_failure(int type, u_int32_t seq, struct ssh *ssh) |
556 | { | 569 | { |
557 | Authctxt *authctxt = ssh->authctxt; | 570 | Authctxt *authctxt = ssh->authctxt; |
@@ -574,7 +587,7 @@ input_userauth_failure(int type, u_int32_t seq, struct ssh *ssh) | |||
574 | } | 587 | } |
575 | debug("Authentications that can continue: %s", authlist); | 588 | debug("Authentications that can continue: %s", authlist); |
576 | 589 | ||
577 | userauth(authctxt, authlist); | 590 | userauth(ssh, authlist); |
578 | authlist = NULL; | 591 | authlist = NULL; |
579 | out: | 592 | out: |
580 | free(authlist); | 593 | free(authlist); |
@@ -606,7 +619,7 @@ format_identity(Identity *id) | |||
606 | } | 619 | } |
607 | 620 | ||
608 | /* ARGSUSED */ | 621 | /* ARGSUSED */ |
609 | int | 622 | static int |
610 | input_userauth_pk_ok(int type, u_int32_t seq, struct ssh *ssh) | 623 | input_userauth_pk_ok(int type, u_int32_t seq, struct ssh *ssh) |
611 | { | 624 | { |
612 | Authctxt *authctxt = ssh->authctxt; | 625 | Authctxt *authctxt = ssh->authctxt; |
@@ -661,7 +674,7 @@ input_userauth_pk_ok(int type, u_int32_t seq, struct ssh *ssh) | |||
661 | } | 674 | } |
662 | ident = format_identity(id); | 675 | ident = format_identity(id); |
663 | debug("Server accepts key: %s", ident); | 676 | debug("Server accepts key: %s", ident); |
664 | sent = sign_and_send_pubkey(ssh, authctxt, id); | 677 | sent = sign_and_send_pubkey(ssh, id); |
665 | r = 0; | 678 | r = 0; |
666 | done: | 679 | done: |
667 | sshkey_free(key); | 680 | sshkey_free(key); |
@@ -672,40 +685,41 @@ input_userauth_pk_ok(int type, u_int32_t seq, struct ssh *ssh) | |||
672 | 685 | ||
673 | /* try another method if we did not send a packet */ | 686 | /* try another method if we did not send a packet */ |
674 | if (r == 0 && sent == 0) | 687 | if (r == 0 && sent == 0) |
675 | userauth(authctxt, NULL); | 688 | userauth(ssh, NULL); |
676 | return r; | 689 | return r; |
677 | } | 690 | } |
678 | 691 | ||
679 | #ifdef GSSAPI | 692 | #ifdef GSSAPI |
680 | int | 693 | static int |
681 | userauth_gssapi(Authctxt *authctxt) | 694 | userauth_gssapi(struct ssh *ssh) |
682 | { | 695 | { |
683 | struct ssh *ssh = active_state; /* XXX */ | 696 | Authctxt *authctxt = (Authctxt *)ssh->authctxt; |
684 | Gssctxt *gssctxt = NULL; | 697 | Gssctxt *gssctxt = NULL; |
685 | static gss_OID_set gss_supported = NULL; | ||
686 | static u_int mech = 0; | ||
687 | OM_uint32 min; | 698 | OM_uint32 min; |
688 | int r, ok = 0; | 699 | int r, ok = 0; |
700 | gss_OID mech = NULL; | ||
689 | 701 | ||
690 | /* Try one GSSAPI method at a time, rather than sending them all at | 702 | /* Try one GSSAPI method at a time, rather than sending them all at |
691 | * once. */ | 703 | * once. */ |
692 | 704 | ||
693 | if (gss_supported == NULL) | 705 | if (authctxt->gss_supported_mechs == NULL) |
694 | gss_indicate_mechs(&min, &gss_supported); | 706 | gss_indicate_mechs(&min, &authctxt->gss_supported_mechs); |
695 | 707 | ||
696 | /* Check to see if the mechanism is usable before we offer it */ | 708 | /* Check to see whether the mechanism is usable before we offer it */ |
697 | while (mech < gss_supported->count && !ok) { | 709 | while (authctxt->mech_tried < authctxt->gss_supported_mechs->count && |
710 | !ok) { | ||
711 | mech = &authctxt->gss_supported_mechs-> | ||
712 | elements[authctxt->mech_tried]; | ||
698 | /* My DER encoding requires length<128 */ | 713 | /* My DER encoding requires length<128 */ |
699 | if (gss_supported->elements[mech].length < 128 && | 714 | if (mech->length < 128 && ssh_gssapi_check_mechanism(&gssctxt, |
700 | ssh_gssapi_check_mechanism(&gssctxt, | 715 | mech, authctxt->host)) { |
701 | &gss_supported->elements[mech], authctxt->host)) { | ||
702 | ok = 1; /* Mechanism works */ | 716 | ok = 1; /* Mechanism works */ |
703 | } else { | 717 | } else { |
704 | mech++; | 718 | authctxt->mech_tried++; |
705 | } | 719 | } |
706 | } | 720 | } |
707 | 721 | ||
708 | if (!ok) | 722 | if (!ok || mech == NULL) |
709 | return 0; | 723 | return 0; |
710 | 724 | ||
711 | authctxt->methoddata=(void *)gssctxt; | 725 | authctxt->methoddata=(void *)gssctxt; |
@@ -715,14 +729,10 @@ userauth_gssapi(Authctxt *authctxt) | |||
715 | (r = sshpkt_put_cstring(ssh, authctxt->service)) != 0 || | 729 | (r = sshpkt_put_cstring(ssh, authctxt->service)) != 0 || |
716 | (r = sshpkt_put_cstring(ssh, authctxt->method->name)) != 0 || | 730 | (r = sshpkt_put_cstring(ssh, authctxt->method->name)) != 0 || |
717 | (r = sshpkt_put_u32(ssh, 1)) != 0 || | 731 | (r = sshpkt_put_u32(ssh, 1)) != 0 || |
718 | (r = sshpkt_put_u32(ssh, | 732 | (r = sshpkt_put_u32(ssh, (mech->length) + 2)) != 0 || |
719 | (gss_supported->elements[mech].length) + 2)) != 0 || | ||
720 | (r = sshpkt_put_u8(ssh, SSH_GSS_OIDTYPE)) != 0 || | 733 | (r = sshpkt_put_u8(ssh, SSH_GSS_OIDTYPE)) != 0 || |
721 | (r = sshpkt_put_u8(ssh, | 734 | (r = sshpkt_put_u8(ssh, mech->length)) != 0 || |
722 | gss_supported->elements[mech].length)) != 0 || | 735 | (r = sshpkt_put(ssh, mech->elements, mech->length)) != 0 || |
723 | (r = sshpkt_put(ssh, | ||
724 | gss_supported->elements[mech].elements, | ||
725 | gss_supported->elements[mech].length)) != 0 || | ||
726 | (r = sshpkt_send(ssh)) != 0) | 736 | (r = sshpkt_send(ssh)) != 0) |
727 | fatal("%s: %s", __func__, ssh_err(r)); | 737 | fatal("%s: %s", __func__, ssh_err(r)); |
728 | 738 | ||
@@ -731,11 +741,24 @@ userauth_gssapi(Authctxt *authctxt) | |||
731 | ssh_dispatch_set(ssh, SSH2_MSG_USERAUTH_GSSAPI_ERROR, &input_gssapi_error); | 741 | ssh_dispatch_set(ssh, SSH2_MSG_USERAUTH_GSSAPI_ERROR, &input_gssapi_error); |
732 | ssh_dispatch_set(ssh, SSH2_MSG_USERAUTH_GSSAPI_ERRTOK, &input_gssapi_errtok); | 742 | ssh_dispatch_set(ssh, SSH2_MSG_USERAUTH_GSSAPI_ERRTOK, &input_gssapi_errtok); |
733 | 743 | ||
734 | mech++; /* Move along to next candidate */ | 744 | authctxt->mech_tried++; /* Move along to next candidate */ |
735 | 745 | ||
736 | return 1; | 746 | return 1; |
737 | } | 747 | } |
738 | 748 | ||
749 | static void | ||
750 | userauth_gssapi_cleanup(struct ssh *ssh) | ||
751 | { | ||
752 | Authctxt *authctxt = (Authctxt *)ssh->authctxt; | ||
753 | Gssctxt *gssctxt = (Gssctxt *)authctxt->methoddata; | ||
754 | |||
755 | ssh_gssapi_delete_ctx(&gssctxt); | ||
756 | authctxt->methoddata = NULL; | ||
757 | |||
758 | free(authctxt->gss_supported_mechs); | ||
759 | authctxt->gss_supported_mechs = NULL; | ||
760 | } | ||
761 | |||
739 | static OM_uint32 | 762 | static OM_uint32 |
740 | process_gssapi_token(struct ssh *ssh, gss_buffer_t recv_tok) | 763 | process_gssapi_token(struct ssh *ssh, gss_buffer_t recv_tok) |
741 | { | 764 | { |
@@ -803,7 +826,7 @@ process_gssapi_token(struct ssh *ssh, gss_buffer_t recv_tok) | |||
803 | } | 826 | } |
804 | 827 | ||
805 | /* ARGSUSED */ | 828 | /* ARGSUSED */ |
806 | int | 829 | static int |
807 | input_gssapi_response(int type, u_int32_t plen, struct ssh *ssh) | 830 | input_gssapi_response(int type, u_int32_t plen, struct ssh *ssh) |
808 | { | 831 | { |
809 | Authctxt *authctxt = ssh->authctxt; | 832 | Authctxt *authctxt = ssh->authctxt; |
@@ -824,7 +847,7 @@ input_gssapi_response(int type, u_int32_t plen, struct ssh *ssh) | |||
824 | oidv[0] != SSH_GSS_OIDTYPE || | 847 | oidv[0] != SSH_GSS_OIDTYPE || |
825 | oidv[1] != oidlen - 2) { | 848 | oidv[1] != oidlen - 2) { |
826 | debug("Badly encoded mechanism OID received"); | 849 | debug("Badly encoded mechanism OID received"); |
827 | userauth(authctxt, NULL); | 850 | userauth(ssh, NULL); |
828 | goto ok; | 851 | goto ok; |
829 | } | 852 | } |
830 | 853 | ||
@@ -837,7 +860,7 @@ input_gssapi_response(int type, u_int32_t plen, struct ssh *ssh) | |||
837 | if (GSS_ERROR(process_gssapi_token(ssh, GSS_C_NO_BUFFER))) { | 860 | if (GSS_ERROR(process_gssapi_token(ssh, GSS_C_NO_BUFFER))) { |
838 | /* Start again with next method on list */ | 861 | /* Start again with next method on list */ |
839 | debug("Trying to start again"); | 862 | debug("Trying to start again"); |
840 | userauth(authctxt, NULL); | 863 | userauth(ssh, NULL); |
841 | goto ok; | 864 | goto ok; |
842 | } | 865 | } |
843 | ok: | 866 | ok: |
@@ -848,7 +871,7 @@ input_gssapi_response(int type, u_int32_t plen, struct ssh *ssh) | |||
848 | } | 871 | } |
849 | 872 | ||
850 | /* ARGSUSED */ | 873 | /* ARGSUSED */ |
851 | int | 874 | static int |
852 | input_gssapi_token(int type, u_int32_t plen, struct ssh *ssh) | 875 | input_gssapi_token(int type, u_int32_t plen, struct ssh *ssh) |
853 | { | 876 | { |
854 | Authctxt *authctxt = ssh->authctxt; | 877 | Authctxt *authctxt = ssh->authctxt; |
@@ -871,7 +894,7 @@ input_gssapi_token(int type, u_int32_t plen, struct ssh *ssh) | |||
871 | 894 | ||
872 | /* Start again with the next method in the list */ | 895 | /* Start again with the next method in the list */ |
873 | if (GSS_ERROR(status)) { | 896 | if (GSS_ERROR(status)) { |
874 | userauth(authctxt, NULL); | 897 | userauth(ssh, NULL); |
875 | /* ok */ | 898 | /* ok */ |
876 | } | 899 | } |
877 | r = 0; | 900 | r = 0; |
@@ -881,7 +904,7 @@ input_gssapi_token(int type, u_int32_t plen, struct ssh *ssh) | |||
881 | } | 904 | } |
882 | 905 | ||
883 | /* ARGSUSED */ | 906 | /* ARGSUSED */ |
884 | int | 907 | static int |
885 | input_gssapi_errtok(int type, u_int32_t plen, struct ssh *ssh) | 908 | input_gssapi_errtok(int type, u_int32_t plen, struct ssh *ssh) |
886 | { | 909 | { |
887 | Authctxt *authctxt = ssh->authctxt; | 910 | Authctxt *authctxt = ssh->authctxt; |
@@ -916,7 +939,7 @@ input_gssapi_errtok(int type, u_int32_t plen, struct ssh *ssh) | |||
916 | } | 939 | } |
917 | 940 | ||
918 | /* ARGSUSED */ | 941 | /* ARGSUSED */ |
919 | int | 942 | static int |
920 | input_gssapi_error(int type, u_int32_t plen, struct ssh *ssh) | 943 | input_gssapi_error(int type, u_int32_t plen, struct ssh *ssh) |
921 | { | 944 | { |
922 | char *msg = NULL; | 945 | char *msg = NULL; |
@@ -937,10 +960,10 @@ input_gssapi_error(int type, u_int32_t plen, struct ssh *ssh) | |||
937 | } | 960 | } |
938 | #endif /* GSSAPI */ | 961 | #endif /* GSSAPI */ |
939 | 962 | ||
940 | int | 963 | static int |
941 | userauth_none(Authctxt *authctxt) | 964 | userauth_none(struct ssh *ssh) |
942 | { | 965 | { |
943 | struct ssh *ssh = active_state; /* XXX */ | 966 | Authctxt *authctxt = (Authctxt *)ssh->authctxt; |
944 | int r; | 967 | int r; |
945 | 968 | ||
946 | /* initial userauth request */ | 969 | /* initial userauth request */ |
@@ -953,25 +976,22 @@ userauth_none(Authctxt *authctxt) | |||
953 | return 1; | 976 | return 1; |
954 | } | 977 | } |
955 | 978 | ||
956 | int | 979 | static int |
957 | userauth_passwd(Authctxt *authctxt) | 980 | userauth_passwd(struct ssh *ssh) |
958 | { | 981 | { |
959 | struct ssh *ssh = active_state; /* XXX */ | 982 | Authctxt *authctxt = (Authctxt *)ssh->authctxt; |
960 | static int attempt = 0; | 983 | char *password, *prompt = NULL; |
961 | char prompt[256]; | ||
962 | char *password; | ||
963 | const char *host = options.host_key_alias ? options.host_key_alias : | 984 | const char *host = options.host_key_alias ? options.host_key_alias : |
964 | authctxt->host; | 985 | authctxt->host; |
965 | int r; | 986 | int r; |
966 | 987 | ||
967 | if (attempt++ >= options.number_of_password_prompts) | 988 | if (authctxt->attempt_passwd++ >= options.number_of_password_prompts) |
968 | return 0; | 989 | return 0; |
969 | 990 | ||
970 | if (attempt != 1) | 991 | if (authctxt->attempt_passwd != 1) |
971 | error("Permission denied, please try again."); | 992 | error("Permission denied, please try again."); |
972 | 993 | ||
973 | snprintf(prompt, sizeof(prompt), "%.30s@%.128s's password: ", | 994 | xasprintf(&prompt, "%s@%s's password: ", authctxt->server_user, host); |
974 | authctxt->server_user, host); | ||
975 | password = read_passphrase(prompt, 0); | 995 | password = read_passphrase(prompt, 0); |
976 | if ((r = sshpkt_start(ssh, SSH2_MSG_USERAUTH_REQUEST)) != 0 || | 996 | if ((r = sshpkt_start(ssh, SSH2_MSG_USERAUTH_REQUEST)) != 0 || |
977 | (r = sshpkt_put_cstring(ssh, authctxt->server_user)) != 0 || | 997 | (r = sshpkt_put_cstring(ssh, authctxt->server_user)) != 0 || |
@@ -983,7 +1003,8 @@ userauth_passwd(Authctxt *authctxt) | |||
983 | (r = sshpkt_send(ssh)) != 0) | 1003 | (r = sshpkt_send(ssh)) != 0) |
984 | fatal("%s: %s", __func__, ssh_err(r)); | 1004 | fatal("%s: %s", __func__, ssh_err(r)); |
985 | 1005 | ||
986 | if (password) | 1006 | free(prompt); |
1007 | if (password != NULL) | ||
987 | freezero(password, strlen(password)); | 1008 | freezero(password, strlen(password)); |
988 | 1009 | ||
989 | ssh_dispatch_set(ssh, SSH2_MSG_USERAUTH_PASSWD_CHANGEREQ, | 1010 | ssh_dispatch_set(ssh, SSH2_MSG_USERAUTH_PASSWD_CHANGEREQ, |
@@ -996,7 +1017,7 @@ userauth_passwd(Authctxt *authctxt) | |||
996 | * parse PASSWD_CHANGEREQ, prompt user and send SSH2_MSG_USERAUTH_REQUEST | 1017 | * parse PASSWD_CHANGEREQ, prompt user and send SSH2_MSG_USERAUTH_REQUEST |
997 | */ | 1018 | */ |
998 | /* ARGSUSED */ | 1019 | /* ARGSUSED */ |
999 | int | 1020 | static int |
1000 | input_userauth_passwd_changereq(int type, u_int32_t seqnr, struct ssh *ssh) | 1021 | input_userauth_passwd_changereq(int type, u_int32_t seqnr, struct ssh *ssh) |
1001 | { | 1022 | { |
1002 | Authctxt *authctxt = ssh->authctxt; | 1023 | Authctxt *authctxt = ssh->authctxt; |
@@ -1180,8 +1201,9 @@ id_filename_matches(Identity *id, Identity *private_id) | |||
1180 | } | 1201 | } |
1181 | 1202 | ||
1182 | static int | 1203 | static int |
1183 | sign_and_send_pubkey(struct ssh *ssh, Authctxt *authctxt, Identity *id) | 1204 | sign_and_send_pubkey(struct ssh *ssh, Identity *id) |
1184 | { | 1205 | { |
1206 | Authctxt *authctxt = (Authctxt *)ssh->authctxt; | ||
1185 | struct sshbuf *b = NULL; | 1207 | struct sshbuf *b = NULL; |
1186 | Identity *private_id, *sign_id = NULL; | 1208 | Identity *private_id, *sign_id = NULL; |
1187 | u_char *signature = NULL; | 1209 | u_char *signature = NULL; |
@@ -1339,8 +1361,9 @@ sign_and_send_pubkey(struct ssh *ssh, Authctxt *authctxt, Identity *id) | |||
1339 | } | 1361 | } |
1340 | 1362 | ||
1341 | static int | 1363 | static int |
1342 | send_pubkey_test(struct ssh *ssh, Authctxt *authctxt, Identity *id) | 1364 | send_pubkey_test(struct ssh *ssh, Identity *id) |
1343 | { | 1365 | { |
1366 | Authctxt *authctxt = (Authctxt *)ssh->authctxt; | ||
1344 | u_char *blob = NULL; | 1367 | u_char *blob = NULL; |
1345 | char *alg = NULL; | 1368 | char *alg = NULL; |
1346 | size_t bloblen; | 1369 | size_t bloblen; |
@@ -1616,12 +1639,15 @@ pubkey_prepare(Authctxt *authctxt) | |||
1616 | } | 1639 | } |
1617 | 1640 | ||
1618 | static void | 1641 | static void |
1619 | pubkey_cleanup(Authctxt *authctxt) | 1642 | pubkey_cleanup(struct ssh *ssh) |
1620 | { | 1643 | { |
1644 | Authctxt *authctxt = (Authctxt *)ssh->authctxt; | ||
1621 | Identity *id; | 1645 | Identity *id; |
1622 | 1646 | ||
1623 | if (authctxt->agent_fd != -1) | 1647 | if (authctxt->agent_fd != -1) { |
1624 | ssh_close_authentication_socket(authctxt->agent_fd); | 1648 | ssh_close_authentication_socket(authctxt->agent_fd); |
1649 | authctxt->agent_fd = -1; | ||
1650 | } | ||
1625 | for (id = TAILQ_FIRST(&authctxt->keys); id; | 1651 | for (id = TAILQ_FIRST(&authctxt->keys); id; |
1626 | id = TAILQ_FIRST(&authctxt->keys)) { | 1652 | id = TAILQ_FIRST(&authctxt->keys)) { |
1627 | TAILQ_REMOVE(&authctxt->keys, id, next); | 1653 | TAILQ_REMOVE(&authctxt->keys, id, next); |
@@ -1654,10 +1680,10 @@ try_identity(Identity *id) | |||
1654 | return 1; | 1680 | return 1; |
1655 | } | 1681 | } |
1656 | 1682 | ||
1657 | int | 1683 | static int |
1658 | userauth_pubkey(Authctxt *authctxt) | 1684 | userauth_pubkey(struct ssh *ssh) |
1659 | { | 1685 | { |
1660 | struct ssh *ssh = active_state; /* XXX */ | 1686 | Authctxt *authctxt = (Authctxt *)ssh->authctxt; |
1661 | Identity *id; | 1687 | Identity *id; |
1662 | int sent = 0; | 1688 | int sent = 0; |
1663 | char *ident; | 1689 | char *ident; |
@@ -1678,7 +1704,7 @@ userauth_pubkey(Authctxt *authctxt) | |||
1678 | ident = format_identity(id); | 1704 | ident = format_identity(id); |
1679 | debug("Offering public key: %s", ident); | 1705 | debug("Offering public key: %s", ident); |
1680 | free(ident); | 1706 | free(ident); |
1681 | sent = send_pubkey_test(ssh, authctxt, id); | 1707 | sent = send_pubkey_test(ssh, id); |
1682 | } | 1708 | } |
1683 | } else { | 1709 | } else { |
1684 | debug("Trying private key: %s", id->filename); | 1710 | debug("Trying private key: %s", id->filename); |
@@ -1686,8 +1712,7 @@ userauth_pubkey(Authctxt *authctxt) | |||
1686 | if (id->key != NULL) { | 1712 | if (id->key != NULL) { |
1687 | if (try_identity(id)) { | 1713 | if (try_identity(id)) { |
1688 | id->isprivate = 1; | 1714 | id->isprivate = 1; |
1689 | sent = sign_and_send_pubkey(ssh, | 1715 | sent = sign_and_send_pubkey(ssh, id); |
1690 | authctxt, id); | ||
1691 | } | 1716 | } |
1692 | sshkey_free(id->key); | 1717 | sshkey_free(id->key); |
1693 | id->key = NULL; | 1718 | id->key = NULL; |
@@ -1703,17 +1728,16 @@ userauth_pubkey(Authctxt *authctxt) | |||
1703 | /* | 1728 | /* |
1704 | * Send userauth request message specifying keyboard-interactive method. | 1729 | * Send userauth request message specifying keyboard-interactive method. |
1705 | */ | 1730 | */ |
1706 | int | 1731 | static int |
1707 | userauth_kbdint(Authctxt *authctxt) | 1732 | userauth_kbdint(struct ssh *ssh) |
1708 | { | 1733 | { |
1709 | struct ssh *ssh = active_state; /* XXX */ | 1734 | Authctxt *authctxt = (Authctxt *)ssh->authctxt; |
1710 | static int attempt = 0; | ||
1711 | int r; | 1735 | int r; |
1712 | 1736 | ||
1713 | if (attempt++ >= options.number_of_password_prompts) | 1737 | if (authctxt->attempt_kbdint++ >= options.number_of_password_prompts) |
1714 | return 0; | 1738 | return 0; |
1715 | /* disable if no SSH2_MSG_USERAUTH_INFO_REQUEST has been seen */ | 1739 | /* disable if no SSH2_MSG_USERAUTH_INFO_REQUEST has been seen */ |
1716 | if (attempt > 1 && !authctxt->info_req_seen) { | 1740 | if (authctxt->attempt_kbdint > 1 && !authctxt->info_req_seen) { |
1717 | debug3("userauth_kbdint: disable: no info_req_seen"); | 1741 | debug3("userauth_kbdint: disable: no info_req_seen"); |
1718 | ssh_dispatch_set(ssh, SSH2_MSG_USERAUTH_INFO_REQUEST, NULL); | 1742 | ssh_dispatch_set(ssh, SSH2_MSG_USERAUTH_INFO_REQUEST, NULL); |
1719 | return 0; | 1743 | return 0; |
@@ -1737,7 +1761,7 @@ userauth_kbdint(Authctxt *authctxt) | |||
1737 | /* | 1761 | /* |
1738 | * parse INFO_REQUEST, prompt user and send INFO_RESPONSE | 1762 | * parse INFO_REQUEST, prompt user and send INFO_RESPONSE |
1739 | */ | 1763 | */ |
1740 | int | 1764 | static int |
1741 | input_userauth_info_req(int type, u_int32_t seq, struct ssh *ssh) | 1765 | input_userauth_info_req(int type, u_int32_t seq, struct ssh *ssh) |
1742 | { | 1766 | { |
1743 | Authctxt *authctxt = ssh->authctxt; | 1767 | Authctxt *authctxt = ssh->authctxt; |
@@ -1803,13 +1827,14 @@ input_userauth_info_req(int type, u_int32_t seq, struct ssh *ssh) | |||
1803 | } | 1827 | } |
1804 | 1828 | ||
1805 | static int | 1829 | static int |
1806 | ssh_keysign(struct sshkey *key, u_char **sigp, size_t *lenp, | 1830 | ssh_keysign(struct ssh *ssh, struct sshkey *key, u_char **sigp, size_t *lenp, |
1807 | const u_char *data, size_t datalen) | 1831 | const u_char *data, size_t datalen) |
1808 | { | 1832 | { |
1809 | struct sshbuf *b; | 1833 | struct sshbuf *b; |
1810 | struct stat st; | 1834 | struct stat st; |
1811 | pid_t pid; | 1835 | pid_t pid; |
1812 | int i, r, to[2], from[2], status, sock = packet_get_connection_in(); | 1836 | int i, r, to[2], from[2], status; |
1837 | int sock = ssh_packet_get_connection_in(ssh); | ||
1813 | u_char rversion = 0, version = 2; | 1838 | u_char rversion = 0, version = 2; |
1814 | void (*osigchld)(int); | 1839 | void (*osigchld)(int); |
1815 | 1840 | ||
@@ -1916,10 +1941,10 @@ ssh_keysign(struct sshkey *key, u_char **sigp, size_t *lenp, | |||
1916 | return 0; | 1941 | return 0; |
1917 | } | 1942 | } |
1918 | 1943 | ||
1919 | int | 1944 | static int |
1920 | userauth_hostbased(Authctxt *authctxt) | 1945 | userauth_hostbased(struct ssh *ssh) |
1921 | { | 1946 | { |
1922 | struct ssh *ssh = active_state; /* XXX */ | 1947 | Authctxt *authctxt = (Authctxt *)ssh->authctxt; |
1923 | struct sshkey *private = NULL; | 1948 | struct sshkey *private = NULL; |
1924 | struct sshbuf *b = NULL; | 1949 | struct sshbuf *b = NULL; |
1925 | u_char *sig = NULL, *keyblob = NULL; | 1950 | u_char *sig = NULL, *keyblob = NULL; |
@@ -1983,7 +2008,8 @@ userauth_hostbased(Authctxt *authctxt) | |||
1983 | __func__, sshkey_ssh_name(private), fp); | 2008 | __func__, sshkey_ssh_name(private), fp); |
1984 | 2009 | ||
1985 | /* figure out a name for the client host */ | 2010 | /* figure out a name for the client host */ |
1986 | if ((lname = get_local_name(packet_get_connection_in())) == NULL) { | 2011 | lname = get_local_name(ssh_packet_get_connection_in(ssh)); |
2012 | if (lname == NULL) { | ||
1987 | error("%s: cannot get local ipaddr/name", __func__); | 2013 | error("%s: cannot get local ipaddr/name", __func__); |
1988 | goto out; | 2014 | goto out; |
1989 | } | 2015 | } |
@@ -2017,9 +2043,8 @@ userauth_hostbased(Authctxt *authctxt) | |||
2017 | #ifdef DEBUG_PK | 2043 | #ifdef DEBUG_PK |
2018 | sshbuf_dump(b, stderr); | 2044 | sshbuf_dump(b, stderr); |
2019 | #endif | 2045 | #endif |
2020 | r = ssh_keysign(private, &sig, &siglen, | 2046 | if ((r = ssh_keysign(ssh, private, &sig, &siglen, |
2021 | sshbuf_ptr(b), sshbuf_len(b)); | 2047 | sshbuf_ptr(b), sshbuf_len(b))) != 0) { |
2022 | if (r != 0) { | ||
2023 | error("sign using hostkey %s %s failed", | 2048 | error("sign using hostkey %s %s failed", |
2024 | sshkey_ssh_name(private), fp); | 2049 | sshkey_ssh_name(private), fp); |
2025 | goto out; | 2050 | goto out; |
@@ -650,4 +650,4 @@ AUTHORS | |||
650 | versions 1.5 and 2.0. Niels Provos and Markus Friedl contributed support | 650 | versions 1.5 and 2.0. Niels Provos and Markus Friedl contributed support |
651 | for privilege separation. | 651 | for privilege separation. |
652 | 652 | ||
653 | OpenBSD 6.4 July 22, 2018 OpenBSD 6.4 | 653 | OpenBSD 6.5 July 22, 2018 OpenBSD 6.5 |
@@ -1,4 +1,4 @@ | |||
1 | /* $OpenBSD: sshd.c,v 1.516 2018/09/21 12:23:17 djm Exp $ */ | 1 | /* $OpenBSD: sshd.c,v 1.533 2019/03/01 02:32:39 djm Exp $ */ |
2 | /* | 2 | /* |
3 | * Author: Tatu Ylonen <ylo@cs.hut.fi> | 3 | * Author: Tatu Ylonen <ylo@cs.hut.fi> |
4 | * Copyright (c) 1995 Tatu Ylonen <ylo@cs.hut.fi>, Espoo, Finland | 4 | * Copyright (c) 1995 Tatu Ylonen <ylo@cs.hut.fi>, Espoo, Finland |
@@ -151,45 +151,38 @@ int debug_flag = 0; | |||
151 | * configuration, optionally using connection information provided by the | 151 | * configuration, optionally using connection information provided by the |
152 | * "-C" flag. | 152 | * "-C" flag. |
153 | */ | 153 | */ |
154 | int test_flag = 0; | 154 | static int test_flag = 0; |
155 | 155 | ||
156 | /* Flag indicating that the daemon is being started from inetd. */ | 156 | /* Flag indicating that the daemon is being started from inetd. */ |
157 | int inetd_flag = 0; | 157 | static int inetd_flag = 0; |
158 | 158 | ||
159 | /* Flag indicating that sshd should not detach and become a daemon. */ | 159 | /* Flag indicating that sshd should not detach and become a daemon. */ |
160 | int no_daemon_flag = 0; | 160 | static int no_daemon_flag = 0; |
161 | 161 | ||
162 | /* debug goes to stderr unless inetd_flag is set */ | 162 | /* debug goes to stderr unless inetd_flag is set */ |
163 | int log_stderr = 0; | 163 | static int log_stderr = 0; |
164 | 164 | ||
165 | /* Saved arguments to main(). */ | 165 | /* Saved arguments to main(). */ |
166 | char **saved_argv; | 166 | static char **saved_argv; |
167 | int saved_argc; | 167 | static int saved_argc; |
168 | 168 | ||
169 | /* re-exec */ | 169 | /* re-exec */ |
170 | int rexeced_flag = 0; | 170 | static int rexeced_flag = 0; |
171 | int rexec_flag = 1; | 171 | static int rexec_flag = 1; |
172 | int rexec_argc = 0; | 172 | static int rexec_argc = 0; |
173 | char **rexec_argv; | 173 | static char **rexec_argv; |
174 | 174 | ||
175 | /* | 175 | /* |
176 | * The sockets that the server is listening; this is used in the SIGHUP | 176 | * The sockets that the server is listening; this is used in the SIGHUP |
177 | * signal handler. | 177 | * signal handler. |
178 | */ | 178 | */ |
179 | #define MAX_LISTEN_SOCKS 16 | 179 | #define MAX_LISTEN_SOCKS 16 |
180 | int listen_socks[MAX_LISTEN_SOCKS]; | 180 | static int listen_socks[MAX_LISTEN_SOCKS]; |
181 | int num_listen_socks = 0; | 181 | static int num_listen_socks = 0; |
182 | |||
183 | /* | ||
184 | * the client's version string, passed by sshd2 in compat mode. if != NULL, | ||
185 | * sshd will skip the version-number exchange | ||
186 | */ | ||
187 | char *client_version_string = NULL; | ||
188 | char *server_version_string = NULL; | ||
189 | 182 | ||
190 | /* Daemon's agent connection */ | 183 | /* Daemon's agent connection */ |
191 | int auth_sock = -1; | 184 | int auth_sock = -1; |
192 | int have_agent = 0; | 185 | static int have_agent = 0; |
193 | 186 | ||
194 | /* | 187 | /* |
195 | * Any really sensitive data in the application is contained in this | 188 | * Any really sensitive data in the application is contained in this |
@@ -220,9 +213,26 @@ u_int session_id2_len = 0; | |||
220 | /* record remote hostname or ip */ | 213 | /* record remote hostname or ip */ |
221 | u_int utmp_len = HOST_NAME_MAX+1; | 214 | u_int utmp_len = HOST_NAME_MAX+1; |
222 | 215 | ||
223 | /* options.max_startup sized array of fd ints */ | 216 | /* |
224 | int *startup_pipes = NULL; | 217 | * startup_pipes/flags are used for tracking children of the listening sshd |
225 | int startup_pipe; /* in child */ | 218 | * process early in their lifespans. This tracking is needed for three things: |
219 | * | ||
220 | * 1) Implementing the MaxStartups limit of concurrent unauthenticated | ||
221 | * connections. | ||
222 | * 2) Avoiding a race condition for SIGHUP processing, where child processes | ||
223 | * may have listen_socks open that could collide with main listener process | ||
224 | * after it restarts. | ||
225 | * 3) Ensuring that rexec'd sshd processes have received their initial state | ||
226 | * from the parent listen process before handling SIGHUP. | ||
227 | * | ||
228 | * Child processes signal that they have completed closure of the listen_socks | ||
229 | * and (if applicable) received their rexec state by sending a char over their | ||
230 | * sock. Child processes signal that authentication has completed by closing | ||
231 | * the sock (or by exiting). | ||
232 | */ | ||
233 | static int *startup_pipes = NULL; | ||
234 | static int *startup_flags = NULL; /* Indicates child closed listener */ | ||
235 | static int startup_pipe = -1; /* in child */ | ||
226 | 236 | ||
227 | /* variables used for privilege separation */ | 237 | /* variables used for privilege separation */ |
228 | int use_privsep = -1; | 238 | int use_privsep = -1; |
@@ -230,8 +240,9 @@ struct monitor *pmonitor = NULL; | |||
230 | int privsep_is_preauth = 1; | 240 | int privsep_is_preauth = 1; |
231 | static int privsep_chroot = 1; | 241 | static int privsep_chroot = 1; |
232 | 242 | ||
233 | /* global authentication context */ | 243 | /* global connection state and authentication contexts */ |
234 | Authctxt *the_authctxt = NULL; | 244 | Authctxt *the_authctxt = NULL; |
245 | struct ssh *the_active_state; | ||
235 | 246 | ||
236 | /* global key/cert auth options. XXX move to permanent ssh->authctxt? */ | 247 | /* global key/cert auth options. XXX move to permanent ssh->authctxt? */ |
237 | struct sshauthopt *auth_opts = NULL; | 248 | struct sshauthopt *auth_opts = NULL; |
@@ -248,7 +259,7 @@ struct passwd *privsep_pw = NULL; | |||
248 | /* Prototypes for various functions defined later in this file. */ | 259 | /* Prototypes for various functions defined later in this file. */ |
249 | void destroy_sensitive_data(void); | 260 | void destroy_sensitive_data(void); |
250 | void demote_sensitive_data(void); | 261 | void demote_sensitive_data(void); |
251 | static void do_ssh2_kex(void); | 262 | static void do_ssh2_kex(struct ssh *); |
252 | 263 | ||
253 | /* | 264 | /* |
254 | * Close all listening sockets | 265 | * Close all listening sockets |
@@ -358,111 +369,11 @@ grace_alarm_handler(int sig) | |||
358 | kill(0, SIGTERM); | 369 | kill(0, SIGTERM); |
359 | } | 370 | } |
360 | 371 | ||
372 | /* XXX pre-format ipaddr/port so we don't need to access active_state */ | ||
361 | /* Log error and exit. */ | 373 | /* Log error and exit. */ |
362 | sigdie("Timeout before authentication for %s port %d", | 374 | sigdie("Timeout before authentication for %s port %d", |
363 | ssh_remote_ipaddr(active_state), ssh_remote_port(active_state)); | 375 | ssh_remote_ipaddr(the_active_state), |
364 | } | 376 | ssh_remote_port(the_active_state)); |
365 | |||
366 | static void | ||
367 | sshd_exchange_identification(struct ssh *ssh, int sock_in, int sock_out) | ||
368 | { | ||
369 | u_int i; | ||
370 | int remote_major, remote_minor; | ||
371 | char *s; | ||
372 | char buf[256]; /* Must not be larger than remote_version. */ | ||
373 | char remote_version[256]; /* Must be at least as big as buf. */ | ||
374 | |||
375 | xasprintf(&server_version_string, "SSH-%d.%d-%.100s%s%s\r\n", | ||
376 | PROTOCOL_MAJOR_2, PROTOCOL_MINOR_2, SSH_VERSION, | ||
377 | *options.version_addendum == '\0' ? "" : " ", | ||
378 | options.version_addendum); | ||
379 | |||
380 | /* Send our protocol version identification. */ | ||
381 | if (atomicio(vwrite, sock_out, server_version_string, | ||
382 | strlen(server_version_string)) | ||
383 | != strlen(server_version_string)) { | ||
384 | logit("Could not write ident string to %s port %d", | ||
385 | ssh_remote_ipaddr(ssh), ssh_remote_port(ssh)); | ||
386 | cleanup_exit(255); | ||
387 | } | ||
388 | |||
389 | /* Read other sides version identification. */ | ||
390 | memset(buf, 0, sizeof(buf)); | ||
391 | for (i = 0; i < sizeof(buf) - 1; i++) { | ||
392 | if (atomicio(read, sock_in, &buf[i], 1) != 1) { | ||
393 | logit("Did not receive identification string " | ||
394 | "from %s port %d", | ||
395 | ssh_remote_ipaddr(ssh), ssh_remote_port(ssh)); | ||
396 | cleanup_exit(255); | ||
397 | } | ||
398 | if (buf[i] == '\r') { | ||
399 | buf[i] = 0; | ||
400 | /* Kludge for F-Secure Macintosh < 1.0.2 */ | ||
401 | if (i == 12 && | ||
402 | strncmp(buf, "SSH-1.5-W1.0", 12) == 0) | ||
403 | break; | ||
404 | continue; | ||
405 | } | ||
406 | if (buf[i] == '\n') { | ||
407 | buf[i] = 0; | ||
408 | break; | ||
409 | } | ||
410 | } | ||
411 | buf[sizeof(buf) - 1] = 0; | ||
412 | client_version_string = xstrdup(buf); | ||
413 | |||
414 | /* | ||
415 | * Check that the versions match. In future this might accept | ||
416 | * several versions and set appropriate flags to handle them. | ||
417 | */ | ||
418 | if (sscanf(client_version_string, "SSH-%d.%d-%[^\n]\n", | ||
419 | &remote_major, &remote_minor, remote_version) != 3) { | ||
420 | s = "Protocol mismatch.\n"; | ||
421 | (void) atomicio(vwrite, sock_out, s, strlen(s)); | ||
422 | logit("Bad protocol version identification '%.100s' " | ||
423 | "from %s port %d", client_version_string, | ||
424 | ssh_remote_ipaddr(ssh), ssh_remote_port(ssh)); | ||
425 | close(sock_in); | ||
426 | close(sock_out); | ||
427 | cleanup_exit(255); | ||
428 | } | ||
429 | debug("Client protocol version %d.%d; client software version %.100s", | ||
430 | remote_major, remote_minor, remote_version); | ||
431 | |||
432 | ssh->compat = compat_datafellows(remote_version); | ||
433 | |||
434 | if ((ssh->compat & SSH_BUG_PROBE) != 0) { | ||
435 | logit("probed from %s port %d with %s. Don't panic.", | ||
436 | ssh_remote_ipaddr(ssh), ssh_remote_port(ssh), | ||
437 | client_version_string); | ||
438 | cleanup_exit(255); | ||
439 | } | ||
440 | if ((ssh->compat & SSH_BUG_SCANNER) != 0) { | ||
441 | logit("scanned from %s port %d with %s. Don't panic.", | ||
442 | ssh_remote_ipaddr(ssh), ssh_remote_port(ssh), | ||
443 | client_version_string); | ||
444 | cleanup_exit(255); | ||
445 | } | ||
446 | if ((ssh->compat & SSH_BUG_RSASIGMD5) != 0) { | ||
447 | logit("Client version \"%.100s\" uses unsafe RSA signature " | ||
448 | "scheme; disabling use of RSA keys", remote_version); | ||
449 | } | ||
450 | |||
451 | chop(server_version_string); | ||
452 | debug("Local version string %.200s", server_version_string); | ||
453 | |||
454 | if (remote_major != 2 && | ||
455 | !(remote_major == 1 && remote_minor == 99)) { | ||
456 | s = "Protocol major versions differ.\n"; | ||
457 | (void) atomicio(vwrite, sock_out, s, strlen(s)); | ||
458 | close(sock_in); | ||
459 | close(sock_out); | ||
460 | logit("Protocol major versions differ for %s port %d: " | ||
461 | "%.200s vs. %.200s", | ||
462 | ssh_remote_ipaddr(ssh), ssh_remote_port(ssh), | ||
463 | server_version_string, client_version_string); | ||
464 | cleanup_exit(255); | ||
465 | } | ||
466 | } | 377 | } |
467 | 378 | ||
468 | /* Destroy the host and server keys. They will no longer be needed. */ | 379 | /* Destroy the host and server keys. They will no longer be needed. */ |
@@ -564,7 +475,7 @@ privsep_preauth_child(void) | |||
564 | } | 475 | } |
565 | 476 | ||
566 | static int | 477 | static int |
567 | privsep_preauth(Authctxt *authctxt) | 478 | privsep_preauth(struct ssh *ssh) |
568 | { | 479 | { |
569 | int status, r; | 480 | int status, r; |
570 | pid_t pid; | 481 | pid_t pid; |
@@ -573,7 +484,7 @@ privsep_preauth(Authctxt *authctxt) | |||
573 | /* Set up unprivileged child process to deal with network data */ | 484 | /* Set up unprivileged child process to deal with network data */ |
574 | pmonitor = monitor_init(); | 485 | pmonitor = monitor_init(); |
575 | /* Store a pointer to the kex for later rekeying */ | 486 | /* Store a pointer to the kex for later rekeying */ |
576 | pmonitor->m_pkex = &active_state->kex; | 487 | pmonitor->m_pkex = &ssh->kex; |
577 | 488 | ||
578 | if (use_privsep == PRIVSEP_ON) | 489 | if (use_privsep == PRIVSEP_ON) |
579 | box = ssh_sandbox_init(pmonitor); | 490 | box = ssh_sandbox_init(pmonitor); |
@@ -594,7 +505,7 @@ privsep_preauth(Authctxt *authctxt) | |||
594 | } | 505 | } |
595 | if (box != NULL) | 506 | if (box != NULL) |
596 | ssh_sandbox_parent_preauth(box, pid); | 507 | ssh_sandbox_parent_preauth(box, pid); |
597 | monitor_child_preauth(authctxt, pmonitor); | 508 | monitor_child_preauth(ssh, pmonitor); |
598 | 509 | ||
599 | /* Wait for the child's exit status */ | 510 | /* Wait for the child's exit status */ |
600 | while (waitpid(pid, &status, 0) < 0) { | 511 | while (waitpid(pid, &status, 0) < 0) { |
@@ -633,7 +544,7 @@ privsep_preauth(Authctxt *authctxt) | |||
633 | } | 544 | } |
634 | 545 | ||
635 | static void | 546 | static void |
636 | privsep_postauth(Authctxt *authctxt) | 547 | privsep_postauth(struct ssh *ssh, Authctxt *authctxt) |
637 | { | 548 | { |
638 | #ifdef DISABLE_FD_PASSING | 549 | #ifdef DISABLE_FD_PASSING |
639 | if (1) { | 550 | if (1) { |
@@ -654,8 +565,8 @@ privsep_postauth(Authctxt *authctxt) | |||
654 | else if (pmonitor->m_pid != 0) { | 565 | else if (pmonitor->m_pid != 0) { |
655 | verbose("User child is on pid %ld", (long)pmonitor->m_pid); | 566 | verbose("User child is on pid %ld", (long)pmonitor->m_pid); |
656 | sshbuf_reset(loginmsg); | 567 | sshbuf_reset(loginmsg); |
657 | monitor_clear_keystate(pmonitor); | 568 | monitor_clear_keystate(ssh, pmonitor); |
658 | monitor_child_postauth(pmonitor); | 569 | monitor_child_postauth(ssh, pmonitor); |
659 | 570 | ||
660 | /* NEVERREACHED */ | 571 | /* NEVERREACHED */ |
661 | exit(0); | 572 | exit(0); |
@@ -676,13 +587,13 @@ privsep_postauth(Authctxt *authctxt) | |||
676 | 587 | ||
677 | skip: | 588 | skip: |
678 | /* It is safe now to apply the key state */ | 589 | /* It is safe now to apply the key state */ |
679 | monitor_apply_keystate(pmonitor); | 590 | monitor_apply_keystate(ssh, pmonitor); |
680 | 591 | ||
681 | /* | 592 | /* |
682 | * Tell the packet layer that authentication was successful, since | 593 | * Tell the packet layer that authentication was successful, since |
683 | * this information is not part of the key state. | 594 | * this information is not part of the key state. |
684 | */ | 595 | */ |
685 | packet_set_authenticated(); | 596 | ssh_packet_set_authenticated(ssh); |
686 | } | 597 | } |
687 | 598 | ||
688 | static void | 599 | static void |
@@ -849,7 +760,7 @@ notify_hostkeys(struct ssh *ssh) | |||
849 | char *fp; | 760 | char *fp; |
850 | 761 | ||
851 | /* Some clients cannot cope with the hostkeys message, skip those. */ | 762 | /* Some clients cannot cope with the hostkeys message, skip those. */ |
852 | if (datafellows & SSH_BUG_HOSTKEYS) | 763 | if (ssh->compat & SSH_BUG_HOSTKEYS) |
853 | return; | 764 | return; |
854 | 765 | ||
855 | if ((buf = sshbuf_new()) == NULL) | 766 | if ((buf = sshbuf_new()) == NULL) |
@@ -865,21 +776,29 @@ notify_hostkeys(struct ssh *ssh) | |||
865 | sshkey_ssh_name(key), fp); | 776 | sshkey_ssh_name(key), fp); |
866 | free(fp); | 777 | free(fp); |
867 | if (nkeys == 0) { | 778 | if (nkeys == 0) { |
868 | packet_start(SSH2_MSG_GLOBAL_REQUEST); | 779 | /* |
869 | packet_put_cstring("hostkeys-00@openssh.com"); | 780 | * Start building the request when we find the |
870 | packet_put_char(0); /* want-reply */ | 781 | * first usable key. |
782 | */ | ||
783 | if ((r = sshpkt_start(ssh, SSH2_MSG_GLOBAL_REQUEST)) != 0 || | ||
784 | (r = sshpkt_put_cstring(ssh, "hostkeys-00@openssh.com")) != 0 || | ||
785 | (r = sshpkt_put_u8(ssh, 0)) != 0) /* want reply */ | ||
786 | sshpkt_fatal(ssh, r, "%s: start request", __func__); | ||
871 | } | 787 | } |
788 | /* Append the key to the request */ | ||
872 | sshbuf_reset(buf); | 789 | sshbuf_reset(buf); |
873 | if ((r = sshkey_putb(key, buf)) != 0) | 790 | if ((r = sshkey_putb(key, buf)) != 0) |
874 | fatal("%s: couldn't put hostkey %d: %s", | 791 | fatal("%s: couldn't put hostkey %d: %s", |
875 | __func__, i, ssh_err(r)); | 792 | __func__, i, ssh_err(r)); |
876 | packet_put_string(sshbuf_ptr(buf), sshbuf_len(buf)); | 793 | if ((r = sshpkt_put_stringb(ssh, buf)) != 0) |
794 | sshpkt_fatal(ssh, r, "%s: append key", __func__); | ||
877 | nkeys++; | 795 | nkeys++; |
878 | } | 796 | } |
879 | debug3("%s: sent %u hostkeys", __func__, nkeys); | 797 | debug3("%s: sent %u hostkeys", __func__, nkeys); |
880 | if (nkeys == 0) | 798 | if (nkeys == 0) |
881 | fatal("%s: no hostkeys", __func__); | 799 | fatal("%s: no hostkeys", __func__); |
882 | packet_send(); | 800 | if ((r = sshpkt_send(ssh)) != 0) |
801 | sshpkt_fatal(ssh, r, "%s: send", __func__); | ||
883 | sshbuf_free(buf); | 802 | sshbuf_free(buf); |
884 | } | 803 | } |
885 | 804 | ||
@@ -917,7 +836,7 @@ usage(void) | |||
917 | fprintf(stderr, "%s, %s\n", | 836 | fprintf(stderr, "%s, %s\n", |
918 | SSH_RELEASE, | 837 | SSH_RELEASE, |
919 | #ifdef WITH_OPENSSL | 838 | #ifdef WITH_OPENSSL |
920 | SSLeay_version(SSLEAY_VERSION) | 839 | OpenSSL_version(OPENSSL_VERSION) |
921 | #else | 840 | #else |
922 | "without OpenSSL" | 841 | "without OpenSSL" |
923 | #endif | 842 | #endif |
@@ -999,14 +918,9 @@ server_accept_inetd(int *sock_in, int *sock_out) | |||
999 | { | 918 | { |
1000 | int fd; | 919 | int fd; |
1001 | 920 | ||
1002 | startup_pipe = -1; | ||
1003 | if (rexeced_flag) { | 921 | if (rexeced_flag) { |
1004 | close(REEXEC_CONFIG_PASS_FD); | 922 | close(REEXEC_CONFIG_PASS_FD); |
1005 | *sock_in = *sock_out = dup(STDIN_FILENO); | 923 | *sock_in = *sock_out = dup(STDIN_FILENO); |
1006 | if (!debug_flag) { | ||
1007 | startup_pipe = dup(REEXEC_STARTUP_PIPE_FD); | ||
1008 | close(REEXEC_STARTUP_PIPE_FD); | ||
1009 | } | ||
1010 | } else { | 924 | } else { |
1011 | *sock_in = dup(STDIN_FILENO); | 925 | *sock_in = dup(STDIN_FILENO); |
1012 | *sock_out = dup(STDOUT_FILENO); | 926 | *sock_out = dup(STDOUT_FILENO); |
@@ -1131,8 +1045,9 @@ server_accept_loop(int *sock_in, int *sock_out, int *newsock, int *config_s) | |||
1131 | { | 1045 | { |
1132 | fd_set *fdset; | 1046 | fd_set *fdset; |
1133 | int i, j, ret, maxfd; | 1047 | int i, j, ret, maxfd; |
1134 | int startups = 0; | 1048 | int startups = 0, listening = 0, lameduck = 0; |
1135 | int startup_p[2] = { -1 , -1 }; | 1049 | int startup_p[2] = { -1 , -1 }; |
1050 | char c = 0; | ||
1136 | struct sockaddr_storage from; | 1051 | struct sockaddr_storage from; |
1137 | socklen_t fromlen; | 1052 | socklen_t fromlen; |
1138 | pid_t pid; | 1053 | pid_t pid; |
@@ -1146,6 +1061,7 @@ server_accept_loop(int *sock_in, int *sock_out, int *newsock, int *config_s) | |||
1146 | maxfd = listen_socks[i]; | 1061 | maxfd = listen_socks[i]; |
1147 | /* pipes connected to unauthenticated childs */ | 1062 | /* pipes connected to unauthenticated childs */ |
1148 | startup_pipes = xcalloc(options.max_startups, sizeof(int)); | 1063 | startup_pipes = xcalloc(options.max_startups, sizeof(int)); |
1064 | startup_flags = xcalloc(options.max_startups, sizeof(int)); | ||
1149 | for (i = 0; i < options.max_startups; i++) | 1065 | for (i = 0; i < options.max_startups; i++) |
1150 | startup_pipes[i] = -1; | 1066 | startup_pipes[i] = -1; |
1151 | 1067 | ||
@@ -1154,8 +1070,15 @@ server_accept_loop(int *sock_in, int *sock_out, int *newsock, int *config_s) | |||
1154 | * the daemon is killed with a signal. | 1070 | * the daemon is killed with a signal. |
1155 | */ | 1071 | */ |
1156 | for (;;) { | 1072 | for (;;) { |
1157 | if (received_sighup) | 1073 | if (received_sighup) { |
1158 | sighup_restart(); | 1074 | if (!lameduck) { |
1075 | debug("Received SIGHUP; waiting for children"); | ||
1076 | close_listen_socks(); | ||
1077 | lameduck = 1; | ||
1078 | } | ||
1079 | if (listening <= 0) | ||
1080 | sighup_restart(); | ||
1081 | } | ||
1159 | free(fdset); | 1082 | free(fdset); |
1160 | fdset = xcalloc(howmany(maxfd + 1, NFDBITS), | 1083 | fdset = xcalloc(howmany(maxfd + 1, NFDBITS), |
1161 | sizeof(fd_mask)); | 1084 | sizeof(fd_mask)); |
@@ -1181,19 +1104,37 @@ server_accept_loop(int *sock_in, int *sock_out, int *newsock, int *config_s) | |||
1181 | if (ret < 0) | 1104 | if (ret < 0) |
1182 | continue; | 1105 | continue; |
1183 | 1106 | ||
1184 | for (i = 0; i < options.max_startups; i++) | 1107 | for (i = 0; i < options.max_startups; i++) { |
1185 | if (startup_pipes[i] != -1 && | 1108 | if (startup_pipes[i] == -1 || |
1186 | FD_ISSET(startup_pipes[i], fdset)) { | 1109 | !FD_ISSET(startup_pipes[i], fdset)) |
1187 | /* | 1110 | continue; |
1188 | * the read end of the pipe is ready | 1111 | switch (read(startup_pipes[i], &c, sizeof(c))) { |
1189 | * if the child has closed the pipe | 1112 | case -1: |
1190 | * after successful authentication | 1113 | if (errno == EINTR || errno == EAGAIN) |
1191 | * or if the child has died | 1114 | continue; |
1192 | */ | 1115 | if (errno != EPIPE) { |
1116 | error("%s: startup pipe %d (fd=%d): " | ||
1117 | "read %s", __func__, i, | ||
1118 | startup_pipes[i], strerror(errno)); | ||
1119 | } | ||
1120 | /* FALLTHROUGH */ | ||
1121 | case 0: | ||
1122 | /* child exited or completed auth */ | ||
1193 | close(startup_pipes[i]); | 1123 | close(startup_pipes[i]); |
1194 | startup_pipes[i] = -1; | 1124 | startup_pipes[i] = -1; |
1195 | startups--; | 1125 | startups--; |
1126 | if (startup_flags[i]) | ||
1127 | listening--; | ||
1128 | break; | ||
1129 | case 1: | ||
1130 | /* child has finished preliminaries */ | ||
1131 | if (startup_flags[i]) { | ||
1132 | listening--; | ||
1133 | startup_flags[i] = 0; | ||
1134 | } | ||
1135 | break; | ||
1196 | } | 1136 | } |
1137 | } | ||
1197 | for (i = 0; i < num_listen_socks; i++) { | 1138 | for (i = 0; i < num_listen_socks; i++) { |
1198 | if (!FD_ISSET(listen_socks[i], fdset)) | 1139 | if (!FD_ISSET(listen_socks[i], fdset)) |
1199 | continue; | 1140 | continue; |
@@ -1247,6 +1188,7 @@ server_accept_loop(int *sock_in, int *sock_out, int *newsock, int *config_s) | |||
1247 | if (maxfd < startup_p[0]) | 1188 | if (maxfd < startup_p[0]) |
1248 | maxfd = startup_p[0]; | 1189 | maxfd = startup_p[0]; |
1249 | startups++; | 1190 | startups++; |
1191 | startup_flags[j] = 1; | ||
1250 | break; | 1192 | break; |
1251 | } | 1193 | } |
1252 | 1194 | ||
@@ -1272,7 +1214,7 @@ server_accept_loop(int *sock_in, int *sock_out, int *newsock, int *config_s) | |||
1272 | send_rexec_state(config_s[0], cfg); | 1214 | send_rexec_state(config_s[0], cfg); |
1273 | close(config_s[0]); | 1215 | close(config_s[0]); |
1274 | } | 1216 | } |
1275 | break; | 1217 | return; |
1276 | } | 1218 | } |
1277 | 1219 | ||
1278 | /* | 1220 | /* |
@@ -1281,13 +1223,14 @@ server_accept_loop(int *sock_in, int *sock_out, int *newsock, int *config_s) | |||
1281 | * parent continues listening. | 1223 | * parent continues listening. |
1282 | */ | 1224 | */ |
1283 | platform_pre_fork(); | 1225 | platform_pre_fork(); |
1226 | listening++; | ||
1284 | if ((pid = fork()) == 0) { | 1227 | if ((pid = fork()) == 0) { |
1285 | /* | 1228 | /* |
1286 | * Child. Close the listening and | 1229 | * Child. Close the listening and |
1287 | * max_startup sockets. Start using | 1230 | * max_startup sockets. Start using |
1288 | * the accepted socket. Reinitialize | 1231 | * the accepted socket. Reinitialize |
1289 | * logging (since our pid has changed). | 1232 | * logging (since our pid has changed). |
1290 | * We break out of the loop to handle | 1233 | * We return from this function to handle |
1291 | * the connection. | 1234 | * the connection. |
1292 | */ | 1235 | */ |
1293 | platform_post_fork_child(); | 1236 | platform_post_fork_child(); |
@@ -1302,7 +1245,18 @@ server_accept_loop(int *sock_in, int *sock_out, int *newsock, int *config_s) | |||
1302 | log_stderr); | 1245 | log_stderr); |
1303 | if (rexec_flag) | 1246 | if (rexec_flag) |
1304 | close(config_s[0]); | 1247 | close(config_s[0]); |
1305 | break; | 1248 | else { |
1249 | /* | ||
1250 | * Signal parent that the preliminaries | ||
1251 | * for this child are complete. For the | ||
1252 | * re-exec case, this happens after the | ||
1253 | * child has received the rexec state | ||
1254 | * from the server. | ||
1255 | */ | ||
1256 | (void)atomicio(vwrite, startup_pipe, | ||
1257 | "\0", 1); | ||
1258 | } | ||
1259 | return; | ||
1306 | } | 1260 | } |
1307 | 1261 | ||
1308 | /* Parent. Stay in the loop. */ | 1262 | /* Parent. Stay in the loop. */ |
@@ -1334,10 +1288,6 @@ server_accept_loop(int *sock_in, int *sock_out, int *newsock, int *config_s) | |||
1334 | #endif | 1288 | #endif |
1335 | explicit_bzero(rnd, sizeof(rnd)); | 1289 | explicit_bzero(rnd, sizeof(rnd)); |
1336 | } | 1290 | } |
1337 | |||
1338 | /* child process check (or debug mode) */ | ||
1339 | if (num_listen_socks < 0) | ||
1340 | break; | ||
1341 | } | 1291 | } |
1342 | } | 1292 | } |
1343 | 1293 | ||
@@ -1510,6 +1460,8 @@ main(int ac, char **av) | |||
1510 | /* Ensure that fds 0, 1 and 2 are open or directed to /dev/null */ | 1460 | /* Ensure that fds 0, 1 and 2 are open or directed to /dev/null */ |
1511 | sanitise_stdfd(); | 1461 | sanitise_stdfd(); |
1512 | 1462 | ||
1463 | seed_rng(); | ||
1464 | |||
1513 | /* Initialize configuration options to their default values. */ | 1465 | /* Initialize configuration options to their default values. */ |
1514 | initialize_server_options(&options); | 1466 | initialize_server_options(&options); |
1515 | 1467 | ||
@@ -1588,7 +1540,7 @@ main(int ac, char **av) | |||
1588 | break; | 1540 | break; |
1589 | case 'h': | 1541 | case 'h': |
1590 | servconf_add_hostkey("[command-line]", 0, | 1542 | servconf_add_hostkey("[command-line]", 0, |
1591 | &options, optarg); | 1543 | &options, optarg, 1); |
1592 | break; | 1544 | break; |
1593 | case 't': | 1545 | case 't': |
1594 | test_flag = 1; | 1546 | test_flag = 1; |
@@ -1597,7 +1549,7 @@ main(int ac, char **av) | |||
1597 | test_flag = 2; | 1549 | test_flag = 2; |
1598 | break; | 1550 | break; |
1599 | case 'C': | 1551 | case 'C': |
1600 | connection_info = get_connection_info(0, 0); | 1552 | connection_info = get_connection_info(ssh, 0, 0); |
1601 | if (parse_server_match_testspec(connection_info, | 1553 | if (parse_server_match_testspec(connection_info, |
1602 | optarg) == -1) | 1554 | optarg) == -1) |
1603 | exit(1); | 1555 | exit(1); |
@@ -1624,17 +1576,13 @@ main(int ac, char **av) | |||
1624 | } | 1576 | } |
1625 | if (rexeced_flag || inetd_flag) | 1577 | if (rexeced_flag || inetd_flag) |
1626 | rexec_flag = 0; | 1578 | rexec_flag = 0; |
1627 | if (!test_flag && (rexec_flag && (av[0] == NULL || *av[0] != '/'))) | 1579 | if (!test_flag && rexec_flag && !path_absolute(av[0])) |
1628 | fatal("sshd re-exec requires execution with an absolute path"); | 1580 | fatal("sshd re-exec requires execution with an absolute path"); |
1629 | if (rexeced_flag) | 1581 | if (rexeced_flag) |
1630 | closefrom(REEXEC_MIN_FREE_FD); | 1582 | closefrom(REEXEC_MIN_FREE_FD); |
1631 | else | 1583 | else |
1632 | closefrom(REEXEC_DEVCRYPTO_RESERVED_FD); | 1584 | closefrom(REEXEC_DEVCRYPTO_RESERVED_FD); |
1633 | 1585 | ||
1634 | #ifdef WITH_OPENSSL | ||
1635 | OpenSSL_add_all_algorithms(); | ||
1636 | #endif | ||
1637 | |||
1638 | /* If requested, redirect the logs to the specified logfile. */ | 1586 | /* If requested, redirect the logs to the specified logfile. */ |
1639 | if (logfile != NULL) | 1587 | if (logfile != NULL) |
1640 | log_redirect_stderr_to(logfile); | 1588 | log_redirect_stderr_to(logfile); |
@@ -1669,16 +1617,24 @@ main(int ac, char **av) | |||
1669 | /* Fetch our configuration */ | 1617 | /* Fetch our configuration */ |
1670 | if ((cfg = sshbuf_new()) == NULL) | 1618 | if ((cfg = sshbuf_new()) == NULL) |
1671 | fatal("%s: sshbuf_new failed", __func__); | 1619 | fatal("%s: sshbuf_new failed", __func__); |
1672 | if (rexeced_flag) | 1620 | if (rexeced_flag) { |
1673 | recv_rexec_state(REEXEC_CONFIG_PASS_FD, cfg); | 1621 | recv_rexec_state(REEXEC_CONFIG_PASS_FD, cfg); |
1622 | if (!debug_flag) { | ||
1623 | startup_pipe = dup(REEXEC_STARTUP_PIPE_FD); | ||
1624 | close(REEXEC_STARTUP_PIPE_FD); | ||
1625 | /* | ||
1626 | * Signal parent that this child is at a point where | ||
1627 | * they can go away if they have a SIGHUP pending. | ||
1628 | */ | ||
1629 | (void)atomicio(vwrite, startup_pipe, "\0", 1); | ||
1630 | } | ||
1631 | } | ||
1674 | else if (strcasecmp(config_file_name, "none") != 0) | 1632 | else if (strcasecmp(config_file_name, "none") != 0) |
1675 | load_server_config(config_file_name, cfg); | 1633 | load_server_config(config_file_name, cfg); |
1676 | 1634 | ||
1677 | parse_server_config(&options, rexeced_flag ? "rexec" : config_file_name, | 1635 | parse_server_config(&options, rexeced_flag ? "rexec" : config_file_name, |
1678 | cfg, NULL); | 1636 | cfg, NULL); |
1679 | 1637 | ||
1680 | seed_rng(); | ||
1681 | |||
1682 | /* Fill in default values for those options not explicitly set. */ | 1638 | /* Fill in default values for those options not explicitly set. */ |
1683 | fill_default_server_options(&options); | 1639 | fill_default_server_options(&options); |
1684 | 1640 | ||
@@ -1723,7 +1679,7 @@ main(int ac, char **av) | |||
1723 | 1679 | ||
1724 | debug("sshd version %s, %s", SSH_VERSION, | 1680 | debug("sshd version %s, %s", SSH_VERSION, |
1725 | #ifdef WITH_OPENSSL | 1681 | #ifdef WITH_OPENSSL |
1726 | SSLeay_version(SSLEAY_VERSION) | 1682 | OpenSSL_version(OPENSSL_VERSION) |
1727 | #else | 1683 | #else |
1728 | "without OpenSSL" | 1684 | "without OpenSSL" |
1729 | #endif | 1685 | #endif |
@@ -1760,15 +1716,18 @@ main(int ac, char **av) | |||
1760 | } | 1716 | } |
1761 | 1717 | ||
1762 | for (i = 0; i < options.num_host_key_files; i++) { | 1718 | for (i = 0; i < options.num_host_key_files; i++) { |
1719 | int ll = options.host_key_file_userprovided[i] ? | ||
1720 | SYSLOG_LEVEL_ERROR : SYSLOG_LEVEL_DEBUG1; | ||
1721 | |||
1763 | if (options.host_key_files[i] == NULL) | 1722 | if (options.host_key_files[i] == NULL) |
1764 | continue; | 1723 | continue; |
1765 | if ((r = sshkey_load_private(options.host_key_files[i], "", | 1724 | if ((r = sshkey_load_private(options.host_key_files[i], "", |
1766 | &key, NULL)) != 0 && r != SSH_ERR_SYSTEM_ERROR) | 1725 | &key, NULL)) != 0 && r != SSH_ERR_SYSTEM_ERROR) |
1767 | error("Error loading host key \"%s\": %s", | 1726 | do_log2(ll, "Unable to load host key \"%s\": %s", |
1768 | options.host_key_files[i], ssh_err(r)); | 1727 | options.host_key_files[i], ssh_err(r)); |
1769 | if ((r = sshkey_load_public(options.host_key_files[i], | 1728 | if ((r = sshkey_load_public(options.host_key_files[i], |
1770 | &pubkey, NULL)) != 0 && r != SSH_ERR_SYSTEM_ERROR) | 1729 | &pubkey, NULL)) != 0 && r != SSH_ERR_SYSTEM_ERROR) |
1771 | error("Error loading host key \"%s\": %s", | 1730 | do_log2(ll, "Unable to load host key \"%s\": %s", |
1772 | options.host_key_files[i], ssh_err(r)); | 1731 | options.host_key_files[i], ssh_err(r)); |
1773 | if (pubkey == NULL && key != NULL) | 1732 | if (pubkey == NULL && key != NULL) |
1774 | if ((r = sshkey_from_private(key, &pubkey)) != 0) | 1733 | if ((r = sshkey_from_private(key, &pubkey)) != 0) |
@@ -1785,7 +1744,7 @@ main(int ac, char **av) | |||
1785 | keytype = key->type; | 1744 | keytype = key->type; |
1786 | accumulate_host_timing_secret(cfg, key); | 1745 | accumulate_host_timing_secret(cfg, key); |
1787 | } else { | 1746 | } else { |
1788 | error("Could not load host key: %s", | 1747 | do_log2(ll, "Unable to load host key: %s", |
1789 | options.host_key_files[i]); | 1748 | options.host_key_files[i]); |
1790 | sensitive_data.host_keys[i] = NULL; | 1749 | sensitive_data.host_keys[i] = NULL; |
1791 | sensitive_data.host_pubkeys[i] = NULL; | 1750 | sensitive_data.host_pubkeys[i] = NULL; |
@@ -1883,7 +1842,7 @@ main(int ac, char **av) | |||
1883 | * use a blank one that will cause no predicate to match. | 1842 | * use a blank one that will cause no predicate to match. |
1884 | */ | 1843 | */ |
1885 | if (connection_info == NULL) | 1844 | if (connection_info == NULL) |
1886 | connection_info = get_connection_info(0, 0); | 1845 | connection_info = get_connection_info(ssh, 0, 0); |
1887 | parse_server_match_config(&options, connection_info); | 1846 | parse_server_match_config(&options, connection_info); |
1888 | dump_config(&options); | 1847 | dump_config(&options); |
1889 | } | 1848 | } |
@@ -2058,9 +2017,10 @@ main(int ac, char **av) | |||
2058 | * Register our connection. This turns encryption off because we do | 2017 | * Register our connection. This turns encryption off because we do |
2059 | * not have a key. | 2018 | * not have a key. |
2060 | */ | 2019 | */ |
2061 | packet_set_connection(sock_in, sock_out); | 2020 | if ((ssh = ssh_packet_set_connection(NULL, sock_in, sock_out)) == NULL) |
2062 | packet_set_server(); | 2021 | fatal("Unable to create connection"); |
2063 | ssh = active_state; /* XXX */ | 2022 | the_active_state = ssh; |
2023 | ssh_packet_set_server(ssh); | ||
2064 | 2024 | ||
2065 | check_ip_options(ssh); | 2025 | check_ip_options(ssh); |
2066 | 2026 | ||
@@ -2070,7 +2030,7 @@ main(int ac, char **av) | |||
2070 | process_permitopen(ssh, &options); | 2030 | process_permitopen(ssh, &options); |
2071 | 2031 | ||
2072 | /* Set SO_KEEPALIVE if requested. */ | 2032 | /* Set SO_KEEPALIVE if requested. */ |
2073 | if (options.tcp_keep_alive && packet_connection_is_on_socket() && | 2033 | if (options.tcp_keep_alive && ssh_packet_connection_is_on_socket(ssh) && |
2074 | setsockopt(sock_in, SOL_SOCKET, SO_KEEPALIVE, &on, sizeof(on)) < 0) | 2034 | setsockopt(sock_in, SOL_SOCKET, SO_KEEPALIVE, &on, sizeof(on)) < 0) |
2075 | error("setsockopt SO_KEEPALIVE: %.100s", strerror(errno)); | 2035 | error("setsockopt SO_KEEPALIVE: %.100s", strerror(errno)); |
2076 | 2036 | ||
@@ -2116,11 +2076,14 @@ main(int ac, char **av) | |||
2116 | if (!debug_flag) | 2076 | if (!debug_flag) |
2117 | alarm(options.login_grace_time); | 2077 | alarm(options.login_grace_time); |
2118 | 2078 | ||
2119 | sshd_exchange_identification(ssh, sock_in, sock_out); | 2079 | if (kex_exchange_identification(ssh, -1, options.version_addendum) != 0) |
2120 | packet_set_nonblocking(); | 2080 | cleanup_exit(255); /* error already logged */ |
2081 | |||
2082 | ssh_packet_set_nonblocking(ssh); | ||
2121 | 2083 | ||
2122 | /* allocate authentication context */ | 2084 | /* allocate authentication context */ |
2123 | authctxt = xcalloc(1, sizeof(*authctxt)); | 2085 | authctxt = xcalloc(1, sizeof(*authctxt)); |
2086 | ssh->authctxt = authctxt; | ||
2124 | 2087 | ||
2125 | authctxt->loginmsg = loginmsg; | 2088 | authctxt->loginmsg = loginmsg; |
2126 | 2089 | ||
@@ -2137,7 +2100,7 @@ main(int ac, char **av) | |||
2137 | auth_debug_reset(); | 2100 | auth_debug_reset(); |
2138 | 2101 | ||
2139 | if (use_privsep) { | 2102 | if (use_privsep) { |
2140 | if (privsep_preauth(authctxt) == 1) | 2103 | if (privsep_preauth(ssh) == 1) |
2141 | goto authenticated; | 2104 | goto authenticated; |
2142 | } else if (have_agent) { | 2105 | } else if (have_agent) { |
2143 | if ((r = ssh_get_authentication_socket(&auth_sock)) != 0) { | 2106 | if ((r = ssh_get_authentication_socket(&auth_sock)) != 0) { |
@@ -2148,16 +2111,16 @@ main(int ac, char **av) | |||
2148 | 2111 | ||
2149 | /* perform the key exchange */ | 2112 | /* perform the key exchange */ |
2150 | /* authenticate user and start session */ | 2113 | /* authenticate user and start session */ |
2151 | do_ssh2_kex(); | 2114 | do_ssh2_kex(ssh); |
2152 | do_authentication2(authctxt); | 2115 | do_authentication2(ssh); |
2153 | 2116 | ||
2154 | /* | 2117 | /* |
2155 | * If we use privilege separation, the unprivileged child transfers | 2118 | * If we use privilege separation, the unprivileged child transfers |
2156 | * the current keystate and exits | 2119 | * the current keystate and exits |
2157 | */ | 2120 | */ |
2158 | if (use_privsep) { | 2121 | if (use_privsep) { |
2159 | mm_send_keystate(pmonitor); | 2122 | mm_send_keystate(ssh, pmonitor); |
2160 | packet_clear_keys(); | 2123 | ssh_packet_clear_keys(ssh); |
2161 | exit(0); | 2124 | exit(0); |
2162 | } | 2125 | } |
2163 | 2126 | ||
@@ -2175,7 +2138,7 @@ main(int ac, char **av) | |||
2175 | } | 2138 | } |
2176 | 2139 | ||
2177 | #ifdef SSH_AUDIT_EVENTS | 2140 | #ifdef SSH_AUDIT_EVENTS |
2178 | audit_event(SSH_AUTH_SUCCESS); | 2141 | audit_event(ssh, SSH_AUTH_SUCCESS); |
2179 | #endif | 2142 | #endif |
2180 | 2143 | ||
2181 | #ifdef GSSAPI | 2144 | #ifdef GSSAPI |
@@ -2197,11 +2160,11 @@ main(int ac, char **av) | |||
2197 | * file descriptor passing. | 2160 | * file descriptor passing. |
2198 | */ | 2161 | */ |
2199 | if (use_privsep) { | 2162 | if (use_privsep) { |
2200 | privsep_postauth(authctxt); | 2163 | privsep_postauth(ssh, authctxt); |
2201 | /* the monitor process [priv] will not return */ | 2164 | /* the monitor process [priv] will not return */ |
2202 | } | 2165 | } |
2203 | 2166 | ||
2204 | packet_set_timeout(options.client_alive_interval, | 2167 | ssh_packet_set_timeout(ssh, options.client_alive_interval, |
2205 | options.client_alive_count_max); | 2168 | options.client_alive_count_max); |
2206 | 2169 | ||
2207 | /* Try to send all our hostkeys to the client */ | 2170 | /* Try to send all our hostkeys to the client */ |
@@ -2211,7 +2174,7 @@ main(int ac, char **av) | |||
2211 | do_authenticated(ssh, authctxt); | 2174 | do_authenticated(ssh, authctxt); |
2212 | 2175 | ||
2213 | /* The connection has been terminated. */ | 2176 | /* The connection has been terminated. */ |
2214 | packet_get_bytes(&ibytes, &obytes); | 2177 | ssh_packet_get_bytes(ssh, &ibytes, &obytes); |
2215 | verbose("Transferred: sent %llu, received %llu bytes", | 2178 | verbose("Transferred: sent %llu, received %llu bytes", |
2216 | (unsigned long long)obytes, (unsigned long long)ibytes); | 2179 | (unsigned long long)obytes, (unsigned long long)ibytes); |
2217 | 2180 | ||
@@ -2223,10 +2186,10 @@ main(int ac, char **av) | |||
2223 | #endif /* USE_PAM */ | 2186 | #endif /* USE_PAM */ |
2224 | 2187 | ||
2225 | #ifdef SSH_AUDIT_EVENTS | 2188 | #ifdef SSH_AUDIT_EVENTS |
2226 | PRIVSEP(audit_event(SSH_CONNECTION_CLOSE)); | 2189 | PRIVSEP(audit_event(ssh, SSH_CONNECTION_CLOSE)); |
2227 | #endif | 2190 | #endif |
2228 | 2191 | ||
2229 | packet_close(); | 2192 | ssh_packet_close(ssh); |
2230 | 2193 | ||
2231 | if (use_privsep) | 2194 | if (use_privsep) |
2232 | mm_terminate(); | 2195 | mm_terminate(); |
@@ -2235,32 +2198,42 @@ main(int ac, char **av) | |||
2235 | } | 2198 | } |
2236 | 2199 | ||
2237 | int | 2200 | int |
2238 | sshd_hostkey_sign(struct sshkey *privkey, struct sshkey *pubkey, | 2201 | sshd_hostkey_sign(struct ssh *ssh, struct sshkey *privkey, |
2239 | u_char **signature, size_t *slenp, const u_char *data, size_t dlen, | 2202 | struct sshkey *pubkey, u_char **signature, size_t *slenp, |
2240 | const char *alg, u_int flag) | 2203 | const u_char *data, size_t dlen, const char *alg) |
2241 | { | 2204 | { |
2242 | int r; | 2205 | int r; |
2243 | 2206 | ||
2244 | if (privkey) { | 2207 | if (use_privsep) { |
2245 | if (PRIVSEP(sshkey_sign(privkey, signature, slenp, data, dlen, | 2208 | if (privkey) { |
2246 | alg, datafellows)) < 0) | 2209 | if (mm_sshkey_sign(ssh, privkey, signature, slenp, |
2247 | fatal("%s: key_sign failed", __func__); | 2210 | data, dlen, alg, ssh->compat) < 0) |
2248 | } else if (use_privsep) { | 2211 | fatal("%s: privkey sign failed", __func__); |
2249 | if (mm_sshkey_sign(pubkey, signature, slenp, data, dlen, | 2212 | } else { |
2250 | alg, datafellows) < 0) | 2213 | if (mm_sshkey_sign(ssh, pubkey, signature, slenp, |
2251 | fatal("%s: pubkey_sign failed", __func__); | 2214 | data, dlen, alg, ssh->compat) < 0) |
2215 | fatal("%s: pubkey sign failed", __func__); | ||
2216 | } | ||
2252 | } else { | 2217 | } else { |
2253 | if ((r = ssh_agent_sign(auth_sock, pubkey, signature, slenp, | 2218 | if (privkey) { |
2254 | data, dlen, alg, datafellows)) != 0) | 2219 | if (sshkey_sign(privkey, signature, slenp, data, dlen, |
2255 | fatal("%s: ssh_agent_sign failed: %s", | 2220 | alg, ssh->compat) < 0) |
2256 | __func__, ssh_err(r)); | 2221 | fatal("%s: privkey sign failed", __func__); |
2222 | } else { | ||
2223 | if ((r = ssh_agent_sign(auth_sock, pubkey, | ||
2224 | signature, slenp, data, dlen, alg, | ||
2225 | ssh->compat)) != 0) { | ||
2226 | fatal("%s: agent sign failed: %s", | ||
2227 | __func__, ssh_err(r)); | ||
2228 | } | ||
2229 | } | ||
2257 | } | 2230 | } |
2258 | return 0; | 2231 | return 0; |
2259 | } | 2232 | } |
2260 | 2233 | ||
2261 | /* SSH2 key exchange */ | 2234 | /* SSH2 key exchange */ |
2262 | static void | 2235 | static void |
2263 | do_ssh2_kex(void) | 2236 | do_ssh2_kex(struct ssh *ssh) |
2264 | { | 2237 | { |
2265 | char *myproposal[PROPOSAL_MAX] = { KEX_SERVER }; | 2238 | char *myproposal[PROPOSAL_MAX] = { KEX_SERVER }; |
2266 | struct kex *kex; | 2239 | struct kex *kex; |
@@ -2281,38 +2254,36 @@ do_ssh2_kex(void) | |||
2281 | } | 2254 | } |
2282 | 2255 | ||
2283 | if (options.rekey_limit || options.rekey_interval) | 2256 | if (options.rekey_limit || options.rekey_interval) |
2284 | packet_set_rekey_limits(options.rekey_limit, | 2257 | ssh_packet_set_rekey_limits(ssh, options.rekey_limit, |
2285 | options.rekey_interval); | 2258 | options.rekey_interval); |
2286 | 2259 | ||
2287 | myproposal[PROPOSAL_SERVER_HOST_KEY_ALGS] = compat_pkalg_proposal( | 2260 | myproposal[PROPOSAL_SERVER_HOST_KEY_ALGS] = compat_pkalg_proposal( |
2288 | list_hostkey_types()); | 2261 | list_hostkey_types()); |
2289 | 2262 | ||
2290 | /* start key exchange */ | 2263 | /* start key exchange */ |
2291 | if ((r = kex_setup(active_state, myproposal)) != 0) | 2264 | if ((r = kex_setup(ssh, myproposal)) != 0) |
2292 | fatal("kex_setup: %s", ssh_err(r)); | 2265 | fatal("kex_setup: %s", ssh_err(r)); |
2293 | kex = active_state->kex; | 2266 | kex = ssh->kex; |
2294 | #ifdef WITH_OPENSSL | 2267 | #ifdef WITH_OPENSSL |
2295 | kex->kex[KEX_DH_GRP1_SHA1] = kexdh_server; | 2268 | kex->kex[KEX_DH_GRP1_SHA1] = kex_gen_server; |
2296 | kex->kex[KEX_DH_GRP14_SHA1] = kexdh_server; | 2269 | kex->kex[KEX_DH_GRP14_SHA1] = kex_gen_server; |
2297 | kex->kex[KEX_DH_GRP14_SHA256] = kexdh_server; | 2270 | kex->kex[KEX_DH_GRP14_SHA256] = kex_gen_server; |
2298 | kex->kex[KEX_DH_GRP16_SHA512] = kexdh_server; | 2271 | kex->kex[KEX_DH_GRP16_SHA512] = kex_gen_server; |
2299 | kex->kex[KEX_DH_GRP18_SHA512] = kexdh_server; | 2272 | kex->kex[KEX_DH_GRP18_SHA512] = kex_gen_server; |
2300 | kex->kex[KEX_DH_GEX_SHA1] = kexgex_server; | 2273 | kex->kex[KEX_DH_GEX_SHA1] = kexgex_server; |
2301 | kex->kex[KEX_DH_GEX_SHA256] = kexgex_server; | 2274 | kex->kex[KEX_DH_GEX_SHA256] = kexgex_server; |
2302 | # ifdef OPENSSL_HAS_ECC | 2275 | # ifdef OPENSSL_HAS_ECC |
2303 | kex->kex[KEX_ECDH_SHA2] = kexecdh_server; | 2276 | kex->kex[KEX_ECDH_SHA2] = kex_gen_server; |
2304 | # endif | 2277 | # endif |
2305 | #endif | 2278 | #endif |
2306 | kex->kex[KEX_C25519_SHA256] = kexc25519_server; | 2279 | kex->kex[KEX_C25519_SHA256] = kex_gen_server; |
2307 | kex->server = 1; | 2280 | kex->kex[KEX_KEM_SNTRUP4591761X25519_SHA512] = kex_gen_server; |
2308 | kex->client_version_string=client_version_string; | ||
2309 | kex->server_version_string=server_version_string; | ||
2310 | kex->load_host_public_key=&get_hostkey_public_by_type; | 2281 | kex->load_host_public_key=&get_hostkey_public_by_type; |
2311 | kex->load_host_private_key=&get_hostkey_private_by_type; | 2282 | kex->load_host_private_key=&get_hostkey_private_by_type; |
2312 | kex->host_key_index=&get_hostkey_index; | 2283 | kex->host_key_index=&get_hostkey_index; |
2313 | kex->sign = sshd_hostkey_sign; | 2284 | kex->sign = sshd_hostkey_sign; |
2314 | 2285 | ||
2315 | ssh_dispatch_run_fatal(active_state, DISPATCH_BLOCK, &kex->done); | 2286 | ssh_dispatch_run_fatal(ssh, DISPATCH_BLOCK, &kex->done); |
2316 | 2287 | ||
2317 | session_id2 = kex->session_id; | 2288 | session_id2 = kex->session_id; |
2318 | session_id2_len = kex->session_id_len; | 2289 | session_id2_len = kex->session_id_len; |
@@ -2331,10 +2302,8 @@ do_ssh2_kex(void) | |||
2331 | void | 2302 | void |
2332 | cleanup_exit(int i) | 2303 | cleanup_exit(int i) |
2333 | { | 2304 | { |
2334 | struct ssh *ssh = active_state; /* XXX */ | 2305 | if (the_active_state != NULL && the_authctxt != NULL) { |
2335 | 2306 | do_cleanup(the_active_state, the_authctxt); | |
2336 | if (the_authctxt) { | ||
2337 | do_cleanup(ssh, the_authctxt); | ||
2338 | if (use_privsep && privsep_is_preauth && | 2307 | if (use_privsep && privsep_is_preauth && |
2339 | pmonitor != NULL && pmonitor->m_pid > 1) { | 2308 | pmonitor != NULL && pmonitor->m_pid > 1) { |
2340 | debug("Killing privsep child %d", pmonitor->m_pid); | 2309 | debug("Killing privsep child %d", pmonitor->m_pid); |
@@ -2346,8 +2315,8 @@ cleanup_exit(int i) | |||
2346 | } | 2315 | } |
2347 | #ifdef SSH_AUDIT_EVENTS | 2316 | #ifdef SSH_AUDIT_EVENTS |
2348 | /* done after do_cleanup so it can cancel the PAM auth 'thread' */ | 2317 | /* done after do_cleanup so it can cancel the PAM auth 'thread' */ |
2349 | if (!use_privsep || mm_is_monitor()) | 2318 | if (the_active_state != NULL && (!use_privsep || mm_is_monitor())) |
2350 | audit_event(SSH_CONNECTION_ABANDON); | 2319 | audit_event(the_active_state, SSH_CONNECTION_ABANDON); |
2351 | #endif | 2320 | #endif |
2352 | _exit(i); | 2321 | _exit(i); |
2353 | } | 2322 | } |
diff --git a/sshd_config.0 b/sshd_config.0 index af54da6b2..545b9a89c 100644 --- a/sshd_config.0 +++ b/sshd_config.0 | |||
@@ -637,7 +637,7 @@ DESCRIPTION | |||
637 | the single token All which matches all criteria. The available | 637 | the single token All which matches all criteria. The available |
638 | criteria are User, Group, Host, LocalAddress, LocalPort, RDomain, | 638 | criteria are User, Group, Host, LocalAddress, LocalPort, RDomain, |
639 | and Address (with RDomain representing the rdomain(4) on which | 639 | and Address (with RDomain representing the rdomain(4) on which |
640 | the connection was received.) | 640 | the connection was received). |
641 | 641 | ||
642 | The match patterns may consist of single entries or comma- | 642 | The match patterns may consist of single entries or comma- |
643 | separated lists and may use the wildcard and negation operators | 643 | separated lists and may use the wildcard and negation operators |
@@ -725,9 +725,9 @@ DESCRIPTION | |||
725 | listen requests are permitted. Note that the GatewayPorts option | 725 | listen requests are permitted. Note that the GatewayPorts option |
726 | may further restrict which addresses may be listened on. Note | 726 | may further restrict which addresses may be listened on. Note |
727 | also that ssh(1) will request a listen host of M-bM-^@M-^\localhostM-bM-^@M-^] if no | 727 | also that ssh(1) will request a listen host of M-bM-^@M-^\localhostM-bM-^@M-^] if no |
728 | listen host was specifically requested, and this this name is | 728 | listen host was specifically requested, and this name is treated |
729 | treated differently to explicit localhost addresses of | 729 | differently to explicit localhost addresses of M-bM-^@M-^\127.0.0.1M-bM-^@M-^] and |
730 | M-bM-^@M-^\127.0.0.1M-bM-^@M-^] and M-bM-^@M-^\::1M-bM-^@M-^]. | 730 | M-bM-^@M-^\::1M-bM-^@M-^]. |
731 | 731 | ||
732 | PermitOpen | 732 | PermitOpen |
733 | Specifies the destinations to which TCP port forwarding is | 733 | Specifies the destinations to which TCP port forwarding is |
@@ -1089,4 +1089,4 @@ AUTHORS | |||
1089 | versions 1.5 and 2.0. Niels Provos and Markus Friedl contributed support | 1089 | versions 1.5 and 2.0. Niels Provos and Markus Friedl contributed support |
1090 | for privilege separation. | 1090 | for privilege separation. |
1091 | 1091 | ||
1092 | OpenBSD 6.4 September 20, 2018 OpenBSD 6.4 | 1092 | OpenBSD 6.5 March 22, 2019 OpenBSD 6.5 |
diff --git a/sshd_config.5 b/sshd_config.5 index c6484370b..b224f2929 100644 --- a/sshd_config.5 +++ b/sshd_config.5 | |||
@@ -33,8 +33,8 @@ | |||
33 | .\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF | 33 | .\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF |
34 | .\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | 34 | .\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |
35 | .\" | 35 | .\" |
36 | .\" $OpenBSD: sshd_config.5,v 1.282 2018/09/20 03:28:06 djm Exp $ | 36 | .\" $OpenBSD: sshd_config.5,v 1.284 2019/03/22 20:58:34 jmc Exp $ |
37 | .Dd $Mdocdate: September 20 2018 $ | 37 | .Dd $Mdocdate: March 22 2019 $ |
38 | .Dt SSHD_CONFIG 5 | 38 | .Dt SSHD_CONFIG 5 |
39 | .Os | 39 | .Os |
40 | .Sh NAME | 40 | .Sh NAME |
@@ -1084,7 +1084,7 @@ and | |||
1084 | .Cm RDomain | 1084 | .Cm RDomain |
1085 | representing the | 1085 | representing the |
1086 | .Xr rdomain 4 | 1086 | .Xr rdomain 4 |
1087 | on which the connection was received.) | 1087 | on which the connection was received). |
1088 | .Pp | 1088 | .Pp |
1089 | The match patterns may consist of single entries or comma-separated | 1089 | The match patterns may consist of single entries or comma-separated |
1090 | lists and may use the wildcard and negation operators described in the | 1090 | lists and may use the wildcard and negation operators described in the |
@@ -1237,7 +1237,7 @@ Note also that | |||
1237 | .Xr ssh 1 | 1237 | .Xr ssh 1 |
1238 | will request a listen host of | 1238 | will request a listen host of |
1239 | .Dq localhost | 1239 | .Dq localhost |
1240 | if no listen host was specifically requested, and this this name is | 1240 | if no listen host was specifically requested, and this name is |
1241 | treated differently to explicit localhost addresses of | 1241 | treated differently to explicit localhost addresses of |
1242 | .Dq 127.0.0.1 | 1242 | .Dq 127.0.0.1 |
1243 | and | 1243 | and |
@@ -1,4 +1,4 @@ | |||
1 | /* $OpenBSD: sshkey.c,v 1.72 2018/10/11 00:52:46 djm Exp $ */ | 1 | /* $OpenBSD: sshkey.c,v 1.73 2019/01/21 09:54:11 djm Exp $ */ |
2 | /* | 2 | /* |
3 | * Copyright (c) 2000, 2001 Markus Friedl. All rights reserved. | 3 | * Copyright (c) 2000, 2001 Markus Friedl. All rights reserved. |
4 | * Copyright (c) 2008 Alexander von Gernler. All rights reserved. | 4 | * Copyright (c) 2008 Alexander von Gernler. All rights reserved. |
@@ -2056,13 +2056,8 @@ sshkey_from_blob_internal(struct sshbuf *b, struct sshkey **keyp, | |||
2056 | ret = SSH_ERR_ALLOC_FAIL; | 2056 | ret = SSH_ERR_ALLOC_FAIL; |
2057 | goto out; | 2057 | goto out; |
2058 | } | 2058 | } |
2059 | if ((rsa_e = BN_new()) == NULL || | 2059 | if (sshbuf_get_bignum2(b, &rsa_e) != 0 || |
2060 | (rsa_n = BN_new()) == NULL) { | 2060 | sshbuf_get_bignum2(b, &rsa_n) != 0) { |
2061 | ret = SSH_ERR_ALLOC_FAIL; | ||
2062 | goto out; | ||
2063 | } | ||
2064 | if (sshbuf_get_bignum2(b, rsa_e) != 0 || | ||
2065 | sshbuf_get_bignum2(b, rsa_n) != 0) { | ||
2066 | ret = SSH_ERR_INVALID_FORMAT; | 2061 | ret = SSH_ERR_INVALID_FORMAT; |
2067 | goto out; | 2062 | goto out; |
2068 | } | 2063 | } |
@@ -2089,17 +2084,10 @@ sshkey_from_blob_internal(struct sshbuf *b, struct sshkey **keyp, | |||
2089 | ret = SSH_ERR_ALLOC_FAIL; | 2084 | ret = SSH_ERR_ALLOC_FAIL; |
2090 | goto out; | 2085 | goto out; |
2091 | } | 2086 | } |
2092 | if ((dsa_p = BN_new()) == NULL || | 2087 | if (sshbuf_get_bignum2(b, &dsa_p) != 0 || |
2093 | (dsa_q = BN_new()) == NULL || | 2088 | sshbuf_get_bignum2(b, &dsa_q) != 0 || |
2094 | (dsa_g = BN_new()) == NULL || | 2089 | sshbuf_get_bignum2(b, &dsa_g) != 0 || |
2095 | (dsa_pub_key = BN_new()) == NULL) { | 2090 | sshbuf_get_bignum2(b, &dsa_pub_key) != 0) { |
2096 | ret = SSH_ERR_ALLOC_FAIL; | ||
2097 | goto out; | ||
2098 | } | ||
2099 | if (sshbuf_get_bignum2(b, dsa_p) != 0 || | ||
2100 | sshbuf_get_bignum2(b, dsa_q) != 0 || | ||
2101 | sshbuf_get_bignum2(b, dsa_g) != 0 || | ||
2102 | sshbuf_get_bignum2(b, dsa_pub_key) != 0) { | ||
2103 | ret = SSH_ERR_INVALID_FORMAT; | 2091 | ret = SSH_ERR_INVALID_FORMAT; |
2104 | goto out; | 2092 | goto out; |
2105 | } | 2093 | } |
@@ -2941,19 +2929,11 @@ sshkey_private_deserialize(struct sshbuf *buf, struct sshkey **kp) | |||
2941 | r = SSH_ERR_ALLOC_FAIL; | 2929 | r = SSH_ERR_ALLOC_FAIL; |
2942 | goto out; | 2930 | goto out; |
2943 | } | 2931 | } |
2944 | if ((dsa_p = BN_new()) == NULL || | 2932 | if ((r = sshbuf_get_bignum2(buf, &dsa_p)) != 0 || |
2945 | (dsa_q = BN_new()) == NULL || | 2933 | (r = sshbuf_get_bignum2(buf, &dsa_q)) != 0 || |
2946 | (dsa_g = BN_new()) == NULL || | 2934 | (r = sshbuf_get_bignum2(buf, &dsa_g)) != 0 || |
2947 | (dsa_pub_key = BN_new()) == NULL || | 2935 | (r = sshbuf_get_bignum2(buf, &dsa_pub_key)) != 0 || |
2948 | (dsa_priv_key = BN_new()) == NULL) { | 2936 | (r = sshbuf_get_bignum2(buf, &dsa_priv_key)) != 0) |
2949 | r = SSH_ERR_ALLOC_FAIL; | ||
2950 | goto out; | ||
2951 | } | ||
2952 | if ((r = sshbuf_get_bignum2(buf, dsa_p)) != 0 || | ||
2953 | (r = sshbuf_get_bignum2(buf, dsa_q)) != 0 || | ||
2954 | (r = sshbuf_get_bignum2(buf, dsa_g)) != 0 || | ||
2955 | (r = sshbuf_get_bignum2(buf, dsa_pub_key)) != 0 || | ||
2956 | (r = sshbuf_get_bignum2(buf, dsa_priv_key)) != 0) | ||
2957 | goto out; | 2937 | goto out; |
2958 | if (!DSA_set0_pqg(k->dsa, dsa_p, dsa_q, dsa_g)) { | 2938 | if (!DSA_set0_pqg(k->dsa, dsa_p, dsa_q, dsa_g)) { |
2959 | r = SSH_ERR_LIBCRYPTO_ERROR; | 2939 | r = SSH_ERR_LIBCRYPTO_ERROR; |
@@ -2967,12 +2947,8 @@ sshkey_private_deserialize(struct sshbuf *buf, struct sshkey **kp) | |||
2967 | dsa_pub_key = dsa_priv_key = NULL; /* transferred */ | 2947 | dsa_pub_key = dsa_priv_key = NULL; /* transferred */ |
2968 | break; | 2948 | break; |
2969 | case KEY_DSA_CERT: | 2949 | case KEY_DSA_CERT: |
2970 | if ((dsa_priv_key = BN_new()) == NULL) { | ||
2971 | r = SSH_ERR_ALLOC_FAIL; | ||
2972 | goto out; | ||
2973 | } | ||
2974 | if ((r = sshkey_froms(buf, &k)) != 0 || | 2950 | if ((r = sshkey_froms(buf, &k)) != 0 || |
2975 | (r = sshbuf_get_bignum2(buf, dsa_priv_key)) != 0) | 2951 | (r = sshbuf_get_bignum2(buf, &dsa_priv_key)) != 0) |
2976 | goto out; | 2952 | goto out; |
2977 | if (!DSA_set0_key(k->dsa, NULL, dsa_priv_key)) { | 2953 | if (!DSA_set0_key(k->dsa, NULL, dsa_priv_key)) { |
2978 | r = SSH_ERR_LIBCRYPTO_ERROR; | 2954 | r = SSH_ERR_LIBCRYPTO_ERROR; |
@@ -2997,12 +2973,12 @@ sshkey_private_deserialize(struct sshbuf *buf, struct sshkey **kp) | |||
2997 | goto out; | 2973 | goto out; |
2998 | } | 2974 | } |
2999 | k->ecdsa = EC_KEY_new_by_curve_name(k->ecdsa_nid); | 2975 | k->ecdsa = EC_KEY_new_by_curve_name(k->ecdsa_nid); |
3000 | if (k->ecdsa == NULL || (exponent = BN_new()) == NULL) { | 2976 | if (k->ecdsa == NULL) { |
3001 | r = SSH_ERR_LIBCRYPTO_ERROR; | 2977 | r = SSH_ERR_LIBCRYPTO_ERROR; |
3002 | goto out; | 2978 | goto out; |
3003 | } | 2979 | } |
3004 | if ((r = sshbuf_get_eckey(buf, k->ecdsa)) != 0 || | 2980 | if ((r = sshbuf_get_eckey(buf, k->ecdsa)) != 0 || |
3005 | (r = sshbuf_get_bignum2(buf, exponent))) | 2981 | (r = sshbuf_get_bignum2(buf, &exponent))) |
3006 | goto out; | 2982 | goto out; |
3007 | if (EC_KEY_set_private_key(k->ecdsa, exponent) != 1) { | 2983 | if (EC_KEY_set_private_key(k->ecdsa, exponent) != 1) { |
3008 | r = SSH_ERR_LIBCRYPTO_ERROR; | 2984 | r = SSH_ERR_LIBCRYPTO_ERROR; |
@@ -3014,12 +2990,8 @@ sshkey_private_deserialize(struct sshbuf *buf, struct sshkey **kp) | |||
3014 | goto out; | 2990 | goto out; |
3015 | break; | 2991 | break; |
3016 | case KEY_ECDSA_CERT: | 2992 | case KEY_ECDSA_CERT: |
3017 | if ((exponent = BN_new()) == NULL) { | ||
3018 | r = SSH_ERR_LIBCRYPTO_ERROR; | ||
3019 | goto out; | ||
3020 | } | ||
3021 | if ((r = sshkey_froms(buf, &k)) != 0 || | 2993 | if ((r = sshkey_froms(buf, &k)) != 0 || |
3022 | (r = sshbuf_get_bignum2(buf, exponent)) != 0) | 2994 | (r = sshbuf_get_bignum2(buf, &exponent)) != 0) |
3023 | goto out; | 2995 | goto out; |
3024 | if (EC_KEY_set_private_key(k->ecdsa, exponent) != 1) { | 2996 | if (EC_KEY_set_private_key(k->ecdsa, exponent) != 1) { |
3025 | r = SSH_ERR_LIBCRYPTO_ERROR; | 2997 | r = SSH_ERR_LIBCRYPTO_ERROR; |
@@ -3036,21 +3008,12 @@ sshkey_private_deserialize(struct sshbuf *buf, struct sshkey **kp) | |||
3036 | r = SSH_ERR_ALLOC_FAIL; | 3008 | r = SSH_ERR_ALLOC_FAIL; |
3037 | goto out; | 3009 | goto out; |
3038 | } | 3010 | } |
3039 | if ((rsa_n = BN_new()) == NULL || | 3011 | if ((r = sshbuf_get_bignum2(buf, &rsa_n)) != 0 || |
3040 | (rsa_e = BN_new()) == NULL || | 3012 | (r = sshbuf_get_bignum2(buf, &rsa_e)) != 0 || |
3041 | (rsa_d = BN_new()) == NULL || | 3013 | (r = sshbuf_get_bignum2(buf, &rsa_d)) != 0 || |
3042 | (rsa_iqmp = BN_new()) == NULL || | 3014 | (r = sshbuf_get_bignum2(buf, &rsa_iqmp)) != 0 || |
3043 | (rsa_p = BN_new()) == NULL || | 3015 | (r = sshbuf_get_bignum2(buf, &rsa_p)) != 0 || |
3044 | (rsa_q = BN_new()) == NULL) { | 3016 | (r = sshbuf_get_bignum2(buf, &rsa_q)) != 0) |
3045 | r = SSH_ERR_ALLOC_FAIL; | ||
3046 | goto out; | ||
3047 | } | ||
3048 | if ((r = sshbuf_get_bignum2(buf, rsa_n)) != 0 || | ||
3049 | (r = sshbuf_get_bignum2(buf, rsa_e)) != 0 || | ||
3050 | (r = sshbuf_get_bignum2(buf, rsa_d)) != 0 || | ||
3051 | (r = sshbuf_get_bignum2(buf, rsa_iqmp)) != 0 || | ||
3052 | (r = sshbuf_get_bignum2(buf, rsa_p)) != 0 || | ||
3053 | (r = sshbuf_get_bignum2(buf, rsa_q)) != 0) | ||
3054 | goto out; | 3017 | goto out; |
3055 | if (!RSA_set0_key(k->rsa, rsa_n, rsa_e, rsa_d)) { | 3018 | if (!RSA_set0_key(k->rsa, rsa_n, rsa_e, rsa_d)) { |
3056 | r = SSH_ERR_LIBCRYPTO_ERROR; | 3019 | r = SSH_ERR_LIBCRYPTO_ERROR; |
@@ -3068,18 +3031,11 @@ sshkey_private_deserialize(struct sshbuf *buf, struct sshkey **kp) | |||
3068 | goto out; | 3031 | goto out; |
3069 | break; | 3032 | break; |
3070 | case KEY_RSA_CERT: | 3033 | case KEY_RSA_CERT: |
3071 | if ((rsa_d = BN_new()) == NULL || | ||
3072 | (rsa_iqmp = BN_new()) == NULL || | ||
3073 | (rsa_p = BN_new()) == NULL || | ||
3074 | (rsa_q = BN_new()) == NULL) { | ||
3075 | r = SSH_ERR_ALLOC_FAIL; | ||
3076 | goto out; | ||
3077 | } | ||
3078 | if ((r = sshkey_froms(buf, &k)) != 0 || | 3034 | if ((r = sshkey_froms(buf, &k)) != 0 || |
3079 | (r = sshbuf_get_bignum2(buf, rsa_d)) != 0 || | 3035 | (r = sshbuf_get_bignum2(buf, &rsa_d)) != 0 || |
3080 | (r = sshbuf_get_bignum2(buf, rsa_iqmp)) != 0 || | 3036 | (r = sshbuf_get_bignum2(buf, &rsa_iqmp)) != 0 || |
3081 | (r = sshbuf_get_bignum2(buf, rsa_p)) != 0 || | 3037 | (r = sshbuf_get_bignum2(buf, &rsa_p)) != 0 || |
3082 | (r = sshbuf_get_bignum2(buf, rsa_q)) != 0) | 3038 | (r = sshbuf_get_bignum2(buf, &rsa_q)) != 0) |
3083 | goto out; | 3039 | goto out; |
3084 | if (!RSA_set0_key(k->rsa, NULL, NULL, rsa_d)) { | 3040 | if (!RSA_set0_key(k->rsa, NULL, NULL, rsa_d)) { |
3085 | r = SSH_ERR_LIBCRYPTO_ERROR; | 3041 | r = SSH_ERR_LIBCRYPTO_ERROR; |
@@ -1,4 +1,4 @@ | |||
1 | /* $OpenBSD: sshkey.h,v 1.30 2018/09/14 04:17:44 djm Exp $ */ | 1 | /* $OpenBSD: sshkey.h,v 1.31 2019/01/20 22:51:37 djm Exp $ */ |
2 | 2 | ||
3 | /* | 3 | /* |
4 | * Copyright (c) 2000, 2001 Markus Friedl. All rights reserved. | 4 | * Copyright (c) 2000, 2001 Markus Friedl. All rights reserved. |
@@ -33,6 +33,7 @@ | |||
33 | #include <openssl/dsa.h> | 33 | #include <openssl/dsa.h> |
34 | # ifdef OPENSSL_HAS_ECC | 34 | # ifdef OPENSSL_HAS_ECC |
35 | # include <openssl/ec.h> | 35 | # include <openssl/ec.h> |
36 | # include <openssl/ecdsa.h> | ||
36 | # else /* OPENSSL_HAS_ECC */ | 37 | # else /* OPENSSL_HAS_ECC */ |
37 | # define EC_KEY void | 38 | # define EC_KEY void |
38 | # define EC_GROUP void | 39 | # define EC_GROUP void |
@@ -1,6 +1,6 @@ | |||
1 | /* $OpenBSD: version.h,v 1.83 2018/10/10 16:43:49 deraadt Exp $ */ | 1 | /* $OpenBSD: version.h,v 1.84 2019/04/03 15:48:45 djm Exp $ */ |
2 | 2 | ||
3 | #define SSH_VERSION "OpenSSH_7.9" | 3 | #define SSH_VERSION "OpenSSH_8.0" |
4 | 4 | ||
5 | #define SSH_PORTABLE "p1" | 5 | #define SSH_PORTABLE "p1" |
6 | #define SSH_RELEASE SSH_VERSION SSH_PORTABLE | 6 | #define SSH_RELEASE SSH_VERSION SSH_PORTABLE |